Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/clinic.corals.io/public/web/plugins/global/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/clinic.corals.io/public/web/plugins/global/plugins.bundle.js
/*!
 * jQuery JavaScript Library v3.5.1
 * https://jquery.com/
 *
 * Includes Sizzle.js
 * https://sizzlejs.com/
 *
 * Copyright JS Foundation and other contributors
 * Released under the MIT license
 * https://jquery.org/license
 *
 * Date: 2020-05-04T22:49Z
 */
!function (e, t) {
    'use strict';
    'object' == typeof module && 'object' == typeof module.exports
        ? module.exports = e.document
        ? t(e, !0)
        : function (e) {
            if (!e.document) throw new Error(
                'jQuery requires a window with a document');
            return t(e);
        }
        : t(e);
}('undefined' != typeof window ? window : this, (function (e, t) {
    'use strict';
    var n = [], i = Object.getPrototypeOf, a = n.slice, r = n.flat
        ? function (e) {return n.flat.call(e);}
        : function (e) {return n.concat.apply([], e);}, o = n.push,
        s = n.indexOf, l = {}, c = l.toString, u = l.hasOwnProperty,
        d = u.toString, h = d.call(Object), f = {}, p = function (e) {
            return 'function' == typeof e && 'number' != typeof e.nodeType;
        }, m = function (e) {return null != e && e === e.window;}, g = e.document,
        v = { type: !0, src: !0, nonce: !0, noModule: !0 };

    function y (e, t, n) {
        var i, a, r = (n = n || g).createElement('script');
        if (r.text = e, t) for (i in v) (a = t[i] || t.getAttribute &&
            t.getAttribute(i)) && r.setAttribute(i, a);
        n.head.appendChild(r).parentNode.removeChild(r);
    }

    function b (e) {
        return null == e ? e + '' : 'object' == typeof e || 'function' ==
        typeof e ? l[c.call(e)] || 'object' : typeof e;
    }

    var x = '3.5.1', _ = function (e, t) {return new _.fn.init(e, t);};

    function w (e) {
        var t = !!e && 'length' in e && e.length, n = b(e);
        return !p(e) && !m(e) &&
            ('array' === n || 0 === t || 'number' == typeof t && t > 0 && t -
                1 in e);
    }

    _.fn = _.prototype = {
        jquery: x,
        constructor: _,
        length: 0,
        toArray: function () {return a.call(this);},
        get: function (e) {
            return null == e ? a.call(this) : e < 0
                ? this[e + this.length]
                : this[e];
        },
        pushStack: function (e) {
            var t = _.merge(this.constructor(), e);
            return t.prevObject = this, t;
        },
        each: function (e) {return _.each(this, e);},
        map: function (e) {
            return this.pushStack(
                _.map(this, (function (t, n) {return e.call(t, n, t);})));
        },
        slice: function () {return this.pushStack(a.apply(this, arguments));},
        first: function () {return this.eq(0);},
        last: function () {return this.eq(-1);},
        even: function () {
            return this.pushStack(
                _.grep(this, (function (e, t) {return (t + 1) % 2;})));
        },
        odd: function () {
            return this.pushStack(
                _.grep(this, (function (e, t) {return t % 2;})));
        },
        eq: function (e) {
            var t = this.length, n = +e + (e < 0 ? t : 0);
            return this.pushStack(n >= 0 && n < t ? [this[n]] : []);
        },
        end: function () {return this.prevObject || this.constructor();},
        push: o,
        sort: n.sort,
        splice: n.splice,
    }, _.extend = _.fn.extend = function () {
        var e, t, n, i, a, r, o = arguments[0] || {}, s = 1,
            l = arguments.length, c = !1;
        for ('boolean' == typeof o &&
             (c = o, o = arguments[s] || {}, s++), 'object' == typeof o ||
        p(o) || (o = {}), s === l && (o = this, s--); s < l; s++) if (null !=
            (e = arguments[s])) for (t in e) i = e[t], '__proto__' !== t &&
        o !== i && (c && i && (_.isPlainObject(i) || (a = Array.isArray(i)))
            ? (n = o[t], r = a && !Array.isArray(n) ? [] : a ||
            _.isPlainObject(n) ? n : {}, a = !1, o[t] = _.extend(c, r, i))
            : void 0 !== i && (o[t] = i));
        return o;
    }, _.extend({
        expando: 'jQuery' + (x + Math.random()).replace(/\D/g, ''),
        isReady: !0,
        error: function (e) {throw new Error(e);},
        noop: function () {},
        isPlainObject: function (e) {
            var t, n;
            return !(!e || '[object Object]' !== c.call(e)) &&
                (!(t = i(e)) || 'function' ==
                    typeof (n = u.call(t, 'constructor') && t.constructor) &&
                    d.call(n) === h);
        },
        isEmptyObject: function (e) {
            var t;
            for (t in e) return !1;
            return !0;
        },
        globalEval: function (e, t, n) {y(e, { nonce: t && t.nonce }, n);},
        each: function (e, t) {
            var n, i = 0;
            if (w(e)) for (n = e.length; i < n && !1 !==
            t.call(e[i], i, e[i]); i++) ; else for (i in e) if (!1 ===
                t.call(e[i], i, e[i])) break;
            return e;
        },
        makeArray: function (e, t) {
            var n = t || [];
            return null != e &&
            (w(Object(e)) ? _.merge(n, 'string' == typeof e ? [e] : e) : o.call(
                n, e)), n;
        },
        inArray: function (e, t, n) {return null == t ? -1 : s.call(t, e, n);},
        merge: function (e, t) {
            for (var n = +t.length, i = 0, a = e.length; i <
            n; i++) e[a++] = t[i];
            return e.length = a, e;
        },
        grep: function (e, t, n) {
            for (var i = [], a = 0, r = e.length, o = !n; a < r; a++) !t(e[a],
                a) !== o && i.push(e[a]);
            return i;
        },
        map: function (e, t, n) {
            var i, a, o = 0, s = [];
            if (w(e)) for (i = e.length; o < i; o++) null !=
            (a = t(e[o], o, n)) && s.push(a); else for (o in e) null !=
            (a = t(e[o], o, n)) && s.push(a);
            return r(s);
        },
        guid: 1,
        support: f,
    }), 'function' == typeof Symbol &&
    (_.fn[Symbol.iterator] = n[Symbol.iterator]), _.each(
        'Boolean Number String Function Array Date RegExp Object Error Symbol'.split(
            ' '),
        (function (e, t) {l['[object ' + t + ']'] = t.toLowerCase();}));
    var k =
        /*!
 * Sizzle CSS Selector Engine v2.3.5
 * https://sizzlejs.com/
 *
 * Copyright JS Foundation and other contributors
 * Released under the MIT license
 * https://js.foundation/
 *
 * Date: 2020-03-14
 */
        function (e) {
            var t, n, i, a, r, o, s, l, c, u, d, h, f, p, m, g, v, y, b,
                x = 'sizzle' + 1 * new Date, _ = e.document, w = 0, k = 0,
                M = le(), L = le(), S = le(), T = le(),
                A = function (e, t) {return e === t && (d = !0), 0;},
                D = {}.hasOwnProperty, C = [], E = C.pop, O = C.push,
                Y = C.push, P = C.slice, I = function (e, t) {
                    for (var n = 0, i = e.length; n < i; n++) if (e[n] ===
                        t) return n;
                    return -1;
                },
                j = 'checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped',
                N = '[\\x20\\t\\r\\n\\f]',
                H = '(?:\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+',
                F = '\\[[\\x20\\t\\r\\n\\f]*(' + H + ')(?:' + N +
                    '*([*^$|!~]?=)' + N +
                    '*(?:\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)"|(' +
                    H + '))|)' + N + '*\\]', R = ':(' + H +
                ')(?:\\(((\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|' +
                F + ')*)|.*)\\)|)', z = new RegExp(N + '+', 'g'),
                B = new RegExp(
                    '^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$',
                    'g'),
                W = new RegExp('^[\\x20\\t\\r\\n\\f]*,[\\x20\\t\\r\\n\\f]*'),
                V = new RegExp(
                    '^[\\x20\\t\\r\\n\\f]*([>+~]|[\\x20\\t\\r\\n\\f])[\\x20\\t\\r\\n\\f]*'),
                q = new RegExp(N + '|>'), U = new RegExp(R),
                X = new RegExp('^' + H + '$'), $ = {
                    ID: new RegExp('^#(' + H + ')'),
                    CLASS: new RegExp('^\\.(' + H + ')'),
                    TAG: new RegExp('^(' + H + '|[*])'),
                    ATTR: new RegExp('^' + F),
                    PSEUDO: new RegExp('^' + R),
                    CHILD: new RegExp(
                        '^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)',
                        'i'),
                    bool: new RegExp('^(?:' + j + ')$', 'i'),
                    needsContext: new RegExp(
                        '^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)',
                        'i'),
                }, G = /HTML$/i, Z = /^(?:input|select|textarea|button)$/i,
                K = /^h\d$/i, J = /^[^{]+\{\s*\[native \w/,
                Q = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ee = /[+~]/,
                te = new RegExp(
                    '\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\([^\\r\\n\\f])',
                    'g'), ne = function (e, t) {
                    var n = '0x' + e.slice(1) - 65536;
                    return t || (n < 0
                        ? String.fromCharCode(n + 65536)
                        : String.fromCharCode(n >> 10 | 55296, 1023 & n | 56320));
                }, ie = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
                ae = function (e, t) {
                    return t ? '\0' === e ? '�' : e.slice(0, -1) + '\\' +
                        e.charCodeAt(e.length - 1).toString(16) + ' ' : '\\' +
                        e;
                }, re = function () {h();}, oe = xe((function (e) {
                    return !0 === e.disabled && 'fieldset' ===
                        e.nodeName.toLowerCase();
                }), { dir: 'parentNode', next: 'legend' });
            try {
                Y.apply(C = P.call(_.childNodes),
                    _.childNodes), C[_.childNodes.length].nodeType;
            } catch (e) {
                Y = {
                    apply: C.length ? function (e, t) {
                        O.apply(e, P.call(t));
                    } : function (
                        e, t) {
                        for (var n = e.length, i = 0; e[n++] = t[i++];) ;
                        e.length = n - 1;
                    },
                };
            }

            function se (e, t, i, a) {
                var r, s, c, u, d, p, v, y = t && t.ownerDocument,
                    _ = t ? t.nodeType : 9;
                if (i = i || [], 'string' != typeof e || !e || 1 !== _ && 9 !==
                _ && 11 !== _) return i;
                if (!a && (h(t), t = t || f, m)) {
                    if (11 !== _ && (d = Q.exec(e))) if (r = d[1]) {
                        if (9 === _) {
                            if (!(c = t.getElementById(r))) return i;
                            if (c.id === r) return i.push(c), i;
                        } else if (y && (c = y.getElementById(r)) && b(t, c) &&
                            c.id === r) return i.push(c), i;
                    } else {
                        if (d[2]) return Y.apply(i,
                            t.getElementsByTagName(e)), i;
                        if ((r = d[3]) && n.getElementsByClassName &&
                            t.getElementsByClassName) return Y.apply(i,
                            t.getElementsByClassName(r)), i;
                    }
                    if (n.qsa && !T[e + ' '] && (!g || !g.test(e)) &&
                        (1 !== _ || 'object' !== t.nodeName.toLowerCase())) {
                        if (v = e, y = t, 1 === _ && (q.test(e) || V.test(e))) {
                            for ((y = ee.test(e) && ve(t.parentNode) || t) ===
                                 t && n.scope || ((u = t.getAttribute('id'))
                                ? u = u.replace(ie, ae)
                                : t.setAttribute('id', u = x)), s = (p = o(
                                e)).length; s--;) p[s] = (u
                                ? '#' + u
                                : ':scope') + ' ' + be(p[s]);
                            v = p.join(',');
                        }
                        try {
                            return Y.apply(i, y.querySelectorAll(v)), i;
                        } catch (t) {T(e, !0);} finally {
                            u === x && t.removeAttribute('id');
                        }
                    }
                }
                return l(e.replace(B, '$1'), t, i, a);
            }

            function le () {
                var e = [];
                return function t (n, a) {
                    return e.push(n + ' ') > i.cacheLength &&
                    delete t[e.shift()], t[n + ' '] = a;
                };
            }

            function ce (e) {return e[x] = !0, e;}

            function ue (e) {
                var t = f.createElement('fieldset');
                try {
                    return !!e(t);
                } catch (e) {return !1;} finally {
                    t.parentNode && t.parentNode.removeChild(t), t = null;
                }
            }

            function de (e, t) {
                for (var n = e.split(
                    '|'), a = n.length; a--;) i.attrHandle[n[a]] = t;
            }

            function he (e, t) {
                var n = t && e, i = n && 1 === e.nodeType && 1 === t.nodeType &&
                    e.sourceIndex - t.sourceIndex;
                if (i) return i;
                if (n) for (; n = n.nextSibling;) if (n === t) return -1;
                return e ? 1 : -1;
            }

            function fe (e) {
                return function (t) {
                    return 'input' === t.nodeName.toLowerCase() && t.type === e;
                };
            }

            function pe (e) {
                return function (t) {
                    var n = t.nodeName.toLowerCase();
                    return ('input' === n || 'button' === n) && t.type === e;
                };
            }

            function me (e) {
                return function (t) {
                    return 'form' in t
                        ? t.parentNode && !1 === t.disabled
                            ? 'label' in t
                                ? 'label' in t.parentNode
                                    ? t.parentNode.disabled === e
                                    : t.disabled === e
                                : t.isDisabled === e || t.isDisabled !== !e &&
                                oe(t) === e
                            : t.disabled === e
                        : 'label' in t && t.disabled === e;
                };
            }

            function ge (e) {
                return ce((function (t) {
                    return t = +t, ce((function (n, i) {
                        for (var a, r = e([], n.length,
                            t), o = r.length; o--;) n[a = r[o]] &&
                        (n[a] = !(i[a] = n[a]));
                    }));
                }));
            }

            function ve (e) {
                return e && void 0 !== e.getElementsByTagName && e;
            }

            for (t in n = se.support = {}, r = se.isXML = function (e) {
                var t = e.namespaceURI,
                    n = (e.ownerDocument || e).documentElement;
                return !G.test(t || n && n.nodeName || 'HTML');
            }, h = se.setDocument = function (e) {
                var t, a, o = e ? e.ownerDocument || e : _;
                return o != f && 9 === o.nodeType && o.documentElement
                    ? (p = (f = o).documentElement, m = !r(f), _ != f &&
                    (a = f.defaultView) && a.top !== a && (a.addEventListener
                        ? a.addEventListener('unload', re, !1)
                        : a.attachEvent &&
                        a.attachEvent('onunload', re)), n.scope = ue(
                        (function (e) {
                            return p.appendChild(e).
                                appendChild(f.createElement('div')), void 0 !==
                            e.querySelectorAll &&
                            !e.querySelectorAll(':scope fieldset div').length;
                        })), n.attributes = ue((function (e) {
                        return e.className = 'i', !e.getAttribute('className');
                    })), n.getElementsByTagName = ue((function (e) {
                        return e.appendChild(
                            f.createComment('')), !e.getElementsByTagName(
                            '*').length;
                    })), n.getElementsByClassName = J.test(
                        f.getElementsByClassName), n.getById = ue(
                        (function (e) {
                            return p.appendChild(
                                e).id = x, !f.getElementsByName ||
                            !f.getElementsByName(x).length;
                        })), n.getById
                        ? (i.filter.ID = function (e) {
                            var t = e.replace(te, ne);
                            return function (e) {
                                return e.getAttribute('id') === t;
                            };
                        }, i.find.ID = function (e, t) {
                            if (void 0 !== t.getElementById && m) {
                                var n = t.getElementById(e);
                                return n ? [n] : [];
                            }
                        })
                        : (i.filter.ID = function (e) {
                            var t = e.replace(te, ne);
                            return function (e) {
                                var n = void 0 !== e.getAttributeNode &&
                                    e.getAttributeNode('id');
                                return n && n.value === t;
                            };
                        }, i.find.ID = function (e, t) {
                            if (void 0 !== t.getElementById && m) {
                                var n, i, a, r = t.getElementById(e);
                                if (r) {
                                    if ((n = r.getAttributeNode('id')) &&
                                        n.value === e) return [r];
                                    for (a = t.getElementsByName(
                                        e), i = 0; r = a[i++];) if ((n = r.getAttributeNode(
                                        'id')) && n.value === e) return [r];
                                }
                                return [];
                            }
                        }), i.find.TAG = n.getElementsByTagName ? function (
                        e, t) {
                        return void 0 !== t.getElementsByTagName
                            ? t.getElementsByTagName(e)
                            : n.qsa
                                ? t.querySelectorAll(e)
                                : void 0;
                    } : function (e, t) {
                        var n, i = [], a = 0, r = t.getElementsByTagName(e);
                        if ('*' === e) {
                            for (; n = r[a++];) 1 === n.nodeType && i.push(n);
                            return i;
                        }
                        return r;
                    }, i.find.CLASS = n.getElementsByClassName &&
                        function (e, t) {
                            if (void 0 !== t.getElementsByClassName &&
                                m) return t.getElementsByClassName(e);
                        }, v = [], g = [], (n.qsa = J.test(
                        f.querySelectorAll)) && (ue((function (e) {
                        var t;
                        p.appendChild(e).innerHTML = '<a id=\'' + x +
                            '\'></a><select id=\'' + x +
                            '-\r\\\' msallowcapture=\'\'><option selected=\'\'></option></select>', e.querySelectorAll(
                            '[msallowcapture^=\'\']').length && g.push(
                            '[*^$]=[\\x20\\t\\r\\n\\f]*(?:\'\'|"")'), e.querySelectorAll(
                            '[selected]').length || g.push(
                            '\\[[\\x20\\t\\r\\n\\f]*(?:value|' + j +
                            ')'), e.querySelectorAll(
                            '[id~=' + x + '-]').length ||
                        g.push('~='), (t = f.createElement(
                            'input')).setAttribute('name', ''), e.appendChild(
                            t), e.querySelectorAll('[name=\'\']').length ||
                        g.push(
                            '\\[[\\x20\\t\\r\\n\\f]*name[\\x20\\t\\r\\n\\f]*=[\\x20\\t\\r\\n\\f]*(?:\'\'|"")'), e.querySelectorAll(
                            ':checked').length ||
                        g.push(':checked'), e.querySelectorAll(
                            'a#' + x + '+*').length ||
                        g.push('.#.+[+~]'), e.querySelectorAll('\\\f'), g.push(
                            '[\\r\\n\\f]');
                    })), ue((function (e) {
                        e.innerHTML = '<a href=\'\' disabled=\'disabled\'></a><select disabled=\'disabled\'><option/></select>';
                        var t = f.createElement('input');
                        t.setAttribute('type', 'hidden'), e.appendChild(t).
                            setAttribute('name', 'D'), e.querySelectorAll(
                            '[name=d]').length &&
                        g.push('name[\\x20\\t\\r\\n\\f]*[*^$|!~]?='), 2 !==
                        e.querySelectorAll(':enabled').length &&
                        g.push(':enabled', ':disabled'), p.appendChild(
                            e).disabled = !0, 2 !==
                        e.querySelectorAll(':disabled').length &&
                        g.push(':enabled', ':disabled'), e.querySelectorAll(
                            '*,:x'), g.push(',.*:');
                    }))), (n.matchesSelector = J.test(
                        y = p.matches || p.webkitMatchesSelector ||
                            p.mozMatchesSelector || p.oMatchesSelector ||
                            p.msMatchesSelector)) && ue((function (e) {
                        n.disconnectedMatch = y.call(e, '*'), y.call(e,
                            '[s!=\'\']:x'), v.push('!=', R);
                    })), g = g.length &&
                        new RegExp(g.join('|')), v = v.length &&
                        new RegExp(v.join('|')), t = J.test(
                        p.compareDocumentPosition), b = t || J.test(p.contains)
                        ? function (e, t) {
                            var n = 9 === e.nodeType
                                ? e.documentElement
                                : e, i = t && t.parentNode;
                            return e === i || !(!i || 1 !== i.nodeType ||
                                !(n.contains
                                    ? n.contains(i)
                                    : e.compareDocumentPosition && 16 &
                                    e.compareDocumentPosition(i)));
                        }
                        : function (
                            e, t) {
                            if (t) for (; t = t.parentNode;) if (t ===
                                e) return !0;
                            return !1;
                        }, A = t ? function (e, t) {
                        if (e === t) return d = !0, 0;
                        var i = !e.compareDocumentPosition -
                            !t.compareDocumentPosition;
                        return i || (1 &
                        (i = (e.ownerDocument || e) == (t.ownerDocument || t)
                            ? e.compareDocumentPosition(t)
                            : 1) || !n.sortDetached &&
                        t.compareDocumentPosition(e) === i ? e == f ||
                        e.ownerDocument == _ && b(_, e) ? -1 : t == f ||
                        t.ownerDocument == _ && b(_, t) ? 1 : u ? I(u, e) -
                            I(u, t) : 0 : 4 & i ? -1 : 1);
                    } : function (e, t) {
                        if (e === t) return d = !0, 0;
                        var n, i = 0, a = e.parentNode, r = t.parentNode,
                            o = [e], s = [t];
                        if (!a || !r) return e == f ? -1 : t == f ? 1 : a
                            ? -1
                            : r ? 1 : u ? I(u, e) - I(u, t) : 0;
                        if (a === r) return he(e, t);
                        for (n = e; n = n.parentNode;) o.unshift(n);
                        for (n = t; n = n.parentNode;) s.unshift(n);
                        for (; o[i] === s[i];) i++;
                        return i ? he(o[i], s[i]) : o[i] == _ ? -1 : s[i] == _
                            ? 1
                            : 0;
                    }, f)
                    : f;
            }, se.matches = function (e, t) {
                return se(e, null, null, t);
            }, se.matchesSelector = function (e, t) {
                if (h(e), n.matchesSelector && m && !T[t + ' '] &&
                (!v || !v.test(t)) && (!g || !g.test(t))) try {
                    var i = y.call(e, t);
                    if (i || n.disconnectedMatch || e.document && 11 !==
                        e.document.nodeType) return i;
                } catch (e) {T(t, !0);}
                return se(t, f, null, [e]).length > 0;
            }, se.contains = function (e, t) {
                return (e.ownerDocument || e) != f && h(e), b(e, t);
            }, se.attr = function (e, t) {
                (e.ownerDocument || e) != f && h(e);
                var a = i.attrHandle[t.toLowerCase()],
                    r = a && D.call(i.attrHandle, t.toLowerCase())
                        ? a(e, t, !m)
                        : void 0;
                return void 0 !== r ? r : n.attributes || !m
                    ? e.getAttribute(t)
                    : (r = e.getAttributeNode(t)) && r.specified
                        ? r.value
                        : null;
            }, se.escape = function (e) {
                return (e + '').replace(ie, ae);
            }, se.error = function (e) {
                throw new Error('Syntax error, unrecognized expression: ' + e);
            }, se.uniqueSort = function (e) {
                var t, i = [], a = 0, r = 0;
                if (d = !n.detectDuplicates, u = !n.sortStable &&
                    e.slice(0), e.sort(A), d) {
                    for (; t = e[r++];) t === e[r] && (a = i.push(r));
                    for (; a--;) e.splice(i[a], 1);
                }
                return u = null, e;
            }, a = se.getText = function (e) {
                var t, n = '', i = 0, r = e.nodeType;
                if (r) {
                    if (1 === r || 9 === r || 11 === r) {
                        if ('string' ==
                            typeof e.textContent) return e.textContent;
                        for (e = e.firstChild; e; e = e.nextSibling) n += a(e);
                    } else if (3 === r || 4 === r) return e.nodeValue;
                } else for (; t = e[i++];) n += a(t);
                return n;
            }, (i = se.selectors = {
                cacheLength: 50,
                createPseudo: ce,
                match: $,
                attrHandle: {},
                find: {},
                relative: {
                    '>': { dir: 'parentNode', first: !0 },
                    ' ': { dir: 'parentNode' },
                    '+': { dir: 'previousSibling', first: !0 },
                    '~': { dir: 'previousSibling' },
                },
                preFilter: {
                    ATTR: function (e) {
                        return e[1] = e[1].replace(te, ne), e[3] = (e[3] ||
                            e[4] || e[5] || '').replace(te, ne), '~=' ===
                        e[2] && (e[3] = ' ' + e[3] + ' '), e.slice(0, 4);
                    },
                    CHILD: function (e) {
                        return e[1] = e[1].toLowerCase(), 'nth' ===
                        e[1].slice(0, 3)
                            ? (e[3] || se.error(e[0]), e[4] = +(e[4] ? e[5] +
                                (e[6] || 1) : 2 * ('even' === e[3] || 'odd' ===
                                e[3])), e[5] = +(e[7] + e[8] || 'odd' === e[3]))
                            : e[3] && se.error(e[0]), e;
                    },
                    PSEUDO: function (e) {
                        var t, n = !e[6] && e[2];
                        return $.CHILD.test(e[0]) ? null : (e[3]
                            ? e[2] = e[4] || e[5] || ''
                            : n && U.test(n) && (t = o(n, !0)) &&
                            (t = n.indexOf(')', n.length - t) - n.length) &&
                            (e[0] = e[0].slice(0, t), e[2] = n.slice(0,
                                t)), e.slice(0, 3));
                    },
                },
                filter: {
                    TAG: function (e) {
                        var t = e.replace(te, ne).toLowerCase();
                        return '*' === e
                            ? function () {return !0;}
                            : function (e) {
                                return e.nodeName &&
                                    e.nodeName.toLowerCase() === t;
                            };
                    },
                    CLASS: function (e) {
                        var t = M[e + ' '];
                        return t || (t = new RegExp(
                            '(^|[\\x20\\t\\r\\n\\f])' + e + '(' + N + '|$)')) &&
                            M(e, (function (e) {
                                return t.test('string' == typeof e.className &&
                                    e.className || void 0 !== e.getAttribute &&
                                    e.getAttribute('class') || '');
                            }));
                    },
                    ATTR: function (e, t, n) {
                        return function (i) {
                            var a = se.attr(i, e);
                            return null == a ? '!=' === t : !t ||
                                (a += '', '=' === t ? a === n : '!=' === t
                                    ? a !== n
                                    : '^=' === t
                                        ? n && 0 === a.indexOf(n)
                                        : '*=' === t
                                            ? n && a.indexOf(n) > -1
                                            : '$=' === t
                                                ? n && a.slice(-n.length) === n
                                                : '~=' === t
                                                    ? (' ' + a.replace(z, ' ') +
                                                    ' ').indexOf(n) > -1
                                                    : '|=' === t && (a === n ||
                                                    a.slice(0, n.length + 1) ===
                                                    n + '-'));
                        };
                    },
                    CHILD: function (e, t, n, i, a) {
                        var r = 'nth' !== e.slice(0, 3),
                            o = 'last' !== e.slice(-4), s = 'of-type' === t;
                        return 1 === i && 0 === a
                            ? function (e) {return !!e.parentNode;}
                            : function (t, n, l) {
                                var c, u, d, h, f, p, m = r !== o
                                    ? 'nextSibling'
                                    : 'previousSibling', g = t.parentNode,
                                    v = s && t.nodeName.toLowerCase(),
                                    y = !l && !s, b = !1;
                                if (g) {
                                    if (r) {
                                        for (; m;) {
                                            for (h = t; h = h[m];) if (s
                                                ? h.nodeName.toLowerCase() === v
                                                : 1 === h.nodeType) return !1;
                                            p = m = 'only' === e && !p &&
                                                'nextSibling';
                                        }
                                        return !0;
                                    }
                                    if (p = [
                                        o
                                            ? g.firstChild
                                            : g.lastChild], o && y) {
                                        for (b = (f = (c = (u = (d = (h = g)[x] ||
                                            (h[x] = {}))[h.uniqueID] ||
                                            (d[h.uniqueID] = {}))[e] ||
                                            [])[0] === w && c[1]) &&
                                            c[2], h = f &&
                                            g.childNodes[f]; h = ++f && h &&
                                            h[m] || (b = f = 0) ||
                                            p.pop();) if (1 === h.nodeType &&
                                            ++b && h === t) {
                                            u[e] = [w, f, b];
                                            break;
                                        }
                                    } else if (y &&
                                    (b = f = (c = (u = (d = (h = t)[x] ||
                                        (h[x] = {}))[h.uniqueID] ||
                                        (d[h.uniqueID] = {}))[e] || [])[0] ===
                                        w && c[1]), !1 === b) for (; (h = ++f &&
                                        h && h[m] || (b = f = 0) || p.pop()) &&
                                                                     ((s
                                                                         ? h.nodeName.toLowerCase() !==
                                                                         v
                                                                         : 1 !==
                                                                         h.nodeType) ||
                                                                         !++b ||
                                                                         (y &&
                                                                         ((u = (d = h[x] ||
                                                                             (h[x] = {}))[h.uniqueID] ||
                                                                             (d[h.uniqueID] = {}))[e] = [
                                                                             w,
                                                                             b]), h !==
                                                                         t));) ;
                                    return (b -= a) === i || b % i == 0 && b /
                                        i >= 0;
                                }
                            };
                    },
                    PSEUDO: function (e, t) {
                        var n,
                            a = i.pseudos[e] || i.setFilters[e.toLowerCase()] ||
                                se.error('unsupported pseudo: ' + e);
                        return a[x] ? a(t) : a.length > 1 ? (n = [
                            e,
                            e,
                            '',
                            t], i.setFilters.hasOwnProperty(e.toLowerCase())
                            ? ce((function (e, n) {
                                for (var i, r = a(e,
                                    t), o = r.length; o--;) e[i = I(e,
                                    r[o])] = !(n[i] = r[o]);
                            }))
                            : function (e) {return a(e, 0, n);}) : a;
                    },
                },
                pseudos: {
                    not: ce((function (e) {
                        var t = [], n = [], i = s(e.replace(B, '$1'));
                        return i[x] ? ce((function (e, t, n, a) {
                            for (var r, o = i(e, null, a,
                                []), s = e.length; s--;) (r = o[s]) &&
                            (e[s] = !(t[s] = r));
                        })) : function (e, a, r) {
                            return t[0] = e, i(t, null, r,
                                n), t[0] = null, !n.pop();
                        };
                    })),
                    has: ce((function (e) {
                        return function (t) {
                            return se(e, t).length > 0;
                        };
                    })),
                    contains: ce((function (e) {
                        return e = e.replace(te, ne), function (t) {
                            return (t.textContent || a(t)).indexOf(e) > -1;
                        };
                    })),
                    lang: ce((function (e) {
                        return X.test(e || '') ||
                        se.error('unsupported lang: ' + e), e = e.replace(te,
                            ne).toLowerCase(), function (t) {
                            var n;
                            do {
                                if (n = m ? t.lang : t.getAttribute(
                                    'xml:lang') || t.getAttribute(
                                    'lang')) return (n = n.toLowerCase()) ===
                                    e || 0 === n.indexOf(e + '-');
                            } while ((t = t.parentNode) && 1 === t.nodeType);
                            return !1;
                        };
                    })),
                    target: function (t) {
                        var n = e.location && e.location.hash;
                        return n && n.slice(1) === t.id;
                    },
                    root: function (e) {return e === p;},
                    focus: function (e) {
                        return e === f.activeElement &&
                            (!f.hasFocus || f.hasFocus()) &&
                            !!(e.type || e.href || ~e.tabIndex);
                    },
                    enabled: me(!1),
                    disabled: me(!0),
                    checked: function (e) {
                        var t = e.nodeName.toLowerCase();
                        return 'input' === t && !!e.checked || 'option' === t &&
                            !!e.selected;
                    },
                    selected: function (e) {
                        return e.parentNode &&
                        e.parentNode.selectedIndex, !0 === e.selected;
                    },
                    empty: function (e) {
                        for (e = e.firstChild; e; e = e.nextSibling) if (e.nodeType <
                            6) return !1;
                        return !0;
                    },
                    parent: function (e) {return !i.pseudos.empty(e);},
                    header: function (e) {return K.test(e.nodeName);},
                    input: function (e) {return Z.test(e.nodeName);},
                    button: function (e) {
                        var t = e.nodeName.toLowerCase();
                        return 'input' === t && 'button' === e.type ||
                            'button' === t;
                    },
                    text: function (e) {
                        var t;
                        return 'input' === e.nodeName.toLowerCase() &&
                            'text' === e.type &&
                            (null == (t = e.getAttribute('type')) || 'text' ===
                                t.toLowerCase());
                    },
                    first: ge((function () {return [0];})),
                    last: ge((function (e, t) {return [t - 1];})),
                    eq: ge((function (e, t, n) {return [n < 0 ? n + t : n];})),
                    even: ge((function (e, t) {
                        for (var n = 0; n < t; n += 2) e.push(n);
                        return e;
                    })),
                    odd: ge((function (e, t) {
                        for (var n = 1; n < t; n += 2) e.push(n);
                        return e;
                    })),
                    lt: ge((function (e, t, n) {
                        for (var i = n < 0 ? n + t : n > t
                            ? t
                            : n; --i >= 0;) e.push(i);
                        return e;
                    })),
                    gt: ge((function (e, t, n) {
                        for (var i = n < 0
                            ? n + t
                            : n; ++i < t;) e.push(i);
                        return e;
                    })),
                },
            }).pseudos.nth = i.pseudos.eq, {
                radio: !0,
                checkbox: !0,
                file: !0,
                password: !0,
                image: !0,
            }) i.pseudos[t] = fe(t);
            for (t in { submit: !0, reset: !0 }) i.pseudos[t] = pe(t);

            function ye () {}

            function be (e) {
                for (var t = 0, n = e.length, i = ''; t <
                n; t++) i += e[t].value;
                return i;
            }

            function xe (e, t, n) {
                var i = t.dir, a = t.next, r = a || i,
                    o = n && 'parentNode' === r, s = k++;
                return t.first ? function (t, n, a) {
                    for (; t = t[i];) if (1 === t.nodeType || o) return e(t, n,
                        a);
                    return !1;
                } : function (t, n, l) {
                    var c, u, d, h = [w, s];
                    if (l) {
                        for (; t = t[i];) if ((1 === t.nodeType || o) &&
                            e(t, n, l)) return !0;
                    } else for (; t = t[i];) if (1 === t.nodeType ||
                        o) if (u = (d = t[x] || (t[x] = {}))[t.uniqueID] ||
                        (d[t.uniqueID] = {}), a && a ===
                    t.nodeName.toLowerCase()) t = t[i] || t; else {
                        if ((c = u[r]) && c[0] === w && c[1] ===
                            s) return h[2] = c[2];
                        if (u[r] = h, h[2] = e(t, n, l)) return !0;
                    }
                    return !1;
                };
            }

            function _e (e) {
                return e.length > 1 ? function (
                    t, n, i) {
                    for (var a = e.length; a--;) if (!e[a](t, n, i)) return !1;
                    return !0;
                } : e[0];
            }

            function we (
                e, t, n, i, a) {
                for (var r, o = [], s = 0, l = e.length, c = null != t; s <
                l; s++) (r = e[s]) &&
                (n && !n(r, i, a) || (o.push(r), c && t.push(s)));
                return o;
            }

            function ke (e, t, n, i, a, r) {
                return i && !i[x] && (i = ke(i)), a && !a[x] &&
                (a = ke(a, r)), ce((function (r, o, s, l) {
                    var c, u, d, h = [], f = [], p = o.length, m = r ||
                        function (e, t, n) {
                            for (var i = 0, a = t.length; i < a; i++) se(e,
                                t[i], n);
                            return n;
                        }(t || '*', s.nodeType ? [s] : s, []),
                        g = !e || !r && t ? m : we(m, h, e, s, l),
                        v = n ? a || (r ? e : p || i) ? [] : o : g;
                    if (n && n(g, v, s, l), i) for (c = we(v, f), i(c, [], s,
                        l), u = c.length; u--;) (d = c[u]) &&
                    (v[f[u]] = !(g[f[u]] = d));
                    if (r) {
                        if (a || e) {
                            if (a) {
                                for (c = [], u = v.length; u--;) (d = v[u]) &&
                                c.push(g[u] = d);
                                a(null, v = [], c, l);
                            }
                            for (u = v.length; u--;) (d = v[u]) &&
                            (c = a ? I(r, d) : h[u]) > -1 &&
                            (r[c] = !(o[c] = d));
                        }
                    } else v = we(v === o ? v.splice(p, v.length) : v), a ? a(
                        null, o, v, l) : Y.apply(o, v);
                }));
            }

            function Me (e) {
                for (var t, n, a, r = e.length, o = i.relative[e[0].type], s = o ||
                    i.relative[' '], l = o ? 1 : 0, u = xe(
                    (function (e) {return e === t;}), s, !0), d = xe(
                    (function (e) {return I(t, e) > -1;}), s, !0), h = [
                    function (
                        e, n, i) {
                        var a = !o && (i || n !== c) ||
                            ((t = n).nodeType ? u(e, n, i) : d(e, n, i));
                        return t = null, a;
                    }]; l < r; l++) if (n = i.relative[e[l].type]) h = [
                    xe(_e(h), n)]; else {
                    if ((n = i.filter[e[l].type].apply(null,
                        e[l].matches))[x]) {
                        for (a = ++l; a < r && !i.relative[e[a].type]; a++) ;
                        return ke(l > 1 && _e(h), l > 1 && be(e.slice(0, l - 1).
                            concat(
                                { value: ' ' === e[l - 2].type ? '*' : '' })).
                            replace(B, '$1'), n, l < a && Me(e.slice(l, a)),
                            a < r && Me(e = e.slice(a)), a < r && be(e));
                    }
                    h.push(n);
                }
                return _e(h);
            }

            return ye.prototype = i.filters = i.pseudos, i.setFilters = new ye, o = se.tokenize = function (
                e, t) {
                var n, a, r, o, s, l, c, u = L[e + ' '];
                if (u) return t ? 0 : u.slice(0);
                for (s = e, l = [], c = i.preFilter; s;) {
                    for (o in n && !(a = W.exec(s)) ||
                    (a && (s = s.slice(a[0].length) || s), l.push(
                        r = [])), n = !1, (a = V.exec(s)) &&
                    (n = a.shift(), r.push(
                        { value: n, type: a[0].replace(B, ' ') }), s = s.slice(
                        n.length)), i.filter) !(a = $[o].exec(s)) || c[o] &&
                    !(a = c[o](a)) || (n = a.shift(), r.push(
                        { value: n, type: o, matches: a }), s = s.slice(
                        n.length));
                    if (!n) break;
                }
                return t ? s.length : s ? se.error(e) : L(e, l).slice(0);
            }, s = se.compile = function (e, t) {
                var n, a = [], r = [], s = S[e + ' '];
                if (!s) {
                    for (t || (t = o(e)), n = t.length; n--;) (s = Me(t[n]))[x]
                        ? a.push(s)
                        : r.push(s);
                    (s = S(e, function (e, t) {
                        var n = t.length > 0, a = e.length > 0,
                            r = function (r, o, s, l, u) {
                                var d, p, g, v = 0, y = '0', b = r && [],
                                    x = [], _ = c,
                                    k = r || a && i.find.TAG('*', u),
                                    M = w += null == _ ? 1 : Math.random() ||
                                        .1, L = k.length;
                                for (u && (c = o == f || o || u); y !== L &&
                                null != (d = k[y]); y++) {
                                    if (a && d) {
                                        for (p = 0, o || d.ownerDocument == f ||
                                        (h(d), s = !m); g = e[p++];) if (g(d,
                                            o || f, s)) {
                                            l.push(d);
                                            break;
                                        }
                                        u && (w = M);
                                    }
                                    n && ((d = !g && d) && v--, r && b.push(d));
                                }
                                if (v += y, n && y !== v) {
                                    for (p = 0; g = t[p++];) g(b, x, o, s);
                                    if (r) {
                                        if (v > 0) for (; y--;) b[y] || x[y] ||
                                        (x[y] = E.call(l));
                                        x = we(x);
                                    }
                                    Y.apply(l, x), u && !r && x.length > 0 &&
                                    v + t.length > 1 && se.uniqueSort(l);
                                }
                                return u && (w = M, c = _), b;
                            };
                        return n ? ce(r) : r;
                    }(r, a))).selector = e;
                }
                return s;
            }, l = se.select = function (e, t, n, a) {
                var r, l, c, u, d, h = 'function' == typeof e && e,
                    f = !a && o(e = h.selector || e);
                if (n = n || [], 1 === f.length) {
                    if ((l = f[0] = f[0].slice(0)).length > 2 && 'ID' ===
                        (c = l[0]).type && 9 === t.nodeType && m &&
                        i.relative[l[1].type]) {
                        if (!(t = (i.find.ID(c.matches[0].replace(te, ne), t) ||
                            [])[0])) return n;
                        h && (t = t.parentNode), e = e.slice(
                            l.shift().value.length);
                    }
                    for (r = $.needsContext.test(e) ? 0 : l.length; r-- &&
                    (c = l[r], !i.relative[u = c.type]);) if ((d = i.find[u]) &&
                        (a = d(c.matches[0].replace(te, ne),
                            ee.test(l[0].type) && ve(t.parentNode) || t))) {
                        if (l.splice(r, 1), !(e = a.length &&
                            be(l))) return Y.apply(n, a), n;
                        break;
                    }
                }
                return (h || s(e, f))(a, t, !m, n,
                    !t || ee.test(e) && ve(t.parentNode) || t), n;
            }, n.sortStable = x.split('').sort(A).join('') ===
                x, n.detectDuplicates = !!d, h(), n.sortDetached = ue(
                (function (e) {
                    return 1 &
                        e.compareDocumentPosition(f.createElement('fieldset'));
                })), ue((function (e) {
                return e.innerHTML = '<a href=\'#\'></a>', '#' ===
                e.firstChild.getAttribute('href');
            })) || de('type|href|height|width', (function (e, t, n) {
                if (!n) return e.getAttribute(t,
                    'type' === t.toLowerCase() ? 1 : 2);
            })), n.attributes && ue((function (e) {
                return e.innerHTML = '<input/>', e.firstChild.setAttribute(
                    'value', ''), '' === e.firstChild.getAttribute('value');
            })) || de('value', (function (e, t, n) {
                if (!n && 'input' ===
                    e.nodeName.toLowerCase()) return e.defaultValue;
            })), ue(
                (function (e) {return null == e.getAttribute('disabled');})) ||
            de(j, (function (e, t, n) {
                var i;
                if (!n) return !0 === e[t]
                    ? t.toLowerCase()
                    : (i = e.getAttributeNode(t)) && i.specified
                        ? i.value
                        : null;
            })), se;
        }(e);
    _.find = k, _.expr = k.selectors, _.expr[':'] = _.expr.pseudos, _.uniqueSort = _.unique = k.uniqueSort, _.text = k.getText, _.isXMLDoc = k.isXML, _.contains = k.contains, _.escapeSelector = k.escape;
    var M = function (e, t, n) {
        for (var i = [], a = void 0 !== n; (e = e[t]) && 9 !==
        e.nodeType;) if (1 === e.nodeType) {
            if (a && _(e).is(n)) break;
            i.push(e);
        }
        return i;
    }, L = function (e, t) {
        for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t &&
        n.push(e);
        return n;
    }, S = _.expr.match.needsContext;

    function T (e, t) {
        return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase();
    }

    var A = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;

    function D (e, t, n) {
        return p(t) ? _.grep(e,
            (function (e, i) {return !!t.call(e, i, e) !== n;})) : t.nodeType
            ? _.grep(e, (function (e) {return e === t !== n;}))
            : 'string' != typeof t ? _.grep(e,
                (function (e) {return s.call(t, e) > -1 !== n;})) : _.filter(t,
                e, n);
    }

    _.filter = function (e, t, n) {
        var i = t[0];
        return n && (e = ':not(' + e + ')'), 1 === t.length && 1 === i.nodeType
            ? _.find.matchesSelector(i, e) ? [i] : []
            : _.find.matches(e,
                _.grep(t, (function (e) {return 1 === e.nodeType;})));
    }, _.fn.extend({
        find: function (e) {
            var t, n, i = this.length, a = this;
            if ('string' != typeof e) return this.pushStack(_(e).
                filter((function () {
                    for (t = 0; t < i; t++) if (_.contains(a[t],
                        this)) return !0;
                })));
            for (n = this.pushStack([]), t = 0; t < i; t++) _.find(e, a[t], n);
            return i > 1 ? _.uniqueSort(n) : n;
        },
        filter: function (e) {return this.pushStack(D(this, e || [], !1));},
        not: function (e) {return this.pushStack(D(this, e || [], !0));},
        is: function (e) {
            return !!D(this, 'string' == typeof e && S.test(e) ? _(e) : e || [],
                !1).length;
        },
    });
    var C, E = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
    (_.fn.init = function (e, t, n) {
        var i, a;
        if (!e) return this;
        if (n = n || C, 'string' == typeof e) {
            if (!(i = '<' === e[0] && '>' === e[e.length - 1] && e.length >= 3
                ? [null, e, null]
                : E.exec(e)) || !i[1] && t) return !t || t.jquery
                ? (t || n).find(e)
                : this.constructor(t).find(e);
            if (i[1]) {
                if (t = t instanceof _ ? t[0] : t, _.merge(this,
                    _.parseHTML(i[1],
                        t && t.nodeType ? t.ownerDocument || t : g,
                        !0)), A.test(i[1]) &&
                _.isPlainObject(t)) for (i in t) p(this[i])
                    ? this[i](t[i])
                    : this.attr(i, t[i]);
                return this;
            }
            return (a = g.getElementById(i[2])) &&
            (this[0] = a, this.length = 1), this;
        }
        return e.nodeType ? (this[0] = e, this.length = 1, this) : p(e)
            ? void 0 !== n.ready ? n.ready(e) : e(_)
            : _.makeArray(e, this);
    }).prototype = _.fn, C = _(g);
    var O = /^(?:parents|prev(?:Until|All))/,
        Y = { children: !0, contents: !0, next: !0, prev: !0 };

    function P (e, t) {
        for (; (e = e[t]) && 1 !== e.nodeType;) ;
        return e;
    }

    _.fn.extend({
        has: function (e) {
            var t = _(e, this), n = t.length;
            return this.filter((function () {
                for (var e = 0; e < n; e++) if (_.contains(this,
                    t[e])) return !0;
            }));
        },
        closest: function (e, t) {
            var n, i = 0, a = this.length, r = [],
                o = 'string' != typeof e && _(e);
            if (!S.test(e)) for (; i < a; i++) for (n = this[i]; n && n !==
            t; n = n.parentNode) if (n.nodeType < 11 &&
                (o ? o.index(n) > -1 : 1 === n.nodeType &&
                    _.find.matchesSelector(n, e))) {
                r.push(n);
                break;
            }
            return this.pushStack(r.length > 1 ? _.uniqueSort(r) : r);
        },
        index: function (e) {
            return e ? 'string' == typeof e ? s.call(_(e), this[0]) : s.call(
                this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode
                ? this.first().prevAll().length
                : -1;
        },
        add: function (e, t) {
            return this.pushStack(_.uniqueSort(_.merge(this.get(), _(e, t))));
        },
        addBack: function (e) {
            return this.add(
                null == e ? this.prevObject : this.prevObject.filter(e));
        },
    }), _.each({
        parent: function (e) {
            var t = e.parentNode;
            return t && 11 !== t.nodeType ? t : null;
        },
        parents: function (e) {return M(e, 'parentNode');},
        parentsUntil: function (e, t, n) {return M(e, 'parentNode', n);},
        next: function (e) {return P(e, 'nextSibling');},
        prev: function (e) {return P(e, 'previousSibling');},
        nextAll: function (e) {return M(e, 'nextSibling');},
        prevAll: function (e) {return M(e, 'previousSibling');},
        nextUntil: function (e, t, n) {return M(e, 'nextSibling', n);},
        prevUntil: function (e, t, n) {return M(e, 'previousSibling', n);},
        siblings: function (e) {return L((e.parentNode || {}).firstChild, e);},
        children: function (e) {return L(e.firstChild);},
        contents: function (e) {
            return null != e.contentDocument && i(e.contentDocument)
                ? e.contentDocument
                : (T(e, 'template') && (e = e.content || e), _.merge([],
                    e.childNodes));
        },
    }, (function (e, t) {
        _.fn[e] = function (n, i) {
            var a = _.map(this, t, n);
            return 'Until' !== e.slice(-5) && (i = n), i && 'string' ==
            typeof i && (a = _.filter(i, a)), this.length > 1 &&
            (Y[e] || _.uniqueSort(a), O.test(e) && a.reverse()), this.pushStack(
                a);
        };
    }));
    var I = /[^\x20\t\r\n\f]+/g;

    function j (e) {return e;}

    function N (e) {throw e;}

    function H (e, t, n, i) {
        var a;
        try {
            e && p(a = e.promise) ? a.call(e).done(t).fail(n) : e &&
            p(a = e.then) ? a.call(e, t, n) : t.apply(void 0, [e].slice(i));
        } catch (e) {n.apply(void 0, [e]);}
    }

    _.Callbacks = function (e) {
        e = 'string' == typeof e ? function (e) {
            var t = {};
            return _.each(e.match(I) || [], (function (e, n) {t[n] = !0;})), t;
        }(e) : _.extend({}, e);
        var t, n, i, a, r = [], o = [], s = -1, l = function () {
            for (a = a ||
                e.once, i = t = !0; o.length; s = -1) for (n = o.shift(); ++s <
            r.length;) !1 === r[s].apply(n[0], n[1]) && e.stopOnFalse &&
            (s = r.length, n = !1);
            e.memory || (n = !1), t = !1, a && (r = n ? [] : '');
        }, c = {
            add: function () {
                return r && (n && !t &&
                (s = r.length - 1, o.push(n)), function t (n) {
                    _.each(n, (function (n, i) {
                        p(i)
                            ? e.unique && c.has(i) || r.push(i)
                            : i && i.length && 'string' !== b(i) && t(i);
                    }));
                }(arguments), n && !t && l()), this;
            },
            remove: function () {
                return _.each(arguments, (function (e, t) {
                    for (var n; (n = _.inArray(t, r, n)) > -1;) r.splice(n,
                        1), n <= s && s--;
                })), this;
            },
            has: function (e) {return e ? _.inArray(e, r) > -1 : r.length > 0;},
            empty: function () {return r && (r = []), this;},
            disable: function () {return a = o = [], r = n = '', this;},
            disabled: function () {return !r;},
            lock: function () {
                return a = o = [], n || t || (r = n = ''), this;
            },
            locked: function () {return !!a;},
            fireWith: function (e, n) {
                return a ||
                (n = [e, (n = n || []).slice ? n.slice() : n], o.push(n), t ||
                l()), this;
            },
            fire: function () {return c.fireWith(this, arguments), this;},
            fired: function () {return !!i;},
        };
        return c;
    }, _.extend({
        Deferred: function (t) {
            var n = [
                [
                    'notify',
                    'progress',
                    _.Callbacks('memory'),
                    _.Callbacks('memory'),
                    2],
                [
                    'resolve',
                    'done',
                    _.Callbacks('once memory'),
                    _.Callbacks('once memory'),
                    0,
                    'resolved'],
                [
                    'reject',
                    'fail',
                    _.Callbacks('once memory'),
                    _.Callbacks('once memory'),
                    1,
                    'rejected']], i = 'pending', a = {
                state: function () {return i;},
                always: function () {
                    return r.done(arguments).
                        fail(arguments), this;
                },
                catch: function (e) {return a.then(null, e);},
                pipe: function () {
                    var e = arguments;
                    return _.Deferred((function (t) {
                        _.each(n, (function (n, i) {
                            var a = p(e[i[4]]) && e[i[4]];
                            r[i[1]]((function () {
                                var e = a && a.apply(this, arguments);
                                e && p(e.promise) ? e.promise().
                                    progress(t.notify).
                                    done(t.resolve).
                                    fail(t.reject) : t[i[0] + 'With'](this,
                                    a ? [e] : arguments);
                            }));
                        })), e = null;
                    })).promise();
                },
                then: function (t, i, a) {
                    var r = 0;

                    function o (t, n, i, a) {
                        return function () {
                            var s = this, l = arguments, c = function () {
                                var e, c;
                                if (!(t < r)) {
                                    if ((e = i.apply(s, l)) ===
                                        n.promise()) throw new TypeError(
                                        'Thenable self-resolution');
                                    c = e &&
                                        ('object' == typeof e || 'function' ==
                                            typeof e) && e.then, p(c) ? a
                                        ? c.call(e, o(r, n, j, a),
                                            o(r, n, N, a))
                                        : (r++, c.call(e, o(r, n, j, a),
                                            o(r, n, N, a),
                                            o(r, n, j, n.notifyWith))) : (i !==
                                    j && (s = void 0, l = [e]), (a ||
                                        n.resolveWith)(s, l));
                                }
                            }, u = a
                                ? c
                                : function () {
                                    try {c();} catch (e) {
                                        _.Deferred.exceptionHook &&
                                        _.Deferred.exceptionHook(e,
                                            u.stackTrace), t + 1 >= r &&
                                        (i !== N &&
                                        (s = void 0, l = [e]), n.rejectWith(s,
                                            l));
                                    }
                                };
                            t ? u() : (_.Deferred.getStackHook &&
                            (u.stackTrace = _.Deferred.getStackHook()), e.setTimeout(
                                u));
                        };
                    }

                    return _.Deferred((function (e) {
                        n[0][3].add(
                            o(0, e, p(a) ? a : j, e.notifyWith)), n[1][3].add(
                            o(0, e, p(t) ? t : j)), n[2][3].add(
                            o(0, e, p(i) ? i : N));
                    })).promise();
                },
                promise: function (e) {return null != e ? _.extend(e, a) : a;},
            }, r = {};
            return _.each(n, (function (e, t) {
                var o = t[2], s = t[5];
                a[t[1]] = o.add, s &&
                o.add((function () {i = s;}), n[3 - e][2].disable,
                    n[3 - e][3].disable, n[0][2].lock, n[0][3].lock), o.add(
                    t[3].fire), r[t[0]] = function () {
                    return r[t[0] + 'With'](this === r ? void 0 : this,
                        arguments), this;
                }, r[t[0] + 'With'] = o.fireWith;
            })), a.promise(r), t && t.call(r, r), r;
        },
        when: function (e) {
            var t = arguments.length, n = t, i = Array(n),
                r = a.call(arguments), o = _.Deferred(), s = function (e) {
                    return function (n) {
                        i[e] = this, r[e] = arguments.length > 1
                            ? a.call(arguments)
                            : n, --t || o.resolveWith(i, r);
                    };
                };
            if (t <= 1 &&
                (H(e, o.done(s(n)).resolve, o.reject, !t), 'pending' ===
                o.state() || p(r[n] && r[n].then))) return o.then();
            for (; n--;) H(r[n], s(n), o.reject);
            return o.promise();
        },
    });
    var F = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
    _.Deferred.exceptionHook = function (t, n) {
        e.console && e.console.warn && t && F.test(t.name) &&
        e.console.warn('jQuery.Deferred exception: ' + t.message, t.stack, n);
    }, _.readyException = function (t) {
        e.setTimeout((function () {throw t;}));
    };
    var R = _.Deferred();

    function z () {
        g.removeEventListener('DOMContentLoaded', z), e.removeEventListener(
            'load', z), _.ready();
    }

    _.fn.ready = function (e) {
        return R.then(e).
            catch((function (e) {_.readyException(e);})), this;
    }, _.extend({
        isReady: !1,
        readyWait: 1,
        ready: function (e) {
            (!0 === e ? --_.readyWait : _.isReady) ||
            (_.isReady = !0, !0 !== e && --_.readyWait > 0 ||
            R.resolveWith(g, [_]));
        },
    }), _.ready.then = R.then, 'complete' === g.readyState || 'loading' !==
    g.readyState && !g.documentElement.doScroll
        ? e.setTimeout(_.ready)
        : (g.addEventListener('DOMContentLoaded', z), e.addEventListener('load',
            z));
    var B = function (e, t, n, i, a, r, o) {
        var s = 0, l = e.length, c = null == n;
        if ('object' === b(n)) for (s in a = !0, n) B(e, t, s, n[s], !0, r,
            o); else if (void 0 !== i && (a = !0, p(i) || (o = !0), c &&
        (o ? (t.call(e, i), t = null) : (c = t, t = function (e, t, n) {
            return c.call(_(e), n);
        })), t)) for (; s < l; s++) t(e[s], n,
            o ? i : i.call(e[s], s, t(e[s], n)));
        return a ? e : c ? t.call(e) : l ? t(e[0], n) : r;
    }, W = /^-ms-/, V = /-([a-z])/g;

    function q (e, t) {return t.toUpperCase();}

    function U (e) {return e.replace(W, 'ms-').replace(V, q);}

    var X = function (e) {
        return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType;
    };

    function $ () {this.expando = _.expando + $.uid++;}

    $.uid = 1, $.prototype = {
        cache: function (e) {
            var t = e[this.expando];
            return t || (t = {}, X(e) &&
            (e.nodeType ? e[this.expando] = t : Object.defineProperty(e,
                this.expando, { value: t, configurable: !0 }))), t;
        },
        set: function (e, t, n) {
            var i, a = this.cache(e);
            if ('string' == typeof t) a[U(t)] = n; else for (i in t) a[U(
                i)] = t[i];
            return a;
        },
        get: function (e, t) {
            return void 0 === t
                ? this.cache(e)
                : e[this.expando] && e[this.expando][U(t)];
        },
        access: function (e, t, n) {
            return void 0 === t || t && 'string' == typeof t && void 0 === n
                ? this.get(e, t)
                : (this.set(e, t, n), void 0 !== n ? n : t);
        },
        remove: function (e, t) {
            var n, i = e[this.expando];
            if (void 0 !== i) {
                if (void 0 !== t) {
                    n = (t = Array.isArray(t)
                        ? t.map(U)
                        : (t = U(t)) in i ? [t] : t.match(I) || []).length;
                    for (; n--;) delete i[t[n]];
                }
                (void 0 === t || _.isEmptyObject(i)) &&
                (e.nodeType
                    ? e[this.expando] = void 0
                    : delete e[this.expando]);
            }
        },
        hasData: function (e) {
            var t = e[this.expando];
            return void 0 !== t && !_.isEmptyObject(t);
        },
    };
    var G = new $, Z = new $, K = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, J = /[A-Z]/g;

    function Q (e, t, n) {
        var i;
        if (void 0 === n && 1 === e.nodeType) if (i = 'data-' +
            t.replace(J, '-$&').toLowerCase(), 'string' ==
        typeof (n = e.getAttribute(i))) {
            try {
                n = function (e) {
                    return 'true' === e || 'false' !== e &&
                        ('null' === e ? null : e === +e + '' ? +e : K.test(e)
                            ? JSON.parse(e)
                            : e);
                }(n);
            } catch (e) {}
            Z.set(e, t, n);
        } else n = void 0;
        return n;
    }

    _.extend({
        hasData: function (e) {return Z.hasData(e) || G.hasData(e);},
        data: function (e, t, n) {return Z.access(e, t, n);},
        removeData: function (e, t) {Z.remove(e, t);},
        _data: function (e, t, n) {return G.access(e, t, n);},
        _removeData: function (e, t) {G.remove(e, t);},
    }), _.fn.extend({
        data: function (e, t) {
            var n, i, a, r = this[0], o = r && r.attributes;
            if (void 0 === e) {
                if (this.length && (a = Z.get(r), 1 === r.nodeType &&
                !G.get(r, 'hasDataAttrs'))) {
                    for (n = o.length; n--;) o[n] && 0 ===
                    (i = o[n].name).indexOf('data-') &&
                    (i = U(i.slice(5)), Q(r, i, a[i]));
                    G.set(r, 'hasDataAttrs', !0);
                }
                return a;
            }
            return 'object' == typeof e ? this.each(
                (function () {Z.set(this, e);})) : B(this, (function (t) {
                var n;
                if (r && void 0 === t) return void 0 !== (n = Z.get(r, e)) ||
                void 0 !== (n = Q(r, e)) ? n : void 0;
                this.each((function () {Z.set(this, e, t);}));
            }), null, t, arguments.length > 1, null, !0);
        },
        removeData: function (e) {
            return this.each((function () {Z.remove(this, e);}));
        },
    }), _.extend({
        queue: function (e, t, n) {
            var i;
            if (e) return t = (t || 'fx') + 'queue', i = G.get(e, t), n &&
            (!i || Array.isArray(n)
                ? i = G.access(e, t, _.makeArray(n))
                : i.push(n)), i || [];
        }, dequeue: function (e, t) {
            t = t || 'fx';
            var n = _.queue(e, t), i = n.length, a = n.shift(),
                r = _._queueHooks(e, t);
            'inprogress' === a && (a = n.shift(), i--), a &&
            ('fx' === t && n.unshift('inprogress'), delete r.stop, a.call(e,
                (function () {_.dequeue(e, t);}), r)), !i && r &&
            r.empty.fire();
        }, _queueHooks: function (e, t) {
            var n = t + 'queueHooks';
            return G.get(e, n) || G.access(e, n, {
                empty: _.Callbacks('once memory').
                    add((function () {G.remove(e, [t + 'queue', n]);})),
            });
        },
    }), _.fn.extend({
        queue: function (e, t) {
            var n = 2;
            return 'string' != typeof e &&
            (t = e, e = 'fx', n--), arguments.length < n
                ? _.queue(this[0], e)
                : void 0 === t ? this : this.each((function () {
                    var n = _.queue(this, e, t);
                    _._queueHooks(this, e), 'fx' === e && 'inprogress' !==
                    n[0] && _.dequeue(this, e);
                }));
        },
        dequeue: function (e) {
            return this.each((function () {_.dequeue(this, e);}));
        },
        clearQueue: function (e) {return this.queue(e || 'fx', []);},
        promise: function (e, t) {
            var n, i = 1, a = _.Deferred(), r = this, o = this.length,
                s = function () {--i || a.resolveWith(r, [r]);};
            for ('string' != typeof e && (t = e, e = void 0), e = e ||
                'fx'; o--;) (n = G.get(r[o], e + 'queueHooks')) && n.empty &&
            (i++, n.empty.add(s));
            return s(), a.promise(t);
        },
    });
    var ee = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
        te = new RegExp('^(?:([+-])=|)(' + ee + ')([a-z%]*)$', 'i'),
        ne = ['Top', 'Right', 'Bottom', 'Left'], ie = g.documentElement,
        ae = function (e) {return _.contains(e.ownerDocument, e);},
        re = { composed: !0 };
    ie.getRootNode && (ae = function (e) {
        return _.contains(e.ownerDocument, e) || e.getRootNode(re) ===
            e.ownerDocument;
    });
    var oe = function (e, t) {
        return 'none' === (e = t || e).style.display || '' ===
            e.style.display && ae(e) && 'none' === _.css(e, 'display');
    };

    function se (e, t, n, i) {
        var a, r, o = 20, s = i ? function () {return i.cur();} : function () {
                return _.css(e, t, '');
            }, l = s(), c = n && n[3] || (_.cssNumber[t] ? '' : 'px'),
            u = e.nodeType && (_.cssNumber[t] || 'px' !== c && +l) &&
                te.exec(_.css(e, t));
        if (u && u[3] !== c) {
            for (l /= 2, c = c || u[3], u = +l || 1; o--;) _.style(e, t,
                u + c), (1 - r) * (1 - (r = s() / l || .5)) <= 0 &&
            (o = 0), u /= r;
            u *= 2, _.style(e, t, u + c), n = n || [];
        }
        return n &&
        (u = +u || +l || 0, a = n[1] ? u + (n[1] + 1) * n[2] : +n[2], i &&
        (i.unit = c, i.start = u, i.end = a)), a;
    }

    var le = {};

    function ce (e) {
        var t, n = e.ownerDocument, i = e.nodeName, a = le[i];
        return a || (t = n.body.appendChild(n.createElement(i)), a = _.css(t,
            'display'), t.parentNode.removeChild(t), 'none' === a &&
        (a = 'block'), le[i] = a, a);
    }

    function ue (e, t) {
        for (var n, i, a = [], r = 0, o = e.length; r <
        o; r++) (i = e[r]).style && (n = i.style.display, t ? ('none' === n &&
        (a[r] = G.get(i, 'display') || null, a[r] ||
        (i.style.display = '')), '' === i.style.display && oe(i) &&
        (a[r] = ce(i))) : 'none' !== n &&
            (a[r] = 'none', G.set(i, 'display', n)));
        for (r = 0; r < o; r++) null != a[r] && (e[r].style.display = a[r]);
        return e;
    }

    _.fn.extend({
        show: function () {return ue(this, !0);},
        hide: function () {return ue(this);},
        toggle: function (e) {
            return 'boolean' == typeof e ? e
                ? this.show()
                : this.hide() : this.each(
                (function () {oe(this) ? _(this).show() : _(this).hide();}));
        },
    });
    var de, he, fe = /^(?:checkbox|radio)$/i,
        pe = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i,
        me = /^$|^module$|\/(?:java|ecma)script/i;
    de = g.createDocumentFragment().
        appendChild(g.createElement('div')), (he = g.createElement(
        'input')).setAttribute('type', 'radio'), he.setAttribute('checked',
        'checked'), he.setAttribute('name', 't'), de.appendChild(
        he), f.checkClone = de.cloneNode(!0).
        cloneNode(
            !0).lastChild.checked, de.innerHTML = '<textarea>x</textarea>', f.noCloneChecked = !!de.cloneNode(
        !0).lastChild.defaultValue, de.innerHTML = '<option></option>', f.option = !!de.lastChild;
    var ge = {
        thead: [1, '<table>', '</table>'],
        col: [2, '<table><colgroup>', '</colgroup></table>'],
        tr: [2, '<table><tbody>', '</tbody></table>'],
        td: [3, '<table><tbody><tr>', '</tr></tbody></table>'],
        _default: [0, '', ''],
    };

    function ve (e, t) {
        var n;
        return n = void 0 !== e.getElementsByTagName ? e.getElementsByTagName(
            t || '*') : void 0 !== e.querySelectorAll ? e.querySelectorAll(
            t || '*') : [], void 0 === t || t && T(e, t) ? _.merge([e], n) : n;
    }

    function ye (e, t) {
        for (var n = 0, i = e.length; n < i; n++) G.set(e[n], 'globalEval',
            !t || G.get(t[n], 'globalEval'));
    }

    ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead, ge.th = ge.td, f.option ||
    (ge.optgroup = ge.option = [
        1,
        '<select multiple=\'multiple\'>',
        '</select>']);
    var be = /<|&#?\w+;/;

    function xe (
        e, t, n, i, a) {
        for (var r, o, s, l, c, u, d = t.createDocumentFragment(), h = [], f = 0, p = e.length; f <
        p; f++) if ((r = e[f]) || 0 === r) if ('object' === b(r)) _.merge(h,
            r.nodeType ? [r] : r); else if (be.test(r)) {
            for (o = o || d.appendChild(t.createElement('div')), s = (pe.exec(
                r) || ['', ''])[1].toLowerCase(), l = ge[s] ||
                ge._default, o.innerHTML = l[1] + _.htmlPrefilter(r) +
                l[2], u = l[0]; u--;) o = o.lastChild;
            _.merge(h, o.childNodes), (o = d.firstChild).textContent = '';
        } else h.push(t.createTextNode(r));
        for (d.textContent = '', f = 0; r = h[f++];) if (i && _.inArray(r, i) >
            -1) a && a.push(r); else if (c = ae(r), o = ve(d.appendChild(r),
            'script'), c && ye(o), n) for (u = 0; r = o[u++];) me.test(
            r.type || '') && n.push(r);
        return d;
    }

    var _e = /^key/, we = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
        ke = /^([^.]*)(?:\.(.+)|)/;

    function Me () {return !0;}

    function Le () {return !1;}

    function Se (e, t) {
        return e ===
            function () {try {return g.activeElement;} catch (e) {}}() ==
            ('focus' === t);
    }

    function Te (e, t, n, i, a, r) {
        var o, s;
        if ('object' == typeof t) {
            for (s in 'string' != typeof n && (i = i || n, n = void 0), t) Te(e,
                s, n, i, t[s], r);
            return e;
        }
        if (null == i && null == a ? (a = n, i = n = void 0) : null == a &&
            ('string' == typeof n
                ? (a = i, i = void 0)
                : (a = i, i = n, n = void 0)), !1 ===
        a) a = Le; else if (!a) return e;
        return 1 === r && (o = a, (a = function (e) {
            return _().off(e), o.apply(this, arguments);
        }).guid = o.guid || (o.guid = _.guid++)), e.each(
            (function () {_.event.add(this, t, a, i, n);}));
    }

    function Ae (e, t, n) {
        n ? (G.set(e, t, !1), _.event.add(e, t, {
            namespace: !1, handler: function (e) {
                var i, r, o = G.get(this, t);
                if (1 & e.isTrigger && this[t]) {
                    if (o.length) (_.event.special[t] || {}).delegateType &&
                    e.stopPropagation(); else if (o = a.call(arguments), G.set(
                        this, t, o), i = n(this, t), this[t](), o !==
                    (r = G.get(this, t)) || i
                        ? G.set(this, t, !1)
                        : r = {}, o !==
                    r) return e.stopImmediatePropagation(), e.preventDefault(), r.value;
                } else o.length && (G.set(this, t, {
                    value: _.event.trigger(_.extend(o[0], _.Event.prototype),
                        o.slice(1), this),
                }), e.stopImmediatePropagation());
            },
        })) : void 0 === G.get(e, t) && _.event.add(e, t, Me);
    }

    _.event = {
        global: {},
        add: function (e, t, n, i, a) {
            var r, o, s, l, c, u, d, h, f, p, m, g = G.get(e);
            if (X(e)) for (n.handler &&
                           (n = (r = n).handler, a = r.selector), a &&
            _.find.matchesSelector(ie, a), n.guid ||
            (n.guid = _.guid++), (l = g.events) ||
            (l = g.events = Object.create(null)), (o = g.handle) ||
            (o = g.handle = function (t) {
                return void 0 !== _ && _.event.triggered !== t.type
                    ? _.event.dispatch.apply(e, arguments)
                    : void 0;
            }), c = (t = (t || '').match(I) ||
                ['']).length; c--;) f = m = (s = ke.exec(t[c]) ||
                [])[1], p = (s[2] || '').split('.').sort(), f &&
            (d = _.event.special[f] || {}, f = (a
                ? d.delegateType
                : d.bindType) || f, d = _.event.special[f] || {}, u = _.extend({
                type: f,
                origType: m,
                data: i,
                handler: n,
                guid: n.guid,
                selector: a,
                needsContext: a && _.expr.match.needsContext.test(a),
                namespace: p.join('.'),
            }, r), (h = l[f]) ||
            ((h = l[f] = []).delegateCount = 0, d.setup && !1 !==
            d.setup.call(e, i, p, o) || e.addEventListener &&
            e.addEventListener(f, o)), d.add &&
            (d.add.call(e, u), u.handler.guid || (u.handler.guid = n.guid)), a
                ? h.splice(h.delegateCount++, 0, u)
                : h.push(u), _.event.global[f] = !0);
        },
        remove: function (e, t, n, i, a) {
            var r, o, s, l, c, u, d, h, f, p, m, g = G.hasData(e) && G.get(e);
            if (g && (l = g.events)) {
                for (c = (t = (t || '').match(I) ||
                    ['']).length; c--;) if (f = m = (s = ke.exec(t[c]) ||
                    [])[1], p = (s[2] || '').split('.').
                    sort(), f) {
                    for (d = _.event.special[f] || {}, h = l[f = (i
                        ? d.delegateType
                        : d.bindType) || f] || [], s = s[2] && new RegExp(
                        '(^|\\.)' + p.join('\\.(?:.*\\.|)') +
                        '(\\.|$)'), o = r = h.length; r--;) u = h[r], !a &&
                    m !== u.origType || n && n.guid !== u.guid || s &&
                    !s.test(u.namespace) || i && i !== u.selector &&
                    ('**' !== i || !u.selector) ||
                    (h.splice(r, 1), u.selector &&
                    h.delegateCount--, d.remove && d.remove.call(e, u));
                    o && !h.length &&
                    (d.teardown && !1 !== d.teardown.call(e, p, g.handle) ||
                    _.removeEvent(e, f, g.handle), delete l[f]);
                } else for (f in l) _.event.remove(e, f + t[c], n, i, !0);
                _.isEmptyObject(l) && G.remove(e, 'handle events');
            }
        },
        dispatch: function (e) {
            var t, n, i, a, r, o, s = new Array(arguments.length),
                l = _.event.fix(e),
                c = (G.get(this, 'events') || Object.create(null))[l.type] ||
                    [], u = _.event.special[l.type] || {};
            for (s[0] = l, t = 1; t <
            arguments.length; t++) s[t] = arguments[t];
            if (l.delegateTarget = this, !u.preDispatch || !1 !==
            u.preDispatch.call(this, l)) {
                for (o = _.event.handlers.call(this, l,
                    c), t = 0; (a = o[t++]) &&
                     !l.isPropagationStopped();) for (l.currentTarget = a.elem, n = 0; (r = a.handlers[n++]) &&
                !l.isImmediatePropagationStopped();) l.rnamespace && !1 !==
                r.namespace && !l.rnamespace.test(r.namespace) ||
                (l.handleObj = r, l.data = r.data, void 0 !==
                (i = ((_.event.special[r.origType] || {}).handle ||
                    r.handler).apply(a.elem, s)) && !1 === (l.result = i) &&
                (l.preventDefault(), l.stopPropagation()));
                return u.postDispatch && u.postDispatch.call(this, l), l.result;
            }
        },
        handlers: function (e, t) {
            var n, i, a, r, o, s = [], l = t.delegateCount, c = e.target;
            if (l && c.nodeType &&
                !('click' === e.type && e.button >= 1)) for (; c !==
                                                               this; c = c.parentNode ||
                this) if (1 === c.nodeType && ('click' !== e.type || !0 !==
                c.disabled)) {
                for (r = [], o = {}, n = 0; n < l; n++) void 0 ===
                o[a = (i = t[n]).selector + ' '] &&
                (o[a] = i.needsContext ? _(a, this).index(c) > -1 : _.find(a,
                    this, null, [c]).length), o[a] && r.push(i);
                r.length && s.push({ elem: c, handlers: r });
            }
            return c = this, l < t.length &&
            s.push({ elem: c, handlers: t.slice(l) }), s;
        },
        addProp: function (e, t) {
            Object.defineProperty(_.Event.prototype, e, {
                enumerable: !0,
                configurable: !0,
                get: p(t)
                    ? function () {
                        if (this.originalEvent) return t(this.originalEvent);
                    }
                    : function () {if (this.originalEvent) return this.originalEvent[e];},
                set: function (t) {
                    Object.defineProperty(this, e, {
                        enumerable: !0,
                        configurable: !0,
                        writable: !0,
                        value: t,
                    });
                },
            });
        },
        fix: function (e) {return e[_.expando] ? e : new _.Event(e);},
        special: {
            load: { noBubble: !0 },
            click: {
                setup: function (e) {
                    var t = this || e;
                    return fe.test(t.type) && t.click && T(t, 'input') &&
                    Ae(t, 'click', Me), !1;
                }, trigger: function (e) {
                    var t = this || e;
                    return fe.test(t.type) && t.click && T(t, 'input') &&
                    Ae(t, 'click'), !0;
                }, _default: function (e) {
                    var t = e.target;
                    return fe.test(t.type) && t.click && T(t, 'input') &&
                        G.get(t, 'click') || T(t, 'a');
                },
            },
            beforeunload: {
                postDispatch: function (e) {
                    void 0 !== e.result && e.originalEvent &&
                    (e.originalEvent.returnValue = e.result);
                },
            },
        },
    }, _.removeEvent = function (e, t, n) {
        e.removeEventListener && e.removeEventListener(t, n);
    }, _.Event = function (e, t) {
        if (!(this instanceof _.Event)) return new _.Event(e, t);
        e && e.type
            ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented ||
            void 0 === e.defaultPrevented && !1 === e.returnValue
            ? Me
            : Le, this.target = e.target && 3 === e.target.nodeType
            ? e.target.parentNode
            : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget)
            : this.type = e, t && _.extend(this, t), this.timeStamp = e &&
            e.timeStamp || Date.now(), this[_.expando] = !0;
    }, _.Event.prototype = {
        constructor: _.Event,
        isDefaultPrevented: Le,
        isPropagationStopped: Le,
        isImmediatePropagationStopped: Le,
        isSimulated: !1,
        preventDefault: function () {
            var e = this.originalEvent;
            this.isDefaultPrevented = Me, e && !this.isSimulated &&
            e.preventDefault();
        },
        stopPropagation: function () {
            var e = this.originalEvent;
            this.isPropagationStopped = Me, e && !this.isSimulated &&
            e.stopPropagation();
        },
        stopImmediatePropagation: function () {
            var e = this.originalEvent;
            this.isImmediatePropagationStopped = Me, e && !this.isSimulated &&
            e.stopImmediatePropagation(), this.stopPropagation();
        },
    }, _.each({
        altKey: !0,
        bubbles: !0,
        cancelable: !0,
        changedTouches: !0,
        ctrlKey: !0,
        detail: !0,
        eventPhase: !0,
        metaKey: !0,
        pageX: !0,
        pageY: !0,
        shiftKey: !0,
        view: !0,
        char: !0,
        code: !0,
        charCode: !0,
        key: !0,
        keyCode: !0,
        button: !0,
        buttons: !0,
        clientX: !0,
        clientY: !0,
        offsetX: !0,
        offsetY: !0,
        pointerId: !0,
        pointerType: !0,
        screenX: !0,
        screenY: !0,
        targetTouches: !0,
        toElement: !0,
        touches: !0,
        which: function (e) {
            var t = e.button;
            return null == e.which && _e.test(e.type) ? null != e.charCode
                ? e.charCode
                : e.keyCode : !e.which && void 0 !== t && we.test(e.type) ? 1 &
            t ? 1 : 2 & t ? 3 : 4 & t ? 2 : 0 : e.which;
        },
    }, _.event.addProp), _.each({ focus: 'focusin', blur: 'focusout' },
        (function (e, t) {
            _.event.special[e] = {
                setup: function () {
                    return Ae(this, e, Se), !1;
                },
                trigger: function () {return Ae(this, e), !0;},
                delegateType: t,
            };
        })), _.each({
        mouseenter: 'mouseover',
        mouseleave: 'mouseout',
        pointerenter: 'pointerover',
        pointerleave: 'pointerout',
    }, (function (e, t) {
        _.event.special[e] = {
            delegateType: t,
            bindType: t,
            handle: function (e) {
                var n, i = this, a = e.relatedTarget, r = e.handleObj;
                return a && (a === i || _.contains(i, a)) ||
                (e.type = r.origType, n = r.handler.apply(this,
                    arguments), e.type = t), n;
            },
        };
    })), _.fn.extend({
        on: function (e, t, n, i) {return Te(this, e, t, n, i);},
        one: function (e, t, n, i) {return Te(this, e, t, n, i, 1);},
        off: function (e, t, n) {
            var i, a;
            if (e && e.preventDefault && e.handleObj) return i = e.handleObj, _(
                e.delegateTarget).
                off(i.namespace ? i.origType + '.' + i.namespace : i.origType,
                    i.selector, i.handler), this;
            if ('object' == typeof e) {
                for (a in e) this.off(a, t, e[a]);
                return this;
            }
            return !1 !== t && 'function' != typeof t ||
            (n = t, t = void 0), !1 === n && (n = Le), this.each(
                (function () {_.event.remove(this, e, n, t);}));
        },
    });
    var De = /<script|<style|<link/i, Ce = /checked\s*(?:[^=]|=\s*.checked.)/i,
        Ee = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;

    function Oe (e, t) {
        return T(e, 'table') && T(11 !== t.nodeType ? t : t.firstChild, 'tr') &&
            _(e).children('tbody')[0] || e;
    }

    function Ye (e) {
        return e.type = (null !== e.getAttribute('type')) + '/' + e.type, e;
    }

    function Pe (e) {
        return 'true/' === (e.type || '').slice(0, 5)
            ? e.type = e.type.slice(5)
            : e.removeAttribute('type'), e;
    }

    function Ie (e, t) {
        var n, i, a, r, o, s;
        if (1 === t.nodeType) {
            if (G.hasData(e) && (s = G.get(e).events)) for (a in G.remove(t,
                'handle events'), s) for (n = 0, i = s[a].length; n <
            i; n++) _.event.add(t, a, s[a][n]);
            Z.hasData(e) && (r = Z.access(e), o = _.extend({}, r), Z.set(t, o));
        }
    }

    function je (e, t) {
        var n = t.nodeName.toLowerCase();
        'input' === n && fe.test(e.type) ? t.checked = e.checked : 'input' !==
            n && 'textarea' !== n || (t.defaultValue = e.defaultValue);
    }

    function Ne (e, t, n, i) {
        t = r(t);
        var a, o, s, l, c, u, d = 0, h = e.length, m = h - 1, g = t[0],
            v = p(g);
        if (v || h > 1 && 'string' == typeof g && !f.checkClone &&
            Ce.test(g)) return e.each((function (a) {
            var r = e.eq(a);
            v && (t[0] = g.call(this, a, r.html())), Ne(r, t, n, i);
        }));
        if (h &&
            (o = (a = xe(t, e[0].ownerDocument, !1, e, i)).firstChild, 1 ===
            a.childNodes.length && (a = o), o || i)) {
            for (l = (s = _.map(ve(a, 'script'), Ye)).length; d <
            h; d++) c = a, d !== m &&
            (c = _.clone(c, !0, !0), l && _.merge(s, ve(c, 'script'))), n.call(
                e[d], c, d);
            if (l) for (u = s[s.length - 1].ownerDocument, _.map(s,
                Pe), d = 0; d < l; d++) c = s[d], me.test(c.type || '') &&
            !G.access(c, 'globalEval') && _.contains(u, c) &&
            (c.src && 'module' !== (c.type || '').toLowerCase() ? _._evalUrl &&
                !c.noModule &&
                _._evalUrl(c.src, { nonce: c.nonce || c.getAttribute('nonce') },
                    u) : y(c.textContent.replace(Ee, ''), c, u));
        }
        return e;
    }

    function He (e, t, n) {
        for (var i, a = t
            ? _.filter(t, e)
            : e, r = 0; null != (i = a[r]); r++) n || 1 !== i.nodeType ||
        _.cleanData(ve(i)), i.parentNode &&
        (n && ae(i) && ye(ve(i, 'script')), i.parentNode.removeChild(i));
        return e;
    }

    _.extend({
        htmlPrefilter: function (e) {return e;},
        clone: function (e, t, n) {
            var i, a, r, o, s = e.cloneNode(!0), l = ae(e);
            if (!(f.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType ||
                _.isXMLDoc(e))) for (o = ve(s), i = 0, a = (r = ve(
                e)).length; i < a; i++) je(r[i], o[i]);
            if (t) if (n) for (r = r || ve(e), o = o ||
                ve(s), i = 0, a = r.length; i < a; i++) Ie(r[i], o[i]); else Ie(
                e, s);
            return (o = ve(s, 'script')).length > 0 &&
            ye(o, !l && ve(e, 'script')), s;
        },
        cleanData: function (e) {
            for (var t, n, i, a = _.event.special, r = 0; void 0 !==
            (n = e[r]); r++) if (X(n)) {
                if (t = n[G.expando]) {
                    if (t.events) for (i in t.events) a[i]
                        ? _.event.remove(n, i)
                        : _.removeEvent(n, i, t.handle);
                    n[G.expando] = void 0;
                }
                n[Z.expando] && (n[Z.expando] = void 0);
            }
        },
    }), _.fn.extend({
        detach: function (e) {return He(this, e, !0);},
        remove: function (e) {return He(this, e);},
        text: function (e) {
            return B(this, (function (e) {
                return void 0 === e
                    ? _.text(this)
                    : this.empty().
                        each((function () {
                            1 !== this.nodeType && 11 !== this.nodeType && 9 !==
                            this.nodeType || (this.textContent = e);
                        }));
            }), null, e, arguments.length);
        },
        append: function () {
            return Ne(this, arguments, (function (e) {
                1 !== this.nodeType && 11 !== this.nodeType && 9 !==
                this.nodeType || Oe(this, e).appendChild(e);
            }));
        },
        prepend: function () {
            return Ne(this, arguments, (function (e) {
                if (1 === this.nodeType || 11 === this.nodeType || 9 ===
                    this.nodeType) {
                    var t = Oe(this, e);
                    t.insertBefore(e, t.firstChild);
                }
            }));
        },
        before: function () {
            return Ne(this, arguments, (function (e) {
                this.parentNode && this.parentNode.insertBefore(e, this);
            }));
        },
        after: function () {
            return Ne(this, arguments, (function (e) {
                this.parentNode &&
                this.parentNode.insertBefore(e, this.nextSibling);
            }));
        },
        empty: function () {
            for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType &&
            (_.cleanData(ve(e, !1)), e.textContent = '');
            return this;
        },
        clone: function (e, t) {
            return e = null != e && e, t = null == t
                ? e
                : t, this.map((function () {return _.clone(this, e, t);}));
        },
        html: function (e) {
            return B(this, (function (e) {
                var t = this[0] || {}, n = 0, i = this.length;
                if (void 0 === e && 1 === t.nodeType) return t.innerHTML;
                if ('string' == typeof e && !De.test(e) && !ge[(pe.exec(e) ||
                    ['', ''])[1].toLowerCase()]) {
                    e = _.htmlPrefilter(e);
                    try {
                        for (; n < i; n++) 1 === (t = this[n] || {}).nodeType &&
                        (_.cleanData(ve(t, !1)), t.innerHTML = e);
                        t = 0;
                    } catch (e) {}
                }
                t && this.empty().append(e);
            }), null, e, arguments.length);
        },
        replaceWith: function () {
            var e = [];
            return Ne(this, arguments, (function (t) {
                var n = this.parentNode;
                _.inArray(this, e) < 0 &&
                (_.cleanData(ve(this)), n && n.replaceChild(t, this));
            }), e);
        },
    }), _.each({
        appendTo: 'append',
        prependTo: 'prepend',
        insertBefore: 'before',
        insertAfter: 'after',
        replaceAll: 'replaceWith',
    }, (function (e, t) {
        _.fn[e] = function (e) {
            for (var n, i = [], a = _(e), r = a.length - 1, s = 0; s <=
            r; s++) n = s === r ? this : this.clone(!0), _(a[s])[t](n), o.apply(
                i, n.get());
            return this.pushStack(i);
        };
    }));
    var Fe = new RegExp('^(' + ee + ')(?!px)[a-z%]+$', 'i'), Re = function (t) {
        var n = t.ownerDocument.defaultView;
        return n && n.opener || (n = e), n.getComputedStyle(t);
    }, ze = function (e, t, n) {
        var i, a, r = {};
        for (a in t) r[a] = e.style[a], e.style[a] = t[a];
        for (a in i = n.call(e), t) e.style[a] = r[a];
        return i;
    }, Be = new RegExp(ne.join('|'), 'i');

    function We (e, t, n) {
        var i, a, r, o, s = e.style;
        return (n = n || Re(e)) &&
        ('' !== (o = n.getPropertyValue(t) || n[t]) || ae(e) ||
        (o = _.style(e, t)), !f.pixelBoxStyles() && Fe.test(o) && Be.test(t) &&
        (i = s.width, a = s.minWidth, r = s.maxWidth, s.minWidth = s.maxWidth = s.width = o, o = n.width, s.width = i, s.minWidth = a, s.maxWidth = r)), void 0 !==
        o ? o + '' : o;
    }

    function Ve (
        e, t) {
        return {
            get: function () {
                if (!e()) return (this.get = t).apply(this, arguments);
                delete this.get;
            },
        };
    }

    !function () {
        function t () {
            if (u) {
                c.style.cssText = 'position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0', u.style.cssText = 'position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%', ie.appendChild(
                    c).appendChild(u);
                var t = e.getComputedStyle(u);
                i = '1%' !== t.top, l = 12 ===
                    n(t.marginLeft), u.style.right = '60%', o = 36 ===
                    n(t.right), a = 36 ===
                    n(t.width), u.style.position = 'absolute', r = 12 ===
                    n(u.offsetWidth / 3), ie.removeChild(c), u = null;
            }
        }

        function n (e) {return Math.round(parseFloat(e));}

        var i, a, r, o, s, l, c = g.createElement('div'),
            u = g.createElement('div');
        u.style && (u.style.backgroundClip = 'content-box', u.cloneNode(
            !0).style.backgroundClip = '', f.clearCloneStyle = 'content-box' ===
            u.style.backgroundClip, _.extend(f, {
            boxSizingReliable: function () {return t(), a;},
            pixelBoxStyles: function () {return t(), o;},
            pixelPosition: function () {return t(), i;},
            reliableMarginLeft: function () {return t(), l;},
            scrollboxSize: function () {return t(), r;},
            reliableTrDimensions: function () {
                var t, n, i, a;
                return null == s &&
                (t = g.createElement('table'), n = g.createElement(
                    'tr'), i = g.createElement(
                    'div'), t.style.cssText = 'position:absolute;left:-11111px', n.style.height = '1px', i.style.height = '9px', ie.appendChild(
                    t).appendChild(n).appendChild(i), a = e.getComputedStyle(
                    n), s = parseInt(a.height) > 3, ie.removeChild(t)), s;
            },
        }));
    }();
    var qe = ['Webkit', 'Moz', 'ms'], Ue = g.createElement('div').style,
        Xe = {};

    function $e (e) {
        var t = _.cssProps[e] || Xe[e];
        return t || (e in Ue
            ? e
            : Xe[e] = function (e) {
                for (var t = e[0].toUpperCase() +
                    e.slice(1), n = qe.length; n--;) if ((e = qe[n] + t) in
                    Ue) return e;
            }(e) || e);
    }

    var Ge = /^(none|table(?!-c[ea]).+)/, Ze = /^--/,
        Ke = { position: 'absolute', visibility: 'hidden', display: 'block' },
        Je = { letterSpacing: '0', fontWeight: '400' };

    function Qe (e, t, n) {
        var i = te.exec(t);
        return i ? Math.max(0, i[2] - (n || 0)) + (i[3] || 'px') : t;
    }

    function et (e, t, n, i, a, r) {
        var o = 'width' === t ? 1 : 0, s = 0, l = 0;
        if (n === (i ? 'border' : 'content')) return 0;
        for (; o < 4; o += 2) 'margin' === n &&
        (l += _.css(e, n + ne[o], !0, a)), i ? ('content' === n &&
        (l -= _.css(e, 'padding' + ne[o], !0, a)), 'margin' !== n &&
        (l -= _.css(e, 'border' + ne[o] + 'Width', !0, a))) : (l += _.css(e,
            'padding' + ne[o], !0, a), 'padding' !== n ? l += _.css(e,
            'border' + ne[o] + 'Width', !0, a) : s += _.css(e,
            'border' + ne[o] + 'Width', !0, a));
        return !i && r >= 0 && (l += Math.max(0, Math.ceil(
            e['offset' + t[0].toUpperCase() + t.slice(1)] - r - l - s - .5)) ||
            0), l;
    }

    function tt (e, t, n) {
        var i = Re(e), a = (!f.boxSizingReliable() || n) && 'border-box' ===
            _.css(e, 'boxSizing', !1, i), r = a, o = We(e, t, i),
            s = 'offset' + t[0].toUpperCase() + t.slice(1);
        if (Fe.test(o)) {
            if (!n) return o;
            o = 'auto';
        }
        return (!f.boxSizingReliable() && a || !f.reliableTrDimensions() &&
            T(e, 'tr') || 'auto' === o || !parseFloat(o) && 'inline' ===
            _.css(e, 'display', !1, i)) && e.getClientRects().length &&
        (a = 'border-box' === _.css(e, 'boxSizing', !1, i), (r = s in e) &&
        (o = e[s])), (o = parseFloat(o) || 0) +
        et(e, t, n || (a ? 'border' : 'content'), r, i, o) + 'px';
    }

    function nt (e, t, n, i, a) {return new nt.prototype.init(e, t, n, i, a);}

    _.extend({
        cssHooks: {
            opacity: {
                get: function (e, t) {
                    if (t) {
                        var n = We(e, 'opacity');
                        return '' === n ? '1' : n;
                    }
                },
            },
        },
        cssNumber: {
            animationIterationCount: !0,
            columnCount: !0,
            fillOpacity: !0,
            flexGrow: !0,
            flexShrink: !0,
            fontWeight: !0,
            gridArea: !0,
            gridColumn: !0,
            gridColumnEnd: !0,
            gridColumnStart: !0,
            gridRow: !0,
            gridRowEnd: !0,
            gridRowStart: !0,
            lineHeight: !0,
            opacity: !0,
            order: !0,
            orphans: !0,
            widows: !0,
            zIndex: !0,
            zoom: !0,
        },
        cssProps: {},
        style: function (e, t, n, i) {
            if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
                var a, r, o, s = U(t), l = Ze.test(t), c = e.style;
                if (l || (t = $e(s)), o = _.cssHooks[t] ||
                    _.cssHooks[s], void 0 === n) return o && 'get' in o &&
                void 0 !== (a = o.get(e, !1, i)) ? a : c[t];
                'string' === (r = typeof n) && (a = te.exec(n)) && a[1] &&
                (n = se(e, t, a), r = 'number'), null != n && n == n &&
                ('number' !== r || l || (n += a && a[3] ||
                    (_.cssNumber[s] ? '' : 'px')), f.clearCloneStyle || '' !==
                n || 0 !== t.indexOf('background') || (c[t] = 'inherit'), o &&
                'set' in o && void 0 === (n = o.set(e, n, i)) ||
                (l ? c.setProperty(t, n) : c[t] = n));
            }
        },
        css: function (e, t, n, i) {
            var a, r, o, s = U(t);
            return Ze.test(t) || (t = $e(s)), (o = _.cssHooks[t] ||
                _.cssHooks[s]) && 'get' in o &&
            (a = o.get(e, !0, n)), void 0 === a &&
            (a = We(e, t, i)), 'normal' === a && t in Je && (a = Je[t]), '' ===
            n || n
                ? (r = parseFloat(a), !0 === n || isFinite(r) ? r || 0 : a)
                : a;
        },
    }), _.each(['height', 'width'], (function (e, t) {
        _.cssHooks[t] = {
            get: function (e, n, i) {
                if (n) return !Ge.test(_.css(e, 'display')) ||
                e.getClientRects().length && e.getBoundingClientRect().width
                    ? tt(e, t, i)
                    : ze(e, Ke, (function () {return tt(e, t, i);}));
            },
            set: function (e, n, i) {
                var a, r = Re(e),
                    o = !f.scrollboxSize() && 'absolute' === r.position,
                    s = (o || i) && 'border-box' ===
                        _.css(e, 'boxSizing', !1, r),
                    l = i ? et(e, t, i, s, r) : 0;
                return s && o && (l -= Math.ceil(
                    e['offset' + t[0].toUpperCase() + t.slice(1)] -
                    parseFloat(r[t]) - et(e, t, 'border', !1, r) - .5)), l &&
                (a = te.exec(n)) && 'px' !== (a[3] || 'px') &&
                (e.style[t] = n, n = _.css(e, t)), Qe(0, n, l);
            },
        };
    })), _.cssHooks.marginLeft = Ve(f.reliableMarginLeft, (function (e, t) {
        if (t) return (parseFloat(We(e, 'marginLeft')) ||
            e.getBoundingClientRect().left - ze(e, { marginLeft: 0 },
                (function () {return e.getBoundingClientRect().left;}))) + 'px';
    })), _.each({ margin: '', padding: '', border: 'Width' }, (function (e, t) {
        _.cssHooks[e + t] = {
            expand: function (n) {
                for (var i = 0, a = {}, r = 'string' == typeof n
                    ? n.split(' ')
                    : [n]; i < 4; i++) a[e + ne[i] + t] = r[i] || r[i - 2] ||
                    r[0];
                return a;
            },
        }, 'margin' !== e && (_.cssHooks[e + t].set = Qe);
    })), _.fn.extend({
        css: function (e, t) {
            return B(this, (function (e, t, n) {
                var i, a, r = {}, o = 0;
                if (Array.isArray(t)) {
                    for (i = Re(e), a = t.length; o < a; o++) r[t[o]] = _.css(e,
                        t[o], !1, i);
                    return r;
                }
                return void 0 !== n ? _.style(e, t, n) : _.css(e, t);
            }), e, t, arguments.length > 1);
        },
    }), _.Tween = nt, nt.prototype = {
        constructor: nt,
        init: function (e, t, n, i, a, r) {
            this.elem = e, this.prop = n, this.easing = a ||
                _.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = i, this.unit = r ||
                (_.cssNumber[n] ? '' : 'px');
        },
        cur: function () {
            var e = nt.propHooks[this.prop];
            return e && e.get ? e.get(this) : nt.propHooks._default.get(this);
        },
        run: function (e) {
            var t, n = nt.propHooks[this.prop];
            return this.options.duration
                ? this.pos = t = _.easing[this.easing](e,
                    this.options.duration * e, 0, 1, this.options.duration)
                : this.pos = t = e, this.now = (this.end - this.start) * t +
                this.start, this.options.step &&
            this.options.step.call(this.elem, this.now, this), n && n.set
                ? n.set(this)
                : nt.propHooks._default.set(this), this;
        },
    }, nt.prototype.init.prototype = nt.prototype, nt.propHooks = {
        _default: {
            get: function (e) {
                var t;
                return 1 !== e.elem.nodeType || null != e.elem[e.prop] &&
                null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = _.css(
                    e.elem, e.prop, '')) && 'auto' !== t ? t : 0;
            },
            set: function (e) {
                _.fx.step[e.prop] ? _.fx.step[e.prop](e) : 1 !==
                e.elem.nodeType || !_.cssHooks[e.prop] && null ==
                e.elem.style[$e(e.prop)] ? e.elem[e.prop] = e.now : _.style(
                    e.elem, e.prop, e.now + e.unit);
            },
        },
    }, nt.propHooks.scrollTop = nt.propHooks.scrollLeft = {
        set: function (e) {
            e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now);
        },
    }, _.easing = {
        linear: function (e) {return e;},
        swing: function (e) {return .5 - Math.cos(e * Math.PI) / 2;},
        _default: 'swing',
    }, _.fx = nt.prototype.init, _.fx.step = {};
    var it, at, rt = /^(?:toggle|show|hide)$/, ot = /queueHooks$/;

    function st () {
        at && (!1 === g.hidden && e.requestAnimationFrame
            ? e.requestAnimationFrame(st)
            : e.setTimeout(st, _.fx.interval), _.fx.tick());
    }

    function lt () {
        return e.setTimeout((function () {it = void 0;})), it = Date.now();
    }

    function ct (e, t) {
        var n, i = 0, a = { height: e };
        for (t = t ? 1 : 0; i < 4; i += 2 - t) a['margin' +
        (n = ne[i])] = a['padding' + n] = e;
        return t && (a.opacity = a.width = e), a;
    }

    function ut (e, t, n) {
        for (var i, a = (dt.tweeners[t] || []).concat(
            dt.tweeners['*']), r = 0, o = a.length; r <
             o; r++) if (i = a[r].call(n, t, e)) return i;
    }

    function dt (e, t, n) {
        var i, a, r = 0, o = dt.prefilters.length,
            s = _.Deferred().always((function () {delete l.elem;})),
            l = function () {
                if (a) return !1;
                for (var t = it || lt(), n = Math.max(0,
                    c.startTime + c.duration - t), i = 1 -
                    (n / c.duration || 0), r = 0, o = c.tweens.length; r <
                     o; r++) c.tweens[r].run(i);
                return s.notifyWith(e, [c, i, n]), i < 1 && o ? n : (o ||
                s.notifyWith(e, [c, 1, 0]), s.resolveWith(e, [c]), !1);
            }, c = s.promise({
                elem: e,
                props: _.extend({}, t),
                opts: _.extend(!0, { specialEasing: {}, easing: _.easing._default },
                    n),
                originalProperties: t,
                originalOptions: n,
                startTime: it || lt(),
                duration: n.duration,
                tweens: [],
                createTween: function (t, n) {
                    var i = _.Tween(e, c.opts, t, n,
                        c.opts.specialEasing[t] || c.opts.easing);
                    return c.tweens.push(i), i;
                },
                stop: function (t) {
                    var n = 0, i = t ? c.tweens.length : 0;
                    if (a) return this;
                    for (a = !0; n < i; n++) c.tweens[n].run(1);
                    return t ? (s.notifyWith(e, [c, 1, 0]), s.resolveWith(e,
                        [c, t])) : s.rejectWith(e, [c, t]), this;
                },
            }), u = c.props;
        for (!function (e, t) {
            var n, i, a, r, o;
            for (n in e) if (a = t[i = U(n)], r = e[n], Array.isArray(r) &&
            (a = r[1], r = e[n] = r[0]), n !== i &&
            (e[i] = r, delete e[n]), (o = _.cssHooks[i]) && 'expand' in
            o) for (n in r = o.expand(r), delete e[i], r) n in e ||
            (e[n] = r[n], t[n] = a); else t[i] = a;
        }(u, c.opts.specialEasing); r < o; r++) if (i = dt.prefilters[r].call(c,
            e, u, c.opts)) return p(i.stop) &&
        (_._queueHooks(c.elem, c.opts.queue).stop = i.stop.bind(i)), i;
        return _.map(u, ut, c), p(c.opts.start) &&
        c.opts.start.call(e, c), c.progress(c.opts.progress).
            done(c.opts.done, c.opts.complete).
            fail(c.opts.fail).
            always(c.opts.always), _.fx.timer(
            _.extend(l, { elem: e, anim: c, queue: c.opts.queue })), c;
    }

    _.Animation = _.extend(dt, {
        tweeners: {
            '*': [
                function (e, t) {
                    var n = this.createTween(e, t);
                    return se(n.elem, e, te.exec(t), n), n;
                }],
        },
        tweener: function (e, t) {
            p(e) ? (t = e, e = ['*']) : e = e.match(I);
            for (var n, i = 0, a = e.length; i <
            a; i++) n = e[i], dt.tweeners[n] = dt.tweeners[n] ||
                [], dt.tweeners[n].unshift(t);
        },
        prefilters: [
            function (e, t, n) {
                var i, a, r, o, s, l, c, u, d = 'width' in t || 'height' in t,
                    h = this, f = {}, p = e.style, m = e.nodeType && oe(e),
                    g = G.get(e, 'fxshow');
                for (i in n.queue ||
                (null == (o = _._queueHooks(e, 'fx')).unqueued &&
                (o.unqueued = 0, s = o.empty.fire, o.empty.fire = function () {
                    o.unqueued || s();
                }), o.unqueued++, h.always((function () {
                    h.always((function () {
                        o.unqueued--, _.queue(e, 'fx').length || o.empty.fire();
                    }));
                }))), t) if (a = t[i], rt.test(a)) {
                    if (delete t[i], r = r || 'toggle' === a, a ===
                    (m ? 'hide' : 'show')) {
                        if ('show' !== a || !g || void 0 === g[i]) continue;
                        m = !0;
                    }
                    f[i] = g && g[i] || _.style(e, i);
                }
                if ((l = !_.isEmptyObject(t)) ||
                    !_.isEmptyObject(f)) for (i in d && 1 === e.nodeType &&
                (n.overflow = [p.overflow, p.overflowX, p.overflowY], null ==
                (c = g && g.display) && (c = G.get(e, 'display')), 'none' ===
                (u = _.css(e, 'display')) &&
                (c ? u = c : (ue([e], !0), c = e.style.display || c, u = _.css(
                    e, 'display'), ue([e]))), ('inline' === u ||
                    'inline-block' === u && null != c) && 'none' ===
                _.css(e, 'float') && (l ||
                (h.done((function () {p.display = c;})), null == c &&
                (u = p.display, c = 'none' === u
                    ? ''
                    : u)), p.display = 'inline-block')), n.overflow &&
                (p.overflow = 'hidden', h.always(
                    (function () {p.overflow = n.overflow[0], p.overflowX = n.overflow[1], p.overflowY = n.overflow[2];}))), l = !1, f) l ||
                (g ? 'hidden' in g && (m = g.hidden) : g = G.access(e, 'fxshow',
                    { display: c }), r && (g.hidden = !m), m &&
                ue([e], !0), h.done((function () {
                    for (i in m || ue([e]), G.remove(e, 'fxshow'), f) _.style(e,
                        i, f[i]);
                }))), l = ut(m ? g[i] : 0, i, h), i in g ||
                (g[i] = l.start, m && (l.end = l.start, l.start = 0));
            }],
        prefilter: function (e, t) {
            t
                ? dt.prefilters.unshift(e)
                : dt.prefilters.push(e);
        },
    }), _.speed = function (e, t, n) {
        var i = e && 'object' == typeof e
            ? _.extend({}, e)
            : {
                complete: n || !n && t || p(e) && e,
                duration: e,
                easing: n && t || t && !p(t) && t,
            };
        return _.fx.off ? i.duration = 0 : 'number' != typeof i.duration &&
            (i.duration in _.fx.speeds
                ? i.duration = _.fx.speeds[i.duration]
                : i.duration = _.fx.speeds._default), null != i.queue && !0 !==
        i.queue ||
        (i.queue = 'fx'), i.old = i.complete, i.complete = function () {
            p(i.old) && i.old.call(this), i.queue && _.dequeue(this, i.queue);
        }, i;
    }, _.fn.extend({
        fadeTo: function (e, t, n, i) {
            return this.filter(oe).
                css('opacity', 0).
                show().
                end().
                animate({ opacity: t }, e, n, i);
        },
        animate: function (e, t, n, i) {
            var a = _.isEmptyObject(e), r = _.speed(t, n, i), o = function () {
                var t = dt(this, _.extend({}, e), r);
                (a || G.get(this, 'finish')) && t.stop(!0);
            };
            return o.finish = o, a || !1 === r.queue
                ? this.each(o)
                : this.queue(r.queue, o);
        },
        stop: function (e, t, n) {
            var i = function (e) {
                var t = e.stop;
                delete e.stop, t(n);
            };
            return 'string' != typeof e && (n = t, t = e, e = void 0), t &&
            this.queue(e || 'fx', []), this.each((function () {
                var t = !0, a = null != e && e + 'queueHooks', r = _.timers,
                    o = G.get(this);
                if (a) o[a] && o[a].stop && i(o[a]); else for (a in o) o[a] &&
                o[a].stop && ot.test(a) && i(o[a]);
                for (a = r.length; a--;) r[a].elem !== this || null != e &&
                r[a].queue !== e || (r[a].anim.stop(n), t = !1, r.splice(a, 1));
                !t && n || _.dequeue(this, e);
            }));
        },
        finish: function (e) {
            return !1 !== e && (e = e || 'fx'), this.each((function () {
                var t, n = G.get(this), i = n[e + 'queue'],
                    a = n[e + 'queueHooks'], r = _.timers, o = i ? i.length : 0;
                for (n.finish = !0, _.queue(this, e, []), a && a.stop &&
                a.stop.call(this, !0), t = r.length; t--;) r[t].elem === this &&
                r[t].queue === e && (r[t].anim.stop(!0), r.splice(t, 1));
                for (t = 0; t < o; t++) i[t] && i[t].finish &&
                i[t].finish.call(this);
                delete n.finish;
            }));
        },
    }), _.each(['toggle', 'show', 'hide'], (function (e, t) {
        var n = _.fn[t];
        _.fn[t] = function (e, i, a) {
            return null == e || 'boolean' == typeof e
                ? n.apply(this, arguments)
                : this.animate(ct(t, !0), e, i, a);
        };
    })), _.each({
        slideDown: ct('show'),
        slideUp: ct('hide'),
        slideToggle: ct('toggle'),
        fadeIn: { opacity: 'show' },
        fadeOut: { opacity: 'hide' },
        fadeToggle: { opacity: 'toggle' },
    }, (function (e, t) {
        _.fn[e] = function (e, n, i) {
            return this.animate(t, e, n, i);
        };
    })), _.timers = [], _.fx.tick = function () {
        var e, t = 0, n = _.timers;
        for (it = Date.now(); t < n.length; t++) (e = n[t])() || n[t] !== e ||
        n.splice(t--, 1);
        n.length || _.fx.stop(), it = void 0;
    }, _.fx.timer = function (e) {
        _.timers.push(e), _.fx.start();
    }, _.fx.interval = 13, _.fx.start = function () {
        at || (at = !0, st());
    }, _.fx.stop = function () {at = null;}, _.fx.speeds = {
        slow: 600,
        fast: 200,
        _default: 400,
    }, _.fn.delay = function (t, n) {
        return t = _.fx && _.fx.speeds[t] || t, n = n || 'fx', this.queue(n,
            (function (n, i) {
                var a = e.setTimeout(n, t);
                i.stop = function () {e.clearTimeout(a);};
            }));
    }, function () {
        var e = g.createElement('input'), t = g.createElement('select').
            appendChild(g.createElement('option'));
        e.type = 'checkbox', f.checkOn = '' !==
            e.value, f.optSelected = t.selected, (e = g.createElement(
            'input')).value = 't', e.type = 'radio', f.radioValue = 't' ===
            e.value;
    }();
    var ht, ft = _.expr.attrHandle;
    _.fn.extend({
        attr: function (e, t) {
            return B(this, _.attr, e, t, arguments.length > 1);
        },
        removeAttr: function (e) {
            return this.each((function () {_.removeAttr(this, e);}));
        },
    }), _.extend({
        attr: function (e, t, n) {
            var i, a, r = e.nodeType;
            if (3 !== r && 8 !== r && 2 !== r) return void 0 === e.getAttribute
                ? _.prop(e, t, n)
                : (1 === r && _.isXMLDoc(e) ||
                (a = _.attrHooks[t.toLowerCase()] ||
                    (_.expr.match.bool.test(t) ? ht : void 0)), void 0 !== n
                    ? null === n ? void _.removeAttr(e, t) : a && 'set' in a &&
                    void 0 !== (i = a.set(e, n, t)) ? i : (e.setAttribute(t,
                        n + ''), n)
                    : a && 'get' in a && null !== (i = a.get(e, t))
                        ? i
                        : null == (i = _.find.attr(e, t)) ? void 0 : i);
        },
        attrHooks: {
            type: {
                set: function (e, t) {
                    if (!f.radioValue && 'radio' === t && T(e, 'input')) {
                        var n = e.value;
                        return e.setAttribute('type', t), n && (e.value = n), t;
                    }
                },
            },
        },
        removeAttr: function (e, t) {
            var n, i = 0, a = t && t.match(I);
            if (a && 1 === e.nodeType) for (; n = a[i++];) e.removeAttribute(n);
        },
    }), ht = {
        set: function (e, t, n) {
            return !1 === t
                ? _.removeAttr(e, n)
                : e.setAttribute(n, n), n;
        },
    }, _.each(_.expr.match.bool.source.match(/\w+/g), (function (e, t) {
        var n = ft[t] || _.find.attr;
        ft[t] = function (e, t, i) {
            var a, r, o = t.toLowerCase();
            return i || (r = ft[o], ft[o] = a, a = null != n(e, t, i)
                ? o
                : null, ft[o] = r), a;
        };
    }));
    var pt = /^(?:input|select|textarea|button)$/i, mt = /^(?:a|area)$/i;

    function gt (e) {return (e.match(I) || []).join(' ');}

    function vt (e) {return e.getAttribute && e.getAttribute('class') || '';}

    function yt (e) {
        return Array.isArray(e) ? e : 'string' == typeof e && e.match(I) || [];
    }

    _.fn.extend({
        prop: function (e, t) {
            return B(this, _.prop, e, t, arguments.length > 1);
        },
        removeProp: function (e) {
            return this.each((function () {delete this[_.propFix[e] || e];}));
        },
    }), _.extend({
        prop: function (e, t, n) {
            var i, a, r = e.nodeType;
            if (3 !== r && 8 !== r && 2 !== r) return 1 === r &&
            _.isXMLDoc(e) ||
            (t = _.propFix[t] || t, a = _.propHooks[t]), void 0 !== n ? a &&
            'set' in a && void 0 !== (i = a.set(e, n, t)) ? i : e[t] = n : a &&
            'get' in a && null !== (i = a.get(e, t)) ? i : e[t];
        },
        propHooks: {
            tabIndex: {
                get: function (e) {
                    var t = _.find.attr(e, 'tabindex');
                    return t ? parseInt(t, 10) : pt.test(e.nodeName) ||
                    mt.test(e.nodeName) && e.href ? 0 : -1;
                },
            },
        },
        propFix: { for: 'htmlFor', class: 'className' },
    }), f.optSelected || (_.propHooks.selected = {
        get: function (e) {
            var t = e.parentNode;
            return t && t.parentNode && t.parentNode.selectedIndex, null;
        }, set: function (e) {
            var t = e.parentNode;
            t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex);
        },
    }), _.each([
            'tabIndex',
            'readOnly',
            'maxLength',
            'cellSpacing',
            'cellPadding',
            'rowSpan',
            'colSpan',
            'useMap',
            'frameBorder',
            'contentEditable'],
        (function () {_.propFix[this.toLowerCase()] = this;})), _.fn.extend({
        addClass: function (e) {
            var t, n, i, a, r, o, s, l = 0;
            if (p(e)) return this.each(
                (function (t) {_(this).addClass(e.call(this, t, vt(this)));}));
            if ((t = yt(e)).length) for (; n = this[l++];) if (a = vt(
                n), i = 1 === n.nodeType && ' ' + gt(a) + ' ') {
                for (o = 0; r = t[o++];) i.indexOf(' ' + r + ' ') < 0 &&
                (i += r + ' ');
                a !== (s = gt(i)) && n.setAttribute('class', s);
            }
            return this;
        },
        removeClass: function (e) {
            var t, n, i, a, r, o, s, l = 0;
            if (p(e)) return this.each((function (t) {
                _(this).
                    removeClass(e.call(this, t, vt(this)));
            }));
            if (!arguments.length) return this.attr('class', '');
            if ((t = yt(e)).length) for (; n = this[l++];) if (a = vt(
                n), i = 1 === n.nodeType && ' ' + gt(a) + ' ') {
                for (o = 0; r = t[o++];) for (; i.indexOf(" " + r + " ") >
                                                -1;) i = i.replace(
                    ' ' + r + ' ', ' ');
                a !== (s = gt(i)) && n.setAttribute('class', s);
            }
            return this;
        },
        toggleClass: function (e, t) {
            var n = typeof e, i = 'string' === n || Array.isArray(e);
            return 'boolean' == typeof t && i ? t
                ? this.addClass(e)
                : this.removeClass(e) : p(e) ? this.each((function (n) {
                _(this).
                    toggleClass(e.call(this, n, vt(this), t), t);
            })) : this.each((function () {
                var t, a, r, o;
                if (i) for (a = 0, r = _(this), o = yt(
                    e); t = o[a++];) r.hasClass(t)
                    ? r.removeClass(t)
                    : r.addClass(t); else void 0 !== e && 'boolean' !== n ||
                ((t = vt(this)) &&
                G.set(this, '__className__', t), this.setAttribute &&
                this.setAttribute('class',
                    t || !1 === e ? '' : G.get(this, '__className__') || ''));
            }));
        },
        hasClass: function (e) {
            var t, n, i = 0;
            for (t = ' ' + e + ' '; n = this[i++];) if (1 === n.nodeType &&
                (' ' + gt(vt(n)) + ' ').indexOf(t) > -1) return !0;
            return !1;
        },
    });
    var bt = /\r/g;
    _.fn.extend({
        val: function (e) {
            var t, n, i, a = this[0];
            return arguments.length ? (i = p(e), this.each((function (n) {
                var a;
                1 === this.nodeType &&
                (null == (a = i ? e.call(this, n, _(this).val()) : e)
                    ? a = ''
                    : 'number' == typeof a ? a += '' : Array.isArray(a) &&
                        (a = _.map(a, (function (e) {
                            return null == e ? '' : e + '';
                        }))), (t = _.valHooks[this.type] ||
                    _.valHooks[this.nodeName.toLowerCase()]) && 'set' in t &&
                void 0 !== t.set(this, a, 'value') || (this.value = a));
            }))) : a
                ? (t = _.valHooks[a.type] ||
                    _.valHooks[a.nodeName.toLowerCase()]) && 'get' in t &&
                void 0 !== (n = t.get(a, 'value')) ? n : 'string' ==
                typeof (n = a.value) ? n.replace(bt, '') : null == n ? '' : n
                : void 0;
        },
    }), _.extend({
        valHooks: {
            option: {
                get: function (e) {
                    var t = _.find.attr(e, 'value');
                    return null != t ? t : gt(_.text(e));
                },
            },
            select: {
                get: function (e) {
                    var t, n, i, a = e.options, r = e.selectedIndex,
                        o = 'select-one' === e.type, s = o ? null : [],
                        l = o ? r + 1 : a.length;
                    for (i = r < 0 ? l : o ? r : 0; i <
                    l; i++) if (((n = a[i]).selected || i === r) &&
                        !n.disabled && (!n.parentNode.disabled ||
                            !T(n.parentNode, 'optgroup'))) {
                        if (t = _(n).
                            val(), o) return t;
                        s.push(t);
                    }
                    return s;
                },
                set: function (e, t) {
                    for (var n, i, a = e.options, r = _.makeArray(
                        t), o = a.length; o--;) ((i = a[o]).selected = _.inArray(
                        _.valHooks.option.get(i), r) > -1) && (n = !0);
                    return n || (e.selectedIndex = -1), r;
                },
            },
        },
    }), _.each(['radio', 'checkbox'], (function () {
        _.valHooks[this] = {
            set: function (e, t) {
                if (Array.isArray(t)) return e.checked = _.inArray(_(e).val(),
                    t) > -1;
            },
        }, f.checkOn || (_.valHooks[this].get = function (e) {
            return null === e.getAttribute('value') ? 'on' : e.value;
        });
    })), f.focusin = 'onfocusin' in e;
    var xt = /^(?:focusinfocus|focusoutblur)$/,
        _t = function (e) {e.stopPropagation();};
    _.extend(_.event, {
        trigger: function (t, n, i, a) {
            var r, o, s, l, c, d, h, f, v = [i || g],
                y = u.call(t, 'type') ? t.type : t,
                b = u.call(t, 'namespace') ? t.namespace.split('.') : [];
            if (o = f = s = i = i || g, 3 !== i.nodeType && 8 !== i.nodeType &&
            !xt.test(y + _.event.triggered) && (y.indexOf('.') > -1 &&
            (b = y.split('.'), y = b.shift(), b.sort()), c = y.indexOf(':') <
                0 && 'on' + y, (t = t[_.expando] ? t : new _.Event(y,
                'object' == typeof t && t)).isTrigger = a
                ? 2
                : 3, t.namespace = b.join('.'), t.rnamespace = t.namespace
                ? new RegExp('(^|\\.)' + b.join('\\.(?:.*\\.|)') + '(\\.|$)')
                : null, t.result = void 0, t.target ||
            (t.target = i), n = null == n ? [t] : _.makeArray(n,
                [t]), h = _.event.special[y] || {}, a || !h.trigger || !1 !==
            h.trigger.apply(i, n))) {
                if (!a && !h.noBubble && !m(i)) {
                    for (l = h.delegateType || y, xt.test(l + y) ||
                    (o = o.parentNode); o; o = o.parentNode) v.push(o), s = o;
                    s === (i.ownerDocument || g) &&
                    v.push(s.defaultView || s.parentWindow || e);
                }
                for (r = 0; (o = v[r++]) &&
                !t.isPropagationStopped();) f = o, t.type = r > 1
                    ? l
                    : h.bindType || y, (d = (G.get(o, 'events') ||
                    Object.create(null))[t.type] && G.get(o, 'handle')) &&
                d.apply(o, n), (d = c && o[c]) && d.apply && X(o) &&
                (t.result = d.apply(o, n), !1 === t.result &&
                t.preventDefault());
                return t.type = y, a || t.isDefaultPrevented() || h._default &&
                !1 !== h._default.apply(v.pop(), n) || !X(i) || c && p(i[y]) &&
                !m(i) && ((s = i[c]) &&
                (i[c] = null), _.event.triggered = y, t.isPropagationStopped() &&
                f.addEventListener(y, _t), i[y](), t.isPropagationStopped() &&
                f.removeEventListener(y, _t), _.event.triggered = void 0, s &&
                (i[c] = s)), t.result;
            }
        },
        simulate: function (e, t, n) {
            var i = _.extend(new _.Event, n, { type: e, isSimulated: !0 });
            _.event.trigger(i, null, t);
        },
    }), _.fn.extend({
        trigger: function (e, t) {
            return this.each((function () {_.event.trigger(e, t, this);}));
        }, triggerHandler: function (e, t) {
            var n = this[0];
            if (n) return _.event.trigger(e, t, n, !0);
        },
    }), f.focusin || _.each({ focus: 'focusin', blur: 'focusout' },
        (function (e, t) {
            var n = function (e) {
                _.event.simulate(t, e.target, _.event.fix(e));
            };
            _.event.special[t] = {
                setup: function () {
                    var i = this.ownerDocument || this.document || this,
                        a = G.access(i, t);
                    a || i.addEventListener(e, n, !0), G.access(i, t,
                        (a || 0) + 1);
                },
                teardown: function () {
                    var i = this.ownerDocument || this.document || this,
                        a = G.access(i, t) - 1;
                    a ? G.access(i, t, a) : (i.removeEventListener(e, n,
                        !0), G.remove(i, t));
                },
            };
        }));
    var wt = e.location, kt = { guid: Date.now() }, Mt = /\?/;
    _.parseXML = function (t) {
        var n;
        if (!t || 'string' != typeof t) return null;
        try {
            n = (new e.DOMParser).parseFromString(t, 'text/xml');
        } catch (e) {n = void 0;}
        return n && !n.getElementsByTagName('parsererror').length ||
        _.error('Invalid XML: ' + t), n;
    };
    var Lt = /\[\]$/, St = /\r?\n/g,
        Tt = /^(?:submit|button|image|reset|file)$/i,
        At = /^(?:input|select|textarea|keygen)/i;

    function Dt (e, t, n, i) {
        var a;
        if (Array.isArray(t)) _.each(t, (function (t, a) {
            n || Lt.test(e) ? i(e, a) : Dt(
                e + '[' + ('object' == typeof a && null != a ? t : '') + ']', a,
                n, i);
        })); else if (n || 'object' !== b(t)) i(e, t); else for (a in t) Dt(
            e + '[' + a + ']', t[a], n, i);
    }

    _.param = function (e, t) {
        var n, i = [], a = function (e, t) {
            var n = p(t) ? t() : t;
            i[i.length] = encodeURIComponent(e) + '=' +
                encodeURIComponent(null == n ? '' : n);
        };
        if (null == e) return '';
        if (Array.isArray(e) || e.jquery && !_.isPlainObject(e)) _.each(e,
            (function () {a(this.name, this.value);})); else for (n in e) Dt(n,
            e[n], t, a);
        return i.join('&');
    }, _.fn.extend({
        serialize: function () {return _.param(this.serializeArray());},
        serializeArray: function () {
            return this.map((function () {
                var e = _.prop(this, 'elements');
                return e ? _.makeArray(e) : this;
            })).filter((function () {
                var e = this.type;
                return this.name && !_(this).is(':disabled') &&
                    At.test(this.nodeName) && !Tt.test(e) &&
                    (this.checked || !fe.test(e));
            })).map((function (e, t) {
                var n = _(this).val();
                return null == n ? null : Array.isArray(n) ? _.map(n,
                    (function (e) {
                        return {
                            name: t.name,
                            value: e.replace(St, '\r\n'),
                        };
                    })) : { name: t.name, value: n.replace(St, '\r\n') };
            })).get();
        },
    });
    var Ct = /%20/g, Et = /#.*$/, Ot = /([?&])_=[^&]*/,
        Yt = /^(.*?):[ \t]*([^\r\n]*)$/gm, Pt = /^(?:GET|HEAD)$/, It = /^\/\//,
        jt = {}, Nt = {}, Ht = '*/'.concat('*'), Ft = g.createElement('a');

    function Rt (e) {
        return function (t, n) {
            'string' != typeof t && (n = t, t = '*');
            var i, a = 0, r = t.toLowerCase().match(I) || [];
            if (p(n)) for (; i = r[a++];) '+' === i[0] ? (i = i.slice(1) ||
                '*', (e[i] = e[i] || []).unshift(n)) : (e[i] = e[i] || []).push(
                n);
        };
    }

    function zt (e, t, n, i) {
        var a = {}, r = e === Nt;

        function o (s) {
            var l;
            return a[s] = !0, _.each(e[s] || [], (function (e, s) {
                var c = s(t, n, i);
                return 'string' != typeof c || r || a[c] ? r
                    ? !(l = c)
                    : void 0 : (t.dataTypes.unshift(c), o(c), !1);
            })), l;
        }

        return o(t.dataTypes[0]) || !a['*'] && o('*');
    }

    function Bt (e, t) {
        var n, i, a = _.ajaxSettings.flatOptions || {};
        for (n in t) void 0 !== t[n] && ((a[n] ? e : i || (i = {}))[n] = t[n]);
        return i && _.extend(!0, e, i), e;
    }

    Ft.href = wt.href, _.extend({
        active: 0,
        lastModified: {},
        etag: {},
        ajaxSettings: {
            url: wt.href,
            type: 'GET',
            isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(
                wt.protocol),
            global: !0,
            processData: !0,
            async: !0,
            contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
            accepts: {
                '*': Ht,
                text: 'text/plain',
                html: 'text/html',
                xml: 'application/xml, text/xml',
                json: 'application/json, text/javascript',
            },
            contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ },
            responseFields: {
                xml: 'responseXML',
                text: 'responseText',
                json: 'responseJSON',
            },
            converters: {
                '* text': String,
                'text html': !0,
                'text json': JSON.parse,
                'text xml': _.parseXML,
            },
            flatOptions: { url: !0, context: !0 },
        },
        ajaxSetup: function (e, t) {
            return t
                ? Bt(Bt(e, _.ajaxSettings), t)
                : Bt(_.ajaxSettings, e);
        },
        ajaxPrefilter: Rt(jt),
        ajaxTransport: Rt(Nt),
        ajax: function (t, n) {
            'object' == typeof t && (n = t, t = void 0), n = n || {};
            var i, a, r, o, s, l, c, u, d, h, f = _.ajaxSetup({}, n),
                p = f.context || f,
                m = f.context && (p.nodeType || p.jquery) ? _(p) : _.event,
                v = _.Deferred(), y = _.Callbacks('once memory'),
                b = f.statusCode || {}, x = {}, w = {}, k = 'canceled', M = {
                    readyState: 0,
                    getResponseHeader: function (e) {
                        var t;
                        if (c) {
                            if (!o) for (o = {}; t = Yt.exec(
                                r);) o[t[1].toLowerCase() +
                            ' '] = (o[t[1].toLowerCase() + ' '] || []).concat(t[2]);
                            t = o[e.toLowerCase() + ' '];
                        }
                        return null == t ? null : t.join(', ');
                    },
                    getAllResponseHeaders: function () {return c ? r : null;},
                    setRequestHeader: function (e, t) {
                        return null == c &&
                        (e = w[e.toLowerCase()] = w[e.toLowerCase()] ||
                            e, x[e] = t), this;
                    },
                    overrideMimeType: function (e) {
                        return null == c && (f.mimeType = e), this;
                    },
                    statusCode: function (e) {
                        var t;
                        if (e) if (c) M.always(
                            e[M.status]); else for (t in e) b[t] = [b[t], e[t]];
                        return this;
                    },
                    abort: function (e) {
                        var t = e || k;
                        return i && i.abort(t), L(0, t), this;
                    },
                };
            if (v.promise(M), f.url = ((t || f.url || wt.href) + '').replace(It,
                wt.protocol + '//'), f.type = n.method || n.type || f.method ||
                f.type, f.dataTypes = (f.dataType || '*').toLowerCase().
                match(I) || [''], null == f.crossDomain) {
                l = g.createElement('a');
                try {
                    l.href = f.url, l.href = l.href, f.crossDomain = Ft.protocol +
                        '//' + Ft.host != l.protocol + '//' + l.host;
                } catch (e) {f.crossDomain = !0;}
            }
            if (f.data && f.processData && 'string' != typeof f.data &&
            (f.data = _.param(f.data, f.traditional)), zt(jt, f, n,
                M), c) return M;
            for (d in (u = _.event && f.global) && 0 == _.active++ &&
            _.event.trigger(
                'ajaxStart'), f.type = f.type.toUpperCase(), f.hasContent = !Pt.test(
                f.type), a = f.url.replace(Et, ''), f.hasContent ? f.data &&
                f.processData && 0 === (f.contentType || '').indexOf(
                    'application/x-www-form-urlencoded') &&
                (f.data = f.data.replace(Ct, '+')) : (h = f.url.slice(
                a.length), f.data &&
            (f.processData || 'string' == typeof f.data) &&
            (a += (Mt.test(a) ? '&' : '?') + f.data, delete f.data), !1 ===
            f.cache &&
            (a = a.replace(Ot, '$1'), h = (Mt.test(a) ? '&' : '?') + '_=' +
                kt.guid++ + h), f.url = a + h), f.ifModified &&
            (_.lastModified[a] && M.setRequestHeader('If-Modified-Since',
                _.lastModified[a]), _.etag[a] &&
            M.setRequestHeader('If-None-Match', _.etag[a])), (f.data &&
                f.hasContent && !1 !== f.contentType || n.contentType) &&
            M.setRequestHeader('Content-Type',
                f.contentType), M.setRequestHeader('Accept',
                f.dataTypes[0] && f.accepts[f.dataTypes[0]]
                    ? f.accepts[f.dataTypes[0]] +
                    ('*' !== f.dataTypes[0] ? ', ' + Ht + '; q=0.01' : '')
                    : f.accepts['*']), f.headers) M.setRequestHeader(d,
                f.headers[d]);
            if (f.beforeSend &&
                (!1 === f.beforeSend.call(p, M, f) || c)) return M.abort();
            if (k = 'abort', y.add(f.complete), M.done(f.success), M.fail(
                f.error), i = zt(Nt, f, n, M)) {
                if (M.readyState = 1, u &&
                m.trigger('ajaxSend', [M, f]), c) return M;
                f.async && f.timeout > 0 &&
                (s = e.setTimeout((function () {M.abort('timeout');}),
                    f.timeout));
                try {c = !1, i.send(x, L);} catch (e) {
                    if (c) throw e;
                    L(-1, e);
                }
            } else L(-1, 'No Transport');

            function L (t, n, o, l) {
                var d, h, g, x, w, k = n;
                c || (c = !0, s && e.clearTimeout(s), i = void 0, r = l ||
                    '', M.readyState = t > 0 ? 4 : 0, d = t >= 200 && t < 300 ||
                    304 === t, o && (x = function (e, t, n) {
                    for (var i, a, r, o, s = e.contents, l = e.dataTypes; "*" ===
                    l[0];) l.shift(), void 0 === i &&
                    (i = e.mimeType || t.getResponseHeader('Content-Type'));
                    if (i) for (a in s) if (s[a] && s[a].test(i)) {
                        l.unshift(a);
                        break;
                    }
                    if (l[0] in n) r = l[0]; else {
                        for (a in n) {
                            if (!l[0] || e.converters[a + ' ' + l[0]]) {
                                r = a;
                                break;
                            }
                            o || (o = a);
                        }
                        r = r || o;
                    }
                    if (r) return r !== l[0] && l.unshift(r), n[r];
                }(f, M, o)), !d && _.inArray('script', f.dataTypes) > -1 &&
                (f.converters['text script'] = function () {}), x = function (
                    e, t, n, i) {
                    var a, r, o, s, l, c = {}, u = e.dataTypes.slice();
                    if (u[1]) for (o in e.converters) c[o.toLowerCase()] = e.converters[o];
                    for (r = u.shift(); r;) if (e.responseFields[r] &&
                    (n[e.responseFields[r]] = t), !l && i && e.dataFilter &&
                    (t = e.dataFilter(t,
                        e.dataType)), l = r, r = u.shift()) if ('*' ===
                        r) r = l; else if ('*' !== l && l !== r) {
                        if (!(o = c[l + ' ' + r] ||
                            c['* ' + r])) for (a in c) if ((s = a.split(
                            ' '))[1] === r &&
                            (o = c[l + ' ' + s[0]] || c['* ' + s[0]])) {
                            !0 === o ? o = c[a] : !0 !== c[a] &&
                                (r = s[0], u.unshift(s[1]));
                            break;
                        }
                        if (!0 !== o) if (o && e.throws) t = o(t); else try {
                            t = o(t);
                        } catch (e) {
                            return {
                                state: 'parsererror',
                                error: o ? e : 'No conversion from ' + l +
                                    ' to ' + r,
                            };
                        }
                    }
                    return { state: 'success', data: t };
                }(f, x, M, d), d
                    ? (f.ifModified &&
                    ((w = M.getResponseHeader('Last-Modified')) &&
                    (_.lastModified[a] = w), (w = M.getResponseHeader(
                        'etag')) && (_.etag[a] = w)), 204 === t || 'HEAD' ===
                    f.type
                        ? k = 'nocontent'
                        : 304 === t
                            ? k = 'notmodified'
                            : (k = x.state, h = x.data, d = !(g = x.error)))
                    : (g = k, !t && k || (k = 'error', t < 0 &&
                    (t = 0))), M.status = t, M.statusText = (n || k) + '', d
                    ? v.resolveWith(p, [h, k, M])
                    : v.rejectWith(p, [M, k, g]), M.statusCode(
                    b), b = void 0, u &&
                m.trigger(d ? 'ajaxSuccess' : 'ajaxError',
                    [M, f, d ? h : g]), y.fireWith(p, [M, k]), u &&
                (m.trigger('ajaxComplete', [M, f]), --_.active ||
                _.event.trigger('ajaxStop')));
            }

            return M;
        },
        getJSON: function (e, t, n) {return _.get(e, t, n, 'json');},
        getScript: function (e, t) {return _.get(e, void 0, t, 'script');},
    }), _.each(['get', 'post'], (function (e, t) {
        _[t] = function (e, n, i, a) {
            return p(n) && (a = a || i, i = n, n = void 0), _.ajax(
                _.extend({ url: e, type: t, dataType: a, data: n, success: i },
                    _.isPlainObject(e) && e));
        };
    })), _.ajaxPrefilter((function (e) {
        var t;
        for (t in e.headers) 'content-type' === t.toLowerCase() &&
        (e.contentType = e.headers[t] || '');
    })), _._evalUrl = function (e, t, n) {
        return _.ajax({
            url: e,
            type: 'GET',
            dataType: 'script',
            cache: !0,
            async: !1,
            global: !1,
            converters: { 'text script': function () {} },
            dataFilter: function (e) {_.globalEval(e, t, n);},
        });
    }, _.fn.extend({
        wrapAll: function (e) {
            var t;
            return this[0] &&
            (p(e) && (e = e.call(this[0])), t = _(e, this[0].ownerDocument).
                eq(0).
                clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(
                (function () {
                    for (var e = this; e.firstElementChild;) e = e.firstElementChild;
                    return e;
                })).append(this)), this;
        },
        wrapInner: function (e) {
            return p(e)
                ? this.each(
                    (function (t) {_(this).wrapInner(e.call(this, t));}))
                : this.each((function () {
                    var t = _(this), n = t.contents();
                    n.length ? n.wrapAll(e) : t.append(e);
                }));
        },
        wrap: function (e) {
            var t = p(e);
            return this.each(
                (function (n) {_(this).wrapAll(t ? e.call(this, n) : e);}));
        },
        unwrap: function (e) {
            return this.parent(e).
                not('body').
                each((function () {
                    _(this).
                        replaceWith(this.childNodes);
                })), this;
        },
    }), _.expr.pseudos.hidden = function (e) {
        return !_.expr.pseudos.visible(e);
    }, _.expr.pseudos.visible = function (e) {
        return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length);
    }, _.ajaxSettings.xhr = function () {try {return new e.XMLHttpRequest;} catch (e) {}};
    var Wt = { 0: 200, 1223: 204 }, Vt = _.ajaxSettings.xhr();
    f.cors = !!Vt && 'withCredentials' in
        Vt, f.ajax = Vt = !!Vt, _.ajaxTransport((function (t) {
        var n, i;
        if (f.cors || Vt && !t.crossDomain) return {
            send: function (
                a, r) {
                var o, s = t.xhr();
                if (s.open(t.type, t.url, t.async, t.username,
                    t.password), t.xhrFields) for (o in t.xhrFields) s[o] = t.xhrFields[o];
                for (o in t.mimeType && s.overrideMimeType &&
                s.overrideMimeType(t.mimeType), t.crossDomain ||
                a['X-Requested-With'] ||
                (a['X-Requested-With'] = 'XMLHttpRequest'), a) s.setRequestHeader(
                    o, a[o]);
                n = function (e) {
                    return function () {
                        n &&
                        (n = i = s.onload = s.onerror = s.onabort = s.ontimeout = s.onreadystatechange = null, 'abort' ===
                        e ? s.abort() : 'error' === e ? 'number' !=
                        typeof s.status ? r(0, 'error') : r(s.status,
                            s.statusText) : r(Wt[s.status] || s.status,
                            s.statusText,
                            'text' !== (s.responseType || 'text') || 'string' !=
                            typeof s.responseText
                                ? { binary: s.response }
                                : { text: s.responseText },
                            s.getAllResponseHeaders()));
                    };
                }, s.onload = n(), i = s.onerror = s.ontimeout = n(
                    'error'), void 0 !== s.onabort
                    ? s.onabort = i
                    : s.onreadystatechange = function () {
                        4 === s.readyState &&
                        e.setTimeout((function () {n && i();}));
                    }, n = n('abort');
                try {
                    s.send(t.hasContent && t.data || null);
                } catch (e) {if (n) throw e;}
            }, abort: function () {n && n();},
        };
    })), _.ajaxPrefilter((function (e) {
        e.crossDomain && (e.contents.script = !1);
    })), _.ajaxSetup({
        accepts: { script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript' },
        contents: { script: /\b(?:java|ecma)script\b/ },
        converters: {
            'text script': function (e) {
                return _.globalEval(e), e;
            },
        },
    }), _.ajaxPrefilter('script', (function (e) {
        void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = 'GET');
    })), _.ajaxTransport('script', (function (e) {
        var t, n;
        if (e.crossDomain || e.scriptAttrs) return {
            send: function (
                i, a) {
                t = _('<script>').
                    attr(e.scriptAttrs || {}).
                    prop({ charset: e.scriptCharset, src: e.url }).
                    on('load error', n = function (e) {
                        t.remove(), n = null, e &&
                        a('error' === e.type ? 404 : 200, e.type);
                    }), g.head.appendChild(t[0]);
            }, abort: function () {n && n();},
        };
    }));
    var qt, Ut = [], Xt = /(=)\?(?=&|$)|\?\?/;
    _.ajaxSetup({
        jsonp: 'callback',
        jsonpCallback: function () {
            var e = Ut.pop() || _.expando + '_' + kt.guid++;
            return this[e] = !0, e;
        },
    }), _.ajaxPrefilter('json jsonp', (function (t, n, i) {
        var a, r, o, s = !1 !== t.jsonp &&
            (Xt.test(t.url) ? 'url' : 'string' == typeof t.data && 0 ===
                (t.contentType || '').indexOf(
                    'application/x-www-form-urlencoded') && Xt.test(t.data) &&
                'data');
        if (s || 'jsonp' === t.dataTypes[0]) return a = t.jsonpCallback = p(
            t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback, s
            ? t[s] = t[s].replace(Xt, '$1' + a)
            : !1 !== t.jsonp &&
            (t.url += (Mt.test(t.url) ? '&' : '?') + t.jsonp + '=' +
                a), t.converters['script json'] = function () {
            return o || _.error(a + ' was not called'), o[0];
        }, t.dataTypes[0] = 'json', r = e[a], e[a] = function () {o = arguments;}, i.always(
            (function () {
                void 0 === r ? _(e).removeProp(a) : e[a] = r, t[a] &&
                (t.jsonpCallback = n.jsonpCallback, Ut.push(a)), o && p(r) &&
                r(o[0]), o = r = void 0;
            })), 'script';
    })), f.createHTMLDocument = ((qt = g.implementation.createHTMLDocument(
        '').body).innerHTML = '<form></form><form></form>', 2 ===
    qt.childNodes.length), _.parseHTML = function (e, t, n) {
        return 'string' != typeof e ? [] : ('boolean' == typeof t &&
        (n = t, t = !1), t || (f.createHTMLDocument
            ? ((i = (t = g.implementation.createHTMLDocument('')).createElement(
                'base')).href = g.location.href, t.head.appendChild(i))
            : t = g), r = !n && [], (a = A.exec(e))
            ? [t.createElement(a[1])]
            : (a = xe([e], t, r), r && r.length && _(r).remove(), _.merge([],
                a.childNodes)));
        var i, a, r;
    }, _.fn.load = function (e, t, n) {
        var i, a, r, o = this, s = e.indexOf(' ');
        return s > -1 && (i = gt(e.slice(s)), e = e.slice(0, s)), p(t)
            ? (n = t, t = void 0)
            : t && 'object' == typeof t && (a = 'POST'), o.length > 0 &&
        _.ajax({ url: e, type: a || 'GET', dataType: 'html', data: t }).
            done((function (e) {
                r = arguments, o.html(
                    i ? _('<div>').append(_.parseHTML(e)).find(i) : e);
            })).
            always(n && function (e, t) {
                o.each(
                    (function () {
                        n.apply(this, r || [e.responseText, t, e]);
                    }));
            }), this;
    }, _.expr.pseudos.animated = function (e) {
        return _.grep(_.timers, (function (t) {return e === t.elem;})).length;
    }, _.offset = {
        setOffset: function (e, t, n) {
            var i, a, r, o, s, l, c = _.css(e, 'position'), u = _(e), d = {};
            'static' === c &&
            (e.style.position = 'relative'), s = u.offset(), r = _.css(e,
                'top'), l = _.css(e, 'left'), ('absolute' === c || 'fixed' ===
                c) && (r + l).indexOf('auto') > -1
                ? (o = (i = u.position()).top, a = i.left)
                : (o = parseFloat(r) || 0, a = parseFloat(l) || 0), p(t) &&
            (t = t.call(e, n, _.extend({}, s))), null != t.top &&
            (d.top = t.top - s.top + o), null != t.left &&
            (d.left = t.left - s.left + a), 'using' in t
                ? t.using.call(e, d)
                : ('number' == typeof d.top && (d.top += 'px'), 'number' ==
                typeof d.left && (d.left += 'px'), u.css(d));
        },
    }, _.fn.extend({
        offset: function (e) {
            if (arguments.length) return void 0 === e
                ? this
                : this.each((function (t) {_.offset.setOffset(this, e, t);}));
            var t, n, i = this[0];
            return i ? i.getClientRects().length
                ? (t = i.getBoundingClientRect(), n = i.ownerDocument.defaultView, {
                    top: t.top + n.pageYOffset, left: t.left + n.pageXOffset,
                })
                : { top: 0, left: 0 } : void 0;
        },
        position: function () {
            if (this[0]) {
                var e, t, n, i = this[0], a = { top: 0, left: 0 };
                if ('fixed' === _.css(i,
                    'position')) t = i.getBoundingClientRect(); else {
                    for (t = this.offset(), n = i.ownerDocument, e = i.offsetParent ||
                        n.documentElement; e && (e === n.body || e ===
                        n.documentElement) && "static" === _.css(e,
                        "position");) e = e.parentNode;
                    e && e !== i && 1 === e.nodeType &&
                    ((a = _(e).offset()).top += _.css(e, 'borderTopWidth',
                        !0), a.left += _.css(e, 'borderLeftWidth', !0));
                }
                return {
                    top: t.top - a.top - _.css(i, 'marginTop', !0),
                    left: t.left - a.left - _.css(i, 'marginLeft', !0),
                };
            }
        },
        offsetParent: function () {
            return this.map((function () {
                for (var e = this.offsetParent; e && "static" ===
                _.css(e, "position");) e = e.offsetParent;
                return e || ie;
            }));
        },
    }), _.each({ scrollLeft: 'pageXOffset', scrollTop: 'pageYOffset' },
        (function (e, t) {
            var n = 'pageYOffset' === t;
            _.fn[e] = function (i) {
                return B(this, (function (e, i, a) {
                    var r;
                    if (m(e) ? r = e : 9 === e.nodeType &&
                        (r = e.defaultView), void 0 === a) return r
                        ? r[t]
                        : e[i];
                    r
                        ? r.scrollTo(n ? r.pageXOffset : a,
                        n ? a : r.pageYOffset)
                        : e[i] = a;
                }), e, i, arguments.length);
            };
        })), _.each(['top', 'left'], (function (e, t) {
        _.cssHooks[t] = Ve(f.pixelPosition, (function (e, n) {
            if (n) return n = We(e, t), Fe.test(n) ? _(e).
                position()[t] + 'px' : n;
        }));
    })), _.each({ Height: 'height', Width: 'width' }, (function (e, t) {
        _.each({ padding: 'inner' + e, content: t, '': 'outer' + e },
            (function (n, i) {
                _.fn[i] = function (a, r) {
                    var o = arguments.length && (n || 'boolean' != typeof a),
                        s = n || (!0 === a || !0 === r ? 'margin' : 'border');
                    return B(this, (function (t, n, a) {
                        var r;
                        return m(t) ? 0 === i.indexOf('outer')
                            ? t['inner' + e]
                            : t.document.documentElement['client' + e] : 9 ===
                        t.nodeType ? (r = t.documentElement, Math.max(
                            t.body['scroll' + e], r['scroll' + e],
                            t.body['offset' + e], r['offset' + e],
                            r['client' + e])) : void 0 === a
                            ? _.css(t, n, s)
                            : _.style(t, n, a, s);
                    }), t, o ? a : void 0, o);
                };
            }));
    })), _.each([
        'ajaxStart',
        'ajaxStop',
        'ajaxComplete',
        'ajaxError',
        'ajaxSuccess',
        'ajaxSend'], (function (e, t) {
        _.fn[t] = function (e) {
            return this.on(t, e);
        };
    })), _.fn.extend({
        bind: function (e, t, n) {return this.on(e, null, t, n);},
        unbind: function (e, t) {return this.off(e, null, t);},
        delegate: function (e, t, n, i) {return this.on(t, e, n, i);},
        undelegate: function (e, t, n) {
            return 1 === arguments.length
                ? this.off(e, '**')
                : this.off(t, e || '**', n);
        },
        hover: function (e, t) {return this.mouseenter(e).mouseleave(t || e);},
    }), _.each(
        'blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu'.split(
            ' '), (function (e, t) {
            _.fn[t] = function (e, n) {
                return arguments.length > 0
                    ? this.on(t, null, e, n)
                    : this.trigger(t);
            };
        }));
    var $t = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
    _.proxy = function (e, t) {
        var n, i, r;
        if ('string' == typeof t && (n = e[t], t = e, e = n), p(
            e)) return i = a.call(arguments, 2), (r = function () {
            return e.apply(t || this, i.concat(a.call(arguments)));
        }).guid = e.guid = e.guid || _.guid++, r;
    }, _.holdReady = function (e) {
        e ? _.readyWait++ : _.ready(!0);
    }, _.isArray = Array.isArray, _.parseJSON = JSON.parse, _.nodeName = T, _.isFunction = p, _.isWindow = m, _.camelCase = U, _.type = b, _.now = Date.now, _.isNumeric = function (e) {
        var t = _.type(e);
        return ('number' === t || 'string' === t) && !isNaN(e - parseFloat(e));
    }, _.trim = function (e) {
        return null == e ? '' : (e + '').replace($t, '');
    }, 'function' == typeof define && define.amd &&
    define('jquery', [], (function () {return _;}));
    var Gt = e.jQuery, Zt = e.$;
    return _.noConflict = function (t) {
        return e.$ === _ && (e.$ = Zt), t && e.jQuery === _ &&
        (e.jQuery = Gt), _;
    }, void 0 === t && (e.jQuery = e.$ = _), _;
})), function (e, t) {
    'object' == typeof exports && 'undefined' != typeof module
        ? t(exports)
        : 'function' == typeof define && define.amd
        ? define(['exports'], t)
        : t((e = 'undefined' != typeof globalThis ? globalThis : e ||
            self).Popper = {});
}(this, (function (e) {
    'use strict';

    function t (e) {
        var t = e.getBoundingClientRect();
        return {
            width: t.width,
            height: t.height,
            top: t.top,
            right: t.right,
            bottom: t.bottom,
            left: t.left,
            x: t.left,
            y: t.top,
        };
    }

    function n (e) {
        if (null == e) return window;
        if ('[object Window]' !== e.toString()) {
            var t = e.ownerDocument;
            return t && t.defaultView || window;
        }
        return e;
    }

    function i (e) {
        var t = n(e);
        return { scrollLeft: t.pageXOffset, scrollTop: t.pageYOffset };
    }

    function a (e) {return e instanceof n(e).Element || e instanceof Element;}

    function r (e) {
        return e instanceof n(e).HTMLElement || e instanceof HTMLElement;
    }

    function o (e) {
        return 'undefined' != typeof ShadowRoot &&
            (e instanceof n(e).ShadowRoot || e instanceof ShadowRoot);
    }

    function s (e) {return e ? (e.nodeName || '').toLowerCase() : null;}

    function l (e) {
        return ((a(e) ? e.ownerDocument : e.document) ||
            window.document).documentElement;
    }

    function c (e) {return t(l(e)).left + i(e).scrollLeft;}

    function u (e) {return n(e).getComputedStyle(e);}

    function d (e) {
        var t = u(e), n = t.overflow, i = t.overflowX, a = t.overflowY;
        return /auto|scroll|overlay|hidden/.test(n + a + i);
    }

    function h (e, a, o) {
        void 0 === o && (o = !1);
        var u, h, f = l(a), p = t(e), m = r(a),
            g = { scrollLeft: 0, scrollTop: 0 }, v = { x: 0, y: 0 };
        return (m || !m && !o) && (('body' !== s(a) || d(f)) &&
        (g = (u = a) !== n(u) && r(u) ? {
            scrollLeft: (h = u).scrollLeft,
            scrollTop: h.scrollTop,
        } : i(u)), r(a)
            ? ((v = t(a)).x += a.clientLeft, v.y += a.clientTop)
            : f && (v.x = c(f))), {
            x: p.left + g.scrollLeft - v.x,
            y: p.top + g.scrollTop - v.y,
            width: p.width,
            height: p.height,
        };
    }

    function f (e) {
        var n = t(e), i = e.offsetWidth, a = e.offsetHeight;
        return Math.abs(n.width - i) <= 1 && (i = n.width), Math.abs(
            n.height - a) <= 1 && (a = n.height), {
            x: e.offsetLeft,
            y: e.offsetTop,
            width: i,
            height: a,
        };
    }

    function p (e) {
        return 'html' === s(e) ? e : e.assignedSlot || e.parentNode ||
            (o(e) ? e.host : null) || l(e);
    }

    function m (e) {
        return ['html', 'body', '#document'].indexOf(s(e)) >= 0
            ? e.ownerDocument.body
            : r(e) && d(e) ? e : m(p(e));
    }

    function g (e, t) {
        var i;
        void 0 === t && (t = []);
        var a = m(e),
            r = a === (null == (i = e.ownerDocument) ? void 0 : i.body),
            o = n(a),
            s = r ? [o].concat(o.visualViewport || [], d(a) ? a : []) : a,
            l = t.concat(s);
        return r ? l : l.concat(g(p(s)));
    }

    function v (e) {return ['table', 'td', 'th'].indexOf(s(e)) >= 0;}

    function y (e) {
        return r(e) && 'fixed' !== u(e).position
            ? e.offsetParent
            : null;
    }

    function b (e) {
        for (var t = n(e), i = y(e); i && v(i) && "static" ===
        u(i).position;) i = y(i);
        return i &&
        ('html' === s(i) || 'body' === s(i) && 'static' === u(i).position)
            ? t
            : i || function (e) {
            var t = -1 !== navigator.userAgent.toLowerCase().indexOf('firefox');
            if (-1 !== navigator.userAgent.indexOf('Trident') && r(e) &&
                'fixed' === u(e).position) return null;
            for (var n = p(e); r(n) && ["html", "body"].indexOf(s(n)) < 0;) {
                var i = u(n);
                if ('none' !== i.transform || 'none' !== i.perspective ||
                    'paint' === i.contain || -1 !==
                    ['transform', 'perspective'].indexOf(i.willChange) || t &&
                    'filter' === i.willChange || t && i.filter && 'none' !==
                    i.filter) return n;
                n = n.parentNode;
            }
            return null;
        }(e) || t;
    }

    var x = 'top', _ = 'bottom', w = 'right', k = 'left', M = 'auto',
        L = [x, _, w, k], S = 'start', T = 'end', A = 'viewport', D = 'popper',
        C = L.reduce(
            (function (e, t) {return e.concat([t + '-' + S, t + '-' + T]);}),
            []), E = [].concat(L, [M]).
            reduce(
                (function (e, t) {return e.concat([t, t + '-' + S, t + '-' + T]);}),
                []), O = [
            'beforeRead',
            'read',
            'afterRead',
            'beforeMain',
            'main',
            'afterMain',
            'beforeWrite',
            'write',
            'afterWrite'];

    function Y (e) {
        var t = new Map, n = new Set, i = [];

        function a (e) {
            n.add(e.name), [].concat(e.requires || [],
                e.requiresIfExists || []).
                forEach((function (e) {
                    if (!n.has(e)) {
                        var i = t.get(e);
                        i && a(i);
                    }
                })), i.push(e);
        }

        return e.forEach((function (e) {t.set(e.name, e);})), e.forEach(
            (function (e) {n.has(e.name) || a(e);})), i;
    }

    function P (e) {
        for (var t = arguments.length, n = new Array(
            t > 1 ? t - 1 : 0), i = 1; i < t; i++) n[i - 1] = arguments[i];
        return [].concat(n).
            reduce((function (e, t) {return e.replace(/%s/, t);}), e);
    }

    var I = 'Popper: modifier "%s" provided an invalid %s property, expected %s but got %s',
        j = ['name', 'enabled', 'phase', 'fn', 'effect', 'requires', 'options'];

    function N (e) {return e.split('-')[0];}

    var H = Math.max, F = Math.min, R = Math.round;

    function z (e, t) {
        var n = t.getRootNode && t.getRootNode();
        if (e.contains(t)) return !0;
        if (n && o(n)) {
            var i = t;
            do {
                if (i && e.isSameNode(i)) return !0;
                i = i.parentNode || i.host;
            } while (i);
        }
        return !1;
    }

    function B (e) {
        return Object.assign({}, e, {
            left: e.x,
            top: e.y,
            right: e.x + e.width,
            bottom: e.y + e.height,
        });
    }

    function W (e, a) {
        return a === A ? B(function (e) {
            var t = n(e), i = l(e), a = t.visualViewport, r = i.clientWidth,
                o = i.clientHeight, s = 0, u = 0;
            return a &&
            (r = a.width, o = a.height, /^((?!chrome|android).)*safari/i.test(
                navigator.userAgent) || (s = a.offsetLeft, u = a.offsetTop)), {
                width: r,
                height: o,
                x: s + c(e),
                y: u,
            };
        }(e)) : r(a) ? function (e) {
            var n = t(e);
            return n.top = n.top + e.clientTop, n.left = n.left +
                e.clientLeft, n.bottom = n.top +
                e.clientHeight, n.right = n.left +
                e.clientWidth, n.width = e.clientWidth, n.height = e.clientHeight, n.x = n.left, n.y = n.top, n;
        }(a) : B(function (e) {
            var t, n = l(e), a = i(e),
                r = null == (t = e.ownerDocument) ? void 0 : t.body,
                o = H(n.scrollWidth, n.clientWidth, r ? r.scrollWidth : 0,
                    r ? r.clientWidth : 0),
                s = H(n.scrollHeight, n.clientHeight, r ? r.scrollHeight : 0,
                    r ? r.clientHeight : 0), d = -a.scrollLeft + c(e),
                h = -a.scrollTop;
            return 'rtl' === u(r || n).direction &&
            (d += H(n.clientWidth, r ? r.clientWidth : 0) - o), {
                width: o,
                height: s,
                x: d,
                y: h,
            };
        }(l(e)));
    }

    function V (e, t, n) {
        var i = 'clippingParents' === t
            ? function (e) {
                var t = g(p(e)),
                    n = ['absolute', 'fixed'].indexOf(u(e).position) >= 0 &&
                    r(e)
                        ? b(e)
                        : e;
                return a(n)
                    ? t.filter((function (e) {
                        return a(e) && z(e, n) && 'body' !== s(e);
                    }))
                    : [];
            }(e)
            : [].concat(t), o = [].concat(i, [n]), l = o[0],
            c = o.reduce((function (t, n) {
                var i = W(e, n);
                return t.top = H(i.top, t.top), t.right = F(i.right,
                    t.right), t.bottom = F(i.bottom, t.bottom), t.left = H(
                    i.left, t.left), t;
            }), W(e, l));
        return c.width = c.right - c.left, c.height = c.bottom -
            c.top, c.x = c.left, c.y = c.top, c;
    }

    function q (e) {return e.split('-')[1];}

    function U (e) {return ['top', 'bottom'].indexOf(e) >= 0 ? 'x' : 'y';}

    function X (e) {
        var t, n = e.reference, i = e.element, a = e.placement,
            r = a ? N(a) : null, o = a ? q(a) : null,
            s = n.x + n.width / 2 - i.width / 2,
            l = n.y + n.height / 2 - i.height / 2;
        switch (r) {
            case x:
                t = { x: s, y: n.y - i.height };
                break;
            case _:
                t = { x: s, y: n.y + n.height };
                break;
            case w:
                t = { x: n.x + n.width, y: l };
                break;
            case k:
                t = { x: n.x - i.width, y: l };
                break;
            default:
                t = { x: n.x, y: n.y };
        }
        var c = r ? U(r) : null;
        if (null != c) {
            var u = 'y' === c ? 'height' : 'width';
            switch (o) {
                case S:
                    t[c] = t[c] - (n[u] / 2 - i[u] / 2);
                    break;
                case T:
                    t[c] = t[c] + (n[u] / 2 - i[u] / 2);
            }
        }
        return t;
    }

    function $ (e) {
        return Object.assign({}, { top: 0, right: 0, bottom: 0, left: 0 }, e);
    }

    function G (e, t) {
        return t.reduce((function (t, n) {return t[n] = e, t;}), {});
    }

    function Z (e, n) {
        void 0 === n && (n = {});
        var i = n, r = i.placement, o = void 0 === r ? e.placement : r,
            s = i.boundary, c = void 0 === s ? 'clippingParents' : s,
            u = i.rootBoundary, d = void 0 === u ? A : u, h = i.elementContext,
            f = void 0 === h ? D : h, p = i.altBoundary, m = void 0 !== p && p,
            g = i.padding, v = void 0 === g ? 0 : g,
            y = $('number' != typeof v ? v : G(v, L)),
            b = f === D ? 'reference' : D, k = e.elements.reference,
            M = e.rects.popper, S = e.elements[m ? b : f],
            T = V(a(S) ? S : S.contextElement || l(e.elements.popper), c, d),
            C = t(k), E = X(
            { reference: C, element: M, strategy: 'absolute', placement: o }),
            O = B(Object.assign({}, M, E)), Y = f === D ? O : C, P = {
                top: T.top - Y.top + y.top,
                bottom: Y.bottom - T.bottom + y.bottom,
                left: T.left - Y.left + y.left,
                right: Y.right - T.right + y.right,
            }, I = e.modifiersData.offset;
        if (f === D && I) {
            var j = I[o];
            Object.keys(P).
                forEach((function (e) {
                    var t = [w, _].indexOf(e) >= 0 ? 1 : -1,
                        n = [x, _].indexOf(e) >= 0 ? 'y' : 'x';
                    P[e] += j[n] * t;
                }));
        }
        return P;
    }

    var K = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.',
        J = { placement: 'bottom', modifiers: [], strategy: 'absolute' };

    function Q () {
        for (var e = arguments.length, t = new Array(e), n = 0; n <
        e; n++) t[n] = arguments[n];
        return !t.some((function (e) {
            return !(e && 'function' == typeof e.getBoundingClientRect);
        }));
    }

    function ee (e) {
        void 0 === e && (e = {});
        var t = e, n = t.defaultModifiers, i = void 0 === n ? [] : n,
            r = t.defaultOptions, o = void 0 === r ? J : r;
        return function (e, t, n) {
            void 0 === n && (n = o);
            var r, s, l = {
                placement: 'bottom',
                orderedModifiers: [],
                options: Object.assign({}, J, o),
                modifiersData: {},
                elements: { reference: e, popper: t },
                attributes: {},
                styles: {},
            }, c = [], d = !1, p = {
                state: l,
                setOptions: function (n) {
                    m(), l.options = Object.assign({}, o, l.options,
                        n), l.scrollParents = {
                        reference: a(e)
                            ? g(e)
                            : e.contextElement ? g(e.contextElement) : [],
                        popper: g(t),
                    };
                    var r = function (e) {
                        var t = Y(e);
                        return O.reduce((function (e, n) {
                            return e.concat(
                                t.filter(
                                    (function (e) {return e.phase === n;})));
                        }), []);
                    }(function (e) {
                        var t = e.reduce((function (e, t) {
                            var n = e[t.name];
                            return e[t.name] = n ? Object.assign({}, n, t, {
                                options: Object.assign({}, n.options,
                                    t.options),
                                data: Object.assign({}, n.data, t.data),
                            }) : t, e;
                        }), {});
                        return Object.keys(t).
                            map((function (e) {return t[e];}));
                    }([].concat(i, l.options.modifiers)));
                    (l.orderedModifiers = r.filter(
                        (function (e) {return e.enabled;})), function (e) {
                        e.forEach((function (t) {
                            Object.keys(t).forEach((function (n) {
                                switch (n) {
                                    case'name':
                                        'string' != typeof t.name &&
                                        console.error(
                                            P(I, String(t.name), '"name"',
                                                '"string"',
                                                '"' + String(t.name) + '"'));
                                        break;
                                    case'enabled':
                                        'boolean' != typeof t.enabled &&
                                        console.error(P(I, t.name, '"enabled"',
                                            '"boolean"',
                                            '"' + String(t.enabled) + '"'));
                                    case'phase':
                                        O.indexOf(t.phase) < 0 && console.error(
                                            P(I, t.name, '"phase"',
                                                'either ' + O.join(', '),
                                                '"' + String(t.phase) + '"'));
                                        break;
                                    case'fn':
                                        'function' != typeof t.fn &&
                                        console.error(
                                            P(I, t.name, '"fn"', '"function"',
                                                '"' + String(t.fn) + '"'));
                                        break;
                                    case'effect':
                                        'function' != typeof t.effect &&
                                        console.error(P(I, t.name, '"effect"',
                                            '"function"',
                                            '"' + String(t.fn) + '"'));
                                        break;
                                    case'requires':
                                        Array.isArray(t.requires) ||
                                        console.error(P(I, t.name, '"requires"',
                                            '"array"',
                                            '"' + String(t.requires) + '"'));
                                        break;
                                    case'requiresIfExists':
                                        Array.isArray(t.requiresIfExists) ||
                                        console.error(
                                            P(I, t.name, '"requiresIfExists"',
                                                '"array"', '"' +
                                                String(t.requiresIfExists) +
                                                '"'));
                                        break;
                                    case'options':
                                    case'data':
                                        break;
                                    default:
                                        console.error(
                                            'PopperJS: an invalid property has been provided to the "' +
                                            t.name +
                                            '" modifier, valid properties are ' +
                                            j.map((function (e) {
                                                return '"' + e + '"';
                                            })).join(', ') + '; but "' + n +
                                            '" was provided.');
                                }
                                t.requires && t.requires.forEach((function (n) {
                                    null == e.find(
                                        (function (e) {
                                            return e.name === n;
                                        })) &&
                                    console.error(
                                        P('Popper: modifier "%s" requires "%s", but "%s" modifier is not available',
                                            String(t.name), n, n));
                                }));
                            }));
                        }));
                    }((s = [].concat(r,
                        l.options.modifiers), d = function (e) {return e.name;}, h = new Set, s.filter(
                        (function (e) {
                            var t = d(e);
                            if (!h.has(t)) return h.add(t), !0;
                        })))), N(l.options.placement) === M) &&
                    (l.orderedModifiers.find(
                        (function (e) {return 'flip' === e.name;})) ||
                        console.error([
                            'Popper: "auto" placements require the "flip" modifier be',
                            'present and enabled to work.'].join(' ')));
                    var s, d, h, f = u(t);
                    return [
                        f.marginTop,
                        f.marginRight,
                        f.marginBottom,
                        f.marginLeft].some(
                        (function (e) {return parseFloat(e);})) &&
                    console.warn([
                        'Popper: CSS "margin" styles cannot be used to apply padding',
                        'between the popper and its reference element or boundary.',
                        'To replicate margin, use the `offset` modifier, as well as',
                        'the `padding` option in the `preventOverflow` and `flip`',
                        'modifiers.'].join(' ')), l.orderedModifiers.forEach(
                        (function (e) {
                            var t = e.name, n = e.options,
                                i = void 0 === n ? {} : n, a = e.effect;
                            if ('function' == typeof a) {
                                var r = a({
                                    state: l,
                                    name: t,
                                    instance: p,
                                    options: i,
                                }), o = function () {};
                                c.push(r || o);
                            }
                        })), p.update();
                },
                forceUpdate: function () {
                    if (!d) {
                        var e = l.elements, t = e.reference, n = e.popper;
                        if (Q(t, n)) {
                            l.rects = {
                                reference: h(t, b(n),
                                    'fixed' === l.options.strategy),
                                popper: f(n),
                            }, l.reset = !1, l.placement = l.options.placement, l.orderedModifiers.forEach(
                                (function (e) {
                                    return l.modifiersData[e.name] = Object.assign(
                                        {}, e.data);
                                }));
                            for (var i = 0, a = 0; a <
                            l.orderedModifiers.length; a++) {
                                if ((i += 1) > 100) {
                                    console.error(
                                        'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.');
                                    break;
                                }
                                if (!0 !== l.reset) {
                                    var r = l.orderedModifiers[a], o = r.fn,
                                        s = r.options,
                                        c = void 0 === s ? {} : s, u = r.name;
                                    'function' == typeof o && (l = o({
                                        state: l,
                                        options: c,
                                        name: u,
                                        instance: p,
                                    }) || l);
                                } else l.reset = !1, a = -1;
                            }
                        } else console.error(K);
                    }
                },
                update: (r = function () {
                    return new Promise((function (e) {p.forceUpdate(), e(l);}));
                }, function () {
                    return s || (s = new Promise((function (e) {
                        Promise.resolve().
                            then((function () {s = void 0, e(r());}));
                    }))), s;
                }),
                destroy: function () {m(), d = !0;},
            };
            if (!Q(e, t)) return console.error(K), p;

            function m () {c.forEach((function (e) {return e();})), c = [];}

            return p.setOptions(n).
                then((function (e) {
                    !d && n.onFirstUpdate && n.onFirstUpdate(e);
                })), p;
        };
    }

    var te = { passive: !0 };
    var ne = {
        name: 'eventListeners',
        enabled: !0,
        phase: 'write',
        fn: function () {},
        effect: function (e) {
            var t = e.state, i = e.instance, a = e.options, r = a.scroll,
                o = void 0 === r || r, s = a.resize, l = void 0 === s || s,
                c = n(t.elements.popper),
                u = [].concat(t.scrollParents.reference,
                    t.scrollParents.popper);
            return o && u.forEach((function (e) {
                e.addEventListener('scroll', i.update, te);
            })), l && c.addEventListener('resize', i.update, te), function () {
                o && u.forEach((function (e) {
                    e.removeEventListener('scroll', i.update, te);
                })), l && c.removeEventListener('resize', i.update, te);
            };
        },
        data: {},
    };
    var ie = {
        name: 'popperOffsets',
        enabled: !0,
        phase: 'read',
        fn: function (e) {
            var t = e.state, n = e.name;
            t.modifiersData[n] = X({
                reference: t.rects.reference,
                element: t.rects.popper,
                strategy: 'absolute',
                placement: t.placement,
            });
        },
        data: {},
    }, ae = { top: 'auto', right: 'auto', bottom: 'auto', left: 'auto' };

    function re (e) {
        var t, i = e.popper, a = e.popperRect, r = e.placement, o = e.offsets,
            s = e.position, c = e.gpuAcceleration, d = e.adaptive,
            h = e.roundOffsets, f = !0 === h ? function (e) {
                var t = e.x, n = e.y, i = window.devicePixelRatio || 1;
                return { x: R(R(t * i) / i) || 0, y: R(R(n * i) / i) || 0 };
            }(o) : 'function' == typeof h ? h(o) : o, p = f.x,
            m = void 0 === p ? 0 : p, g = f.y, v = void 0 === g ? 0 : g,
            y = o.hasOwnProperty('x'), M = o.hasOwnProperty('y'), L = k, S = x,
            T = window;
        if (d) {
            var A = b(i), D = 'clientHeight', C = 'clientWidth';
            A === n(i) && 'static' !== u(A = l(i)).position &&
            (D = 'scrollHeight', C = 'scrollWidth'), A = A, r === x &&
            (S = _, v -= A[D] - a.height, v *= c ? 1 : -1), r === k &&
            (L = w, m -= A[C] - a.width, m *= c ? 1 : -1);
        }
        var E, O = Object.assign({ position: s }, d && ae);
        return c ? Object.assign({}, O, ((E = {})[S] = M ? '0' : '', E[L] = y
            ? '0'
            : '', E.transform = (T.devicePixelRatio || 1) < 2 ? 'translate(' +
            m + 'px, ' + v + 'px)' : 'translate3d(' + m + 'px, ' + v +
            'px, 0)', E)) : Object.assign({}, O,
            ((t = {})[S] = M ? v + 'px' : '', t[L] = y
                ? m + 'px'
                : '', t.transform = '', t));
    }

    var oe = {
        name: 'computeStyles',
        enabled: !0,
        phase: 'beforeWrite',
        fn: function (e) {
            var t = e.state, n = e.options, i = n.gpuAcceleration,
                a = void 0 === i || i, r = n.adaptive, o = void 0 === r || r,
                s = n.roundOffsets, l = void 0 === s || s,
                c = u(t.elements.popper).transitionProperty || '';
            o && ['transform', 'top', 'right', 'bottom', 'left'].some(
                (function (e) {return c.indexOf(e) >= 0;})) && console.warn([
                'Popper: Detected CSS transitions on at least one of the following',
                'CSS properties: "transform", "top", "right", "bottom", "left".',
                '\n\n',
                'Disable the "computeStyles" modifier\'s `adaptive` option to allow',
                'for smooth transitions, or remove these properties from the CSS',
                'transition declaration on the popper element if only transitioning',
                'opacity or background-color for example.',
                '\n\n',
                'We recommend using the popper element as a wrapper around an inner',
                'element that can have any CSS property transitioned for animations.'].join(
                ' '));
            var d = {
                placement: N(t.placement),
                popper: t.elements.popper,
                popperRect: t.rects.popper,
                gpuAcceleration: a,
            };
            null != t.modifiersData.popperOffsets &&
            (t.styles.popper = Object.assign({}, t.styles.popper,
                re(Object.assign({}, d, {
                    offsets: t.modifiersData.popperOffsets,
                    position: t.options.strategy,
                    adaptive: o,
                    roundOffsets: l,
                })))), null != t.modifiersData.arrow &&
            (t.styles.arrow = Object.assign({}, t.styles.arrow,
                re(Object.assign({}, d, {
                    offsets: t.modifiersData.arrow,
                    position: 'absolute',
                    adaptive: !1,
                    roundOffsets: l,
                })))), t.attributes.popper = Object.assign({},
                t.attributes.popper, { 'data-popper-placement': t.placement });
        },
        data: {},
    };
    var se = {
        name: 'applyStyles',
        enabled: !0,
        phase: 'write',
        fn: function (e) {
            var t = e.state;
            Object.keys(t.elements).
                forEach((function (e) {
                    var n = t.styles[e] || {}, i = t.attributes[e] || {},
                        a = t.elements[e];
                    r(a) && s(a) && (Object.assign(a.style, n), Object.keys(i).
                        forEach((function (e) {
                            var t = i[e];
                            !1 === t ? a.removeAttribute(e) : a.setAttribute(e,
                                !0 === t ? '' : t);
                        })));
                }));
        },
        effect: function (e) {
            var t = e.state, n = {
                popper: {
                    position: t.options.strategy,
                    left: '0',
                    top: '0',
                    margin: '0',
                }, arrow: { position: 'absolute' }, reference: {},
            };
            return Object.assign(t.elements.popper.style,
                n.popper), t.styles = n, t.elements.arrow &&
            Object.assign(t.elements.arrow.style, n.arrow), function () {
                Object.keys(t.elements).
                    forEach((function (e) {
                        var i = t.elements[e], a = t.attributes[e] || {},
                            o = Object.keys(t.styles.hasOwnProperty(e)
                                ? t.styles[e]
                                : n[e]).
                                reduce((function (e, t) {return e[t] = '', e;}),
                                    {});
                        r(i) && s(i) &&
                        (Object.assign(i.style, o), Object.keys(a).
                            forEach((function (e) {i.removeAttribute(e);})));
                    }));
            };
        },
        requires: ['computeStyles'],
    };
    var le = {
        name: 'offset',
        enabled: !0,
        phase: 'main',
        requires: ['popperOffsets'],
        fn: function (e) {
            var t = e.state, n = e.options, i = e.name, a = n.offset,
                r = void 0 === a ? [0, 0] : a, o = E.reduce((function (e, n) {
                    return e[n] = function (e, t, n) {
                        var i = N(e), a = [k, x].indexOf(i) >= 0 ? -1 : 1,
                            r = 'function' == typeof n ? n(
                                Object.assign({}, t, { placement: e })) : n,
                            o = r[0], s = r[1];
                        return o = o || 0, s = (s || 0) * a, [k, w].indexOf(i) >= 0
                            ? { x: s, y: o }
                            : { x: o, y: s };
                    }(n, t.rects, r), e;
                }), {}), s = o[t.placement], l = s.x, c = s.y;
            null != t.modifiersData.popperOffsets &&
            (t.modifiersData.popperOffsets.x += l, t.modifiersData.popperOffsets.y += c), t.modifiersData[i] = o;
        },
    }, ce = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };

    function ue (e) {
        return e.replace(/left|right|bottom|top/g,
            (function (e) {return ce[e];}));
    }

    var de = { start: 'end', end: 'start' };

    function he (e) {
        return e.replace(/start|end/g, (function (e) {return de[e];}));
    }

    function fe (e, t) {
        void 0 === t && (t = {});
        var n = t, i = n.placement, a = n.boundary, r = n.rootBoundary,
            o = n.padding, s = n.flipVariations, l = n.allowedAutoPlacements,
            c = void 0 === l ? E : l, u = q(i),
            d = u ? s ? C : C.filter((function (e) {return q(e) === u;})) : L,
            h = d.filter((function (e) {return c.indexOf(e) >= 0;}));
        0 === h.length && (h = d, console.error([
            'Popper: The `allowedAutoPlacements` option did not allow any',
            'placements. Ensure the `placement` option matches the variation',
            'of the allowed placements.',
            'For example, "auto" cannot be used to allow "bottom-start".',
            'Use "auto-start" instead.'].join(' ')));
        var f = h.reduce((function (t, n) {
            return t[n] = Z(e,
                { placement: n, boundary: a, rootBoundary: r, padding: o })[N(
                n)], t;
        }), {});
        return Object.keys(f).sort((function (e, t) {return f[e] - f[t];}));
    }

    var pe = {
        name: 'flip', enabled: !0, phase: 'main', fn: function (e) {
            var t = e.state, n = e.options, i = e.name;
            if (!t.modifiersData[i]._skip) {
                for (var a = n.mainAxis, r = void 0 === a ||
                    a, o = n.altAxis, s = void 0 === o ||
                    o, l = n.fallbackPlacements, c = n.padding, u = n.boundary, d = n.rootBoundary, h = n.altBoundary, f = n.flipVariations, p = void 0 ===
                    f ||
                    f, m = n.allowedAutoPlacements, g = t.options.placement, v = N(
                    g), y = l || (v === g || !p ? [ue(g)] : function (e) {
                    if (N(e) === M) return [];
                    var t = ue(e);
                    return [he(e), t, he(t)];
                }(g)), b = [g].concat(y).
                    reduce((function (e, n) {
                            return e.concat(N(n) === M ? fe(t, {
                                placement: n,
                                boundary: u,
                                rootBoundary: d,
                                padding: c,
                                flipVariations: p,
                                allowedAutoPlacements: m,
                            }) : n);
                        }),
                        []), L = t.rects.reference, T = t.rects.popper, A = new Map, D = !0, C = b[0], E = 0; E <
                     b.length; E++) {
                    var O = b[E], Y = N(O), P = q(O) === S,
                        I = [x, _].indexOf(Y) >= 0, j = I ? 'width' : 'height',
                        H = Z(t, {
                            placement: O,
                            boundary: u,
                            rootBoundary: d,
                            altBoundary: h,
                            padding: c,
                        }), F = I ? P ? w : k : P ? _ : x;
                    L[j] > T[j] && (F = ue(F));
                    var R = ue(F), z = [];
                    if (r && z.push(H[Y] <= 0), s &&
                    z.push(H[F] <= 0, H[R] <= 0), z.every(
                        (function (e) {return e;}))) {
                        C = O, D = !1;
                        break;
                    }
                    A.set(O, z);
                }
                if (D) for (var B = function (e) {
                    var t = b.find((function (t) {
                        var n = A.get(t);
                        if (n) return n.slice(0, e).
                            every((function (e) {return e;}));
                    }));
                    if (t) return C = t, 'break';
                }, W = p ? 3 : 1; W > 0; W--) {if ('break' === B(W)) break;}
                t.placement !== C &&
                (t.modifiersData[i]._skip = !0, t.placement = C, t.reset = !0);
            }
        }, requiresIfExists: ['offset'], data: { _skip: !1 },
    };

    function me (e, t, n) {return H(e, F(t, n));}

    var ge = {
        name: 'preventOverflow', enabled: !0, phase: 'main', fn: function (e) {
            var t = e.state, n = e.options, i = e.name, a = n.mainAxis,
                r = void 0 === a || a, o = n.altAxis, s = void 0 !== o && o,
                l = n.boundary, c = n.rootBoundary, u = n.altBoundary,
                d = n.padding, h = n.tether, p = void 0 === h || h,
                m = n.tetherOffset, g = void 0 === m ? 0 : m, v = Z(t,
                { boundary: l, rootBoundary: c, padding: d, altBoundary: u }),
                y = N(t.placement), M = q(t.placement), L = !M, T = U(y),
                A = 'x' === T ? 'y' : 'x', D = t.modifiersData.popperOffsets,
                C = t.rects.reference, E = t.rects.popper,
                O = 'function' == typeof g ? g(
                    Object.assign({}, t.rects, { placement: t.placement })) : g,
                Y = { x: 0, y: 0 };
            if (D) {
                if (r || s) {
                    var P = 'y' === T ? x : k, I = 'y' === T ? _ : w,
                        j = 'y' === T ? 'height' : 'width', R = D[T],
                        z = D[T] + v[P], B = D[T] - v[I], W = p ? -E[j] / 2 : 0,
                        V = M === S ? C[j] : E[j], X = M === S ? -E[j] : -C[j],
                        $ = t.elements.arrow,
                        G = p && $ ? f($) : { width: 0, height: 0 },
                        K = t.modifiersData['arrow#persistent']
                            ? t.modifiersData['arrow#persistent'].padding
                            : { top: 0, right: 0, bottom: 0, left: 0 },
                        J = K[P], Q = K[I], ee = me(0, C[j], G[j]),
                        te = L ? C[j] / 2 - W - ee - J - O : V - ee - J - O,
                        ne = L ? -C[j] / 2 + W + ee + Q + O : X + ee + Q + O,
                        ie = t.elements.arrow && b(t.elements.arrow), ae = ie
                        ? 'y' === T ? ie.clientTop || 0 : ie.clientLeft || 0
                        : 0, re = t.modifiersData.offset
                        ? t.modifiersData.offset[t.placement][T]
                        : 0, oe = D[T] + te - re - ae, se = D[T] + ne - re;
                    if (r) {
                        var le = me(p ? F(z, oe) : z, R, p ? H(B, se) : B);
                        D[T] = le, Y[T] = le - R;
                    }
                    if (s) {
                        var ce = 'x' === T ? x : k, ue = 'x' === T ? _ : w,
                            de = D[A], he = de + v[ce], fe = de - v[ue],
                            pe = me(p ? F(he, oe) : he, de, p ? H(fe, se) : fe);
                        D[A] = pe, Y[A] = pe - de;
                    }
                }
                t.modifiersData[i] = Y;
            }
        }, requiresIfExists: ['offset'],
    };
    var ve = {
        name: 'arrow',
        enabled: !0,
        phase: 'main',
        fn: function (e) {
            var t, n = e.state, i = e.name, a = e.options, r = n.elements.arrow,
                o = n.modifiersData.popperOffsets, s = N(n.placement), l = U(s),
                c = [k, w].indexOf(s) >= 0 ? 'height' : 'width';
            if (r && o) {
                var u = function (e, t) {
                        return $('number' != typeof (e = 'function' == typeof e
                            ? e(Object.assign({}, t.rects,
                                { placement: t.placement }))
                            : e)
                            ? e
                            : G(e, L));
                    }(a.padding, n), d = f(r), h = 'y' === l ? x : k,
                    p = 'y' === l ? _ : w,
                    m = n.rects.reference[c] + n.rects.reference[l] - o[l] -
                        n.rects.popper[c], g = o[l] - n.rects.reference[l],
                    v = b(r), y = v
                    ? 'y' === l ? v.clientHeight || 0 : v.clientWidth || 0
                    : 0, M = m / 2 - g / 2, S = u[h], T = y - d[c] - u[p],
                    A = y / 2 - d[c] / 2 + M, D = me(S, A, T), C = l;
                n.modifiersData[i] = ((t = {})[C] = D, t.centerOffset = D -
                    A, t);
            }
        },
        effect: function (e) {
            var t = e.state, n = e.options.element,
                i = void 0 === n ? '[data-popper-arrow]' : n;
            null != i && ('string' != typeof i ||
                (i = t.elements.popper.querySelector(i))) && (r(i) ||
            console.error([
                'Popper: "arrow" element must be an HTMLElement (not an SVGElement).',
                'To use an SVG arrow, wrap it in an HTMLElement that will be used as',
                'the arrow.'].join(' ')), z(t.elements.popper, i)
                ? t.elements.arrow = i
                : console.error([
                    'Popper: "arrow" modifier\'s `element` must be a child of the popper',
                    'element.'].join(' ')));
        },
        requires: ['popperOffsets'],
        requiresIfExists: ['preventOverflow'],
    };

    function ye (e, t, n) {
        return void 0 === n && (n = { x: 0, y: 0 }), {
            top: e.top - t.height - n.y,
            right: e.right - t.width + n.x,
            bottom: e.bottom - t.height + n.y,
            left: e.left - t.width - n.x,
        };
    }

    function be (e) {
        return [x, w, _, k].some((function (t) {return e[t] >= 0;}));
    }

    var xe = {
            name: 'hide',
            enabled: !0,
            phase: 'main',
            requiresIfExists: ['preventOverflow'],
            fn: function (e) {
                var t = e.state, n = e.name, i = t.rects.reference,
                    a = t.rects.popper, r = t.modifiersData.preventOverflow,
                    o = Z(t, { elementContext: 'reference' }),
                    s = Z(t, { altBoundary: !0 }), l = ye(o, i), c = ye(s, a, r),
                    u = be(l), d = be(c);
                t.modifiersData[n] = {
                    referenceClippingOffsets: l,
                    popperEscapeOffsets: c,
                    isReferenceHidden: u,
                    hasPopperEscaped: d,
                }, t.attributes.popper = Object.assign({}, t.attributes.popper,
                    {
                        'data-popper-reference-hidden': u,
                        'data-popper-escaped': d,
                    });
            },
        }, _e = ee({ defaultModifiers: [ne, ie, oe, se] }),
        we = [ne, ie, oe, se, le, pe, ge, ve, xe],
        ke = ee({ defaultModifiers: we });
    e.applyStyles = se, e.arrow = ve, e.computeStyles = oe, e.createPopper = ke, e.createPopperLite = _e, e.defaultModifiers = we, e.detectOverflow = Z, e.eventListeners = ne, e.flip = pe, e.hide = xe, e.offset = le, e.popperGenerator = ee, e.popperOffsets = ie, e.preventOverflow = ge, Object.defineProperty(
        e, '__esModule', { value: !0 });
})), function (e, t) {
    'object' == typeof exports && 'undefined' != typeof module
        ? module.exports = t(require('@popperjs/core'))
        : 'function' == typeof define && define.amd
        ? define(['@popperjs/core'], t)
        : (e = 'undefined' != typeof globalThis ? globalThis : e ||
            self).bootstrap = t(e.Popper);
}(this, (function (e) {
    'use strict';
    var t = function (e) {
        if (e && e.__esModule) return e;
        var t = Object.create(null);
        return e && Object.keys(e).
            forEach((function (n) {
                if ('default' !== n) {
                    var i = Object.getOwnPropertyDescriptor(e, n);
                    Object.defineProperty(t, n, i.get ? i : {
                        enumerable: !0,
                        get: function () {return e[n];},
                    });
                }
            })), t.default = e, Object.freeze(t);
    }(e);
    const n = {
            find: (e, t = document.documentElement) => [].concat(
                ...Element.prototype.querySelectorAll.call(t, e)),
            findOne: (
                e,
                t = document.documentElement) => Element.prototype.querySelector.call(
                t, e),
            children: (e, t) => [].concat(...e.children).
                filter((e => e.matches(t))),
            parents (e, t) {
                const n = [];
                let i = e.parentNode;
                for (; i && i.nodeType === Node.ELEMENT_NODE && 3 !==
                       i.nodeType;) i.matches(t) && n.push(i), i = i.parentNode;
                return n;
            },
            prev (e, t) {
                let n = e.previousElementSibling;
                for (; n;) {
                    if (n.matches(t)) return [n];
                    n = n.previousElementSibling;
                }
                return [];
            },
            next (e, t) {
                let n = e.nextElementSibling;
                for (; n;) {
                    if (n.matches(t)) return [n];
                    n = n.nextElementSibling;
                }
                return [];
            },
        }, i = e => {
            do {
                e += Math.floor(1e6 * Math.random());
            } while (document.getElementById(e));
            return e;
        }, a = e => {
            let t = e.getAttribute('data-bs-target');
            if (!t || '#' === t) {
                let n = e.getAttribute('href');
                if (!n || !n.includes('#') && !n.startsWith('.')) return null;
                n.includes('#') && !n.startsWith('#') &&
                (n = '#' + n.split('#')[1]), t = n && '#' !== n ? n.trim() : null;
            }
            return t;
        }, r = e => {
            const t = a(e);
            return t && document.querySelector(t) ? t : null;
        }, o = e => {
            const t = a(e);
            return t ? document.querySelector(t) : null;
        }, s = e => {e.dispatchEvent(new Event('transitionend'));},
        l = e => !(!e || 'object' != typeof e) &&
            (void 0 !== e.jquery && (e = e[0]), void 0 !== e.nodeType),
        c = e => l(e) ? e.jquery ? e[0] : e : 'string' == typeof e && e.length >
        0 ? n.findOne(e) : null, u = (e, t, n) => {
            Object.keys(n).
                forEach((i => {
                    const a = n[i], r = t[i],
                        o = r && l(r) ? 'element' : null == (s = r)
                            ? '' + s
                            : {}.toString.call(s).
                                match(/\s([a-z]+)/i)[1].toLowerCase();
                    var s;
                    if (!new RegExp(a).test(o)) throw new TypeError(
                        `${e.toUpperCase()}: Option "${i}" provided type "${o}" but expected type "${a}".`);
                }));
        }, d = e => !(!l(e) || 0 === e.getClientRects().length) && 'visible' ===
        getComputedStyle(e).getPropertyValue('visibility'),
        h = e => !e || e.nodeType !== Node.ELEMENT_NODE ||
            !!e.classList.contains('disabled') ||
            (void 0 !== e.disabled ? e.disabled : e.hasAttribute('disabled') &&
                'false' !== e.getAttribute('disabled')), f = e => {
            if (!document.documentElement.attachShadow) return null;
            if ('function' == typeof e.getRootNode) {
                const t = e.getRootNode();
                return t instanceof ShadowRoot ? t : null;
            }
            return e instanceof ShadowRoot ? e : e.parentNode
                ? f(e.parentNode)
                : null;
        }, p = () => {}, m = e => e.offsetHeight, g = () => {
            const { jQuery: e } = window;
            return e && !document.body.hasAttribute('data-bs-no-jquery')
                ? e
                : null;
        }, v = [], y = () => 'rtl' === document.documentElement.dir, b = e => {
            var t;
            t = () => {
                const t = g();
                if (t) {
                    const n = e.NAME, i = t.fn[n];
                    t.fn[n] = e.jQueryInterface, t.fn[n].Constructor = e, t.fn[n].noConflict = () => (t.fn[n] = i, e.jQueryInterface);
                }
            }, 'loading' === document.readyState ? (v.length ||
            document.addEventListener('DOMContentLoaded',
                (() => {v.forEach((e => e()));})), v.push(t)) : t();
        }, x = e => {'function' == typeof e && e();}, _ = (e, t, n = !0) => {
            if (!n) return void x(e);
            const i = (e => {
                if (!e) return 0;
                let {
                    transitionDuration: t,
                    transitionDelay: n,
                } = window.getComputedStyle(e);
                const i = Number.parseFloat(t), a = Number.parseFloat(n);
                return i || a ? (t = t.split(',')[0], n = n.split(',')[0], 1e3 *
                (Number.parseFloat(t) + Number.parseFloat(n))) : 0;
            })(t) + 5;
            let a = !1;
            const r = ({ target: n }) => {
                n === t &&
                (a = !0, t.removeEventListener('transitionend', r), x(e));
            };
            t.addEventListener('transitionend', r), setTimeout((() => {a || s(t);}),
                i);
        }, w = (e, t, n, i) => {
            let a = e.indexOf(t);
            if (-1 === a) return e[!n && i ? e.length - 1 : 0];
            const r = e.length;
            return a += n ? 1 : -1, i && (a = (a + r) % r), e[Math.max(0,
                Math.min(a, r - 1))];
        }, k = /[^.]*(?=\..*)\.|.*/, M = /\..*/, L = /::\d+$/, S = {};
    let T = 1;
    const A = { mouseenter: 'mouseover', mouseleave: 'mouseout' },
        D = /^(mouseenter|mouseleave)/i, C = new Set([
            'click',
            'dblclick',
            'mouseup',
            'mousedown',
            'contextmenu',
            'mousewheel',
            'DOMMouseScroll',
            'mouseover',
            'mouseout',
            'mousemove',
            'selectstart',
            'selectend',
            'keydown',
            'keypress',
            'keyup',
            'orientationchange',
            'touchstart',
            'touchmove',
            'touchend',
            'touchcancel',
            'pointerdown',
            'pointermove',
            'pointerup',
            'pointerleave',
            'pointercancel',
            'gesturestart',
            'gesturechange',
            'gestureend',
            'focus',
            'blur',
            'change',
            'reset',
            'select',
            'submit',
            'focusin',
            'focusout',
            'load',
            'unload',
            'beforeunload',
            'resize',
            'move',
            'DOMContentLoaded',
            'readystatechange',
            'error',
            'abort',
            'scroll']);

    function E (e, t) {return t && `${t}::${T++}` || e.uidEvent || T++;}

    function O (e) {
        const t = E(e);
        return e.uidEvent = t, S[t] = S[t] || {}, S[t];
    }

    function Y (e, t, n = null) {
        const i = Object.keys(e);
        for (let a = 0, r = i.length; a < r; a++) {
            const r = e[i[a]];
            if (r.originalHandler === t && r.delegationSelector === n) return r;
        }
        return null;
    }

    function P (e, t, n) {
        const i = 'string' == typeof t, a = i ? n : t;
        let r = N(e);
        return C.has(r) || (r = e), [i, a, r];
    }

    function I (e, t, n, i, a) {
        if ('string' != typeof t || !e) return;
        if (n || (n = i, i = null), D.test(t)) {
            const e = e => function (t) {
                if (!t.relatedTarget || t.relatedTarget !== t.delegateTarget &&
                    !t.delegateTarget.contains(t.relatedTarget)) return e.call(
                    this, t);
            };
            i ? i = e(i) : n = e(n);
        }
        const [r, o, s] = P(t, n, i), l = O(e), c = l[s] || (l[s] = {}),
            u = Y(c, o, r ? n : null);
        if (u) return void (u.oneOff = u.oneOff && a);
        const d = E(o, t.replace(k, '')), h = r ? function (e, t, n) {
            return function i (a) {
                const r = e.querySelectorAll(t);
                for (let { target: o } = a; o && o !==
                this; o = o.parentNode) for (let s = r.length; s--;) if (r[s] ===
                    o) return a.delegateTarget = o, i.oneOff &&
                H.off(e, a.type, t, n), n.apply(o, [a]);
                return null;
            };
        }(e, n, i) : function (
            e, t) {
            return function n (i) {
                return i.delegateTarget = e, n.oneOff &&
                H.off(e, i.type, t), t.apply(e, [i]);
            };
        }(e, n);
        h.delegationSelector = r
            ? n
            : null, h.originalHandler = o, h.oneOff = a, h.uidEvent = d, c[d] = h, e.addEventListener(
            s, h, r);
    }

    function j (e, t, n, i, a) {
        const r = Y(t[n], i, a);
        r && (e.removeEventListener(n, r, Boolean(a)), delete t[n][r.uidEvent]);
    }

    function N (e) {return e = e.replace(M, ''), A[e] || e;}

    const H = {
        on (e, t, n, i) {I(e, t, n, i, !1);},
        one (e, t, n, i) {I(e, t, n, i, !0);},
        off (e, t, n, i) {
            if ('string' != typeof t || !e) return;
            const [a, r, o] = P(t, n, i), s = o !== t, l = O(e),
                c = t.startsWith('.');
            if (void 0 !== r) {
                if (!l || !l[o]) return;
                return void j(e, l, o, r, a ? n : null);
            }
            c && Object.keys(l).
                forEach((n => {
                    !function (e, t, n, i) {
                        const a = t[n] || {};
                        Object.keys(a).
                            forEach((r => {
                                if (r.includes(i)) {
                                    const i = a[r];
                                    j(e, t, n, i.originalHandler,
                                        i.delegationSelector);
                                }
                            }));
                    }(e, l, n, t.slice(1));
                }));
            const u = l[o] || {};
            Object.keys(u).forEach((n => {
                const i = n.replace(L, '');
                if (!s || t.includes(i)) {
                    const t = u[n];
                    j(e, l, o, t.originalHandler, t.delegationSelector);
                }
            }));
        },
        trigger (e, t, n) {
            if ('string' != typeof t || !e) return null;
            const i = g(), a = N(t), r = t !== a, o = C.has(a);
            let s, l = !0, c = !0, u = !1, d = null;
            return r && i && (s = i.Event(t, n), i(e).
                trigger(
                    s), l = !s.isPropagationStopped(), c = !s.isImmediatePropagationStopped(), u = s.isDefaultPrevented()), o
                ? (d = document.createEvent('HTMLEvents'), d.initEvent(a, l,
                    !0))
                : d = new CustomEvent(t,
                    { bubbles: l, cancelable: !0 }), void 0 !== n &&
            Object.keys(n).
                forEach((e => {
                    Object.defineProperty(d, e, { get: () => n[e] });
                })), u && d.preventDefault(), c &&
            e.dispatchEvent(d), d.defaultPrevented && void 0 !== s &&
            s.preventDefault(), d;
        },
    }, F = new Map;
    var R = {
        set (e, t, n) {
            F.has(e) || F.set(e, new Map);
            const i = F.get(e);
            i.has(t) || 0 === i.size ? i.set(t, n) : console.error(
                `Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(
                    i.keys())[0]}.`);
        },
        get: (e, t) => F.has(e) && F.get(e).get(t) || null,
        remove (e, t) {
            if (!F.has(e)) return;
            const n = F.get(e);
            n.delete(t), 0 === n.size && F.delete(e);
        },
    };

    class z {
        constructor (e) {
            (e = c(e)) &&
            (this._element = e, R.set(this._element, this.constructor.DATA_KEY,
                this));
        }

        dispose () {
            R.remove(this._element, this.constructor.DATA_KEY), H.off(
                this._element,
                this.constructor.EVENT_KEY), Object.getOwnPropertyNames(this).
                forEach((e => {this[e] = null;}));
        }

        _queueCallback (e, t, n = !0) {_(e, t, n);}

        static getInstance (e) {return R.get(e, this.DATA_KEY);}

        static getOrCreateInstance (e, t = {}) {
            return this.getInstance(e) ||
                new this(e, 'object' == typeof t ? t : null);
        }

        static get VERSION () {return '5.0.2';}

        static get NAME () {
            throw new Error(
                'You have to implement the static method "NAME", for each component!');
        }

        static get DATA_KEY () {return 'bs.' + this.NAME;}

        static get EVENT_KEY () {return '.' + this.DATA_KEY;}
    }

    class B extends z {
        static get NAME () {return 'alert';}

        close (e) {
            const t = e ? this._getRootElement(e) : this._element,
                n = this._triggerCloseEvent(t);
            null === n || n.defaultPrevented || this._removeElement(t);
        }

        _getRootElement (e) {return o(e) || e.closest('.alert');}

        _triggerCloseEvent (e) {return H.trigger(e, 'close.bs.alert');}

        _removeElement (e) {
            e.classList.remove('show');
            const t = e.classList.contains('fade');
            this._queueCallback((() => this._destroyElement(e)), e, t);
        }

        _destroyElement (e) {e.remove(), H.trigger(e, 'closed.bs.alert');}

        static jQueryInterface (e) {
            return this.each((function () {
                const t = B.getOrCreateInstance(this);
                'close' === e && t[e](this);
            }));
        }

        static handleDismiss (e) {
            return function (t) {
                t && t.preventDefault(), e.close(this);
            };
        }
    }

    H.on(document, 'click.bs.alert.data-api', '[data-bs-dismiss="alert"]',
        B.handleDismiss(new B)), b(B);

    class W extends z {
        static get NAME () {return 'button';}

        toggle () {
            this._element.setAttribute('aria-pressed',
                this._element.classList.toggle('active'));
        }

        static jQueryInterface (e) {
            return this.each((function () {
                const t = W.getOrCreateInstance(this);
                'toggle' === e && t[e]();
            }));
        }
    }

    function V (e) {
        return 'true' === e || 'false' !== e &&
            (e === Number(e).toString() ? Number(e) : '' === e || 'null' === e
                ? null
                : e);
    }

    function q (e) {return e.replace(/[A-Z]/g, (e => '-' + e.toLowerCase()));}

    H.on(document, 'click.bs.button.data-api', '[data-bs-toggle="button"]',
        (e => {
            e.preventDefault();
            const t = e.target.closest('[data-bs-toggle="button"]');
            W.getOrCreateInstance(t).toggle();
        })), b(W);
    const U = {
            setDataAttribute (e, t, n) {
                e.setAttribute('data-bs-' + q(t), n);
            },
            removeDataAttribute (e, t) {e.removeAttribute('data-bs-' + q(t));},
            getDataAttributes (e) {
                if (!e) return {};
                const t = {};
                return Object.keys(e.dataset).
                    filter((e => e.startsWith('bs'))).
                    forEach((n => {
                        let i = n.replace(/^bs/, '');
                        i = i.charAt(0).toLowerCase() +
                            i.slice(1, i.length), t[i] = V(e.dataset[n]);
                    })), t;
            },
            getDataAttribute: (e, t) => V(e.getAttribute('data-bs-' + q(t))),
            offset (e) {
                const t = e.getBoundingClientRect();
                return {
                    top: t.top + document.body.scrollTop,
                    left: t.left + document.body.scrollLeft,
                };
            },
            position: e => ({ top: e.offsetTop, left: e.offsetLeft }),
        }, X = {
            interval: 5e3,
            keyboard: !0,
            slide: !1,
            pause: 'hover',
            wrap: !0,
            touch: !0,
        }, $ = {
            interval: '(number|boolean)',
            keyboard: 'boolean',
            slide: '(boolean|string)',
            pause: '(string|boolean)',
            wrap: 'boolean',
            touch: 'boolean',
        }, G = 'next', Z = 'prev', K = 'left', J = 'right',
        Q = { ArrowLeft: J, ArrowRight: K };

    class ee extends z {
        constructor (e, t) {
            super(
                e), this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this.touchStartX = 0, this.touchDeltaX = 0, this._config = this._getConfig(
                t), this._indicatorsElement = n.findOne('.carousel-indicators',
                this._element), this._touchSupported = 'ontouchstart' in
                document.documentElement || navigator.maxTouchPoints >
                0, this._pointerEvent = Boolean(
                window.PointerEvent), this._addEventListeners();
        }

        static get Default () {return X;}

        static get NAME () {return 'carousel';}

        next () {this._slide(G);}

        nextWhenVisible () {
            !document.hidden && d(this._element) && this.next();
        }

        prev () {this._slide(Z);}

        pause (e) {
            e || (this._isPaused = !0), n.findOne(
                '.carousel-item-next, .carousel-item-prev', this._element) &&
            (s(this._element), this.cycle(!0)), clearInterval(
                this._interval), this._interval = null;
        }

        cycle (e) {
            e || (this._isPaused = !1), this._interval && (clearInterval(
                this._interval), this._interval = null), this._config &&
            this._config.interval && !this._isPaused &&
            (this._updateInterval(), this._interval = setInterval(
                (document.visibilityState
                    ? this.nextWhenVisible
                    : this.next).bind(this), this._config.interval));
        }

        to (e) {
            this._activeElement = n.findOne('.active.carousel-item',
                this._element);
            const t = this._getItemIndex(this._activeElement);
            if (e > this._items.length - 1 || e < 0) return;
            if (this._isSliding) return void H.one(this._element,
                'slid.bs.carousel', (() => this.to(e)));
            if (t === e) return this.pause(), void this.cycle();
            const i = e > t ? G : Z;
            this._slide(i, this._items[e]);
        }

        _getConfig (e) {
            return e = {
                ...X, ...U.getDataAttributes(this._element), ...'object' ==
                typeof e ? e : {},
            }, u('carousel', e, $), e;
        }

        _handleSwipe () {
            const e = Math.abs(this.touchDeltaX);
            if (e <= 40) return;
            const t = e / this.touchDeltaX;
            this.touchDeltaX = 0, t && this._slide(t > 0 ? J : K);
        }

        _addEventListeners () {
            this._config.keyboard && H.on(this._element, 'keydown.bs.carousel',
                (e => this._keydown(e))), 'hover' === this._config.pause &&
            (H.on(this._element, 'mouseenter.bs.carousel',
                (e => this.pause(e))), H.on(this._element,
                'mouseleave.bs.carousel',
                (e => this.cycle(e)))), this._config.touch &&
            this._touchSupported && this._addTouchEventListeners();
        }

        _addTouchEventListeners () {
            const e = e => {
                !this._pointerEvent || 'pen' !== e.pointerType && 'touch' !==
                e.pointerType
                    ? this._pointerEvent ||
                    (this.touchStartX = e.touches[0].clientX)
                    : this.touchStartX = e.clientX;
            }, t = e => {
                this.touchDeltaX = e.touches && e.touches.length > 1
                    ? 0
                    : e.touches[0].clientX - this.touchStartX;
            }, i = e => {
                !this._pointerEvent || 'pen' !== e.pointerType && 'touch' !==
                e.pointerType || (this.touchDeltaX = e.clientX -
                    this.touchStartX), this._handleSwipe(), 'hover' ===
                this._config.pause && (this.pause(), this.touchTimeout &&
                clearTimeout(this.touchTimeout), this.touchTimeout = setTimeout(
                    (e => this.cycle(e)), 500 + this._config.interval));
            };
            n.find('.carousel-item img', this._element).
                forEach((e => {
                    H.on(e, 'dragstart.bs.carousel', (e => e.preventDefault()));
                })), this._pointerEvent
                ? (H.on(this._element, 'pointerdown.bs.carousel',
                    (t => e(t))), H.on(this._element, 'pointerup.bs.carousel',
                    (e => i(e))), this._element.classList.add('pointer-event'))
                : (H.on(this._element, 'touchstart.bs.carousel',
                    (t => e(t))), H.on(this._element, 'touchmove.bs.carousel',
                    (e => t(e))), H.on(this._element, 'touchend.bs.carousel',
                    (e => i(e))));
        }

        _keydown (e) {
            if (/input|textarea/i.test(e.target.tagName)) return;
            const t = Q[e.key];
            t && (e.preventDefault(), this._slide(t));
        }

        _getItemIndex (e) {
            return this._items = e && e.parentNode ? n.find('.carousel-item',
                e.parentNode) : [], this._items.indexOf(e);
        }

        _getItemByOrder (e, t) {
            const n = e === G;
            return w(this._items, t, n, this._config.wrap);
        }

        _triggerSlideEvent (e, t) {
            const i = this._getItemIndex(e), a = this._getItemIndex(
                n.findOne('.active.carousel-item', this._element));
            return H.trigger(this._element, 'slide.bs.carousel',
                { relatedTarget: e, direction: t, from: a, to: i });
        }

        _setActiveIndicatorElement (e) {
            if (this._indicatorsElement) {
                const t = n.findOne('.active', this._indicatorsElement);
                t.classList.remove('active'), t.removeAttribute('aria-current');
                const i = n.find('[data-bs-target]', this._indicatorsElement);
                for (let t = 0; t < i.length; t++) if (Number.parseInt(
                    i[t].getAttribute('data-bs-slide-to'), 10) ===
                    this._getItemIndex(e)) {
                    i[t].classList.add('active'), i[t].setAttribute(
                        'aria-current', 'true');
                    break;
                }
            }
        }

        _updateInterval () {
            const e = this._activeElement ||
                n.findOne('.active.carousel-item', this._element);
            if (!e) return;
            const t = Number.parseInt(e.getAttribute('data-bs-interval'), 10);
            t
                ? (this._config.defaultInterval = this._config.defaultInterval ||
                this._config.interval, this._config.interval = t)
                : this._config.interval = this._config.defaultInterval ||
                this._config.interval;
        }

        _slide (e, t) {
            const i = this._directionToOrder(e),
                a = n.findOne('.active.carousel-item', this._element),
                r = this._getItemIndex(a), o = t || this._getItemByOrder(i, a),
                s = this._getItemIndex(o), l = Boolean(this._interval),
                c = i === G,
                u = c ? 'carousel-item-start' : 'carousel-item-end',
                d = c ? 'carousel-item-next' : 'carousel-item-prev',
                h = this._orderToDirection(i);
            if (o && o.classList.contains(
                'active')) return void (this._isSliding = !1);
            if (this._isSliding) return;
            if (this._triggerSlideEvent(o, h).defaultPrevented) return;
            if (!a || !o) return;
            this._isSliding = !0, l &&
            this.pause(), this._setActiveIndicatorElement(
                o), this._activeElement = o;
            const f = () => {
                H.trigger(this._element, 'slid.bs.carousel',
                    { relatedTarget: o, direction: h, from: r, to: s });
            };
            if (this._element.classList.contains('slide')) {
                o.classList.add(d), m(o), a.classList.add(u), o.classList.add(
                    u);
                const e = () => {
                    o.classList.remove(u, d), o.classList.add(
                        'active'), a.classList.remove('active', d,
                        u), this._isSliding = !1, setTimeout(f, 0);
                };
                this._queueCallback(e, a, !0);
            } else a.classList.remove('active'), o.classList.add(
                'active'), this._isSliding = !1, f();
            l && this.cycle();
        }

        _directionToOrder (e) {
            return [J, K].includes(e) ? y()
                ? e === K ? Z : G
                : e === K ? G : Z : e;
        }

        _orderToDirection (e) {
            return [G, Z].includes(e) ? y()
                ? e === Z ? K : J
                : e === Z ? J : K : e;
        }

        static carouselInterface (e, t) {
            const n = ee.getOrCreateInstance(e, t);
            let { _config: i } = n;
            'object' == typeof t && (i = { ...i, ...t });
            const a = 'string' == typeof t ? t : i.slide;
            if ('number' == typeof t) n.to(t); else if ('string' == typeof a) {
                if (void 0 === n[a]) throw new TypeError(
                    `No method named "${a}"`);
                n[a]();
            } else i.interval && i.ride && (n.pause(), n.cycle());
        }

        static jQueryInterface (e) {
            return this.each((function () {ee.carouselInterface(this, e);}));
        }

        static dataApiClickHandler (e) {
            const t = o(this);
            if (!t || !t.classList.contains('carousel')) return;
            const n = {
                ...U.getDataAttributes(t), ...U.getDataAttributes(this),
            }, i = this.getAttribute('data-bs-slide-to');
            i && (n.interval = !1), ee.carouselInterface(t, n), i &&
            ee.getInstance(t).to(i), e.preventDefault();
        }
    }

    H.on(document, 'click.bs.carousel.data-api',
        '[data-bs-slide], [data-bs-slide-to]', ee.dataApiClickHandler), H.on(
        window, 'load.bs.carousel.data-api', (() => {
            const e = n.find('[data-bs-ride="carousel"]');
            for (let t = 0, n = e.length; t < n; t++) ee.carouselInterface(e[t],
                ee.getInstance(e[t]));
        })), b(ee);
    const te = { toggle: !0, parent: '' },
        ne = { toggle: 'boolean', parent: '(string|element)' };

    class ie extends z {
        constructor (e, t) {
            super(
                e), this._isTransitioning = !1, this._config = this._getConfig(
                t), this._triggerArray = n.find(
                `[data-bs-toggle="collapse"][href="#${this._element.id}"],[data-bs-toggle="collapse"][data-bs-target="#${this._element.id}"]`);
            const i = n.find('[data-bs-toggle="collapse"]');
            for (let e = 0, t = i.length; e < t; e++) {
                const t = i[e], a = r(t),
                    o = n.find(a).filter((e => e === this._element));
                null !== a && o.length &&
                (this._selector = a, this._triggerArray.push(t));
            }
            this._parent = this._config.parent
                ? this._getParent()
                : null, this._config.parent ||
            this._addAriaAndCollapsedClass(this._element,
                this._triggerArray), this._config.toggle && this.toggle();
        }

        static get Default () {return te;}

        static get NAME () {return 'collapse';}

        toggle () {
            this._element.classList.contains('show')
                ? this.hide()
                : this.show();
        }

        show () {
            if (this._isTransitioning ||
                this._element.classList.contains('show')) return;
            let e, t;
            this._parent && (e = n.find('.show, .collapsing', this._parent).
                filter((e => 'string' == typeof this._config.parent
                    ? e.getAttribute('data-bs-parent') === this._config.parent
                    : e.classList.contains('collapse'))), 0 === e.length &&
            (e = null));
            const i = n.findOne(this._selector);
            if (e) {
                const n = e.find((e => i !== e));
                if (t = n ? ie.getInstance(n) : null, t &&
                t._isTransitioning) return;
            }
            if (H.trigger(this._element,
                'show.bs.collapse').defaultPrevented) return;
            e && e.forEach((e => {
                i !== e && ie.collapseInterface(e, 'hide'), t ||
                R.set(e, 'bs.collapse', null);
            }));
            const a = this._getDimension();
            this._element.classList.remove(
                'collapse'), this._element.classList.add(
                'collapsing'), this._element.style[a] = 0, this._triggerArray.length &&
            this._triggerArray.forEach((e => {
                e.classList.remove('collapsed'), e.setAttribute('aria-expanded',
                    !0);
            })), this.setTransitioning(!0);
            const r = 'scroll' + (a[0].toUpperCase() + a.slice(1));
            this._queueCallback((() => {
                this._element.classList.remove(
                    'collapsing'), this._element.classList.add('collapse',
                    'show'), this._element.style[a] = '', this.setTransitioning(
                    !1), H.trigger(this._element, 'shown.bs.collapse');
            }), this._element, !0), this._element.style[a] = this._element[r] +
                'px';
        }

        hide () {
            if (this._isTransitioning ||
                !this._element.classList.contains('show')) return;
            if (H.trigger(this._element,
                'hide.bs.collapse').defaultPrevented) return;
            const e = this._getDimension();
            this._element.style[e] = this._element.getBoundingClientRect()[e] +
                'px', m(this._element), this._element.classList.add(
                'collapsing'), this._element.classList.remove('collapse',
                'show');
            const t = this._triggerArray.length;
            if (t > 0) for (let e = 0; e < t; e++) {
                const t = this._triggerArray[e], n = o(t);
                n && !n.classList.contains('show') &&
                (t.classList.add('collapsed'), t.setAttribute('aria-expanded',
                    !1));
            }
            this.setTransitioning(
                !0), this._element.style[e] = '', this._queueCallback((() => {
                this.setTransitioning(!1), this._element.classList.remove(
                    'collapsing'), this._element.classList.add(
                    'collapse'), H.trigger(this._element, 'hidden.bs.collapse');
            }), this._element, !0);
        }

        setTransitioning (e) {this._isTransitioning = e;}

        _getConfig (e) {
            return (e = { ...te, ...e }).toggle = Boolean(e.toggle), u(
                'collapse', e, ne), e;
        }

        _getDimension () {
            return this._element.classList.contains('width')
                ? 'width'
                : 'height';
        }

        _getParent () {
            let { parent: e } = this._config;
            e = c(e);
            const t = `[data-bs-toggle="collapse"][data-bs-parent="${e}"]`;
            return n.find(t, e).forEach((e => {
                const t = o(e);
                this._addAriaAndCollapsedClass(t, [e]);
            })), e;
        }

        _addAriaAndCollapsedClass (e, t) {
            if (!e || !t.length) return;
            const n = e.classList.contains('show');
            t.forEach((e => {
                n ? e.classList.remove('collapsed') : e.classList.add(
                    'collapsed'), e.setAttribute('aria-expanded', n);
            }));
        }

        static collapseInterface (e, t) {
            let n = ie.getInstance(e);
            const i = {
                ...te, ...U.getDataAttributes(e), ...'object' == typeof t && t
                    ? t
                    : {},
            };
            if (!n && i.toggle && 'string' == typeof t && /show|hide/.test(t) &&
            (i.toggle = !1), n || (n = new ie(e, i)), 'string' == typeof t) {
                if (void 0 === n[t]) throw new TypeError(
                    `No method named "${t}"`);
                n[t]();
            }
        }

        static jQueryInterface (e) {
            return this.each((function () {ie.collapseInterface(this, e);}));
        }
    }

    H.on(document, 'click.bs.collapse.data-api', '[data-bs-toggle="collapse"]',
        (function (e) {
            ('A' === e.target.tagName || e.delegateTarget && 'A' ===
                e.delegateTarget.tagName) && e.preventDefault();
            const t = U.getDataAttributes(this), i = r(this);
            n.find(i).forEach((e => {
                const n = ie.getInstance(e);
                let i;
                n
                    ? (null === n._parent && 'string' == typeof t.parent &&
                    (n._config.parent = t.parent, n._parent = n._getParent()), i = 'toggle')
                    : i = t, ie.collapseInterface(e, i);
            }));
        })), b(ie);
    const ae = new RegExp('ArrowUp|ArrowDown|Escape'),
        re = y() ? 'top-end' : 'top-start', oe = y() ? 'top-start' : 'top-end',
        se = y() ? 'bottom-end' : 'bottom-start',
        le = y() ? 'bottom-start' : 'bottom-end',
        ce = y() ? 'left-start' : 'right-start',
        ue = y() ? 'right-start' : 'left-start', de = {
            offset: [0, 2],
            boundary: 'clippingParents',
            reference: 'toggle',
            display: 'dynamic',
            popperConfig: null,
            autoClose: !0,
        }, he = {
            offset: '(array|string|function)',
            boundary: '(string|element)',
            reference: '(string|element|object)',
            display: 'string',
            popperConfig: '(null|object|function)',
            autoClose: '(boolean|string)',
        };

    class fe extends z {
        constructor (e, t) {
            super(e), this._popper = null, this._config = this._getConfig(
                t), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners();
        }

        static get Default () {return de;}

        static get DefaultType () {return he;}

        static get NAME () {return 'dropdown';}

        toggle () {
            h(this._element) || (this._element.classList.contains('show')
                ? this.hide()
                : this.show());
        }

        show () {
            if (h(this._element) ||
                this._menu.classList.contains('show')) return;
            const e = fe.getParentFromElement(this._element),
                n = { relatedTarget: this._element };
            if (!H.trigger(this._element, 'show.bs.dropdown',
                n).defaultPrevented) {
                if (this._inNavbar) U.setDataAttribute(this._menu, 'popper',
                    'none'); else {
                    if (void 0 === t) throw new TypeError(
                        'Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
                    let n = this._element;
                    'parent' === this._config.reference ? n = e : l(
                        this._config.reference)
                        ? n = c(this._config.reference)
                        : 'object' == typeof this._config.reference &&
                        (n = this._config.reference);
                    const i = this._getPopperConfig(), a = i.modifiers.find(
                        (e => 'applyStyles' === e.name && !1 === e.enabled));
                    this._popper = t.createPopper(n, this._menu, i), a &&
                    U.setDataAttribute(this._menu, 'popper', 'static');
                }
                'ontouchstart' in document.documentElement &&
                !e.closest('.navbar-nav') &&
                [].concat(...document.body.children).
                    forEach((e => H.on(e, 'mouseover',
                        p))), this._element.focus(), this._element.setAttribute(
                    'aria-expanded', !0), this._menu.classList.toggle(
                    'show'), this._element.classList.toggle('show'), H.trigger(
                    this._element, 'shown.bs.dropdown', n);
            }
        }

        hide () {
            if (h(this._element) ||
                !this._menu.classList.contains('show')) return;
            const e = { relatedTarget: this._element };
            this._completeHide(e);
        }

        dispose () {this._popper && this._popper.destroy(), super.dispose();}

        update () {
            this._inNavbar = this._detectNavbar(), this._popper &&
            this._popper.update();
        }

        _addEventListeners () {
            H.on(this._element, 'click.bs.dropdown',
                (e => {e.preventDefault(), this.toggle();}));
        }

        _completeHide (e) {
            H.trigger(this._element, 'hide.bs.dropdown', e).defaultPrevented ||
            ('ontouchstart' in document.documentElement &&
            [].concat(...document.body.children).
                forEach((e => H.off(e, 'mouseover', p))), this._popper &&
            this._popper.destroy(), this._menu.classList.remove(
                'show'), this._element.classList.remove(
                'show'), this._element.setAttribute('aria-expanded',
                'false'), U.removeDataAttribute(this._menu,
                'popper'), H.trigger(this._element, 'hidden.bs.dropdown', e));
        }

        _getConfig (e) {
            if (e = {
                ...this.constructor.Default, ...U.getDataAttributes(
                    this._element), ...e,
            }, u('dropdown', e, this.constructor.DefaultType), 'object' ==
            typeof e.reference && !l(e.reference) && 'function' !=
            typeof e.reference.getBoundingClientRect) throw new TypeError(
                'dropdown'.toUpperCase() +
                ': Option "reference" provided type "object" without a required "getBoundingClientRect" method.');
            return e;
        }

        _getMenuElement () {return n.next(this._element, '.dropdown-menu')[0];}

        _getPlacement () {
            const e = this._element.parentNode;
            if (e.classList.contains('dropend')) return ce;
            if (e.classList.contains('dropstart')) return ue;
            const t = 'end' === getComputedStyle(this._menu).
                getPropertyValue('--bs-position').
                trim();
            return e.classList.contains('dropup') ? t ? oe : re : t ? le : se;
        }

        _detectNavbar () {return null !== this._element.closest('.navbar');}

        _getOffset () {
            const { offset: e } = this._config;
            return 'string' == typeof e ? e.split(',').
                map((e => Number.parseInt(e, 10))) : 'function' == typeof e
                ? t => e(t, this._element)
                : e;
        }

        _getPopperConfig () {
            const e = {
                placement: this._getPlacement(),
                modifiers: [
                    {
                        name: 'preventOverflow',
                        options: { boundary: this._config.boundary },
                    },
                    { name: 'offset', options: { offset: this._getOffset() } }],
            };
            return 'static' === this._config.display && (e.modifiers = [
                {
                    name: 'applyStyles',
                    enabled: !1,
                }]), {
                ...e, ...'function' == typeof this._config.popperConfig
                    ? this._config.popperConfig(e)
                    : this._config.popperConfig,
            };
        }

        _selectMenuItem ({ key: e, target: t }) {
            const i = n.find(
                '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)',
                this._menu).filter(d);
            i.length && w(i, t, 'ArrowDown' === e, !i.includes(t)).focus();
        }

        static dropdownInterface (e, t) {
            const n = fe.getOrCreateInstance(e, t);
            if ('string' == typeof t) {
                if (void 0 === n[t]) throw new TypeError(
                    `No method named "${t}"`);
                n[t]();
            }
        }

        static jQueryInterface (e) {
            return this.each((function () {fe.dropdownInterface(this, e);}));
        }

        static clearMenus (e) {
            if (e && (2 === e.button || 'keyup' === e.type && 'Tab' !==
                e.key)) return;
            const t = n.find('[data-bs-toggle="dropdown"]');
            for (let n = 0, i = t.length; n < i; n++) {
                const i = fe.getInstance(t[n]);
                if (!i || !1 === i._config.autoClose) continue;
                if (!i._element.classList.contains('show')) continue;
                const a = { relatedTarget: i._element };
                if (e) {
                    const t = e.composedPath(), n = t.includes(i._menu);
                    if (t.includes(i._element) || 'inside' ===
                        i._config.autoClose && !n || 'outside' ===
                        i._config.autoClose && n) continue;
                    if (i._menu.contains(e.target) &&
                        ('keyup' === e.type && 'Tab' === e.key ||
                            /input|select|option|textarea|form/i.test(
                                e.target.tagName))) continue;
                    'click' === e.type && (a.clickEvent = e);
                }
                i._completeHide(a);
            }
        }

        static getParentFromElement (e) {return o(e) || e.parentNode;}

        static dataApiKeydownHandler (e) {
            if (/input|textarea/i.test(e.target.tagName) ? 'Space' === e.key ||
                'Escape' !== e.key &&
                ('ArrowDown' !== e.key && 'ArrowUp' !== e.key ||
                    e.target.closest('.dropdown-menu')) : !ae.test(
                e.key)) return;
            const t = this.classList.contains('show');
            if (!t && 'Escape' === e.key) return;
            if (e.preventDefault(), e.stopPropagation(), h(this)) return;
            const i = () => this.matches('[data-bs-toggle="dropdown"]')
                ? this
                : n.prev(this, '[data-bs-toggle="dropdown"]')[0];
            return 'Escape' === e.key
                ? (i().focus(), void fe.clearMenus())
                : 'ArrowUp' === e.key || 'ArrowDown' === e.key
                    ? (t || i().click(), void fe.getInstance(i()).
                        _selectMenuItem(e))
                    : void (t && 'Space' !== e.key || fe.clearMenus());
        }
    }

    H.on(document, 'keydown.bs.dropdown.data-api',
        '[data-bs-toggle="dropdown"]', fe.dataApiKeydownHandler), H.on(document,
        'keydown.bs.dropdown.data-api', '.dropdown-menu',
        fe.dataApiKeydownHandler), H.on(document, 'click.bs.dropdown.data-api',
        fe.clearMenus), H.on(document, 'keyup.bs.dropdown.data-api',
        fe.clearMenus), H.on(document, 'click.bs.dropdown.data-api',
        '[data-bs-toggle="dropdown"]',
        (function (e) {e.preventDefault(), fe.dropdownInterface(this);})), b(
        fe);

    class pe {
        constructor () {this._element = document.body;}

        getWidth () {
            const e = document.documentElement.clientWidth;
            return Math.abs(window.innerWidth - e);
        }

        hide () {
            const e = this.getWidth();
            this._disableOverFlow(), this._setElementAttributes(this._element,
                'paddingRight', (t => t + e)), this._setElementAttributes(
                '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
                'paddingRight', (t => t + e)), this._setElementAttributes(
                '.sticky-top', 'marginRight', (t => t - e));
        }

        _disableOverFlow () {
            this._saveInitialAttribute(this._element,
                'overflow'), this._element.style.overflow = 'hidden';
        }

        _setElementAttributes (e, t, n) {
            const i = this.getWidth();
            this._applyManipulationCallback(e, (e => {
                if (e !== this._element && window.innerWidth > e.clientWidth +
                    i) return;
                this._saveInitialAttribute(e, t);
                const a = window.getComputedStyle(e)[t];
                e.style[t] = n(Number.parseFloat(a)) + 'px';
            }));
        }

        reset () {
            this._resetElementAttributes(this._element,
                'overflow'), this._resetElementAttributes(this._element,
                'paddingRight'), this._resetElementAttributes(
                '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
                'paddingRight'), this._resetElementAttributes('.sticky-top',
                'marginRight');
        }

        _saveInitialAttribute (e, t) {
            const n = e.style[t];
            n && U.setDataAttribute(e, t, n);
        }

        _resetElementAttributes (e, t) {
            this._applyManipulationCallback(e, (e => {
                const n = U.getDataAttribute(e, t);
                void 0 === n
                    ? e.style.removeProperty(t)
                    : (U.removeDataAttribute(e, t), e.style[t] = n);
            }));
        }

        _applyManipulationCallback (e, t) {
            l(e) ? t(e) : n.find(e, this._element).forEach(t);
        }

        isOverflowing () {return this.getWidth() > 0;}
    }

    const me = {
        isVisible: !0,
        isAnimated: !1,
        rootElement: 'body',
        clickCallback: null,
    }, ge = {
        isVisible: 'boolean',
        isAnimated: 'boolean',
        rootElement: '(element|string)',
        clickCallback: '(function|null)',
    };

    class ve {
        constructor (e) {
            this._config = this._getConfig(
                e), this._isAppended = !1, this._element = null;
        }

        show (e) {
            this._config.isVisible
                ? (this._append(), this._config.isAnimated &&
                m(this._getElement()), this._getElement().
                    classList.
                    add('show'), this._emulateAnimation((() => {x(e);})))
                : x(e);
        }

        hide (e) {
            this._config.isVisible ? (this._getElement().
                classList.
                remove('show'), this._emulateAnimation(
                (() => {this.dispose(), x(e);}))) : x(e);
        }

        _getElement () {
            if (!this._element) {
                const e = document.createElement('div');
                e.className = 'modal-backdrop', this._config.isAnimated &&
                e.classList.add('fade'), this._element = e;
            }
            return this._element;
        }

        _getConfig (e) {
            return (e = {
                ...me, ...'object' == typeof e
                    ? e
                    : {},
            }).rootElement = c(e.rootElement), u('backdrop', e, ge), e;
        }

        _append () {
            this._isAppended ||
            (this._config.rootElement.appendChild(this._getElement()), H.on(
                this._getElement(), 'mousedown.bs.backdrop',
                (() => {
                    x(this._config.clickCallback);
                })), this._isAppended = !0);
        }

        dispose () {
            this._isAppended && (H.off(this._element,
                'mousedown.bs.backdrop'), this._element.remove(), this._isAppended = !1);
        }

        _emulateAnimation (e) {
            _(e, this._getElement(), this._config.isAnimated);
        }
    }

    const ye = { backdrop: !0, keyboard: !0, focus: !0 }, be = {
        backdrop: '(boolean|string)',
        keyboard: 'boolean',
        focus: 'boolean',
    };

    class xe extends z {
        constructor (e, t) {
            super(e), this._config = this._getConfig(
                t), this._dialog = n.findOne('.modal-dialog',
                this._element), this._backdrop = this._initializeBackDrop(), this._isShown = !1, this._ignoreBackdropClick = !1, this._isTransitioning = !1, this._scrollBar = new pe;
        }

        static get Default () {return ye;}

        static get NAME () {return 'modal';}

        toggle (e) {return this._isShown ? this.hide() : this.show(e);}

        show (e) {
            this._isShown || this._isTransitioning ||
            H.trigger(this._element, 'show.bs.modal',
                { relatedTarget: e }).defaultPrevented ||
            (this._isShown = !0, this._isAnimated() &&
            (this._isTransitioning = !0), this._scrollBar.hide(), document.body.classList.add(
                'modal-open'), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), H.on(
                this._element, 'click.dismiss.bs.modal',
                '[data-bs-dismiss="modal"]', (e => this.hide(e))), H.on(
                this._dialog, 'mousedown.dismiss.bs.modal', (() => {
                    H.one(this._element, 'mouseup.dismiss.bs.modal', (e => {
                        e.target === this._element &&
                        (this._ignoreBackdropClick = !0);
                    }));
                })), this._showBackdrop((() => this._showElement(e))));
        }

        hide (e) {
            if (e && ['A', 'AREA'].includes(e.target.tagName) &&
            e.preventDefault(), !this._isShown || this._isTransitioning) return;
            if (H.trigger(this._element,
                'hide.bs.modal').defaultPrevented) return;
            this._isShown = !1;
            const t = this._isAnimated();
            t &&
            (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), H.off(
                document, 'focusin.bs.modal'), this._element.classList.remove(
                'show'), H.off(this._element, 'click.dismiss.bs.modal'), H.off(
                this._dialog,
                'mousedown.dismiss.bs.modal'), this._queueCallback(
                (() => this._hideModal()), this._element, t);
        }

        dispose () {
            [window, this._dialog].forEach((e => H.off(e,
                '.bs.modal'))), this._backdrop.dispose(), super.dispose(), H.off(
                document, 'focusin.bs.modal');
        }

        handleUpdate () {this._adjustDialog();}

        _initializeBackDrop () {
            return new ve({
                isVisible: Boolean(this._config.backdrop),
                isAnimated: this._isAnimated(),
            });
        }

        _getConfig (e) {
            return e = {
                ...ye, ...U.getDataAttributes(this._element), ...'object' ==
                typeof e ? e : {},
            }, u('modal', e, be), e;
        }

        _showElement (e) {
            const t = this._isAnimated(),
                i = n.findOne('.modal-body', this._dialog);
            this._element.parentNode && this._element.parentNode.nodeType ===
            Node.ELEMENT_NODE || document.body.appendChild(
                this._element), this._element.style.display = 'block', this._element.removeAttribute(
                'aria-hidden'), this._element.setAttribute('aria-modal',
                !0), this._element.setAttribute('role',
                'dialog'), this._element.scrollTop = 0, i &&
            (i.scrollTop = 0), t &&
            m(this._element), this._element.classList.add(
                'show'), this._config.focus &&
            this._enforceFocus(), this._queueCallback((() => {
                this._config.focus &&
                this._element.focus(), this._isTransitioning = !1, H.trigger(
                    this._element, 'shown.bs.modal', { relatedTarget: e });
            }), this._dialog, t);
        }

        _enforceFocus () {
            H.off(document, 'focusin.bs.modal'), H.on(document,
                'focusin.bs.modal', (e => {
                    document === e.target || this._element === e.target ||
                    this._element.contains(e.target) || this._element.focus();
                }));
        }

        _setEscapeEvent () {
            this._isShown ? H.on(this._element, 'keydown.dismiss.bs.modal',
                (e => {
                    this._config.keyboard && 'Escape' === e.key
                        ? (e.preventDefault(), this.hide())
                        : this._config.keyboard || 'Escape' !== e.key ||
                        this._triggerBackdropTransition();
                })) : H.off(this._element, 'keydown.dismiss.bs.modal');
        }

        _setResizeEvent () {
            this._isShown ? H.on(window, 'resize.bs.modal',
                (() => this._adjustDialog())) : H.off(window,
                'resize.bs.modal');
        }

        _hideModal () {
            this._element.style.display = 'none', this._element.setAttribute(
                'aria-hidden', !0), this._element.removeAttribute(
                'aria-modal'), this._element.removeAttribute(
                'role'), this._isTransitioning = !1, this._backdrop.hide(
                (() => {
                    document.body.classList.remove(
                        'modal-open'), this._resetAdjustments(), this._scrollBar.reset(), H.trigger(
                        this._element, 'hidden.bs.modal');
                }));
        }

        _showBackdrop (e) {
            H.on(this._element, 'click.dismiss.bs.modal', (e => {
                this._ignoreBackdropClick
                    ? this._ignoreBackdropClick = !1
                    : e.target === e.currentTarget &&
                    (!0 === this._config.backdrop ? this.hide() : 'static' ===
                        this._config.backdrop &&
                        this._triggerBackdropTransition());
            })), this._backdrop.show(e);
        }

        _isAnimated () {return this._element.classList.contains('fade');}

        _triggerBackdropTransition () {
            if (H.trigger(this._element,
                'hidePrevented.bs.modal').defaultPrevented) return;
            const { classList: e, scrollHeight: t, style: n } = this._element,
                i = t > document.documentElement.clientHeight;
            !i && 'hidden' === n.overflowY || e.contains('modal-static') ||
            (i || (n.overflowY = 'hidden'), e.add(
                'modal-static'), this._queueCallback((() => {
                e.remove('modal-static'), i ||
                this._queueCallback((() => {n.overflowY = '';}), this._dialog);
            }), this._dialog), this._element.focus());
        }

        _adjustDialog () {
            const e = this._element.scrollHeight >
                document.documentElement.clientHeight,
                t = this._scrollBar.getWidth(), n = t > 0;
            (!n && e && !y() || n && !e && y()) &&
            (this._element.style.paddingLeft = t + 'px'), (n && !e && !y() ||
                !n && e && y()) &&
            (this._element.style.paddingRight = t + 'px');
        }

        _resetAdjustments () {this._element.style.paddingLeft = '', this._element.style.paddingRight = '';}

        static jQueryInterface (e, t) {
            return this.each((function () {
                const n = xe.getOrCreateInstance(this, e);
                if ('string' == typeof e) {
                    if (void 0 === n[e]) throw new TypeError(
                        `No method named "${e}"`);
                    n[e](t);
                }
            }));
        }
    }

    H.on(document, 'click.bs.modal.data-api', '[data-bs-toggle="modal"]',
        (function (e) {
            const t = o(this);
            ['A', 'AREA'].includes(this.tagName) && e.preventDefault(), H.one(t,
                'show.bs.modal', (e => {
                    e.defaultPrevented || H.one(t, 'hidden.bs.modal',
                        (() => {d(this) && this.focus();}));
                })), xe.getOrCreateInstance(t).toggle(this);
        })), b(xe);
    const _e = { backdrop: !0, keyboard: !0, scroll: !1 },
        we = { backdrop: 'boolean', keyboard: 'boolean', scroll: 'boolean' };

    class ke extends z {
        constructor (e, t) {
            super(e), this._config = this._getConfig(
                t), this._isShown = !1, this._backdrop = this._initializeBackDrop(), this._addEventListeners();
        }

        static get NAME () {return 'offcanvas';}

        static get Default () {return _e;}

        toggle (e) {return this._isShown ? this.hide() : this.show(e);}

        show (e) {
            this._isShown || H.trigger(this._element, 'show.bs.offcanvas',
                { relatedTarget: e }).defaultPrevented ||
            (this._isShown = !0, this._element.style.visibility = 'visible', this._backdrop.show(), this._config.scroll ||
            ((new pe).hide(), this._enforceFocusOnElement(
                this._element)), this._element.removeAttribute(
                'aria-hidden'), this._element.setAttribute('aria-modal',
                !0), this._element.setAttribute('role',
                'dialog'), this._element.classList.add(
                'show'), this._queueCallback((() => {
                H.trigger(this._element, 'shown.bs.offcanvas',
                    { relatedTarget: e });
            }), this._element, !0));
        }

        hide () {
            this._isShown &&
            (H.trigger(this._element, 'hide.bs.offcanvas').defaultPrevented ||
                (H.off(document,
                    'focusin.bs.offcanvas'), this._element.blur(), this._isShown = !1, this._element.classList.remove(
                    'show'), this._backdrop.hide(), this._queueCallback((() => {
                    this._element.setAttribute('aria-hidden',
                        !0), this._element.removeAttribute(
                        'aria-modal'), this._element.removeAttribute(
                        'role'), this._element.style.visibility = 'hidden', this._config.scroll ||
                    (new pe).reset(), H.trigger(this._element,
                        'hidden.bs.offcanvas');
                }), this._element, !0)));
        }

        dispose () {
            this._backdrop.dispose(), super.dispose(), H.off(document,
                'focusin.bs.offcanvas');
        }

        _getConfig (e) {
            return e = {
                ..._e, ...U.getDataAttributes(this._element), ...'object' ==
                typeof e ? e : {},
            }, u('offcanvas', e, we), e;
        }

        _initializeBackDrop () {
            return new ve({
                isVisible: this._config.backdrop,
                isAnimated: !0,
                rootElement: this._element.parentNode,
                clickCallback: () => this.hide(),
            });
        }

        _enforceFocusOnElement (e) {
            H.off(document, 'focusin.bs.offcanvas'), H.on(document,
                'focusin.bs.offcanvas', (t => {
                    document === t.target || e === t.target ||
                    e.contains(t.target) || e.focus();
                })), e.focus();
        }

        _addEventListeners () {
            H.on(this._element, 'click.dismiss.bs.offcanvas',
                '[data-bs-dismiss="offcanvas"]', (() => this.hide())), H.on(
                this._element, 'keydown.dismiss.bs.offcanvas', (e => {
                    this._config.keyboard && 'Escape' === e.key && this.hide();
                }));
        }

        static jQueryInterface (e) {
            return this.each((function () {
                const t = ke.getOrCreateInstance(this, e);
                if ('string' == typeof e) {
                    if (void 0 === t[e] || e.startsWith('_') ||
                        'constructor' === e) throw new TypeError(
                        `No method named "${e}"`);
                    t[e](this);
                }
            }));
        }
    }

    H.on(document, 'click.bs.offcanvas.data-api',
        '[data-bs-toggle="offcanvas"]', (function (e) {
            const t = o(this);
            if (['A', 'AREA'].includes(this.tagName) && e.preventDefault(), h(
                this)) return;
            H.one(t, 'hidden.bs.offcanvas', (() => {d(this) && this.focus();}));
            const i = n.findOne('.offcanvas.show');
            i && i !== t && ke.getInstance(i).hide(), ke.getOrCreateInstance(t).
                toggle(this);
        })), H.on(window, 'load.bs.offcanvas.data-api',
        (() => n.find('.offcanvas.show').
            forEach((e => ke.getOrCreateInstance(e).show())))), b(ke);
    const Me = new Set([
            'background',
            'cite',
            'href',
            'itemtype',
            'longdesc',
            'poster',
            'src',
            'xlink:href']),
        Le = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i,
        Se = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,
        Te = (e, t) => {
            const n = e.nodeName.toLowerCase();
            if (t.includes(n)) return !Me.has(n) ||
                Boolean(Le.test(e.nodeValue) || Se.test(e.nodeValue));
            const i = t.filter((e => e instanceof RegExp));
            for (let e = 0, t = i.length; e < t; e++) if (i[e].test(
                n)) return !0;
            return !1;
        };

    function Ae (e, t, n) {
        if (!e.length) return e;
        if (n && 'function' == typeof n) return n(e);
        const i = (new window.DOMParser).parseFromString(e, 'text/html'),
            a = Object.keys(t), r = [].concat(...i.body.querySelectorAll('*'));
        for (let e = 0, n = r.length; e < n; e++) {
            const n = r[e], i = n.nodeName.toLowerCase();
            if (!a.includes(i)) {
                n.remove();
                continue;
            }
            const o = [].concat(...n.attributes),
                s = [].concat(t['*'] || [], t[i] || []);
            o.forEach((e => {Te(e, s) || n.removeAttribute(e.nodeName);}));
        }
        return i.body.innerHTML;
    }

    const De = new RegExp('(^|\\s)bs-tooltip\\S+', 'g'),
        Ce = new Set(['sanitize', 'allowList', 'sanitizeFn']), Ee = {
            animation: 'boolean',
            template: 'string',
            title: '(string|element|function)',
            trigger: 'string',
            delay: '(number|object)',
            html: 'boolean',
            selector: '(string|boolean)',
            placement: '(string|function)',
            offset: '(array|string|function)',
            container: '(string|element|boolean)',
            fallbackPlacements: 'array',
            boundary: '(string|element)',
            customClass: '(string|function)',
            sanitize: 'boolean',
            sanitizeFn: '(null|function)',
            allowList: 'object',
            popperConfig: '(null|object|function)',
        }, Oe = {
            AUTO: 'auto',
            TOP: 'top',
            RIGHT: y() ? 'left' : 'right',
            BOTTOM: 'bottom',
            LEFT: y() ? 'right' : 'left',
        }, Ye = {
            animation: !0,
            template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
            trigger: 'hover focus',
            title: '',
            delay: 0,
            html: !1,
            selector: !1,
            placement: 'top',
            offset: [0, 0],
            container: !1,
            fallbackPlacements: ['top', 'right', 'bottom', 'left'],
            boundary: 'clippingParents',
            customClass: '',
            sanitize: !0,
            sanitizeFn: null,
            allowList: {
                '*': [
                    'class',
                    'dir',
                    'id',
                    'lang',
                    'role',
                    /^aria-[\w-]*$/i],
                a: ['target', 'href', 'title', 'rel'],
                area: [],
                b: [],
                br: [],
                col: [],
                code: [],
                div: [],
                em: [],
                hr: [],
                h1: [],
                h2: [],
                h3: [],
                h4: [],
                h5: [],
                h6: [],
                i: [],
                img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
                li: [],
                ol: [],
                p: [],
                pre: [],
                s: [],
                small: [],
                span: [],
                sub: [],
                sup: [],
                strong: [],
                u: [],
                ul: [],
            },
            popperConfig: null,
        }, Pe = {
            HIDE: 'hide.bs.tooltip',
            HIDDEN: 'hidden.bs.tooltip',
            SHOW: 'show.bs.tooltip',
            SHOWN: 'shown.bs.tooltip',
            INSERTED: 'inserted.bs.tooltip',
            CLICK: 'click.bs.tooltip',
            FOCUSIN: 'focusin.bs.tooltip',
            FOCUSOUT: 'focusout.bs.tooltip',
            MOUSEENTER: 'mouseenter.bs.tooltip',
            MOUSELEAVE: 'mouseleave.bs.tooltip',
        };

    class Ie extends z {
        constructor (e, n) {
            if (void 0 === t) throw new TypeError(
                'Bootstrap\'s tooltips require Popper (https://popper.js.org)');
            super(
                e), this._isEnabled = !0, this._timeout = 0, this._hoverState = '', this._activeTrigger = {}, this._popper = null, this._config = this._getConfig(
                n), this.tip = null, this._setListeners();
        }

        static get Default () {return Ye;}

        static get NAME () {return 'tooltip';}

        static get Event () {return Pe;}

        static get DefaultType () {return Ee;}

        enable () {this._isEnabled = !0;}

        disable () {this._isEnabled = !1;}

        toggleEnabled () {this._isEnabled = !this._isEnabled;}

        toggle (e) {
            if (this._isEnabled) if (e) {
                const t = this._initializeOnDelegatedTarget(e);
                t._activeTrigger.click = !t._activeTrigger.click, t._isWithActiveTrigger()
                    ? t._enter(null, t)
                    : t._leave(null, t);
            } else {
                if (this.getTipElement().
                    classList.
                    contains('show')) return void this._leave(null, this);
                this._enter(null, this);
            }
        }

        dispose () {
            clearTimeout(this._timeout), H.off(this._element.closest('.modal'),
                'hide.bs.modal', this._hideModalHandler), this.tip &&
            this.tip.remove(), this._popper &&
            this._popper.destroy(), super.dispose();
        }

        show () {
            if ('none' === this._element.style.display) throw new Error(
                'Please use show on visible elements');
            if (!this.isWithContent() || !this._isEnabled) return;
            const e = H.trigger(this._element, this.constructor.Event.SHOW),
                n = f(this._element), a = null === n
                ? this._element.ownerDocument.documentElement.contains(
                    this._element)
                : n.contains(this._element);
            if (e.defaultPrevented || !a) return;
            const r = this.getTipElement(), o = i(this.constructor.NAME);
            r.setAttribute('id', o), this._element.setAttribute(
                'aria-describedby',
                o), this.setContent(), this._config.animation &&
            r.classList.add('fade');
            const s = 'function' == typeof this._config.placement
                ? this._config.placement.call(this, r, this._element)
                : this._config.placement, l = this._getAttachment(s);
            this._addAttachmentClass(l);
            const { container: c } = this._config;
            R.set(r, this.constructor.DATA_KEY,
                this), this._element.ownerDocument.documentElement.contains(
                this.tip) || (c.appendChild(r), H.trigger(this._element,
                this.constructor.Event.INSERTED)), this._popper
                ? this._popper.update()
                : this._popper = t.createPopper(this._element, r,
                    this._getPopperConfig(l)), r.classList.add('show');
            const u = 'function' == typeof this._config.customClass
                ? this._config.customClass()
                : this._config.customClass;
            u && r.classList.add(...u.split(' ')), 'ontouchstart' in
            document.documentElement && [].concat(...document.body.children).
                forEach((e => {H.on(e, 'mouseover', p);}));
            const d = this.tip.classList.contains('fade');
            this._queueCallback((() => {
                const e = this._hoverState;
                this._hoverState = null, H.trigger(this._element,
                    this.constructor.Event.SHOWN), 'out' === e &&
                this._leave(null, this);
            }), this.tip, d);
        }

        hide () {
            if (!this._popper) return;
            const e = this.getTipElement();
            if (H.trigger(this._element,
                this.constructor.Event.HIDE).defaultPrevented) return;
            e.classList.remove('show'), 'ontouchstart' in
            document.documentElement && [].concat(...document.body.children).
                forEach((e => H.off(e, 'mouseover',
                    p))), this._activeTrigger.click = !1, this._activeTrigger.focus = !1, this._activeTrigger.hover = !1;
            const t = this.tip.classList.contains('fade');
            this._queueCallback((() => {
                this._isWithActiveTrigger() || ('show' !== this._hoverState &&
                e.remove(), this._cleanTipClass(), this._element.removeAttribute(
                    'aria-describedby'), H.trigger(this._element,
                    this.constructor.Event.HIDDEN), this._popper &&
                (this._popper.destroy(), this._popper = null));
            }), this.tip, t), this._hoverState = '';
        }

        update () {null !== this._popper && this._popper.update();}

        isWithContent () {return Boolean(this.getTitle());}

        getTipElement () {
            if (this.tip) return this.tip;
            const e = document.createElement('div');
            return e.innerHTML = this._config.template, this.tip = e.children[0], this.tip;
        }

        setContent () {
            const e = this.getTipElement();
            this.setElementContent(n.findOne('.tooltip-inner', e),
                this.getTitle()), e.classList.remove('fade', 'show');
        }

        setElementContent (e, t) {
            if (null !== e) return l(t) ? (t = c(t), void (this._config.html
                ? t.parentNode !== e && (e.innerHTML = '', e.appendChild(t))
                : e.textContent = t.textContent)) : void (this._config.html
                ? (this._config.sanitize && (t = Ae(t, this._config.allowList,
                    this._config.sanitizeFn)), e.innerHTML = t)
                : e.textContent = t);
        }

        getTitle () {
            let e = this._element.getAttribute('data-bs-original-title');
            return e || (e = 'function' == typeof this._config.title
                ? this._config.title.call(this._element)
                : this._config.title), e;
        }

        updateAttachment (e) {
            return 'right' === e ? 'end' : 'left' === e
                ? 'start'
                : e;
        }

        _initializeOnDelegatedTarget (
            e, t) {
            const n = this.constructor.DATA_KEY;
            return (t = t || R.get(e.delegateTarget, n)) ||
            (t = new this.constructor(e.delegateTarget,
                this._getDelegateConfig()), R.set(e.delegateTarget, n, t)), t;
        }

        _getOffset () {
            const { offset: e } = this._config;
            return 'string' == typeof e ? e.split(',').
                map((e => Number.parseInt(e, 10))) : 'function' == typeof e
                ? t => e(t, this._element)
                : e;
        }

        _getPopperConfig (e) {
            const t = {
                placement: e,
                modifiers: [
                    {
                        name: 'flip',
                        options: { fallbackPlacements: this._config.fallbackPlacements },
                    },
                    { name: 'offset', options: { offset: this._getOffset() } },
                    {
                        name: 'preventOverflow',
                        options: { boundary: this._config.boundary },
                    },
                    {
                        name: 'arrow',
                        options: { element: `.${this.constructor.NAME}-arrow` },
                    },
                    {
                        name: 'onChange',
                        enabled: !0,
                        phase: 'afterWrite',
                        fn: e => this._handlePopperPlacementChange(e),
                    }],
                onFirstUpdate: e => {
                    e.options.placement !== e.placement &&
                    this._handlePopperPlacementChange(e);
                },
            };
            return {
                ...t, ...'function' == typeof this._config.popperConfig
                    ? this._config.popperConfig(t)
                    : this._config.popperConfig,
            };
        }

        _addAttachmentClass (e) {
            this.getTipElement().
                classList.
                add('bs-tooltip-' + this.updateAttachment(e));
        }

        _getAttachment (e) {return Oe[e.toUpperCase()];}

        _setListeners () {
            this._config.trigger.split(' ').
                forEach((e => {
                    if ('click' === e) H.on(this._element,
                        this.constructor.Event.CLICK, this._config.selector,
                        (e => this.toggle(e))); else if ('manual' !== e) {
                        const t = 'hover' === e
                            ? this.constructor.Event.MOUSEENTER
                            : this.constructor.Event.FOCUSIN, n = 'hover' === e
                            ? this.constructor.Event.MOUSELEAVE
                            : this.constructor.Event.FOCUSOUT;
                        H.on(this._element, t, this._config.selector,
                            (e => this._enter(e))), H.on(this._element, n,
                            this._config.selector, (e => this._leave(e)));
                    }
                })), this._hideModalHandler = () => {
                this._element && this.hide();
            }, H.on(this._element.closest('.modal'), 'hide.bs.modal',
                this._hideModalHandler), this._config.selector
                ? this._config = {
                    ...this._config,
                    trigger: 'manual',
                    selector: '',
                }
                : this._fixTitle();
        }

        _fixTitle () {
            const e = this._element.getAttribute('title'),
                t = typeof this._element.getAttribute('data-bs-original-title');
            (e || 'string' !== t) &&
            (this._element.setAttribute('data-bs-original-title',
                e || ''), !e || this._element.getAttribute('aria-label') ||
            this._element.textContent ||
            this._element.setAttribute('aria-label',
                e), this._element.setAttribute('title', ''));
        }

        _enter (e, t) {
            t = this._initializeOnDelegatedTarget(e, t), e &&
            (t._activeTrigger['focusin' === e.type
                ? 'focus'
                : 'hover'] = !0), t.getTipElement().
                classList.
                contains('show') || 'show' === t._hoverState
                ? t._hoverState = 'show'
                : (clearTimeout(
                    t._timeout), t._hoverState = 'show', t._config.delay &&
                t._config.delay.show ? t._timeout = setTimeout(
                    (() => {'show' === t._hoverState && t.show();}),
                    t._config.delay.show) : t.show());
        }

        _leave (e, t) {
            t = this._initializeOnDelegatedTarget(e, t), e &&
            (t._activeTrigger['focusout' === e.type
                ? 'focus'
                : 'hover'] = t._element.contains(
                e.relatedTarget)), t._isWithActiveTrigger() ||
            (clearTimeout(t._timeout), t._hoverState = 'out', t._config.delay &&
            t._config.delay.hide
                ? t._timeout = setTimeout(
                    (() => {'out' === t._hoverState && t.hide();}),
                    t._config.delay.hide)
                : t.hide());
        }

        _isWithActiveTrigger () {
            for (const e in this._activeTrigger) if (this._activeTrigger[e]) return !0;
            return !1;
        }

        _getConfig (e) {
            const t = U.getDataAttributes(this._element);
            return Object.keys(t).
                forEach((e => {
                    Ce.has(e) && delete t[e];
                })), (e = {
                ...this.constructor.Default, ...t, ...'object' == typeof e && e
                    ? e
                    : {},
            }).container = !1 === e.container ? document.body : c(
                e.container), 'number' == typeof e.delay &&
            (e.delay = { show: e.delay, hide: e.delay }), 'number' ==
            typeof e.title && (e.title = e.title.toString()), 'number' ==
            typeof e.content && (e.content = e.content.toString()), u('tooltip',
                e, this.constructor.DefaultType), e.sanitize &&
            (e.template = Ae(e.template, e.allowList, e.sanitizeFn)), e;
        }

        _getDelegateConfig () {
            const e = {};
            if (this._config) for (const t in this._config) this.constructor.Default[t] !==
            this._config[t] && (e[t] = this._config[t]);
            return e;
        }

        _cleanTipClass () {
            const e = this.getTipElement(),
                t = e.getAttribute('class').match(De);
            null !== t && t.length > 0 &&
            t.map((e => e.trim())).forEach((t => e.classList.remove(t)));
        }

        _handlePopperPlacementChange (e) {
            const { state: t } = e;
            t &&
            (this.tip = t.elements.popper, this._cleanTipClass(), this._addAttachmentClass(
                this._getAttachment(t.placement)));
        }

        static jQueryInterface (e) {
            return this.each((function () {
                const t = Ie.getOrCreateInstance(this, e);
                if ('string' == typeof e) {
                    if (void 0 === t[e]) throw new TypeError(
                        `No method named "${e}"`);
                    t[e]();
                }
            }));
        }
    }

    b(Ie);
    const je = new RegExp('(^|\\s)bs-popover\\S+', 'g'), Ne = {
        ...Ie.Default,
        placement: 'right',
        offset: [0, 8],
        trigger: 'click',
        content: '',
        template: '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',
    }, He = { ...Ie.DefaultType, content: '(string|element|function)' }, Fe = {
        HIDE: 'hide.bs.popover',
        HIDDEN: 'hidden.bs.popover',
        SHOW: 'show.bs.popover',
        SHOWN: 'shown.bs.popover',
        INSERTED: 'inserted.bs.popover',
        CLICK: 'click.bs.popover',
        FOCUSIN: 'focusin.bs.popover',
        FOCUSOUT: 'focusout.bs.popover',
        MOUSEENTER: 'mouseenter.bs.popover',
        MOUSELEAVE: 'mouseleave.bs.popover',
    };

    class Re extends Ie {
        static get Default () {return Ne;}

        static get NAME () {return 'popover';}

        static get Event () {return Fe;}

        static get DefaultType () {return He;}

        isWithContent () {return this.getTitle() || this._getContent();}

        getTipElement () {
            return this.tip ||
            (this.tip = super.getTipElement(), this.getTitle() ||
            n.findOne('.popover-header', this.tip).
                remove(), this._getContent() ||
            n.findOne('.popover-body', this.tip).remove()), this.tip;
        }

        setContent () {
            const e = this.getTipElement();
            this.setElementContent(n.findOne('.popover-header', e),
                this.getTitle());
            let t = this._getContent();
            'function' == typeof t &&
            (t = t.call(this._element)), this.setElementContent(
                n.findOne('.popover-body', e), t), e.classList.remove('fade',
                'show');
        }

        _addAttachmentClass (e) {
            this.getTipElement().
                classList.
                add('bs-popover-' + this.updateAttachment(e));
        }

        _getContent () {
            return this._element.getAttribute('data-bs-content') ||
                this._config.content;
        }

        _cleanTipClass () {
            const e = this.getTipElement(),
                t = e.getAttribute('class').match(je);
            null !== t && t.length > 0 &&
            t.map((e => e.trim())).forEach((t => e.classList.remove(t)));
        }

        static jQueryInterface (e) {
            return this.each((function () {
                const t = Re.getOrCreateInstance(this, e);
                if ('string' == typeof e) {
                    if (void 0 === t[e]) throw new TypeError(
                        `No method named "${e}"`);
                    t[e]();
                }
            }));
        }
    }

    b(Re);
    const ze = { offset: 10, method: 'auto', target: '' },
        Be = { offset: 'number', method: 'string', target: '(string|element)' };

    class We extends z {
        constructor (e, t) {
            super(e), this._scrollElement = 'BODY' === this._element.tagName
                ? window
                : this._element, this._config = this._getConfig(
                t), this._selector = `${this._config.target} .nav-link, ${this._config.target} .list-group-item, ${this._config.target} .dropdown-item`, this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, H.on(
                this._scrollElement, 'scroll.bs.scrollspy',
                (() => this._process())), this.refresh(), this._process();
        }

        static get Default () {return ze;}

        static get NAME () {return 'scrollspy';}

        refresh () {
            const e = this._scrollElement === this._scrollElement.window
                ? 'offset'
                : 'position',
                t = 'auto' === this._config.method ? e : this._config.method,
                i = 'position' === t ? this._getScrollTop() : 0;
            this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), n.find(
                this._selector).
                map((e => {
                    const a = r(e), o = a ? n.findOne(a) : null;
                    if (o) {
                        const e = o.getBoundingClientRect();
                        if (e.width || e.height) return [U[t](o).top + i, a];
                    }
                    return null;
                })).
                filter((e => e)).
                sort(((e, t) => e[0] - t[0])).
                forEach(
                    (e => {
                        this._offsets.push(e[0]), this._targets.push(e[1]);
                    }));
        }

        dispose () {
            H.off(this._scrollElement, '.bs.scrollspy'), super.dispose();
        }

        _getConfig (e) {
            if ('string' != typeof (e = {
                ...ze, ...U.getDataAttributes(this._element), ...'object' ==
                typeof e && e ? e : {},
            }).target && l(e.target)) {
                let { id: t } = e.target;
                t || (t = i('scrollspy'), e.target.id = t), e.target = '#' + t;
            }
            return u('scrollspy', e, Be), e;
        }

        _getScrollTop () {
            return this._scrollElement === window
                ? this._scrollElement.pageYOffset
                : this._scrollElement.scrollTop;
        }

        _getScrollHeight () {
            return this._scrollElement.scrollHeight ||
                Math.max(document.body.scrollHeight,
                    document.documentElement.scrollHeight);
        }

        _getOffsetHeight () {
            return this._scrollElement === window
                ? window.innerHeight
                : this._scrollElement.getBoundingClientRect().height;
        }

        _process () {
            const e = this._getScrollTop() + this._config.offset,
                t = this._getScrollHeight(),
                n = this._config.offset + t - this._getOffsetHeight();
            if (this._scrollHeight !== t && this.refresh(), e >= n) {
                const e = this._targets[this._targets.length - 1];
                this._activeTarget !== e && this._activate(e);
            } else {
                if (this._activeTarget && e < this._offsets[0] &&
                    this._offsets[0] >
                    0) return this._activeTarget = null, void this._clear();
                for (let t = this._offsets.length; t--;) this._activeTarget !==
                this._targets[t] && e >= this._offsets[t] &&
                (void 0 === this._offsets[t + 1] || e < this._offsets[t + 1]) &&
                this._activate(this._targets[t]);
            }
        }

        _activate (e) {
            this._activeTarget = e, this._clear();
            const t = this._selector.split(',').
                    map((t => `${t}[data-bs-target="${e}"],${t}[href="${e}"]`)),
                i = n.findOne(t.join(','));
            i.classList.contains('dropdown-item') ? (n.findOne(
                '.dropdown-toggle', i.closest('.dropdown')).
                classList.
                add('active'), i.classList.add('active')) : (i.classList.add(
                'active'), n.parents(i, '.nav, .list-group').
                forEach((e => {
                    n.prev(e, '.nav-link, .list-group-item').
                        forEach((e => e.classList.add('active'))), n.prev(e,
                        '.nav-item').
                        forEach((e => {
                            n.children(e, '.nav-link').
                                forEach((e => e.classList.add('active')));
                        }));
                }))), H.trigger(this._scrollElement, 'activate.bs.scrollspy',
                { relatedTarget: e });
        }

        _clear () {
            n.find(this._selector).
                filter((e => e.classList.contains('active'))).
                forEach((e => e.classList.remove('active')));
        }

        static jQueryInterface (e) {
            return this.each((function () {
                const t = We.getOrCreateInstance(this, e);
                if ('string' == typeof e) {
                    if (void 0 === t[e]) throw new TypeError(
                        `No method named "${e}"`);
                    t[e]();
                }
            }));
        }
    }

    H.on(window, 'load.bs.scrollspy.data-api', (() => {
        n.find('[data-bs-spy="scroll"]').
            forEach((e => new We(e)));
    })), b(We);

    class Ve extends z {
        static get NAME () {return 'tab';}

        show () {
            if (this._element.parentNode &&
                this._element.parentNode.nodeType === Node.ELEMENT_NODE &&
                this._element.classList.contains('active')) return;
            let e;
            const t = o(this._element),
                i = this._element.closest('.nav, .list-group');
            if (i) {
                const t = 'UL' === i.nodeName || 'OL' === i.nodeName
                    ? ':scope > li > .active'
                    : '.active';
                e = n.find(t, i), e = e[e.length - 1];
            }
            const a = e ? H.trigger(e, 'hide.bs.tab',
                { relatedTarget: this._element }) : null;
            if (H.trigger(this._element, 'show.bs.tab',
                { relatedTarget: e }).defaultPrevented || null !== a &&
                a.defaultPrevented) return;
            this._activate(this._element, i);
            const r = () => {
                H.trigger(e, 'hidden.bs.tab',
                    { relatedTarget: this._element }), H.trigger(this._element,
                    'shown.bs.tab', { relatedTarget: e });
            };
            t ? this._activate(t, t.parentNode, r) : r();
        }

        _activate (e, t, i) {
            const a = (!t || 'UL' !== t.nodeName && 'OL' !== t.nodeName
                ? n.children(t, '.active')
                : n.find(':scope > li > .active', t))[0],
                r = i && a && a.classList.contains('fade'),
                o = () => this._transitionComplete(e, a, i);
            a && r
                ? (a.classList.remove('show'), this._queueCallback(o, e, !0))
                : o();
        }

        _transitionComplete (e, t, i) {
            if (t) {
                t.classList.remove('active');
                const e = n.findOne(':scope > .dropdown-menu .active',
                    t.parentNode);
                e && e.classList.remove('active'), 'tab' ===
                t.getAttribute('role') && t.setAttribute('aria-selected', !1);
            }
            e.classList.add('active'), 'tab' === e.getAttribute('role') &&
            e.setAttribute('aria-selected', !0), m(e), e.classList.contains(
                'fade') && e.classList.add('show');
            let a = e.parentNode;
            if (a && 'LI' === a.nodeName && (a = a.parentNode), a &&
            a.classList.contains('dropdown-menu')) {
                const t = e.closest('.dropdown');
                t && n.find('.dropdown-toggle', t).
                    forEach((e => e.classList.add('active'))), e.setAttribute(
                    'aria-expanded', !0);
            }
            i && i();
        }

        static jQueryInterface (e) {
            return this.each((function () {
                const t = Ve.getOrCreateInstance(this);
                if ('string' == typeof e) {
                    if (void 0 === t[e]) throw new TypeError(
                        `No method named "${e}"`);
                    t[e]();
                }
            }));
        }
    }

    H.on(document, 'click.bs.tab.data-api',
        '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',
        (function (e) {
            ['A', 'AREA'].includes(this.tagName) && e.preventDefault(), h(
                this) || Ve.getOrCreateInstance(this).show();
        })), b(Ve);
    const qe = { animation: 'boolean', autohide: 'boolean', delay: 'number' },
        Ue = { animation: !0, autohide: !0, delay: 5e3 };

    class Xe extends z {
        constructor (e, t) {
            super(e), this._config = this._getConfig(
                t), this._timeout = null, this._hasMouseInteraction = !1, this._hasKeyboardInteraction = !1, this._setListeners();
        }

        static get DefaultType () {return qe;}

        static get Default () {return Ue;}

        static get NAME () {return 'toast';}

        show () {
            H.trigger(this._element, 'show.bs.toast').defaultPrevented ||
            (this._clearTimeout(), this._config.animation &&
            this._element.classList.add('fade'), this._element.classList.remove(
                'hide'), m(this._element), this._element.classList.add(
                'showing'), this._queueCallback((() => {
                this._element.classList.remove(
                    'showing'), this._element.classList.add('show'), H.trigger(
                    this._element, 'shown.bs.toast'), this._maybeScheduleHide();
            }), this._element, this._config.animation));
        }

        hide () {
            this._element.classList.contains('show') &&
            (H.trigger(this._element, 'hide.bs.toast').defaultPrevented ||
                (this._element.classList.remove('show'), this._queueCallback(
                    (() => {
                        this._element.classList.add('hide'), H.trigger(
                            this._element, 'hidden.bs.toast');
                    }), this._element, this._config.animation)));
        }

        dispose () {
            this._clearTimeout(), this._element.classList.contains('show') &&
            this._element.classList.remove('show'), super.dispose();
        }

        _getConfig (e) {
            return e = {
                ...Ue, ...U.getDataAttributes(this._element), ...'object' ==
                typeof e && e ? e : {},
            }, u('toast', e, this.constructor.DefaultType), e;
        }

        _maybeScheduleHide () {
            this._config.autohide &&
            (this._hasMouseInteraction || this._hasKeyboardInteraction ||
                (this._timeout = setTimeout((() => {this.hide();}),
                    this._config.delay)));
        }

        _onInteraction (e, t) {
            switch (e.type) {
                case'mouseover':
                case'mouseout':
                    this._hasMouseInteraction = t;
                    break;
                case'focusin':
                case'focusout':
                    this._hasKeyboardInteraction = t;
            }
            if (t) return void this._clearTimeout();
            const n = e.relatedTarget;
            this._element === n || this._element.contains(n) ||
            this._maybeScheduleHide();
        }

        _setListeners () {
            H.on(this._element, 'click.dismiss.bs.toast',
                '[data-bs-dismiss="toast"]', (() => this.hide())), H.on(
                this._element, 'mouseover.bs.toast',
                (e => this._onInteraction(e, !0))), H.on(this._element,
                'mouseout.bs.toast', (e => this._onInteraction(e, !1))), H.on(
                this._element, 'focusin.bs.toast',
                (e => this._onInteraction(e, !0))), H.on(this._element,
                'focusout.bs.toast', (e => this._onInteraction(e, !1)));
        }

        _clearTimeout () {clearTimeout(this._timeout), this._timeout = null;}

        static jQueryInterface (e) {
            return this.each((function () {
                const t = Xe.getOrCreateInstance(this, e);
                if ('string' == typeof e) {
                    if (void 0 === t[e]) throw new TypeError(
                        `No method named "${e}"`);
                    t[e](this);
                }
            }));
        }
    }

    return b(Xe), {
        Alert: B,
        Button: W,
        Carousel: ee,
        Collapse: ie,
        Dropdown: fe,
        Modal: xe,
        Offcanvas: ke,
        Popover: Re,
        ScrollSpy: We,
        Tab: Ve,
        Toast: Xe,
        Tooltip: Ie,
    };
})), function (e, t) {
    'object' == typeof exports && 'undefined' != typeof module
        ? module.exports = t()
        : 'function' == typeof define && define.amd
        ? define(t)
        : e.moment = t();
}(this, (function () {
    'use strict';
    var e, t;

    function n () {return e.apply(null, arguments);}

    function i (e) {
        return e instanceof Array || '[object Array]' ===
            Object.prototype.toString.call(e);
    }

    function a (e) {
        return null != e && '[object Object]' ===
            Object.prototype.toString.call(e);
    }

    function r (e, t) {return Object.prototype.hasOwnProperty.call(e, t);}

    function o (e) {
        if (Object.getOwnPropertyNames) return 0 ===
            Object.getOwnPropertyNames(e).length;
        for (var t in e) if (r(e, t)) return;
        return 1;
    }

    function s (e) {return void 0 === e;}

    function l (e) {
        return 'number' == typeof e || '[object Number]' ===
            Object.prototype.toString.call(e);
    }

    function c (e) {
        return e instanceof Date || '[object Date]' ===
            Object.prototype.toString.call(e);
    }

    function u (e, t) {
        for (var n = [], i = 0; i < e.length; ++i) n.push(t(e[i], i));
        return n;
    }

    function d (e, t) {
        for (var n in t) r(t, n) && (e[n] = t[n]);
        return r(t, 'toString') && (e.toString = t.toString), r(t, 'valueOf') &&
        (e.valueOf = t.valueOf), e;
    }

    function h (e, t, n, i) {return vt(e, t, n, i, !0).utc();}

    function f (e) {
        return null == e._pf && (e._pf = {
            empty: !1,
            unusedTokens: [],
            unusedInput: [],
            overflow: -2,
            charsLeftOver: 0,
            nullInput: !1,
            invalidEra: null,
            invalidMonth: null,
            invalidFormat: !1,
            userInvalidated: !1,
            iso: !1,
            parsedDateParts: [],
            era: null,
            meridiem: null,
            rfc2822: !1,
            weekdayMismatch: !1,
        }), e._pf;
    }

    function p (e) {
        if (null == e._isValid) {
            var n = f(e), i = t.call(n.parsedDateParts,
                (function (e) {return null != e;})),
                a = !isNaN(e._d.getTime()) && n.overflow < 0 && !n.empty &&
                    !n.invalidEra && !n.invalidMonth && !n.invalidWeekday &&
                    !n.weekdayMismatch && !n.nullInput && !n.invalidFormat &&
                    !n.userInvalidated && (!n.meridiem || n.meridiem && i);
            if (e._strict &&
            (a = a && 0 === n.charsLeftOver && 0 === n.unusedTokens.length &&
                void 0 === n.bigHour), null != Object.isFrozen &&
            Object.isFrozen(e)) return a;
            e._isValid = a;
        }
        return e._isValid;
    }

    function m (e) {
        var t = h(NaN);
        return null != e ? d(f(t), e) : f(t).userInvalidated = !0, t;
    }

    t = Array.prototype.some
        ? Array.prototype.some
        : function (e) {
            for (var t = Object(this), n = t.length >>> 0, i = 0; i <
            n; i++) if (i in t && e.call(this, t[i], i, t)) return !0;
            return !1;
        };
    var g = n.momentProperties = [], v = !1;

    function y (e, t) {
        var n, i, a;
        if (s(t._isAMomentObject) ||
        (e._isAMomentObject = t._isAMomentObject), s(t._i) || (e._i = t._i), s(
            t._f) || (e._f = t._f), s(t._l) || (e._l = t._l), s(t._strict) ||
        (e._strict = t._strict), s(t._tzm) || (e._tzm = t._tzm), s(t._isUTC) ||
        (e._isUTC = t._isUTC), s(t._offset) || (e._offset = t._offset), s(
            t._pf) || (e._pf = f(t)), s(t._locale) ||
        (e._locale = t._locale), 0 < g.length) for (n = 0; n < g.length; n++) s(
            a = t[i = g[n]]) || (e[i] = a);
        return e;
    }

    function b (e) {
        y(this, e), this._d = new Date(
            null != e._d ? e._d.getTime() : NaN), this.isValid() ||
        (this._d = new Date(NaN)), !1 === v &&
        (v = !0, n.updateOffset(this), v = !1);
    }

    function x (e) {
        return e instanceof b || null != e && null != e._isAMomentObject;
    }

    function _ (e) {
        !1 === n.suppressDeprecationWarnings && 'undefined' != typeof console &&
        console.warn && console.warn('Deprecation warning: ' + e);
    }

    function w (e, t) {
        var i = !0;
        return d((function () {
            if (null != n.deprecationHandler &&
            n.deprecationHandler(null, e), i) {
                for (var a, o, s = [], l = 0; l < arguments.length; l++) {
                    if (a = '', 'object' == typeof arguments[l]) {
                        for (o in a += '\n[' + l + '] ', arguments[0]) r(
                            arguments[0], o) &&
                        (a += o + ': ' + arguments[0][o] + ', ');
                        a = a.slice(0, -2);
                    } else a = arguments[l];
                    s.push(a);
                }
                _(e + '\nArguments: ' + Array.prototype.slice.call(s).join('') +
                    '\n' + (new Error).stack), i = !1;
            }
            return t.apply(this, arguments);
        }), t);
    }

    var k, M = {};

    function L (e, t) {
        null != n.deprecationHandler && n.deprecationHandler(e, t), M[e] ||
        (_(t), M[e] = !0);
    }

    function S (e) {
        return 'undefined' != typeof Function && e instanceof Function ||
            '[object Function]' === Object.prototype.toString.call(e);
    }

    function T (e, t) {
        var n, i = d({}, e);
        for (n in t) r(t, n) && (a(e[n]) && a(t[n])
            ? (i[n] = {}, d(i[n], e[n]), d(i[n], t[n]))
            : null != t[n] ? i[n] = t[n] : delete i[n]);
        for (n in e) r(e, n) && !r(t, n) && a(e[n]) && (i[n] = d({}, i[n]));
        return i;
    }

    function A (e) {null != e && this.set(e);}

    function D (e, t, n) {
        var i = '' + Math.abs(e), a = t - i.length;
        return (0 <= e ? n ? '+' : '' : '-') +
            Math.pow(10, Math.max(0, a)).toString().substr(1) + i;
    }

    n.suppressDeprecationWarnings = !1, n.deprecationHandler = null, k = Object.keys
        ? Object.keys
        : function (e) {
            var t, n = [];
            for (t in e) r(e, t) && n.push(t);
            return n;
        };
    var C = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,
        E = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, O = {}, Y = {};

    function P (e, t, n, i) {
        var a = 'string' == typeof i
            ? function () {return this[i]();}
            : i;
        e && (Y[e] = a), t && (Y[t[0]] = function () {
            return D(a.apply(this, arguments), t[1], t[2]);
        }), n && (Y[n] = function () {
            return this.localeData().
                ordinal(a.apply(this, arguments), e);
        });
    }

    function I (e, t) {
        return e.isValid() ? (t = j(t, e.localeData()), O[t] = O[t] ||
            function (e) {
                for (var t, n = e.match(C), i = 0, a = n.length; i <
                a; i++) Y[n[i]]
                    ? n[i] = Y[n[i]]
                    : n[i] = (t = n[i]).match(/\[[\s\S]/)
                        ? t.replace(/^\[|\]$/g, '')
                        : t.replace(/\\/g, '');
                return function (t) {
                    for (var i = '', r = 0; r < a; r++) i += S(n[r])
                        ? n[r].call(t, e)
                        : n[r];
                    return i;
                };
            }(t), O[t](e)) : e.localeData().invalidDate();
    }

    function j (e, t) {
        var n = 5;

        function i (e) {return t.longDateFormat(e) || e;}

        for (E.lastIndex = 0; 0 <= n && E.test(e);) e = e.replace(E,
            i), E.lastIndex = 0, --n;
        return e;
    }

    var N = {};

    function H (e, t) {
        var n = e.toLowerCase();
        N[n] = N[n + 's'] = N[t] = e;
    }

    function F (e) {
        return 'string' == typeof e
            ? N[e] || N[e.toLowerCase()]
            : void 0;
    }

    function R (e) {
        var t, n, i = {};
        for (n in e) r(e, n) && (t = F(n)) && (i[t] = e[n]);
        return i;
    }

    var z = {};

    function B (e, t) {z[e] = t;}

    function W (e) {return e % 4 == 0 && e % 100 != 0 || e % 400 == 0;}

    function V (e) {return e < 0 ? Math.ceil(e) || 0 : Math.floor(e);}

    function q (e) {
        var t = +e, n = 0;
        return 0 != t && isFinite(t) && (n = V(t)), n;
    }

    function U (e, t) {
        return function (i) {
            return null != i
                ? ($(this, e, i), n.updateOffset(this, t), this)
                : X(this, e);
        };
    }

    function X (e, t) {
        return e.isValid() ? e._d['get' + (e._isUTC ? 'UTC' : '') + t]() : NaN;
    }

    function $ (e, t, n) {
        e.isValid() && !isNaN(n) &&
        ('FullYear' === t && W(e.year()) && 1 === e.month() && 29 === e.date()
            ? (n = q(n), e._d['set' + (e._isUTC ? 'UTC' : '') + t](n, e.month(),
                be(n, e.month())))
            : e._d['set' + (e._isUTC ? 'UTC' : '') + t](n));
    }

    var G, Z = /\d/, K = /\d\d/, J = /\d{3}/, Q = /\d{4}/, ee = /[+-]?\d{6}/,
        te = /\d\d?/, ne = /\d\d\d\d?/, ie = /\d\d\d\d\d\d?/, ae = /\d{1,3}/,
        re = /\d{1,4}/, oe = /[+-]?\d{1,6}/, se = /\d+/, le = /[+-]?\d+/,
        ce = /Z|[+-]\d\d:?\d\d/gi, ue = /Z|[+-]\d\d(?::?\d\d)?/gi,
        de = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;

    function he (e, t, n) {
        G[e] = S(t) ? t : function (e, i) {
            return e && n
                ? n
                : t;
        };
    }

    function fe (e, t) {
        return r(G, e)
            ? G[e](t._strict, t._locale)
            : new RegExp(pe(e.replace('\\', '').
                replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,
                    (function (e, t, n, i, a) {return t || n || i || a;}))));
    }

    function pe (e) {return e.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');}

    G = {};
    var me = {};

    function ge (e, t) {
        var n, i = t;
        for ('string' == typeof e && (e = [e]), l(t) &&
        (i = function (e, n) {n[t] = q(e);}), n = 0; n <
             e.length; n++) me[e[n]] = i;
    }

    function ve (e, t) {
        ge(e, (function (e, n, i, a) {i._w = i._w || {}, t(e, i._w, i, a);}));
    }

    var ye;

    function be (e, t) {
        if (isNaN(e) || isNaN(t)) return NaN;
        var n = (t % 12 + 12) % 12;
        return e += (t - n) / 12, 1 == n ? W(e) ? 29 : 28 : 31 - n % 7 % 2;
    }

    ye = Array.prototype.indexOf
        ? Array.prototype.indexOf
        : function (e) {
            for (var t = 0; t < this.length; ++t) if (this[t] === e) return t;
            return -1;
        }, P('M', ['MM', 2], 'Mo', (function () {return this.month() + 1;})), P(
        'MMM', 0, 0,
        (function (e) {return this.localeData().monthsShort(this, e);})), P(
        'MMMM', 0, 0,
        (function (e) {return this.localeData().months(this, e);})), H('month',
        'M'), B('month', 8), he('M', te), he('MM', te, K), he('MMM',
        (function (e, t) {return t.monthsShortRegex(e);})), he('MMMM',
        (function (e, t) {return t.monthsRegex(e);})), ge(['M', 'MM'],
        (function (e, t) {t[1] = q(e) - 1;})), ge(['MMM', 'MMMM'],
        (function (e, t, n, i) {
            var a = n._locale.monthsParse(e, i, n._strict);
            null != a ? t[1] = a : f(n).invalidMonth = e;
        }));
    var xe = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
        '_'), _e = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
        we = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, ke = de, Me = de;

    function Le (e, t) {
        var n;
        if (!e.isValid()) return e;
        if ('string' == typeof t) if (/^\d+$/.test(t)) t = q(t); else if (!l(
            t = e.localeData().monthsParse(t))) return e;
        return n = Math.min(e.date(), be(e.year(), t)), e._d['set' +
        (e._isUTC ? 'UTC' : '') + 'Month'](t, n), e;
    }

    function Se (e) {
        return null != e ? (Le(this, e), n.updateOffset(this, !0), this) : X(
            this, 'Month');
    }

    function Te () {
        function e (e, t) {return t.length - e.length;}

        for (var t, n = [], i = [], a = [], r = 0; r < 12; r++) t = h(
            [2e3, r]), n.push(this.monthsShort(t, '')), i.push(
            this.months(t, '')), a.push(this.months(t, '')), a.push(
            this.monthsShort(t, ''));
        for (n.sort(e), i.sort(e), a.sort(e), r = 0; r < 12; r++) n[r] = pe(
            n[r]), i[r] = pe(i[r]);
        for (r = 0; r < 24; r++) a[r] = pe(a[r]);
        this._monthsRegex = new RegExp('^(' + a.join('|') + ')',
            'i'), this._monthsShortRegex = this._monthsRegex, this._monthsStrictRegex = new RegExp(
            '^(' + i.join('|') + ')',
            'i'), this._monthsShortStrictRegex = new RegExp(
            '^(' + n.join('|') + ')', 'i');
    }

    function Ae (e) {return W(e) ? 366 : 365;}

    P('Y', 0, 0, (function () {
        var e = this.year();
        return e <= 9999 ? D(e, 4) : '+' + e;
    })), P(0, ['YY', 2], 0, (function () {return this.year() % 100;})), P(0,
        ['YYYY', 4], 0, 'year'), P(0, ['YYYYY', 5], 0, 'year'), P(0,
        ['YYYYYY', 6, !0], 0, 'year'), H('year', 'y'), B('year', 1), he('Y',
        le), he('YY', te, K), he('YYYY', re, Q), he('YYYYY', oe, ee), he(
        'YYYYYY', oe, ee), ge(['YYYYY', 'YYYYYY'], 0), ge('YYYY',
        (function (e, t) {
            t[0] = 2 === e.length ? n.parseTwoDigitYear(e) : q(e);
        })), ge('YY', (function (e, t) {t[0] = n.parseTwoDigitYear(e);})), ge(
        'Y', (function (e, t) {
            t[0] = parseInt(e, 10);
        })), n.parseTwoDigitYear = function (e) {
        return q(e) + (68 < q(e) ? 1900 : 2e3);
    };
    var De = U('FullYear', !0);

    function Ce (e) {
        var t, n;
        return e < 100 && 0 <= e ? ((n = Array.prototype.slice.call(
            arguments))[0] = e + 400, t = new Date(
            Date.UTC.apply(null, n)), isFinite(t.getUTCFullYear()) &&
        t.setUTCFullYear(e)) : t = new Date(Date.UTC.apply(null, arguments)), t;
    }

    function Ee (e, t, n) {
        var i = 7 + t - n;
        return i - (7 + Ce(e, 0, i).getUTCDay() - t) % 7 - 1;
    }

    function Oe (e, t, n, i, a) {
        var r, o = 1 + 7 * (t - 1) + (7 + n - i) % 7 + Ee(e, i, a),
            s = o <= 0 ? Ae(r = e - 1) + o : o > Ae(e)
                ? (r = e + 1, o - Ae(e))
                : (r = e, o);
        return { year: r, dayOfYear: s };
    }

    function Ye (e, t, n) {
        var i, a, r = Ee(e.year(), t, n),
            o = Math.floor((e.dayOfYear() - r - 1) / 7) + 1;
        return o < 1 ? i = o + Pe(a = e.year() - 1, t, n) : o >
        Pe(e.year(), t, n)
            ? (i = o - Pe(e.year(), t, n), a = e.year() + 1)
            : (a = e.year(), i = o), { week: i, year: a };
    }

    function Pe (e, t, n) {
        var i = Ee(e, t, n), a = Ee(e + 1, t, n);
        return (Ae(e) - i + a) / 7;
    }

    function Ie (e, t) {return e.slice(t, 7).concat(e.slice(0, t));}

    P('w', ['ww', 2], 'wo', 'week'), P('W', ['WW', 2], 'Wo', 'isoWeek'), H(
        'week', 'w'), H('isoWeek', 'W'), B('week', 5), B('isoWeek', 5), he('w',
        te), he('ww', te, K), he('W', te), he('WW', te, K), ve(
        ['w', 'ww', 'W', 'WW'],
        (function (e, t, n, i) {t[i.substr(0, 1)] = q(e);})), P('d', 0, 'do',
        'day'), P('dd', 0, 0,
        (function (e) {return this.localeData().weekdaysMin(this, e);})), P(
        'ddd', 0, 0,
        (function (e) {return this.localeData().weekdaysShort(this, e);})), P(
        'dddd', 0, 0,
        (function (e) {return this.localeData().weekdays(this, e);})), P('e', 0,
        0, 'weekday'), P('E', 0, 0, 'isoWeekday'), H('day', 'd'), H('weekday',
        'e'), H('isoWeekday', 'E'), B('day', 11), B('weekday', 11), B(
        'isoWeekday', 11), he('d', te), he('e', te), he('E', te), he('dd',
        (function (e, t) {return t.weekdaysMinRegex(e);})), he('ddd',
        (function (e, t) {return t.weekdaysShortRegex(e);})), he('dddd',
        (function (e, t) {return t.weekdaysRegex(e);})), ve(
        ['dd', 'ddd', 'dddd'], (function (e, t, n, i) {
            var a = n._locale.weekdaysParse(e, i, n._strict);
            null != a ? t.d = a : f(n).invalidWeekday = e;
        })), ve(['d', 'e', 'E'], (function (e, t, n, i) {t[i] = q(e);}));
    var je = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
        '_'), Ne = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
        He = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), Fe = de, Re = de, ze = de;

    function Be () {
        function e (e, t) {return t.length - e.length;}

        for (var t, n, i, a, r = [], o = [], s = [], l = [], c = 0; c <
        7; c++) t = h([2e3, 1]).day(c), n = pe(this.weekdaysMin(t, '')), i = pe(
            this.weekdaysShort(t, '')), a = pe(this.weekdays(t, '')), r.push(
            n), o.push(i), s.push(a), l.push(n), l.push(i), l.push(a);
        r.sort(e), o.sort(e), s.sort(e), l.sort(
            e), this._weekdaysRegex = new RegExp('^(' + l.join('|') + ')',
            'i'), this._weekdaysShortRegex = this._weekdaysRegex, this._weekdaysMinRegex = this._weekdaysRegex, this._weekdaysStrictRegex = new RegExp(
            '^(' + s.join('|') + ')',
            'i'), this._weekdaysShortStrictRegex = new RegExp(
            '^(' + o.join('|') + ')',
            'i'), this._weekdaysMinStrictRegex = new RegExp(
            '^(' + r.join('|') + ')', 'i');
    }

    function We () {return this.hours() % 12 || 12;}

    function Ve (e, t) {
        P(e, 0, 0, (function () {
            return this.localeData().
                meridiem(this.hours(), this.minutes(), t);
        }));
    }

    function qe (e, t) {return t._meridiemParse;}

    P('H', ['HH', 2], 0, 'hour'), P('h', ['hh', 2], 0, We), P('k', ['kk', 2], 0,
        (function () {return this.hours() || 24;})), P('hmm', 0, 0,
        (function () {return '' + We.apply(this) + D(this.minutes(), 2);})), P(
        'hmmss', 0, 0, (function () {
            return '' + We.apply(this) + D(this.minutes(), 2) +
                D(this.seconds(), 2);
        })), P('Hmm', 0, 0,
        (function () {return '' + this.hours() + D(this.minutes(), 2);})), P(
        'Hmmss', 0, 0, (function () {
            return '' + this.hours() + D(this.minutes(), 2) +
                D(this.seconds(), 2);
        })), Ve('a', !0), Ve('A', !1), H('hour', 'h'), B('hour', 13), he('a',
        qe), he('A', qe), he('H', te), he('h', te), he('k', te), he('HH', te,
        K), he('hh', te, K), he('kk', te, K), he('hmm', ne), he('hmmss',
        ie), he('Hmm', ne), he('Hmmss', ie), ge(['H', 'HH'], 3), ge(['k', 'kk'],
        (function (e, t, n) {
            var i = q(e);
            t[3] = 24 === i ? 0 : i;
        })), ge(['a', 'A'], (function (e, t, n) {
        n._isPm = n._locale.isPM(e), n._meridiem = e;
    })), ge(['h', 'hh'],
        (function (e, t, n) {t[3] = q(e), f(n).bigHour = !0;})), ge('hmm',
        (function (e, t, n) {
            var i = e.length - 2;
            t[3] = q(e.substr(0, i)), t[4] = q(e.substr(i)), f(n).bigHour = !0;
        })), ge('hmmss', (function (e, t, n) {
        var i = e.length - 4, a = e.length - 2;
        t[3] = q(e.substr(0, i)), t[4] = q(e.substr(i, 2)), t[5] = q(
            e.substr(a)), f(n).bigHour = !0;
    })), ge('Hmm', (function (e, t, n) {
        var i = e.length - 2;
        t[3] = q(e.substr(0, i)), t[4] = q(e.substr(i));
    })), ge('Hmmss', (function (e, t, n) {
        var i = e.length - 4, a = e.length - 2;
        t[3] = q(e.substr(0, i)), t[4] = q(e.substr(i, 2)), t[5] = q(
            e.substr(a));
    }));
    var Ue, Xe = U('Hours', !0), $e = {
        calendar: {
            sameDay: '[Today at] LT',
            nextDay: '[Tomorrow at] LT',
            nextWeek: 'dddd [at] LT',
            lastDay: '[Yesterday at] LT',
            lastWeek: '[Last] dddd [at] LT',
            sameElse: 'L',
        },
        longDateFormat: {
            LTS: 'h:mm:ss A',
            LT: 'h:mm A',
            L: 'MM/DD/YYYY',
            LL: 'MMMM D, YYYY',
            LLL: 'MMMM D, YYYY h:mm A',
            LLLL: 'dddd, MMMM D, YYYY h:mm A',
        },
        invalidDate: 'Invalid date',
        ordinal: '%d',
        dayOfMonthOrdinalParse: /\d{1,2}/,
        relativeTime: {
            future: 'in %s',
            past: '%s ago',
            s: 'a few seconds',
            ss: '%d seconds',
            m: 'a minute',
            mm: '%d minutes',
            h: 'an hour',
            hh: '%d hours',
            d: 'a day',
            dd: '%d days',
            w: 'a week',
            ww: '%d weeks',
            M: 'a month',
            MM: '%d months',
            y: 'a year',
            yy: '%d years',
        },
        months: xe,
        monthsShort: _e,
        week: { dow: 0, doy: 6 },
        weekdays: je,
        weekdaysMin: He,
        weekdaysShort: Ne,
        meridiemParse: /[ap]\.?m?\.?/i,
    }, Ge = {}, Ze = {};

    function Ke (e) {return e ? e.toLowerCase().replace('_', '-') : e;}

    function Je (e) {
        var t;
        if (void 0 === Ge[e] && 'undefined' != typeof module && module &&
            module.exports) try {
            t = Ue._abbr, require('./locale/' + e), Qe(t);
        } catch (t) {Ge[e] = null;}
        return Ge[e];
    }

    function Qe (e, t) {
        var n;
        return e && ((n = s(t) ? tt(e) : et(e, t)) ? Ue = n : 'undefined' !=
            typeof console && console.warn && console.warn('Locale ' + e +
                ' not found. Did you forget to load it?')), Ue._abbr;
    }

    function et (e, t) {
        if (null === t) return delete Ge[e], null;
        var n, i = $e;
        if (t.abbr = e, null != Ge[e]) L('defineLocaleOverride',
            'use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'), i = Ge[e]._config; else if (null !=
            t.parentLocale) if (null !=
            Ge[t.parentLocale]) i = Ge[t.parentLocale]._config; else {
            if (null == (n = Je(t.parentLocale))) return Ze[t.parentLocale] ||
            (Ze[t.parentLocale] = []), Ze[t.parentLocale].push(
                { name: e, config: t }), null;
            i = n._config;
        }
        return Ge[e] = new A(T(i, t)), Ze[e] &&
        Ze[e].forEach((function (e) {et(e.name, e.config);})), Qe(e), Ge[e];
    }

    function tt (e) {
        var t;
        if (e && e._locale && e._locale._abbr &&
        (e = e._locale._abbr), !e) return Ue;
        if (!i(e)) {
            if (t = Je(e)) return t;
            e = [e];
        }
        return function (e) {
            for (var t, n, i, a, r = 0; r < e.length;) {
                for (t = (a = Ke(e[r]).split('-')).length, n = (n = Ke(
                    e[r + 1])) ? n.split('-') : null; 0 < t;) {
                    if (i = Je(a.slice(0, t).join('-'))) return i;
                    if (n && n.length >= t && function (e, t) {
                        for (var n = Math.min(e.length, t.length), i = 0; i <
                        n; i += 1) if (e[i] !== t[i]) return i;
                        return n;
                    }(a, n) >= t - 1) break;
                    t--;
                }
                r++;
            }
            return Ue;
        }(e);
    }

    function nt (e) {
        var t, n = e._a;
        return n && -2 === f(e).overflow &&
        (t = n[1] < 0 || 11 < n[1] ? 1 : n[2] < 1 || n[2] > be(n[0], n[1])
            ? 2
            : n[3] < 0 || 24 < n[3] || 24 === n[3] &&
            (0 !== n[4] || 0 !== n[5] || 0 !== n[6]) ? 3 : n[4] < 0 || 59 < n[4]
                ? 4
                : n[5] < 0 || 59 < n[5] ? 5 : n[6] < 0 || 999 < n[6]
                    ? 6
                    : -1, f(e)._overflowDayOfYear && (t < 0 || 2 < t) &&
        (t = 2), f(e)._overflowWeeks && -1 === t && (t = 7), f(
            e)._overflowWeekday && -1 === t && (t = 8), f(e).overflow = t), e;
    }

    var it = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
        at = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
        rt = /Z|[+-]\d\d(?::?\d\d)?/, ot = [
            ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
            ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
            ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
            ['GGGG-[W]WW', /\d{4}-W\d\d/, !1],
            ['YYYY-DDD', /\d{4}-\d{3}/],
            ['YYYY-MM', /\d{4}-\d\d/, !1],
            ['YYYYYYMMDD', /[+-]\d{10}/],
            ['YYYYMMDD', /\d{8}/],
            ['GGGG[W]WWE', /\d{4}W\d{3}/],
            ['GGGG[W]WW', /\d{4}W\d{2}/, !1],
            ['YYYYDDD', /\d{7}/],
            ['YYYYMM', /\d{6}/, !1],
            ['YYYY', /\d{4}/, !1]], st = [
            ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
            ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
            ['HH:mm:ss', /\d\d:\d\d:\d\d/],
            ['HH:mm', /\d\d:\d\d/],
            ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
            ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
            ['HHmmss', /\d\d\d\d\d\d/],
            ['HHmm', /\d\d\d\d/],
            ['HH', /\d\d/]], lt = /^\/?Date\((-?\d+)/i,
        ct = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,
        ut = {
            UT: 0,
            GMT: 0,
            EDT: -240,
            EST: -300,
            CDT: -300,
            CST: -360,
            MDT: -360,
            MST: -420,
            PDT: -420,
            PST: -480,
        };

    function dt (e) {
        var t, n, i, a, r, o, s = e._i, l = it.exec(s) || at.exec(s);
        if (l) {
            for (f(e).iso = !0, t = 0, n = ot.length; t <
            n; t++) if (ot[t][1].exec(l[1])) {
                a = ot[t][0], i = !1 !== ot[t][2];
                break;
            }
            if (null == a) return void (e._isValid = !1);
            if (l[3]) {
                for (t = 0, n = st.length; t < n; t++) if (st[t][1].exec(
                    l[3])) {
                    r = (l[2] || ' ') + st[t][0];
                    break;
                }
                if (null == r) return void (e._isValid = !1);
            }
            if (!i && null != r) return void (e._isValid = !1);
            if (l[4]) {
                if (!rt.exec(l[4])) return void (e._isValid = !1);
                o = 'Z';
            }
            e._f = a + (r || '') + (o || ''), mt(e);
        } else e._isValid = !1;
    }

    function ht (e) {
        var t, n, i, a, r = ct.exec(e._i.replace(/\([^)]*\)|[\n\t]/g, ' ').
            replace(/(\s\s+)/g, ' ').
            replace(/^\s\s*/, '').
            replace(/\s\s*$/, ''));
        if (r) {
            if (i = t = function (
                e, t, n, i, a, r) {
                var o = [
                    function (e) {
                        var t = parseInt(e, 10);
                        return t <= 49 ? 2e3 + t : t <= 999 ? 1900 + t : t;
                    }(e),
                    _e.indexOf(t),
                    parseInt(n, 10),
                    parseInt(i, 10),
                    parseInt(a, 10)];
                return r && o.push(parseInt(r, 10)), o;
            }(r[4], r[3], r[2], r[5], r[6], r[7]), a = e, (n = r[1]) &&
            Ne.indexOf(n) !== new Date(i[0], i[1], i[2]).getDay() &&
            (f(a).weekdayMismatch = !0, !void (a._isValid = !1))) return;
            e._a = t, e._tzm = function (e, t, n) {
                if (e) return ut[e];
                if (t) return 0;
                var i = parseInt(n, 10), a = i % 100;
                return (i - a) / 100 * 60 + a;
            }(r[8], r[9], r[10]), e._d = Ce.apply(null,
                e._a), e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm), f(
                e).rfc2822 = !0;
        } else e._isValid = !1;
    }

    function ft (e, t, n) {return null != e ? e : null != t ? t : n;}

    function pt (e) {
        var t, i, a, r, o, s, l, c = [];
        if (!e._d) {
            for (s = e, l = new Date(n.now()), a = s._useUTC
                ? [l.getUTCFullYear(), l.getUTCMonth(), l.getUTCDate()]
                : [l.getFullYear(), l.getMonth(), l.getDate()], e._w && null ==
            e._a[2] && null == e._a[1] && function (e) {
                var t, n, i, a, r, o, s, l, c;
                null != (t = e._w).GG || null != t.W || null != t.E
                    ? (r = 1, o = 4, n = ft(t.GG, e._a[0],
                    Ye(yt(), 1, 4).year), i = ft(t.W, 1), ((a = ft(t.E, 1)) <
                    1 || 7 < a) && (l = !0))
                    : (r = e._locale._week.dow, o = e._locale._week.doy, c = Ye(
                    yt(), r, o), n = ft(t.gg, e._a[0], c.year), i = ft(t.w,
                    c.week), null != t.d
                    ? ((a = t.d) < 0 || 6 < a) && (l = !0)
                    : null != t.e ? (a = t.e + r, (t.e < 0 || 6 < t.e) &&
                    (l = !0)) : a = r), i < 1 || i > Pe(n, r, o) ? f(
                    e)._overflowWeeks = !0 : null != l ? f(
                    e)._overflowWeekday = !0 : (s = Oe(n, i, a, r,
                    o), e._a[0] = s.year, e._dayOfYear = s.dayOfYear);
            }(e), null != e._dayOfYear &&
            (o = ft(e._a[0], a[0]), (e._dayOfYear > Ae(o) || 0 ===
                e._dayOfYear) && (f(e)._overflowDayOfYear = !0), i = Ce(o, 0,
                e._dayOfYear), e._a[1] = i.getUTCMonth(), e._a[2] = i.getUTCDate()), t = 0; t <
                 3 && null == e._a[t]; ++t) e._a[t] = c[t] = a[t];
            for (; t < 7; t++) e._a[t] = c[t] = null == e._a[t] ? 2 === t
                ? 1
                : 0 : e._a[t];
            24 === e._a[3] && 0 === e._a[4] && 0 === e._a[5] && 0 === e._a[6] &&
            (e._nextDay = !0, e._a[3] = 0), e._d = (e._useUTC
                ? Ce
                : function (e, t, n, i, a, r, o) {
                    var s;
                    return e < 100 && 0 <= e
                        ? (s = new Date(e + 400, t, n, i, a, r, o), isFinite(
                            s.getFullYear()) && s.setFullYear(e))
                        : s = new Date(e, t, n, i, a, r, o), s;
                }).apply(null, c), r = e._useUTC
                ? e._d.getUTCDay()
                : e._d.getDay(), null != e._tzm &&
            e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm), e._nextDay &&
            (e._a[3] = 24), e._w && void 0 !== e._w.d && e._w.d !== r &&
            (f(e).weekdayMismatch = !0);
        }
    }

    function mt (e) {
        if (e._f !== n.ISO_8601) if (e._f !== n.RFC_2822) {
            e._a = [], f(e).empty = !0;
            for (var t, i, a, o, s, l, c, u = '' +
                e._i, d = u.length, h = 0, p = j(e._f, e._locale).match(C) ||
                [], m = 0; m < p.length; m++) i = p[m], (t = (u.match(
                fe(i, e)) || [])[0]) &&
            (0 < (a = u.substr(0, u.indexOf(t))).length &&
            f(e).unusedInput.push(a), u = u.slice(
                u.indexOf(t) + t.length), h += t.length), Y[i] ? (t ? f(
                e).empty = !1 : f(e).unusedTokens.push(i), s = i, c = e, null !=
            (l = t) && r(me, s) && me[s](l, c._a, c, s)) : e._strict && !t &&
                f(e).unusedTokens.push(i);
            f(e).charsLeftOver = d - h, 0 < u.length &&
            f(e).unusedInput.push(u), e._a[3] <= 12 && !0 === f(e).bigHour &&
            0 < e._a[3] && (f(e).bigHour = void 0), f(
                e).parsedDateParts = e._a.slice(0), f(
                e).meridiem = e._meridiem, e._a[3] = function (
                e, t, n) {
                var i;
                return null == n ? t : null != e.meridiemHour
                    ? e.meridiemHour(t, n)
                    : (null != e.isPM &&
                    ((i = e.isPM(n)) && t < 12 && (t += 12), i || 12 !== t ||
                    (t = 0)), t);
            }(e._locale, e._a[3], e._meridiem), null !== (o = f(e).era) &&
            (e._a[0] = e._locale.erasConvertYear(o, e._a[0])), pt(e), nt(e);
        } else ht(e); else dt(e);
    }

    function gt (e) {
        var t, r, o = e._i, h = e._f;
        return e._locale = e._locale || tt(e._l), null === o || void 0 === h &&
        '' === o ? m({ nullInput: !0 }) : ('string' == typeof o &&
        (e._i = o = e._locale.preparse(o)), x(o) ? new b(nt(o)) : (c(o)
            ? e._d = o
            : i(h) ? function (e) {
                var t, n, i, a, r, o, s = !1;
                if (0 === e._f.length) return f(
                    e).invalidFormat = !0, e._d = new Date(NaN);
                for (a = 0; a < e._f.length; a++) r = 0, o = !1, t = y({},
                    e), null != e._useUTC &&
                (t._useUTC = e._useUTC), t._f = e._f[a], mt(t), p(t) &&
                (o = !0), r += f(t).charsLeftOver, r += 10 *
                    f(t).unusedTokens.length, f(t).score = r, s ? r < i &&
                    (i = r, n = t) : (null == i || r < i || o) &&
                    (i = r, n = t, o && (s = !0));
                d(e, n || t);
            }(e) : h ? mt(e) : s(r = (t = e)._i) ? t._d = new Date(n.now()) : c(
                r) ? t._d = new Date(r.valueOf()) : 'string' == typeof r
                ? function (e) {
                    var t = lt.exec(e._i);
                    null === t ? (dt(e), !1 === e._isValid &&
                    (delete e._isValid, ht(e), !1 === e._isValid &&
                    (delete e._isValid, e._strict
                        ? e._isValid = !1
                        : n.createFromInputFallback(e)))) : e._d = new Date(
                        +t[1]);
                }(t)
                : i(r) ? (t._a = u(r.slice(0),
                    (function (e) {return parseInt(e, 10);})), pt(t)) : a(r)
                    ? function (e) {
                        var t, n;
                        e._d || (n = void 0 === (t = R(e._i)).day
                            ? t.date
                            : t.day, e._a = u([
                                t.year,
                                t.month,
                                n,
                                t.hour,
                                t.minute,
                                t.second,
                                t.millisecond],
                            (function (e) {return e && parseInt(e, 10);})), pt(
                            e));
                    }(t)
                    : l(r) ? t._d = new Date(r) : n.createFromInputFallback(
                        t), p(e) || (e._d = null), e));
    }

    function vt (e, t, n, r, s) {
        var l, c = {};
        return !0 !== t && !1 !== t || (r = t, t = void 0), !0 !== n && !1 !==
        n || (r = n, n = void 0), (a(e) && o(e) || i(e) && 0 === e.length) &&
        (e = void 0), c._isAMomentObject = !0, c._useUTC = c._isUTC = s, c._l = n, c._i = e, c._f = t, c._strict = r, (l = new b(
            nt(gt(c))))._nextDay && (l.add(1, 'd'), l._nextDay = void 0), l;
    }

    function yt (e, t, n, i) {return vt(e, t, n, i, !1);}

    n.createFromInputFallback = w(
        'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',
        (function (e) {
            e._d = new Date(e._i + (e._useUTC ? ' UTC' : ''));
        })), n.ISO_8601 = function () {}, n.RFC_2822 = function () {};
    var bt = w(
        'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
        (function () {
            var e = yt.apply(null, arguments);
            return this.isValid() && e.isValid() ? e < this ? this : e : m();
        })), xt = w(
        'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
        (function () {
            var e = yt.apply(null, arguments);
            return this.isValid() && e.isValid() ? this < e ? this : e : m();
        }));

    function _t (e, t) {
        var n, a;
        if (1 === t.length && i(t[0]) && (t = t[0]), !t.length) return yt();
        for (n = t[0], a = 1; a < t.length; ++a) t[a].isValid() &&
        !t[a][e](n) || (n = t[a]);
        return n;
    }

    var wt = [
        'year',
        'quarter',
        'month',
        'week',
        'day',
        'hour',
        'minute',
        'second',
        'millisecond'];

    function kt (e) {
        var t = R(e), n = t.year || 0, i = t.quarter || 0, a = t.month || 0,
            o = t.week || t.isoWeek || 0, s = t.day || 0, l = t.hour || 0,
            c = t.minute || 0, u = t.second || 0, d = t.millisecond || 0;
        this._isValid = function (e) {
            var t, n, i = !1;
            for (t in e) if (r(e, t) &&
                (-1 === ye.call(wt, t) || null != e[t] &&
                    isNaN(e[t]))) return !1;
            for (n = 0; n < wt.length; ++n) if (e[wt[n]]) {
                if (i) return !1;
                parseFloat(e[wt[n]]) !== q(e[wt[n]]) && (i = !0);
            }
            return !0;
        }(t), this._milliseconds = +d + 1e3 * u + 6e4 * c + 1e3 * l * 60 *
            60, this._days = +s + 7 * o, this._months = +a + 3 * i + 12 *
            n, this._data = {}, this._locale = tt(), this._bubble();
    }

    function Mt (e) {return e instanceof kt;}

    function Lt (e) {return e < 0 ? -1 * Math.round(-1 * e) : Math.round(e);}

    function St (e, t) {
        P(e, 0, 0, (function () {
            var e = this.utcOffset(), n = '+';
            return e < 0 && (e = -e, n = '-'), n + D(~~(e / 60), 2) + t +
            D(~~e % 60, 2);
        }));
    }

    St('Z', ':'), St('ZZ', ''), he('Z', ue), he('ZZ', ue), ge(['Z', 'ZZ'],
        (function (e, t, n) {n._useUTC = !0, n._tzm = At(ue, e);}));
    var Tt = /([\+\-]|\d\d)/gi;

    function At (e, t) {
        var n, i, a = (t || '').match(e);
        return null === a ? null : 0 === (i = 60 *
            (n = ((a[a.length - 1] || []) + '').match(Tt) || ['-', 0, 0])[1] +
            q(n[2])) ? 0 : '+' === n[0] ? i : -i;
    }

    function Dt (e, t) {
        var i, a;
        return t._isUTC ? (i = t.clone(), a = (x(e) || c(e) ? e.valueOf() : yt(
            e).valueOf()) - i.valueOf(), i._d.setTime(
            i._d.valueOf() + a), n.updateOffset(i, !1), i) : yt(e).local();
    }

    function Ct (e) {return -Math.round(e._d.getTimezoneOffset());}

    function Et () {
        return !!this.isValid() && this._isUTC && 0 === this._offset;
    }

    n.updateOffset = function () {};
    var Ot = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,
        Yt = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;

    function Pt (e, t) {
        var n, i, a, o = e, s = null;
        return Mt(e)
            ? o = { ms: e._milliseconds, d: e._days, M: e._months }
            : l(e) || !isNaN(+e)
                ? (o = {}, t ? o[t] = +e : o.milliseconds = +e)
                : (s = Ot.exec(e)) ? (n = '-' === s[1] ? -1 : 1, o = {
                    y: 0,
                    d: q(s[2]) * n,
                    h: q(s[3]) * n,
                    m: q(s[4]) * n,
                    s: q(s[5]) * n,
                    ms: q(Lt(1e3 * s[6])) * n,
                }) : (s = Yt.exec(e)) ? (n = '-' === s[1] ? -1 : 1, o = {
                    y: It(s[2], n),
                    M: It(s[3], n),
                    w: It(s[4], n),
                    d: It(s[5], n),
                    h: It(s[6], n),
                    m: It(s[7], n),
                    s: It(s[8], n),
                }) : null == o ? o = {} : 'object' == typeof o &&
                    ('from' in o || 'to' in o) && (a = function (e, t) {
                        var n;
                        return e.isValid() && t.isValid()
                            ? (t = Dt(t, e), e.isBefore(t)
                                ? n = jt(e, t)
                                : ((n = jt(t,
                                    e)).milliseconds = -n.milliseconds, n.months = -n.months), n)
                            : { milliseconds: 0, months: 0 };
                    }(yt(o.from),
                        yt(o.to)), (o = {}).ms = a.milliseconds, o.M = a.months), i = new kt(
            o), Mt(e) && r(e, '_locale') && (i._locale = e._locale), Mt(e) &&
        r(e, '_isValid') && (i._isValid = e._isValid), i;
    }

    function It (e, t) {
        var n = e && parseFloat(e.replace(',', '.'));
        return (isNaN(n) ? 0 : n) * t;
    }

    function jt (e, t) {
        var n = {};
        return n.months = t.month() - e.month() + 12 *
            (t.year() - e.year()), e.clone().add(n.months, 'M').isAfter(t) &&
        --n.months, n.milliseconds = t - e.clone().add(n.months, 'M'), n;
    }

    function Nt (e, t) {
        return function (n, i) {
            var a;
            return null === i || isNaN(+i) || (L(t, 'moment().' + t +
                '(period, number) is deprecated. Please use moment().' + t +
                '(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'), a = n, n = i, i = a), Ht(
                this, Pt(n, i), e), this;
        };
    }

    function Ht (e, t, i, a) {
        var r = t._milliseconds, o = Lt(t._days), s = Lt(t._months);
        e.isValid() &&
        (a = null == a || a, s && Le(e, X(e, 'Month') + s * i), o &&
        $(e, 'Date', X(e, 'Date') + o * i), r &&
        e._d.setTime(e._d.valueOf() + r * i), a && n.updateOffset(e, o || s));
    }

    Pt.fn = kt.prototype, Pt.invalid = function () {return Pt(NaN);};
    var Ft = Nt(1, 'add'), Rt = Nt(-1, 'subtract');

    function zt (e) {return 'string' == typeof e || e instanceof String;}

    function Bt (e) {
        return x(e) || c(e) || zt(e) || l(e) || function (e) {
            var t = i(e), n = !1;
            return t && (n = 0 ===
                e.filter((function (t) {return !l(t) && zt(e);})).length), t &&
            n;
        }(e) || function (e) {
            var t, n = a(e) && !o(e), i = !1, s = [
                'years',
                'year',
                'y',
                'months',
                'month',
                'M',
                'days',
                'day',
                'd',
                'dates',
                'date',
                'D',
                'hours',
                'hour',
                'h',
                'minutes',
                'minute',
                'm',
                'seconds',
                'second',
                's',
                'milliseconds',
                'millisecond',
                'ms'];
            for (t = 0; t < s.length; t += 1) i = i || r(e, s[t]);
            return n && i;
        }(e) || null == e;
    }

    function Wt (e, t) {
        if (e.date() < t.date()) return -Wt(t, e);
        var n = 12 * (t.year() - e.year()) + (t.month() - e.month()),
            i = e.clone().add(n, 'months');
        return -(n +
            (t - i < 0 ? (t - i) / (i - e.clone().add(n - 1, 'months')) : (t -
                i) / (e.clone().add(1 + n, 'months') - i))) || 0;
    }

    function Vt (e) {
        var t;
        return void 0 === e ? this._locale._abbr : (null != (t = tt(e)) &&
        (this._locale = t), this);
    }

    n.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ', n.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';
    var qt = w(
        'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
        (function (e) {
            return void 0 === e ? this.localeData() : this.locale(e);
        }));

    function Ut () {return this._locale;}

    var Xt = 126227808e5;

    function $t (e, t) {return (e % t + t) % t;}

    function Gt (e, t, n) {
        return e < 100 && 0 <= e ? new Date(e + 400, t, n) - Xt : new Date(e, t,
            n).valueOf();
    }

    function Zt (e, t, n) {
        return e < 100 && 0 <= e ? Date.UTC(e + 400, t, n) - Xt : Date.UTC(e, t,
            n);
    }

    function Kt (e, t) {return t.erasAbbrRegex(e);}

    function Jt () {
        for (var e = [], t = [], n = [], i = [], a = this.eras(), r = 0, o = a.length; r <
        o; ++r) t.push(pe(a[r].name)), e.push(pe(a[r].abbr)), n.push(
            pe(a[r].narrow)), i.push(pe(a[r].name)), i.push(
            pe(a[r].abbr)), i.push(pe(a[r].narrow));
        this._erasRegex = new RegExp('^(' + i.join('|') + ')',
            'i'), this._erasNameRegex = new RegExp('^(' + t.join('|') + ')',
            'i'), this._erasAbbrRegex = new RegExp('^(' + e.join('|') + ')',
            'i'), this._erasNarrowRegex = new RegExp('^(' + n.join('|') + ')',
            'i');
    }

    function Qt (e, t) {P(0, [e, e.length], 0, t);}

    function en (e, t, n, i, a) {
        var r;
        return null == e ? Ye(this, i, a).year : ((r = Pe(e, i, a)) < t &&
        (t = r), function (e, t, n, i, a) {
            var r = Oe(e, t, n, i, a), o = Ce(r.year, 0, r.dayOfYear);
            return this.year(o.getUTCFullYear()), this.month(
                o.getUTCMonth()), this.date(o.getUTCDate()), this;
        }.call(this, e, t, n, i, a));
    }

    P('N', 0, 0, 'eraAbbr'), P('NN', 0, 0, 'eraAbbr'), P('NNN', 0, 0,
        'eraAbbr'), P('NNNN', 0, 0, 'eraName'), P('NNNNN', 0, 0,
        'eraNarrow'), P('y', ['y', 1], 'yo', 'eraYear'), P('y', ['yy', 2], 0,
        'eraYear'), P('y', ['yyy', 3], 0, 'eraYear'), P('y', ['yyyy', 4], 0,
        'eraYear'), he('N', Kt), he('NN', Kt), he('NNN', Kt), he('NNNN',
        (function (e, t) {return t.erasNameRegex(e);})), he('NNNNN',
        (function (e, t) {return t.erasNarrowRegex(e);})), ge(
        ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], (function (e, t, n, i) {
            var a = n._locale.erasParse(e, i, n._strict);
            a ? f(n).era = a : f(n).invalidEra = e;
        })), he('y', se), he('yy', se), he('yyy', se), he('yyyy', se), he('yo',
        (function (e, t) {return t._eraYearOrdinalRegex || se;})), ge(
        ['y', 'yy', 'yyy', 'yyyy'], 0), ge(['yo'], (function (e, t, n, i) {
        var a;
        n._locale._eraYearOrdinalRegex && (a = e.match(
            n._locale._eraYearOrdinalRegex)), n._locale.eraYearOrdinalParse
            ? t[0] = n._locale.eraYearOrdinalParse(e, a)
            : t[0] = parseInt(e, 10);
    })), P(0, ['gg', 2], 0, (function () {return this.weekYear() % 100;})), P(0,
        ['GG', 2], 0, (function () {return this.isoWeekYear() % 100;})), Qt(
        'gggg', 'weekYear'), Qt('ggggg', 'weekYear'), Qt('GGGG',
        'isoWeekYear'), Qt('GGGGG', 'isoWeekYear'), H('weekYear', 'gg'), H(
        'isoWeekYear', 'GG'), B('weekYear', 1), B('isoWeekYear', 1), he('G',
        le), he('g', le), he('GG', te, K), he('gg', te, K), he('GGGG', re,
        Q), he('gggg', re, Q), he('GGGGG', oe, ee), he('ggggg', oe, ee), ve(
        ['gggg', 'ggggg', 'GGGG', 'GGGGG'],
        (function (e, t, n, i) {t[i.substr(0, 2)] = q(e);})), ve(['gg', 'GG'],
        (function (e, t, i, a) {t[a] = n.parseTwoDigitYear(e);})), P('Q', 0,
        'Qo', 'quarter'), H('quarter', 'Q'), B('quarter', 7), he('Q', Z), ge(
        'Q', (function (e, t) {t[1] = 3 * (q(e) - 1);})), P('D', ['DD', 2],
        'Do',
        'date'), H('date', 'D'), B('date', 9), he('D', te), he('DD', te, K), he(
        'Do', (function (e, t) {
            return e
                ? t._dayOfMonthOrdinalParse || t._ordinalParse
                : t._dayOfMonthOrdinalParseLenient;
        })), ge(['D', 'DD'], 2), ge('Do',
        (function (e, t) {t[2] = q(e.match(te)[0]);}));
    var tn = U('Date', !0);
    P('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'), H('dayOfYear', 'DDD'), B(
        'dayOfYear', 4), he('DDD', ae), he('DDDD', J), ge(['DDD', 'DDDD'],
        (function (e, t, n) {n._dayOfYear = q(e);})), P('m', ['mm', 2], 0,
        'minute'), H('minute', 'm'), B('minute', 14), he('m', te), he('mm', te,
        K), ge(['m', 'mm'], 4);
    var nn = U('Minutes', !1);
    P('s', ['ss', 2], 0, 'second'), H('second', 's'), B('second', 15), he('s',
        te), he('ss', te, K), ge(['s', 'ss'], 5);
    var an, rn, on = U('Seconds', !1);
    for (P('S', 0, 0, (function () {return ~~(this.millisecond() / 100);})), P(
        0,
        ['SS', 2], 0, (function () {return ~~(this.millisecond() / 10);})), P(0,
        ['SSS', 3], 0, 'millisecond'), P(0, ['SSSS', 4], 0,
        (function () {return 10 * this.millisecond();})), P(0, ['SSSSS', 5], 0,
        (function () {return 100 * this.millisecond();})), P(0, ['SSSSSS', 6],
        0,
        (function () {return 1e3 * this.millisecond();})), P(0, ['SSSSSSS', 7],
        0, (function () {return 1e4 * this.millisecond();})), P(0,
        ['SSSSSSSS', 8], 0,
        (function () {return 1e5 * this.millisecond();})), P(
        0, ['SSSSSSSSS', 9], 0,
        (function () {return 1e6 * this.millisecond();})), H('millisecond',
        'ms'), B('millisecond', 16), he('S', ae, Z), he('SS', ae, K), he('SSS',
        ae, J), an = 'SSSS'; an.length <= 9; an += 'S') he(an, se);

    function sn (e, t) {t[6] = q(1e3 * ('0.' + e));}

    for (an = 'S'; an.length <= 9; an += 'S') ge(an, sn);
    rn = U('Milliseconds', !1), P('z', 0, 0, 'zoneAbbr'), P('zz', 0, 0,
        'zoneName');
    var ln = b.prototype;

    function cn (e) {return e;}

    ln.add = Ft, ln.calendar = function (e, t) {
        1 === arguments.length && (arguments[0] ? Bt(arguments[0])
            ? (e = arguments[0], t = void 0)
            : function (e) {
            for (var t = a(e) && !o(e), n = !1, i = [
                'sameDay',
                'nextDay',
                'lastDay',
                'nextWeek',
                'lastWeek',
                'sameElse'], s = 0; s < i.length; s += 1) n = n || r(e, i[s]);
            return t && n;
        }(arguments[0]) && (t = arguments[0], e = void 0) : t = e = void 0);
        var i = e || yt(), s = Dt(i, this).startOf('day'),
            l = n.calendarFormat(this, s) || 'sameElse',
            c = t && (S(t[l]) ? t[l].call(this, i) : t[l]);
        return this.format(c || this.localeData().calendar(l, this, yt(i)));
    }, ln.clone = function () {return new b(this);}, ln.diff = function (
        e, t, n) {
        var i, a, r;
        if (!this.isValid()) return NaN;
        if (!(i = Dt(e, this)).isValid()) return NaN;
        switch (a = 6e4 * (i.utcOffset() - this.utcOffset()), t = F(t)) {
            case'year':
                r = Wt(this, i) / 12;
                break;
            case'month':
                r = Wt(this, i);
                break;
            case'quarter':
                r = Wt(this, i) / 3;
                break;
            case'second':
                r = (this - i) / 1e3;
                break;
            case'minute':
                r = (this - i) / 6e4;
                break;
            case'hour':
                r = (this - i) / 36e5;
                break;
            case'day':
                r = (this - i - a) / 864e5;
                break;
            case'week':
                r = (this - i - a) / 6048e5;
                break;
            default:
                r = this - i;
        }
        return n ? r : V(r);
    }, ln.endOf = function (e) {
        var t, i;
        if (void 0 === (e = F(e)) || 'millisecond' === e ||
            !this.isValid()) return this;
        switch (i = this._isUTC ? Zt : Gt, e) {
            case'year':
                t = i(this.year() + 1, 0, 1) - 1;
                break;
            case'quarter':
                t = i(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;
                break;
            case'month':
                t = i(this.year(), this.month() + 1, 1) - 1;
                break;
            case'week':
                t = i(this.year(), this.month(),
                    this.date() - this.weekday() + 7) - 1;
                break;
            case'isoWeek':
                t = i(this.year(), this.month(),
                    this.date() - (this.isoWeekday() - 1) + 7) - 1;
                break;
            case'day':
            case'date':
                t = i(this.year(), this.month(), this.date() + 1) - 1;
                break;
            case'hour':
                t = this._d.valueOf(), t += 36e5 -
                    $t(t + (this._isUTC ? 0 : 6e4 * this.utcOffset()), 36e5) -
                    1;
                break;
            case'minute':
                t = this._d.valueOf(), t += 6e4 - $t(t, 6e4) - 1;
                break;
            case'second':
                t = this._d.valueOf(), t += 1e3 - $t(t, 1e3) - 1;
        }
        return this._d.setTime(t), n.updateOffset(this, !0), this;
    }, ln.format = function (e) {
        var t = I(this,
            e = e || (this.isUtc() ? n.defaultFormatUtc : n.defaultFormat));
        return this.localeData().postformat(t);
    }, ln.from = function (e, t) {
        return this.isValid() && (x(e) && e.isValid() || yt(e).isValid()) ? Pt(
            { to: this, from: e }).
            locale(this.locale()).
            humanize(!t) : this.localeData().invalidDate();
    }, ln.fromNow = function (e) {
        return this.from(yt(), e);
    }, ln.to = function (e, t) {
        return this.isValid() && (x(e) && e.isValid() || yt(e).isValid()) ? Pt(
            { from: this, to: e }).
            locale(this.locale()).
            humanize(!t) : this.localeData().invalidDate();
    }, ln.toNow = function (e) {
        return this.to(yt(), e);
    }, ln.get = function (e) {
        return S(this[e = F(e)])
            ? this[e]()
            : this;
    }, ln.invalidAt = function () {
        return f(this).overflow;
    }, ln.isAfter = function (e, t) {
        var n = x(e) ? e : yt(e);
        return !(!this.isValid() || !n.isValid()) &&
            ('millisecond' === (t = F(t) || 'millisecond') ? this.valueOf() >
                n.valueOf() : n.valueOf() < this.clone().startOf(t).valueOf());
    }, ln.isBefore = function (e, t) {
        var n = x(e) ? e : yt(e);
        return !(!this.isValid() || !n.isValid()) &&
            ('millisecond' === (t = F(t) || 'millisecond') ? this.valueOf() <
                n.valueOf() : this.clone().endOf(t).valueOf() < n.valueOf());
    }, ln.isBetween = function (e, t, n, i) {
        var a = x(e) ? e : yt(e), r = x(t) ? t : yt(t);
        return !!(this.isValid() && a.isValid() && r.isValid()) &&
            ('(' === (i = i || '()')[0] ? this.isAfter(a, n) : !this.isBefore(a,
                n)) &&
            (')' === i[1] ? this.isBefore(r, n) : !this.isAfter(r, n));
    }, ln.isSame = function (e, t) {
        var n, i = x(e) ? e : yt(e);
        return !(!this.isValid() || !i.isValid()) &&
            ('millisecond' === (t = F(t) || 'millisecond') ? this.valueOf() ===
                i.valueOf() : (n = i.valueOf(), this.clone().
                startOf(t).
                valueOf() <= n && n <= this.clone().endOf(t).valueOf()));
    }, ln.isSameOrAfter = function (e, t) {
        return this.isSame(e, t) || this.isAfter(e, t);
    }, ln.isSameOrBefore = function (e, t) {
        return this.isSame(e, t) || this.isBefore(e, t);
    }, ln.isValid = function () {
        return p(this);
    }, ln.lang = qt, ln.locale = Vt, ln.localeData = Ut, ln.max = xt, ln.min = bt, ln.parsingFlags = function () {
        return d({}, f(this));
    }, ln.set = function (e, t) {
        if ('object' == typeof e) for (var n = function (e) {
            var t, n = [];
            for (t in e) r(e, t) && n.push({ unit: t, priority: z[t] });
            return n.sort(
                (function (e, t) {return e.priority - t.priority;})), n;
        }(e = R(e)), i = 0; i < n.length; i++) this[n[i].unit](
            e[n[i].unit]); else if (S(this[e = F(e)])) return this[e](t);
        return this;
    }, ln.startOf = function (e) {
        var t, i;
        if (void 0 === (e = F(e)) || 'millisecond' === e ||
            !this.isValid()) return this;
        switch (i = this._isUTC ? Zt : Gt, e) {
            case'year':
                t = i(this.year(), 0, 1);
                break;
            case'quarter':
                t = i(this.year(), this.month() - this.month() % 3, 1);
                break;
            case'month':
                t = i(this.year(), this.month(), 1);
                break;
            case'week':
                t = i(this.year(), this.month(), this.date() - this.weekday());
                break;
            case'isoWeek':
                t = i(this.year(), this.month(),
                    this.date() - (this.isoWeekday() - 1));
                break;
            case'day':
            case'date':
                t = i(this.year(), this.month(), this.date());
                break;
            case'hour':
                t = this._d.valueOf(), t -= $t(
                    t + (this._isUTC ? 0 : 6e4 * this.utcOffset()), 36e5);
                break;
            case'minute':
                t = this._d.valueOf(), t -= $t(t, 6e4);
                break;
            case'second':
                t = this._d.valueOf(), t -= $t(t, 1e3);
        }
        return this._d.setTime(t), n.updateOffset(this, !0), this;
    }, ln.subtract = Rt, ln.toArray = function () {
        var e = this;
        return [
            e.year(),
            e.month(),
            e.date(),
            e.hour(),
            e.minute(),
            e.second(),
            e.millisecond()];
    }, ln.toObject = function () {
        var e = this;
        return {
            years: e.year(),
            months: e.month(),
            date: e.date(),
            hours: e.hours(),
            minutes: e.minutes(),
            seconds: e.seconds(),
            milliseconds: e.milliseconds(),
        };
    }, ln.toDate = function () {
        return new Date(this.valueOf());
    }, ln.toISOString = function (e) {
        if (!this.isValid()) return null;
        var t = !0 !== e, n = t ? this.clone().utc() : this;
        return n.year() < 0 || 9999 < n.year() ? I(n, t
            ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'
            : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ') : S(Date.prototype.toISOString)
            ? t ? this.toDate().toISOString() : new Date(
                this.valueOf() + 60 * this.utcOffset() * 1e3).toISOString().
                replace('Z', I(n, 'Z'))
            : I(n, t
                ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'
                : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');
    }, ln.inspect = function () {
        if (!this.isValid()) return 'moment.invalid(/* ' + this._i + ' */)';
        var e, t, n, i = 'moment', a = '';
        return this.isLocal() || (i = 0 === this.utcOffset()
            ? 'moment.utc'
            : 'moment.parseZone', a = 'Z'), e = '[' + i + '("]', t = 0 <=
        this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY', n = a +
            '[")]', this.format(e + t + '-MM-DD[T]HH:mm:ss.SSS' + n);
    }, 'undefined' != typeof Symbol && null != Symbol.for && (ln[Symbol.for(
        'nodejs.util.inspect.custom')] = function () {
        return 'Moment<' + this.format() + '>';
    }), ln.toJSON = function () {
        return this.isValid()
            ? this.toISOString()
            : null;
    }, ln.toString = function () {
        return this.clone().
            locale('en').
            format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
    }, ln.unix = function () {
        return Math.floor(this.valueOf() / 1e3);
    }, ln.valueOf = function () {
        return this._d.valueOf() - 6e4 * (this._offset || 0);
    }, ln.creationData = function () {
        return {
            input: this._i,
            format: this._f,
            locale: this._locale,
            isUTC: this._isUTC,
            strict: this._strict,
        };
    }, ln.eraName = function () {
        for (var e, t = this.localeData().
            eras(), n = 0, i = t.length; n < i; ++n) {
            if (e = this.clone().
                startOf('day').
                valueOf(), t[n].since <= e && e <= t[n].until) return t[n].name;
            if (t[n].until <= e && e <= t[n].since) return t[n].name;
        }
        return '';
    }, ln.eraNarrow = function () {
        for (var e, t = this.localeData().
            eras(), n = 0, i = t.length; n < i; ++n) {
            if (e = this.clone().
                startOf('day').
                valueOf(), t[n].since <= e && e <=
            t[n].until) return t[n].narrow;
            if (t[n].until <= e && e <= t[n].since) return t[n].narrow;
        }
        return '';
    }, ln.eraAbbr = function () {
        for (var e, t = this.localeData().
            eras(), n = 0, i = t.length; n < i; ++n) {
            if (e = this.clone().
                startOf('day').
                valueOf(), t[n].since <= e && e <= t[n].until) return t[n].abbr;
            if (t[n].until <= e && e <= t[n].since) return t[n].abbr;
        }
        return '';
    }, ln.eraYear = function () {
        for (var e, t, i = this.localeData().
            eras(), a = 0, r = i.length; a < r; ++a) if (e = i[a].since <=
        i[a].until ? 1 : -1, t = this.clone().
            startOf('day').
            valueOf(), i[a].since <= t && t <= i[a].until || i[a].until <= t &&
        t <= i[a].since) return (this.year() - n(i[a].since).year()) * e +
            i[a].offset;
        return this.year();
    }, ln.year = De, ln.isLeapYear = function () {
        return W(this.year());
    }, ln.weekYear = function (e) {
        return en.call(this, e, this.week(), this.weekday(),
            this.localeData()._week.dow, this.localeData()._week.doy);
    }, ln.isoWeekYear = function (e) {
        return en.call(this, e, this.isoWeek(), this.isoWeekday(), 1, 4);
    }, ln.quarter = ln.quarters = function (e) {
        return null == e ? Math.ceil((this.month() + 1) / 3) : this.month(
            3 * (e - 1) + this.month() % 3);
    }, ln.month = Se, ln.daysInMonth = function () {
        return be(this.year(), this.month());
    }, ln.week = ln.weeks = function (e) {
        var t = this.localeData().week(this);
        return null == e ? t : this.add(7 * (e - t), 'd');
    }, ln.isoWeek = ln.isoWeeks = function (e) {
        var t = Ye(this, 1, 4).week;
        return null == e ? t : this.add(7 * (e - t), 'd');
    }, ln.weeksInYear = function () {
        var e = this.localeData()._week;
        return Pe(this.year(), e.dow, e.doy);
    }, ln.weeksInWeekYear = function () {
        var e = this.localeData()._week;
        return Pe(this.weekYear(), e.dow, e.doy);
    }, ln.isoWeeksInYear = function () {
        return Pe(this.year(), 1, 4);
    }, ln.isoWeeksInISOWeekYear = function () {
        return Pe(this.isoWeekYear(), 1, 4);
    }, ln.date = tn, ln.day = ln.days = function (e) {
        if (!this.isValid()) return null != e ? this : NaN;
        var t, n, i = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
        return null != e ? (t = e, n = this.localeData(), e = 'string' !=
        typeof t ? t : isNaN(t) ? 'number' == typeof (t = n.weekdaysParse(t))
            ? t
            : null : parseInt(t, 10), this.add(e - i, 'd')) : i;
    }, ln.weekday = function (e) {
        if (!this.isValid()) return null != e
            ? this
            : NaN;
        var t = (this.day() + 7 - this.localeData()._week.dow) % 7;
        return null == e ? t : this.add(e - t, 'd');
    }, ln.isoWeekday = function (e) {
        if (!this.isValid()) return null != e
            ? this
            : NaN;
        if (null == e) return this.day() || 7;
        var t, n, i = (t = e, n = this.localeData(), 'string' == typeof t
            ? n.weekdaysParse(t) % 7 || 7
            : isNaN(t) ? null : t);
        return this.day(this.day() % 7 ? i : i - 7);
    }, ln.dayOfYear = function (e) {
        var t = Math.round(
            (this.clone().startOf('day') - this.clone().startOf('year')) /
            864e5) + 1;
        return null == e ? t : this.add(e - t, 'd');
    }, ln.hour = ln.hours = Xe, ln.minute = ln.minutes = nn, ln.second = ln.seconds = on, ln.millisecond = ln.milliseconds = rn, ln.utcOffset = function (
        e, t, i) {
        var a, r = this._offset || 0;
        if (!this.isValid()) return null != e ? this : NaN;
        if (null == e) return this._isUTC ? r : Ct(this);
        if ('string' == typeof e) {
            if (null === (e = At(ue, e))) return this;
        } else Math.abs(e) < 16 && !i && (e *= 60);
        return !this._isUTC && t &&
        (a = Ct(this)), this._offset = e, this._isUTC = !0, null != a &&
        this.add(a, 'm'), r !== e && (!t || this._changeInProgress
            ? Ht(this, Pt(e - r, 'm'), 1, !1)
            : this._changeInProgress ||
            (this._changeInProgress = !0, n.updateOffset(this,
                !0), this._changeInProgress = null)), this;
    }, ln.utc = function (e) {
        return this.utcOffset(0, e);
    }, ln.local = function (e) {
        return this._isUTC && (this.utcOffset(0, e), this._isUTC = !1, e &&
        this.subtract(Ct(this), 'm')), this;
    }, ln.parseZone = function () {
        var e;
        return null != this._tzm
            ? this.utcOffset(this._tzm, !1, !0)
            : 'string' == typeof this._i &&
            (null != (e = At(ce, this._i)) ? this.utcOffset(e) : this.utcOffset(
                0, !0)), this;
    }, ln.hasAlignedHourOffset = function (e) {
        return !!this.isValid() &&
            (e = e ? yt(e).utcOffset() : 0, (this.utcOffset() - e) % 60 == 0);
    }, ln.isDST = function () {
        return this.utcOffset() > this.clone().month(0).utcOffset() ||
            this.utcOffset() > this.clone().month(5).utcOffset();
    }, ln.isLocal = function () {
        return !!this.isValid() && !this._isUTC;
    }, ln.isUtcOffset = function () {
        return !!this.isValid() && this._isUTC;
    }, ln.isUtc = Et, ln.isUTC = Et, ln.zoneAbbr = function () {
        return this._isUTC
            ? 'UTC'
            : '';
    }, ln.zoneName = function () {
        return this._isUTC
            ? 'Coordinated Universal Time'
            : '';
    }, ln.dates = w('dates accessor is deprecated. Use date instead.',
        tn), ln.months = w('months accessor is deprecated. Use month instead',
        Se), ln.years = w('years accessor is deprecated. Use year instead',
        De), ln.zone = w(
        'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',
        (function (e, t) {
            return null != e ? ('string' != typeof e &&
            (e = -e), this.utcOffset(e, t), this) : -this.utcOffset();
        })), ln.isDSTShifted = w(
        'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',
        (function () {
            if (!s(this._isDSTShifted)) return this._isDSTShifted;
            var e, t = {};
            return y(t, this), (t = gt(t))._a
                ? (e = (t._isUTC ? h : yt)(
                    t._a), this._isDSTShifted = this.isValid() && 0 <
                    function (e, t, n) {
                        for (var i = Math.min(e.length, t.length), a = Math.abs(
                            e.length - t.length), r = 0, o = 0; o < i; o++) q(
                            e[o]) !== q(t[o]) && r++;
                        return r + a;
                    }(t._a, e.toArray()))
                : this._isDSTShifted = !1, this._isDSTShifted;
        }));
    var un = A.prototype;

    function dn (e, t, n, i) {
        var a = tt(), r = h().set(i, t);
        return a[n](r, e);
    }

    function hn (e, t, n) {
        if (l(e) && (t = e, e = void 0), e = e || '', null != t) return dn(e, t,
            n, 'month');
        for (var i = [], a = 0; a < 12; a++) i[a] = dn(e, a, n, 'month');
        return i;
    }

    function fn (e, t, n, i) {
        'boolean' == typeof e ? l(t) && (n = t, t = void 0) : (t = e, e = !1, l(
            n = t) && (n = t, t = void 0)), t = t || '';
        var a, r = tt(), o = e ? r._week.dow : 0, s = [];
        if (null != n) return dn(t, (n + o) % 7, i, 'day');
        for (a = 0; a < 7; a++) s[a] = dn(t, (a + o) % 7, i, 'day');
        return s;
    }

    un.calendar = function (e, t, n) {
        var i = this._calendar[e] || this._calendar.sameElse;
        return S(i) ? i.call(t, n) : i;
    }, un.longDateFormat = function (e) {
        var t = this._longDateFormat[e],
            n = this._longDateFormat[e.toUpperCase()];
        return t || !n ? t : (this._longDateFormat[e] = n.match(C).
            map((function (e) {
                return 'MMMM' === e || 'MM' === e || 'DD' === e || 'dddd' === e
                    ? e.slice(1)
                    : e;
            })).
            join(''), this._longDateFormat[e]);
    }, un.invalidDate = function () {return this._invalidDate;}, un.ordinal = function (e) {
        return this._ordinal.replace('%d', e);
    }, un.preparse = cn, un.postformat = cn, un.relativeTime = function (
        e, t, n, i) {
        var a = this._relativeTime[n];
        return S(a) ? a(e, t, n, i) : a.replace(/%d/i, e);
    }, un.pastFuture = function (e, t) {
        var n = this._relativeTime[0 < e
            ? 'future'
            : 'past'];
        return S(n) ? n(t) : n.replace(/%s/i, t);
    }, un.set = function (e) {
        var t, n;
        for (n in e) r(e, n) && (S(t = e[n]) ? this[n] = t : this['_' + n] = t);
        this._config = e, this._dayOfMonthOrdinalParseLenient = new RegExp(
            (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
            '|' + /\d{1,2}/.source);
    }, un.eras = function (e, t) {
        for (var i, a = this._eras || tt('en')._eras, r = 0, o = a.length; r <
        o; ++r) {
            switch (typeof a[r].since) {
                case'string':
                    i = n(a[r].since).startOf('day'), a[r].since = i.valueOf();
            }
            switch (typeof a[r].until) {
                case'undefined':
                    a[r].until = 1 / 0;
                    break;
                case'string':
                    i = n(a[r].until).
                        startOf('day').
                        valueOf(), a[r].until = i.valueOf();
            }
        }
        return a;
    }, un.erasParse = function (e, t, n) {
        var i, a, r, o, s, l = this.eras();
        for (e = e.toUpperCase(), i = 0, a = l.length; i <
        a; ++i) if (r = l[i].name.toUpperCase(), o = l[i].abbr.toUpperCase(), s = l[i].narrow.toUpperCase(), n) switch (t) {
            case'N':
            case'NN':
            case'NNN':
                if (o === e) return l[i];
                break;
            case'NNNN':
                if (r === e) return l[i];
                break;
            case'NNNNN':
                if (s === e) return l[i];
        } else if (0 <= [r, o, s].indexOf(e)) return l[i];
    }, un.erasConvertYear = function (e, t) {
        var i = e.since <= e.until
            ? 1
            : -1;
        return void 0 === t ? n(e.since).year() : n(e.since).year() +
            (t - e.offset) * i;
    }, un.erasAbbrRegex = function (e) {
        return r(this, '_erasAbbrRegex') || Jt.call(this), e
            ? this._erasAbbrRegex
            : this._erasRegex;
    }, un.erasNameRegex = function (e) {
        return r(this, '_erasNameRegex') || Jt.call(this), e
            ? this._erasNameRegex
            : this._erasRegex;
    }, un.erasNarrowRegex = function (e) {
        return r(this, '_erasNarrowRegex') || Jt.call(this), e
            ? this._erasNarrowRegex
            : this._erasRegex;
    }, un.months = function (e, t) {
        return e ? i(this._months)
            ? this._months[e.month()]
            : this._months[(this._months.isFormat || we).test(t)
                ? 'format'
                : 'standalone'][e.month()] : i(this._months)
            ? this._months
            : this._months.standalone;
    }, un.monthsShort = function (e, t) {
        return e
            ? i(this._monthsShort)
                ? this._monthsShort[e.month()]
                : this._monthsShort[we.test(t)
                    ? 'format'
                    : 'standalone'][e.month()]
            : i(this._monthsShort)
                ? this._monthsShort
                : this._monthsShort.standalone;
    }, un.monthsParse = function (e, t, n) {
        var i, a, r;
        if (this._monthsParseExact) return function (e, t, n) {
            var i, a, r, o = e.toLocaleLowerCase();
            if (!this._monthsParse) for (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = [], i = 0; i <
            12; ++i) r = h(
                [2e3, i]), this._shortMonthsParse[i] = this.monthsShort(r, '').
                toLocaleLowerCase(), this._longMonthsParse[i] = this.months(r,
                '').toLocaleLowerCase();
            return n ? 'MMM' === t ? -1 !==
            (a = ye.call(this._shortMonthsParse, o)) ? a : null : -1 !==
            (a = ye.call(this._longMonthsParse, o)) ? a : null : 'MMM' === t
                ? -1 !== (a = ye.call(this._shortMonthsParse, o)) || -1 !==
                (a = ye.call(this._longMonthsParse, o)) ? a : null
                : -1 !== (a = ye.call(this._longMonthsParse, o)) || -1 !==
                (a = ye.call(this._shortMonthsParse, o)) ? a : null;
        }.call(this, e, t, n);
        for (this._monthsParse ||
             (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = []), i = 0; i <
             12; i++) {
            if (a = h([2e3, i]), n && !this._longMonthsParse[i] &&
            (this._longMonthsParse[i] = new RegExp(
                '^' + this.months(a, '').replace('.', '') + '$',
                'i'), this._shortMonthsParse[i] = new RegExp(
                '^' + this.monthsShort(a, '').replace('.', '') + '$',
                'i')), n || this._monthsParse[i] ||
            (r = '^' + this.months(a, '') + '|^' +
                this.monthsShort(a, ''), this._monthsParse[i] = new RegExp(
                r.replace('.', ''), 'i')), n && 'MMMM' === t &&
            this._longMonthsParse[i].test(e)) return i;
            if (n && 'MMM' === t && this._shortMonthsParse[i].test(e)) return i;
            if (!n && this._monthsParse[i].test(e)) return i;
        }
    }, un.monthsRegex = function (e) {
        return this._monthsParseExact ? (r(this, '_monthsRegex') ||
        Te.call(this), e
            ? this._monthsStrictRegex
            : this._monthsRegex) : (r(this, '_monthsRegex') ||
        (this._monthsRegex = Me), this._monthsStrictRegex && e
            ? this._monthsStrictRegex
            : this._monthsRegex);
    }, un.monthsShortRegex = function (e) {
        return this._monthsParseExact ? (r(this, '_monthsRegex') ||
        Te.call(this), e
            ? this._monthsShortStrictRegex
            : this._monthsShortRegex) : (r(this, '_monthsShortRegex') ||
        (this._monthsShortRegex = ke), this._monthsShortStrictRegex && e
            ? this._monthsShortStrictRegex
            : this._monthsShortRegex);
    }, un.week = function (e) {
        return Ye(e, this._week.dow, this._week.doy).week;
    }, un.firstDayOfYear = function () {return this._week.doy;}, un.firstDayOfWeek = function () {return this._week.dow;}, un.weekdays = function (
        e, t) {
        var n = i(this._weekdays) ? this._weekdays : this._weekdays[e && !0 !==
        e && this._weekdays.isFormat.test(t) ? 'format' : 'standalone'];
        return !0 === e ? Ie(n, this._week.dow) : e ? n[e.day()] : n;
    }, un.weekdaysMin = function (e) {
        return !0 === e ? Ie(this._weekdaysMin, this._week.dow) : e
            ? this._weekdaysMin[e.day()]
            : this._weekdaysMin;
    }, un.weekdaysShort = function (e) {
        return !0 === e ? Ie(this._weekdaysShort, this._week.dow) : e
            ? this._weekdaysShort[e.day()]
            : this._weekdaysShort;
    }, un.weekdaysParse = function (e, t, n) {
        var i, a, r;
        if (this._weekdaysParseExact) return function (e, t, n) {
            var i, a, r, o = e.toLocaleLowerCase();
            if (!this._weekdaysParse) for (this._weekdaysParse = [], this._shortWeekdaysParse = [], this._minWeekdaysParse = [], i = 0; i <
            7; ++i) r = h([2e3, 1]).
                day(i), this._minWeekdaysParse[i] = this.weekdaysMin(r, '').
                toLocaleLowerCase(), this._shortWeekdaysParse[i] = this.weekdaysShort(
                r, '').
                toLocaleLowerCase(), this._weekdaysParse[i] = this.weekdays(r,
                '').toLocaleLowerCase();
            return n
                ? 'dddd' === t ? -1 !== (a = ye.call(this._weekdaysParse, o))
                    ? a
                    : null : 'ddd' === t
                    ? -1 !== (a = ye.call(this._shortWeekdaysParse, o))
                        ? a
                        : null
                    : -1 !== (a = ye.call(this._minWeekdaysParse, o)) ? a : null
                : 'dddd' === t ? -1 !== (a = ye.call(this._weekdaysParse, o)) ||
                -1 !== (a = ye.call(this._shortWeekdaysParse, o)) || -1 !==
                (a = ye.call(this._minWeekdaysParse, o)) ? a : null : 'ddd' ===
                t ? -1 !== (a = ye.call(this._shortWeekdaysParse, o)) || -1 !==
                (a = ye.call(this._weekdaysParse, o)) || -1 !==
                (a = ye.call(this._minWeekdaysParse, o)) ? a : null : -1 !==
                (a = ye.call(this._minWeekdaysParse, o)) || -1 !==
                (a = ye.call(this._weekdaysParse, o)) || -1 !==
                (a = ye.call(this._shortWeekdaysParse, o)) ? a : null;
        }.call(this, e, t, n);
        for (this._weekdaysParse ||
             (this._weekdaysParse = [], this._minWeekdaysParse = [], this._shortWeekdaysParse = [], this._fullWeekdaysParse = []), i = 0; i <
             7; i++) {
            if (a = h([2e3, 1]).day(i), n && !this._fullWeekdaysParse[i] &&
            (this._fullWeekdaysParse[i] = new RegExp(
                '^' + this.weekdays(a, '').replace('.', '\\.?') + '$',
                'i'), this._shortWeekdaysParse[i] = new RegExp(
                '^' + this.weekdaysShort(a, '').replace('.', '\\.?') + '$',
                'i'), this._minWeekdaysParse[i] = new RegExp(
                '^' + this.weekdaysMin(a, '').replace('.', '\\.?') + '$',
                'i')), this._weekdaysParse[i] ||
            (r = '^' + this.weekdays(a, '') + '|^' + this.weekdaysShort(a, '') +
                '|^' +
                this.weekdaysMin(a, ''), this._weekdaysParse[i] = new RegExp(
                r.replace('.', ''), 'i')), n && 'dddd' === t &&
            this._fullWeekdaysParse[i].test(e)) return i;
            if (n && 'ddd' === t &&
                this._shortWeekdaysParse[i].test(e)) return i;
            if (n && 'dd' === t && this._minWeekdaysParse[i].test(e)) return i;
            if (!n && this._weekdaysParse[i].test(e)) return i;
        }
    }, un.weekdaysRegex = function (e) {
        return this._weekdaysParseExact ? (r(this, '_weekdaysRegex') ||
        Be.call(this), e
            ? this._weekdaysStrictRegex
            : this._weekdaysRegex) : (r(this, '_weekdaysRegex') ||
        (this._weekdaysRegex = Fe), this._weekdaysStrictRegex && e
            ? this._weekdaysStrictRegex
            : this._weekdaysRegex);
    }, un.weekdaysShortRegex = function (e) {
        return this._weekdaysParseExact
            ? (r(this, '_weekdaysRegex') || Be.call(this), e
                ? this._weekdaysShortStrictRegex
                : this._weekdaysShortRegex)
            : (r(this, '_weekdaysShortRegex') ||
            (this._weekdaysShortRegex = Re), this._weekdaysShortStrictRegex && e
                ? this._weekdaysShortStrictRegex
                : this._weekdaysShortRegex);
    }, un.weekdaysMinRegex = function (e) {
        return this._weekdaysParseExact ? (r(this, '_weekdaysRegex') ||
        Be.call(this), e
            ? this._weekdaysMinStrictRegex
            : this._weekdaysMinRegex) : (r(this, '_weekdaysMinRegex') ||
        (this._weekdaysMinRegex = ze), this._weekdaysMinStrictRegex && e
            ? this._weekdaysMinStrictRegex
            : this._weekdaysMinRegex);
    }, un.isPM = function (e) {
        return 'p' === (e + '').toLowerCase().charAt(0);
    }, un.meridiem = function (e, t, n) {
        return 11 < e ? n ? 'pm' : 'PM' : n
            ? 'am'
            : 'AM';
    }, Qe('en', {
        eras: [
            {
                since: '0001-01-01',
                until: 1 / 0,
                offset: 1,
                name: 'Anno Domini',
                narrow: 'AD',
                abbr: 'AD',
            },
            {
                since: '0000-12-31',
                until: -1 / 0,
                offset: 1,
                name: 'Before Christ',
                narrow: 'BC',
                abbr: 'BC',
            }],
        dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
        ordinal: function (e) {
            var t = e % 10;
            return e + (1 === q(e % 100 / 10) ? 'th' : 1 == t ? 'st' : 2 == t
                ? 'nd'
                : 3 == t ? 'rd' : 'th');
        },
    }), n.lang = w('moment.lang is deprecated. Use moment.locale instead.',
        Qe), n.langData = w(
        'moment.langData is deprecated. Use moment.localeData instead.', tt);
    var pn = Math.abs;

    function mn (e, t, n, i) {
        var a = Pt(t, n);
        return e._milliseconds += i * a._milliseconds, e._days += i *
            a._days, e._months += i * a._months, e._bubble();
    }

    function gn (e) {return e < 0 ? Math.floor(e) : Math.ceil(e);}

    function vn (e) {return 4800 * e / 146097;}

    function yn (e) {return 146097 * e / 4800;}

    function bn (e) {return function () {return this.as(e);};}

    var xn = bn('ms'), _n = bn('s'), wn = bn('m'), kn = bn('h'), Mn = bn('d'),
        Ln = bn('w'), Sn = bn('M'), Tn = bn('Q'), An = bn('y');

    function Dn (e) {
        return function () {
            return this.isValid()
                ? this._data[e]
                : NaN;
        };
    }

    var Cn = Dn('milliseconds'), En = Dn('seconds'), On = Dn('minutes'),
        Yn = Dn('hours'), Pn = Dn('days'), In = Dn('months'), jn = Dn('years'),
        Nn = Math.round,
        Hn = { ss: 44, s: 45, m: 45, h: 22, d: 26, w: null, M: 11 };
    var Fn = Math.abs;

    function Rn (e) {return (0 < e) - (e < 0) || +e;}

    function zn () {
        if (!this.isValid()) return this.localeData().invalidDate();
        var e, t, n, i, a, r, o, s, l = Fn(this._milliseconds) / 1e3,
            c = Fn(this._days), u = Fn(this._months), d = this.asSeconds();
        return d ? (e = V(l / 60), t = V(e / 60), l %= 60, e %= 60, n = V(
            u / 12), u %= 12, i = l
            ? l.toFixed(3).replace(/\.?0+$/, '')
            : '', a = d < 0 ? '-' : '', r = Rn(this._months) !== Rn(d)
            ? '-'
            : '', o = Rn(this._days) !== Rn(d) ? '-' : '', s = Rn(
            this._milliseconds) !== Rn(d) ? '-' : '', a + 'P' +
        (n ? r + n + 'Y' : '') + (u ? r + u + 'M' : '') +
        (c ? o + c + 'D' : '') + (t || e || l ? 'T' : '') +
        (t ? s + t + 'H' : '') + (e ? s + e + 'M' : '') +
        (l ? s + i + 'S' : '')) : 'P0D';
    }

    var Bn = kt.prototype;

    function Wn (e) {
        return 0 === e ? 0 : 1 === e ? 1 : 2 === e ? 2 : 3 <= e % 100 && e %
        100 <= 10 ? 3 : 11 <= e % 100 ? 4 : 5;
    }

    function Vn (e) {
        return function (t, n, i, a) {
            var r = Wn(t), o = qn[e][Wn(t)];
            return 2 === r && (o = o[n ? 0 : 1]), o.replace(/%d/i, t);
        };
    }

    Bn.isValid = function () {return this._isValid;}, Bn.abs = function () {
        var e = this._data;
        return this._milliseconds = pn(this._milliseconds), this._days = pn(
            this._days), this._months = pn(this._months), e.milliseconds = pn(
            e.milliseconds), e.seconds = pn(e.seconds), e.minutes = pn(
            e.minutes), e.hours = pn(e.hours), e.months = pn(
            e.months), e.years = pn(e.years), this;
    }, Bn.add = function (e, t) {
        return mn(this, e, t, 1);
    }, Bn.subtract = function (e, t) {
        return mn(this, e, t, -1);
    }, Bn.as = function (e) {
        if (!this.isValid()) return NaN;
        var t, n, i = this._milliseconds;
        if ('month' === (e = F(e)) || 'quarter' === e || 'year' ===
            e) switch (t = this._days + i / 864e5, n = this._months +
            vn(t), e) {
            case'month':
                return n;
            case'quarter':
                return n / 3;
            case'year':
                return n / 12;
        } else switch (t = this._days + Math.round(yn(this._months)), e) {
            case'week':
                return t / 7 + i / 6048e5;
            case'day':
                return t + i / 864e5;
            case'hour':
                return 24 * t + i / 36e5;
            case'minute':
                return 1440 * t + i / 6e4;
            case'second':
                return 86400 * t + i / 1e3;
            case'millisecond':
                return Math.floor(864e5 * t) + i;
            default:
                throw new Error('Unknown unit ' + e);
        }
    }, Bn.asMilliseconds = xn, Bn.asSeconds = _n, Bn.asMinutes = wn, Bn.asHours = kn, Bn.asDays = Mn, Bn.asWeeks = Ln, Bn.asMonths = Sn, Bn.asQuarters = Tn, Bn.asYears = An, Bn.valueOf = function () {
        return this.isValid()
            ? this._milliseconds + 864e5 * this._days + this._months % 12 *
            2592e6 + 31536e6 * q(this._months / 12)
            : NaN;
    }, Bn._bubble = function () {
        var e, t, n, i, a, r = this._milliseconds, o = this._days,
            s = this._months, l = this._data;
        return 0 <= r && 0 <= o && 0 <= s || r <= 0 && o <= 0 && s <= 0 ||
        (r += 864e5 * gn(yn(s) + o), s = o = 0), l.milliseconds = r %
            1e3, e = V(r / 1e3), l.seconds = e % 60, t = V(
            e / 60), l.minutes = t % 60, n = V(t / 60), l.hours = n %
            24, o += V(n / 24), s += a = V(vn(o)), o -= gn(yn(a)), i = V(
            s / 12), s %= 12, l.days = o, l.months = s, l.years = i, this;
    }, Bn.clone = function () {
        return Pt(this);
    }, Bn.get = function (e) {
        return e = F(e), this.isValid()
            ? this[e + 's']()
            : NaN;
    }, Bn.milliseconds = Cn, Bn.seconds = En, Bn.minutes = On, Bn.hours = Yn, Bn.days = Pn, Bn.weeks = function () {
        return V(this.days() / 7);
    }, Bn.months = In, Bn.years = jn, Bn.humanize = function (
        e, t) {
        if (!this.isValid()) return this.localeData().
            invalidDate();
        var n, i, a = !1, r = Hn;
        return 'object' == typeof e && (t = e, e = !1), 'boolean' == typeof e &&
        (a = e), 'object' == typeof t &&
        (r = Object.assign({}, Hn, t), null != t.s && null == t.ss &&
        (r.ss = t.s - 1)), i = function (e, t, n, i) {
            var a = Pt(e).abs(), r = Nn(a.as('s')), o = Nn(a.as('m')),
                s = Nn(a.as('h')), l = Nn(a.as('d')), c = Nn(a.as('M')),
                u = Nn(a.as('w')), d = Nn(a.as('y')),
                h = (r <= n.ss ? ['s', r] : r < n.s && ['ss', r]) || o <= 1 &&
                    ['m'] || o < n.m && ['mm', o] || s <= 1 && ['h'] || s <
                    n.h && ['hh', s] || l <= 1 && ['d'] || l < n.d && ['dd', l];
            return null != n.w &&
            (h = h || u <= 1 && ['w'] || u < n.w && ['ww', u]), (h = h || c <=
                1 && ['M'] || c < n.M && ['MM', c] || d <= 1 && ['y'] ||
                ['yy', d])[2] = t, h[3] = 0 < +e, h[4] = i, function (
                e, t, n, i, a) {
                return a.relativeTime(t || 1, !!n, e, i);
            }.apply(null, h);
        }(this, !a, r, n = this.localeData()), a &&
        (i = n.pastFuture(+this, i)), n.postformat(i);
    }, Bn.toISOString = zn, Bn.toString = zn, Bn.toJSON = zn, Bn.locale = Vt, Bn.localeData = Ut, Bn.toIsoString = w(
        'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',
        zn), Bn.lang = qt, P('X', 0, 0, 'unix'), P('x', 0, 0, 'valueOf'), he(
        'x', le), he('X', /[+-]?\d+(\.\d{1,3})?/), ge('X',
        (function (e, t, n) {n._d = new Date(1e3 * parseFloat(e));})), ge('x',
        (function (e, t, n) {
            n._d = new Date(q(e));
        })), n.version = '2.29.1', e = yt, n.fn = ln, n.min = function () {
        return _t('isBefore', [].slice.call(arguments, 0));
    }, n.max = function () {
        return _t('isAfter', [].slice.call(arguments, 0));
    }, n.now = function () {
        return Date.now
            ? Date.now()
            : +new Date;
    }, n.utc = h, n.unix = function (e) {
        return yt(1e3 * e);
    }, n.months = function (e, t) {
        return hn(e, t, 'months');
    }, n.isDate = c, n.locale = Qe, n.invalid = m, n.duration = Pt, n.isMoment = x, n.weekdays = function (
        e, t, n) {
        return fn(e, t, n, 'weekdays');
    }, n.parseZone = function () {
        return yt.apply(null, arguments).
            parseZone();
    }, n.localeData = tt, n.isDuration = Mt, n.monthsShort = function (
        e, t) {
        return hn(e, t, 'monthsShort');
    }, n.weekdaysMin = function (e, t, n) {
        return fn(e, t, n, 'weekdaysMin');
    }, n.defineLocale = et, n.updateLocale = function (e, t) {
        var n, i, a;
        return null != t ? (a = $e, null != Ge[e] && null != Ge[e].parentLocale
            ? Ge[e].set(T(Ge[e]._config, t))
            : (null != (i = Je(e)) && (a = i._config), t = T(a, t), null == i &&
            (t.abbr = e), (n = new A(t)).parentLocale = Ge[e], Ge[e] = n), Qe(
            e)) : null != Ge[e] &&
            (null != Ge[e].parentLocale ? (Ge[e] = Ge[e].parentLocale, e ===
            Qe() && Qe(e)) : null != Ge[e] && delete Ge[e]), Ge[e];
    }, n.locales = function () {return k(Ge);}, n.weekdaysShort = function (
        e, t, n) {
        return fn(e, t, n, 'weekdaysShort');
    }, n.normalizeUnits = F, n.relativeTimeRounding = function (e) {
        return void 0 === e ? Nn : 'function' == typeof e && (Nn = e, !0);
    }, n.relativeTimeThreshold = function (e, t) {
        return void 0 !== Hn[e] &&
            (void 0 === t ? Hn[e] : (Hn[e] = t, 's' === e &&
            (Hn.ss = t - 1), !0));
    }, n.calendarFormat = function (e, t) {
        var n = e.diff(t, 'days', !0);
        return n < -6 ? 'sameElse' : n < -1 ? 'lastWeek' : n < 0
            ? 'lastDay'
            : n < 1 ? 'sameDay' : n < 2 ? 'nextDay' : n < 7
                ? 'nextWeek'
                : 'sameElse';
    }, n.prototype = ln, n.HTML5_FMT = {
        DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',
        DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',
        DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',
        DATE: 'YYYY-MM-DD',
        TIME: 'HH:mm',
        TIME_SECONDS: 'HH:mm:ss',
        TIME_MS: 'HH:mm:ss.SSS',
        WEEK: 'GGGG-[W]WW',
        MONTH: 'YYYY-MM',
    }, n.defineLocale('af', {
        months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(
            '_'),
        monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split(
            '_'),
        weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(
            '_'),
        weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
        weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
        meridiemParse: /vm|nm/i,
        isPM: function (e) {return /^nm$/i.test(e);},
        meridiem: function (e, t, n) {
            return e < 12 ? n ? 'vm' : 'VM' : n
                ? 'nm'
                : 'NM';
        },
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Vandag om] LT',
            nextDay: '[Môre om] LT',
            nextWeek: 'dddd [om] LT',
            lastDay: '[Gister om] LT',
            lastWeek: '[Laas] dddd [om] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'oor %s',
            past: '%s gelede',
            s: '\'n paar sekondes',
            ss: '%d sekondes',
            m: '\'n minuut',
            mm: '%d minute',
            h: '\'n uur',
            hh: '%d ure',
            d: '\'n dag',
            dd: '%d dae',
            M: '\'n maand',
            MM: '%d maande',
            y: '\'n jaar',
            yy: '%d jaar',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
        ordinal: function (e) {
            return e + (1 === e || 8 === e || 20 <= e ? 'ste' : 'de');
        },
        week: { dow: 1, doy: 4 },
    });
    var qn = {
        s: [
            'أقل من ثانية',
            'ثانية واحدة',
            ['ثانيتان', 'ثانيتين'],
            '%d ثوان',
            '%d ثانية',
            '%d ثانية'],
        m: [
            'أقل من دقيقة',
            'دقيقة واحدة',
            ['دقيقتان', 'دقيقتين'],
            '%d دقائق',
            '%d دقيقة',
            '%d دقيقة'],
        h: [
            'أقل من ساعة',
            'ساعة واحدة',
            ['ساعتان', 'ساعتين'],
            '%d ساعات',
            '%d ساعة',
            '%d ساعة'],
        d: [
            'أقل من يوم',
            'يوم واحد',
            ['يومان', 'يومين'],
            '%d أيام',
            '%d يومًا',
            '%d يوم'],
        M: [
            'أقل من شهر',
            'شهر واحد',
            ['شهران', 'شهرين'],
            '%d أشهر',
            '%d شهرا',
            '%d شهر'],
        y: [
            'أقل من عام',
            'عام واحد',
            ['عامان', 'عامين'],
            '%d أعوام',
            '%d عامًا',
            '%d عام'],
    }, Un = [
        'جانفي',
        'فيفري',
        'مارس',
        'أفريل',
        'ماي',
        'جوان',
        'جويلية',
        'أوت',
        'سبتمبر',
        'أكتوبر',
        'نوفمبر',
        'ديسمبر'];

    function Xn (e) {
        return 0 === e ? 0 : 1 === e ? 1 : 2 === e ? 2 : 3 <= e % 100 && e %
        100 <= 10 ? 3 : 11 <= e % 100 ? 4 : 5;
    }

    function $n (e) {
        return function (t, n, i, a) {
            var r = Xn(t), o = Zn[e][Xn(t)];
            return 2 === r && (o = o[n ? 0 : 1]), o.replace(/%d/i, t);
        };
    }

    n.defineLocale('ar-dz', {
        months: Un,
        monthsShort: Un,
        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split(
            '_'),
        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'D/‏M/‏YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        meridiemParse: /\u0635|\u0645/,
        isPM: function (e) {return 'م' === e;},
        meridiem: function (e, t, n) {return e < 12 ? 'ص' : 'م';},
        calendar: {
            sameDay: '[اليوم عند الساعة] LT',
            nextDay: '[غدًا عند الساعة] LT',
            nextWeek: 'dddd [عند الساعة] LT',
            lastDay: '[أمس عند الساعة] LT',
            lastWeek: 'dddd [عند الساعة] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'بعد %s',
            past: 'منذ %s',
            s: Vn('s'),
            ss: Vn('s'),
            m: Vn('m'),
            mm: Vn('m'),
            h: Vn('h'),
            hh: Vn('h'),
            d: Vn('d'),
            dd: Vn('d'),
            M: Vn('M'),
            MM: Vn('M'),
            y: Vn('y'),
            yy: Vn('y'),
        },
        postformat: function (e) {return e.replace(/,/g, '،');},
        week: { dow: 0, doy: 4 },
    }), n.defineLocale('ar-kw', {
        months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
            '_'),
        monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
            '_'),
        weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split(
            '_'),
        weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[اليوم على الساعة] LT',
            nextDay: '[غدا على الساعة] LT',
            nextWeek: 'dddd [على الساعة] LT',
            lastDay: '[أمس على الساعة] LT',
            lastWeek: 'dddd [على الساعة] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'في %s',
            past: 'منذ %s',
            s: 'ثوان',
            ss: '%d ثانية',
            m: 'دقيقة',
            mm: '%d دقائق',
            h: 'ساعة',
            hh: '%d ساعات',
            d: 'يوم',
            dd: '%d أيام',
            M: 'شهر',
            MM: '%d أشهر',
            y: 'سنة',
            yy: '%d سنوات',
        },
        week: { dow: 0, doy: 12 },
    });
    var Gn = {
        1: '1',
        2: '2',
        3: '3',
        4: '4',
        5: '5',
        6: '6',
        7: '7',
        8: '8',
        9: '9',
        0: '0',
    }, Zn = {
        s: [
            'أقل من ثانية',
            'ثانية واحدة',
            ['ثانيتان', 'ثانيتين'],
            '%d ثوان',
            '%d ثانية',
            '%d ثانية'],
        m: [
            'أقل من دقيقة',
            'دقيقة واحدة',
            ['دقيقتان', 'دقيقتين'],
            '%d دقائق',
            '%d دقيقة',
            '%d دقيقة'],
        h: [
            'أقل من ساعة',
            'ساعة واحدة',
            ['ساعتان', 'ساعتين'],
            '%d ساعات',
            '%d ساعة',
            '%d ساعة'],
        d: [
            'أقل من يوم',
            'يوم واحد',
            ['يومان', 'يومين'],
            '%d أيام',
            '%d يومًا',
            '%d يوم'],
        M: [
            'أقل من شهر',
            'شهر واحد',
            ['شهران', 'شهرين'],
            '%d أشهر',
            '%d شهرا',
            '%d شهر'],
        y: [
            'أقل من عام',
            'عام واحد',
            ['عامان', 'عامين'],
            '%d أعوام',
            '%d عامًا',
            '%d عام'],
    }, Kn = [
        'يناير',
        'فبراير',
        'مارس',
        'أبريل',
        'مايو',
        'يونيو',
        'يوليو',
        'أغسطس',
        'سبتمبر',
        'أكتوبر',
        'نوفمبر',
        'ديسمبر'];
    n.defineLocale('ar-ly', {
        months: Kn,
        monthsShort: Kn,
        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split(
            '_'),
        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'D/‏M/‏YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        meridiemParse: /\u0635|\u0645/,
        isPM: function (e) {return 'م' === e;},
        meridiem: function (e, t, n) {return e < 12 ? 'ص' : 'م';},
        calendar: {
            sameDay: '[اليوم عند الساعة] LT',
            nextDay: '[غدًا عند الساعة] LT',
            nextWeek: 'dddd [عند الساعة] LT',
            lastDay: '[أمس عند الساعة] LT',
            lastWeek: 'dddd [عند الساعة] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'بعد %s',
            past: 'منذ %s',
            s: $n('s'),
            ss: $n('s'),
            m: $n('m'),
            mm: $n('m'),
            h: $n('h'),
            hh: $n('h'),
            d: $n('d'),
            dd: $n('d'),
            M: $n('M'),
            MM: $n('M'),
            y: $n('y'),
            yy: $n('y'),
        },
        preparse: function (e) {return e.replace(/\u060c/g, ',');},
        postformat: function (e) {
            return e.replace(/\d/g, (function (e) {return Gn[e];})).
                replace(/,/g, '،');
        },
        week: { dow: 6, doy: 12 },
    }), n.defineLocale('ar-ma', {
        months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
            '_'),
        monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
            '_'),
        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split(
            '_'),
        weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[اليوم على الساعة] LT',
            nextDay: '[غدا على الساعة] LT',
            nextWeek: 'dddd [على الساعة] LT',
            lastDay: '[أمس على الساعة] LT',
            lastWeek: 'dddd [على الساعة] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'في %s',
            past: 'منذ %s',
            s: 'ثوان',
            ss: '%d ثانية',
            m: 'دقيقة',
            mm: '%d دقائق',
            h: 'ساعة',
            hh: '%d ساعات',
            d: 'يوم',
            dd: '%d أيام',
            M: 'شهر',
            MM: '%d أشهر',
            y: 'سنة',
            yy: '%d سنوات',
        },
        week: { dow: 1, doy: 4 },
    });
    var Jn = {
        1: '١',
        2: '٢',
        3: '٣',
        4: '٤',
        5: '٥',
        6: '٦',
        7: '٧',
        8: '٨',
        9: '٩',
        0: '٠',
    }, Qn = {
        '١': '1',
        '٢': '2',
        '٣': '3',
        '٤': '4',
        '٥': '5',
        '٦': '6',
        '٧': '7',
        '٨': '8',
        '٩': '9',
        '٠': '0',
    };

    function ei (e) {
        return 0 === e ? 0 : 1 === e ? 1 : 2 === e ? 2 : 3 <= e % 100 && e %
        100 <= 10 ? 3 : 11 <= e % 100 ? 4 : 5;
    }

    function ti (e) {
        return function (t, n, i, a) {
            var r = ei(t), o = ai[e][ei(t)];
            return 2 === r && (o = o[n ? 0 : 1]), o.replace(/%d/i, t);
        };
    }

    n.defineLocale('ar-sa', {
        months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
            '_'),
        monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
            '_'),
        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split(
            '_'),
        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        meridiemParse: /\u0635|\u0645/,
        isPM: function (e) {return 'م' === e;},
        meridiem: function (e, t, n) {return e < 12 ? 'ص' : 'م';},
        calendar: {
            sameDay: '[اليوم على الساعة] LT',
            nextDay: '[غدا على الساعة] LT',
            nextWeek: 'dddd [على الساعة] LT',
            lastDay: '[أمس على الساعة] LT',
            lastWeek: 'dddd [على الساعة] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'في %s',
            past: 'منذ %s',
            s: 'ثوان',
            ss: '%d ثانية',
            m: 'دقيقة',
            mm: '%d دقائق',
            h: 'ساعة',
            hh: '%d ساعات',
            d: 'يوم',
            dd: '%d أيام',
            M: 'شهر',
            MM: '%d أشهر',
            y: 'سنة',
            yy: '%d سنوات',
        },
        preparse: function (e) {
            return e.replace(
                /[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,
                (function (e) {return Qn[e];})).replace(/\u060c/g, ',');
        },
        postformat: function (e) {
            return e.replace(/\d/g, (function (e) {return Jn[e];})).
                replace(/,/g, '،');
        },
        week: { dow: 0, doy: 6 },
    }), n.defineLocale('ar-tn', {
        months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
            '_'),
        monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
            '_'),
        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split(
            '_'),
        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[اليوم على الساعة] LT',
            nextDay: '[غدا على الساعة] LT',
            nextWeek: 'dddd [على الساعة] LT',
            lastDay: '[أمس على الساعة] LT',
            lastWeek: 'dddd [على الساعة] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'في %s',
            past: 'منذ %s',
            s: 'ثوان',
            ss: '%d ثانية',
            m: 'دقيقة',
            mm: '%d دقائق',
            h: 'ساعة',
            hh: '%d ساعات',
            d: 'يوم',
            dd: '%d أيام',
            M: 'شهر',
            MM: '%d أشهر',
            y: 'سنة',
            yy: '%d سنوات',
        },
        week: { dow: 1, doy: 4 },
    });
    var ni = {
        1: '١',
        2: '٢',
        3: '٣',
        4: '٤',
        5: '٥',
        6: '٦',
        7: '٧',
        8: '٨',
        9: '٩',
        0: '٠',
    }, ii = {
        '١': '1',
        '٢': '2',
        '٣': '3',
        '٤': '4',
        '٥': '5',
        '٦': '6',
        '٧': '7',
        '٨': '8',
        '٩': '9',
        '٠': '0',
    }, ai = {
        s: [
            'أقل من ثانية',
            'ثانية واحدة',
            ['ثانيتان', 'ثانيتين'],
            '%d ثوان',
            '%d ثانية',
            '%d ثانية'],
        m: [
            'أقل من دقيقة',
            'دقيقة واحدة',
            ['دقيقتان', 'دقيقتين'],
            '%d دقائق',
            '%d دقيقة',
            '%d دقيقة'],
        h: [
            'أقل من ساعة',
            'ساعة واحدة',
            ['ساعتان', 'ساعتين'],
            '%d ساعات',
            '%d ساعة',
            '%d ساعة'],
        d: [
            'أقل من يوم',
            'يوم واحد',
            ['يومان', 'يومين'],
            '%d أيام',
            '%d يومًا',
            '%d يوم'],
        M: [
            'أقل من شهر',
            'شهر واحد',
            ['شهران', 'شهرين'],
            '%d أشهر',
            '%d شهرا',
            '%d شهر'],
        y: [
            'أقل من عام',
            'عام واحد',
            ['عامان', 'عامين'],
            '%d أعوام',
            '%d عامًا',
            '%d عام'],
    }, ri = [
        'يناير',
        'فبراير',
        'مارس',
        'أبريل',
        'مايو',
        'يونيو',
        'يوليو',
        'أغسطس',
        'سبتمبر',
        'أكتوبر',
        'نوفمبر',
        'ديسمبر'];
    n.defineLocale('ar', {
        months: ri,
        monthsShort: ri,
        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split(
            '_'),
        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'D/‏M/‏YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        meridiemParse: /\u0635|\u0645/,
        isPM: function (e) {return 'م' === e;},
        meridiem: function (e, t, n) {return e < 12 ? 'ص' : 'م';},
        calendar: {
            sameDay: '[اليوم عند الساعة] LT',
            nextDay: '[غدًا عند الساعة] LT',
            nextWeek: 'dddd [عند الساعة] LT',
            lastDay: '[أمس عند الساعة] LT',
            lastWeek: 'dddd [عند الساعة] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'بعد %s',
            past: 'منذ %s',
            s: ti('s'),
            ss: ti('s'),
            m: ti('m'),
            mm: ti('m'),
            h: ti('h'),
            hh: ti('h'),
            d: ti('d'),
            dd: ti('d'),
            M: ti('M'),
            MM: ti('M'),
            y: ti('y'),
            yy: ti('y'),
        },
        preparse: function (e) {
            return e.replace(
                /[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,
                (function (e) {return ii[e];})).replace(/\u060c/g, ',');
        },
        postformat: function (e) {
            return e.replace(/\d/g, (function (e) {return ni[e];})).
                replace(/,/g, '،');
        },
        week: { dow: 6, doy: 12 },
    });
    var oi = {
        1: '-inci',
        5: '-inci',
        8: '-inci',
        70: '-inci',
        80: '-inci',
        2: '-nci',
        7: '-nci',
        20: '-nci',
        50: '-nci',
        3: '-üncü',
        4: '-üncü',
        100: '-üncü',
        6: '-ncı',
        9: '-uncu',
        10: '-uncu',
        30: '-uncu',
        60: '-ıncı',
        90: '-ıncı',
    };

    function si (e, t, n) {
        var i, a;
        return 'm' === n ? t ? 'хвіліна' : 'хвіліну' : 'h' === n ? t
            ? 'гадзіна'
            : 'гадзіну' : e + ' ' + (i = +e, a = {
            ss: t
                ? 'секунда_секунды_секунд'
                : 'секунду_секунды_секунд',
            mm: t ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
            hh: t ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
            dd: 'дзень_дні_дзён',
            MM: 'месяц_месяцы_месяцаў',
            yy: 'год_гады_гадоў',
        }[n].split('_'), i % 10 == 1 && i % 100 != 11 ? a[0] : 2 <= i % 10 &&
        i % 10 <= 4 && (i % 100 < 10 || 20 <= i % 100) ? a[1] : a[2]);
    }

    n.defineLocale('az', {
        months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(
            '_'),
        monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split(
            '_'),
        weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(
            '_'),
        weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
        weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[bugün saat] LT',
            nextDay: '[sabah saat] LT',
            nextWeek: '[gələn həftə] dddd [saat] LT',
            lastDay: '[dünən] LT',
            lastWeek: '[keçən həftə] dddd [saat] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s sonra',
            past: '%s əvvəl',
            s: 'bir neçə saniyə',
            ss: '%d saniyə',
            m: 'bir dəqiqə',
            mm: '%d dəqiqə',
            h: 'bir saat',
            hh: '%d saat',
            d: 'bir gün',
            dd: '%d gün',
            M: 'bir ay',
            MM: '%d ay',
            y: 'bir il',
            yy: '%d il',
        },
        meridiemParse: /gec\u0259|s\u0259h\u0259r|g\xfcnd\xfcz|ax\u015fam/,
        isPM: function (e) {return /^(g\xfcnd\xfcz|ax\u015fam)$/.test(e);},
        meridiem: function (e, t, n) {
            return e < 4 ? 'gecə' : e < 12
                ? 'səhər'
                : e < 17 ? 'gündüz' : 'axşam';
        },
        dayOfMonthOrdinalParse: /\d{1,2}-(\u0131nc\u0131|inci|nci|\xfcnc\xfc|nc\u0131|uncu)/,
        ordinal: function (e) {
            if (0 === e) return e + '-ıncı';
            var t = e % 10;
            return e + (oi[t] || oi[e % 100 - t] || oi[100 <= e ? 100 : null]);
        },
        week: { dow: 1, doy: 7 },
    }), n.defineLocale('be', {
        months: {
            format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(
                '_'),
            standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(
                '_'),
        },
        monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split(
            '_'),
        weekdays: {
            format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(
                '_'),
            standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(
                '_'),
            isFormat: /\[ ?[\u0423\u0443\u045e] ?(?:\u043c\u0456\u043d\u0443\u043b\u0443\u044e|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443\u044e)? ?\] ?dddd/,
        },
        weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
        weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY г.',
            LLL: 'D MMMM YYYY г., HH:mm',
            LLLL: 'dddd, D MMMM YYYY г., HH:mm',
        },
        calendar: {
            sameDay: '[Сёння ў] LT',
            nextDay: '[Заўтра ў] LT',
            lastDay: '[Учора ў] LT',
            nextWeek: function () {return '[У] dddd [ў] LT';},
            lastWeek: function () {
                switch (this.day()) {
                    case 0:
                    case 3:
                    case 5:
                    case 6:
                        return '[У мінулую] dddd [ў] LT';
                    case 1:
                    case 2:
                    case 4:
                        return '[У мінулы] dddd [ў] LT';
                }
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'праз %s',
            past: '%s таму',
            s: 'некалькі секунд',
            m: si,
            mm: si,
            h: si,
            hh: si,
            d: 'дзень',
            dd: si,
            M: 'месяц',
            MM: si,
            y: 'год',
            yy: si,
        },
        meridiemParse: /\u043d\u043e\u0447\u044b|\u0440\u0430\u043d\u0456\u0446\u044b|\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430/,
        isPM: function (e) {
            return /^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430)$/.test(
                e);
        },
        meridiem: function (e, t, n) {
            return e < 4 ? 'ночы' : e < 12
                ? 'раніцы'
                : e < 17 ? 'дня' : 'вечара';
        },
        dayOfMonthOrdinalParse: /\d{1,2}-(\u0456|\u044b|\u0433\u0430)/,
        ordinal: function (e, t) {
            switch (t) {
                case'M':
                case'd':
                case'DDD':
                case'w':
                case'W':
                    return e % 10 != 2 && e % 10 != 3 || e % 100 == 12 || e %
                    100 == 13 ? e + '-ы' : e + '-і';
                case'D':
                    return e + '-га';
                default:
                    return e;
            }
        },
        week: { dow: 1, doy: 7 },
    }), n.defineLocale('bg', {
        months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(
            '_'),
        monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split(
            '_'),
        weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(
            '_'),
        weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
        weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'D.MM.YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY H:mm',
            LLLL: 'dddd, D MMMM YYYY H:mm',
        },
        calendar: {
            sameDay: '[Днес в] LT',
            nextDay: '[Утре в] LT',
            nextWeek: 'dddd [в] LT',
            lastDay: '[Вчера в] LT',
            lastWeek: function () {
                switch (this.day()) {
                    case 0:
                    case 3:
                    case 6:
                        return '[Миналата] dddd [в] LT';
                    case 1:
                    case 2:
                    case 4:
                    case 5:
                        return '[Миналия] dddd [в] LT';
                }
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'след %s',
            past: 'преди %s',
            s: 'няколко секунди',
            ss: '%d секунди',
            m: 'минута',
            mm: '%d минути',
            h: 'час',
            hh: '%d часа',
            d: 'ден',
            dd: '%d дена',
            w: 'седмица',
            ww: '%d седмици',
            M: 'месец',
            MM: '%d месеца',
            y: 'година',
            yy: '%d години',
        },
        dayOfMonthOrdinalParse: /\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,
        ordinal: function (e) {
            var t = e % 10, n = e % 100;
            return 0 === e ? e + '-ев' : 0 == n ? e + '-ен' : 10 < n && n < 20
                ? e + '-ти'
                : 1 == t ? e + '-ви' : 2 == t ? e + '-ри' : 7 == t || 8 == t
                    ? e + '-ми'
                    : e + '-ти';
        },
        week: { dow: 1, doy: 7 },
    }), n.defineLocale('bm', {
        months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(
            '_'),
        monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split(
            '_'),
        weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),
        weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),
        weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'MMMM [tile] D [san] YYYY',
            LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
            LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
        },
        calendar: {
            sameDay: '[Bi lɛrɛ] LT',
            nextDay: '[Sini lɛrɛ] LT',
            nextWeek: 'dddd [don lɛrɛ] LT',
            lastDay: '[Kunu lɛrɛ] LT',
            lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s kɔnɔ',
            past: 'a bɛ %s bɔ',
            s: 'sanga dama dama',
            ss: 'sekondi %d',
            m: 'miniti kelen',
            mm: 'miniti %d',
            h: 'lɛrɛ kelen',
            hh: 'lɛrɛ %d',
            d: 'tile kelen',
            dd: 'tile %d',
            M: 'kalo kelen',
            MM: 'kalo %d',
            y: 'san kelen',
            yy: 'san %d',
        },
        week: { dow: 1, doy: 4 },
    });
    var li = {
        1: '১',
        2: '২',
        3: '৩',
        4: '৪',
        5: '৫',
        6: '৬',
        7: '৭',
        8: '৮',
        9: '৯',
        0: '০',
    }, ci = {
        '১': '1',
        '২': '2',
        '৩': '3',
        '৪': '4',
        '৫': '5',
        '৬': '6',
        '৭': '7',
        '৮': '8',
        '৯': '9',
        '০': '0',
    };
    n.defineLocale('bn-bd', {
        months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(
            '_'),
        monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(
            '_'),
        weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(
            '_'),
        weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
        weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),
        longDateFormat: {
            LT: 'A h:mm সময়',
            LTS: 'A h:mm:ss সময়',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, A h:mm সময়',
            LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',
        },
        calendar: {
            sameDay: '[আজ] LT',
            nextDay: '[আগামীকাল] LT',
            nextWeek: 'dddd, LT',
            lastDay: '[গতকাল] LT',
            lastWeek: '[গত] dddd, LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s পরে',
            past: '%s আগে',
            s: 'কয়েক সেকেন্ড',
            ss: '%d সেকেন্ড',
            m: 'এক মিনিট',
            mm: '%d মিনিট',
            h: 'এক ঘন্টা',
            hh: '%d ঘন্টা',
            d: 'এক দিন',
            dd: '%d দিন',
            M: 'এক মাস',
            MM: '%d মাস',
            y: 'এক বছর',
            yy: '%d বছর',
        },
        preparse: function (e) {
            return e.replace(
                /[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,
                (function (e) {return ci[e];}));
        },
        postformat: function (e) {
            return e.replace(/\d/g, (function (e) {return li[e];}));
        },
        meridiemParse: /\u09b0\u09be\u09a4|\u09ad\u09cb\u09b0|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b8\u09a8\u09cd\u09a7\u09cd\u09af\u09be|\u09b0\u09be\u09a4/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'রাত' === t
                ? e < 4 ? e : e + 12
                : 'ভোর' === t || 'সকাল' === t ? e : 'দুপুর' === t ? 3 <= e
                    ? e
                    : e + 12 : 'বিকাল' === t || 'সন্ধ্যা' === t
                    ? e + 12
                    : void 0;
        },
        meridiem: function (e, t, n) {
            return e < 4 ? 'রাত' : e < 6 ? 'ভোর' : e < 12 ? 'সকাল' : e < 15
                ? 'দুপুর'
                : e < 18 ? 'বিকাল' : e < 20 ? 'সন্ধ্যা' : 'রাত';
        },
        week: { dow: 0, doy: 6 },
    });
    var ui = {
        1: '১',
        2: '২',
        3: '৩',
        4: '৪',
        5: '৫',
        6: '৬',
        7: '৭',
        8: '৮',
        9: '৯',
        0: '০',
    }, di = {
        '১': '1',
        '২': '2',
        '৩': '3',
        '৪': '4',
        '৫': '5',
        '৬': '6',
        '৭': '7',
        '৮': '8',
        '৯': '9',
        '০': '0',
    };
    n.defineLocale('bn', {
        months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(
            '_'),
        monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(
            '_'),
        weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(
            '_'),
        weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
        weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),
        longDateFormat: {
            LT: 'A h:mm সময়',
            LTS: 'A h:mm:ss সময়',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, A h:mm সময়',
            LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',
        },
        calendar: {
            sameDay: '[আজ] LT',
            nextDay: '[আগামীকাল] LT',
            nextWeek: 'dddd, LT',
            lastDay: '[গতকাল] LT',
            lastWeek: '[গত] dddd, LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s পরে',
            past: '%s আগে',
            s: 'কয়েক সেকেন্ড',
            ss: '%d সেকেন্ড',
            m: 'এক মিনিট',
            mm: '%d মিনিট',
            h: 'এক ঘন্টা',
            hh: '%d ঘন্টা',
            d: 'এক দিন',
            dd: '%d দিন',
            M: 'এক মাস',
            MM: '%d মাস',
            y: 'এক বছর',
            yy: '%d বছর',
        },
        preparse: function (e) {
            return e.replace(
                /[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,
                (function (e) {return di[e];}));
        },
        postformat: function (e) {
            return e.replace(/\d/g, (function (e) {return ui[e];}));
        },
        meridiemParse: /\u09b0\u09be\u09a4|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b0\u09be\u09a4/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'রাত' === t && 4 <= e || 'দুপুর' ===
            t && e < 5 || 'বিকাল' === t ? e + 12 : e;
        },
        meridiem: function (e, t, n) {
            return e < 4 ? 'রাত' : e < 10
                ? 'সকাল'
                : e < 17 ? 'দুপুর' : e < 20 ? 'বিকাল' : 'রাত';
        },
        week: { dow: 0, doy: 6 },
    });
    var hi = {
        1: '༡',
        2: '༢',
        3: '༣',
        4: '༤',
        5: '༥',
        6: '༦',
        7: '༧',
        8: '༨',
        9: '༩',
        0: '༠',
    }, fi = {
        '༡': '1',
        '༢': '2',
        '༣': '3',
        '༤': '4',
        '༥': '5',
        '༦': '6',
        '༧': '7',
        '༨': '8',
        '༩': '9',
        '༠': '0',
    };

    function pi (e, t, n) {
        var i;
        return e + ' ' +
            (i = { mm: 'munutenn', MM: 'miz', dd: 'devezh' }[n], 2 !== e
                ? i
                : function (e) {
                    var t = { m: 'v', b: 'v', d: 'z' };
                    return void 0 !== t[e.charAt(0)] ? t[e.charAt(0)] +
                        e.substring(1) : e;
                }(i));
    }

    n.defineLocale('bo', {
        months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(
            '_'),
        monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(
            '_'),
        monthsShortRegex: /^(\u0f5f\u0fb3\u0f0b\d{1,2})/,
        monthsParseExact: !0,
        weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(
            '_'),
        weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(
            '_'),
        weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),
        longDateFormat: {
            LT: 'A h:mm',
            LTS: 'A h:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, A h:mm',
            LLLL: 'dddd, D MMMM YYYY, A h:mm',
        },
        calendar: {
            sameDay: '[དི་རིང] LT',
            nextDay: '[སང་ཉིན] LT',
            nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',
            lastDay: '[ཁ་སང] LT',
            lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s ལ་',
            past: '%s སྔན་ལ',
            s: 'ལམ་སང',
            ss: '%d སྐར་ཆ།',
            m: 'སྐར་མ་གཅིག',
            mm: '%d སྐར་མ',
            h: 'ཆུ་ཚོད་གཅིག',
            hh: '%d ཆུ་ཚོད',
            d: 'ཉིན་གཅིག',
            dd: '%d ཉིན་',
            M: 'ཟླ་བ་གཅིག',
            MM: '%d ཟླ་བ',
            y: 'ལོ་གཅིག',
            yy: '%d ལོ',
        },
        preparse: function (e) {
            return e.replace(
                /[\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f20]/g,
                (function (e) {return fi[e];}));
        },
        postformat: function (e) {
            return e.replace(/\d/g, (function (e) {return hi[e];}));
        },
        meridiemParse: /\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c|\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66|\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44|\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42|\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'མཚན་མོ' === t && 4 <= e ||
            'ཉིན་གུང' === t && e < 5 || 'དགོང་དག' === t ? e + 12 : e;
        },
        meridiem: function (e, t, n) {
            return e < 4 ? 'མཚན་མོ' : e < 10
                ? 'ཞོགས་ཀས'
                : e < 17 ? 'ཉིན་གུང' : e < 20 ? 'དགོང་དག' : 'མཚན་མོ';
        },
        week: { dow: 0, doy: 6 },
    });
    var mi = [
            /^gen/i,
            /^c[\u02bc\']hwe/i,
            /^meu/i,
            /^ebr/i,
            /^mae/i,
            /^(mez|eve)/i,
            /^gou/i,
            /^eos/i,
            /^gwe/i,
            /^her/i,
            /^du/i,
            /^ker/i],
        gi = /^(genver|c[\u02bc\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[\u02bc\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
        vi = [/^Su/i, /^Lu/i, /^Me([^r]|$)/i, /^Mer/i, /^Ya/i, /^Gw/i, /^Sa/i];

    function yi (e, t, n) {
        var i = e + ' ';
        switch (n) {
            case'ss':
                return i + (1 === e ? 'sekunda' : 2 === e || 3 === e || 4 === e
                    ? 'sekunde'
                    : 'sekundi');
            case'm':
                return t ? 'jedna minuta' : 'jedne minute';
            case'mm':
                return i + (1 === e || 2 !== e && 3 !== e && 4 !== e
                    ? 'minuta'
                    : 'minute');
            case'h':
                return t ? 'jedan sat' : 'jednog sata';
            case'hh':
                return i + (1 === e ? 'sat' : 2 === e || 3 === e || 4 === e
                    ? 'sata'
                    : 'sati');
            case'dd':
                return i + (1 === e ? 'dan' : 'dana');
            case'MM':
                return i + (1 === e ? 'mjesec' : 2 === e || 3 === e || 4 === e
                    ? 'mjeseca'
                    : 'mjeseci');
            case'yy':
                return i + (1 === e || 2 !== e && 3 !== e && 4 !== e
                    ? 'godina'
                    : 'godine');
        }
    }

    n.defineLocale('br', {
        months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(
            '_'),
        monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split(
            '_'),
        weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),
        weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
        weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
        weekdaysParse: vi,
        fullWeekdaysParse: [
            /^sul/i,
            /^lun/i,
            /^meurzh/i,
            /^merc[\u02bc\']her/i,
            /^yaou/i,
            /^gwener/i,
            /^sadorn/i],
        shortWeekdaysParse: [
            /^Sul/i,
            /^Lun/i,
            /^Meu/i,
            /^Mer/i,
            /^Yao/i,
            /^Gwe/i,
            /^Sad/i],
        minWeekdaysParse: vi,
        monthsRegex: gi,
        monthsShortRegex: gi,
        monthsStrictRegex: /^(genver|c[\u02bc\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,
        monthsShortStrictRegex: /^(gen|c[\u02bc\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
        monthsParse: mi,
        longMonthsParse: mi,
        shortMonthsParse: mi,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D [a viz] MMMM YYYY',
            LLL: 'D [a viz] MMMM YYYY HH:mm',
            LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Hiziv da] LT',
            nextDay: '[Warcʼhoazh da] LT',
            nextWeek: 'dddd [da] LT',
            lastDay: '[Decʼh da] LT',
            lastWeek: 'dddd [paset da] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'a-benn %s',
            past: '%s ʼzo',
            s: 'un nebeud segondennoù',
            ss: '%d eilenn',
            m: 'ur vunutenn',
            mm: pi,
            h: 'un eur',
            hh: '%d eur',
            d: 'un devezh',
            dd: pi,
            M: 'ur miz',
            MM: pi,
            y: 'ur bloaz',
            yy: function (e) {
                switch (function e (t) {
                    return 9 < t
                        ? e(t % 10)
                        : t;
                }(e)) {
                    case 1:
                    case 3:
                    case 4:
                    case 5:
                    case 9:
                        return e + ' bloaz';
                    default:
                        return e + ' vloaz';
                }
            },
        },
        dayOfMonthOrdinalParse: /\d{1,2}(a\xf1|vet)/,
        ordinal: function (e) {return e + (1 === e ? 'añ' : 'vet');},
        week: { dow: 1, doy: 4 },
        meridiemParse: /a.m.|g.m./,
        isPM: function (e) {return 'g.m.' === e;},
        meridiem: function (e, t, n) {return e < 12 ? 'a.m.' : 'g.m.';},
    }), n.defineLocale('bs', {
        months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(
            '_'),
        monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
            '_'),
        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D. MMMM YYYY',
            LLL: 'D. MMMM YYYY H:mm',
            LLLL: 'dddd, D. MMMM YYYY H:mm',
        },
        calendar: {
            sameDay: '[danas u] LT',
            nextDay: '[sutra u] LT',
            nextWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[u] [nedjelju] [u] LT';
                    case 3:
                        return '[u] [srijedu] [u] LT';
                    case 6:
                        return '[u] [subotu] [u] LT';
                    case 1:
                    case 2:
                    case 4:
                    case 5:
                        return '[u] dddd [u] LT';
                }
            },
            lastDay: '[jučer u] LT',
            lastWeek: function () {
                switch (this.day()) {
                    case 0:
                    case 3:
                        return '[prošlu] dddd [u] LT';
                    case 6:
                        return '[prošle] [subote] [u] LT';
                    case 1:
                    case 2:
                    case 4:
                    case 5:
                        return '[prošli] dddd [u] LT';
                }
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'za %s',
            past: 'prije %s',
            s: 'par sekundi',
            ss: yi,
            m: yi,
            mm: yi,
            h: yi,
            hh: yi,
            d: 'dan',
            dd: yi,
            M: 'mjesec',
            MM: yi,
            y: 'godinu',
            yy: yi,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 7 },
    }), n.defineLocale('ca', {
        months: {
            standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(
                '_'),
            format: 'de gener_de febrer_de març_d\'abril_de maig_de juny_de juliol_d\'agost_de setembre_d\'octubre_de novembre_de desembre'.split(
                '_'),
            isFormat: /D[oD]?(\s)+MMMM/,
        },
        monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(
            '_'),
        weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
        weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM [de] YYYY',
            ll: 'D MMM YYYY',
            LLL: 'D MMMM [de] YYYY [a les] H:mm',
            lll: 'D MMM YYYY, H:mm',
            LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',
            llll: 'ddd D MMM YYYY, H:mm',
        },
        calendar: {
            sameDay: function () {
                return '[avui a ' + (1 !== this.hours() ? 'les' : 'la') +
                    '] LT';
            },
            nextDay: function () {
                return '[demà a ' + (1 !== this.hours() ? 'les' : 'la') +
                    '] LT';
            },
            nextWeek: function () {
                return 'dddd [a ' + (1 !== this.hours() ? 'les' : 'la') +
                    '] LT';
            },
            lastDay: function () {
                return '[ahir a ' + (1 !== this.hours() ? 'les' : 'la') +
                    '] LT';
            },
            lastWeek: function () {
                return '[el] dddd [passat a ' +
                    (1 !== this.hours() ? 'les' : 'la') + '] LT';
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'd\'aquí %s',
            past: 'fa %s',
            s: 'uns segons',
            ss: '%d segons',
            m: 'un minut',
            mm: '%d minuts',
            h: 'una hora',
            hh: '%d hores',
            d: 'un dia',
            dd: '%d dies',
            M: 'un mes',
            MM: '%d mesos',
            y: 'un any',
            yy: '%d anys',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|\xe8|a)/,
        ordinal: function (e, t) {
            return e +
                ('w' !== t && 'W' !== t ? 1 === e ? 'r' : 2 === e ? 'n' : 3 ===
                e ? 'r' : 4 === e ? 't' : 'è' : 'a');
        },
        week: { dow: 1, doy: 4 },
    });
    var bi = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(
        '_'), xi = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),
        _i = [
            /^led/i,
            /^\xfano/i,
            /^b\u0159e/i,
            /^dub/i,
            /^kv\u011b/i,
            /^(\u010dvn|\u010derven$|\u010dervna)/i,
            /^(\u010dvc|\u010dervenec|\u010dervence)/i,
            /^srp/i,
            /^z\xe1\u0159/i,
            /^\u0159\xedj/i,
            /^lis/i,
            /^pro/i],
        wi = /^(leden|\xfanor|b\u0159ezen|duben|kv\u011bten|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|z\xe1\u0159\xed|\u0159\xedjen|listopad|prosinec|led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i;

    function ki (e) {return 1 < e && e < 5 && 1 != ~~(e / 10);}

    function Mi (e, t, n, i) {
        var a = e + ' ';
        switch (n) {
            case's':
                return t || i ? 'pár sekund' : 'pár sekundami';
            case'ss':
                return t || i ? a + (ki(e) ? 'sekundy' : 'sekund') : a +
                    'sekundami';
            case'm':
                return t ? 'minuta' : i ? 'minutu' : 'minutou';
            case'mm':
                return t || i ? a + (ki(e) ? 'minuty' : 'minut') : a +
                    'minutami';
            case'h':
                return t ? 'hodina' : i ? 'hodinu' : 'hodinou';
            case'hh':
                return t || i ? a + (ki(e) ? 'hodiny' : 'hodin') : a +
                    'hodinami';
            case'd':
                return t || i ? 'den' : 'dnem';
            case'dd':
                return t || i ? a + (ki(e) ? 'dny' : 'dní') : a + 'dny';
            case'M':
                return t || i ? 'měsíc' : 'měsícem';
            case'MM':
                return t || i ? a + (ki(e) ? 'měsíce' : 'měsíců') : a +
                    'měsíci';
            case'y':
                return t || i ? 'rok' : 'rokem';
            case'yy':
                return t || i ? a + (ki(e) ? 'roky' : 'let') : a + 'lety';
        }
    }

    function Li (e, t, n, i) {
        var a = {
            m: ['eine Minute', 'einer Minute'],
            h: ['eine Stunde', 'einer Stunde'],
            d: ['ein Tag', 'einem Tag'],
            dd: [e + ' Tage', e + ' Tagen'],
            w: ['eine Woche', 'einer Woche'],
            M: ['ein Monat', 'einem Monat'],
            MM: [e + ' Monate', e + ' Monaten'],
            y: ['ein Jahr', 'einem Jahr'],
            yy: [e + ' Jahre', e + ' Jahren'],
        };
        return t ? a[n][0] : a[n][1];
    }

    function Si (e, t, n, i) {
        var a = {
            m: ['eine Minute', 'einer Minute'],
            h: ['eine Stunde', 'einer Stunde'],
            d: ['ein Tag', 'einem Tag'],
            dd: [e + ' Tage', e + ' Tagen'],
            w: ['eine Woche', 'einer Woche'],
            M: ['ein Monat', 'einem Monat'],
            MM: [e + ' Monate', e + ' Monaten'],
            y: ['ein Jahr', 'einem Jahr'],
            yy: [e + ' Jahre', e + ' Jahren'],
        };
        return t ? a[n][0] : a[n][1];
    }

    function Ti (e, t, n, i) {
        var a = {
            m: ['eine Minute', 'einer Minute'],
            h: ['eine Stunde', 'einer Stunde'],
            d: ['ein Tag', 'einem Tag'],
            dd: [e + ' Tage', e + ' Tagen'],
            w: ['eine Woche', 'einer Woche'],
            M: ['ein Monat', 'einem Monat'],
            MM: [e + ' Monate', e + ' Monaten'],
            y: ['ein Jahr', 'einem Jahr'],
            yy: [e + ' Jahre', e + ' Jahren'],
        };
        return t ? a[n][0] : a[n][1];
    }

    n.defineLocale('cs', {
        months: bi,
        monthsShort: xi,
        monthsRegex: wi,
        monthsShortRegex: wi,
        monthsStrictRegex: /^(leden|ledna|\xfanora|\xfanor|b\u0159ezen|b\u0159ezna|duben|dubna|kv\u011bten|kv\u011btna|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|srpna|z\xe1\u0159\xed|\u0159\xedjen|\u0159\xedjna|listopadu|listopad|prosinec|prosince)/i,
        monthsShortStrictRegex: /^(led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i,
        monthsParse: _i,
        longMonthsParse: _i,
        shortMonthsParse: _i,
        weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
        weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),
        weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D. MMMM YYYY',
            LLL: 'D. MMMM YYYY H:mm',
            LLLL: 'dddd D. MMMM YYYY H:mm',
            l: 'D. M. YYYY',
        },
        calendar: {
            sameDay: '[dnes v] LT',
            nextDay: '[zítra v] LT',
            nextWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[v neděli v] LT';
                    case 1:
                    case 2:
                        return '[v] dddd [v] LT';
                    case 3:
                        return '[ve středu v] LT';
                    case 4:
                        return '[ve čtvrtek v] LT';
                    case 5:
                        return '[v pátek v] LT';
                    case 6:
                        return '[v sobotu v] LT';
                }
            },
            lastDay: '[včera v] LT',
            lastWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[minulou neděli v] LT';
                    case 1:
                    case 2:
                        return '[minulé] dddd [v] LT';
                    case 3:
                        return '[minulou středu v] LT';
                    case 4:
                    case 5:
                        return '[minulý] dddd [v] LT';
                    case 6:
                        return '[minulou sobotu v] LT';
                }
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'za %s',
            past: 'před %s',
            s: Mi,
            ss: Mi,
            m: Mi,
            mm: Mi,
            h: Mi,
            hh: Mi,
            d: Mi,
            dd: Mi,
            M: Mi,
            MM: Mi,
            y: Mi,
            yy: Mi,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('cv', {
        months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(
            '_'),
        monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split(
            '_'),
        weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(
            '_'),
        weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),
        weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD-MM-YYYY',
            LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
            LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
            LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
        },
        calendar: {
            sameDay: '[Паян] LT [сехетре]',
            nextDay: '[Ыран] LT [сехетре]',
            lastDay: '[Ӗнер] LT [сехетре]',
            nextWeek: '[Ҫитес] dddd LT [сехетре]',
            lastWeek: '[Иртнӗ] dddd LT [сехетре]',
            sameElse: 'L',
        },
        relativeTime: {
            future: function (e) {
                return e + (/\u0441\u0435\u0445\u0435\u0442$/i.exec(e)
                    ? 'рен'
                    : /\u04ab\u0443\u043b$/i.exec(e) ? 'тан' : 'ран');
            },
            past: '%s каялла',
            s: 'пӗр-ик ҫеккунт',
            ss: '%d ҫеккунт',
            m: 'пӗр минут',
            mm: '%d минут',
            h: 'пӗр сехет',
            hh: '%d сехет',
            d: 'пӗр кун',
            dd: '%d кун',
            M: 'пӗр уйӑх',
            MM: '%d уйӑх',
            y: 'пӗр ҫул',
            yy: '%d ҫул',
        },
        dayOfMonthOrdinalParse: /\d{1,2}-\u043c\u04d7\u0448/,
        ordinal: '%d-мӗш',
        week: { dow: 1, doy: 7 },
    }), n.defineLocale('cy', {
        months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(
            '_'),
        monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(
            '_'),
        weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(
            '_'),
        weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
        weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Heddiw am] LT',
            nextDay: '[Yfory am] LT',
            nextWeek: 'dddd [am] LT',
            lastDay: '[Ddoe am] LT',
            lastWeek: 'dddd [diwethaf am] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'mewn %s',
            past: '%s yn ôl',
            s: 'ychydig eiliadau',
            ss: '%d eiliad',
            m: 'munud',
            mm: '%d munud',
            h: 'awr',
            hh: '%d awr',
            d: 'diwrnod',
            dd: '%d diwrnod',
            M: 'mis',
            MM: '%d mis',
            y: 'blwyddyn',
            yy: '%d flynedd',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
        ordinal: function (e) {
            var t = '';
            return 20 < e ? t = 40 === e || 50 === e || 60 === e || 80 === e ||
            100 === e ? 'fed' : 'ain' : 0 < e && (t = [
                '',
                'af',
                'il',
                'ydd',
                'ydd',
                'ed',
                'ed',
                'ed',
                'fed',
                'fed',
                'fed',
                'eg',
                'fed',
                'eg',
                'eg',
                'fed',
                'eg',
                'eg',
                'fed',
                'eg',
                'fed'][e]), e + t;
        },
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('da', {
        months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(
            '_'),
        monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split(
            '_'),
        weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split(
            '_'),
        weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),
        weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D. MMMM YYYY',
            LLL: 'D. MMMM YYYY HH:mm',
            LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',
        },
        calendar: {
            sameDay: '[i dag kl.] LT',
            nextDay: '[i morgen kl.] LT',
            nextWeek: 'på dddd [kl.] LT',
            lastDay: '[i går kl.] LT',
            lastWeek: '[i] dddd[s kl.] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'om %s',
            past: '%s siden',
            s: 'få sekunder',
            ss: '%d sekunder',
            m: 'et minut',
            mm: '%d minutter',
            h: 'en time',
            hh: '%d timer',
            d: 'en dag',
            dd: '%d dage',
            M: 'en måned',
            MM: '%d måneder',
            y: 'et år',
            yy: '%d år',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('de-at', {
        months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
            '_'),
        monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
            '_'),
        weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D. MMMM YYYY',
            LLL: 'D. MMMM YYYY HH:mm',
            LLLL: 'dddd, D. MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[heute um] LT [Uhr]',
            sameElse: 'L',
            nextDay: '[morgen um] LT [Uhr]',
            nextWeek: 'dddd [um] LT [Uhr]',
            lastDay: '[gestern um] LT [Uhr]',
            lastWeek: '[letzten] dddd [um] LT [Uhr]',
        },
        relativeTime: {
            future: 'in %s',
            past: 'vor %s',
            s: 'ein paar Sekunden',
            ss: '%d Sekunden',
            m: Li,
            mm: '%d Minuten',
            h: Li,
            hh: '%d Stunden',
            d: Li,
            dd: Li,
            w: Li,
            ww: '%d Wochen',
            M: Li,
            MM: Li,
            y: Li,
            yy: Li,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('de-ch', {
        months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
            '_'),
        monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
            '_'),
        weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D. MMMM YYYY',
            LLL: 'D. MMMM YYYY HH:mm',
            LLLL: 'dddd, D. MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[heute um] LT [Uhr]',
            sameElse: 'L',
            nextDay: '[morgen um] LT [Uhr]',
            nextWeek: 'dddd [um] LT [Uhr]',
            lastDay: '[gestern um] LT [Uhr]',
            lastWeek: '[letzten] dddd [um] LT [Uhr]',
        },
        relativeTime: {
            future: 'in %s',
            past: 'vor %s',
            s: 'ein paar Sekunden',
            ss: '%d Sekunden',
            m: Si,
            mm: '%d Minuten',
            h: Si,
            hh: '%d Stunden',
            d: Si,
            dd: Si,
            w: Si,
            ww: '%d Wochen',
            M: Si,
            MM: Si,
            y: Si,
            yy: Si,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('de', {
        months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
            '_'),
        monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
            '_'),
        weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D. MMMM YYYY',
            LLL: 'D. MMMM YYYY HH:mm',
            LLLL: 'dddd, D. MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[heute um] LT [Uhr]',
            sameElse: 'L',
            nextDay: '[morgen um] LT [Uhr]',
            nextWeek: 'dddd [um] LT [Uhr]',
            lastDay: '[gestern um] LT [Uhr]',
            lastWeek: '[letzten] dddd [um] LT [Uhr]',
        },
        relativeTime: {
            future: 'in %s',
            past: 'vor %s',
            s: 'ein paar Sekunden',
            ss: '%d Sekunden',
            m: Ti,
            mm: '%d Minuten',
            h: Ti,
            hh: '%d Stunden',
            d: Ti,
            dd: Ti,
            w: Ti,
            ww: '%d Wochen',
            M: Ti,
            MM: Ti,
            y: Ti,
            yy: Ti,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    });
    var Ai = [
        'ޖެނުއަރީ',
        'ފެބްރުއަރީ',
        'މާރިޗު',
        'އޭޕްރީލު',
        'މޭ',
        'ޖޫން',
        'ޖުލައި',
        'އޯގަސްޓު',
        'ސެޕްޓެމްބަރު',
        'އޮކްޓޯބަރު',
        'ނޮވެމްބަރު',
        'ޑިސެމްބަރު'], Di = [
        'އާދިއްތަ',
        'ހޯމަ',
        'އަންގާރަ',
        'ބުދަ',
        'ބުރާސްފަތި',
        'ހުކުރު',
        'ހޮނިހިރު'];
    n.defineLocale('dv', {
        months: Ai,
        monthsShort: Ai,
        weekdays: Di,
        weekdaysShort: Di,
        weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'D/M/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        meridiemParse: /\u0789\u0786|\u0789\u078a/,
        isPM: function (e) {return 'މފ' === e;},
        meridiem: function (e, t, n) {return e < 12 ? 'މކ' : 'މފ';},
        calendar: {
            sameDay: '[މިއަދު] LT',
            nextDay: '[މާދަމާ] LT',
            nextWeek: 'dddd LT',
            lastDay: '[އިއްޔެ] LT',
            lastWeek: '[ފާއިތުވި] dddd LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'ތެރޭގައި %s',
            past: 'ކުރިން %s',
            s: 'ސިކުންތުކޮޅެއް',
            ss: 'd% ސިކުންތު',
            m: 'މިނިޓެއް',
            mm: 'މިނިޓު %d',
            h: 'ގަޑިއިރެއް',
            hh: 'ގަޑިއިރު %d',
            d: 'ދުވަހެއް',
            dd: 'ދުވަސް %d',
            M: 'މަހެއް',
            MM: 'މަސް %d',
            y: 'އަހަރެއް',
            yy: 'އަހަރު %d',
        },
        preparse: function (e) {return e.replace(/\u060c/g, ',');},
        postformat: function (e) {return e.replace(/,/g, '،');},
        week: { dow: 7, doy: 12 },
    }), n.defineLocale('el', {
        monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(
            '_'),
        monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(
            '_'),
        months: function (e, t) {
            return e
                ? 'string' == typeof t &&
                /D/.test(t.substring(0, t.indexOf('MMMM')))
                    ? this._monthsGenitiveEl[e.month()]
                    : this._monthsNominativeEl[e.month()]
                : this._monthsNominativeEl;
        },
        monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split(
            '_'),
        weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(
            '_'),
        weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
        weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
        meridiem: function (e, t, n) {
            return 11 < e ? n ? 'μμ' : 'ΜΜ' : n
                ? 'πμ'
                : 'ΠΜ';
        },
        isPM: function (e) {return 'μ' === (e + '').toLowerCase()[0];},
        meridiemParse: /[\u03a0\u039c]\.?\u039c?\.?/i,
        longDateFormat: {
            LT: 'h:mm A',
            LTS: 'h:mm:ss A',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY h:mm A',
            LLLL: 'dddd, D MMMM YYYY h:mm A',
        },
        calendarEl: {
            sameDay: '[Σήμερα {}] LT',
            nextDay: '[Αύριο {}] LT',
            nextWeek: 'dddd [{}] LT',
            lastDay: '[Χθες {}] LT',
            lastWeek: function () {
                switch (this.day()) {
                    case 6:
                        return '[το προηγούμενο] dddd [{}] LT';
                    default:
                        return '[την προηγούμενη] dddd [{}] LT';
                }
            },
            sameElse: 'L',
        },
        calendar: function (e, t) {
            var n, i = this._calendarEl[e], a = t && t.hours();
            return n = i, ('undefined' != typeof Function && n instanceof
                Function || '[object Function]' ===
                Object.prototype.toString.call(n)) &&
            (i = i.apply(t)), i.replace('{}', a % 12 == 1 ? 'στη' : 'στις');
        },
        relativeTime: {
            future: 'σε %s',
            past: '%s πριν',
            s: 'λίγα δευτερόλεπτα',
            ss: '%d δευτερόλεπτα',
            m: 'ένα λεπτό',
            mm: '%d λεπτά',
            h: 'μία ώρα',
            hh: '%d ώρες',
            d: 'μία μέρα',
            dd: '%d μέρες',
            M: 'ένας μήνας',
            MM: '%d μήνες',
            y: 'ένας χρόνος',
            yy: '%d χρόνια',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\u03b7/,
        ordinal: '%dη',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('en-au', {
        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
            '_'),
        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(
            '_'),
        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
            '_'),
        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
        longDateFormat: {
            LT: 'h:mm A',
            LTS: 'h:mm:ss A',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY h:mm A',
            LLLL: 'dddd, D MMMM YYYY h:mm A',
        },
        calendar: {
            sameDay: '[Today at] LT',
            nextDay: '[Tomorrow at] LT',
            nextWeek: 'dddd [at] LT',
            lastDay: '[Yesterday at] LT',
            lastWeek: '[Last] dddd [at] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'in %s',
            past: '%s ago',
            s: 'a few seconds',
            ss: '%d seconds',
            m: 'a minute',
            mm: '%d minutes',
            h: 'an hour',
            hh: '%d hours',
            d: 'a day',
            dd: '%d days',
            M: 'a month',
            MM: '%d months',
            y: 'a year',
            yy: '%d years',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
        ordinal: function (e) {
            var t = e % 10;
            return e + (1 == ~~(e % 100 / 10) ? 'th' : 1 == t ? 'st' : 2 == t
                ? 'nd'
                : 3 == t ? 'rd' : 'th');
        },
        week: { dow: 0, doy: 4 },
    }), n.defineLocale('en-ca', {
        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
            '_'),
        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(
            '_'),
        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
            '_'),
        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
        longDateFormat: {
            LT: 'h:mm A',
            LTS: 'h:mm:ss A',
            L: 'YYYY-MM-DD',
            LL: 'MMMM D, YYYY',
            LLL: 'MMMM D, YYYY h:mm A',
            LLLL: 'dddd, MMMM D, YYYY h:mm A',
        },
        calendar: {
            sameDay: '[Today at] LT',
            nextDay: '[Tomorrow at] LT',
            nextWeek: 'dddd [at] LT',
            lastDay: '[Yesterday at] LT',
            lastWeek: '[Last] dddd [at] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'in %s',
            past: '%s ago',
            s: 'a few seconds',
            ss: '%d seconds',
            m: 'a minute',
            mm: '%d minutes',
            h: 'an hour',
            hh: '%d hours',
            d: 'a day',
            dd: '%d days',
            M: 'a month',
            MM: '%d months',
            y: 'a year',
            yy: '%d years',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
        ordinal: function (e) {
            var t = e % 10;
            return e + (1 == ~~(e % 100 / 10) ? 'th' : 1 == t ? 'st' : 2 == t
                ? 'nd'
                : 3 == t ? 'rd' : 'th');
        },
    }), n.defineLocale('en-gb', {
        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
            '_'),
        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(
            '_'),
        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
            '_'),
        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Today at] LT',
            nextDay: '[Tomorrow at] LT',
            nextWeek: 'dddd [at] LT',
            lastDay: '[Yesterday at] LT',
            lastWeek: '[Last] dddd [at] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'in %s',
            past: '%s ago',
            s: 'a few seconds',
            ss: '%d seconds',
            m: 'a minute',
            mm: '%d minutes',
            h: 'an hour',
            hh: '%d hours',
            d: 'a day',
            dd: '%d days',
            M: 'a month',
            MM: '%d months',
            y: 'a year',
            yy: '%d years',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
        ordinal: function (e) {
            var t = e % 10;
            return e + (1 == ~~(e % 100 / 10) ? 'th' : 1 == t ? 'st' : 2 == t
                ? 'nd'
                : 3 == t ? 'rd' : 'th');
        },
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('en-ie', {
        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
            '_'),
        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(
            '_'),
        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
            '_'),
        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Today at] LT',
            nextDay: '[Tomorrow at] LT',
            nextWeek: 'dddd [at] LT',
            lastDay: '[Yesterday at] LT',
            lastWeek: '[Last] dddd [at] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'in %s',
            past: '%s ago',
            s: 'a few seconds',
            ss: '%d seconds',
            m: 'a minute',
            mm: '%d minutes',
            h: 'an hour',
            hh: '%d hours',
            d: 'a day',
            dd: '%d days',
            M: 'a month',
            MM: '%d months',
            y: 'a year',
            yy: '%d years',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
        ordinal: function (e) {
            var t = e % 10;
            return e + (1 == ~~(e % 100 / 10) ? 'th' : 1 == t ? 'st' : 2 == t
                ? 'nd'
                : 3 == t ? 'rd' : 'th');
        },
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('en-il', {
        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
            '_'),
        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(
            '_'),
        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
            '_'),
        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Today at] LT',
            nextDay: '[Tomorrow at] LT',
            nextWeek: 'dddd [at] LT',
            lastDay: '[Yesterday at] LT',
            lastWeek: '[Last] dddd [at] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'in %s',
            past: '%s ago',
            s: 'a few seconds',
            ss: '%d seconds',
            m: 'a minute',
            mm: '%d minutes',
            h: 'an hour',
            hh: '%d hours',
            d: 'a day',
            dd: '%d days',
            M: 'a month',
            MM: '%d months',
            y: 'a year',
            yy: '%d years',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
        ordinal: function (e) {
            var t = e % 10;
            return e + (1 == ~~(e % 100 / 10) ? 'th' : 1 == t ? 'st' : 2 == t
                ? 'nd'
                : 3 == t ? 'rd' : 'th');
        },
    }), n.defineLocale('en-in', {
        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
            '_'),
        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(
            '_'),
        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
            '_'),
        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
        longDateFormat: {
            LT: 'h:mm A',
            LTS: 'h:mm:ss A',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY h:mm A',
            LLLL: 'dddd, D MMMM YYYY h:mm A',
        },
        calendar: {
            sameDay: '[Today at] LT',
            nextDay: '[Tomorrow at] LT',
            nextWeek: 'dddd [at] LT',
            lastDay: '[Yesterday at] LT',
            lastWeek: '[Last] dddd [at] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'in %s',
            past: '%s ago',
            s: 'a few seconds',
            ss: '%d seconds',
            m: 'a minute',
            mm: '%d minutes',
            h: 'an hour',
            hh: '%d hours',
            d: 'a day',
            dd: '%d days',
            M: 'a month',
            MM: '%d months',
            y: 'a year',
            yy: '%d years',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
        ordinal: function (e) {
            var t = e % 10;
            return e + (1 == ~~(e % 100 / 10) ? 'th' : 1 == t ? 'st' : 2 == t
                ? 'nd'
                : 3 == t ? 'rd' : 'th');
        },
        week: { dow: 0, doy: 6 },
    }), n.defineLocale('en-nz', {
        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
            '_'),
        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(
            '_'),
        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
            '_'),
        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
        longDateFormat: {
            LT: 'h:mm A',
            LTS: 'h:mm:ss A',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY h:mm A',
            LLLL: 'dddd, D MMMM YYYY h:mm A',
        },
        calendar: {
            sameDay: '[Today at] LT',
            nextDay: '[Tomorrow at] LT',
            nextWeek: 'dddd [at] LT',
            lastDay: '[Yesterday at] LT',
            lastWeek: '[Last] dddd [at] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'in %s',
            past: '%s ago',
            s: 'a few seconds',
            ss: '%d seconds',
            m: 'a minute',
            mm: '%d minutes',
            h: 'an hour',
            hh: '%d hours',
            d: 'a day',
            dd: '%d days',
            M: 'a month',
            MM: '%d months',
            y: 'a year',
            yy: '%d years',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
        ordinal: function (e) {
            var t = e % 10;
            return e + (1 == ~~(e % 100 / 10) ? 'th' : 1 == t ? 'st' : 2 == t
                ? 'nd'
                : 3 == t ? 'rd' : 'th');
        },
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('en-sg', {
        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
            '_'),
        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(
            '_'),
        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
            '_'),
        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Today at] LT',
            nextDay: '[Tomorrow at] LT',
            nextWeek: 'dddd [at] LT',
            lastDay: '[Yesterday at] LT',
            lastWeek: '[Last] dddd [at] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'in %s',
            past: '%s ago',
            s: 'a few seconds',
            ss: '%d seconds',
            m: 'a minute',
            mm: '%d minutes',
            h: 'an hour',
            hh: '%d hours',
            d: 'a day',
            dd: '%d days',
            M: 'a month',
            MM: '%d months',
            y: 'a year',
            yy: '%d years',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
        ordinal: function (e) {
            var t = e % 10;
            return e + (1 == ~~(e % 100 / 10) ? 'th' : 1 == t ? 'st' : 2 == t
                ? 'nd'
                : 3 == t ? 'rd' : 'th');
        },
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('eo', {
        months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(
            '_'),
        monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split(
            '_'),
        weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split(
            '_'),
        weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),
        weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'YYYY-MM-DD',
            LL: '[la] D[-an de] MMMM, YYYY',
            LLL: '[la] D[-an de] MMMM, YYYY HH:mm',
            LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',
            llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',
        },
        meridiemParse: /[ap]\.t\.m/i,
        isPM: function (e) {return 'p' === e.charAt(0).toLowerCase();},
        meridiem: function (e, t, n) {
            return 11 < e
                ? n ? 'p.t.m.' : 'P.T.M.'
                : n ? 'a.t.m.' : 'A.T.M.';
        },
        calendar: {
            sameDay: '[Hodiaŭ je] LT',
            nextDay: '[Morgaŭ je] LT',
            nextWeek: 'dddd[n je] LT',
            lastDay: '[Hieraŭ je] LT',
            lastWeek: '[pasintan] dddd[n je] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'post %s',
            past: 'antaŭ %s',
            s: 'kelkaj sekundoj',
            ss: '%d sekundoj',
            m: 'unu minuto',
            mm: '%d minutoj',
            h: 'unu horo',
            hh: '%d horoj',
            d: 'unu tago',
            dd: '%d tagoj',
            M: 'unu monato',
            MM: '%d monatoj',
            y: 'unu jaro',
            yy: '%d jaroj',
        },
        dayOfMonthOrdinalParse: /\d{1,2}a/,
        ordinal: '%da',
        week: { dow: 1, doy: 7 },
    });
    var Ci = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
        '_'), Ei = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
        Oi = [
            /^ene/i,
            /^feb/i,
            /^mar/i,
            /^abr/i,
            /^may/i,
            /^jun/i,
            /^jul/i,
            /^ago/i,
            /^sep/i,
            /^oct/i,
            /^nov/i,
            /^dic/i],
        Yi = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
    n.defineLocale('es-do', {
        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
            '_'),
        monthsShort: function (e, t) {
            return e ? /-MMM-/.test(t)
                ? Ei[e.month()]
                : Ci[e.month()] : Ci;
        },
        monthsRegex: Yi,
        monthsShortRegex: Yi,
        monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
        monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
        monthsParse: Oi,
        longMonthsParse: Oi,
        shortMonthsParse: Oi,
        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split(
            '_'),
        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'h:mm A',
            LTS: 'h:mm:ss A',
            L: 'DD/MM/YYYY',
            LL: 'D [de] MMMM [de] YYYY',
            LLL: 'D [de] MMMM [de] YYYY h:mm A',
            LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',
        },
        calendar: {
            sameDay: function () {
                return '[hoy a la' + (1 !== this.hours() ? 's' : '') + '] LT';
            },
            nextDay: function () {
                return '[mañana a la' + (1 !== this.hours() ? 's' : '') +
                    '] LT';
            },
            nextWeek: function () {
                return 'dddd [a la' + (1 !== this.hours() ? 's' : '') + '] LT';
            },
            lastDay: function () {
                return '[ayer a la' + (1 !== this.hours() ? 's' : '') + '] LT';
            },
            lastWeek: function () {
                return '[el] dddd [pasado a la' +
                    (1 !== this.hours() ? 's' : '') + '] LT';
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'en %s',
            past: 'hace %s',
            s: 'unos segundos',
            ss: '%d segundos',
            m: 'un minuto',
            mm: '%d minutos',
            h: 'una hora',
            hh: '%d horas',
            d: 'un día',
            dd: '%d días',
            w: 'una semana',
            ww: '%d semanas',
            M: 'un mes',
            MM: '%d meses',
            y: 'un año',
            yy: '%d años',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\xba/,
        ordinal: '%dº',
        week: { dow: 1, doy: 4 },
    });
    var Pi = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
        '_'), Ii = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
        ji = [
            /^ene/i,
            /^feb/i,
            /^mar/i,
            /^abr/i,
            /^may/i,
            /^jun/i,
            /^jul/i,
            /^ago/i,
            /^sep/i,
            /^oct/i,
            /^nov/i,
            /^dic/i],
        Ni = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
    n.defineLocale('es-mx', {
        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
            '_'),
        monthsShort: function (e, t) {
            return e ? /-MMM-/.test(t)
                ? Ii[e.month()]
                : Pi[e.month()] : Pi;
        },
        monthsRegex: Ni,
        monthsShortRegex: Ni,
        monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
        monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
        monthsParse: ji,
        longMonthsParse: ji,
        shortMonthsParse: ji,
        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split(
            '_'),
        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D [de] MMMM [de] YYYY',
            LLL: 'D [de] MMMM [de] YYYY H:mm',
            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
        },
        calendar: {
            sameDay: function () {
                return '[hoy a la' + (1 !== this.hours() ? 's' : '') + '] LT';
            },
            nextDay: function () {
                return '[mañana a la' + (1 !== this.hours() ? 's' : '') +
                    '] LT';
            },
            nextWeek: function () {
                return 'dddd [a la' + (1 !== this.hours() ? 's' : '') + '] LT';
            },
            lastDay: function () {
                return '[ayer a la' + (1 !== this.hours() ? 's' : '') + '] LT';
            },
            lastWeek: function () {
                return '[el] dddd [pasado a la' +
                    (1 !== this.hours() ? 's' : '') + '] LT';
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'en %s',
            past: 'hace %s',
            s: 'unos segundos',
            ss: '%d segundos',
            m: 'un minuto',
            mm: '%d minutos',
            h: 'una hora',
            hh: '%d horas',
            d: 'un día',
            dd: '%d días',
            w: 'una semana',
            ww: '%d semanas',
            M: 'un mes',
            MM: '%d meses',
            y: 'un año',
            yy: '%d años',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\xba/,
        ordinal: '%dº',
        week: { dow: 0, doy: 4 },
        invalidDate: 'Fecha inválida',
    });
    var Hi = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
        '_'), Fi = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
        Ri = [
            /^ene/i,
            /^feb/i,
            /^mar/i,
            /^abr/i,
            /^may/i,
            /^jun/i,
            /^jul/i,
            /^ago/i,
            /^sep/i,
            /^oct/i,
            /^nov/i,
            /^dic/i],
        zi = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
    n.defineLocale('es-us', {
        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
            '_'),
        monthsShort: function (e, t) {
            return e ? /-MMM-/.test(t)
                ? Fi[e.month()]
                : Hi[e.month()] : Hi;
        },
        monthsRegex: zi,
        monthsShortRegex: zi,
        monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
        monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
        monthsParse: Ri,
        longMonthsParse: Ri,
        shortMonthsParse: Ri,
        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split(
            '_'),
        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'h:mm A',
            LTS: 'h:mm:ss A',
            L: 'MM/DD/YYYY',
            LL: 'D [de] MMMM [de] YYYY',
            LLL: 'D [de] MMMM [de] YYYY h:mm A',
            LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',
        },
        calendar: {
            sameDay: function () {
                return '[hoy a la' + (1 !== this.hours() ? 's' : '') + '] LT';
            },
            nextDay: function () {
                return '[mañana a la' + (1 !== this.hours() ? 's' : '') +
                    '] LT';
            },
            nextWeek: function () {
                return 'dddd [a la' + (1 !== this.hours() ? 's' : '') + '] LT';
            },
            lastDay: function () {
                return '[ayer a la' + (1 !== this.hours() ? 's' : '') + '] LT';
            },
            lastWeek: function () {
                return '[el] dddd [pasado a la' +
                    (1 !== this.hours() ? 's' : '') + '] LT';
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'en %s',
            past: 'hace %s',
            s: 'unos segundos',
            ss: '%d segundos',
            m: 'un minuto',
            mm: '%d minutos',
            h: 'una hora',
            hh: '%d horas',
            d: 'un día',
            dd: '%d días',
            w: 'una semana',
            ww: '%d semanas',
            M: 'un mes',
            MM: '%d meses',
            y: 'un año',
            yy: '%d años',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\xba/,
        ordinal: '%dº',
        week: { dow: 0, doy: 6 },
    });
    var Bi = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
        '_'), Wi = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
        Vi = [
            /^ene/i,
            /^feb/i,
            /^mar/i,
            /^abr/i,
            /^may/i,
            /^jun/i,
            /^jul/i,
            /^ago/i,
            /^sep/i,
            /^oct/i,
            /^nov/i,
            /^dic/i],
        qi = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;

    function Ui (e, t, n, i) {
        var a = {
            s: [
                'mõne sekundi',
                'mõni sekund',
                'paar sekundit'],
            ss: [e + 'sekundi', e + 'sekundit'],
            m: ['ühe minuti', 'üks minut'],
            mm: [e + ' minuti', e + ' minutit'],
            h: ['ühe tunni', 'tund aega', 'üks tund'],
            hh: [e + ' tunni', e + ' tundi'],
            d: ['ühe päeva', 'üks päev'],
            M: ['kuu aja', 'kuu aega', 'üks kuu'],
            MM: [e + ' kuu', e + ' kuud'],
            y: ['ühe aasta', 'aasta', 'üks aasta'],
            yy: [e + ' aasta', e + ' aastat'],
        };
        return t ? a[n][2] ? a[n][2] : a[n][1] : i ? a[n][0] : a[n][1];
    }

    n.defineLocale('es', {
        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
            '_'),
        monthsShort: function (e, t) {
            return e ? /-MMM-/.test(t)
                ? Wi[e.month()]
                : Bi[e.month()] : Bi;
        },
        monthsRegex: qi,
        monthsShortRegex: qi,
        monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
        monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
        monthsParse: Vi,
        longMonthsParse: Vi,
        shortMonthsParse: Vi,
        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split(
            '_'),
        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D [de] MMMM [de] YYYY',
            LLL: 'D [de] MMMM [de] YYYY H:mm',
            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
        },
        calendar: {
            sameDay: function () {
                return '[hoy a la' + (1 !== this.hours() ? 's' : '') + '] LT';
            },
            nextDay: function () {
                return '[mañana a la' + (1 !== this.hours() ? 's' : '') +
                    '] LT';
            },
            nextWeek: function () {
                return 'dddd [a la' + (1 !== this.hours() ? 's' : '') + '] LT';
            },
            lastDay: function () {
                return '[ayer a la' + (1 !== this.hours() ? 's' : '') + '] LT';
            },
            lastWeek: function () {
                return '[el] dddd [pasado a la' +
                    (1 !== this.hours() ? 's' : '') + '] LT';
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'en %s',
            past: 'hace %s',
            s: 'unos segundos',
            ss: '%d segundos',
            m: 'un minuto',
            mm: '%d minutos',
            h: 'una hora',
            hh: '%d horas',
            d: 'un día',
            dd: '%d días',
            w: 'una semana',
            ww: '%d semanas',
            M: 'un mes',
            MM: '%d meses',
            y: 'un año',
            yy: '%d años',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\xba/,
        ordinal: '%dº',
        week: { dow: 1, doy: 4 },
        invalidDate: 'Fecha inválida',
    }), n.defineLocale('et', {
        months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(
            '_'),
        monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split(
            '_'),
        weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(
            '_'),
        weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),
        weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D. MMMM YYYY',
            LLL: 'D. MMMM YYYY H:mm',
            LLLL: 'dddd, D. MMMM YYYY H:mm',
        },
        calendar: {
            sameDay: '[Täna,] LT',
            nextDay: '[Homme,] LT',
            nextWeek: '[Järgmine] dddd LT',
            lastDay: '[Eile,] LT',
            lastWeek: '[Eelmine] dddd LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s pärast',
            past: '%s tagasi',
            s: Ui,
            ss: Ui,
            m: Ui,
            mm: Ui,
            h: Ui,
            hh: Ui,
            d: Ui,
            dd: '%d päeva',
            M: Ui,
            MM: Ui,
            y: Ui,
            yy: Ui,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('eu', {
        months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(
            '_'),
        monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(
            '_'),
        weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),
        weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'YYYY-MM-DD',
            LL: 'YYYY[ko] MMMM[ren] D[a]',
            LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',
            LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
            l: 'YYYY-M-D',
            ll: 'YYYY[ko] MMM D[a]',
            lll: 'YYYY[ko] MMM D[a] HH:mm',
            llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',
        },
        calendar: {
            sameDay: '[gaur] LT[etan]',
            nextDay: '[bihar] LT[etan]',
            nextWeek: 'dddd LT[etan]',
            lastDay: '[atzo] LT[etan]',
            lastWeek: '[aurreko] dddd LT[etan]',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s barru',
            past: 'duela %s',
            s: 'segundo batzuk',
            ss: '%d segundo',
            m: 'minutu bat',
            mm: '%d minutu',
            h: 'ordu bat',
            hh: '%d ordu',
            d: 'egun bat',
            dd: '%d egun',
            M: 'hilabete bat',
            MM: '%d hilabete',
            y: 'urte bat',
            yy: '%d urte',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 7 },
    });
    var Xi = {
        1: '۱',
        2: '۲',
        3: '۳',
        4: '۴',
        5: '۵',
        6: '۶',
        7: '۷',
        8: '۸',
        9: '۹',
        0: '۰',
    }, $i = {
        '۱': '1',
        '۲': '2',
        '۳': '3',
        '۴': '4',
        '۵': '5',
        '۶': '6',
        '۷': '7',
        '۸': '8',
        '۹': '9',
        '۰': '0',
    };
    n.defineLocale('fa', {
        months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(
            '_'),
        monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(
            '_'),
        weekdays: 'یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه'.split(
            '_'),
        weekdaysShort: 'یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه'.split(
            '_'),
        weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        meridiemParse: /\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631|\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/,
        isPM: function (e) {
            return /\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/.test(e);
        },
        meridiem: function (e, t, n) {
            return e < 12
                ? 'قبل از ظهر'
                : 'بعد از ظهر';
        },
        calendar: {
            sameDay: '[امروز ساعت] LT',
            nextDay: '[فردا ساعت] LT',
            nextWeek: 'dddd [ساعت] LT',
            lastDay: '[دیروز ساعت] LT',
            lastWeek: 'dddd [پیش] [ساعت] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'در %s',
            past: '%s پیش',
            s: 'چند ثانیه',
            ss: '%d ثانیه',
            m: 'یک دقیقه',
            mm: '%d دقیقه',
            h: 'یک ساعت',
            hh: '%d ساعت',
            d: 'یک روز',
            dd: '%d روز',
            M: 'یک ماه',
            MM: '%d ماه',
            y: 'یک سال',
            yy: '%d سال',
        },
        preparse: function (e) {
            return e.replace(/[\u06f0-\u06f9]/g,
                (function (e) {return $i[e];})).
                replace(/\u060c/g, ',');
        },
        postformat: function (e) {
            return e.replace(/\d/g, (function (e) {return Xi[e];})).
                replace(/,/g, '،');
        },
        dayOfMonthOrdinalParse: /\d{1,2}\u0645/,
        ordinal: '%dم',
        week: { dow: 6, doy: 12 },
    });
    var Gi = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(
        ' '), Zi = [
        'nolla',
        'yhden',
        'kahden',
        'kolmen',
        'neljän',
        'viiden',
        'kuuden',
        Gi[7],
        Gi[8],
        Gi[9]];

    function Ki (e, t, n, i) {
        var a, r = '';
        switch (n) {
            case's':
                return i ? 'muutaman sekunnin' : 'muutama sekunti';
            case'ss':
                r = i ? 'sekunnin' : 'sekuntia';
                break;
            case'm':
                return i ? 'minuutin' : 'minuutti';
            case'mm':
                r = i ? 'minuutin' : 'minuuttia';
                break;
            case'h':
                return i ? 'tunnin' : 'tunti';
            case'hh':
                r = i ? 'tunnin' : 'tuntia';
                break;
            case'd':
                return i ? 'päivän' : 'päivä';
            case'dd':
                r = i ? 'päivän' : 'päivää';
                break;
            case'M':
                return i ? 'kuukauden' : 'kuukausi';
            case'MM':
                r = i ? 'kuukauden' : 'kuukautta';
                break;
            case'y':
                return i ? 'vuoden' : 'vuosi';
            case'yy':
                r = i ? 'vuoden' : 'vuotta';
        }
        return ((a = e) < 10 ? i ? Zi[a] : Gi[a] : a) + ' ' + r;
    }

    n.defineLocale('fi', {
        months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(
            '_'),
        monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(
            '_'),
        weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(
            '_'),
        weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),
        weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),
        longDateFormat: {
            LT: 'HH.mm',
            LTS: 'HH.mm.ss',
            L: 'DD.MM.YYYY',
            LL: 'Do MMMM[ta] YYYY',
            LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',
            LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
            l: 'D.M.YYYY',
            ll: 'Do MMM YYYY',
            lll: 'Do MMM YYYY, [klo] HH.mm',
            llll: 'ddd, Do MMM YYYY, [klo] HH.mm',
        },
        calendar: {
            sameDay: '[tänään] [klo] LT',
            nextDay: '[huomenna] [klo] LT',
            nextWeek: 'dddd [klo] LT',
            lastDay: '[eilen] [klo] LT',
            lastWeek: '[viime] dddd[na] [klo] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s päästä',
            past: '%s sitten',
            s: Ki,
            ss: Ki,
            m: Ki,
            mm: Ki,
            h: Ki,
            hh: Ki,
            d: Ki,
            dd: Ki,
            M: Ki,
            MM: Ki,
            y: Ki,
            yy: Ki,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('fil', {
        months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(
            '_'),
        monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split(
            '_'),
        weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(
            '_'),
        weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
        weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'MM/D/YYYY',
            LL: 'MMMM D, YYYY',
            LLL: 'MMMM D, YYYY HH:mm',
            LLLL: 'dddd, MMMM DD, YYYY HH:mm',
        },
        calendar: {
            sameDay: 'LT [ngayong araw]',
            nextDay: '[Bukas ng] LT',
            nextWeek: 'LT [sa susunod na] dddd',
            lastDay: 'LT [kahapon]',
            lastWeek: 'LT [noong nakaraang] dddd',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'sa loob ng %s',
            past: '%s ang nakalipas',
            s: 'ilang segundo',
            ss: '%d segundo',
            m: 'isang minuto',
            mm: '%d minuto',
            h: 'isang oras',
            hh: '%d oras',
            d: 'isang araw',
            dd: '%d araw',
            M: 'isang buwan',
            MM: '%d buwan',
            y: 'isang taon',
            yy: '%d taon',
        },
        dayOfMonthOrdinalParse: /\d{1,2}/,
        ordinal: function (e) {return e;},
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('fo', {
        months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(
            '_'),
        monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split(
            '_'),
        weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(
            '_'),
        weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
        weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D. MMMM, YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Í dag kl.] LT',
            nextDay: '[Í morgin kl.] LT',
            nextWeek: 'dddd [kl.] LT',
            lastDay: '[Í gjár kl.] LT',
            lastWeek: '[síðstu] dddd [kl] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'um %s',
            past: '%s síðani',
            s: 'fá sekund',
            ss: '%d sekundir',
            m: 'ein minuttur',
            mm: '%d minuttir',
            h: 'ein tími',
            hh: '%d tímar',
            d: 'ein dagur',
            dd: '%d dagar',
            M: 'ein mánaður',
            MM: '%d mánaðir',
            y: 'eitt ár',
            yy: '%d ár',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('fr-ca', {
        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
            '_'),
        monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split(
            '_'),
        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'YYYY-MM-DD',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Aujourd’hui à] LT',
            nextDay: '[Demain à] LT',
            nextWeek: 'dddd [à] LT',
            lastDay: '[Hier à] LT',
            lastWeek: 'dddd [dernier à] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'dans %s',
            past: 'il y a %s',
            s: 'quelques secondes',
            ss: '%d secondes',
            m: 'une minute',
            mm: '%d minutes',
            h: 'une heure',
            hh: '%d heures',
            d: 'un jour',
            dd: '%d jours',
            M: 'un mois',
            MM: '%d mois',
            y: 'un an',
            yy: '%d ans',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
        ordinal: function (e, t) {
            switch (t) {
                default:
                case'M':
                case'Q':
                case'D':
                case'DDD':
                case'd':
                    return e + (1 === e ? 'er' : 'e');
                case'w':
                case'W':
                    return e + (1 === e ? 're' : 'e');
            }
        },
    }), n.defineLocale('fr-ch', {
        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
            '_'),
        monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split(
            '_'),
        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Aujourd’hui à] LT',
            nextDay: '[Demain à] LT',
            nextWeek: 'dddd [à] LT',
            lastDay: '[Hier à] LT',
            lastWeek: 'dddd [dernier à] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'dans %s',
            past: 'il y a %s',
            s: 'quelques secondes',
            ss: '%d secondes',
            m: 'une minute',
            mm: '%d minutes',
            h: 'une heure',
            hh: '%d heures',
            d: 'un jour',
            dd: '%d jours',
            M: 'un mois',
            MM: '%d mois',
            y: 'un an',
            yy: '%d ans',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
        ordinal: function (e, t) {
            switch (t) {
                default:
                case'M':
                case'Q':
                case'D':
                case'DDD':
                case'd':
                    return e + (1 === e ? 'er' : 'e');
                case'w':
                case'W':
                    return e + (1 === e ? 're' : 'e');
            }
        },
        week: { dow: 1, doy: 4 },
    });
    var Ji = /(janv\.?|f\xe9vr\.?|mars|avr\.?|mai|juin|juil\.?|ao\xfbt|sept\.?|oct\.?|nov\.?|d\xe9c\.?|janvier|f\xe9vrier|mars|avril|mai|juin|juillet|ao\xfbt|septembre|octobre|novembre|d\xe9cembre)/i,
        Qi = [
            /^janv/i,
            /^f\xe9vr/i,
            /^mars/i,
            /^avr/i,
            /^mai/i,
            /^juin/i,
            /^juil/i,
            /^ao\xfbt/i,
            /^sept/i,
            /^oct/i,
            /^nov/i,
            /^d\xe9c/i];
    n.defineLocale('fr', {
        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
            '_'),
        monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
            '_'),
        monthsRegex: Ji,
        monthsShortRegex: Ji,
        monthsStrictRegex: /^(janvier|f\xe9vrier|mars|avril|mai|juin|juillet|ao\xfbt|septembre|octobre|novembre|d\xe9cembre)/i,
        monthsShortStrictRegex: /(janv\.?|f\xe9vr\.?|mars|avr\.?|mai|juin|juil\.?|ao\xfbt|sept\.?|oct\.?|nov\.?|d\xe9c\.?)/i,
        monthsParse: Qi,
        longMonthsParse: Qi,
        shortMonthsParse: Qi,
        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split(
            '_'),
        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Aujourd’hui à] LT',
            nextDay: '[Demain à] LT',
            nextWeek: 'dddd [à] LT',
            lastDay: '[Hier à] LT',
            lastWeek: 'dddd [dernier à] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'dans %s',
            past: 'il y a %s',
            s: 'quelques secondes',
            ss: '%d secondes',
            m: 'une minute',
            mm: '%d minutes',
            h: 'une heure',
            hh: '%d heures',
            d: 'un jour',
            dd: '%d jours',
            w: 'une semaine',
            ww: '%d semaines',
            M: 'un mois',
            MM: '%d mois',
            y: 'un an',
            yy: '%d ans',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(er|)/,
        ordinal: function (e, t) {
            switch (t) {
                case'D':
                    return e + (1 === e ? 'er' : '');
                default:
                case'M':
                case'Q':
                case'DDD':
                case'd':
                    return e + (1 === e ? 'er' : 'e');
                case'w':
                case'W':
                    return e + (1 === e ? 're' : 'e');
            }
        },
        week: { dow: 1, doy: 4 },
    });
    var ea = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split(
        '_'), ta = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');

    function na (e, t, n, i) {
        var a = {
            s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],
            ss: [e + ' सॅकंडांनी', e + ' सॅकंड'],
            m: ['एका मिणटान', 'एक मिनूट'],
            mm: [e + ' मिणटांनी', e + ' मिणटां'],
            h: ['एका वरान', 'एक वर'],
            hh: [e + ' वरांनी', e + ' वरां'],
            d: ['एका दिसान', 'एक दीस'],
            dd: [e + ' दिसांनी', e + ' दीस'],
            M: ['एका म्हयन्यान', 'एक म्हयनो'],
            MM: [e + ' म्हयन्यानी', e + ' म्हयने'],
            y: ['एका वर्सान', 'एक वर्स'],
            yy: [e + ' वर्सांनी', e + ' वर्सां'],
        };
        return i ? a[n][0] : a[n][1];
    }

    function ia (e, t, n, i) {
        var a = {
            s: [
                'thoddea sekondamni',
                'thodde sekond'],
            ss: [e + ' sekondamni', e + ' sekond'],
            m: ['eka mintan', 'ek minut'],
            mm: [e + ' mintamni', e + ' mintam'],
            h: ['eka voran', 'ek vor'],
            hh: [e + ' voramni', e + ' voram'],
            d: ['eka disan', 'ek dis'],
            dd: [e + ' disamni', e + ' dis'],
            M: ['eka mhoinean', 'ek mhoino'],
            MM: [e + ' mhoineamni', e + ' mhoine'],
            y: ['eka vorsan', 'ek voros'],
            yy: [e + ' vorsamni', e + ' vorsam'],
        };
        return i ? a[n][0] : a[n][1];
    }

    n.defineLocale('fy', {
        months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(
            '_'),
        monthsShort: function (e, t) {
            return e ? /-MMM-/.test(t)
                ? ta[e.month()]
                : ea[e.month()] : ea;
        },
        monthsParseExact: !0,
        weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(
            '_'),
        weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),
        weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD-MM-YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[hjoed om] LT',
            nextDay: '[moarn om] LT',
            nextWeek: 'dddd [om] LT',
            lastDay: '[juster om] LT',
            lastWeek: '[ôfrûne] dddd [om] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'oer %s',
            past: '%s lyn',
            s: 'in pear sekonden',
            ss: '%d sekonden',
            m: 'ien minút',
            mm: '%d minuten',
            h: 'ien oere',
            hh: '%d oeren',
            d: 'ien dei',
            dd: '%d dagen',
            M: 'ien moanne',
            MM: '%d moannen',
            y: 'ien jier',
            yy: '%d jierren',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
        ordinal: function (e) {
            return e + (1 === e || 8 === e || 20 <= e ? 'ste' : 'de');
        },
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('ga', {
        months: [
            'Eanáir',
            'Feabhra',
            'Márta',
            'Aibreán',
            'Bealtaine',
            'Meitheamh',
            'Iúil',
            'Lúnasa',
            'Meán Fómhair',
            'Deireadh Fómhair',
            'Samhain',
            'Nollaig'],
        monthsShort: [
            'Ean',
            'Feabh',
            'Márt',
            'Aib',
            'Beal',
            'Meith',
            'Iúil',
            'Lún',
            'M.F.',
            'D.F.',
            'Samh',
            'Noll'],
        monthsParseExact: !0,
        weekdays: [
            'Dé Domhnaigh',
            'Dé Luain',
            'Dé Máirt',
            'Dé Céadaoin',
            'Déardaoin',
            'Dé hAoine',
            'Dé Sathairn'],
        weekdaysShort: [
            'Domh',
            'Luan',
            'Máirt',
            'Céad',
            'Déar',
            'Aoine',
            'Sath'],
        weekdaysMin: ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'],
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Inniu ag] LT',
            nextDay: '[Amárach ag] LT',
            nextWeek: 'dddd [ag] LT',
            lastDay: '[Inné ag] LT',
            lastWeek: 'dddd [seo caite] [ag] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'i %s',
            past: '%s ó shin',
            s: 'cúpla soicind',
            ss: '%d soicind',
            m: 'nóiméad',
            mm: '%d nóiméad',
            h: 'uair an chloig',
            hh: '%d uair an chloig',
            d: 'lá',
            dd: '%d lá',
            M: 'mí',
            MM: '%d míonna',
            y: 'bliain',
            yy: '%d bliain',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/,
        ordinal: function (e) {
            return e + (1 === e ? 'd' : e % 10 == 2 ? 'na' : 'mh');
        },
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('gd', {
        months: [
            'Am Faoilleach',
            'An Gearran',
            'Am Màrt',
            'An Giblean',
            'An Cèitean',
            'An t-Ògmhios',
            'An t-Iuchar',
            'An Lùnastal',
            'An t-Sultain',
            'An Dàmhair',
            'An t-Samhain',
            'An Dùbhlachd'],
        monthsShort: [
            'Faoi',
            'Gear',
            'Màrt',
            'Gibl',
            'Cèit',
            'Ògmh',
            'Iuch',
            'Lùn',
            'Sult',
            'Dàmh',
            'Samh',
            'Dùbh'],
        monthsParseExact: !0,
        weekdays: [
            'Didòmhnaich',
            'Diluain',
            'Dimàirt',
            'Diciadain',
            'Diardaoin',
            'Dihaoine',
            'Disathairne'],
        weekdaysShort: ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],
        weekdaysMin: ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'],
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[An-diugh aig] LT',
            nextDay: '[A-màireach aig] LT',
            nextWeek: 'dddd [aig] LT',
            lastDay: '[An-dè aig] LT',
            lastWeek: 'dddd [seo chaidh] [aig] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'ann an %s',
            past: 'bho chionn %s',
            s: 'beagan diogan',
            ss: '%d diogan',
            m: 'mionaid',
            mm: '%d mionaidean',
            h: 'uair',
            hh: '%d uairean',
            d: 'latha',
            dd: '%d latha',
            M: 'mìos',
            MM: '%d mìosan',
            y: 'bliadhna',
            yy: '%d bliadhna',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/,
        ordinal: function (e) {
            return e + (1 === e ? 'd' : e % 10 == 2 ? 'na' : 'mh');
        },
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('gl', {
        months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(
            '_'),
        monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),
        weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),
        weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D [de] MMMM [de] YYYY',
            LLL: 'D [de] MMMM [de] YYYY H:mm',
            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
        },
        calendar: {
            sameDay: function () {
                return '[hoxe ' + (1 !== this.hours() ? 'ás' : 'á') + '] LT';
            },
            nextDay: function () {
                return '[mañá ' + (1 !== this.hours() ? 'ás' : 'á') + '] LT';
            },
            nextWeek: function () {
                return 'dddd [' + (1 !== this.hours() ? 'ás' : 'a') + '] LT';
            },
            lastDay: function () {
                return '[onte ' + (1 !== this.hours() ? 'á' : 'a') + '] LT';
            },
            lastWeek: function () {
                return '[o] dddd [pasado ' + (1 !== this.hours() ? 'ás' : 'a') +
                    '] LT';
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: function (e) {
                return 0 === e.indexOf('un')
                    ? 'n' + e
                    : 'en ' + e;
            },
            past: 'hai %s',
            s: 'uns segundos',
            ss: '%d segundos',
            m: 'un minuto',
            mm: '%d minutos',
            h: 'unha hora',
            hh: '%d horas',
            d: 'un día',
            dd: '%d días',
            M: 'un mes',
            MM: '%d meses',
            y: 'un ano',
            yy: '%d anos',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\xba/,
        ordinal: '%dº',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('gom-deva', {
        months: {
            standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(
                '_'),
            format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(
                '_'),
            isFormat: /MMMM(\s)+D[oD]?/,
        },
        monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split(
            '_'),
        weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),
        weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'A h:mm [वाजतां]',
            LTS: 'A h:mm:ss [वाजतां]',
            L: 'DD-MM-YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY A h:mm [वाजतां]',
            LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',
            llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',
        },
        calendar: {
            sameDay: '[आयज] LT',
            nextDay: '[फाल्यां] LT',
            nextWeek: '[फुडलो] dddd[,] LT',
            lastDay: '[काल] LT',
            lastWeek: '[फाटलो] dddd[,] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s',
            past: '%s आदीं',
            s: na,
            ss: na,
            m: na,
            mm: na,
            h: na,
            hh: na,
            d: na,
            dd: na,
            M: na,
            MM: na,
            y: na,
            yy: na,
        },
        dayOfMonthOrdinalParse: /\d{1,2}(\u0935\u0947\u0930)/,
        ordinal: function (e, t) {
            switch (t) {
                case'D':
                    return e + 'वेर';
                default:
                case'M':
                case'Q':
                case'DDD':
                case'd':
                case'w':
                case'W':
                    return e;
            }
        },
        week: { dow: 0, doy: 3 },
        meridiemParse: /\u0930\u093e\u0924\u0940|\u0938\u0915\u093e\u0933\u0940\u0902|\u0926\u0928\u092a\u093e\u0930\u093e\u0902|\u0938\u093e\u0902\u091c\u0947/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'राती' === t
                ? e < 4 ? e : e + 12
                : 'सकाळीं' === t ? e : 'दनपारां' === t
                    ? 12 < e ? e : e + 12
                    : 'सांजे' === t ? e + 12 : void 0;
        },
        meridiem: function (e, t, n) {
            return e < 4 ? 'राती' : e < 12
                ? 'सकाळीं'
                : e < 16 ? 'दनपारां' : e < 20 ? 'सांजे' : 'राती';
        },
    }), n.defineLocale('gom-latn', {
        months: {
            standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(
                '_'),
            format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(
                '_'),
            isFormat: /MMMM(\s)+D[oD]?/,
        },
        monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son\'var'.split(
            '_'),
        weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),
        weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'A h:mm [vazta]',
            LTS: 'A h:mm:ss [vazta]',
            L: 'DD-MM-YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY A h:mm [vazta]',
            LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',
            llll: 'ddd, D MMM YYYY, A h:mm [vazta]',
        },
        calendar: {
            sameDay: '[Aiz] LT',
            nextDay: '[Faleam] LT',
            nextWeek: '[Fuddlo] dddd[,] LT',
            lastDay: '[Kal] LT',
            lastWeek: '[Fattlo] dddd[,] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s',
            past: '%s adim',
            s: ia,
            ss: ia,
            m: ia,
            mm: ia,
            h: ia,
            hh: ia,
            d: ia,
            dd: ia,
            M: ia,
            MM: ia,
            y: ia,
            yy: ia,
        },
        dayOfMonthOrdinalParse: /\d{1,2}(er)/,
        ordinal: function (e, t) {
            switch (t) {
                case'D':
                    return e + 'er';
                default:
                case'M':
                case'Q':
                case'DDD':
                case'd':
                case'w':
                case'W':
                    return e;
            }
        },
        week: { dow: 0, doy: 3 },
        meridiemParse: /rati|sokallim|donparam|sanje/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'rati' === t
                ? e < 4 ? e : e + 12
                : 'sokallim' === t ? e : 'donparam' === t
                    ? 12 < e ? e : e + 12
                    : 'sanje' === t ? e + 12 : void 0;
        },
        meridiem: function (e, t, n) {
            return e < 4 ? 'rati' : e < 12
                ? 'sokallim'
                : e < 16 ? 'donparam' : e < 20 ? 'sanje' : 'rati';
        },
    });
    var aa = {
        1: '૧',
        2: '૨',
        3: '૩',
        4: '૪',
        5: '૫',
        6: '૬',
        7: '૭',
        8: '૮',
        9: '૯',
        0: '૦',
    }, ra = {
        '૧': '1',
        '૨': '2',
        '૩': '3',
        '૪': '4',
        '૫': '5',
        '૬': '6',
        '૭': '7',
        '૮': '8',
        '૯': '9',
        '૦': '0',
    };
    n.defineLocale('gu', {
        months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(
            '_'),
        monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(
            '_'),
        weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),
        weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),
        longDateFormat: {
            LT: 'A h:mm વાગ્યે',
            LTS: 'A h:mm:ss વાગ્યે',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, A h:mm વાગ્યે',
            LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',
        },
        calendar: {
            sameDay: '[આજ] LT',
            nextDay: '[કાલે] LT',
            nextWeek: 'dddd, LT',
            lastDay: '[ગઇકાલે] LT',
            lastWeek: '[પાછલા] dddd, LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s મા',
            past: '%s પહેલા',
            s: 'અમુક પળો',
            ss: '%d સેકંડ',
            m: 'એક મિનિટ',
            mm: '%d મિનિટ',
            h: 'એક કલાક',
            hh: '%d કલાક',
            d: 'એક દિવસ',
            dd: '%d દિવસ',
            M: 'એક મહિનો',
            MM: '%d મહિનો',
            y: 'એક વર્ષ',
            yy: '%d વર્ષ',
        },
        preparse: function (e) {
            return e.replace(
                /[\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0ae6]/g,
                (function (e) {return ra[e];}));
        },
        postformat: function (e) {
            return e.replace(/\d/g, (function (e) {return aa[e];}));
        },
        meridiemParse: /\u0ab0\u0abe\u0aa4|\u0aac\u0aaa\u0acb\u0ab0|\u0ab8\u0ab5\u0abe\u0ab0|\u0ab8\u0abe\u0a82\u0a9c/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'રાત' === t
                ? e < 4 ? e : e + 12
                : 'સવાર' === t ? e : 'બપોર' === t
                    ? 10 <= e ? e : e + 12
                    : 'સાંજ' === t ? e + 12 : void 0;
        },
        meridiem: function (e, t, n) {
            return e < 4 ? 'રાત' : e < 10
                ? 'સવાર'
                : e < 17 ? 'બપોર' : e < 20 ? 'સાંજ' : 'રાત';
        },
        week: { dow: 0, doy: 6 },
    }), n.defineLocale('he', {
        months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(
            '_'),
        monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split(
            '_'),
        weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
        weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
        weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D [ב]MMMM YYYY',
            LLL: 'D [ב]MMMM YYYY HH:mm',
            LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',
            l: 'D/M/YYYY',
            ll: 'D MMM YYYY',
            lll: 'D MMM YYYY HH:mm',
            llll: 'ddd, D MMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[היום ב־]LT',
            nextDay: '[מחר ב־]LT',
            nextWeek: 'dddd [בשעה] LT',
            lastDay: '[אתמול ב־]LT',
            lastWeek: '[ביום] dddd [האחרון בשעה] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'בעוד %s',
            past: 'לפני %s',
            s: 'מספר שניות',
            ss: '%d שניות',
            m: 'דקה',
            mm: '%d דקות',
            h: 'שעה',
            hh: function (e) {return 2 === e ? 'שעתיים' : e + ' שעות';},
            d: 'יום',
            dd: function (e) {return 2 === e ? 'יומיים' : e + ' ימים';},
            M: 'חודש',
            MM: function (e) {return 2 === e ? 'חודשיים' : e + ' חודשים';},
            y: 'שנה',
            yy: function (e) {
                return 2 === e ? 'שנתיים' : e % 10 == 0 && 10 !== e
                    ? e + ' שנה'
                    : e + ' שנים';
            },
        },
        meridiemParse: /\u05d0\u05d7\u05d4"\u05e6|\u05dc\u05e4\u05e0\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8|\u05d1\u05d1\u05d5\u05e7\u05e8|\u05d1\u05e2\u05e8\u05d1/i,
        isPM: function (e) {
            return /^(\u05d0\u05d7\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05d1\u05e2\u05e8\u05d1)$/.test(
                e);
        },
        meridiem: function (e, t, n) {
            return e < 5 ? 'לפנות בוקר' : e < 10
                ? 'בבוקר'
                : e < 12 ? n ? 'לפנה"צ' : 'לפני הצהריים' : e < 18 ? n
                    ? 'אחה"צ'
                    : 'אחרי הצהריים' : 'בערב';
        },
    });
    var oa = {
        1: '१',
        2: '२',
        3: '३',
        4: '४',
        5: '५',
        6: '६',
        7: '७',
        8: '८',
        9: '९',
        0: '०',
    }, sa = {
        '१': '1',
        '२': '2',
        '३': '3',
        '४': '4',
        '५': '5',
        '६': '6',
        '७': '7',
        '८': '8',
        '९': '9',
        '०': '0',
    }, la = [
        /^\u091c\u0928/i,
        /^\u092b\u093c\u0930|\u092b\u0930/i,
        /^\u092e\u093e\u0930\u094d\u091a/i,
        /^\u0905\u092a\u094d\u0930\u0948/i,
        /^\u092e\u0908/i,
        /^\u091c\u0942\u0928/i,
        /^\u091c\u0941\u0932/i,
        /^\u0905\u0917/i,
        /^\u0938\u093f\u0924\u0902|\u0938\u093f\u0924/i,
        /^\u0905\u0915\u094d\u091f\u0942/i,
        /^\u0928\u0935|\u0928\u0935\u0902/i,
        /^\u0926\u093f\u0938\u0902|\u0926\u093f\u0938/i];

    function ca (e, t, n) {
        var i = e + ' ';
        switch (n) {
            case'ss':
                return i + (1 === e ? 'sekunda' : 2 === e || 3 === e || 4 === e
                    ? 'sekunde'
                    : 'sekundi');
            case'm':
                return t ? 'jedna minuta' : 'jedne minute';
            case'mm':
                return i + (1 === e || 2 !== e && 3 !== e && 4 !== e
                    ? 'minuta'
                    : 'minute');
            case'h':
                return t ? 'jedan sat' : 'jednog sata';
            case'hh':
                return i + (1 === e ? 'sat' : 2 === e || 3 === e || 4 === e
                    ? 'sata'
                    : 'sati');
            case'dd':
                return i + (1 === e ? 'dan' : 'dana');
            case'MM':
                return i + (1 === e ? 'mjesec' : 2 === e || 3 === e || 4 === e
                    ? 'mjeseca'
                    : 'mjeseci');
            case'yy':
                return i + (1 === e || 2 !== e && 3 !== e && 4 !== e
                    ? 'godina'
                    : 'godine');
        }
    }

    n.defineLocale('hi', {
        months: {
            format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(
                '_'),
            standalone: 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(
                '_'),
        },
        monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split(
            '_'),
        weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split(
            '_'),
        weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
        weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),
        longDateFormat: {
            LT: 'A h:mm बजे',
            LTS: 'A h:mm:ss बजे',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, A h:mm बजे',
            LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',
        },
        monthsParse: la,
        longMonthsParse: la,
        shortMonthsParse: [
            /^\u091c\u0928/i,
            /^\u092b\u093c\u0930/i,
            /^\u092e\u093e\u0930\u094d\u091a/i,
            /^\u0905\u092a\u094d\u0930\u0948/i,
            /^\u092e\u0908/i,
            /^\u091c\u0942\u0928/i,
            /^\u091c\u0941\u0932/i,
            /^\u0905\u0917/i,
            /^\u0938\u093f\u0924/i,
            /^\u0905\u0915\u094d\u091f\u0942/i,
            /^\u0928\u0935/i,
            /^\u0926\u093f\u0938/i],
        monthsRegex: /^(\u091c\u0928\u0935\u0930\u0940|\u091c\u0928\.?|\u092b\u093c\u0930\u0935\u0930\u0940|\u092b\u0930\u0935\u0930\u0940|\u092b\u093c\u0930\.?|\u092e\u093e\u0930\u094d\u091a?|\u0905\u092a\u094d\u0930\u0948\u0932|\u0905\u092a\u094d\u0930\u0948\.?|\u092e\u0908?|\u091c\u0942\u0928?|\u091c\u0941\u0932\u093e\u0908|\u091c\u0941\u0932\.?|\u0905\u0917\u0938\u094d\u0924|\u0905\u0917\.?|\u0938\u093f\u0924\u092e\u094d\u092c\u0930|\u0938\u093f\u0924\u0902\u092c\u0930|\u0938\u093f\u0924\.?|\u0905\u0915\u094d\u091f\u0942\u092c\u0930|\u0905\u0915\u094d\u091f\u0942\.?|\u0928\u0935\u092e\u094d\u092c\u0930|\u0928\u0935\u0902\u092c\u0930|\u0928\u0935\.?|\u0926\u093f\u0938\u092e\u094d\u092c\u0930|\u0926\u093f\u0938\u0902\u092c\u0930|\u0926\u093f\u0938\.?)/i,
        monthsShortRegex: /^(\u091c\u0928\u0935\u0930\u0940|\u091c\u0928\.?|\u092b\u093c\u0930\u0935\u0930\u0940|\u092b\u0930\u0935\u0930\u0940|\u092b\u093c\u0930\.?|\u092e\u093e\u0930\u094d\u091a?|\u0905\u092a\u094d\u0930\u0948\u0932|\u0905\u092a\u094d\u0930\u0948\.?|\u092e\u0908?|\u091c\u0942\u0928?|\u091c\u0941\u0932\u093e\u0908|\u091c\u0941\u0932\.?|\u0905\u0917\u0938\u094d\u0924|\u0905\u0917\.?|\u0938\u093f\u0924\u092e\u094d\u092c\u0930|\u0938\u093f\u0924\u0902\u092c\u0930|\u0938\u093f\u0924\.?|\u0905\u0915\u094d\u091f\u0942\u092c\u0930|\u0905\u0915\u094d\u091f\u0942\.?|\u0928\u0935\u092e\u094d\u092c\u0930|\u0928\u0935\u0902\u092c\u0930|\u0928\u0935\.?|\u0926\u093f\u0938\u092e\u094d\u092c\u0930|\u0926\u093f\u0938\u0902\u092c\u0930|\u0926\u093f\u0938\.?)/i,
        monthsStrictRegex: /^(\u091c\u0928\u0935\u0930\u0940?|\u092b\u093c\u0930\u0935\u0930\u0940|\u092b\u0930\u0935\u0930\u0940?|\u092e\u093e\u0930\u094d\u091a?|\u0905\u092a\u094d\u0930\u0948\u0932?|\u092e\u0908?|\u091c\u0942\u0928?|\u091c\u0941\u0932\u093e\u0908?|\u0905\u0917\u0938\u094d\u0924?|\u0938\u093f\u0924\u092e\u094d\u092c\u0930|\u0938\u093f\u0924\u0902\u092c\u0930|\u0938\u093f\u0924?\.?|\u0905\u0915\u094d\u091f\u0942\u092c\u0930|\u0905\u0915\u094d\u091f\u0942\.?|\u0928\u0935\u092e\u094d\u092c\u0930|\u0928\u0935\u0902\u092c\u0930?|\u0926\u093f\u0938\u092e\u094d\u092c\u0930|\u0926\u093f\u0938\u0902\u092c\u0930?)/i,
        monthsShortStrictRegex: /^(\u091c\u0928\.?|\u092b\u093c\u0930\.?|\u092e\u093e\u0930\u094d\u091a?|\u0905\u092a\u094d\u0930\u0948\.?|\u092e\u0908?|\u091c\u0942\u0928?|\u091c\u0941\u0932\.?|\u0905\u0917\.?|\u0938\u093f\u0924\.?|\u0905\u0915\u094d\u091f\u0942\.?|\u0928\u0935\.?|\u0926\u093f\u0938\.?)/i,
        calendar: {
            sameDay: '[आज] LT',
            nextDay: '[कल] LT',
            nextWeek: 'dddd, LT',
            lastDay: '[कल] LT',
            lastWeek: '[पिछले] dddd, LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s में',
            past: '%s पहले',
            s: 'कुछ ही क्षण',
            ss: '%d सेकंड',
            m: 'एक मिनट',
            mm: '%d मिनट',
            h: 'एक घंटा',
            hh: '%d घंटे',
            d: 'एक दिन',
            dd: '%d दिन',
            M: 'एक महीने',
            MM: '%d महीने',
            y: 'एक वर्ष',
            yy: '%d वर्ष',
        },
        preparse: function (e) {
            return e.replace(
                /[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,
                (function (e) {return sa[e];}));
        },
        postformat: function (e) {
            return e.replace(/\d/g, (function (e) {return oa[e];}));
        },
        meridiemParse: /\u0930\u093e\u0924|\u0938\u0941\u092c\u0939|\u0926\u094b\u092a\u0939\u0930|\u0936\u093e\u092e/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'रात' === t
                ? e < 4 ? e : e + 12
                : 'सुबह' === t ? e : 'दोपहर' === t
                    ? 10 <= e ? e : e + 12
                    : 'शाम' === t ? e + 12 : void 0;
        },
        meridiem: function (e, t, n) {
            return e < 4 ? 'रात' : e < 10
                ? 'सुबह'
                : e < 17 ? 'दोपहर' : e < 20 ? 'शाम' : 'रात';
        },
        week: { dow: 0, doy: 6 },
    }), n.defineLocale('hr', {
        months: {
            format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(
                '_'),
            standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(
                '_'),
        },
        monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
            '_'),
        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'Do MMMM YYYY',
            LLL: 'Do MMMM YYYY H:mm',
            LLLL: 'dddd, Do MMMM YYYY H:mm',
        },
        calendar: {
            sameDay: '[danas u] LT',
            nextDay: '[sutra u] LT',
            nextWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[u] [nedjelju] [u] LT';
                    case 3:
                        return '[u] [srijedu] [u] LT';
                    case 6:
                        return '[u] [subotu] [u] LT';
                    case 1:
                    case 2:
                    case 4:
                    case 5:
                        return '[u] dddd [u] LT';
                }
            },
            lastDay: '[jučer u] LT',
            lastWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[prošlu] [nedjelju] [u] LT';
                    case 3:
                        return '[prošlu] [srijedu] [u] LT';
                    case 6:
                        return '[prošle] [subote] [u] LT';
                    case 1:
                    case 2:
                    case 4:
                    case 5:
                        return '[prošli] dddd [u] LT';
                }
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'za %s',
            past: 'prije %s',
            s: 'par sekundi',
            ss: ca,
            m: ca,
            mm: ca,
            h: ca,
            hh: ca,
            d: 'dan',
            dd: ca,
            M: 'mjesec',
            MM: ca,
            y: 'godinu',
            yy: ca,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 7 },
    });
    var ua = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(
        ' ');

    function da (e, t, n, i) {
        var a = e;
        switch (n) {
            case's':
                return i || t ? 'néhány másodperc' : 'néhány másodperce';
            case'ss':
                return a + (i || t) ? ' másodperc' : ' másodperce';
            case'm':
                return 'egy' + (i || t ? ' perc' : ' perce');
            case'mm':
                return a + (i || t ? ' perc' : ' perce');
            case'h':
                return 'egy' + (i || t ? ' óra' : ' órája');
            case'hh':
                return a + (i || t ? ' óra' : ' órája');
            case'd':
                return 'egy' + (i || t ? ' nap' : ' napja');
            case'dd':
                return a + (i || t ? ' nap' : ' napja');
            case'M':
                return 'egy' + (i || t ? ' hónap' : ' hónapja');
            case'MM':
                return a + (i || t ? ' hónap' : ' hónapja');
            case'y':
                return 'egy' + (i || t ? ' év' : ' éve');
            case'yy':
                return a + (i || t ? ' év' : ' éve');
        }
        return '';
    }

    function ha (e) {
        return (e ? '' : '[múlt] ') + '[' + ua[this.day()] + '] LT[-kor]';
    }

    function fa (e) {return e % 100 == 11 || e % 10 != 1;}

    function pa (e, t, n, i) {
        var a = e + ' ';
        switch (n) {
            case's':
                return t || i ? 'nokkrar sekúndur' : 'nokkrum sekúndum';
            case'ss':
                return fa(e) ? a + (t || i ? 'sekúndur' : 'sekúndum') : a +
                    'sekúnda';
            case'm':
                return t ? 'mínúta' : 'mínútu';
            case'mm':
                return fa(e) ? a + (t || i ? 'mínútur' : 'mínútum') : t ? a +
                    'mínúta' : a + 'mínútu';
            case'hh':
                return fa(e)
                    ? a + (t || i ? 'klukkustundir' : 'klukkustundum')
                    : a + 'klukkustund';
            case'd':
                return t ? 'dagur' : i ? 'dag' : 'degi';
            case'dd':
                return fa(e) ? t ? a + 'dagar' : a + (i ? 'daga' : 'dögum') : t
                    ? a + 'dagur'
                    : a + (i ? 'dag' : 'degi');
            case'M':
                return t ? 'mánuður' : i ? 'mánuð' : 'mánuði';
            case'MM':
                return fa(e) ? t ? a + 'mánuðir' : a +
                    (i ? 'mánuði' : 'mánuðum') : t ? a + 'mánuður' : a +
                    (i ? 'mánuð' : 'mánuði');
            case'y':
                return t || i ? 'ár' : 'ári';
            case'yy':
                return fa(e) ? a + (t || i ? 'ár' : 'árum') : a +
                    (t || i ? 'ár' : 'ári');
        }
    }

    n.defineLocale('hu', {
        months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(
            '_'),
        monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split(
            '_'),
        weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
        weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'YYYY.MM.DD.',
            LL: 'YYYY. MMMM D.',
            LLL: 'YYYY. MMMM D. H:mm',
            LLLL: 'YYYY. MMMM D., dddd H:mm',
        },
        meridiemParse: /de|du/i,
        isPM: function (e) {return 'u' === e.charAt(1).toLowerCase();},
        meridiem: function (e, t, n) {
            return e < 12
                ? !0 === n ? 'de' : 'DE'
                : !0 === n ? 'du' : 'DU';
        },
        calendar: {
            sameDay: '[ma] LT[-kor]',
            nextDay: '[holnap] LT[-kor]',
            nextWeek: function () {return ha.call(this, !0);},
            lastDay: '[tegnap] LT[-kor]',
            lastWeek: function () {return ha.call(this, !1);},
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s múlva',
            past: '%s',
            s: da,
            ss: da,
            m: da,
            mm: da,
            h: da,
            hh: da,
            d: da,
            dd: da,
            M: da,
            MM: da,
            y: da,
            yy: da,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('hy-am', {
        months: {
            format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(
                '_'),
            standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(
                '_'),
        },
        monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split(
            '_'),
        weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(
            '_'),
        weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
        weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY թ.',
            LLL: 'D MMMM YYYY թ., HH:mm',
            LLLL: 'dddd, D MMMM YYYY թ., HH:mm',
        },
        calendar: {
            sameDay: '[այսօր] LT',
            nextDay: '[վաղը] LT',
            lastDay: '[երեկ] LT',
            nextWeek: function () {return 'dddd [օրը ժամը] LT';},
            lastWeek: function () {return '[անցած] dddd [օրը ժամը] LT';},
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s հետո',
            past: '%s առաջ',
            s: 'մի քանի վայրկյան',
            ss: '%d վայրկյան',
            m: 'րոպե',
            mm: '%d րոպե',
            h: 'ժամ',
            hh: '%d ժամ',
            d: 'օր',
            dd: '%d օր',
            M: 'ամիս',
            MM: '%d ամիս',
            y: 'տարի',
            yy: '%d տարի',
        },
        meridiemParse: /\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,
        isPM: function (e) {
            return /^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(
                e);
        },
        meridiem: function (e) {
            return e < 4 ? 'գիշերվա' : e < 12
                ? 'առավոտվա'
                : e < 17 ? 'ցերեկվա' : 'երեկոյան';
        },
        dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,
        ordinal: function (e, t) {
            switch (t) {
                case'DDD':
                case'w':
                case'W':
                case'DDDo':
                    return 1 === e ? e + '-ին' : e + '-րդ';
                default:
                    return e;
            }
        },
        week: { dow: 1, doy: 7 },
    }), n.defineLocale('id', {
        months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(
            '_'),
        monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split(
            '_'),
        weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
        weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
        weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
        longDateFormat: {
            LT: 'HH.mm',
            LTS: 'HH.mm.ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY [pukul] HH.mm',
            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
        },
        meridiemParse: /pagi|siang|sore|malam/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'pagi' === t
                ? e
                : 'siang' === t ? 11 <= e ? e : e + 12 : 'sore' === t ||
                'malam' === t ? e + 12 : void 0;
        },
        meridiem: function (e, t, n) {
            return e < 11 ? 'pagi' : e < 15
                ? 'siang'
                : e < 19 ? 'sore' : 'malam';
        },
        calendar: {
            sameDay: '[Hari ini pukul] LT',
            nextDay: '[Besok pukul] LT',
            nextWeek: 'dddd [pukul] LT',
            lastDay: '[Kemarin pukul] LT',
            lastWeek: 'dddd [lalu pukul] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'dalam %s',
            past: '%s yang lalu',
            s: 'beberapa detik',
            ss: '%d detik',
            m: 'semenit',
            mm: '%d menit',
            h: 'sejam',
            hh: '%d jam',
            d: 'sehari',
            dd: '%d hari',
            M: 'sebulan',
            MM: '%d bulan',
            y: 'setahun',
            yy: '%d tahun',
        },
        week: { dow: 0, doy: 6 },
    }), n.defineLocale('is', {
        months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(
            '_'),
        monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split(
            '_'),
        weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(
            '_'),
        weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
        weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D. MMMM YYYY',
            LLL: 'D. MMMM YYYY [kl.] H:mm',
            LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',
        },
        calendar: {
            sameDay: '[í dag kl.] LT',
            nextDay: '[á morgun kl.] LT',
            nextWeek: 'dddd [kl.] LT',
            lastDay: '[í gær kl.] LT',
            lastWeek: '[síðasta] dddd [kl.] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'eftir %s',
            past: 'fyrir %s síðan',
            s: pa,
            ss: pa,
            m: pa,
            mm: pa,
            h: 'klukkustund',
            hh: pa,
            d: pa,
            dd: pa,
            M: pa,
            MM: pa,
            y: pa,
            yy: pa,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('it-ch', {
        months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
            '_'),
        monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split(
            '_'),
        weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(
            '_'),
        weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
        weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Oggi alle] LT',
            nextDay: '[Domani alle] LT',
            nextWeek: 'dddd [alle] LT',
            lastDay: '[Ieri alle] LT',
            lastWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[la scorsa] dddd [alle] LT';
                    default:
                        return '[lo scorso] dddd [alle] LT';
                }
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: function (e) {
                return (/^[0-9].+$/.test(e)
                    ? 'tra'
                    : 'in') + ' ' + e;
            },
            past: '%s fa',
            s: 'alcuni secondi',
            ss: '%d secondi',
            m: 'un minuto',
            mm: '%d minuti',
            h: 'un\'ora',
            hh: '%d ore',
            d: 'un giorno',
            dd: '%d giorni',
            M: 'un mese',
            MM: '%d mesi',
            y: 'un anno',
            yy: '%d anni',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\xba/,
        ordinal: '%dº',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('it', {
        months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
            '_'),
        monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split(
            '_'),
        weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(
            '_'),
        weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
        weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: function () {
                return '[Oggi a' +
                    (1 < this.hours() ? 'lle ' : 0 === this.hours()
                        ? ' '
                        : 'll\'') + ']LT';
            },
            nextDay: function () {
                return '[Domani a' +
                    (1 < this.hours() ? 'lle ' : 0 === this.hours()
                        ? ' '
                        : 'll\'') + ']LT';
            },
            nextWeek: function () {
                return 'dddd [a' +
                    (1 < this.hours() ? 'lle ' : 0 === this.hours()
                        ? ' '
                        : 'll\'') + ']LT';
            },
            lastDay: function () {
                return '[Ieri a' +
                    (1 < this.hours() ? 'lle ' : 0 === this.hours()
                        ? ' '
                        : 'll\'') + ']LT';
            },
            lastWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[La scorsa] dddd [a' +
                            (1 < this.hours() ? 'lle ' : 0 === this.hours()
                                ? ' '
                                : 'll\'') + ']LT';
                    default:
                        return '[Lo scorso] dddd [a' +
                            (1 < this.hours() ? 'lle ' : 0 === this.hours()
                                ? ' '
                                : 'll\'') + ']LT';
                }
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'tra %s',
            past: '%s fa',
            s: 'alcuni secondi',
            ss: '%d secondi',
            m: 'un minuto',
            mm: '%d minuti',
            h: 'un\'ora',
            hh: '%d ore',
            d: 'un giorno',
            dd: '%d giorni',
            w: 'una settimana',
            ww: '%d settimane',
            M: 'un mese',
            MM: '%d mesi',
            y: 'un anno',
            yy: '%d anni',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\xba/,
        ordinal: '%dº',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('ja', {
        eras: [
            {
                since: '2019-05-01',
                offset: 1,
                name: '令和',
                narrow: '㋿',
                abbr: 'R',
            },
            {
                since: '1989-01-08',
                until: '2019-04-30',
                offset: 1,
                name: '平成',
                narrow: '㍻',
                abbr: 'H',
            },
            {
                since: '1926-12-25',
                until: '1989-01-07',
                offset: 1,
                name: '昭和',
                narrow: '㍼',
                abbr: 'S',
            },
            {
                since: '1912-07-30',
                until: '1926-12-24',
                offset: 1,
                name: '大正',
                narrow: '㍽',
                abbr: 'T',
            },
            {
                since: '1873-01-01',
                until: '1912-07-29',
                offset: 6,
                name: '明治',
                narrow: '㍾',
                abbr: 'M',
            },
            {
                since: '0001-01-01',
                until: '1873-12-31',
                offset: 1,
                name: '西暦',
                narrow: 'AD',
                abbr: 'AD',
            },
            {
                since: '0000-12-31',
                until: -1 / 0,
                offset: 1,
                name: '紀元前',
                narrow: 'BC',
                abbr: 'BC',
            }],
        eraYearOrdinalRegex: /(\u5143|\d+)\u5e74/,
        eraYearOrdinalParse: function (e, t) {
            return '元' === t[1]
                ? 1
                : parseInt(t[1] || e, 10);
        },
        months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
        weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
        weekdaysShort: '日_月_火_水_木_金_土'.split('_'),
        weekdaysMin: '日_月_火_水_木_金_土'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'YYYY/MM/DD',
            LL: 'YYYY年M月D日',
            LLL: 'YYYY年M月D日 HH:mm',
            LLLL: 'YYYY年M月D日 dddd HH:mm',
            l: 'YYYY/MM/DD',
            ll: 'YYYY年M月D日',
            lll: 'YYYY年M月D日 HH:mm',
            llll: 'YYYY年M月D日(ddd) HH:mm',
        },
        meridiemParse: /\u5348\u524d|\u5348\u5f8c/i,
        isPM: function (e) {return '午後' === e;},
        meridiem: function (e, t, n) {return e < 12 ? '午前' : '午後';},
        calendar: {
            sameDay: '[今日] LT',
            nextDay: '[明日] LT',
            nextWeek: function (e) {
                return e.week() !== this.week()
                    ? '[来週]dddd LT'
                    : 'dddd LT';
            },
            lastDay: '[昨日] LT',
            lastWeek: function (e) {
                return this.week() !== e.week()
                    ? '[先週]dddd LT'
                    : 'dddd LT';
            },
            sameElse: 'L',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\u65e5/,
        ordinal: function (e, t) {
            switch (t) {
                case'y':
                    return 1 === e ? '元年' : e + '年';
                case'd':
                case'D':
                case'DDD':
                    return e + '日';
                default:
                    return e;
            }
        },
        relativeTime: {
            future: '%s後',
            past: '%s前',
            s: '数秒',
            ss: '%d秒',
            m: '1分',
            mm: '%d分',
            h: '1時間',
            hh: '%d時間',
            d: '1日',
            dd: '%d日',
            M: '1ヶ月',
            MM: '%dヶ月',
            y: '1年',
            yy: '%d年',
        },
    }), n.defineLocale('jv', {
        months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(
            '_'),
        monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split(
            '_'),
        weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),
        weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),
        weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),
        longDateFormat: {
            LT: 'HH.mm',
            LTS: 'HH.mm.ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY [pukul] HH.mm',
            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
        },
        meridiemParse: /enjing|siyang|sonten|ndalu/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'enjing' === t ? e : 'siyang' === t
                ? 11 <= e ? e : e + 12
                : 'sonten' === t || 'ndalu' === t ? e + 12 : void 0;
        },
        meridiem: function (e, t, n) {
            return e < 11 ? 'enjing' : e < 15
                ? 'siyang'
                : e < 19 ? 'sonten' : 'ndalu';
        },
        calendar: {
            sameDay: '[Dinten puniko pukul] LT',
            nextDay: '[Mbenjang pukul] LT',
            nextWeek: 'dddd [pukul] LT',
            lastDay: '[Kala wingi pukul] LT',
            lastWeek: 'dddd [kepengker pukul] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'wonten ing %s',
            past: '%s ingkang kepengker',
            s: 'sawetawis detik',
            ss: '%d detik',
            m: 'setunggal menit',
            mm: '%d menit',
            h: 'setunggal jam',
            hh: '%d jam',
            d: 'sedinten',
            dd: '%d dinten',
            M: 'sewulan',
            MM: '%d wulan',
            y: 'setaun',
            yy: '%d taun',
        },
        week: { dow: 1, doy: 7 },
    }), n.defineLocale('ka', {
        months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(
            '_'),
        monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split(
            '_'),
        weekdays: {
            standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(
                '_'),
            format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(
                '_'),
            isFormat: /(\u10ec\u10d8\u10dc\u10d0|\u10e8\u10d4\u10db\u10d3\u10d4\u10d2)/,
        },
        weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
        weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[დღეს] LT[-ზე]',
            nextDay: '[ხვალ] LT[-ზე]',
            lastDay: '[გუშინ] LT[-ზე]',
            nextWeek: '[შემდეგ] dddd LT[-ზე]',
            lastWeek: '[წინა] dddd LT-ზე',
            sameElse: 'L',
        },
        relativeTime: {
            future: function (e) {
                return e.replace(
                    /(\u10ec\u10d0\u10db|\u10ec\u10e3\u10d7|\u10e1\u10d0\u10d0\u10d7|\u10ec\u10d4\u10da|\u10d3\u10e6|\u10d7\u10d5)(\u10d8|\u10d4)/,
                    (function (e, t, n) {
                        return 'ი' === n ? t + 'ში' : t + n + 'ში';
                    }));
            },
            past: function (e) {
                return /(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10d3\u10e6\u10d4|\u10d7\u10d5\u10d4)/.test(
                    e)
                    ? e.replace(/(\u10d8|\u10d4)$/, 'ის წინ')
                    : /\u10ec\u10d4\u10da\u10d8/.test(e) ? e.replace(
                        /\u10ec\u10d4\u10da\u10d8$/, 'წლის წინ') : e;
            },
            s: 'რამდენიმე წამი',
            ss: '%d წამი',
            m: 'წუთი',
            mm: '%d წუთი',
            h: 'საათი',
            hh: '%d საათი',
            d: 'დღე',
            dd: '%d დღე',
            M: 'თვე',
            MM: '%d თვე',
            y: 'წელი',
            yy: '%d წელი',
        },
        dayOfMonthOrdinalParse: /0|1-\u10da\u10d8|\u10db\u10d4-\d{1,2}|\d{1,2}-\u10d4/,
        ordinal: function (e) {
            return 0 === e ? e : 1 === e ? e + '-ლი' : e < 20 || e <= 100 && e %
            20 == 0 || e % 100 == 0 ? 'მე-' + e : e + '-ე';
        },
        week: { dow: 1, doy: 7 },
    });
    var ma = {
        0: '-ші',
        1: '-ші',
        2: '-ші',
        3: '-ші',
        4: '-ші',
        5: '-ші',
        6: '-шы',
        7: '-ші',
        8: '-ші',
        9: '-шы',
        10: '-шы',
        20: '-шы',
        30: '-шы',
        40: '-шы',
        50: '-ші',
        60: '-шы',
        70: '-ші',
        80: '-ші',
        90: '-шы',
        100: '-ші',
    };
    n.defineLocale('kk', {
        months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(
            '_'),
        monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split(
            '_'),
        weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(
            '_'),
        weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),
        weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Бүгін сағат] LT',
            nextDay: '[Ертең сағат] LT',
            nextWeek: 'dddd [сағат] LT',
            lastDay: '[Кеше сағат] LT',
            lastWeek: '[Өткен аптаның] dddd [сағат] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s ішінде',
            past: '%s бұрын',
            s: 'бірнеше секунд',
            ss: '%d секунд',
            m: 'бір минут',
            mm: '%d минут',
            h: 'бір сағат',
            hh: '%d сағат',
            d: 'бір күн',
            dd: '%d күн',
            M: 'бір ай',
            MM: '%d ай',
            y: 'бір жыл',
            yy: '%d жыл',
        },
        dayOfMonthOrdinalParse: /\d{1,2}-(\u0448\u0456|\u0448\u044b)/,
        ordinal: function (e) {
            return e + (ma[e] || ma[e % 10] || ma[100 <= e ? 100 : null]);
        },
        week: { dow: 1, doy: 7 },
    });
    var ga = {
        1: '១',
        2: '២',
        3: '៣',
        4: '៤',
        5: '៥',
        6: '៦',
        7: '៧',
        8: '៨',
        9: '៩',
        0: '០',
    }, va = {
        '១': '1',
        '២': '2',
        '៣': '3',
        '៤': '4',
        '៥': '5',
        '៦': '6',
        '៧': '7',
        '៨': '8',
        '៩': '9',
        '០': '0',
    };
    n.defineLocale('km', {
        months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
            '_'),
        monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
            '_'),
        weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
        weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
        weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        meridiemParse: /\u1796\u17d2\u179a\u17b9\u1780|\u179b\u17d2\u1784\u17b6\u1785/,
        isPM: function (e) {return 'ល្ងាច' === e;},
        meridiem: function (e, t, n) {return e < 12 ? 'ព្រឹក' : 'ល្ងាច';},
        calendar: {
            sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',
            nextDay: '[ស្អែក ម៉ោង] LT',
            nextWeek: 'dddd [ម៉ោង] LT',
            lastDay: '[ម្សិលមិញ ម៉ោង] LT',
            lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%sទៀត',
            past: '%sមុន',
            s: 'ប៉ុន្មានវិនាទី',
            ss: '%d វិនាទី',
            m: 'មួយនាទី',
            mm: '%d នាទី',
            h: 'មួយម៉ោង',
            hh: '%d ម៉ោង',
            d: 'មួយថ្ងៃ',
            dd: '%d ថ្ងៃ',
            M: 'មួយខែ',
            MM: '%d ខែ',
            y: 'មួយឆ្នាំ',
            yy: '%d ឆ្នាំ',
        },
        dayOfMonthOrdinalParse: /\u1791\u17b8\d{1,2}/,
        ordinal: 'ទី%d',
        preparse: function (e) {
            return e.replace(
                /[\u17e1\u17e2\u17e3\u17e4\u17e5\u17e6\u17e7\u17e8\u17e9\u17e0]/g,
                (function (e) {return va[e];}));
        },
        postformat: function (e) {
            return e.replace(/\d/g, (function (e) {return ga[e];}));
        },
        week: { dow: 1, doy: 4 },
    });
    var ya = {
        1: '೧',
        2: '೨',
        3: '೩',
        4: '೪',
        5: '೫',
        6: '೬',
        7: '೭',
        8: '೮',
        9: '೯',
        0: '೦',
    }, ba = {
        '೧': '1',
        '೨': '2',
        '೩': '3',
        '೪': '4',
        '೫': '5',
        '೬': '6',
        '೭': '7',
        '೮': '8',
        '೯': '9',
        '೦': '0',
    };
    n.defineLocale('kn', {
        months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(
            '_'),
        monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(
            '_'),
        weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),
        weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),
        longDateFormat: {
            LT: 'A h:mm',
            LTS: 'A h:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, A h:mm',
            LLLL: 'dddd, D MMMM YYYY, A h:mm',
        },
        calendar: {
            sameDay: '[ಇಂದು] LT',
            nextDay: '[ನಾಳೆ] LT',
            nextWeek: 'dddd, LT',
            lastDay: '[ನಿನ್ನೆ] LT',
            lastWeek: '[ಕೊನೆಯ] dddd, LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s ನಂತರ',
            past: '%s ಹಿಂದೆ',
            s: 'ಕೆಲವು ಕ್ಷಣಗಳು',
            ss: '%d ಸೆಕೆಂಡುಗಳು',
            m: 'ಒಂದು ನಿಮಿಷ',
            mm: '%d ನಿಮಿಷ',
            h: 'ಒಂದು ಗಂಟೆ',
            hh: '%d ಗಂಟೆ',
            d: 'ಒಂದು ದಿನ',
            dd: '%d ದಿನ',
            M: 'ಒಂದು ತಿಂಗಳು',
            MM: '%d ತಿಂಗಳು',
            y: 'ಒಂದು ವರ್ಷ',
            yy: '%d ವರ್ಷ',
        },
        preparse: function (e) {
            return e.replace(
                /[\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0ce6]/g,
                (function (e) {return ba[e];}));
        },
        postformat: function (e) {
            return e.replace(/\d/g, (function (e) {return ya[e];}));
        },
        meridiemParse: /\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf|\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6|\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8|\u0cb8\u0c82\u0c9c\u0cc6/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'ರಾತ್ರಿ' === t
                ? e < 4 ? e : e + 12
                : 'ಬೆಳಿಗ್ಗೆ' === t ? e : 'ಮಧ್ಯಾಹ್ನ' === t
                    ? 10 <= e ? e : e + 12
                    : 'ಸಂಜೆ' === t ? e + 12 : void 0;
        },
        meridiem: function (e, t, n) {
            return e < 4 ? 'ರಾತ್ರಿ' : e < 10
                ? 'ಬೆಳಿಗ್ಗೆ'
                : e < 17 ? 'ಮಧ್ಯಾಹ್ನ' : e < 20 ? 'ಸಂಜೆ' : 'ರಾತ್ರಿ';
        },
        dayOfMonthOrdinalParse: /\d{1,2}(\u0ca8\u0cc6\u0cd5)/,
        ordinal: function (e) {return e + 'ನೇ';},
        week: { dow: 0, doy: 6 },
    }), n.defineLocale('ko', {
        months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
        monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
        weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),
        weekdaysShort: '일_월_화_수_목_금_토'.split('_'),
        weekdaysMin: '일_월_화_수_목_금_토'.split('_'),
        longDateFormat: {
            LT: 'A h:mm',
            LTS: 'A h:mm:ss',
            L: 'YYYY.MM.DD.',
            LL: 'YYYY년 MMMM D일',
            LLL: 'YYYY년 MMMM D일 A h:mm',
            LLLL: 'YYYY년 MMMM D일 dddd A h:mm',
            l: 'YYYY.MM.DD.',
            ll: 'YYYY년 MMMM D일',
            lll: 'YYYY년 MMMM D일 A h:mm',
            llll: 'YYYY년 MMMM D일 dddd A h:mm',
        },
        calendar: {
            sameDay: '오늘 LT',
            nextDay: '내일 LT',
            nextWeek: 'dddd LT',
            lastDay: '어제 LT',
            lastWeek: '지난주 dddd LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s 후',
            past: '%s 전',
            s: '몇 초',
            ss: '%d초',
            m: '1분',
            mm: '%d분',
            h: '한 시간',
            hh: '%d시간',
            d: '하루',
            dd: '%d일',
            M: '한 달',
            MM: '%d달',
            y: '일 년',
            yy: '%d년',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(\uc77c|\uc6d4|\uc8fc)/,
        ordinal: function (e, t) {
            switch (t) {
                case'd':
                case'D':
                case'DDD':
                    return e + '일';
                case'M':
                    return e + '월';
                case'w':
                case'W':
                    return e + '주';
                default:
                    return e;
            }
        },
        meridiemParse: /\uc624\uc804|\uc624\ud6c4/,
        isPM: function (e) {return '오후' === e;},
        meridiem: function (e, t, n) {return e < 12 ? '오전' : '오후';},
    });
    var xa = {
        1: '١',
        2: '٢',
        3: '٣',
        4: '٤',
        5: '٥',
        6: '٦',
        7: '٧',
        8: '٨',
        9: '٩',
        0: '٠',
    }, _a = {
        '١': '1',
        '٢': '2',
        '٣': '3',
        '٤': '4',
        '٥': '5',
        '٦': '6',
        '٧': '7',
        '٨': '8',
        '٩': '9',
        '٠': '0',
    }, wa = [
        'کانونی دووەم',
        'شوبات',
        'ئازار',
        'نیسان',
        'ئایار',
        'حوزەیران',
        'تەمموز',
        'ئاب',
        'ئەیلوول',
        'تشرینی یەكەم',
        'تشرینی دووەم',
        'كانونی یەکەم'];
    n.defineLocale('ku', {
        months: wa,
        monthsShort: wa,
        weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(
            '_'),
        weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split(
            '_'),
        weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        meridiemParse: /\u0626\u06ce\u0648\u0627\u0631\u0647\u200c|\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc/,
        isPM: function (e) {
            return /\u0626\u06ce\u0648\u0627\u0631\u0647\u200c/.test(e);
        },
        meridiem: function (e, t, n) {return e < 12 ? 'به‌یانی' : 'ئێواره‌';},
        calendar: {
            sameDay: '[ئه‌مرۆ كاتژمێر] LT',
            nextDay: '[به‌یانی كاتژمێر] LT',
            nextWeek: 'dddd [كاتژمێر] LT',
            lastDay: '[دوێنێ كاتژمێر] LT',
            lastWeek: 'dddd [كاتژمێر] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'له‌ %s',
            past: '%s',
            s: 'چه‌ند چركه‌یه‌ك',
            ss: 'چركه‌ %d',
            m: 'یه‌ك خوله‌ك',
            mm: '%d خوله‌ك',
            h: 'یه‌ك كاتژمێر',
            hh: '%d كاتژمێر',
            d: 'یه‌ك ڕۆژ',
            dd: '%d ڕۆژ',
            M: 'یه‌ك مانگ',
            MM: '%d مانگ',
            y: 'یه‌ك ساڵ',
            yy: '%d ساڵ',
        },
        preparse: function (e) {
            return e.replace(
                /[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,
                (function (e) {return _a[e];})).replace(/\u060c/g, ',');
        },
        postformat: function (e) {
            return e.replace(/\d/g, (function (e) {return xa[e];})).
                replace(/,/g, '،');
        },
        week: { dow: 6, doy: 12 },
    });
    var ka = {
        0: '-чү',
        1: '-чи',
        2: '-чи',
        3: '-чү',
        4: '-чү',
        5: '-чи',
        6: '-чы',
        7: '-чи',
        8: '-чи',
        9: '-чу',
        10: '-чу',
        20: '-чы',
        30: '-чу',
        40: '-чы',
        50: '-чү',
        60: '-чы',
        70: '-чи',
        80: '-чи',
        90: '-чу',
        100: '-чү',
    };

    function Ma (e, t, n, i) {
        var a = {
            m: ['eng Minutt', 'enger Minutt'],
            h: ['eng Stonn', 'enger Stonn'],
            d: ['een Dag', 'engem Dag'],
            M: ['ee Mount', 'engem Mount'],
            y: ['ee Joer', 'engem Joer'],
        };
        return t ? a[n][0] : a[n][1];
    }

    function La (e) {
        if (e = parseInt(e, 10), isNaN(e)) return !1;
        if (e < 0) return !0;
        if (e < 10) return 4 <= e && e <= 7;
        if (e < 100) {
            var t = e % 10;
            return La(0 == t ? e / 10 : t);
        }
        if (e < 1e4) {
            for (; 10 <= e;) e /= 10;
            return La(e);
        }
        return La(e /= 1e3);
    }

    n.defineLocale('ky', {
        months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(
            '_'),
        monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(
            '_'),
        weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(
            '_'),
        weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),
        weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Бүгүн саат] LT',
            nextDay: '[Эртең саат] LT',
            nextWeek: 'dddd [саат] LT',
            lastDay: '[Кечээ саат] LT',
            lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s ичинде',
            past: '%s мурун',
            s: 'бирнече секунд',
            ss: '%d секунд',
            m: 'бир мүнөт',
            mm: '%d мүнөт',
            h: 'бир саат',
            hh: '%d саат',
            d: 'бир күн',
            dd: '%d күн',
            M: 'бир ай',
            MM: '%d ай',
            y: 'бир жыл',
            yy: '%d жыл',
        },
        dayOfMonthOrdinalParse: /\d{1,2}-(\u0447\u0438|\u0447\u044b|\u0447\u04af|\u0447\u0443)/,
        ordinal: function (e) {
            return e + (ka[e] || ka[e % 10] || ka[100 <= e ? 100 : null]);
        },
        week: { dow: 1, doy: 7 },
    }), n.defineLocale('lb', {
        months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(
            '_'),
        monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(
            '_'),
        weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
        weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'H:mm [Auer]',
            LTS: 'H:mm:ss [Auer]',
            L: 'DD.MM.YYYY',
            LL: 'D. MMMM YYYY',
            LLL: 'D. MMMM YYYY H:mm [Auer]',
            LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',
        },
        calendar: {
            sameDay: '[Haut um] LT',
            sameElse: 'L',
            nextDay: '[Muer um] LT',
            nextWeek: 'dddd [um] LT',
            lastDay: '[Gëschter um] LT',
            lastWeek: function () {
                switch (this.day()) {
                    case 2:
                    case 4:
                        return '[Leschten] dddd [um] LT';
                    default:
                        return '[Leschte] dddd [um] LT';
                }
            },
        },
        relativeTime: {
            future: function (e) {
                return La(e.substr(0, e.indexOf(' '))) ? 'a ' + e : 'an ' + e;
            },
            past: function (e) {
                return La(e.substr(0, e.indexOf(' ')))
                    ? 'viru ' + e
                    : 'virun ' + e;
            },
            s: 'e puer Sekonnen',
            ss: '%d Sekonnen',
            m: Ma,
            mm: '%d Minutten',
            h: Ma,
            hh: '%d Stonnen',
            d: Ma,
            dd: '%d Deeg',
            M: Ma,
            MM: '%d Méint',
            y: Ma,
            yy: '%d Joer',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('lo', {
        months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(
            '_'),
        monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(
            '_'),
        weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
        weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
        weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'ວັນdddd D MMMM YYYY HH:mm',
        },
        meridiemParse: /\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2|\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87/,
        isPM: function (e) {return 'ຕອນແລງ' === e;},
        meridiem: function (e, t, n) {return e < 12 ? 'ຕອນເຊົ້າ' : 'ຕອນແລງ';},
        calendar: {
            sameDay: '[ມື້ນີ້ເວລາ] LT',
            nextDay: '[ມື້ອື່ນເວລາ] LT',
            nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',
            lastDay: '[ມື້ວານນີ້ເວລາ] LT',
            lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'ອີກ %s',
            past: '%sຜ່ານມາ',
            s: 'ບໍ່ເທົ່າໃດວິນາທີ',
            ss: '%d ວິນາທີ',
            m: '1 ນາທີ',
            mm: '%d ນາທີ',
            h: '1 ຊົ່ວໂມງ',
            hh: '%d ຊົ່ວໂມງ',
            d: '1 ມື້',
            dd: '%d ມື້',
            M: '1 ເດືອນ',
            MM: '%d ເດືອນ',
            y: '1 ປີ',
            yy: '%d ປີ',
        },
        dayOfMonthOrdinalParse: /(\u0e97\u0eb5\u0ec8)\d{1,2}/,
        ordinal: function (e) {return 'ທີ່' + e;},
    });
    var Sa = {
        ss: 'sekundė_sekundžių_sekundes',
        m: 'minutė_minutės_minutę',
        mm: 'minutės_minučių_minutes',
        h: 'valanda_valandos_valandą',
        hh: 'valandos_valandų_valandas',
        d: 'diena_dienos_dieną',
        dd: 'dienos_dienų_dienas',
        M: 'mėnuo_mėnesio_mėnesį',
        MM: 'mėnesiai_mėnesių_mėnesius',
        y: 'metai_metų_metus',
        yy: 'metai_metų_metus',
    };

    function Ta (e, t, n, i) {return t ? Da(n)[0] : i ? Da(n)[1] : Da(n)[2];}

    function Aa (e) {return e % 10 == 0 || 10 < e && e < 20;}

    function Da (e) {return Sa[e].split('_');}

    function Ca (e, t, n, i) {
        var a = e + ' ';
        return 1 === e ? a + Ta(0, t, n[0], i) : t ? a +
            (Aa(e) ? Da(n)[1] : Da(n)[0]) : i ? a + Da(n)[1] : a +
            (Aa(e) ? Da(n)[1] : Da(n)[2]);
    }

    n.defineLocale('lt', {
        months: {
            format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(
                '_'),
            standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(
                '_'),
            isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/,
        },
        monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split(
            '_'),
        weekdays: {
            format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(
                '_'),
            standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(
                '_'),
            isFormat: /dddd HH:mm/,
        },
        weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
        weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'YYYY-MM-DD',
            LL: 'YYYY [m.] MMMM D [d.]',
            LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
            LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',
            l: 'YYYY-MM-DD',
            ll: 'YYYY [m.] MMMM D [d.]',
            lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
            llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',
        },
        calendar: {
            sameDay: '[Šiandien] LT',
            nextDay: '[Rytoj] LT',
            nextWeek: 'dddd LT',
            lastDay: '[Vakar] LT',
            lastWeek: '[Praėjusį] dddd LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'po %s',
            past: 'prieš %s',
            s: function (e, t, n, i) {
                return t ? 'kelios sekundės' : i
                    ? 'kelių sekundžių'
                    : 'kelias sekundes';
            },
            ss: Ca,
            m: Ta,
            mm: Ca,
            h: Ta,
            hh: Ca,
            d: Ta,
            dd: Ca,
            M: Ta,
            MM: Ca,
            y: Ta,
            yy: Ca,
        },
        dayOfMonthOrdinalParse: /\d{1,2}-oji/,
        ordinal: function (e) {return e + '-oji';},
        week: { dow: 1, doy: 4 },
    });
    var Ea = {
        ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),
        m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),
        mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),
        h: 'stundas_stundām_stunda_stundas'.split('_'),
        hh: 'stundas_stundām_stunda_stundas'.split('_'),
        d: 'dienas_dienām_diena_dienas'.split('_'),
        dd: 'dienas_dienām_diena_dienas'.split('_'),
        M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
        MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
        y: 'gada_gadiem_gads_gadi'.split('_'),
        yy: 'gada_gadiem_gads_gadi'.split('_'),
    };

    function Oa (e, t, n) {
        return n
            ? t % 10 == 1 && t % 100 != 11 ? e[2] : e[3]
            : t % 10 == 1 && t % 100 != 11 ? e[0] : e[1];
    }

    function Ya (e, t, n) {return e + ' ' + Oa(Ea[n], e, t);}

    function Pa (e, t, n) {return Oa(Ea[n], e, t);}

    n.defineLocale('lv', {
        months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(
            '_'),
        monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split(
            '_'),
        weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(
            '_'),
        weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),
        weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY.',
            LL: 'YYYY. [gada] D. MMMM',
            LLL: 'YYYY. [gada] D. MMMM, HH:mm',
            LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',
        },
        calendar: {
            sameDay: '[Šodien pulksten] LT',
            nextDay: '[Rīt pulksten] LT',
            nextWeek: 'dddd [pulksten] LT',
            lastDay: '[Vakar pulksten] LT',
            lastWeek: '[Pagājušā] dddd [pulksten] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'pēc %s',
            past: 'pirms %s',
            s: function (e, t) {
                return t
                    ? 'dažas sekundes'
                    : 'dažām sekundēm';
            },
            ss: Ya,
            m: Pa,
            mm: Ya,
            h: Pa,
            hh: Ya,
            d: Pa,
            dd: Ya,
            M: Pa,
            MM: Ya,
            y: Pa,
            yy: Ya,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    });
    var Ia = {
        words: {
            ss: ['sekund', 'sekunda', 'sekundi'],
            m: ['jedan minut', 'jednog minuta'],
            mm: ['minut', 'minuta', 'minuta'],
            h: ['jedan sat', 'jednog sata'],
            hh: ['sat', 'sata', 'sati'],
            dd: ['dan', 'dana', 'dana'],
            MM: ['mjesec', 'mjeseca', 'mjeseci'],
            yy: ['godina', 'godine', 'godina'],
        },
        correctGrammaticalCase: function (e, t) {
            return 1 === e ? t[0] : 2 <= e && e <= 4 ? t[1] : t[2];
        },
        translate: function (e, t, n) {
            var i = Ia.words[n];
            return 1 === n.length ? t ? i[0] : i[1] : e + ' ' +
                Ia.correctGrammaticalCase(e, i);
        },
    };

    function ja (e, t, n, i) {
        switch (n) {
            case's':
                return t ? 'хэдхэн секунд' : 'хэдхэн секундын';
            case'ss':
                return e + (t ? ' секунд' : ' секундын');
            case'm':
            case'mm':
                return e + (t ? ' минут' : ' минутын');
            case'h':
            case'hh':
                return e + (t ? ' цаг' : ' цагийн');
            case'd':
            case'dd':
                return e + (t ? ' өдөр' : ' өдрийн');
            case'M':
            case'MM':
                return e + (t ? ' сар' : ' сарын');
            case'y':
            case'yy':
                return e + (t ? ' жил' : ' жилийн');
            default:
                return e;
        }
    }

    n.defineLocale('me', {
        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
            '_'),
        monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
            '_'),
        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D. MMMM YYYY',
            LLL: 'D. MMMM YYYY H:mm',
            LLLL: 'dddd, D. MMMM YYYY H:mm',
        },
        calendar: {
            sameDay: '[danas u] LT',
            nextDay: '[sjutra u] LT',
            nextWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[u] [nedjelju] [u] LT';
                    case 3:
                        return '[u] [srijedu] [u] LT';
                    case 6:
                        return '[u] [subotu] [u] LT';
                    case 1:
                    case 2:
                    case 4:
                    case 5:
                        return '[u] dddd [u] LT';
                }
            },
            lastDay: '[juče u] LT',
            lastWeek: function () {
                return [
                    '[prošle] [nedjelje] [u] LT',
                    '[prošlog] [ponedjeljka] [u] LT',
                    '[prošlog] [utorka] [u] LT',
                    '[prošle] [srijede] [u] LT',
                    '[prošlog] [četvrtka] [u] LT',
                    '[prošlog] [petka] [u] LT',
                    '[prošle] [subote] [u] LT'][this.day()];
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'za %s',
            past: 'prije %s',
            s: 'nekoliko sekundi',
            ss: Ia.translate,
            m: Ia.translate,
            mm: Ia.translate,
            h: Ia.translate,
            hh: Ia.translate,
            d: 'dan',
            dd: Ia.translate,
            M: 'mjesec',
            MM: Ia.translate,
            y: 'godinu',
            yy: Ia.translate,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 7 },
    }), n.defineLocale('mi', {
        months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(
            '_'),
        monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(
            '_'),
        monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
        monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
        monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
        monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,
        weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),
        weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
        weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY [i] HH:mm',
            LLLL: 'dddd, D MMMM YYYY [i] HH:mm',
        },
        calendar: {
            sameDay: '[i teie mahana, i] LT',
            nextDay: '[apopo i] LT',
            nextWeek: 'dddd [i] LT',
            lastDay: '[inanahi i] LT',
            lastWeek: 'dddd [whakamutunga i] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'i roto i %s',
            past: '%s i mua',
            s: 'te hēkona ruarua',
            ss: '%d hēkona',
            m: 'he meneti',
            mm: '%d meneti',
            h: 'te haora',
            hh: '%d haora',
            d: 'he ra',
            dd: '%d ra',
            M: 'he marama',
            MM: '%d marama',
            y: 'he tau',
            yy: '%d tau',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\xba/,
        ordinal: '%dº',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('mk', {
        months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(
            '_'),
        monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split(
            '_'),
        weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(
            '_'),
        weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
        weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'D.MM.YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY H:mm',
            LLLL: 'dddd, D MMMM YYYY H:mm',
        },
        calendar: {
            sameDay: '[Денес во] LT',
            nextDay: '[Утре во] LT',
            nextWeek: '[Во] dddd [во] LT',
            lastDay: '[Вчера во] LT',
            lastWeek: function () {
                switch (this.day()) {
                    case 0:
                    case 3:
                    case 6:
                        return '[Изминатата] dddd [во] LT';
                    case 1:
                    case 2:
                    case 4:
                    case 5:
                        return '[Изминатиот] dddd [во] LT';
                }
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'за %s',
            past: 'пред %s',
            s: 'неколку секунди',
            ss: '%d секунди',
            m: 'една минута',
            mm: '%d минути',
            h: 'еден час',
            hh: '%d часа',
            d: 'еден ден',
            dd: '%d дена',
            M: 'еден месец',
            MM: '%d месеци',
            y: 'една година',
            yy: '%d години',
        },
        dayOfMonthOrdinalParse: /\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,
        ordinal: function (e) {
            var t = e % 10, n = e % 100;
            return 0 === e ? e + '-ев' : 0 == n ? e + '-ен' : 10 < n && n < 20
                ? e + '-ти'
                : 1 == t ? e + '-ви' : 2 == t ? e + '-ри' : 7 == t || 8 == t
                    ? e + '-ми'
                    : e + '-ти';
        },
        week: { dow: 1, doy: 7 },
    }), n.defineLocale('ml', {
        months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(
            '_'),
        monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(
            '_'),
        weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),
        weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
        longDateFormat: {
            LT: 'A h:mm -നു',
            LTS: 'A h:mm:ss -നു',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, A h:mm -നു',
            LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',
        },
        calendar: {
            sameDay: '[ഇന്ന്] LT',
            nextDay: '[നാളെ] LT',
            nextWeek: 'dddd, LT',
            lastDay: '[ഇന്നലെ] LT',
            lastWeek: '[കഴിഞ്ഞ] dddd, LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s കഴിഞ്ഞ്',
            past: '%s മുൻപ്',
            s: 'അൽപ നിമിഷങ്ങൾ',
            ss: '%d സെക്കൻഡ്',
            m: 'ഒരു മിനിറ്റ്',
            mm: '%d മിനിറ്റ്',
            h: 'ഒരു മണിക്കൂർ',
            hh: '%d മണിക്കൂർ',
            d: 'ഒരു ദിവസം',
            dd: '%d ദിവസം',
            M: 'ഒരു മാസം',
            MM: '%d മാസം',
            y: 'ഒരു വർഷം',
            yy: '%d വർഷം',
        },
        meridiemParse: /\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f|\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46|\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d|\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02|\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f/i,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'രാത്രി' === t && 4 <= e ||
            'ഉച്ച കഴിഞ്ഞ്' === t || 'വൈകുന്നേരം' === t ? e + 12 : e;
        },
        meridiem: function (e, t, n) {
            return e < 4 ? 'രാത്രി' : e < 12
                ? 'രാവിലെ'
                : e < 17 ? 'ഉച്ച കഴിഞ്ഞ്' : e < 20 ? 'വൈകുന്നേരം' : 'രാത്രി';
        },
    }), n.defineLocale('mn', {
        months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(
            '_'),
        monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),
        weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),
        weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'YYYY-MM-DD',
            LL: 'YYYY оны MMMMын D',
            LLL: 'YYYY оны MMMMын D HH:mm',
            LLLL: 'dddd, YYYY оны MMMMын D HH:mm',
        },
        meridiemParse: /\u04ae\u04e8|\u04ae\u0425/i,
        isPM: function (e) {return 'ҮХ' === e;},
        meridiem: function (e, t, n) {return e < 12 ? 'ҮӨ' : 'ҮХ';},
        calendar: {
            sameDay: '[Өнөөдөр] LT',
            nextDay: '[Маргааш] LT',
            nextWeek: '[Ирэх] dddd LT',
            lastDay: '[Өчигдөр] LT',
            lastWeek: '[Өнгөрсөн] dddd LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s дараа',
            past: '%s өмнө',
            s: ja,
            ss: ja,
            m: ja,
            mm: ja,
            h: ja,
            hh: ja,
            d: ja,
            dd: ja,
            M: ja,
            MM: ja,
            y: ja,
            yy: ja,
        },
        dayOfMonthOrdinalParse: /\d{1,2} \u04e9\u0434\u04e9\u0440/,
        ordinal: function (e, t) {
            switch (t) {
                case'd':
                case'D':
                case'DDD':
                    return e + ' өдөр';
                default:
                    return e;
            }
        },
    });
    var Na = {
        1: '१',
        2: '२',
        3: '३',
        4: '४',
        5: '५',
        6: '६',
        7: '७',
        8: '८',
        9: '९',
        0: '०',
    }, Ha = {
        '१': '1',
        '२': '2',
        '३': '3',
        '४': '4',
        '५': '5',
        '६': '6',
        '७': '7',
        '८': '8',
        '९': '9',
        '०': '0',
    };

    function Fa (e, t, n, i) {
        var a = '';
        if (t) switch (n) {
            case's':
                a = 'काही सेकंद';
                break;
            case'ss':
                a = '%d सेकंद';
                break;
            case'm':
                a = 'एक मिनिट';
                break;
            case'mm':
                a = '%d मिनिटे';
                break;
            case'h':
                a = 'एक तास';
                break;
            case'hh':
                a = '%d तास';
                break;
            case'd':
                a = 'एक दिवस';
                break;
            case'dd':
                a = '%d दिवस';
                break;
            case'M':
                a = 'एक महिना';
                break;
            case'MM':
                a = '%d महिने';
                break;
            case'y':
                a = 'एक वर्ष';
                break;
            case'yy':
                a = '%d वर्षे';
        } else switch (n) {
            case's':
                a = 'काही सेकंदां';
                break;
            case'ss':
                a = '%d सेकंदां';
                break;
            case'm':
                a = 'एका मिनिटा';
                break;
            case'mm':
                a = '%d मिनिटां';
                break;
            case'h':
                a = 'एका तासा';
                break;
            case'hh':
                a = '%d तासां';
                break;
            case'd':
                a = 'एका दिवसा';
                break;
            case'dd':
                a = '%d दिवसां';
                break;
            case'M':
                a = 'एका महिन्या';
                break;
            case'MM':
                a = '%d महिन्यां';
                break;
            case'y':
                a = 'एका वर्षा';
                break;
            case'yy':
                a = '%d वर्षां';
        }
        return a.replace(/%d/i, e);
    }

    n.defineLocale('mr', {
        months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(
            '_'),
        monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split(
            '_'),
        weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
        weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),
        longDateFormat: {
            LT: 'A h:mm वाजता',
            LTS: 'A h:mm:ss वाजता',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, A h:mm वाजता',
            LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',
        },
        calendar: {
            sameDay: '[आज] LT',
            nextDay: '[उद्या] LT',
            nextWeek: 'dddd, LT',
            lastDay: '[काल] LT',
            lastWeek: '[मागील] dddd, LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%sमध्ये',
            past: '%sपूर्वी',
            s: Fa,
            ss: Fa,
            m: Fa,
            mm: Fa,
            h: Fa,
            hh: Fa,
            d: Fa,
            dd: Fa,
            M: Fa,
            MM: Fa,
            y: Fa,
            yy: Fa,
        },
        preparse: function (e) {
            return e.replace(
                /[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,
                (function (e) {return Ha[e];}));
        },
        postformat: function (e) {
            return e.replace(/\d/g, (function (e) {return Na[e];}));
        },
        meridiemParse: /\u092a\u0939\u093e\u091f\u0947|\u0938\u0915\u093e\u0933\u0940|\u0926\u0941\u092a\u093e\u0930\u0940|\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940|\u0930\u093e\u0924\u094d\u0930\u0940/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'पहाटे' === t || 'सकाळी' === t
                ? e
                : 'दुपारी' === t || 'सायंकाळी' === t || 'रात्री' === t ? 12 <= e
                    ? e
                    : e + 12 : void 0;
        },
        meridiem: function (e, t, n) {
            return 0 <= e && e < 6 ? 'पहाटे' : e < 12
                ? 'सकाळी'
                : e < 17 ? 'दुपारी' : e < 20 ? 'सायंकाळी' : 'रात्री';
        },
        week: { dow: 0, doy: 6 },
    }), n.defineLocale('ms-my', {
        months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(
            '_'),
        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split(
            '_'),
        weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
        weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
        weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
        longDateFormat: {
            LT: 'HH.mm',
            LTS: 'HH.mm.ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY [pukul] HH.mm',
            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
        },
        meridiemParse: /pagi|tengahari|petang|malam/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'pagi' === t
                ? e
                : 'tengahari' === t ? 11 <= e ? e : e + 12 : 'petang' === t ||
                'malam' === t ? e + 12 : void 0;
        },
        meridiem: function (e, t, n) {
            return e < 11 ? 'pagi' : e < 15
                ? 'tengahari'
                : e < 19 ? 'petang' : 'malam';
        },
        calendar: {
            sameDay: '[Hari ini pukul] LT',
            nextDay: '[Esok pukul] LT',
            nextWeek: 'dddd [pukul] LT',
            lastDay: '[Kelmarin pukul] LT',
            lastWeek: 'dddd [lepas pukul] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'dalam %s',
            past: '%s yang lepas',
            s: 'beberapa saat',
            ss: '%d saat',
            m: 'seminit',
            mm: '%d minit',
            h: 'sejam',
            hh: '%d jam',
            d: 'sehari',
            dd: '%d hari',
            M: 'sebulan',
            MM: '%d bulan',
            y: 'setahun',
            yy: '%d tahun',
        },
        week: { dow: 1, doy: 7 },
    }), n.defineLocale('ms', {
        months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(
            '_'),
        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split(
            '_'),
        weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
        weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
        weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
        longDateFormat: {
            LT: 'HH.mm',
            LTS: 'HH.mm.ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY [pukul] HH.mm',
            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
        },
        meridiemParse: /pagi|tengahari|petang|malam/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'pagi' === t
                ? e
                : 'tengahari' === t ? 11 <= e ? e : e + 12 : 'petang' === t ||
                'malam' === t ? e + 12 : void 0;
        },
        meridiem: function (e, t, n) {
            return e < 11 ? 'pagi' : e < 15
                ? 'tengahari'
                : e < 19 ? 'petang' : 'malam';
        },
        calendar: {
            sameDay: '[Hari ini pukul] LT',
            nextDay: '[Esok pukul] LT',
            nextWeek: 'dddd [pukul] LT',
            lastDay: '[Kelmarin pukul] LT',
            lastWeek: 'dddd [lepas pukul] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'dalam %s',
            past: '%s yang lepas',
            s: 'beberapa saat',
            ss: '%d saat',
            m: 'seminit',
            mm: '%d minit',
            h: 'sejam',
            hh: '%d jam',
            d: 'sehari',
            dd: '%d hari',
            M: 'sebulan',
            MM: '%d bulan',
            y: 'setahun',
            yy: '%d tahun',
        },
        week: { dow: 1, doy: 7 },
    }), n.defineLocale('mt', {
        months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(
            '_'),
        monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split(
            '_'),
        weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(
            '_'),
        weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),
        weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Illum fil-]LT',
            nextDay: '[Għada fil-]LT',
            nextWeek: 'dddd [fil-]LT',
            lastDay: '[Il-bieraħ fil-]LT',
            lastWeek: 'dddd [li għadda] [fil-]LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'f’ %s',
            past: '%s ilu',
            s: 'ftit sekondi',
            ss: '%d sekondi',
            m: 'minuta',
            mm: '%d minuti',
            h: 'siegħa',
            hh: '%d siegħat',
            d: 'ġurnata',
            dd: '%d ġranet',
            M: 'xahar',
            MM: '%d xhur',
            y: 'sena',
            yy: '%d sni',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\xba/,
        ordinal: '%dº',
        week: { dow: 1, doy: 4 },
    });
    var Ra = {
        1: '၁',
        2: '၂',
        3: '၃',
        4: '၄',
        5: '၅',
        6: '၆',
        7: '၇',
        8: '၈',
        9: '၉',
        0: '၀',
    }, za = {
        '၁': '1',
        '၂': '2',
        '၃': '3',
        '၄': '4',
        '၅': '5',
        '၆': '6',
        '၇': '7',
        '၈': '8',
        '၉': '9',
        '၀': '0',
    };
    n.defineLocale('my', {
        months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(
            '_'),
        monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split(
            '_'),
        weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(
            '_'),
        weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
        weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[ယနေ.] LT [မှာ]',
            nextDay: '[မနက်ဖြန်] LT [မှာ]',
            nextWeek: 'dddd LT [မှာ]',
            lastDay: '[မနေ.က] LT [မှာ]',
            lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'လာမည့် %s မှာ',
            past: 'လွန်ခဲ့သော %s က',
            s: 'စက္ကန်.အနည်းငယ်',
            ss: '%d စက္ကန့်',
            m: 'တစ်မိနစ်',
            mm: '%d မိနစ်',
            h: 'တစ်နာရီ',
            hh: '%d နာရီ',
            d: 'တစ်ရက်',
            dd: '%d ရက်',
            M: 'တစ်လ',
            MM: '%d လ',
            y: 'တစ်နှစ်',
            yy: '%d နှစ်',
        },
        preparse: function (e) {
            return e.replace(
                /[\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1040]/g,
                (function (e) {return za[e];}));
        },
        postformat: function (e) {
            return e.replace(/\d/g, (function (e) {return Ra[e];}));
        },
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('nb', {
        months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(
            '_'),
        monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split(
            '_'),
        weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),
        weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D. MMMM YYYY',
            LLL: 'D. MMMM YYYY [kl.] HH:mm',
            LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',
        },
        calendar: {
            sameDay: '[i dag kl.] LT',
            nextDay: '[i morgen kl.] LT',
            nextWeek: 'dddd [kl.] LT',
            lastDay: '[i går kl.] LT',
            lastWeek: '[forrige] dddd [kl.] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'om %s',
            past: '%s siden',
            s: 'noen sekunder',
            ss: '%d sekunder',
            m: 'ett minutt',
            mm: '%d minutter',
            h: 'en time',
            hh: '%d timer',
            d: 'en dag',
            dd: '%d dager',
            w: 'en uke',
            ww: '%d uker',
            M: 'en måned',
            MM: '%d måneder',
            y: 'ett år',
            yy: '%d år',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    });
    var Ba = {
        1: '१',
        2: '२',
        3: '३',
        4: '४',
        5: '५',
        6: '६',
        7: '७',
        8: '८',
        9: '९',
        0: '०',
    }, Wa = {
        '१': '1',
        '२': '2',
        '३': '3',
        '४': '4',
        '५': '5',
        '६': '6',
        '७': '7',
        '८': '8',
        '९': '9',
        '०': '0',
    };
    n.defineLocale('ne', {
        months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(
            '_'),
        monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(
            '_'),
        weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
        weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'Aको h:mm बजे',
            LTS: 'Aको h:mm:ss बजे',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, Aको h:mm बजे',
            LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',
        },
        preparse: function (e) {
            return e.replace(
                /[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,
                (function (e) {return Wa[e];}));
        },
        postformat: function (e) {
            return e.replace(/\d/g, (function (e) {return Ba[e];}));
        },
        meridiemParse: /\u0930\u093e\u0924\u093f|\u092c\u093f\u0939\u093e\u0928|\u0926\u093f\u0909\u0901\u0938\u094b|\u0938\u093e\u0901\u091d/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'राति' === t
                ? e < 4 ? e : e + 12
                : 'बिहान' === t ? e : 'दिउँसो' === t
                    ? 10 <= e ? e : e + 12
                    : 'साँझ' === t ? e + 12 : void 0;
        },
        meridiem: function (e, t, n) {
            return e < 3 ? 'राति' : e < 12
                ? 'बिहान'
                : e < 16 ? 'दिउँसो' : e < 20 ? 'साँझ' : 'राति';
        },
        calendar: {
            sameDay: '[आज] LT',
            nextDay: '[भोलि] LT',
            nextWeek: '[आउँदो] dddd[,] LT',
            lastDay: '[हिजो] LT',
            lastWeek: '[गएको] dddd[,] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%sमा',
            past: '%s अगाडि',
            s: 'केही क्षण',
            ss: '%d सेकेण्ड',
            m: 'एक मिनेट',
            mm: '%d मिनेट',
            h: 'एक घण्टा',
            hh: '%d घण्टा',
            d: 'एक दिन',
            dd: '%d दिन',
            M: 'एक महिना',
            MM: '%d महिना',
            y: 'एक बर्ष',
            yy: '%d बर्ष',
        },
        week: { dow: 0, doy: 6 },
    });
    var Va = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(
        '_'), qa = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),
        Ua = [
            /^jan/i,
            /^feb/i,
            /^maart|mrt.?$/i,
            /^apr/i,
            /^mei$/i,
            /^jun[i.]?$/i,
            /^jul[i.]?$/i,
            /^aug/i,
            /^sep/i,
            /^okt/i,
            /^nov/i,
            /^dec/i],
        Xa = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
    n.defineLocale('nl-be', {
        months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(
            '_'),
        monthsShort: function (e, t) {
            return e ? /-MMM-/.test(t)
                ? qa[e.month()]
                : Va[e.month()] : Va;
        },
        monthsRegex: Xa,
        monthsShortRegex: Xa,
        monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,
        monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
        monthsParse: Ua,
        longMonthsParse: Ua,
        shortMonthsParse: Ua,
        weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(
            '_'),
        weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),
        weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[vandaag om] LT',
            nextDay: '[morgen om] LT',
            nextWeek: 'dddd [om] LT',
            lastDay: '[gisteren om] LT',
            lastWeek: '[afgelopen] dddd [om] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'over %s',
            past: '%s geleden',
            s: 'een paar seconden',
            ss: '%d seconden',
            m: 'één minuut',
            mm: '%d minuten',
            h: 'één uur',
            hh: '%d uur',
            d: 'één dag',
            dd: '%d dagen',
            M: 'één maand',
            MM: '%d maanden',
            y: 'één jaar',
            yy: '%d jaar',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
        ordinal: function (e) {
            return e + (1 === e || 8 === e || 20 <= e ? 'ste' : 'de');
        },
        week: { dow: 1, doy: 4 },
    });
    var $a = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(
        '_'), Ga = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),
        Za = [
            /^jan/i,
            /^feb/i,
            /^maart|mrt.?$/i,
            /^apr/i,
            /^mei$/i,
            /^jun[i.]?$/i,
            /^jul[i.]?$/i,
            /^aug/i,
            /^sep/i,
            /^okt/i,
            /^nov/i,
            /^dec/i],
        Ka = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
    n.defineLocale('nl', {
        months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(
            '_'),
        monthsShort: function (e, t) {
            return e ? /-MMM-/.test(t)
                ? Ga[e.month()]
                : $a[e.month()] : $a;
        },
        monthsRegex: Ka,
        monthsShortRegex: Ka,
        monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,
        monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
        monthsParse: Za,
        longMonthsParse: Za,
        shortMonthsParse: Za,
        weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(
            '_'),
        weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),
        weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD-MM-YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[vandaag om] LT',
            nextDay: '[morgen om] LT',
            nextWeek: 'dddd [om] LT',
            lastDay: '[gisteren om] LT',
            lastWeek: '[afgelopen] dddd [om] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'over %s',
            past: '%s geleden',
            s: 'een paar seconden',
            ss: '%d seconden',
            m: 'één minuut',
            mm: '%d minuten',
            h: 'één uur',
            hh: '%d uur',
            d: 'één dag',
            dd: '%d dagen',
            w: 'één week',
            ww: '%d weken',
            M: 'één maand',
            MM: '%d maanden',
            y: 'één jaar',
            yy: '%d jaar',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
        ordinal: function (e) {
            return e + (1 === e || 8 === e || 20 <= e ? 'ste' : 'de');
        },
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('nn', {
        months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(
            '_'),
        monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split(
            '_'),
        weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),
        weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D. MMMM YYYY',
            LLL: 'D. MMMM YYYY [kl.] H:mm',
            LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',
        },
        calendar: {
            sameDay: '[I dag klokka] LT',
            nextDay: '[I morgon klokka] LT',
            nextWeek: 'dddd [klokka] LT',
            lastDay: '[I går klokka] LT',
            lastWeek: '[Føregåande] dddd [klokka] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'om %s',
            past: '%s sidan',
            s: 'nokre sekund',
            ss: '%d sekund',
            m: 'eit minutt',
            mm: '%d minutt',
            h: 'ein time',
            hh: '%d timar',
            d: 'ein dag',
            dd: '%d dagar',
            w: 'ei veke',
            ww: '%d veker',
            M: 'ein månad',
            MM: '%d månader',
            y: 'eit år',
            yy: '%d år',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('oc-lnc', {
        months: {
            standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(
                '_'),
            format: 'de genièr_de febrièr_de març_d\'abril_de mai_de junh_de julhet_d\'agost_de setembre_d\'octòbre_de novembre_de decembre'.split(
                '_'),
            isFormat: /D[oD]?(\s)+MMMM/,
        },
        monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(
            '_'),
        weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),
        weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM [de] YYYY',
            ll: 'D MMM YYYY',
            LLL: 'D MMMM [de] YYYY [a] H:mm',
            lll: 'D MMM YYYY, H:mm',
            LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',
            llll: 'ddd D MMM YYYY, H:mm',
        },
        calendar: {
            sameDay: '[uèi a] LT',
            nextDay: '[deman a] LT',
            nextWeek: 'dddd [a] LT',
            lastDay: '[ièr a] LT',
            lastWeek: 'dddd [passat a] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'd\'aquí %s',
            past: 'fa %s',
            s: 'unas segondas',
            ss: '%d segondas',
            m: 'una minuta',
            mm: '%d minutas',
            h: 'una ora',
            hh: '%d oras',
            d: 'un jorn',
            dd: '%d jorns',
            M: 'un mes',
            MM: '%d meses',
            y: 'un an',
            yy: '%d ans',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|\xe8|a)/,
        ordinal: function (e, t) {
            return e +
                ('w' !== t && 'W' !== t ? 1 === e ? 'r' : 2 === e ? 'n' : 3 ===
                e ? 'r' : 4 === e ? 't' : 'è' : 'a');
        },
        week: { dow: 1, doy: 4 },
    });
    var Ja = {
        1: '੧',
        2: '੨',
        3: '੩',
        4: '੪',
        5: '੫',
        6: '੬',
        7: '੭',
        8: '੮',
        9: '੯',
        0: '੦',
    }, Qa = {
        '੧': '1',
        '੨': '2',
        '੩': '3',
        '੪': '4',
        '੫': '5',
        '੬': '6',
        '੭': '7',
        '੮': '8',
        '੯': '9',
        '੦': '0',
    };
    n.defineLocale('pa-in', {
        months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(
            '_'),
        monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(
            '_'),
        weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(
            '_'),
        weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
        weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
        longDateFormat: {
            LT: 'A h:mm ਵਜੇ',
            LTS: 'A h:mm:ss ਵਜੇ',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',
            LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',
        },
        calendar: {
            sameDay: '[ਅਜ] LT',
            nextDay: '[ਕਲ] LT',
            nextWeek: '[ਅਗਲਾ] dddd, LT',
            lastDay: '[ਕਲ] LT',
            lastWeek: '[ਪਿਛਲੇ] dddd, LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s ਵਿੱਚ',
            past: '%s ਪਿਛਲੇ',
            s: 'ਕੁਝ ਸਕਿੰਟ',
            ss: '%d ਸਕਿੰਟ',
            m: 'ਇਕ ਮਿੰਟ',
            mm: '%d ਮਿੰਟ',
            h: 'ਇੱਕ ਘੰਟਾ',
            hh: '%d ਘੰਟੇ',
            d: 'ਇੱਕ ਦਿਨ',
            dd: '%d ਦਿਨ',
            M: 'ਇੱਕ ਮਹੀਨਾ',
            MM: '%d ਮਹੀਨੇ',
            y: 'ਇੱਕ ਸਾਲ',
            yy: '%d ਸਾਲ',
        },
        preparse: function (e) {
            return e.replace(
                /[\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e\u0a6f\u0a66]/g,
                (function (e) {return Qa[e];}));
        },
        postformat: function (e) {
            return e.replace(/\d/g, (function (e) {return Ja[e];}));
        },
        meridiemParse: /\u0a30\u0a3e\u0a24|\u0a38\u0a35\u0a47\u0a30|\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30|\u0a38\u0a3c\u0a3e\u0a2e/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'ਰਾਤ' === t
                ? e < 4 ? e : e + 12
                : 'ਸਵੇਰ' === t ? e : 'ਦੁਪਹਿਰ' === t
                    ? 10 <= e ? e : e + 12
                    : 'ਸ਼ਾਮ' === t ? e + 12 : void 0;
        },
        meridiem: function (e, t, n) {
            return e < 4 ? 'ਰਾਤ' : e < 10
                ? 'ਸਵੇਰ'
                : e < 17 ? 'ਦੁਪਹਿਰ' : e < 20 ? 'ਸ਼ਾਮ' : 'ਰਾਤ';
        },
        week: { dow: 0, doy: 6 },
    });
    var er = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(
        '_'),
        tr = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(
            '_'), nr = [
            /^sty/i,
            /^lut/i,
            /^mar/i,
            /^kwi/i,
            /^maj/i,
            /^cze/i,
            /^lip/i,
            /^sie/i,
            /^wrz/i,
            /^pa\u017a/i,
            /^lis/i,
            /^gru/i];

    function ir (e) {return e % 10 < 5 && 1 < e % 10 && ~~(e / 10) % 10 != 1;}

    function ar (e, t, n) {
        var i = e + ' ';
        switch (n) {
            case'ss':
                return i + (ir(e) ? 'sekundy' : 'sekund');
            case'm':
                return t ? 'minuta' : 'minutę';
            case'mm':
                return i + (ir(e) ? 'minuty' : 'minut');
            case'h':
                return t ? 'godzina' : 'godzinę';
            case'hh':
                return i + (ir(e) ? 'godziny' : 'godzin');
            case'ww':
                return i + (ir(e) ? 'tygodnie' : 'tygodni');
            case'MM':
                return i + (ir(e) ? 'miesiące' : 'miesięcy');
            case'yy':
                return i + (ir(e) ? 'lata' : 'lat');
        }
    }

    function rr (e, t, n) {
        return e + (20 <= e % 100 || 100 <= e && e % 100 == 0 ? ' de ' : ' ') +
            {
                ss: 'secunde',
                mm: 'minute',
                hh: 'ore',
                dd: 'zile',
                ww: 'săptămâni',
                MM: 'luni',
                yy: 'ani',
            }[n];
    }

    function or (e, t, n) {
        var i, a;
        return 'm' === n ? t ? 'минута' : 'минуту' : e + ' ' + (i = +e, a = {
            ss: t
                ? 'секунда_секунды_секунд'
                : 'секунду_секунды_секунд',
            mm: t ? 'минута_минуты_минут' : 'минуту_минуты_минут',
            hh: 'час_часа_часов',
            dd: 'день_дня_дней',
            ww: 'неделя_недели_недель',
            MM: 'месяц_месяца_месяцев',
            yy: 'год_года_лет',
        }[n].split('_'), i % 10 == 1 && i % 100 != 11 ? a[0] : 2 <= i % 10 &&
        i % 10 <= 4 && (i % 100 < 10 || 20 <= i % 100) ? a[1] : a[2]);
    }

    n.defineLocale('pl', {
        months: function (e, t) {
            return e ? /D MMMM/.test(t)
                ? tr[e.month()]
                : er[e.month()] : er;
        },
        monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split(
            '_'),
        monthsParse: nr,
        longMonthsParse: nr,
        shortMonthsParse: nr,
        weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split(
            '_'),
        weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),
        weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Dziś o] LT',
            nextDay: '[Jutro o] LT',
            nextWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[W niedzielę o] LT';
                    case 2:
                        return '[We wtorek o] LT';
                    case 3:
                        return '[W środę o] LT';
                    case 6:
                        return '[W sobotę o] LT';
                    default:
                        return '[W] dddd [o] LT';
                }
            },
            lastDay: '[Wczoraj o] LT',
            lastWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[W zeszłą niedzielę o] LT';
                    case 3:
                        return '[W zeszłą środę o] LT';
                    case 6:
                        return '[W zeszłą sobotę o] LT';
                    default:
                        return '[W zeszły] dddd [o] LT';
                }
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'za %s',
            past: '%s temu',
            s: 'kilka sekund',
            ss: ar,
            m: ar,
            mm: ar,
            h: ar,
            hh: ar,
            d: '1 dzień',
            dd: '%d dni',
            w: 'tydzień',
            ww: ar,
            M: 'miesiąc',
            MM: ar,
            y: 'rok',
            yy: ar,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('pt-br', {
        months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(
            '_'),
        monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split(
            '_'),
        weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(
            '_'),
        weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),
        weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D [de] MMMM [de] YYYY',
            LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',
            LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',
        },
        calendar: {
            sameDay: '[Hoje às] LT',
            nextDay: '[Amanhã às] LT',
            nextWeek: 'dddd [às] LT',
            lastDay: '[Ontem às] LT',
            lastWeek: function () {
                return 0 === this.day() || 6 === this.day()
                    ? '[Último] dddd [às] LT'
                    : '[Última] dddd [às] LT';
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'em %s',
            past: 'há %s',
            s: 'poucos segundos',
            ss: '%d segundos',
            m: 'um minuto',
            mm: '%d minutos',
            h: 'uma hora',
            hh: '%d horas',
            d: 'um dia',
            dd: '%d dias',
            M: 'um mês',
            MM: '%d meses',
            y: 'um ano',
            yy: '%d anos',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\xba/,
        ordinal: '%dº',
        invalidDate: 'Data inválida',
    }), n.defineLocale('pt', {
        months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(
            '_'),
        monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split(
            '_'),
        weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(
            '_'),
        weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
        weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D [de] MMMM [de] YYYY',
            LLL: 'D [de] MMMM [de] YYYY HH:mm',
            LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Hoje às] LT',
            nextDay: '[Amanhã às] LT',
            nextWeek: 'dddd [às] LT',
            lastDay: '[Ontem às] LT',
            lastWeek: function () {
                return 0 === this.day() || 6 === this.day()
                    ? '[Último] dddd [às] LT'
                    : '[Última] dddd [às] LT';
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'em %s',
            past: 'há %s',
            s: 'segundos',
            ss: '%d segundos',
            m: 'um minuto',
            mm: '%d minutos',
            h: 'uma hora',
            hh: '%d horas',
            d: 'um dia',
            dd: '%d dias',
            w: 'uma semana',
            ww: '%d semanas',
            M: 'um mês',
            MM: '%d meses',
            y: 'um ano',
            yy: '%d anos',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\xba/,
        ordinal: '%dº',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('ro', {
        months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(
            '_'),
        monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
        weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
        weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY H:mm',
            LLLL: 'dddd, D MMMM YYYY H:mm',
        },
        calendar: {
            sameDay: '[azi la] LT',
            nextDay: '[mâine la] LT',
            nextWeek: 'dddd [la] LT',
            lastDay: '[ieri la] LT',
            lastWeek: '[fosta] dddd [la] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'peste %s',
            past: '%s în urmă',
            s: 'câteva secunde',
            ss: rr,
            m: 'un minut',
            mm: rr,
            h: 'o oră',
            hh: rr,
            d: 'o zi',
            dd: rr,
            w: 'o săptămână',
            ww: rr,
            M: 'o lună',
            MM: rr,
            y: 'un an',
            yy: rr,
        },
        week: { dow: 1, doy: 7 },
    });
    var sr = [
        /^\u044f\u043d\u0432/i,
        /^\u0444\u0435\u0432/i,
        /^\u043c\u0430\u0440/i,
        /^\u0430\u043f\u0440/i,
        /^\u043c\u0430[\u0439\u044f]/i,
        /^\u0438\u044e\u043d/i,
        /^\u0438\u044e\u043b/i,
        /^\u0430\u0432\u0433/i,
        /^\u0441\u0435\u043d/i,
        /^\u043e\u043a\u0442/i,
        /^\u043d\u043e\u044f/i,
        /^\u0434\u0435\u043a/i];
    n.defineLocale('ru', {
        months: {
            format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(
                '_'),
            standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(
                '_'),
        },
        monthsShort: {
            format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(
                '_'),
            standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(
                '_'),
        },
        weekdays: {
            standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(
                '_'),
            format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(
                '_'),
            isFormat: /\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?] ?dddd/,
        },
        weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
        weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
        monthsParse: sr,
        longMonthsParse: sr,
        shortMonthsParse: sr,
        monthsRegex: /^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,
        monthsShortRegex: /^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,
        monthsStrictRegex: /^(\u044f\u043d\u0432\u0430\u0440[\u044f\u044c]|\u0444\u0435\u0432\u0440\u0430\u043b[\u044f\u044c]|\u043c\u0430\u0440\u0442\u0430?|\u0430\u043f\u0440\u0435\u043b[\u044f\u044c]|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044f\u044c]|\u0438\u044e\u043b[\u044f\u044c]|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043e\u043a\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043d\u043e\u044f\u0431\u0440[\u044f\u044c]|\u0434\u0435\u043a\u0430\u0431\u0440[\u044f\u044c])/i,
        monthsShortStrictRegex: /^(\u044f\u043d\u0432\.|\u0444\u0435\u0432\u0440?\.|\u043c\u0430\u0440[\u0442.]|\u0430\u043f\u0440\.|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044c\u044f.]|\u0438\u044e\u043b[\u044c\u044f.]|\u0430\u0432\u0433\.|\u0441\u0435\u043d\u0442?\.|\u043e\u043a\u0442\.|\u043d\u043e\u044f\u0431?\.|\u0434\u0435\u043a\.)/i,
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY г.',
            LLL: 'D MMMM YYYY г., H:mm',
            LLLL: 'dddd, D MMMM YYYY г., H:mm',
        },
        calendar: {
            sameDay: '[Сегодня, в] LT',
            nextDay: '[Завтра, в] LT',
            lastDay: '[Вчера, в] LT',
            nextWeek: function (e) {
                if (e.week() === this.week()) return 2 === this.day()
                    ? '[Во] dddd, [в] LT'
                    : '[В] dddd, [в] LT';
                switch (this.day()) {
                    case 0:
                        return '[В следующее] dddd, [в] LT';
                    case 1:
                    case 2:
                    case 4:
                        return '[В следующий] dddd, [в] LT';
                    case 3:
                    case 5:
                    case 6:
                        return '[В следующую] dddd, [в] LT';
                }
            },
            lastWeek: function (e) {
                if (e.week() === this.week()) return 2 === this.day()
                    ? '[Во] dddd, [в] LT'
                    : '[В] dddd, [в] LT';
                switch (this.day()) {
                    case 0:
                        return '[В прошлое] dddd, [в] LT';
                    case 1:
                    case 2:
                    case 4:
                        return '[В прошлый] dddd, [в] LT';
                    case 3:
                    case 5:
                    case 6:
                        return '[В прошлую] dddd, [в] LT';
                }
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'через %s',
            past: '%s назад',
            s: 'несколько секунд',
            ss: or,
            m: or,
            mm: or,
            h: 'час',
            hh: or,
            d: 'день',
            dd: or,
            w: 'неделя',
            ww: or,
            M: 'месяц',
            MM: or,
            y: 'год',
            yy: or,
        },
        meridiemParse: /\u043d\u043e\u0447\u0438|\u0443\u0442\u0440\u0430|\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430/i,
        isPM: function (e) {
            return /^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430)$/.test(
                e);
        },
        meridiem: function (e, t, n) {
            return e < 4 ? 'ночи' : e < 12
                ? 'утра'
                : e < 17 ? 'дня' : 'вечера';
        },
        dayOfMonthOrdinalParse: /\d{1,2}-(\u0439|\u0433\u043e|\u044f)/,
        ordinal: function (e, t) {
            switch (t) {
                case'M':
                case'd':
                case'DDD':
                    return e + '-й';
                case'D':
                    return e + '-го';
                case'w':
                case'W':
                    return e + '-я';
                default:
                    return e;
            }
        },
        week: { dow: 1, doy: 4 },
    });
    var lr = [
        'جنوري',
        'فيبروري',
        'مارچ',
        'اپريل',
        'مئي',
        'جون',
        'جولاءِ',
        'آگسٽ',
        'سيپٽمبر',
        'آڪٽوبر',
        'نومبر',
        'ڊسمبر'], cr = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];
    n.defineLocale('sd', {
        months: lr,
        monthsShort: lr,
        weekdays: cr,
        weekdaysShort: cr,
        weekdaysMin: cr,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd، D MMMM YYYY HH:mm',
        },
        meridiemParse: /\u0635\u0628\u062d|\u0634\u0627\u0645/,
        isPM: function (e) {return 'شام' === e;},
        meridiem: function (e, t, n) {return e < 12 ? 'صبح' : 'شام';},
        calendar: {
            sameDay: '[اڄ] LT',
            nextDay: '[سڀاڻي] LT',
            nextWeek: 'dddd [اڳين هفتي تي] LT',
            lastDay: '[ڪالهه] LT',
            lastWeek: '[گزريل هفتي] dddd [تي] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s پوء',
            past: '%s اڳ',
            s: 'چند سيڪنڊ',
            ss: '%d سيڪنڊ',
            m: 'هڪ منٽ',
            mm: '%d منٽ',
            h: 'هڪ ڪلاڪ',
            hh: '%d ڪلاڪ',
            d: 'هڪ ڏينهن',
            dd: '%d ڏينهن',
            M: 'هڪ مهينو',
            MM: '%d مهينا',
            y: 'هڪ سال',
            yy: '%d سال',
        },
        preparse: function (e) {return e.replace(/\u060c/g, ',');},
        postformat: function (e) {return e.replace(/,/g, '،');},
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('se', {
        months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(
            '_'),
        monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split(
            '_'),
        weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(
            '_'),
        weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),
        weekdaysMin: 's_v_m_g_d_b_L'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'MMMM D. [b.] YYYY',
            LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',
            LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',
        },
        calendar: {
            sameDay: '[otne ti] LT',
            nextDay: '[ihttin ti] LT',
            nextWeek: 'dddd [ti] LT',
            lastDay: '[ikte ti] LT',
            lastWeek: '[ovddit] dddd [ti] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s geažes',
            past: 'maŋit %s',
            s: 'moadde sekunddat',
            ss: '%d sekunddat',
            m: 'okta minuhta',
            mm: '%d minuhtat',
            h: 'okta diimmu',
            hh: '%d diimmut',
            d: 'okta beaivi',
            dd: '%d beaivvit',
            M: 'okta mánnu',
            MM: '%d mánut',
            y: 'okta jahki',
            yy: '%d jagit',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('si', {
        months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(
            '_'),
        monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(
            '_'),
        weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(
            '_'),
        weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),
        weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'a h:mm',
            LTS: 'a h:mm:ss',
            L: 'YYYY/MM/DD',
            LL: 'YYYY MMMM D',
            LLL: 'YYYY MMMM D, a h:mm',
            LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',
        },
        calendar: {
            sameDay: '[අද] LT[ට]',
            nextDay: '[හෙට] LT[ට]',
            nextWeek: 'dddd LT[ට]',
            lastDay: '[ඊයේ] LT[ට]',
            lastWeek: '[පසුගිය] dddd LT[ට]',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%sකින්',
            past: '%sකට පෙර',
            s: 'තත්පර කිහිපය',
            ss: 'තත්පර %d',
            m: 'මිනිත්තුව',
            mm: 'මිනිත්තු %d',
            h: 'පැය',
            hh: 'පැය %d',
            d: 'දිනය',
            dd: 'දින %d',
            M: 'මාසය',
            MM: 'මාස %d',
            y: 'වසර',
            yy: 'වසර %d',
        },
        dayOfMonthOrdinalParse: /\d{1,2} \u0dc0\u0dd0\u0db1\u0dd2/,
        ordinal: function (e) {return e + ' වැනි';},
        meridiemParse: /\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4|\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4|\u0db4\u0dd9.\u0dc0|\u0db4.\u0dc0./,
        isPM: function (e) {return 'ප.ව.' === e || 'පස් වරු' === e;},
        meridiem: function (e, t, n) {
            return 11 < e ? n ? 'ප.ව.' : 'පස් වරු' : n
                ? 'පෙ.ව.'
                : 'පෙර වරු';
        },
    });
    var ur = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(
        '_'), dr = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');

    function hr (e) {return 1 < e && e < 5;}

    function fr (e, t, n, i) {
        var a = e + ' ';
        switch (n) {
            case's':
                return t || i ? 'pár sekúnd' : 'pár sekundami';
            case'ss':
                return t || i ? a + (hr(e) ? 'sekundy' : 'sekúnd') : a +
                    'sekundami';
            case'm':
                return t ? 'minúta' : i ? 'minútu' : 'minútou';
            case'mm':
                return t || i ? a + (hr(e) ? 'minúty' : 'minút') : a +
                    'minútami';
            case'h':
                return t ? 'hodina' : i ? 'hodinu' : 'hodinou';
            case'hh':
                return t || i ? a + (hr(e) ? 'hodiny' : 'hodín') : a +
                    'hodinami';
            case'd':
                return t || i ? 'deň' : 'dňom';
            case'dd':
                return t || i ? a + (hr(e) ? 'dni' : 'dní') : a + 'dňami';
            case'M':
                return t || i ? 'mesiac' : 'mesiacom';
            case'MM':
                return t || i ? a + (hr(e) ? 'mesiace' : 'mesiacov') : a +
                    'mesiacmi';
            case'y':
                return t || i ? 'rok' : 'rokom';
            case'yy':
                return t || i ? a + (hr(e) ? 'roky' : 'rokov') : a + 'rokmi';
        }
    }

    function pr (e, t, n, i) {
        var a = e + ' ';
        switch (n) {
            case's':
                return t || i ? 'nekaj sekund' : 'nekaj sekundami';
            case'ss':
                return a +
                    (1 === e ? t ? 'sekundo' : 'sekundi' : 2 === e ? t || i
                        ? 'sekundi'
                        : 'sekundah' : e < 5
                        ? t || i ? 'sekunde' : 'sekundah'
                        : 'sekund');
            case'm':
                return t ? 'ena minuta' : 'eno minuto';
            case'mm':
                return a + (1 === e ? t ? 'minuta' : 'minuto' : 2 === e ? t || i
                    ? 'minuti'
                    : 'minutama' : e < 5 ? t || i ? 'minute' : 'minutami' : t ||
                i ? 'minut' : 'minutami');
            case'h':
                return t ? 'ena ura' : 'eno uro';
            case'hh':
                return a + (1 === e ? t ? 'ura' : 'uro' : 2 === e ? t || i
                    ? 'uri'
                    : 'urama' : e < 5 ? t || i ? 'ure' : 'urami' : t || i
                    ? 'ur'
                    : 'urami');
            case'd':
                return t || i ? 'en dan' : 'enim dnem';
            case'dd':
                return a + (1 === e ? t || i ? 'dan' : 'dnem' : 2 === e ? t || i
                    ? 'dni'
                    : 'dnevoma' : t || i ? 'dni' : 'dnevi');
            case'M':
                return t || i ? 'en mesec' : 'enim mesecem';
            case'MM':
                return a +
                    (1 === e ? t || i ? 'mesec' : 'mesecem' : 2 === e ? t || i
                        ? 'meseca'
                        : 'mesecema' : e < 5
                        ? t || i ? 'mesece' : 'meseci'
                        : t || i ? 'mesecev' : 'meseci');
            case'y':
                return t || i ? 'eno leto' : 'enim letom';
            case'yy':
                return a +
                    (1 === e ? t || i ? 'leto' : 'letom' : 2 === e ? t || i
                        ? 'leti'
                        : 'letoma' : e < 5 ? t || i ? 'leta' : 'leti' : t || i
                        ? 'let'
                        : 'leti');
        }
    }

    n.defineLocale('sk', {
        months: ur,
        monthsShort: dr,
        weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split(
            '_'),
        weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),
        weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D. MMMM YYYY',
            LLL: 'D. MMMM YYYY H:mm',
            LLLL: 'dddd D. MMMM YYYY H:mm',
        },
        calendar: {
            sameDay: '[dnes o] LT',
            nextDay: '[zajtra o] LT',
            nextWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[v nedeľu o] LT';
                    case 1:
                    case 2:
                        return '[v] dddd [o] LT';
                    case 3:
                        return '[v stredu o] LT';
                    case 4:
                        return '[vo štvrtok o] LT';
                    case 5:
                        return '[v piatok o] LT';
                    case 6:
                        return '[v sobotu o] LT';
                }
            },
            lastDay: '[včera o] LT',
            lastWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[minulú nedeľu o] LT';
                    case 1:
                    case 2:
                        return '[minulý] dddd [o] LT';
                    case 3:
                        return '[minulú stredu o] LT';
                    case 4:
                    case 5:
                        return '[minulý] dddd [o] LT';
                    case 6:
                        return '[minulú sobotu o] LT';
                }
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'za %s',
            past: 'pred %s',
            s: fr,
            ss: fr,
            m: fr,
            mm: fr,
            h: fr,
            hh: fr,
            d: fr,
            dd: fr,
            M: fr,
            MM: fr,
            y: fr,
            yy: fr,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('sl', {
        months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(
            '_'),
        monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split(
            '_'),
        weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
        weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD. MM. YYYY',
            LL: 'D. MMMM YYYY',
            LLL: 'D. MMMM YYYY H:mm',
            LLLL: 'dddd, D. MMMM YYYY H:mm',
        },
        calendar: {
            sameDay: '[danes ob] LT',
            nextDay: '[jutri ob] LT',
            nextWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[v] [nedeljo] [ob] LT';
                    case 3:
                        return '[v] [sredo] [ob] LT';
                    case 6:
                        return '[v] [soboto] [ob] LT';
                    case 1:
                    case 2:
                    case 4:
                    case 5:
                        return '[v] dddd [ob] LT';
                }
            },
            lastDay: '[včeraj ob] LT',
            lastWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[prejšnjo] [nedeljo] [ob] LT';
                    case 3:
                        return '[prejšnjo] [sredo] [ob] LT';
                    case 6:
                        return '[prejšnjo] [soboto] [ob] LT';
                    case 1:
                    case 2:
                    case 4:
                    case 5:
                        return '[prejšnji] dddd [ob] LT';
                }
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'čez %s',
            past: 'pred %s',
            s: pr,
            ss: pr,
            m: pr,
            mm: pr,
            h: pr,
            hh: pr,
            d: pr,
            dd: pr,
            M: pr,
            MM: pr,
            y: pr,
            yy: pr,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 7 },
    }), n.defineLocale('sq', {
        months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(
            '_'),
        monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split(
            '_'),
        weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(
            '_'),
        weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
        weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),
        weekdaysParseExact: !0,
        meridiemParse: /PD|MD/,
        isPM: function (e) {return 'M' === e.charAt(0);},
        meridiem: function (e, t, n) {return e < 12 ? 'PD' : 'MD';},
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Sot në] LT',
            nextDay: '[Nesër në] LT',
            nextWeek: 'dddd [në] LT',
            lastDay: '[Dje në] LT',
            lastWeek: 'dddd [e kaluar në] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'në %s',
            past: '%s më parë',
            s: 'disa sekonda',
            ss: '%d sekonda',
            m: 'një minutë',
            mm: '%d minuta',
            h: 'një orë',
            hh: '%d orë',
            d: 'një ditë',
            dd: '%d ditë',
            M: 'një muaj',
            MM: '%d muaj',
            y: 'një vit',
            yy: '%d vite',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    });
    var mr = {
        words: {
            ss: ['секунда', 'секунде', 'секунди'],
            m: ['један минут', 'једне минуте'],
            mm: ['минут', 'минуте', 'минута'],
            h: ['један сат', 'једног сата'],
            hh: ['сат', 'сата', 'сати'],
            dd: ['дан', 'дана', 'дана'],
            MM: ['месец', 'месеца', 'месеци'],
            yy: ['година', 'године', 'година'],
        },
        correctGrammaticalCase: function (e, t) {
            return 1 === e ? t[0] : 2 <= e && e <= 4 ? t[1] : t[2];
        },
        translate: function (e, t, n) {
            var i = mr.words[n];
            return 1 === n.length ? t ? i[0] : i[1] : e + ' ' +
                mr.correctGrammaticalCase(e, i);
        },
    };
    n.defineLocale('sr-cyrl', {
        months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(
            '_'),
        monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split(
            '_'),
        weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),
        weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'D. M. YYYY.',
            LL: 'D. MMMM YYYY.',
            LLL: 'D. MMMM YYYY. H:mm',
            LLLL: 'dddd, D. MMMM YYYY. H:mm',
        },
        calendar: {
            sameDay: '[данас у] LT',
            nextDay: '[сутра у] LT',
            nextWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[у] [недељу] [у] LT';
                    case 3:
                        return '[у] [среду] [у] LT';
                    case 6:
                        return '[у] [суботу] [у] LT';
                    case 1:
                    case 2:
                    case 4:
                    case 5:
                        return '[у] dddd [у] LT';
                }
            },
            lastDay: '[јуче у] LT',
            lastWeek: function () {
                return [
                    '[прошле] [недеље] [у] LT',
                    '[прошлог] [понедељка] [у] LT',
                    '[прошлог] [уторка] [у] LT',
                    '[прошле] [среде] [у] LT',
                    '[прошлог] [четвртка] [у] LT',
                    '[прошлог] [петка] [у] LT',
                    '[прошле] [суботе] [у] LT'][this.day()];
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'за %s',
            past: 'пре %s',
            s: 'неколико секунди',
            ss: mr.translate,
            m: mr.translate,
            mm: mr.translate,
            h: mr.translate,
            hh: mr.translate,
            d: 'дан',
            dd: mr.translate,
            M: 'месец',
            MM: mr.translate,
            y: 'годину',
            yy: mr.translate,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 7 },
    });
    var gr = {
        words: {
            ss: ['sekunda', 'sekunde', 'sekundi'],
            m: ['jedan minut', 'jedne minute'],
            mm: ['minut', 'minute', 'minuta'],
            h: ['jedan sat', 'jednog sata'],
            hh: ['sat', 'sata', 'sati'],
            dd: ['dan', 'dana', 'dana'],
            MM: ['mesec', 'meseca', 'meseci'],
            yy: ['godina', 'godine', 'godina'],
        },
        correctGrammaticalCase: function (e, t) {
            return 1 === e ? t[0] : 2 <= e && e <= 4 ? t[1] : t[2];
        },
        translate: function (e, t, n) {
            var i = gr.words[n];
            return 1 === n.length ? t ? i[0] : i[1] : e + ' ' +
                gr.correctGrammaticalCase(e, i);
        },
    };
    n.defineLocale('sr', {
        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
            '_'),
        monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(
            '_'),
        weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),
        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'D. M. YYYY.',
            LL: 'D. MMMM YYYY.',
            LLL: 'D. MMMM YYYY. H:mm',
            LLLL: 'dddd, D. MMMM YYYY. H:mm',
        },
        calendar: {
            sameDay: '[danas u] LT',
            nextDay: '[sutra u] LT',
            nextWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[u] [nedelju] [u] LT';
                    case 3:
                        return '[u] [sredu] [u] LT';
                    case 6:
                        return '[u] [subotu] [u] LT';
                    case 1:
                    case 2:
                    case 4:
                    case 5:
                        return '[u] dddd [u] LT';
                }
            },
            lastDay: '[juče u] LT',
            lastWeek: function () {
                return [
                    '[prošle] [nedelje] [u] LT',
                    '[prošlog] [ponedeljka] [u] LT',
                    '[prošlog] [utorka] [u] LT',
                    '[prošle] [srede] [u] LT',
                    '[prošlog] [četvrtka] [u] LT',
                    '[prošlog] [petka] [u] LT',
                    '[prošle] [subote] [u] LT'][this.day()];
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'za %s',
            past: 'pre %s',
            s: 'nekoliko sekundi',
            ss: gr.translate,
            m: gr.translate,
            mm: gr.translate,
            h: gr.translate,
            hh: gr.translate,
            d: 'dan',
            dd: gr.translate,
            M: 'mesec',
            MM: gr.translate,
            y: 'godinu',
            yy: gr.translate,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 7 },
    }), n.defineLocale('ss', {
        months: 'Bhimbidvwane_Indlovana_Indlov\'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni'.split(
            '_'),
        monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split(
            '_'),
        weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(
            '_'),
        weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),
        weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'h:mm A',
            LTS: 'h:mm:ss A',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY h:mm A',
            LLLL: 'dddd, D MMMM YYYY h:mm A',
        },
        calendar: {
            sameDay: '[Namuhla nga] LT',
            nextDay: '[Kusasa nga] LT',
            nextWeek: 'dddd [nga] LT',
            lastDay: '[Itolo nga] LT',
            lastWeek: 'dddd [leliphelile] [nga] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'nga %s',
            past: 'wenteka nga %s',
            s: 'emizuzwana lomcane',
            ss: '%d mzuzwana',
            m: 'umzuzu',
            mm: '%d emizuzu',
            h: 'lihora',
            hh: '%d emahora',
            d: 'lilanga',
            dd: '%d emalanga',
            M: 'inyanga',
            MM: '%d tinyanga',
            y: 'umnyaka',
            yy: '%d iminyaka',
        },
        meridiemParse: /ekuseni|emini|entsambama|ebusuku/,
        meridiem: function (e, t, n) {
            return e < 11 ? 'ekuseni' : e < 15
                ? 'emini'
                : e < 19 ? 'entsambama' : 'ebusuku';
        },
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'ekuseni' === t ? e : 'emini' === t
                ? 11 <= e ? e : e + 12
                : 'entsambama' === t || 'ebusuku' === t
                    ? 0 === e ? 0 : e + 12
                    : void 0;
        },
        dayOfMonthOrdinalParse: /\d{1,2}/,
        ordinal: '%d',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('sv', {
        months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(
            '_'),
        monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split(
            '_'),
        weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split(
            '_'),
        weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
        weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'YYYY-MM-DD',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY [kl.] HH:mm',
            LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',
            lll: 'D MMM YYYY HH:mm',
            llll: 'ddd D MMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Idag] LT',
            nextDay: '[Imorgon] LT',
            lastDay: '[Igår] LT',
            nextWeek: '[På] dddd LT',
            lastWeek: '[I] dddd[s] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'om %s',
            past: 'för %s sedan',
            s: 'några sekunder',
            ss: '%d sekunder',
            m: 'en minut',
            mm: '%d minuter',
            h: 'en timme',
            hh: '%d timmar',
            d: 'en dag',
            dd: '%d dagar',
            M: 'en månad',
            MM: '%d månader',
            y: 'ett år',
            yy: '%d år',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/,
        ordinal: function (e) {
            var t = e % 10;
            return e +
                (1 == ~~(e % 100 / 10) || 1 != t && 2 != t ? ':e' : ':a');
        },
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('sw', {
        months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(
            '_'),
        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split(
            '_'),
        weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(
            '_'),
        weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),
        weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'hh:mm A',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[leo saa] LT',
            nextDay: '[kesho saa] LT',
            nextWeek: '[wiki ijayo] dddd [saat] LT',
            lastDay: '[jana] LT',
            lastWeek: '[wiki iliyopita] dddd [saat] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s baadaye',
            past: 'tokea %s',
            s: 'hivi punde',
            ss: 'sekunde %d',
            m: 'dakika moja',
            mm: 'dakika %d',
            h: 'saa limoja',
            hh: 'masaa %d',
            d: 'siku moja',
            dd: 'siku %d',
            M: 'mwezi mmoja',
            MM: 'miezi %d',
            y: 'mwaka mmoja',
            yy: 'miaka %d',
        },
        week: { dow: 1, doy: 7 },
    });
    var vr = {
        1: '௧',
        2: '௨',
        3: '௩',
        4: '௪',
        5: '௫',
        6: '௬',
        7: '௭',
        8: '௮',
        9: '௯',
        0: '௦',
    }, yr = {
        '௧': '1',
        '௨': '2',
        '௩': '3',
        '௪': '4',
        '௫': '5',
        '௬': '6',
        '௭': '7',
        '௮': '8',
        '௯': '9',
        '௦': '0',
    };
    n.defineLocale('ta', {
        months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(
            '_'),
        monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(
            '_'),
        weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(
            '_'),
        weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(
            '_'),
        weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, HH:mm',
            LLLL: 'dddd, D MMMM YYYY, HH:mm',
        },
        calendar: {
            sameDay: '[இன்று] LT',
            nextDay: '[நாளை] LT',
            nextWeek: 'dddd, LT',
            lastDay: '[நேற்று] LT',
            lastWeek: '[கடந்த வாரம்] dddd, LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s இல்',
            past: '%s முன்',
            s: 'ஒரு சில விநாடிகள்',
            ss: '%d விநாடிகள்',
            m: 'ஒரு நிமிடம்',
            mm: '%d நிமிடங்கள்',
            h: 'ஒரு மணி நேரம்',
            hh: '%d மணி நேரம்',
            d: 'ஒரு நாள்',
            dd: '%d நாட்கள்',
            M: 'ஒரு மாதம்',
            MM: '%d மாதங்கள்',
            y: 'ஒரு வருடம்',
            yy: '%d ஆண்டுகள்',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\u0bb5\u0ba4\u0bc1/,
        ordinal: function (e) {return e + 'வது';},
        preparse: function (e) {
            return e.replace(
                /[\u0be7\u0be8\u0be9\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0be6]/g,
                (function (e) {return yr[e];}));
        },
        postformat: function (e) {
            return e.replace(/\d/g, (function (e) {return vr[e];}));
        },
        meridiemParse: /\u0baf\u0bbe\u0bae\u0bae\u0bcd|\u0bb5\u0bc8\u0b95\u0bb1\u0bc8|\u0b95\u0bbe\u0bb2\u0bc8|\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd|\u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1|\u0bae\u0bbe\u0bb2\u0bc8/,
        meridiem: function (e, t, n) {
            return e < 2 ? ' யாமம்' : e < 6
                ? ' வைகறை'
                : e < 10 ? ' காலை' : e < 14 ? ' நண்பகல்' : e < 18
                    ? ' எற்பாடு'
                    : e < 22 ? ' மாலை' : ' யாமம்';
        },
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'யாமம்' === t
                ? e < 2 ? e : e + 12
                : 'வைகறை' === t || 'காலை' === t || 'நண்பகல்' === t && 10 <= e
                    ? e
                    : e + 12;
        },
        week: { dow: 0, doy: 6 },
    }), n.defineLocale('te', {
        months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(
            '_'),
        monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(
            '_'),
        weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),
        weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),
        longDateFormat: {
            LT: 'A h:mm',
            LTS: 'A h:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, A h:mm',
            LLLL: 'dddd, D MMMM YYYY, A h:mm',
        },
        calendar: {
            sameDay: '[నేడు] LT',
            nextDay: '[రేపు] LT',
            nextWeek: 'dddd, LT',
            lastDay: '[నిన్న] LT',
            lastWeek: '[గత] dddd, LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s లో',
            past: '%s క్రితం',
            s: 'కొన్ని క్షణాలు',
            ss: '%d సెకన్లు',
            m: 'ఒక నిమిషం',
            mm: '%d నిమిషాలు',
            h: 'ఒక గంట',
            hh: '%d గంటలు',
            d: 'ఒక రోజు',
            dd: '%d రోజులు',
            M: 'ఒక నెల',
            MM: '%d నెలలు',
            y: 'ఒక సంవత్సరం',
            yy: '%d సంవత్సరాలు',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\u0c35/,
        ordinal: '%dవ',
        meridiemParse: /\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f|\u0c09\u0c26\u0c2f\u0c02|\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02|\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'రాత్రి' === t
                ? e < 4 ? e : e + 12
                : 'ఉదయం' === t ? e : 'మధ్యాహ్నం' === t
                    ? 10 <= e ? e : e + 12
                    : 'సాయంత్రం' === t ? e + 12 : void 0;
        },
        meridiem: function (e, t, n) {
            return e < 4 ? 'రాత్రి' : e < 10
                ? 'ఉదయం'
                : e < 17 ? 'మధ్యాహ్నం' : e < 20 ? 'సాయంత్రం' : 'రాత్రి';
        },
        week: { dow: 0, doy: 6 },
    }), n.defineLocale('tet', {
        months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(
            '_'),
        monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split(
            '_'),
        weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),
        weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),
        weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Ohin iha] LT',
            nextDay: '[Aban iha] LT',
            nextWeek: 'dddd [iha] LT',
            lastDay: '[Horiseik iha] LT',
            lastWeek: 'dddd [semana kotuk] [iha] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'iha %s',
            past: '%s liuba',
            s: 'segundu balun',
            ss: 'segundu %d',
            m: 'minutu ida',
            mm: 'minutu %d',
            h: 'oras ida',
            hh: 'oras %d',
            d: 'loron ida',
            dd: 'loron %d',
            M: 'fulan ida',
            MM: 'fulan %d',
            y: 'tinan ida',
            yy: 'tinan %d',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
        ordinal: function (e) {
            var t = e % 10;
            return e + (1 == ~~(e % 100 / 10) ? 'th' : 1 == t ? 'st' : 2 == t
                ? 'nd'
                : 3 == t ? 'rd' : 'th');
        },
        week: { dow: 1, doy: 4 },
    });
    var br = {
        0: '-ум',
        1: '-ум',
        2: '-юм',
        3: '-юм',
        4: '-ум',
        5: '-ум',
        6: '-ум',
        7: '-ум',
        8: '-ум',
        9: '-ум',
        10: '-ум',
        12: '-ум',
        13: '-ум',
        20: '-ум',
        30: '-юм',
        40: '-ум',
        50: '-ум',
        60: '-ум',
        70: '-ум',
        80: '-ум',
        90: '-ум',
        100: '-ум',
    };
    n.defineLocale('tg', {
        months: {
            format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(
                '_'),
            standalone: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(
                '_'),
        },
        monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split(
            '_'),
        weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(
            '_'),
        weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),
        weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Имрӯз соати] LT',
            nextDay: '[Фардо соати] LT',
            lastDay: '[Дирӯз соати] LT',
            nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',
            lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'баъди %s',
            past: '%s пеш',
            s: 'якчанд сония',
            m: 'як дақиқа',
            mm: '%d дақиқа',
            h: 'як соат',
            hh: '%d соат',
            d: 'як рӯз',
            dd: '%d рӯз',
            M: 'як моҳ',
            MM: '%d моҳ',
            y: 'як сол',
            yy: '%d сол',
        },
        meridiemParse: /\u0448\u0430\u0431|\u0441\u0443\u0431\u04b3|\u0440\u04ef\u0437|\u0431\u0435\u0433\u043e\u04b3/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'шаб' === t
                ? e < 4 ? e : e + 12
                : 'субҳ' === t ? e : 'рӯз' === t
                    ? 11 <= e ? e : e + 12
                    : 'бегоҳ' === t ? e + 12 : void 0;
        },
        meridiem: function (e, t, n) {
            return e < 4 ? 'шаб' : e < 11
                ? 'субҳ'
                : e < 16 ? 'рӯз' : e < 19 ? 'бегоҳ' : 'шаб';
        },
        dayOfMonthOrdinalParse: /\d{1,2}-(\u0443\u043c|\u044e\u043c)/,
        ordinal: function (e) {
            return e + (br[e] || br[e % 10] || br[100 <= e ? 100 : null]);
        },
        week: { dow: 1, doy: 7 },
    }), n.defineLocale('th', {
        months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(
            '_'),
        monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),
        weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'),
        weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY เวลา H:mm',
            LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',
        },
        meridiemParse: /\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07|\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07/,
        isPM: function (e) {return 'หลังเที่ยง' === e;},
        meridiem: function (e, t, n) {
            return e < 12
                ? 'ก่อนเที่ยง'
                : 'หลังเที่ยง';
        },
        calendar: {
            sameDay: '[วันนี้ เวลา] LT',
            nextDay: '[พรุ่งนี้ เวลา] LT',
            nextWeek: 'dddd[หน้า เวลา] LT',
            lastDay: '[เมื่อวานนี้ เวลา] LT',
            lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'อีก %s',
            past: '%sที่แล้ว',
            s: 'ไม่กี่วินาที',
            ss: '%d วินาที',
            m: '1 นาที',
            mm: '%d นาที',
            h: '1 ชั่วโมง',
            hh: '%d ชั่วโมง',
            d: '1 วัน',
            dd: '%d วัน',
            w: '1 สัปดาห์',
            ww: '%d สัปดาห์',
            M: '1 เดือน',
            MM: '%d เดือน',
            y: '1 ปี',
            yy: '%d ปี',
        },
    });
    var xr = {
        1: '\'inji',
        5: '\'inji',
        8: '\'inji',
        70: '\'inji',
        80: '\'inji',
        2: '\'nji',
        7: '\'nji',
        20: '\'nji',
        50: '\'nji',
        3: '\'ünji',
        4: '\'ünji',
        100: '\'ünji',
        6: '\'njy',
        9: '\'unjy',
        10: '\'unjy',
        30: '\'unjy',
        60: '\'ynjy',
        90: '\'ynjy',
    };
    n.defineLocale('tk', {
        months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(
            '_'),
        monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split(
            '_'),
        weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(
            '_'),
        weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),
        weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[bugün sagat] LT',
            nextDay: '[ertir sagat] LT',
            nextWeek: '[indiki] dddd [sagat] LT',
            lastDay: '[düýn] LT',
            lastWeek: '[geçen] dddd [sagat] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s soň',
            past: '%s öň',
            s: 'birnäçe sekunt',
            m: 'bir minut',
            mm: '%d minut',
            h: 'bir sagat',
            hh: '%d sagat',
            d: 'bir gün',
            dd: '%d gün',
            M: 'bir aý',
            MM: '%d aý',
            y: 'bir ýyl',
            yy: '%d ýyl',
        },
        ordinal: function (e, t) {
            switch (t) {
                case'd':
                case'D':
                case'Do':
                case'DD':
                    return e;
                default:
                    if (0 === e) return e + '\'unjy';
                    var n = e % 10;
                    return e +
                        (xr[n] || xr[e % 100 - n] || xr[100 <= e ? 100 : null]);
            }
        },
        week: { dow: 1, doy: 7 },
    }), n.defineLocale('tl-ph', {
        months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(
            '_'),
        monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split(
            '_'),
        weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(
            '_'),
        weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
        weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'MM/D/YYYY',
            LL: 'MMMM D, YYYY',
            LLL: 'MMMM D, YYYY HH:mm',
            LLLL: 'dddd, MMMM DD, YYYY HH:mm',
        },
        calendar: {
            sameDay: 'LT [ngayong araw]',
            nextDay: '[Bukas ng] LT',
            nextWeek: 'LT [sa susunod na] dddd',
            lastDay: 'LT [kahapon]',
            lastWeek: 'LT [noong nakaraang] dddd',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'sa loob ng %s',
            past: '%s ang nakalipas',
            s: 'ilang segundo',
            ss: '%d segundo',
            m: 'isang minuto',
            mm: '%d minuto',
            h: 'isang oras',
            hh: '%d oras',
            d: 'isang araw',
            dd: '%d araw',
            M: 'isang buwan',
            MM: '%d buwan',
            y: 'isang taon',
            yy: '%d taon',
        },
        dayOfMonthOrdinalParse: /\d{1,2}/,
        ordinal: function (e) {return e;},
        week: { dow: 1, doy: 4 },
    });
    var _r = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');

    function wr (e, t, n, i) {
        var a = function (e) {
            var t = Math.floor(e % 1e3 / 100), n = Math.floor(e % 100 / 10),
                i = e % 10, a = '';
            return 0 < t && (a += _r[t] + 'vatlh'), 0 < n &&
            (a += ('' !== a ? ' ' : '') + _r[n] + 'maH'), 0 < i &&
            (a += ('' !== a ? ' ' : '') + _r[i]), '' === a ? 'pagh' : a;
        }(e);
        switch (n) {
            case'ss':
                return a + ' lup';
            case'mm':
                return a + ' tup';
            case'hh':
                return a + ' rep';
            case'dd':
                return a + ' jaj';
            case'MM':
                return a + ' jar';
            case'yy':
                return a + ' DIS';
        }
    }

    n.defineLocale('tlh', {
        months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(
            '_'),
        monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
            '_'),
        weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
            '_'),
        weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
            '_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[DaHjaj] LT',
            nextDay: '[wa’leS] LT',
            nextWeek: 'LLL',
            lastDay: '[wa’Hu’] LT',
            lastWeek: 'LLL',
            sameElse: 'L',
        },
        relativeTime: {
            future: function (e) {
                var t = e;
                return -1 !== e.indexOf('jaj') ? t.slice(0, -3) + 'leS' : -1 !==
                e.indexOf('jar') ? t.slice(0, -3) + 'waQ' : -1 !==
                e.indexOf('DIS') ? t.slice(0, -3) + 'nem' : t + ' pIq';
            },
            past: function (e) {
                var t = e;
                return -1 !== e.indexOf('jaj') ? t.slice(0, -3) + 'Hu’' : -1 !==
                e.indexOf('jar') ? t.slice(0, -3) + 'wen' : -1 !==
                e.indexOf('DIS') ? t.slice(0, -3) + 'ben' : t + ' ret';
            },
            s: 'puS lup',
            ss: wr,
            m: 'wa’ tup',
            mm: wr,
            h: 'wa’ rep',
            hh: wr,
            d: 'wa’ jaj',
            dd: wr,
            M: 'wa’ jar',
            MM: wr,
            y: 'wa’ DIS',
            yy: wr,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    });
    var kr = {
        1: '\'inci',
        5: '\'inci',
        8: '\'inci',
        70: '\'inci',
        80: '\'inci',
        2: '\'nci',
        7: '\'nci',
        20: '\'nci',
        50: '\'nci',
        3: '\'üncü',
        4: '\'üncü',
        100: '\'üncü',
        6: '\'ncı',
        9: '\'uncu',
        10: '\'uncu',
        30: '\'uncu',
        60: '\'ıncı',
        90: '\'ıncı',
    };

    function Mr (e, t, n, i) {
        var a = {
            s: [
                'viensas secunds',
                '\'iensas secunds'],
            ss: [e + ' secunds', e + ' secunds'],
            m: ['\'n míut', '\'iens míut'],
            mm: [e + ' míuts', e + ' míuts'],
            h: ['\'n þora', '\'iensa þora'],
            hh: [e + ' þoras', e + ' þoras'],
            d: ['\'n ziua', '\'iensa ziua'],
            dd: [e + ' ziuas', e + ' ziuas'],
            M: ['\'n mes', '\'iens mes'],
            MM: [e + ' mesen', e + ' mesen'],
            y: ['\'n ar', '\'iens ar'],
            yy: [e + ' ars', e + ' ars'],
        };
        return i || t ? a[n][0] : a[n][1];
    }

    function Lr (e, t, n) {
        var i, a;
        return 'm' === n ? t ? 'хвилина' : 'хвилину' : 'h' === n ? t
            ? 'година'
            : 'годину' : e + ' ' + (i = +e, a = {
            ss: t
                ? 'секунда_секунди_секунд'
                : 'секунду_секунди_секунд',
            mm: t ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',
            hh: t ? 'година_години_годин' : 'годину_години_годин',
            dd: 'день_дні_днів',
            MM: 'місяць_місяці_місяців',
            yy: 'рік_роки_років',
        }[n].split('_'), i % 10 == 1 && i % 100 != 11 ? a[0] : 2 <= i % 10 &&
        i % 10 <= 4 && (i % 100 < 10 || 20 <= i % 100) ? a[1] : a[2]);
    }

    function Sr (e) {
        return function () {
            return e + 'о' + (11 === this.hours() ? 'б' : '') + '] LT';
        };
    }

    n.defineLocale('tr', {
        months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(
            '_'),
        monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split(
            '_'),
        weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(
            '_'),
        weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),
        weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
        meridiem: function (e, t, n) {
            return e < 12 ? n ? 'öö' : 'ÖÖ' : n
                ? 'ös'
                : 'ÖS';
        },
        meridiemParse: /\xf6\xf6|\xd6\xd6|\xf6s|\xd6S/,
        isPM: function (e) {return 'ös' === e || 'ÖS' === e;},
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[bugün saat] LT',
            nextDay: '[yarın saat] LT',
            nextWeek: '[gelecek] dddd [saat] LT',
            lastDay: '[dün] LT',
            lastWeek: '[geçen] dddd [saat] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s sonra',
            past: '%s önce',
            s: 'birkaç saniye',
            ss: '%d saniye',
            m: 'bir dakika',
            mm: '%d dakika',
            h: 'bir saat',
            hh: '%d saat',
            d: 'bir gün',
            dd: '%d gün',
            w: 'bir hafta',
            ww: '%d hafta',
            M: 'bir ay',
            MM: '%d ay',
            y: 'bir yıl',
            yy: '%d yıl',
        },
        ordinal: function (e, t) {
            switch (t) {
                case'd':
                case'D':
                case'Do':
                case'DD':
                    return e;
                default:
                    if (0 === e) return e + '\'ıncı';
                    var n = e % 10;
                    return e +
                        (kr[n] || kr[e % 100 - n] || kr[100 <= e ? 100 : null]);
            }
        },
        week: { dow: 1, doy: 7 },
    }), n.defineLocale('tzl', {
        months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(
            '_'),
        monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split(
            '_'),
        weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split(
            '_'),
        weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),
        weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),
        longDateFormat: {
            LT: 'HH.mm',
            LTS: 'HH.mm.ss',
            L: 'DD.MM.YYYY',
            LL: 'D. MMMM [dallas] YYYY',
            LLL: 'D. MMMM [dallas] YYYY HH.mm',
            LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',
        },
        meridiemParse: /d\'o|d\'a/i,
        isPM: function (e) {return 'd\'o' === e.toLowerCase();},
        meridiem: function (e, t, n) {
            return 11 < e ? n ? 'd\'o' : 'D\'O' : n
                ? 'd\'a'
                : 'D\'A';
        },
        calendar: {
            sameDay: '[oxhi à] LT',
            nextDay: '[demà à] LT',
            nextWeek: 'dddd [à] LT',
            lastDay: '[ieiri à] LT',
            lastWeek: '[sür el] dddd [lasteu à] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'osprei %s',
            past: 'ja%s',
            s: Mr,
            ss: Mr,
            m: Mr,
            mm: Mr,
            h: Mr,
            hh: Mr,
            d: Mr,
            dd: Mr,
            M: Mr,
            MM: Mr,
            y: Mr,
            yy: Mr,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('tzm-latn', {
        months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(
            '_'),
        monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(
            '_'),
        weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
        weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split(
            '_'),
        weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split(
            '_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[asdkh g] LT',
            nextDay: '[aska g] LT',
            nextWeek: 'dddd [g] LT',
            lastDay: '[assant g] LT',
            lastWeek: 'dddd [g] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'dadkh s yan %s',
            past: 'yan %s',
            s: 'imik',
            ss: '%d imik',
            m: 'minuḍ',
            mm: '%d minuḍ',
            h: 'saɛa',
            hh: '%d tassaɛin',
            d: 'ass',
            dd: '%d ossan',
            M: 'ayowr',
            MM: '%d iyyirn',
            y: 'asgas',
            yy: '%d isgasn',
        },
        week: { dow: 6, doy: 12 },
    }), n.defineLocale('tzm', {
        months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(
            '_'),
        monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(
            '_'),
        weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
        weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split(
            '_'),
        weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split(
            '_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
            nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
            nextWeek: 'dddd [ⴴ] LT',
            lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
            lastWeek: 'dddd [ⴴ] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
            past: 'ⵢⴰⵏ %s',
            s: 'ⵉⵎⵉⴽ',
            ss: '%d ⵉⵎⵉⴽ',
            m: 'ⵎⵉⵏⵓⴺ',
            mm: '%d ⵎⵉⵏⵓⴺ',
            h: 'ⵙⴰⵄⴰ',
            hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
            d: 'ⴰⵙⵙ',
            dd: '%d oⵙⵙⴰⵏ',
            M: 'ⴰⵢoⵓⵔ',
            MM: '%d ⵉⵢⵢⵉⵔⵏ',
            y: 'ⴰⵙⴳⴰⵙ',
            yy: '%d ⵉⵙⴳⴰⵙⵏ',
        },
        week: { dow: 6, doy: 12 },
    }), n.defineLocale('ug-cn', {
        months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
            '_'),
        monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
            '_'),
        weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(
            '_'),
        weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
        weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'YYYY-MM-DD',
            LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',
            LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
            LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
        },
        meridiemParse: /\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5|\u0633\u06d5\u06be\u06d5\u0631|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646|\u0686\u06c8\u0634|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646|\u0643\u06d5\u0686/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), 'يېرىم كېچە' === t || 'سەھەر' === t ||
            'چۈشتىن بۇرۇن' === t || 'چۈشتىن كېيىن' !== t && 'كەچ' !== t && 11 <=
            e ? e : e + 12;
        },
        meridiem: function (e, t, n) {
            var i = 100 * e + t;
            return i < 600 ? 'يېرىم كېچە' : i < 900 ? 'سەھەر' : i < 1130
                ? 'چۈشتىن بۇرۇن'
                : i < 1230 ? 'چۈش' : i < 1800 ? 'چۈشتىن كېيىن' : 'كەچ';
        },
        calendar: {
            sameDay: '[بۈگۈن سائەت] LT',
            nextDay: '[ئەتە سائەت] LT',
            nextWeek: '[كېلەركى] dddd [سائەت] LT',
            lastDay: '[تۆنۈگۈن] LT',
            lastWeek: '[ئالدىنقى] dddd [سائەت] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s كېيىن',
            past: '%s بۇرۇن',
            s: 'نەچچە سېكونت',
            ss: '%d سېكونت',
            m: 'بىر مىنۇت',
            mm: '%d مىنۇت',
            h: 'بىر سائەت',
            hh: '%d سائەت',
            d: 'بىر كۈن',
            dd: '%d كۈن',
            M: 'بىر ئاي',
            MM: '%d ئاي',
            y: 'بىر يىل',
            yy: '%d يىل',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(-\u0643\u06c8\u0646\u0649|-\u0626\u0627\u064a|-\u06be\u06d5\u067e\u062a\u06d5)/,
        ordinal: function (e, t) {
            switch (t) {
                case'd':
                case'D':
                case'DDD':
                    return e + '-كۈنى';
                case'w':
                case'W':
                    return e + '-ھەپتە';
                default:
                    return e;
            }
        },
        preparse: function (e) {return e.replace(/\u060c/g, ',');},
        postformat: function (e) {return e.replace(/,/g, '،');},
        week: { dow: 1, doy: 7 },
    }), n.defineLocale('uk', {
        months: {
            format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(
                '_'),
            standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(
                '_'),
        },
        monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(
            '_'),
        weekdays: function (e, t) {
            var n = {
                nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(
                    '_'),
                accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(
                    '_'),
                genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(
                    '_'),
            };
            return !0 === e ? n.nominative.slice(1, 7).
                concat(n.nominative.slice(0, 1)) : e
                ? n[/(\[[\u0412\u0432\u0423\u0443]\]) ?dddd/.test(t)
                    ? 'accusative'
                    : /\[?(?:\u043c\u0438\u043d\u0443\u043b\u043e\u0457|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0457)? ?\] ?dddd/.test(
                        t) ? 'genitive' : 'nominative'][e.day()]
                : n.nominative;
        },
        weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
        weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY р.',
            LLL: 'D MMMM YYYY р., HH:mm',
            LLLL: 'dddd, D MMMM YYYY р., HH:mm',
        },
        calendar: {
            sameDay: Sr('[Сьогодні '),
            nextDay: Sr('[Завтра '),
            lastDay: Sr('[Вчора '),
            nextWeek: Sr('[У] dddd ['),
            lastWeek: function () {
                switch (this.day()) {
                    case 0:
                    case 3:
                    case 5:
                    case 6:
                        return Sr('[Минулої] dddd [').call(this);
                    case 1:
                    case 2:
                    case 4:
                        return Sr('[Минулого] dddd [').call(this);
                }
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'за %s',
            past: '%s тому',
            s: 'декілька секунд',
            ss: Lr,
            m: Lr,
            mm: Lr,
            h: 'годину',
            hh: Lr,
            d: 'день',
            dd: Lr,
            M: 'місяць',
            MM: Lr,
            y: 'рік',
            yy: Lr,
        },
        meridiemParse: /\u043d\u043e\u0447\u0456|\u0440\u0430\u043d\u043a\u0443|\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430/,
        isPM: function (e) {
            return /^(\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430)$/.test(
                e);
        },
        meridiem: function (e, t, n) {
            return e < 4 ? 'ночі' : e < 12
                ? 'ранку'
                : e < 17 ? 'дня' : 'вечора';
        },
        dayOfMonthOrdinalParse: /\d{1,2}-(\u0439|\u0433\u043e)/,
        ordinal: function (e, t) {
            switch (t) {
                case'M':
                case'd':
                case'DDD':
                case'w':
                case'W':
                    return e + '-й';
                case'D':
                    return e + '-го';
                default:
                    return e;
            }
        },
        week: { dow: 1, doy: 7 },
    });
    var Tr = [
            'جنوری',
            'فروری',
            'مارچ',
            'اپریل',
            'مئی',
            'جون',
            'جولائی',
            'اگست',
            'ستمبر',
            'اکتوبر',
            'نومبر',
            'دسمبر'],
        Ar = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];
    return n.defineLocale('ur', {
        months: Tr,
        monthsShort: Tr,
        weekdays: Ar,
        weekdaysShort: Ar,
        weekdaysMin: Ar,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd، D MMMM YYYY HH:mm',
        },
        meridiemParse: /\u0635\u0628\u062d|\u0634\u0627\u0645/,
        isPM: function (e) {return 'شام' === e;},
        meridiem: function (e, t, n) {return e < 12 ? 'صبح' : 'شام';},
        calendar: {
            sameDay: '[آج بوقت] LT',
            nextDay: '[کل بوقت] LT',
            nextWeek: 'dddd [بوقت] LT',
            lastDay: '[گذشتہ روز بوقت] LT',
            lastWeek: '[گذشتہ] dddd [بوقت] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s بعد',
            past: '%s قبل',
            s: 'چند سیکنڈ',
            ss: '%d سیکنڈ',
            m: 'ایک منٹ',
            mm: '%d منٹ',
            h: 'ایک گھنٹہ',
            hh: '%d گھنٹے',
            d: 'ایک دن',
            dd: '%d دن',
            M: 'ایک ماہ',
            MM: '%d ماہ',
            y: 'ایک سال',
            yy: '%d سال',
        },
        preparse: function (e) {return e.replace(/\u060c/g, ',');},
        postformat: function (e) {return e.replace(/,/g, '،');},
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('uz-latn', {
        months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(
            '_'),
        monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split(
            '_'),
        weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(
            '_'),
        weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),
        weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'D MMMM YYYY, dddd HH:mm',
        },
        calendar: {
            sameDay: '[Bugun soat] LT [da]',
            nextDay: '[Ertaga] LT [da]',
            nextWeek: 'dddd [kuni soat] LT [da]',
            lastDay: '[Kecha soat] LT [da]',
            lastWeek: '[O\'tgan] dddd [kuni soat] LT [da]',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'Yaqin %s ichida',
            past: 'Bir necha %s oldin',
            s: 'soniya',
            ss: '%d soniya',
            m: 'bir daqiqa',
            mm: '%d daqiqa',
            h: 'bir soat',
            hh: '%d soat',
            d: 'bir kun',
            dd: '%d kun',
            M: 'bir oy',
            MM: '%d oy',
            y: 'bir yil',
            yy: '%d yil',
        },
        week: { dow: 1, doy: 7 },
    }), n.defineLocale('uz', {
        months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(
            '_'),
        monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split(
            '_'),
        weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split(
            '_'),
        weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
        weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'D MMMM YYYY, dddd HH:mm',
        },
        calendar: {
            sameDay: '[Бугун соат] LT [да]',
            nextDay: '[Эртага] LT [да]',
            nextWeek: 'dddd [куни соат] LT [да]',
            lastDay: '[Кеча соат] LT [да]',
            lastWeek: '[Утган] dddd [куни соат] LT [да]',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'Якин %s ичида',
            past: 'Бир неча %s олдин',
            s: 'фурсат',
            ss: '%d фурсат',
            m: 'бир дакика',
            mm: '%d дакика',
            h: 'бир соат',
            hh: '%d соат',
            d: 'бир кун',
            dd: '%d кун',
            M: 'бир ой',
            MM: '%d ой',
            y: 'бир йил',
            yy: '%d йил',
        },
        week: { dow: 1, doy: 7 },
    }), n.defineLocale('vi', {
        months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(
            '_'),
        monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(
            '_'),
        weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
        weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
        weekdaysParseExact: !0,
        meridiemParse: /sa|ch/i,
        isPM: function (e) {return /^ch$/i.test(e);},
        meridiem: function (e, t, n) {
            return e < 12 ? n ? 'sa' : 'SA' : n
                ? 'ch'
                : 'CH';
        },
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM [năm] YYYY',
            LLL: 'D MMMM [năm] YYYY HH:mm',
            LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',
            l: 'DD/M/YYYY',
            ll: 'D MMM YYYY',
            lll: 'D MMM YYYY HH:mm',
            llll: 'ddd, D MMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Hôm nay lúc] LT',
            nextDay: '[Ngày mai lúc] LT',
            nextWeek: 'dddd [tuần tới lúc] LT',
            lastDay: '[Hôm qua lúc] LT',
            lastWeek: 'dddd [tuần trước lúc] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s tới',
            past: '%s trước',
            s: 'vài giây',
            ss: '%d giây',
            m: 'một phút',
            mm: '%d phút',
            h: 'một giờ',
            hh: '%d giờ',
            d: 'một ngày',
            dd: '%d ngày',
            w: 'một tuần',
            ww: '%d tuần',
            M: 'một tháng',
            MM: '%d tháng',
            y: 'một năm',
            yy: '%d năm',
        },
        dayOfMonthOrdinalParse: /\d{1,2}/,
        ordinal: function (e) {return e;},
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('x-pseudo', {
        months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(
            '_'),
        monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(
            '_'),
        monthsParseExact: !0,
        weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(
            '_'),
        weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),
        weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[T~ódá~ý át] LT',
            nextDay: '[T~ómó~rró~w át] LT',
            nextWeek: 'dddd [át] LT',
            lastDay: '[Ý~ést~érdá~ý át] LT',
            lastWeek: '[L~ást] dddd [át] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'í~ñ %s',
            past: '%s á~gó',
            s: 'á ~féw ~sécó~ñds',
            ss: '%d s~écóñ~ds',
            m: 'á ~míñ~úté',
            mm: '%d m~íñú~tés',
            h: 'á~ñ hó~úr',
            hh: '%d h~óúrs',
            d: 'á ~dáý',
            dd: '%d d~áýs',
            M: 'á ~móñ~th',
            MM: '%d m~óñt~hs',
            y: 'á ~ýéár',
            yy: '%d ý~éárs',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
        ordinal: function (e) {
            var t = e % 10;
            return e + (1 == ~~(e % 100 / 10) ? 'th' : 1 == t ? 'st' : 2 == t
                ? 'nd'
                : 3 == t ? 'rd' : 'th');
        },
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('yo', {
        months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(
            '_'),
        monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split(
            '_'),
        weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split(
            '_'),
        weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),
        weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),
        longDateFormat: {
            LT: 'h:mm A',
            LTS: 'h:mm:ss A',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY h:mm A',
            LLLL: 'dddd, D MMMM YYYY h:mm A',
        },
        calendar: {
            sameDay: '[Ònì ni] LT',
            nextDay: '[Ọ̀la ni] LT',
            nextWeek: 'dddd [Ọsẹ̀ tón\'bọ] [ni] LT',
            lastDay: '[Àna ni] LT',
            lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'ní %s',
            past: '%s kọjá',
            s: 'ìsẹjú aayá die',
            ss: 'aayá %d',
            m: 'ìsẹjú kan',
            mm: 'ìsẹjú %d',
            h: 'wákati kan',
            hh: 'wákati %d',
            d: 'ọjọ́ kan',
            dd: 'ọjọ́ %d',
            M: 'osù kan',
            MM: 'osù %d',
            y: 'ọdún kan',
            yy: 'ọdún %d',
        },
        dayOfMonthOrdinalParse: /\u1ecdj\u1ecd\u0301\s\d{1,2}/,
        ordinal: 'ọjọ́ %d',
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('zh-cn', {
        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
        weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),
        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'YYYY/MM/DD',
            LL: 'YYYY年M月D日',
            LLL: 'YYYY年M月D日Ah点mm分',
            LLLL: 'YYYY年M月D日ddddAh点mm分',
            l: 'YYYY/M/D',
            ll: 'YYYY年M月D日',
            lll: 'YYYY年M月D日 HH:mm',
            llll: 'YYYY年M月D日dddd HH:mm',
        },
        meridiemParse: /\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), '凌晨' === t || '早上' === t || '上午' ===
            t || '下午' !== t && '晚上' !== t && 11 <= e ? e : e + 12;
        },
        meridiem: function (e, t, n) {
            var i = 100 * e + t;
            return i < 600 ? '凌晨' : i < 900 ? '早上' : i < 1130 ? '上午' : i < 1230
                ? '中午'
                : i < 1800 ? '下午' : '晚上';
        },
        calendar: {
            sameDay: '[今天]LT',
            nextDay: '[明天]LT',
            nextWeek: function (e) {
                return e.week() !== this.week()
                    ? '[下]dddLT'
                    : '[本]dddLT';
            },
            lastDay: '[昨天]LT',
            lastWeek: function (e) {
                return this.week() !== e.week()
                    ? '[上]dddLT'
                    : '[本]dddLT';
            },
            sameElse: 'L',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(\u65e5|\u6708|\u5468)/,
        ordinal: function (e, t) {
            switch (t) {
                case'd':
                case'D':
                case'DDD':
                    return e + '日';
                case'M':
                    return e + '月';
                case'w':
                case'W':
                    return e + '周';
                default:
                    return e;
            }
        },
        relativeTime: {
            future: '%s后',
            past: '%s前',
            s: '几秒',
            ss: '%d 秒',
            m: '1 分钟',
            mm: '%d 分钟',
            h: '1 小时',
            hh: '%d 小时',
            d: '1 天',
            dd: '%d 天',
            w: '1 周',
            ww: '%d 周',
            M: '1 个月',
            MM: '%d 个月',
            y: '1 年',
            yy: '%d 年',
        },
        week: { dow: 1, doy: 4 },
    }), n.defineLocale('zh-hk', {
        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'YYYY/MM/DD',
            LL: 'YYYY年M月D日',
            LLL: 'YYYY年M月D日 HH:mm',
            LLLL: 'YYYY年M月D日dddd HH:mm',
            l: 'YYYY/M/D',
            ll: 'YYYY年M月D日',
            lll: 'YYYY年M月D日 HH:mm',
            llll: 'YYYY年M月D日dddd HH:mm',
        },
        meridiemParse: /\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), '凌晨' === t || '早上' === t || '上午' === t
                ? e
                : '中午' === t ? 11 <= e ? e : e + 12 : '下午' === t || '晚上' === t
                    ? e + 12
                    : void 0;
        },
        meridiem: function (e, t, n) {
            var i = 100 * e + t;
            return i < 600 ? '凌晨' : i < 900 ? '早上' : i < 1200 ? '上午' : 1200 ===
            i ? '中午' : i < 1800 ? '下午' : '晚上';
        },
        calendar: {
            sameDay: '[今天]LT',
            nextDay: '[明天]LT',
            nextWeek: '[下]ddddLT',
            lastDay: '[昨天]LT',
            lastWeek: '[上]ddddLT',
            sameElse: 'L',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(\u65e5|\u6708|\u9031)/,
        ordinal: function (e, t) {
            switch (t) {
                case'd':
                case'D':
                case'DDD':
                    return e + '日';
                case'M':
                    return e + '月';
                case'w':
                case'W':
                    return e + '週';
                default:
                    return e;
            }
        },
        relativeTime: {
            future: '%s後',
            past: '%s前',
            s: '幾秒',
            ss: '%d 秒',
            m: '1 分鐘',
            mm: '%d 分鐘',
            h: '1 小時',
            hh: '%d 小時',
            d: '1 天',
            dd: '%d 天',
            M: '1 個月',
            MM: '%d 個月',
            y: '1 年',
            yy: '%d 年',
        },
    }), n.defineLocale('zh-mo', {
        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'YYYY年M月D日',
            LLL: 'YYYY年M月D日 HH:mm',
            LLLL: 'YYYY年M月D日dddd HH:mm',
            l: 'D/M/YYYY',
            ll: 'YYYY年M月D日',
            lll: 'YYYY年M月D日 HH:mm',
            llll: 'YYYY年M月D日dddd HH:mm',
        },
        meridiemParse: /\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), '凌晨' === t || '早上' === t || '上午' === t
                ? e
                : '中午' === t ? 11 <= e ? e : e + 12 : '下午' === t || '晚上' === t
                    ? e + 12
                    : void 0;
        },
        meridiem: function (e, t, n) {
            var i = 100 * e + t;
            return i < 600 ? '凌晨' : i < 900 ? '早上' : i < 1130 ? '上午' : i < 1230
                ? '中午'
                : i < 1800 ? '下午' : '晚上';
        },
        calendar: {
            sameDay: '[今天] LT',
            nextDay: '[明天] LT',
            nextWeek: '[下]dddd LT',
            lastDay: '[昨天] LT',
            lastWeek: '[上]dddd LT',
            sameElse: 'L',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(\u65e5|\u6708|\u9031)/,
        ordinal: function (e, t) {
            switch (t) {
                case'd':
                case'D':
                case'DDD':
                    return e + '日';
                case'M':
                    return e + '月';
                case'w':
                case'W':
                    return e + '週';
                default:
                    return e;
            }
        },
        relativeTime: {
            future: '%s內',
            past: '%s前',
            s: '幾秒',
            ss: '%d 秒',
            m: '1 分鐘',
            mm: '%d 分鐘',
            h: '1 小時',
            hh: '%d 小時',
            d: '1 天',
            dd: '%d 天',
            M: '1 個月',
            MM: '%d 個月',
            y: '1 年',
            yy: '%d 年',
        },
    }), n.defineLocale('zh-tw', {
        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'YYYY/MM/DD',
            LL: 'YYYY年M月D日',
            LLL: 'YYYY年M月D日 HH:mm',
            LLLL: 'YYYY年M月D日dddd HH:mm',
            l: 'YYYY/M/D',
            ll: 'YYYY年M月D日',
            lll: 'YYYY年M月D日 HH:mm',
            llll: 'YYYY年M月D日dddd HH:mm',
        },
        meridiemParse: /\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,
        meridiemHour: function (e, t) {
            return 12 === e && (e = 0), '凌晨' === t || '早上' === t || '上午' === t
                ? e
                : '中午' === t ? 11 <= e ? e : e + 12 : '下午' === t || '晚上' === t
                    ? e + 12
                    : void 0;
        },
        meridiem: function (e, t, n) {
            var i = 100 * e + t;
            return i < 600 ? '凌晨' : i < 900 ? '早上' : i < 1130 ? '上午' : i < 1230
                ? '中午'
                : i < 1800 ? '下午' : '晚上';
        },
        calendar: {
            sameDay: '[今天] LT',
            nextDay: '[明天] LT',
            nextWeek: '[下]dddd LT',
            lastDay: '[昨天] LT',
            lastWeek: '[上]dddd LT',
            sameElse: 'L',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(\u65e5|\u6708|\u9031)/,
        ordinal: function (e, t) {
            switch (t) {
                case'd':
                case'D':
                case'DDD':
                    return e + '日';
                case'M':
                    return e + '月';
                case'w':
                case'W':
                    return e + '週';
                default:
                    return e;
            }
        },
        relativeTime: {
            future: '%s後',
            past: '%s前',
            s: '幾秒',
            ss: '%d 秒',
            m: '1 分鐘',
            mm: '%d 分鐘',
            h: '1 小時',
            hh: '%d 小時',
            d: '1 天',
            dd: '%d 天',
            M: '1 個月',
            MM: '%d 個月',
            y: '1 年',
            yy: '%d 年',
        },
    }), n.locale('en'), n;
})), function (e) {
    'function' == typeof define && define.amd
        ? define([], e)
        : 'object' == typeof exports
        ? module.exports = e()
        : window.wNumb = e();
}((function () {
    'use strict';
    var e = [
        'decimals',
        'thousand',
        'mark',
        'prefix',
        'suffix',
        'encoder',
        'decoder',
        'negativeBefore',
        'negative',
        'edit',
        'undo'];

    function t (e) {return e.split('').reverse().join('');}

    function n (e, t) {return e.substring(0, t.length) === t;}

    function i (e, t, n) {
        if ((e[t] || e[n]) && e[t] === e[n]) throw new Error(t);
    }

    function a (e) {return 'number' == typeof e && isFinite(e);}

    function r (e, n, i, r, o, s, l, c, u, d, h, f) {
        var p, m, g, v, y, b = f, x = '', _ = '';
        return s && (f = s(f)), !!a(f) &&
        (!1 !== e && 0 === parseFloat(f.toFixed(e)) && (f = 0), f < 0 &&
        (p = !0, f = Math.abs(f)), !1 !== e &&
        (y = e, v = (v = f).toString().split('e'), f = (+((v = (v = Math.round(
            +(v[0] + 'e' + (v[1] ? +v[1] + y : y)))).toString().split('e'))[0] +
            'e' + (v[1] ? +v[1] - y : -y))).toFixed(y)), -1 !==
        (f = f.toString()).indexOf('.') ? (g = (m = f.split('.'))[0], i &&
        (x = i + m[1])) : g = f, n &&
        (g = t(g).match(/.{1,3}/g), g = t(g.join(t(n)))), p && c &&
        (_ += c), r && (_ += r), p && u && (_ += u), _ += g, _ += x, o &&
        (_ += o), d && (_ = d(_, b)), _);
    }

    function o (e, t, i, r, o, s, l, c, u, d, h, f) {
        var p, m = '';
        return h && (f = h(f)), !(!f || 'string' != typeof f) &&
        (c && n(f, c) && (f = f.replace(c, ''), p = !0), r && n(f, r) &&
        (f = f.replace(r, '')), u && n(f, u) &&
        (f = f.replace(u, ''), p = !0), o &&
        function (e, t) {return e.slice(-1 * t.length) === t;}(f, o) &&
        (f = f.slice(0, -1 * o.length)), t && (f = f.split(t).join('')), i &&
        (f = f.replace(i, '.')), p && (m += '-'), '' !==
        (m = (m += f).replace(/[^0-9\.\-.]/g, '')) &&
        (m = Number(m), l && (m = l(m)), !!a(m) && m));
    }

    function s (t, n, i) {
        var a, r = [];
        for (a = 0; a < e.length; a += 1) r.push(t[e[a]]);
        return r.push(i), n.apply('', r);
    }

    return function t (n) {
        if (!(this instanceof t)) return new t(n);
        'object' == typeof n && (n = function (t) {
            var n, a, r, o = {};
            for (void 0 === t.suffix && (t.suffix = t.postfix), n = 0; n <
            e.length; n += 1) if (void 0 === (r = t[a = e[n]])) 'negative' !==
            a || o.negativeBefore ? 'mark' === a && '.' !== o.thousand
                ? o[a] = '.'
                : o[a] = !1 : o[a] = '-'; else if ('decimals' === a) {
                if (!(r >= 0 && r < 8)) throw new Error(a);
                o[a] = r;
            } else if ('encoder' === a || 'decoder' === a || 'edit' === a ||
                'undo' === a) {
                if ('function' != typeof r) throw new Error(a);
                o[a] = r;
            } else {
                if ('string' != typeof r) throw new Error(a);
                o[a] = r;
            }
            return i(o, 'mark', 'thousand'), i(o, 'prefix', 'negative'), i(o,
                'prefix', 'negativeBefore'), o;
        }(n), this.to = function (e) {
            return s(n, r, e);
        }, this.from = function (e) {return s(n, o, e);});
    };
})), function (e) {
    'function' == typeof define && define.amd
        ? define(['jquery'], e)
        : 'object' == typeof module && module.exports
        ? module.exports = function (t, n) {
            return void 0 === n &&
            (n = 'undefined' != typeof window ? require('jquery') : require(
                'jquery')(t)), e(n), n;
        }
        : e(jQuery);
}((function (e) {
    var t = function () {
        if (e && e.fn && e.fn.select2 &&
            e.fn.select2.amd) var t = e.fn.select2.amd;
        var n;
        return function () {
            /**
             * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.
             * Released under MIT license, http://github.com/requirejs/almond/LICENSE
             */
            var e, n, i;
            t && t.requirejs || (t ? n = t : t = {}, function (t) {
                var a, r, o, s, l = {}, c = {}, u = {}, d = {},
                    h = Object.prototype.hasOwnProperty, f = [].slice,
                    p = /\.js$/;

                function m (e, t) {return h.call(e, t);}

                function g (e, t) {
                    var n, i, a, r, o, s, l, c, d, h, f, m = t && t.split('/'),
                        g = u.map, v = g && g['*'] || {};
                    if (e) {
                        for (o = (e = e.split('/')).length -
                            1, u.nodeIdCompat && p.test(e[o]) &&
                        (e[o] = e[o].replace(p, '')), '.' === e[0].charAt(0) &&
                        m &&
                        (e = m.slice(0, m.length - 1).concat(e)), d = 0; d <
                             e.length; d++) if ('.' === (f = e[d])) e.splice(d,
                            1), d -= 1; else if ('..' === f) {
                            if (0 === d || 1 === d && '..' === e[2] || '..' ===
                                e[d - 1]) continue;
                            d > 0 && (e.splice(d - 1, 2), d -= 2);
                        }
                        e = e.join('/');
                    }
                    if ((m || v) && g) {
                        for (d = (n = e.split('/')).length; d > 0; d -= 1) {
                            if (i = n.slice(0, d).
                                join('/'), m) for (h = m.length; h >
                            0; h -= 1) if ((a = g[m.slice(0, h).join('/')]) &&
                                (a = a[i])) {
                                r = a, s = d;
                                break;
                            }
                            if (r) break;
                            !l && v && v[i] && (l = v[i], c = d);
                        }
                        !r && l && (r = l, s = c), r &&
                        (n.splice(0, s, r), e = n.join('/'));
                    }
                    return e;
                }

                function v (e, n) {
                    return function () {
                        var i = f.call(arguments, 0);
                        return 'string' != typeof i[0] && 1 === i.length &&
                        i.push(null), r.apply(t, i.concat([e, n]));
                    };
                }

                function y (e) {return function (t) {l[e] = t;};}

                function b (e) {
                    if (m(c, e)) {
                        var n = c[e];
                        delete c[e], d[e] = !0, a.apply(t, n);
                    }
                    if (!m(l, e) && !m(d, e)) throw new Error('No ' + e);
                    return l[e];
                }

                function x (e) {
                    var t, n = e ? e.indexOf('!') : -1;
                    return n > -1 &&
                    (t = e.substring(0, n), e = e.substring(n + 1,
                        e.length)), [t, e];
                }

                function _ (e) {return e ? x(e) : [];}

                function w (e) {
                    return function () {
                        return u && u.config && u.config[e] || {};
                    };
                }

                o = function (e, t) {
                    var n, i, a = x(e), r = a[0], o = t[1];
                    return e = a[1], r && (n = b(r = g(r, o))), r
                        ? e = n && n.normalize ? n.normalize(e,
                            (i = o, function (e) {return g(e, i);})) : g(e, o)
                        : (r = (a = x(e = g(e, o)))[0], e = a[1], r &&
                        (n = b(r))), {
                        f: r ? r + '!' + e : e,
                        n: e,
                        pr: r,
                        p: n,
                    };
                }, s = {
                    require: function (e) {return v(e);},
                    exports: function (e) {
                        var t = l[e];
                        return void 0 !== t ? t : l[e] = {};
                    },
                    module: function (e) {
                        return {
                            id: e,
                            uri: '',
                            exports: l[e],
                            config: w(e),
                        };
                    },
                }, a = function (e, n, i, a) {
                    var r, u, h, f, p, g, x, w = [], k = typeof i;
                    if (g = _(a = a || e), 'undefined' === k || 'function' ===
                    k) {
                        for (n = !n.length && i.length ? [
                            'require',
                            'exports',
                            'module'] : n, p = 0; p <
                             n.length; p += 1) if ('require' ===
                            (u = (f = o(n[p], g)).f)) w[p] = s.require(
                            e); else if ('exports' === u) w[p] = s.exports(
                            e), x = !0; else if ('module' ===
                            u) r = w[p] = s.module(e); else if (m(l, u) ||
                            m(c, u) || m(d, u)) w[p] = b(u); else {
                            if (!f.p) throw new Error(e + ' missing ' + u);
                            f.p.load(f.n, v(a, !0), y(u), {}), w[p] = l[u];
                        }
                        h = i ? i.apply(l[e], w) : void 0, e &&
                        (r && r.exports !== t && r.exports !== l[e]
                            ? l[e] = r.exports
                            : h === t && x || (l[e] = h));
                    } else e && (l[e] = i);
                }, e = n = r = function (e, n, i, l, c) {
                    if ('string' == typeof e) return s[e] ? s[e](n) : b(
                        o(e, _(n)).f);
                    if (!e.splice) {
                        if ((u = e).deps && r(u.deps, u.callback), !n) return;
                        n.splice ? (e = n, n = i, i = null) : e = t;
                    }
                    return n = n || function () {}, 'function' == typeof i &&
                    (i = l, l = c), l ? a(t, e, n, i) : setTimeout(
                        (function () {a(t, e, n, i);}), 4), r;
                }, r.config = function (e) {
                    return r(e);
                }, e._defined = l, (i = function (e, t, n) {
                    if ('string' != typeof e) throw new Error(
                        'See almond README: incorrect module build, no module name');
                    t.splice || (n = t, t = []), m(l, e) || m(c, e) ||
                    (c[e] = [e, t, n]);
                }).amd = { jQuery: !0 };
            }(), t.requirejs = e, t.require = n, t.define = i);
        }(), t.define('almond', (function () {})), t.define('jquery', [],
            (function () {
                var t = e || $;
                return null == t && console && console.error && console.error(
                    'Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page.'), t;
            })), t.define('select2/utils', ['jquery'], (function (e) {
            var t = {};

            function n (e) {
                var t = e.prototype, n = [];
                for (var i in t) {
                    'function' == typeof t[i] &&
                    ('constructor' !== i && n.push(i));
                }
                return n;
            }

            t.Extend = function (e, t) {
                var n = {}.hasOwnProperty;

                function i () {this.constructor = e;}

                for (var a in t) n.call(t, a) && (e[a] = t[a]);
                return i.prototype = t.prototype, e.prototype = new i, e.__super__ = t.prototype, e;
            }, t.Decorate = function (e, t) {
                var i = n(t), a = n(e);

                function r () {
                    var n = Array.prototype.unshift,
                        i = t.prototype.constructor.length,
                        a = e.prototype.constructor;
                    i > 0 && (n.call(arguments,
                        e.prototype.constructor), a = t.prototype.constructor), a.apply(
                        this, arguments);
                }

                t.displayName = e.displayName, r.prototype = new function () {this.constructor = r;};
                for (var o = 0; o < a.length; o++) {
                    var s = a[o];
                    r.prototype[s] = e.prototype[s];
                }
                for (var l = function (e) {
                    var n = function () {};
                    e in r.prototype && (n = r.prototype[e]);
                    var i = t.prototype[e];
                    return function () {
                        var e = Array.prototype.unshift;
                        return e.call(arguments, n), i.apply(this, arguments);
                    };
                }, c = 0; c < i.length; c++) {
                    var u = i[c];
                    r.prototype[u] = l(u);
                }
                return r;
            };
            var i = function () {this.listeners = {};};
            i.prototype.on = function (e, t) {
                this.listeners = this.listeners || {}, e in this.listeners
                    ? this.listeners[e].push(t)
                    : this.listeners[e] = [t];
            }, i.prototype.trigger = function (e) {
                var t = Array.prototype.slice, n = t.call(arguments, 1);
                this.listeners = this.listeners || {}, null == n &&
                (n = []), 0 === n.length && n.push({}), n[0]._type = e, e in
                this.listeners &&
                this.invoke(this.listeners[e], t.call(arguments, 1)), '*' in
                this.listeners && this.invoke(this.listeners['*'], arguments);
            }, i.prototype.invoke = function (
                e, t) {
                for (var n = 0, i = e.length; n < i; n++) e[n].apply(this, t);
            }, t.Observable = i, t.generateChars = function (e) {
                for (var t = '', n = 0; n < e; n++) {
                    t += Math.floor(36 * Math.random()).toString(36);
                }
                return t;
            }, t.bind = function (e, t) {
                return function () {
                    e.apply(t, arguments);
                };
            }, t._convertData = function (e) {
                for (var t in e) {
                    var n = t.split('-'), i = e;
                    if (1 !== n.length) {
                        for (var a = 0; a < n.length; a++) {
                            var r = n[a];
                            (r = r.substring(0, 1).toLowerCase() +
                                r.substring(1)) in i || (i[r] = {}), a ==
                            n.length - 1 && (i[r] = e[t]), i = i[r];
                        }
                        delete e[t];
                    }
                }
                return e;
            }, t.hasScroll = function (t, n) {
                var i = e(n), a = n.style.overflowX, r = n.style.overflowY;
                return (a !== r || 'hidden' !== r && 'visible' !== r) &&
                    ('scroll' === a || 'scroll' === r ||
                        (i.innerHeight() < n.scrollHeight || i.innerWidth() <
                            n.scrollWidth));
            }, t.escapeMarkup = function (e) {
                var t = {
                    '\\': '&#92;',
                    '&': '&amp;',
                    '<': '&lt;',
                    '>': '&gt;',
                    '"': '&quot;',
                    '\'': '&#39;',
                    '/': '&#47;',
                };
                return 'string' != typeof e ? e : String(e).
                    replace(/[&<>"'\/\\]/g, (function (e) {return t[e];}));
            }, t.__cache = {};
            var a = 0;
            return t.GetUniqueElementId = function (e) {
                var n = e.getAttribute('data-select2-id');
                return null != n ||
                (n = e.id ? 'select2-data-' + e.id : 'select2-data-' +
                    (++a).toString() + '-' + t.generateChars(4), e.setAttribute(
                    'data-select2-id', n)), n;
            }, t.StoreData = function (e, n, i) {
                var a = t.GetUniqueElementId(e);
                t.__cache[a] || (t.__cache[a] = {}), t.__cache[a][n] = i;
            }, t.GetData = function (n, i) {
                var a = t.GetUniqueElementId(n);
                return i ? t.__cache[a] && null != t.__cache[a][i]
                    ? t.__cache[a][i]
                    : e(n).data(i) : t.__cache[a];
            }, t.RemoveData = function (e) {
                var n = t.GetUniqueElementId(e);
                null != t.__cache[n] && delete t.__cache[n], e.removeAttribute(
                    'data-select2-id');
            }, t.copyNonInternalCssClasses = function (
                e, t) {
                var n = e.getAttribute('class').trim().split(/\s+/);
                n = n.filter(
                    (function (e) {return 0 === e.indexOf('select2-');}));
                var i = t.getAttribute('class').trim().split(/\s+/);
                i = i.filter(
                    (function (e) {return 0 !== e.indexOf('select2-');}));
                var a = n.concat(i);
                e.setAttribute('class', a.join(' '));
            }, t;
        })), t.define('select2/results', ['jquery', './utils'],
            (function (e, t) {
                function n (
                    e, t, i) {
                    this.$element = e, this.data = i, this.options = t, n.__super__.constructor.call(
                        this);
                }

                return t.Extend(n,
                    t.Observable), n.prototype.render = function () {
                    var t = e(
                        '<ul class="select2-results__options" role="listbox"></ul>');
                    return this.options.get('multiple') &&
                    t.attr('aria-multiselectable',
                        'true'), this.$results = t, t;
                }, n.prototype.clear = function () {this.$results.empty();}, n.prototype.displayMessage = function (t) {
                    var n = this.options.get('escapeMarkup');
                    this.clear(), this.hideLoading();
                    var i = e(
                        '<li role="alert" aria-live="assertive" class="select2-results__option"></li>'),
                        a = this.options.get('translations').get(t.message);
                    i.append(
                        n(a(t.args))), i[0].className += ' select2-results__message', this.$results.append(
                        i);
                }, n.prototype.hideMessages = function () {
                    this.$results.find('.select2-results__message').remove();
                }, n.prototype.append = function (e) {
                    this.hideLoading();
                    var t = [];
                    if (null != e.results && 0 !== e.results.length) {
                        e.results = this.sort(e.results);
                        for (var n = 0; n < e.results.length; n++) {
                            var i = e.results[n], a = this.option(i);
                            t.push(a);
                        }
                        this.$results.append(t);
                    } else 0 === this.$results.children().length &&
                    this.trigger('results:message', { message: 'noResults' });
                }, n.prototype.position = function (e, t) {
                    t.find('.select2-results').append(e);
                }, n.prototype.sort = function (e) {
                    return this.options.get('sorter')(e);
                }, n.prototype.highlightFirstItem = function () {
                    var e = this.$results.find(
                        '.select2-results__option--selectable'),
                        t = e.filter('.select2-results__option--selected');
                    t.length > 0 ? t.first().trigger('mouseenter') : e.first().
                        trigger('mouseenter'), this.ensureHighlightVisible();
                }, n.prototype.setClasses = function () {
                    var n = this;
                    this.data.current((function (i) {
                        var a = i.map((function (e) {return e.id.toString();}));
                        n.$results.find('.select2-results__option--selectable').
                            each((function () {
                                var n = e(this), i = t.GetData(this, 'data'),
                                    r = '' + i.id;
                                null != i.element && i.element.selected ||
                                null == i.element && a.indexOf(r) > -1
                                    ? (this.classList.add(
                                    'select2-results__option--selected'), n.attr(
                                    'aria-selected', 'true'))
                                    : (this.classList.remove(
                                    'select2-results__option--selected'), n.attr(
                                    'aria-selected', 'false'));
                            }));
                    }));
                }, n.prototype.showLoading = function (e) {
                    this.hideLoading();
                    var t = {
                        disabled: !0,
                        loading: !0,
                        text: this.options.get('translations').
                            get('searching')(e),
                    }, n = this.option(t);
                    n.className += ' loading-results', this.$results.prepend(n);
                }, n.prototype.hideLoading = function () {
                    this.$results.find('.loading-results').remove();
                }, n.prototype.option = function (n) {
                    var i = document.createElement('li');
                    i.classList.add('select2-results__option'), i.classList.add(
                        'select2-results__option--selectable');
                    var a = { role: 'option' },
                        r = window.Element.prototype.matches ||
                            window.Element.prototype.msMatchesSelector ||
                            window.Element.prototype.webkitMatchesSelector;
                    for (var o in (null != n.element &&
                        r.call(n.element, ':disabled') || null == n.element &&
                        n.disabled) &&
                    (a['aria-disabled'] = 'true', i.classList.remove(
                        'select2-results__option--selectable'), i.classList.add(
                        'select2-results__option--disabled')), null == n.id &&
                    i.classList.remove(
                        'select2-results__option--selectable'), null !=
                    n._resultId && (i.id = n._resultId), n.title &&
                    (i.title = n.title), n.children &&
                    (a.role = 'group', a['aria-label'] = n.text, i.classList.remove(
                        'select2-results__option--selectable'), i.classList.add(
                        'select2-results__option--group')), a) {
                        var s = a[o];
                        i.setAttribute(o, s);
                    }
                    if (n.children) {
                        var l = e(i), c = document.createElement('strong');
                        c.className = 'select2-results__group', this.template(n,
                            c);
                        for (var u = [], d = 0; d < n.children.length; d++) {
                            var h = n.children[d], f = this.option(h);
                            u.push(f);
                        }
                        var p = e('<ul></ul>', {
                            class: 'select2-results__options select2-results__options--nested',
                            role: 'none',
                        });
                        p.append(u), l.append(c), l.append(p);
                    } else this.template(n, i);
                    return t.StoreData(i, 'data', n), i;
                }, n.prototype.bind = function (n, i) {
                    var a = this, r = n.id + '-results';
                    this.$results.attr('id', r), n.on('results:all',
                        (function (e) {
                            a.clear(), a.append(e.data), n.isOpen() &&
                            (a.setClasses(), a.highlightFirstItem());
                        })), n.on('results:append', (function (e) {
                        a.append(e.data), n.isOpen() && a.setClasses();
                    })), n.on('query', (function (e) {
                        a.hideMessages(), a.showLoading(e);
                    })), n.on('select', (function () {
                        n.isOpen() &&
                        (a.setClasses(), a.options.get('scrollAfterSelect') &&
                        a.highlightFirstItem());
                    })), n.on('unselect', (function () {
                        n.isOpen() &&
                        (a.setClasses(), a.options.get('scrollAfterSelect') &&
                        a.highlightFirstItem());
                    })), n.on('open', (function () {
                        a.$results.attr('aria-expanded',
                            'true'), a.$results.attr('aria-hidden',
                            'false'), a.setClasses(), a.ensureHighlightVisible();
                    })), n.on('close', (function () {
                        a.$results.attr('aria-expanded',
                            'false'), a.$results.attr('aria-hidden',
                            'true'), a.$results.removeAttr(
                            'aria-activedescendant');
                    })), n.on('results:toggle', (function () {
                        var e = a.getHighlightedResults();
                        0 !== e.length && e.trigger('mouseup');
                    })), n.on('results:select', (function () {
                        var e = a.getHighlightedResults();
                        if (0 !== e.length) {
                            var n = t.GetData(e[0], 'data');
                            e.hasClass('select2-results__option--selected')
                                ? a.trigger('close', {})
                                : a.trigger('select', { data: n });
                        }
                    })), n.on('results:previous', (function () {
                        var e = a.getHighlightedResults(), t = a.$results.find(
                            '.select2-results__option--selectable'),
                            n = t.index(e);
                        if (!(n <= 0)) {
                            var i = n - 1;
                            0 === e.length && (i = 0);
                            var r = t.eq(i);
                            r.trigger('mouseenter');
                            var o = a.$results.offset().top, s = r.offset().top,
                                l = a.$results.scrollTop() + (s - o);
                            0 === i ? a.$results.scrollTop(0) : s - o < 0 &&
                                a.$results.scrollTop(l);
                        }
                    })), n.on('results:next', (function () {
                        var e = a.getHighlightedResults(), t = a.$results.find(
                            '.select2-results__option--selectable'),
                            n = t.index(e) + 1;
                        if (!(n >= t.length)) {
                            var i = t.eq(n);
                            i.trigger('mouseenter');
                            var r = a.$results.offset().top +
                                a.$results.outerHeight(!1),
                                o = i.offset().top + i.outerHeight(!1),
                                s = a.$results.scrollTop() + o - r;
                            0 === n ? a.$results.scrollTop(0) : o > r &&
                                a.$results.scrollTop(s);
                        }
                    })), n.on('results:focus', (function (e) {
                        e.element[0].classList.add(
                            'select2-results__option--highlighted'), e.element[0].setAttribute(
                            'aria-selected', 'true');
                    })), n.on('results:message', (function (e) {
                        a.displayMessage(e);
                    })), e.fn.mousewheel && this.$results.on('mousewheel',
                        (function (e) {
                            var t = a.$results.scrollTop(),
                                n = a.$results.get(0).scrollHeight - t +
                                    e.deltaY,
                                i = e.deltaY > 0 && t - e.deltaY <= 0,
                                r = e.deltaY < 0 && n <= a.$results.height();
                            i
                                ? (a.$results.scrollTop(
                                0), e.preventDefault(), e.stopPropagation())
                                : r && (a.$results.scrollTop(
                                a.$results.get(0).scrollHeight -
                                a.$results.height()), e.preventDefault(), e.stopPropagation());
                        })), this.$results.on('mouseup',
                        '.select2-results__option--selectable', (function (n) {
                            var i = e(this), r = t.GetData(this, 'data');
                            i.hasClass('select2-results__option--selected')
                                ? a.options.get('multiple')
                                ? a.trigger('unselect',
                                    { originalEvent: n, data: r })
                                : a.trigger('close', {})
                                : a.trigger('select',
                                { originalEvent: n, data: r });
                        })), this.$results.on('mouseenter',
                        '.select2-results__option--selectable', (function (n) {
                            var i = t.GetData(this, 'data');
                            a.getHighlightedResults().
                                removeClass(
                                    'select2-results__option--highlighted').
                                attr('aria-selected', 'false'), a.trigger(
                                'results:focus', { data: i, element: e(this) });
                        }));
                }, n.prototype.getHighlightedResults = function () {
                    return this.$results.find(
                        '.select2-results__option--highlighted');
                }, n.prototype.destroy = function () {this.$results.remove();}, n.prototype.ensureHighlightVisible = function () {
                    var e = this.getHighlightedResults();
                    if (0 !== e.length) {
                        var t = this.$results.find(
                            '.select2-results__option--selectable').index(e),
                            n = this.$results.offset().top, i = e.offset().top,
                            a = this.$results.scrollTop() + (i - n), r = i - n;
                        a -= 2 * e.outerHeight(!1), t <= 2
                            ? this.$results.scrollTop(0)
                            : (r > this.$results.outerHeight() || r < 0) &&
                            this.$results.scrollTop(a);
                    }
                }, n.prototype.template = function (
                    t, n) {
                    var i = this.options.get('templateResult'),
                        a = this.options.get('escapeMarkup'), r = i(t, n);
                    null == r ? n.style.display = 'none' : 'string' == typeof r
                        ? n.innerHTML = a(r)
                        : e(n).append(r);
                }, n;
            })), t.define('select2/keys', [], (function () {
            return {
                BACKSPACE: 8,
                TAB: 9,
                ENTER: 13,
                SHIFT: 16,
                CTRL: 17,
                ALT: 18,
                ESC: 27,
                SPACE: 32,
                PAGE_UP: 33,
                PAGE_DOWN: 34,
                END: 35,
                HOME: 36,
                LEFT: 37,
                UP: 38,
                RIGHT: 39,
                DOWN: 40,
                DELETE: 46,
            };
        })), t.define('select2/selection/base',
            ['jquery', '../utils', '../keys'], (function (e, t, n) {
                function i (
                    e, t) {
                    this.$element = e, this.options = t, i.__super__.constructor.call(
                        this);
                }

                return t.Extend(i,
                    t.Observable), i.prototype.render = function () {
                    var n = e(
                        '<span class="select2-selection" role="combobox"  aria-haspopup="true" aria-expanded="false"></span>');
                    return this._tabindex = 0, null !=
                    t.GetData(this.$element[0], 'old-tabindex')
                        ? this._tabindex = t.GetData(this.$element[0],
                            'old-tabindex')
                        : null != this.$element.attr('tabindex') &&
                        (this._tabindex = this.$element.attr(
                            'tabindex')), n.attr('title',
                        this.$element.attr('title')), n.attr('tabindex',
                        this._tabindex), n.attr('aria-disabled',
                        'false'), this.$selection = n, n;
                }, i.prototype.bind = function (e, t) {
                    var i = this, a = e.id + '-results';
                    this.container = e, this.$selection.on('focus',
                        (function (e) {
                            i.trigger('focus', e);
                        })), this.$selection.on('blur',
                        (function (e) {i._handleBlur(e);})), this.$selection.on(
                        'keydown', (function (e) {
                            i.trigger('keypress', e), e.which === n.SPACE &&
                            e.preventDefault();
                        })), e.on('results:focus', (function (e) {
                        i.$selection.attr('aria-activedescendant',
                            e.data._resultId);
                    })), e.on('selection:update',
                        (function (e) {i.update(e.data);})), e.on('open',
                        (function () {
                            i.$selection.attr('aria-expanded',
                                'true'), i.$selection.attr('aria-owns',
                                a), i._attachCloseHandler(e);
                        })), e.on('close', (function () {
                        i.$selection.attr('aria-expanded',
                            'false'), i.$selection.removeAttr(
                            'aria-activedescendant'), i.$selection.removeAttr(
                            'aria-owns'), i.$selection.trigger(
                            'focus'), i._detachCloseHandler(e);
                    })), e.on('enable', (function () {
                        i.$selection.attr('tabindex',
                            i._tabindex), i.$selection.attr('aria-disabled',
                            'false');
                    })), e.on('disable', (function () {
                        i.$selection.attr('tabindex', '-1'), i.$selection.attr(
                            'aria-disabled', 'true');
                    }));
                }, i.prototype._handleBlur = function (t) {
                    var n = this;
                    window.setTimeout((function () {
                        document.activeElement == n.$selection[0] ||
                        e.contains(n.$selection[0], document.activeElement) ||
                        n.trigger('blur', t);
                    }), 1);
                }, i.prototype._attachCloseHandler = function (n) {
                    e(document.body).
                        on('mousedown.select2.' + n.id, (function (n) {
                            var i = e(n.target).closest('.select2');
                            e('.select2.select2-container--open').
                                each((function () {
                                    this != i[0] &&
                                    t.GetData(this, 'element').select2('close');
                                }));
                        }));
                }, i.prototype._detachCloseHandler = function (t) {
                    e(document.body).off('mousedown.select2.' + t.id);
                }, i.prototype.position = function (e, t) {
                    t.find('.selection').
                        append(e);
                }, i.prototype.destroy = function () {
                    this._detachCloseHandler(this.container);
                }, i.prototype.update = function (e) {
                    throw new Error(
                        'The `update` method must be defined in child classes.');
                }, i.prototype.isEnabled = function () {return !this.isDisabled();}, i.prototype.isDisabled = function () {
                    return this.options.get('disabled');
                }, i;
            })), t.define('select2/selection/single',
            ['jquery', './base', '../utils', '../keys'],
            (function (e, t, n, i) {
                function a () {a.__super__.constructor.apply(this, arguments);}

                return n.Extend(a, t), a.prototype.render = function () {
                    var e = a.__super__.render.call(this);
                    return e[0].classList.add(
                        'select2-selection--single'), e.html(
                        '<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'), e;
                }, a.prototype.bind = function (e, t) {
                    var n = this;
                    a.__super__.bind.apply(this, arguments);
                    var i = e.id + '-container';
                    this.$selection.find('.select2-selection__rendered').
                        attr('id', i).
                        attr('role', 'textbox').
                        attr('aria-readonly', 'true'), this.$selection.attr(
                        'aria-labelledby', i), this.$selection.attr(
                        'aria-controls', i), this.$selection.on('mousedown',
                        (function (e) {
                            1 === e.which &&
                            n.trigger('toggle', { originalEvent: e });
                        })), this.$selection.on('focus',
                        (function (e) {})), this.$selection.on('blur',
                        (function (e) {})), e.on('focus', (function (t) {
                        e.isOpen() || n.$selection.trigger('focus');
                    }));
                }, a.prototype.clear = function () {
                    var e = this.$selection.find(
                        '.select2-selection__rendered');
                    e.empty(), e.removeAttr('title');
                }, a.prototype.display = function (
                    e, t) {
                    var n = this.options.get('templateSelection');
                    return this.options.get('escapeMarkup')(n(e, t));
                }, a.prototype.selectionContainer = function () {
                    return e('<span></span>');
                }, a.prototype.update = function (e) {
                    if (0 !== e.length) {
                        var t = e[0], n = this.$selection.find(
                            '.select2-selection__rendered'),
                            i = this.display(t, n);
                        n.empty().append(i);
                        var a = t.title || t.text;
                        a ? n.attr('title', a) : n.removeAttr('title');
                    } else this.clear();
                }, a;
            })), t.define('select2/selection/multiple',
            ['jquery', './base', '../utils'], (function (e, t, n) {
                function i (e, t) {
                    i.__super__.constructor.apply(this, arguments);
                }

                return n.Extend(i, t), i.prototype.render = function () {
                    var e = i.__super__.render.call(this);
                    return e[0].classList.add(
                        'select2-selection--multiple'), e.html(
                        '<ul class="select2-selection__rendered"></ul>'), e;
                }, i.prototype.bind = function (t, a) {
                    var r = this;
                    i.__super__.bind.apply(this, arguments);
                    var o = t.id + '-container';
                    this.$selection.find('.select2-selection__rendered').
                        attr('id', o), this.$selection.on('click',
                        (function (e) {
                            r.trigger('toggle', { originalEvent: e });
                        })), this.$selection.on('click',
                        '.select2-selection__choice__remove', (function (t) {
                            if (!r.isDisabled()) {
                                var i = e(this).
                                    parent(), a = n.GetData(i[0], 'data');
                                r.trigger('unselect',
                                    { originalEvent: t, data: a });
                            }
                        })), this.$selection.on('keydown',
                        '.select2-selection__choice__remove',
                        (function (e) {
                            r.isDisabled() || e.stopPropagation();
                        }));
                }, i.prototype.clear = function () {
                    var e = this.$selection.find(
                        '.select2-selection__rendered');
                    e.empty(), e.removeAttr('title');
                }, i.prototype.display = function (
                    e, t) {
                    var n = this.options.get('templateSelection');
                    return this.options.get('escapeMarkup')(n(e, t));
                }, i.prototype.selectionContainer = function () {
                    return e(
                        '<li class="select2-selection__choice"><button type="button" class="select2-selection__choice__remove" tabindex="-1"><span aria-hidden="true">&times;</span></button><span class="select2-selection__choice__display"></span></li>');
                }, i.prototype.update = function (e) {
                    if (this.clear(), 0 !== e.length) {
                        for (var t = [], i = this.$selection.find(
                            '.select2-selection__rendered').attr('id') +
                            '-choice-', a = 0; a < e.length; a++) {
                            var r = e[a], o = this.selectionContainer(),
                                s = this.display(r, o),
                                l = i + n.generateChars(4) + '-';
                            r.id ? l += r.id : l += n.generateChars(4), o.find(
                                '.select2-selection__choice__display').
                                append(s).
                                attr('id', l);
                            var c = r.title || r.text;
                            c && o.attr('title', c);
                            var u = this.options.get('translations').
                                get('removeItem'), d = o.find(
                                '.select2-selection__choice__remove');
                            d.attr('title', u()), d.attr('aria-label',
                                u()), d.attr('aria-describedby',
                                l), n.StoreData(o[0], 'data', r), t.push(o);
                        }
                        this.$selection.find('.select2-selection__rendered').
                            append(t);
                    }
                }, i;
            })), t.define('select2/selection/placeholder', [], (function () {
            function e (e, t, n) {
                this.placeholder = this.normalizePlaceholder(
                    n.get('placeholder')), e.call(this, t, n);
            }

            return e.prototype.normalizePlaceholder = function (
                e, t) {
                return 'string' == typeof t && (t = { id: '', text: t }), t;
            }, e.prototype.createPlaceholder = function (
                e, t) {
                var n = this.selectionContainer();
                n.html(this.display(t)), n[0].classList.add(
                    'select2-selection__placeholder'), n[0].classList.remove(
                    'select2-selection__choice');
                var i = t.title || t.text || n.text();
                return this.$selection.find('.select2-selection__rendered').
                    attr('title', i), n;
            }, e.prototype.update = function (e, t) {
                var n = 1 == t.length && t[0].id != this.placeholder.id;
                if (t.length > 1 || n) return e.call(this, t);
                this.clear();
                var i = this.createPlaceholder(this.placeholder);
                this.$selection.find('.select2-selection__rendered').append(i);
            }, e;
        })), t.define('select2/selection/allowClear',
            ['jquery', '../keys', '../utils'], (function (e, t, n) {
                function i () {}

                return i.prototype.bind = function (e, t, n) {
                    var i = this;
                    e.call(this, t, n), null == this.placeholder &&
                    this.options.get('debug') && window.console &&
                    console.error && console.error(
                        'Select2: The `allowClear` option should be used in combination with the `placeholder` option.'), this.$selection.on(
                        'mousedown', '.select2-selection__clear',
                        (function (e) {i._handleClear(e);})), t.on('keypress',
                        (function (e) {i._handleKeyboardClear(e, t);}));
                }, i.prototype._handleClear = function (
                    e, t) {
                    if (!this.isDisabled()) {
                        var i = this.$selection.find(
                            '.select2-selection__clear');
                        if (0 !== i.length) {
                            t.stopPropagation();
                            var a = n.GetData(i[0], 'data'),
                                r = this.$element.val();
                            this.$element.val(this.placeholder.id);
                            var o = { data: a };
                            if (this.trigger('clear',
                                o), o.prevented) this.$element.val(r); else {
                                for (var s = 0; s <
                                a.length; s++) if (o = { data: a[s] }, this.trigger(
                                    'unselect',
                                    o), o.prevented) return void this.$element.val(
                                    r);
                                this.$element.trigger('input').
                                    trigger('change'), this.trigger('toggle',
                                    {});
                            }
                        }
                    }
                }, i.prototype._handleKeyboardClear = function (
                    e, n, i) {
                    i.isOpen() || n.which != t.DELETE && n.which !=
                    t.BACKSPACE || this._handleClear(n);
                }, i.prototype.update = function (t, i) {
                    if (t.call(this, i), this.$selection.find(
                        '.select2-selection__clear').
                        remove(), this.$selection[0].classList.remove(
                        'select2-selection--clearable'), !(this.$selection.find(
                        '.select2-selection__placeholder').length > 0 || 0 ===
                        i.length)) {
                        var a = this.$selection.find(
                            '.select2-selection__rendered').attr('id'),
                            r = this.options.get('translations').
                                get('removeAllItems'), o = e(
                            '<button type="button" class="select2-selection__clear" tabindex="-1"><span aria-hidden="true">&times;</span></button>');
                        o.attr('title', r()), o.attr('aria-label', r()), o.attr(
                            'aria-describedby', a), n.StoreData(o[0], 'data',
                            i), this.$selection.prepend(
                            o), this.$selection[0].classList.add(
                            'select2-selection--clearable');
                    }
                }, i;
            })), t.define('select2/selection/search',
            ['jquery', '../utils', '../keys'], (function (e, t, n) {
                function i (e, t, n) {e.call(this, t, n);}

                return i.prototype.render = function (t) {
                    var n = this.options.get('translations').get('search'),
                        i = e(
                            '<span class="select2-search select2-search--inline"><textarea class="select2-search__field" type="search" tabindex="-1" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" ></textarea></span>');
                    this.$searchContainer = i, this.$search = i.find(
                        'textarea'), this.$search.prop('autocomplete',
                        this.options.get('autocomplete')), this.$search.attr(
                        'aria-label', n());
                    var a = t.call(this);
                    return this._transferTabIndex(), a.append(
                        this.$searchContainer), a;
                }, i.prototype.bind = function (e, i, a) {
                    var r = this, o = i.id + '-results',
                        s = i.id + '-container';
                    e.call(this, i, a), r.$search.attr('aria-describedby',
                        s), i.on('open', (function () {
                        r.$search.attr('aria-controls', o), r.$search.trigger(
                            'focus');
                    })), i.on('close', (function () {
                        r.$search.val(
                            ''), r.resizeSearch(), r.$search.removeAttr(
                            'aria-controls'), r.$search.removeAttr(
                            'aria-activedescendant'), r.$search.trigger(
                            'focus');
                    })), i.on('enable', (function () {
                        r.$search.prop('disabled', !1), r._transferTabIndex();
                    })), i.on('disable',
                        (function () {r.$search.prop('disabled', !0);})), i.on(
                        'focus',
                        (function (e) {r.$search.trigger('focus');})), i.on(
                        'results:focus', (function (e) {
                            e.data._resultId
                                ? r.$search.attr('aria-activedescendant',
                                e.data._resultId)
                                : r.$search.removeAttr('aria-activedescendant');
                        })), this.$selection.on('focusin',
                        '.select2-search--inline', (function (e) {
                            r.trigger('focus', e);
                        })), this.$selection.on('focusout',
                        '.select2-search--inline',
                        (function (e) {r._handleBlur(e);})), this.$selection.on(
                        'keydown', '.select2-search--inline', (function (e) {
                            if (e.stopPropagation(), r.trigger('keypress',
                                e), r._keyUpPrevented = e.isDefaultPrevented(), e.which ===
                            n.BACKSPACE && '' === r.$search.val()) {
                                var i = r.$selection.find(
                                    '.select2-selection__choice').last();
                                if (i.length > 0) {
                                    var a = t.GetData(i[0], 'data');
                                    r.searchRemoveChoice(a), e.preventDefault();
                                }
                            }
                        })), this.$selection.on('click',
                        '.select2-search--inline', (function (e) {
                            r.$search.val() && e.stopPropagation();
                        }));
                    var l = document.documentMode, c = l && l <= 11;
                    this.$selection.on('input.searchcheck',
                        '.select2-search--inline', (function (e) {
                            c
                                ? r.$selection.off(
                                'input.search input.searchcheck')
                                : r.$selection.off('keyup.search');
                        })), this.$selection.on('keyup.search input.search',
                        '.select2-search--inline', (function (e) {
                            if (c && 'input' === e.type) r.$selection.off(
                                'input.search input.searchcheck'); else {
                                var t = e.which;
                                t != n.SHIFT && t != n.CTRL && t != n.ALT &&
                                t != n.TAB && r.handleSearch(e);
                            }
                        }));
                }, i.prototype._transferTabIndex = function (e) {
                    this.$search.attr('tabindex',
                        this.$selection.attr('tabindex')), this.$selection.attr(
                        'tabindex', '-1');
                }, i.prototype.createPlaceholder = function (
                    e, t) {
                    this.$search.attr('placeholder', t.text);
                }, i.prototype.update = function (
                    e, t) {
                    var n = this.$search[0] == document.activeElement;
                    this.$search.attr('placeholder', ''), e.call(this,
                        t), this.resizeSearch(), n &&
                    this.$search.trigger('focus');
                }, i.prototype.handleSearch = function () {
                    if (this.resizeSearch(), !this._keyUpPrevented) {
                        var e = this.$search.val();
                        this.trigger('query', { term: e });
                    }
                    this._keyUpPrevented = !1;
                }, i.prototype.searchRemoveChoice = function (
                    e, t) {
                    this.trigger('unselect', { data: t }), this.$search.val(
                        t.text), this.handleSearch();
                }, i.prototype.resizeSearch = function () {
                    this.$search.css('width', '25px');
                    var e = '100%';
                    '' === this.$search.attr('placeholder') &&
                    (e = .75 * (this.$search.val().length + 1) + 'em');
                    this.$search.css('width', e);
                }, i;
            })), t.define('select2/selection/selectionCss', ['../utils'],
            (function (e) {
                function t () {}

                return t.prototype.render = function (t) {
                    var n = t.call(this),
                        i = this.options.get('selectionCssClass') || '';
                    return -1 !== i.indexOf(':all:') &&
                    (i = i.replace(':all:', ''), e.copyNonInternalCssClasses(
                        n[0], this.$element[0])), n.addClass(i), n;
                }, t;
            })), t.define('select2/selection/eventRelay', ['jquery'],
            (function (e) {
                function t () {}

                return t.prototype.bind = function (t, n, i) {
                    var a = this, r = [
                        'open',
                        'opening',
                        'close',
                        'closing',
                        'select',
                        'selecting',
                        'unselect',
                        'unselecting',
                        'clear',
                        'clearing'], o = [
                        'opening',
                        'closing',
                        'selecting',
                        'unselecting',
                        'clearing'];
                    t.call(this, n, i), n.on('*', (function (t, n) {
                        if (-1 !== r.indexOf(t)) {
                            n = n || {};
                            var i = e.Event('select2:' + t, { params: n });
                            a.$element.trigger(i), -1 !== o.indexOf(t) &&
                            (n.prevented = i.isDefaultPrevented());
                        }
                    }));
                }, t;
            })), t.define('select2/translation', ['jquery', 'require'],
            (function (e, t) {
                function n (e) {this.dict = e || {};}

                return n.prototype.all = function () {return this.dict;}, n.prototype.get = function (e) {return this.dict[e];}, n.prototype.extend = function (t) {
                    this.dict = e.extend({}, t.all(), this.dict);
                }, n._cache = {}, n.loadPath = function (e) {
                    if (!(e in n._cache)) {
                        var i = t(e);
                        n._cache[e] = i;
                    }
                    return new n(n._cache[e]);
                }, n;
            })), t.define('select2/diacritics', [], (function () {
            return {
                'Ⓐ': 'A',
                'A': 'A',
                'À': 'A',
                'Á': 'A',
                'Â': 'A',
                'Ầ': 'A',
                'Ấ': 'A',
                'Ẫ': 'A',
                'Ẩ': 'A',
                'Ã': 'A',
                'Ā': 'A',
                'Ă': 'A',
                'Ằ': 'A',
                'Ắ': 'A',
                'Ẵ': 'A',
                'Ẳ': 'A',
                'Ȧ': 'A',
                'Ǡ': 'A',
                'Ä': 'A',
                'Ǟ': 'A',
                'Ả': 'A',
                'Å': 'A',
                'Ǻ': 'A',
                'Ǎ': 'A',
                'Ȁ': 'A',
                'Ȃ': 'A',
                'Ạ': 'A',
                'Ậ': 'A',
                'Ặ': 'A',
                'Ḁ': 'A',
                'Ą': 'A',
                'Ⱥ': 'A',
                'Ɐ': 'A',
                'Ꜳ': 'AA',
                'Æ': 'AE',
                'Ǽ': 'AE',
                'Ǣ': 'AE',
                'Ꜵ': 'AO',
                'Ꜷ': 'AU',
                'Ꜹ': 'AV',
                'Ꜻ': 'AV',
                'Ꜽ': 'AY',
                'Ⓑ': 'B',
                'B': 'B',
                'Ḃ': 'B',
                'Ḅ': 'B',
                'Ḇ': 'B',
                'Ƀ': 'B',
                'Ƃ': 'B',
                'Ɓ': 'B',
                'Ⓒ': 'C',
                'C': 'C',
                'Ć': 'C',
                'Ĉ': 'C',
                'Ċ': 'C',
                'Č': 'C',
                'Ç': 'C',
                'Ḉ': 'C',
                'Ƈ': 'C',
                'Ȼ': 'C',
                'Ꜿ': 'C',
                'Ⓓ': 'D',
                'D': 'D',
                'Ḋ': 'D',
                'Ď': 'D',
                'Ḍ': 'D',
                'Ḑ': 'D',
                'Ḓ': 'D',
                'Ḏ': 'D',
                'Đ': 'D',
                'Ƌ': 'D',
                'Ɗ': 'D',
                'Ɖ': 'D',
                'Ꝺ': 'D',
                'DZ': 'DZ',
                'DŽ': 'DZ',
                'Dz': 'Dz',
                'Dž': 'Dz',
                'Ⓔ': 'E',
                'E': 'E',
                'È': 'E',
                'É': 'E',
                'Ê': 'E',
                'Ề': 'E',
                'Ế': 'E',
                'Ễ': 'E',
                'Ể': 'E',
                'Ẽ': 'E',
                'Ē': 'E',
                'Ḕ': 'E',
                'Ḗ': 'E',
                'Ĕ': 'E',
                'Ė': 'E',
                'Ë': 'E',
                'Ẻ': 'E',
                'Ě': 'E',
                'Ȅ': 'E',
                'Ȇ': 'E',
                'Ẹ': 'E',
                'Ệ': 'E',
                'Ȩ': 'E',
                'Ḝ': 'E',
                'Ę': 'E',
                'Ḙ': 'E',
                'Ḛ': 'E',
                'Ɛ': 'E',
                'Ǝ': 'E',
                'Ⓕ': 'F',
                'F': 'F',
                'Ḟ': 'F',
                'Ƒ': 'F',
                'Ꝼ': 'F',
                'Ⓖ': 'G',
                'G': 'G',
                'Ǵ': 'G',
                'Ĝ': 'G',
                'Ḡ': 'G',
                'Ğ': 'G',
                'Ġ': 'G',
                'Ǧ': 'G',
                'Ģ': 'G',
                'Ǥ': 'G',
                'Ɠ': 'G',
                'Ꞡ': 'G',
                'Ᵹ': 'G',
                'Ꝿ': 'G',
                'Ⓗ': 'H',
                'H': 'H',
                'Ĥ': 'H',
                'Ḣ': 'H',
                'Ḧ': 'H',
                'Ȟ': 'H',
                'Ḥ': 'H',
                'Ḩ': 'H',
                'Ḫ': 'H',
                'Ħ': 'H',
                'Ⱨ': 'H',
                'Ⱶ': 'H',
                'Ɥ': 'H',
                'Ⓘ': 'I',
                'I': 'I',
                'Ì': 'I',
                'Í': 'I',
                'Î': 'I',
                'Ĩ': 'I',
                'Ī': 'I',
                'Ĭ': 'I',
                'İ': 'I',
                'Ï': 'I',
                'Ḯ': 'I',
                'Ỉ': 'I',
                'Ǐ': 'I',
                'Ȉ': 'I',
                'Ȋ': 'I',
                'Ị': 'I',
                'Į': 'I',
                'Ḭ': 'I',
                'Ɨ': 'I',
                'Ⓙ': 'J',
                'J': 'J',
                'Ĵ': 'J',
                'Ɉ': 'J',
                'Ⓚ': 'K',
                'K': 'K',
                'Ḱ': 'K',
                'Ǩ': 'K',
                'Ḳ': 'K',
                'Ķ': 'K',
                'Ḵ': 'K',
                'Ƙ': 'K',
                'Ⱪ': 'K',
                'Ꝁ': 'K',
                'Ꝃ': 'K',
                'Ꝅ': 'K',
                'Ꞣ': 'K',
                'Ⓛ': 'L',
                'L': 'L',
                'Ŀ': 'L',
                'Ĺ': 'L',
                'Ľ': 'L',
                'Ḷ': 'L',
                'Ḹ': 'L',
                'Ļ': 'L',
                'Ḽ': 'L',
                'Ḻ': 'L',
                'Ł': 'L',
                'Ƚ': 'L',
                'Ɫ': 'L',
                'Ⱡ': 'L',
                'Ꝉ': 'L',
                'Ꝇ': 'L',
                'Ꞁ': 'L',
                'LJ': 'LJ',
                'Lj': 'Lj',
                'Ⓜ': 'M',
                'M': 'M',
                'Ḿ': 'M',
                'Ṁ': 'M',
                'Ṃ': 'M',
                'Ɱ': 'M',
                'Ɯ': 'M',
                'Ⓝ': 'N',
                'N': 'N',
                'Ǹ': 'N',
                'Ń': 'N',
                'Ñ': 'N',
                'Ṅ': 'N',
                'Ň': 'N',
                'Ṇ': 'N',
                'Ņ': 'N',
                'Ṋ': 'N',
                'Ṉ': 'N',
                'Ƞ': 'N',
                'Ɲ': 'N',
                'Ꞑ': 'N',
                'Ꞥ': 'N',
                'NJ': 'NJ',
                'Nj': 'Nj',
                'Ⓞ': 'O',
                'O': 'O',
                'Ò': 'O',
                'Ó': 'O',
                'Ô': 'O',
                'Ồ': 'O',
                'Ố': 'O',
                'Ỗ': 'O',
                'Ổ': 'O',
                'Õ': 'O',
                'Ṍ': 'O',
                'Ȭ': 'O',
                'Ṏ': 'O',
                'Ō': 'O',
                'Ṑ': 'O',
                'Ṓ': 'O',
                'Ŏ': 'O',
                'Ȯ': 'O',
                'Ȱ': 'O',
                'Ö': 'O',
                'Ȫ': 'O',
                'Ỏ': 'O',
                'Ő': 'O',
                'Ǒ': 'O',
                'Ȍ': 'O',
                'Ȏ': 'O',
                'Ơ': 'O',
                'Ờ': 'O',
                'Ớ': 'O',
                'Ỡ': 'O',
                'Ở': 'O',
                'Ợ': 'O',
                'Ọ': 'O',
                'Ộ': 'O',
                'Ǫ': 'O',
                'Ǭ': 'O',
                'Ø': 'O',
                'Ǿ': 'O',
                'Ɔ': 'O',
                'Ɵ': 'O',
                'Ꝋ': 'O',
                'Ꝍ': 'O',
                'Œ': 'OE',
                'Ƣ': 'OI',
                'Ꝏ': 'OO',
                'Ȣ': 'OU',
                'Ⓟ': 'P',
                'P': 'P',
                'Ṕ': 'P',
                'Ṗ': 'P',
                'Ƥ': 'P',
                'Ᵽ': 'P',
                'Ꝑ': 'P',
                'Ꝓ': 'P',
                'Ꝕ': 'P',
                'Ⓠ': 'Q',
                'Q': 'Q',
                'Ꝗ': 'Q',
                'Ꝙ': 'Q',
                'Ɋ': 'Q',
                'Ⓡ': 'R',
                'R': 'R',
                'Ŕ': 'R',
                'Ṙ': 'R',
                'Ř': 'R',
                'Ȑ': 'R',
                'Ȓ': 'R',
                'Ṛ': 'R',
                'Ṝ': 'R',
                'Ŗ': 'R',
                'Ṟ': 'R',
                'Ɍ': 'R',
                'Ɽ': 'R',
                'Ꝛ': 'R',
                'Ꞧ': 'R',
                'Ꞃ': 'R',
                'Ⓢ': 'S',
                'S': 'S',
                'ẞ': 'S',
                'Ś': 'S',
                'Ṥ': 'S',
                'Ŝ': 'S',
                'Ṡ': 'S',
                'Š': 'S',
                'Ṧ': 'S',
                'Ṣ': 'S',
                'Ṩ': 'S',
                'Ș': 'S',
                'Ş': 'S',
                'Ȿ': 'S',
                'Ꞩ': 'S',
                'Ꞅ': 'S',
                'Ⓣ': 'T',
                'T': 'T',
                'Ṫ': 'T',
                'Ť': 'T',
                'Ṭ': 'T',
                'Ț': 'T',
                'Ţ': 'T',
                'Ṱ': 'T',
                'Ṯ': 'T',
                'Ŧ': 'T',
                'Ƭ': 'T',
                'Ʈ': 'T',
                'Ⱦ': 'T',
                'Ꞇ': 'T',
                'Ꜩ': 'TZ',
                'Ⓤ': 'U',
                'U': 'U',
                'Ù': 'U',
                'Ú': 'U',
                'Û': 'U',
                'Ũ': 'U',
                'Ṹ': 'U',
                'Ū': 'U',
                'Ṻ': 'U',
                'Ŭ': 'U',
                'Ü': 'U',
                'Ǜ': 'U',
                'Ǘ': 'U',
                'Ǖ': 'U',
                'Ǚ': 'U',
                'Ủ': 'U',
                'Ů': 'U',
                'Ű': 'U',
                'Ǔ': 'U',
                'Ȕ': 'U',
                'Ȗ': 'U',
                'Ư': 'U',
                'Ừ': 'U',
                'Ứ': 'U',
                'Ữ': 'U',
                'Ử': 'U',
                'Ự': 'U',
                'Ụ': 'U',
                'Ṳ': 'U',
                'Ų': 'U',
                'Ṷ': 'U',
                'Ṵ': 'U',
                'Ʉ': 'U',
                'Ⓥ': 'V',
                'V': 'V',
                'Ṽ': 'V',
                'Ṿ': 'V',
                'Ʋ': 'V',
                'Ꝟ': 'V',
                'Ʌ': 'V',
                'Ꝡ': 'VY',
                'Ⓦ': 'W',
                'W': 'W',
                'Ẁ': 'W',
                'Ẃ': 'W',
                'Ŵ': 'W',
                'Ẇ': 'W',
                'Ẅ': 'W',
                'Ẉ': 'W',
                'Ⱳ': 'W',
                'Ⓧ': 'X',
                'X': 'X',
                'Ẋ': 'X',
                'Ẍ': 'X',
                'Ⓨ': 'Y',
                'Y': 'Y',
                'Ỳ': 'Y',
                'Ý': 'Y',
                'Ŷ': 'Y',
                'Ỹ': 'Y',
                'Ȳ': 'Y',
                'Ẏ': 'Y',
                'Ÿ': 'Y',
                'Ỷ': 'Y',
                'Ỵ': 'Y',
                'Ƴ': 'Y',
                'Ɏ': 'Y',
                'Ỿ': 'Y',
                'Ⓩ': 'Z',
                'Z': 'Z',
                'Ź': 'Z',
                'Ẑ': 'Z',
                'Ż': 'Z',
                'Ž': 'Z',
                'Ẓ': 'Z',
                'Ẕ': 'Z',
                'Ƶ': 'Z',
                'Ȥ': 'Z',
                'Ɀ': 'Z',
                'Ⱬ': 'Z',
                'Ꝣ': 'Z',
                'ⓐ': 'a',
                'a': 'a',
                'ẚ': 'a',
                'à': 'a',
                'á': 'a',
                'â': 'a',
                'ầ': 'a',
                'ấ': 'a',
                'ẫ': 'a',
                'ẩ': 'a',
                'ã': 'a',
                'ā': 'a',
                'ă': 'a',
                'ằ': 'a',
                'ắ': 'a',
                'ẵ': 'a',
                'ẳ': 'a',
                'ȧ': 'a',
                'ǡ': 'a',
                'ä': 'a',
                'ǟ': 'a',
                'ả': 'a',
                'å': 'a',
                'ǻ': 'a',
                'ǎ': 'a',
                'ȁ': 'a',
                'ȃ': 'a',
                'ạ': 'a',
                'ậ': 'a',
                'ặ': 'a',
                'ḁ': 'a',
                'ą': 'a',
                'ⱥ': 'a',
                'ɐ': 'a',
                'ꜳ': 'aa',
                'æ': 'ae',
                'ǽ': 'ae',
                'ǣ': 'ae',
                'ꜵ': 'ao',
                'ꜷ': 'au',
                'ꜹ': 'av',
                'ꜻ': 'av',
                'ꜽ': 'ay',
                'ⓑ': 'b',
                'b': 'b',
                'ḃ': 'b',
                'ḅ': 'b',
                'ḇ': 'b',
                'ƀ': 'b',
                'ƃ': 'b',
                'ɓ': 'b',
                'ⓒ': 'c',
                'c': 'c',
                'ć': 'c',
                'ĉ': 'c',
                'ċ': 'c',
                'č': 'c',
                'ç': 'c',
                'ḉ': 'c',
                'ƈ': 'c',
                'ȼ': 'c',
                'ꜿ': 'c',
                'ↄ': 'c',
                'ⓓ': 'd',
                'd': 'd',
                'ḋ': 'd',
                'ď': 'd',
                'ḍ': 'd',
                'ḑ': 'd',
                'ḓ': 'd',
                'ḏ': 'd',
                'đ': 'd',
                'ƌ': 'd',
                'ɖ': 'd',
                'ɗ': 'd',
                'ꝺ': 'd',
                'dz': 'dz',
                'dž': 'dz',
                'ⓔ': 'e',
                'e': 'e',
                'è': 'e',
                'é': 'e',
                'ê': 'e',
                'ề': 'e',
                'ế': 'e',
                'ễ': 'e',
                'ể': 'e',
                'ẽ': 'e',
                'ē': 'e',
                'ḕ': 'e',
                'ḗ': 'e',
                'ĕ': 'e',
                'ė': 'e',
                'ë': 'e',
                'ẻ': 'e',
                'ě': 'e',
                'ȅ': 'e',
                'ȇ': 'e',
                'ẹ': 'e',
                'ệ': 'e',
                'ȩ': 'e',
                'ḝ': 'e',
                'ę': 'e',
                'ḙ': 'e',
                'ḛ': 'e',
                'ɇ': 'e',
                'ɛ': 'e',
                'ǝ': 'e',
                'ⓕ': 'f',
                'f': 'f',
                'ḟ': 'f',
                'ƒ': 'f',
                'ꝼ': 'f',
                'ⓖ': 'g',
                'g': 'g',
                'ǵ': 'g',
                'ĝ': 'g',
                'ḡ': 'g',
                'ğ': 'g',
                'ġ': 'g',
                'ǧ': 'g',
                'ģ': 'g',
                'ǥ': 'g',
                'ɠ': 'g',
                'ꞡ': 'g',
                'ᵹ': 'g',
                'ꝿ': 'g',
                'ⓗ': 'h',
                'h': 'h',
                'ĥ': 'h',
                'ḣ': 'h',
                'ḧ': 'h',
                'ȟ': 'h',
                'ḥ': 'h',
                'ḩ': 'h',
                'ḫ': 'h',
                'ẖ': 'h',
                'ħ': 'h',
                'ⱨ': 'h',
                'ⱶ': 'h',
                'ɥ': 'h',
                'ƕ': 'hv',
                'ⓘ': 'i',
                'i': 'i',
                'ì': 'i',
                'í': 'i',
                'î': 'i',
                'ĩ': 'i',
                'ī': 'i',
                'ĭ': 'i',
                'ï': 'i',
                'ḯ': 'i',
                'ỉ': 'i',
                'ǐ': 'i',
                'ȉ': 'i',
                'ȋ': 'i',
                'ị': 'i',
                'į': 'i',
                'ḭ': 'i',
                'ɨ': 'i',
                'ı': 'i',
                'ⓙ': 'j',
                'j': 'j',
                'ĵ': 'j',
                'ǰ': 'j',
                'ɉ': 'j',
                'ⓚ': 'k',
                'k': 'k',
                'ḱ': 'k',
                'ǩ': 'k',
                'ḳ': 'k',
                'ķ': 'k',
                'ḵ': 'k',
                'ƙ': 'k',
                'ⱪ': 'k',
                'ꝁ': 'k',
                'ꝃ': 'k',
                'ꝅ': 'k',
                'ꞣ': 'k',
                'ⓛ': 'l',
                'l': 'l',
                'ŀ': 'l',
                'ĺ': 'l',
                'ľ': 'l',
                'ḷ': 'l',
                'ḹ': 'l',
                'ļ': 'l',
                'ḽ': 'l',
                'ḻ': 'l',
                'ſ': 'l',
                'ł': 'l',
                'ƚ': 'l',
                'ɫ': 'l',
                'ⱡ': 'l',
                'ꝉ': 'l',
                'ꞁ': 'l',
                'ꝇ': 'l',
                'lj': 'lj',
                'ⓜ': 'm',
                'm': 'm',
                'ḿ': 'm',
                'ṁ': 'm',
                'ṃ': 'm',
                'ɱ': 'm',
                'ɯ': 'm',
                'ⓝ': 'n',
                'n': 'n',
                'ǹ': 'n',
                'ń': 'n',
                'ñ': 'n',
                'ṅ': 'n',
                'ň': 'n',
                'ṇ': 'n',
                'ņ': 'n',
                'ṋ': 'n',
                'ṉ': 'n',
                'ƞ': 'n',
                'ɲ': 'n',
                'ʼn': 'n',
                'ꞑ': 'n',
                'ꞥ': 'n',
                'nj': 'nj',
                'ⓞ': 'o',
                'o': 'o',
                'ò': 'o',
                'ó': 'o',
                'ô': 'o',
                'ồ': 'o',
                'ố': 'o',
                'ỗ': 'o',
                'ổ': 'o',
                'õ': 'o',
                'ṍ': 'o',
                'ȭ': 'o',
                'ṏ': 'o',
                'ō': 'o',
                'ṑ': 'o',
                'ṓ': 'o',
                'ŏ': 'o',
                'ȯ': 'o',
                'ȱ': 'o',
                'ö': 'o',
                'ȫ': 'o',
                'ỏ': 'o',
                'ő': 'o',
                'ǒ': 'o',
                'ȍ': 'o',
                'ȏ': 'o',
                'ơ': 'o',
                'ờ': 'o',
                'ớ': 'o',
                'ỡ': 'o',
                'ở': 'o',
                'ợ': 'o',
                'ọ': 'o',
                'ộ': 'o',
                'ǫ': 'o',
                'ǭ': 'o',
                'ø': 'o',
                'ǿ': 'o',
                'ɔ': 'o',
                'ꝋ': 'o',
                'ꝍ': 'o',
                'ɵ': 'o',
                'œ': 'oe',
                'ƣ': 'oi',
                'ȣ': 'ou',
                'ꝏ': 'oo',
                'ⓟ': 'p',
                'p': 'p',
                'ṕ': 'p',
                'ṗ': 'p',
                'ƥ': 'p',
                'ᵽ': 'p',
                'ꝑ': 'p',
                'ꝓ': 'p',
                'ꝕ': 'p',
                'ⓠ': 'q',
                'q': 'q',
                'ɋ': 'q',
                'ꝗ': 'q',
                'ꝙ': 'q',
                'ⓡ': 'r',
                'r': 'r',
                'ŕ': 'r',
                'ṙ': 'r',
                'ř': 'r',
                'ȑ': 'r',
                'ȓ': 'r',
                'ṛ': 'r',
                'ṝ': 'r',
                'ŗ': 'r',
                'ṟ': 'r',
                'ɍ': 'r',
                'ɽ': 'r',
                'ꝛ': 'r',
                'ꞧ': 'r',
                'ꞃ': 'r',
                'ⓢ': 's',
                's': 's',
                'ß': 's',
                'ś': 's',
                'ṥ': 's',
                'ŝ': 's',
                'ṡ': 's',
                'š': 's',
                'ṧ': 's',
                'ṣ': 's',
                'ṩ': 's',
                'ș': 's',
                'ş': 's',
                'ȿ': 's',
                'ꞩ': 's',
                'ꞅ': 's',
                'ẛ': 's',
                'ⓣ': 't',
                't': 't',
                'ṫ': 't',
                'ẗ': 't',
                'ť': 't',
                'ṭ': 't',
                'ț': 't',
                'ţ': 't',
                'ṱ': 't',
                'ṯ': 't',
                'ŧ': 't',
                'ƭ': 't',
                'ʈ': 't',
                'ⱦ': 't',
                'ꞇ': 't',
                'ꜩ': 'tz',
                'ⓤ': 'u',
                'u': 'u',
                'ù': 'u',
                'ú': 'u',
                'û': 'u',
                'ũ': 'u',
                'ṹ': 'u',
                'ū': 'u',
                'ṻ': 'u',
                'ŭ': 'u',
                'ü': 'u',
                'ǜ': 'u',
                'ǘ': 'u',
                'ǖ': 'u',
                'ǚ': 'u',
                'ủ': 'u',
                'ů': 'u',
                'ű': 'u',
                'ǔ': 'u',
                'ȕ': 'u',
                'ȗ': 'u',
                'ư': 'u',
                'ừ': 'u',
                'ứ': 'u',
                'ữ': 'u',
                'ử': 'u',
                'ự': 'u',
                'ụ': 'u',
                'ṳ': 'u',
                'ų': 'u',
                'ṷ': 'u',
                'ṵ': 'u',
                'ʉ': 'u',
                'ⓥ': 'v',
                'v': 'v',
                'ṽ': 'v',
                'ṿ': 'v',
                'ʋ': 'v',
                'ꝟ': 'v',
                'ʌ': 'v',
                'ꝡ': 'vy',
                'ⓦ': 'w',
                'w': 'w',
                'ẁ': 'w',
                'ẃ': 'w',
                'ŵ': 'w',
                'ẇ': 'w',
                'ẅ': 'w',
                'ẘ': 'w',
                'ẉ': 'w',
                'ⱳ': 'w',
                'ⓧ': 'x',
                'x': 'x',
                'ẋ': 'x',
                'ẍ': 'x',
                'ⓨ': 'y',
                'y': 'y',
                'ỳ': 'y',
                'ý': 'y',
                'ŷ': 'y',
                'ỹ': 'y',
                'ȳ': 'y',
                'ẏ': 'y',
                'ÿ': 'y',
                'ỷ': 'y',
                'ẙ': 'y',
                'ỵ': 'y',
                'ƴ': 'y',
                'ɏ': 'y',
                'ỿ': 'y',
                'ⓩ': 'z',
                'z': 'z',
                'ź': 'z',
                'ẑ': 'z',
                'ż': 'z',
                'ž': 'z',
                'ẓ': 'z',
                'ẕ': 'z',
                'ƶ': 'z',
                'ȥ': 'z',
                'ɀ': 'z',
                'ⱬ': 'z',
                'ꝣ': 'z',
                'Ά': 'Α',
                'Έ': 'Ε',
                'Ή': 'Η',
                'Ί': 'Ι',
                'Ϊ': 'Ι',
                'Ό': 'Ο',
                'Ύ': 'Υ',
                'Ϋ': 'Υ',
                'Ώ': 'Ω',
                'ά': 'α',
                'έ': 'ε',
                'ή': 'η',
                'ί': 'ι',
                'ϊ': 'ι',
                'ΐ': 'ι',
                'ό': 'ο',
                'ύ': 'υ',
                'ϋ': 'υ',
                'ΰ': 'υ',
                'ώ': 'ω',
                'ς': 'σ',
                '’': '\'',
            };
        })), t.define('select2/data/base', ['../utils'], (function (e) {
            function t (e, n) {
                t.__super__.constructor.call(this);
            }

            return e.Extend(t,
                e.Observable), t.prototype.current = function (e) {
                throw new Error(
                    'The `current` method must be defined in child classes.');
            }, t.prototype.query = function (e, t) {
                throw new Error(
                    'The `query` method must be defined in child classes.');
            }, t.prototype.bind = function (
                e,
                t) {}, t.prototype.destroy = function () {}, t.prototype.generateResultId = function (
                t, n) {
                var i = t.id + '-result-';
                return i += e.generateChars(4), null != n.id ? i += '-' +
                    n.id.toString() : i += '-' + e.generateChars(4), i;
            }, t;
        })), t.define('select2/data/select', ['./base', '../utils', 'jquery'],
            (function (e, t, n) {
                function i (
                    e, t) {
                    this.$element = e, this.options = t, i.__super__.constructor.call(
                        this);
                }

                return t.Extend(i, e), i.prototype.current = function (e) {
                    var t = this;
                    e(Array.prototype.map.call(
                        this.$element[0].querySelectorAll(':checked'),
                        (function (e) {return t.item(n(e));})));
                }, i.prototype.select = function (e) {
                    var t = this;
                    if (e.selected = !0, null != e.element && 'option' ===
                    e.element.tagName.toLowerCase()) return e.element.selected = !0, void this.$element.trigger(
                        'input').trigger('change');
                    if (this.$element.prop('multiple')) this.current(
                        (function (n) {
                            var i = [];
                            (e = [e]).push.apply(e, n);
                            for (var a = 0; a < e.length; a++) {
                                var r = e[a].id;
                                -1 === i.indexOf(r) && i.push(r);
                            }
                            t.$element.val(i), t.$element.trigger('input').
                                trigger('change');
                        })); else {
                        var n = e.id;
                        this.$element.val(n), this.$element.trigger('input').
                            trigger('change');
                    }
                }, i.prototype.unselect = function (e) {
                    var t = this;
                    if (this.$element.prop('multiple')) {
                        if (e.selected = !1, null != e.element && 'option' ===
                        e.element.tagName.toLowerCase()) return e.element.selected = !1, void this.$element.trigger(
                            'input').trigger('change');
                        this.current((function (n) {
                            for (var i = [], a = 0; a < n.length; a++) {
                                var r = n[a].id;
                                r !== e.id && -1 === i.indexOf(r) && i.push(r);
                            }
                            t.$element.val(i), t.$element.trigger('input').
                                trigger('change');
                        }));
                    }
                }, i.prototype.bind = function (e, t) {
                    var n = this;
                    this.container = e, e.on('select',
                        (function (e) {n.select(e.data);})), e.on('unselect',
                        (function (e) {n.unselect(e.data);}));
                }, i.prototype.destroy = function () {
                    this.$element.find('*').
                        each((function () {t.RemoveData(this);}));
                }, i.prototype.query = function (e, t) {
                    var i = [], a = this;
                    this.$element.children().
                        each((function () {
                            if ('option' === this.tagName.toLowerCase() ||
                                'optgroup' === this.tagName.toLowerCase()) {
                                var t = n(this), r = a.item(t),
                                    o = a.matches(e, r);
                                null !== o && i.push(o);
                            }
                        })), t({ results: i });
                }, i.prototype.addOptions = function (e) {
                    this.$element.append(e);
                }, i.prototype.option = function (e) {
                    var i;
                    e.children ? (i = document.createElement(
                        'optgroup')).label = e.text : void 0 !==
                    (i = document.createElement('option')).textContent
                        ? i.textContent = e.text
                        : i.innerText = e.text, void 0 !== e.id &&
                    (i.value = e.id), e.disabled &&
                    (i.disabled = !0), e.selected &&
                    (i.selected = !0), e.title && (i.title = e.title);
                    var a = this._normalizeItem(e);
                    return a.element = i, t.StoreData(i, 'data', a), n(i);
                }, i.prototype.item = function (e) {
                    var i = {};
                    if (null != (i = t.GetData(e[0], 'data'))) return i;
                    var a = e[0];
                    if ('option' === a.tagName.toLowerCase()) i = {
                        id: e.val(),
                        text: e.text(),
                        disabled: e.prop('disabled'),
                        selected: e.prop('selected'),
                        title: e.prop('title'),
                    }; else if ('optgroup' === a.tagName.toLowerCase()) {
                        i = {
                            text: e.prop('label'),
                            children: [],
                            title: e.prop('title'),
                        };
                        for (var r = e.children('option'), o = [], s = 0; s <
                        r.length; s++) {
                            var l = n(r[s]), c = this.item(l);
                            o.push(c);
                        }
                        i.children = o;
                    }
                    return (i = this._normalizeItem(
                        i)).element = e[0], t.StoreData(e[0], 'data', i), i;
                }, i.prototype._normalizeItem = function (e) {
                    e !== Object(e) && (e = { id: e, text: e });
                    return null != (e = n.extend({}, { text: '' }, e)).id &&
                    (e.id = e.id.toString()), null != e.text &&
                    (e.text = e.text.toString()), null == e._resultId && e.id &&
                    null != this.container &&
                    (e._resultId = this.generateResultId(this.container,
                        e)), n.extend({}, { selected: !1, disabled: !1 }, e);
                }, i.prototype.matches = function (
                    e, t) {
                    return this.options.get('matcher')(e, t);
                }, i;
            })), t.define('select2/data/array',
            ['./select', '../utils', 'jquery'], (function (e, t, n) {
                function i (e, t) {
                    this._dataToConvert = t.get('data') ||
                        [], i.__super__.constructor.call(this, e, t);
                }

                return t.Extend(i, e), i.prototype.bind = function (
                    e, t) {
                    i.__super__.bind.call(this, e, t), this.addOptions(
                        this.convertToOptions(this._dataToConvert));
                }, i.prototype.select = function (e) {
                    var t = this.$element.find('option').
                        filter((function (t, n) {
                            return n.value == e.id.toString();
                        }));
                    0 === t.length && (t = this.option(e), this.addOptions(
                        t)), i.__super__.select.call(this, e);
                }, i.prototype.convertToOptions = function (e) {
                    var t = this, i = this.$element.find('option'),
                        a = i.map((function () {return t.item(n(this)).id;})).
                            get(), r = [];

                    function o (e) {
                        return function () {
                            return n(this).val() == e.id;
                        };
                    }

                    for (var s = 0; s < e.length; s++) {
                        var l = this._normalizeItem(e[s]);
                        if (a.indexOf(l.id) >= 0) {
                            var c = i.filter(o(l)), u = this.item(c),
                                d = n.extend(!0, {}, l, u), h = this.option(d);
                            c.replaceWith(h);
                        } else {
                            var f = this.option(l);
                            if (l.children) {
                                var p = this.convertToOptions(l.children);
                                f.append(p);
                            }
                            r.push(f);
                        }
                    }
                    return r;
                }, i;
            })), t.define('select2/data/ajax',
            ['./array', '../utils', 'jquery'], (function (e, t, n) {
                function i (e, t) {
                    this.ajaxOptions = this._applyDefaults(
                        t.get('ajax')), null !=
                    this.ajaxOptions.processResults &&
                    (this.processResults = this.ajaxOptions.processResults), i.__super__.constructor.call(
                        this, e, t);
                }

                return t.Extend(i,
                    e), i.prototype._applyDefaults = function (e) {
                    var t = {
                        data: function (e) {
                            return n.extend({}, e, { q: e.term });
                        }, transport: function (e, t, i) {
                            var a = n.ajax(e);
                            return a.then(t), a.fail(i), a;
                        },
                    };
                    return n.extend({}, t, e, !0);
                }, i.prototype.processResults = function (e) {return e;}, i.prototype.query = function (
                    e, t) {
                    var i = this;
                    null != this._request &&
                    ('function' == typeof this._request.abort &&
                    this._request.abort(), this._request = null);
                    var a = n.extend({ type: 'GET' }, this.ajaxOptions);

                    function r () {
                        var n = a.transport(a, (function (n) {
                            var a = i.processResults(n, e);
                            i.options.get('debug') && window.console &&
                            console.error &&
                            (a && a.results && Array.isArray(a.results) ||
                                console.error(
                                    'Select2: The AJAX results did not return an array in the `results` key of the response.')), t(
                                a);
                        }), (function () {
                            (!('status' in n) || 0 !== n.status && '0' !==
                                n.status) && i.trigger('results:message',
                                { message: 'errorLoading' });
                        }));
                        i._request = n;
                    }

                    'function' == typeof a.url &&
                    (a.url = a.url.call(this.$element, e)), 'function' ==
                    typeof a.data && (a.data = a.data.call(this.$element,
                        e)), this.ajaxOptions.delay && null != e.term
                        ? (this._queryTimeout && window.clearTimeout(
                            this._queryTimeout), this._queryTimeout = window.setTimeout(
                            r, this.ajaxOptions.delay))
                        : r();
                }, i;
            })), t.define('select2/data/tags', ['jquery'], (function (e) {
            function t (e, t, n) {
                var i = n.get('tags'), a = n.get('createTag');
                void 0 !== a && (this.createTag = a);
                var r = n.get('insertTag');
                if (void 0 !== r && (this.insertTag = r), e.call(this, t,
                    n), Array.isArray(i)) for (var o = 0; o < i.length; o++) {
                    var s = i[o], l = this._normalizeItem(s),
                        c = this.option(l);
                    this.$element.append(c);
                }
            }

            return t.prototype.query = function (e, t, n) {
                var i = this;
                this._removeOldTags(), null != t.term && null == t.page
                    ? e.call(this, t, (function e (a, r) {
                        for (var o = a.results, s = 0; s < o.length; s++) {
                            var l = o[s], c = null != l.children &&
                                !e({ results: l.children }, !0);
                            if ((l.text || '').toUpperCase() ===
                                (t.term || '').toUpperCase() || c) return !r &&
                                (a.data = o, void n(a));
                        }
                        if (r) return !0;
                        var u = i.createTag(t);
                        if (null != u) {
                            var d = i.option(u);
                            d.attr('data-select2-tag', 'true'), i.addOptions(
                                [d]), i.insertTag(o, u);
                        }
                        a.results = o, n(a);
                    }))
                    : e.call(this, t, n);
            }, t.prototype.createTag = function (e, t) {
                if (null == t.term) return null;
                var n = t.term.trim();
                return '' === n ? null : { id: n, text: n };
            }, t.prototype.insertTag = function (e, t, n) {
                t.unshift(n);
            }, t.prototype._removeOldTags = function (t) {
                this.$element.find('option[data-select2-tag]').
                    each((function () {this.selected || e(this).remove();}));
            }, t;
        })), t.define('select2/data/tokenizer', ['jquery'], (function (e) {
            function t (e, t, n) {
                var i = n.get('tokenizer');
                void 0 !== i && (this.tokenizer = i), e.call(this, t, n);
            }

            return t.prototype.bind = function (e, t, n) {
                e.call(this, t, n), this.$search = t.dropdown.$search ||
                    t.selection.$search || n.find('.select2-search__field');
            }, t.prototype.query = function (t, n, i) {
                var a = this;
                n.term = n.term || '';
                var r = this.tokenizer(n, this.options, (function (t) {
                    var n = a._normalizeItem(t);
                    if (!a.$element.find('option').
                        filter((function () {
                            return e(this).val() === n.id;
                        })).length) {
                        var i = a.option(n);
                        i.attr('data-select2-tag',
                            !0), a._removeOldTags(), a.addOptions([i]);
                    }
                    !function (e) {a.trigger('select', { data: e });}(n);
                }));
                r.term !== n.term && (this.$search.length &&
                (this.$search.val(r.term), this.$search.trigger(
                    'focus')), n.term = r.term), t.call(this, n, i);
            }, t.prototype.tokenizer = function (
                t, n, i, a) {
                for (var r = i.get('tokenSeparators') ||
                    [], o = n.term, s = 0, l = this.createTag ||
                    function (e) {return { id: e.term, text: e.term };}; s <
                     o.length;) {
                    var c = o[s];
                    if (-1 !== r.indexOf(c)) {
                        var u = o.substr(0, s),
                            d = l(e.extend({}, n, { term: u }));
                        null != d
                            ? (a(d), o = o.substr(s + 1) || '', s = 0)
                            : s++;
                    } else s++;
                }
                return { term: o };
            }, t;
        })), t.define('select2/data/minimumInputLength', [], (function () {
            function e (e, t, n) {
                this.minimumInputLength = n.get('minimumInputLength'), e.call(
                    this, t, n);
            }

            return e.prototype.query = function (e, t, n) {
                t.term = t.term || '', t.term.length < this.minimumInputLength
                    ? this.trigger('results:message', {
                        message: 'inputTooShort',
                        args: {
                            minimum: this.minimumInputLength,
                            input: t.term,
                            params: t,
                        },
                    })
                    : e.call(this, t, n);
            }, e;
        })), t.define('select2/data/maximumInputLength', [], (function () {
            function e (e, t, n) {
                this.maximumInputLength = n.get('maximumInputLength'), e.call(
                    this, t, n);
            }

            return e.prototype.query = function (e, t, n) {
                t.term = t.term || '', this.maximumInputLength > 0 &&
                t.term.length > this.maximumInputLength ? this.trigger(
                    'results:message', {
                        message: 'inputTooLong',
                        args: {
                            maximum: this.maximumInputLength,
                            input: t.term,
                            params: t,
                        },
                    }) : e.call(this, t, n);
            }, e;
        })), t.define('select2/data/maximumSelectionLength', [], (function () {
            function e (e, t, n) {
                this.maximumSelectionLength = n.get(
                    'maximumSelectionLength'), e.call(this, t, n);
            }

            return e.prototype.bind = function (e, t, n) {
                var i = this;
                e.call(this, t, n), t.on('select',
                    (function () {i._checkIfMaximumSelected();}));
            }, e.prototype.query = function (e, t, n) {
                var i = this;
                this._checkIfMaximumSelected((function () {e.call(i, t, n);}));
            }, e.prototype._checkIfMaximumSelected = function (
                e, t) {
                var n = this;
                this.current((function (e) {
                    var i = null != e ? e.length : 0;
                    n.maximumSelectionLength > 0 && i >=
                    n.maximumSelectionLength ? n.trigger('results:message', {
                        message: 'maximumSelected',
                        args: { maximum: n.maximumSelectionLength },
                    }) : t && t();
                }));
            }, e;
        })), t.define('select2/dropdown', ['jquery', './utils'],
            (function (e, t) {
                function n (e, t) {
                    this.$element = e, this.options = t, n.__super__.constructor.call(
                        this);
                }

                return t.Extend(n,
                    t.Observable), n.prototype.render = function () {
                    var t = e(
                        '<span class="select2-dropdown"><span class="select2-results"></span></span>');
                    return t.attr('dir',
                        this.options.get('dir')), this.$dropdown = t, t;
                }, n.prototype.bind = function () {}, n.prototype.position = function (
                    e,
                    t) {}, n.prototype.destroy = function () {this.$dropdown.remove();}, n;
            })), t.define('select2/dropdown/search', ['jquery'], (function (e) {
            function t () {}

            return t.prototype.render = function (t) {
                var n = t.call(this),
                    i = this.options.get('translations').get('search'), a = e(
                    '<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></span>');
                return this.$searchContainer = a, this.$search = a.find(
                    'input'), this.$search.prop('autocomplete',
                    this.options.get('autocomplete')), this.$search.attr(
                    'aria-label', i()), n.prepend(a), n;
            }, t.prototype.bind = function (t, n, i) {
                var a = this, r = n.id + '-results';
                t.call(this, n, i), this.$search.on('keydown', (function (e) {
                    a.trigger('keypress',
                        e), a._keyUpPrevented = e.isDefaultPrevented();
                })), this.$search.on('input',
                    (function (t) {e(this).off('keyup');})), this.$search.on(
                    'keyup input', (function (e) {a.handleSearch(e);})), n.on(
                    'open', (function () {
                        a.$search.attr('tabindex', 0), a.$search.attr(
                            'aria-controls', r), a.$search.trigger(
                            'focus'), window.setTimeout(
                            (function () {a.$search.trigger('focus');}), 0);
                    })), n.on('close', (function () {
                    a.$search.attr('tabindex', -1), a.$search.removeAttr(
                        'aria-controls'), a.$search.removeAttr(
                        'aria-activedescendant'), a.$search.val(
                        ''), a.$search.trigger('blur');
                })), n.on('focus', (function () {
                    n.isOpen() || a.$search.trigger('focus');
                })), n.on('results:all', (function (e) {
                    null != e.query.term && '' !== e.query.term ||
                    (a.showSearch(e)
                        ? a.$searchContainer[0].classList.remove(
                            'select2-search--hide')
                        : a.$searchContainer[0].classList.add(
                            'select2-search--hide'));
                })), n.on('results:focus', (function (e) {
                    e.data._resultId ? a.$search.attr('aria-activedescendant',
                        e.data._resultId) : a.$search.removeAttr(
                        'aria-activedescendant');
                }));
            }, t.prototype.handleSearch = function (e) {
                if (!this._keyUpPrevented) {
                    var t = this.$search.val();
                    this.trigger('query', { term: t });
                }
                this._keyUpPrevented = !1;
            }, t.prototype.showSearch = function (e, t) {return !0;}, t;
        })), t.define('select2/dropdown/hidePlaceholder', [], (function () {
            function e (e, t, n, i) {
                this.placeholder = this.normalizePlaceholder(
                    n.get('placeholder')), e.call(this, t, n, i);
            }

            return e.prototype.append = function (
                e, t) {
                t.results = this.removePlaceholder(t.results), e.call(this, t);
            }, e.prototype.normalizePlaceholder = function (
                e, t) {
                return 'string' == typeof t && (t = { id: '', text: t }), t;
            }, e.prototype.removePlaceholder = function (
                e, t) {
                for (var n = t.slice(0), i = t.length - 1; i >= 0; i--) {
                    var a = t[i];
                    this.placeholder.id === a.id && n.splice(i, 1);
                }
                return n;
            }, e;
        })), t.define('select2/dropdown/infiniteScroll', ['jquery'],
            (function (e) {
                function t (e, t, n, i) {
                    this.lastParams = {}, e.call(this, t, n,
                        i), this.$loadingMore = this.createLoadingMore(), this.loading = !1;
                }

                return t.prototype.append = function (
                    e, t) {
                    this.$loadingMore.remove(), this.loading = !1, e.call(this,
                        t), this.showLoadingMore(t) && (this.$results.append(
                        this.$loadingMore), this.loadMoreIfNeeded());
                }, t.prototype.bind = function (e, t, n) {
                    var i = this;
                    e.call(this, t, n), t.on('query',
                        (function (e) {i.lastParams = e, i.loading = !0;})), t.on(
                        'query:append',
                        (function (e) {i.lastParams = e, i.loading = !0;})), this.$results.on(
                        'scroll', this.loadMoreIfNeeded.bind(this));
                }, t.prototype.loadMoreIfNeeded = function () {
                    var t = e.contains(document.documentElement,
                        this.$loadingMore[0]);
                    !this.loading && t && (this.$results.offset().top +
                        this.$results.outerHeight(!1) + 50 >=
                        this.$loadingMore.offset().top +
                        this.$loadingMore.outerHeight(!1) && this.loadMore());
                }, t.prototype.loadMore = function () {
                    this.loading = !0;
                    var t = e.extend({}, { page: 1 }, this.lastParams);
                    t.page++, this.trigger('query:append', t);
                }, t.prototype.showLoadingMore = function (
                    e, t) {
                    return t.pagination && t.pagination.more;
                }, t.prototype.createLoadingMore = function () {
                    var t = e(
                        '<li class="select2-results__option select2-results__option--load-more"role="option" aria-disabled="true"></li>'),
                        n = this.options.get('translations').get('loadingMore');
                    return t.html(n(this.lastParams)), t;
                }, t;
            })), t.define('select2/dropdown/attachBody', ['jquery', '../utils'],
            (function (e, t) {
                function n (t, n, i) {
                    this.$dropdownParent = e(
                        i.get('dropdownParent') || document.body), t.call(this,
                        n, i);
                }

                return n.prototype.bind = function (e, t, n) {
                    var i = this;
                    e.call(this, t, n), t.on('open', (function () {
                        i._showDropdown(), i._attachPositioningHandler(
                            t), i._bindContainerResultHandlers(t);
                    })), t.on('close', (function () {
                        i._hideDropdown(), i._detachPositioningHandler(t);
                    })), this.$dropdownContainer.on('mousedown',
                        (function (e) {e.stopPropagation();}));
                }, n.prototype.destroy = function (e) {
                    e.call(this), this.$dropdownContainer.remove();
                }, n.prototype.position = function (e, t, n) {
                    t.attr('class', n.attr('class')), t[0].classList.remove(
                        'select2'), t[0].classList.add(
                        'select2-container--open'), t.css({
                        position: 'absolute',
                        top: -999999,
                    }), this.$container = n;
                }, n.prototype.render = function (t) {
                    var n = e('<span></span>'), i = t.call(this);
                    return n.append(i), this.$dropdownContainer = n, n;
                }, n.prototype._hideDropdown = function (e) {this.$dropdownContainer.detach();}, n.prototype._bindContainerResultHandlers = function (
                    e, t) {
                    if (!this._containerResultsHandlersBound) {
                        var n = this;
                        t.on('results:all',
                            (function () {n._positionDropdown(), n._resizeDropdown();})), t.on(
                            'results:append',
                            (function () {n._positionDropdown(), n._resizeDropdown();})), t.on(
                            'results:message',
                            (function () {n._positionDropdown(), n._resizeDropdown();})), t.on(
                            'select',
                            (function () {n._positionDropdown(), n._resizeDropdown();})), t.on(
                            'unselect',
                            (function () {n._positionDropdown(), n._resizeDropdown();})), this._containerResultsHandlersBound = !0;
                    }
                }, n.prototype._attachPositioningHandler = function (
                    n, i) {
                    var a = this, r = 'scroll.select2.' + i.id,
                        o = 'resize.select2.' + i.id,
                        s = 'orientationchange.select2.' + i.id,
                        l = this.$container.parents().filter(t.hasScroll);
                    l.each((function () {
                        t.StoreData(this, 'select2-scroll-position',
                            {
                                x: e(this).scrollLeft(),
                                y: e(this).scrollTop(),
                            });
                    })), l.on(r, (function (n) {
                        var i = t.GetData(this, 'select2-scroll-position');
                        e(this).scrollTop(i.y);
                    })), e(window).
                        on(r + ' ' + o + ' ' + s,
                            (function (e) {a._positionDropdown(), a._resizeDropdown();}));
                }, n.prototype._detachPositioningHandler = function (
                    n, i) {
                    var a = 'scroll.select2.' + i.id,
                        r = 'resize.select2.' + i.id,
                        o = 'orientationchange.select2.' + i.id;
                    this.$container.parents().filter(t.hasScroll).off(a), e(
                        window).off(a + ' ' + r + ' ' + o);
                }, n.prototype._positionDropdown = function () {
                    var t = e(window), n = this.$dropdown[0].classList.contains(
                        'select2-dropdown--above'),
                        i = this.$dropdown[0].classList.contains(
                            'select2-dropdown--below'), a = null,
                        r = this.$container.offset();
                    r.bottom = r.top + this.$container.outerHeight(!1);
                    var o = { height: this.$container.outerHeight(!1) };
                    o.top = r.top, o.bottom = r.top + o.height;
                    var s = this.$dropdown.outerHeight(!1), l = t.scrollTop(),
                        c = t.scrollTop() + t.height(), u = l < r.top - s,
                        d = c > r.bottom + s,
                        h = { left: r.left, top: o.bottom },
                        f = this.$dropdownParent;
                    'static' === f.css('position') && (f = f.offsetParent());
                    var p = { top: 0, left: 0 };
                    (e.contains(document.body, f[0]) || f[0].isConnected) &&
                    (p = f.offset()), h.top -= p.top, h.left -= p.left, n ||
                    i || (a = 'below'), d || !u || n ? !u && d && n &&
                        (a = 'below') : a = 'above', ('above' == a || n &&
                        'below' !== a) && (h.top = o.top - p.top - s), null !=
                    a && (this.$dropdown[0].classList.remove(
                        'select2-dropdown--below'), this.$dropdown[0].classList.remove(
                        'select2-dropdown--above'), this.$dropdown[0].classList.add(
                        'select2-dropdown--' +
                        a), this.$container[0].classList.remove(
                        'select2-container--below'), this.$container[0].classList.remove(
                        'select2-container--above'), this.$container[0].classList.add(
                        'select2-container--' +
                        a)), this.$dropdownContainer.css(h);
                }, n.prototype._resizeDropdown = function () {
                    var e = {
                        width: this.$container.outerWidth(!1) + 'px',
                    };
                    this.options.get('dropdownAutoWidth') &&
                    (e.minWidth = e.width, e.position = 'relative', e.width = 'auto'), this.$dropdown.css(
                        e);
                }, n.prototype._showDropdown = function (e) {
                    this.$dropdownContainer.appendTo(
                        this.$dropdownParent), this._positionDropdown(), this._resizeDropdown();
                }, n;
            })), t.define('select2/dropdown/minimumResultsForSearch', [],
            (function () {
                function e (t) {
                    for (var n = 0, i = 0; i < t.length; i++) {
                        var a = t[i];
                        a.children ? n += e(a.children) : n++;
                    }
                    return n;
                }

                function t (e, t, n, i) {
                    this.minimumResultsForSearch = n.get(
                        'minimumResultsForSearch'), this.minimumResultsForSearch <
                    0 && (this.minimumResultsForSearch = 1 / 0), e.call(this, t,
                        n, i);
                }

                return t.prototype.showSearch = function (t, n) {
                    return !(e(n.data.results) <
                        this.minimumResultsForSearch) && t.call(this, n);
                }, t;
            })), t.define('select2/dropdown/selectOnClose', ['../utils'],
            (function (e) {
                function t () {}

                return t.prototype.bind = function (e, t, n) {
                    var i = this;
                    e.call(this, t, n), t.on('close',
                        (function (e) {i._handleSelectOnClose(e);}));
                }, t.prototype._handleSelectOnClose = function (t, n) {
                    if (n && null != n.originalSelect2Event) {
                        var i = n.originalSelect2Event;
                        if ('select' === i._type || 'unselect' ===
                            i._type) return;
                    }
                    var a = this.getHighlightedResults();
                    if (!(a.length < 1)) {
                        var r = e.GetData(a[0], 'data');
                        null != r.element && r.element.selected || null ==
                        r.element && r.selected ||
                        this.trigger('select', { data: r });
                    }
                }, t;
            })), t.define('select2/dropdown/closeOnSelect', [], (function () {
            function e () {}

            return e.prototype.bind = function (e, t, n) {
                var i = this;
                e.call(this, t, n), t.on('select',
                    (function (e) {i._selectTriggered(e);})), t.on('unselect',
                    (function (e) {i._selectTriggered(e);}));
            }, e.prototype._selectTriggered = function (
                e, t) {
                var n = t.originalEvent;
                n && (n.ctrlKey || n.metaKey) || this.trigger('close',
                    { originalEvent: n, originalSelect2Event: t });
            }, e;
        })), t.define('select2/dropdown/dropdownCss', ['../utils'],
            (function (e) {
                function t () {}

                return t.prototype.render = function (t) {
                    var n = t.call(this),
                        i = this.options.get('dropdownCssClass') || '';
                    return -1 !== i.indexOf(':all:') &&
                    (i = i.replace(':all:', ''), e.copyNonInternalCssClasses(
                        n[0], this.$element[0])), n.addClass(i), n;
                }, t;
            })), t.define('select2/dropdown/tagsSearchHighlight', ['../utils'],
            (function (e) {
                function t () {}

                return t.prototype.highlightFirstItem = function (t) {
                    var n = this.$results.find(
                        '.select2-results__option--selectable:not(.select2-results__option--selected)');
                    if (n.length > 0) {
                        var i = n.first(), a = e.GetData(i[0], 'data').element;
                        if (a && a.getAttribute && 'true' === a.getAttribute(
                            'data-select2-tag')) return void i.trigger(
                            'mouseenter');
                    }
                    t.call(this);
                }, t;
            })), t.define('select2/i18n/en', [], (function () {
            return {
                errorLoading: function () {return 'The results could not be loaded.';},
                inputTooLong: function (e) {
                    var t = e.input.length - e.maximum,
                        n = 'Please delete ' + t + ' character';
                    return 1 != t && (n += 's'), n;
                },
                inputTooShort: function (e) {
                    return 'Please enter ' + (e.minimum - e.input.length) +
                        ' or more characters';
                },
                loadingMore: function () {return 'Loading more results…';},
                maximumSelected: function (e) {
                    var t = 'You can only select ' + e.maximum + ' item';
                    return 1 != e.maximum && (t += 's'), t;
                },
                noResults: function () {return 'No results found';},
                searching: function () {return 'Searching…';},
                removeAllItems: function () {return 'Remove all items';},
                removeItem: function () {return 'Remove item';},
                search: function () {return 'Search';},
            };
        })), t.define('select2/defaults', [
                'jquery',
                './results',
                './selection/single',
                './selection/multiple',
                './selection/placeholder',
                './selection/allowClear',
                './selection/search',
                './selection/selectionCss',
                './selection/eventRelay',
                './utils',
                './translation',
                './diacritics',
                './data/select',
                './data/array',
                './data/ajax',
                './data/tags',
                './data/tokenizer',
                './data/minimumInputLength',
                './data/maximumInputLength',
                './data/maximumSelectionLength',
                './dropdown',
                './dropdown/search',
                './dropdown/hidePlaceholder',
                './dropdown/infiniteScroll',
                './dropdown/attachBody',
                './dropdown/minimumResultsForSearch',
                './dropdown/selectOnClose',
                './dropdown/closeOnSelect',
                './dropdown/dropdownCss',
                './dropdown/tagsSearchHighlight',
                './i18n/en'],
            (function (e, t, n, i, a, r, o, s, l, c, u, d, h, f, p, m, g, v, y,
                       b, x, _, w, k, M, L, S, T, A, D, C) {
                function E () {this.reset();}

                return E.prototype.apply = function (u) {
                    if (null ==
                    (u = e.extend(!0, {}, this.defaults, u)).dataAdapter &&
                    (null != u.ajax ? u.dataAdapter = p : null != u.data
                        ? u.dataAdapter = f
                        : u.dataAdapter = h, u.minimumInputLength > 0 &&
                    (u.dataAdapter = c.Decorate(u.dataAdapter,
                        v)), u.maximumInputLength > 0 &&
                    (u.dataAdapter = c.Decorate(u.dataAdapter,
                        y)), u.maximumSelectionLength > 0 &&
                    (u.dataAdapter = c.Decorate(u.dataAdapter, b)), u.tags &&
                    (u.dataAdapter = c.Decorate(u.dataAdapter, m)), null ==
                    u.tokenSeparators && null == u.tokenizer ||
                    (u.dataAdapter = c.Decorate(u.dataAdapter, g))), null ==
                    u.resultsAdapter && (u.resultsAdapter = t, null != u.ajax &&
                    (u.resultsAdapter = c.Decorate(u.resultsAdapter,
                        k)), null != u.placeholder &&
                    (u.resultsAdapter = c.Decorate(u.resultsAdapter,
                        w)), u.selectOnClose &&
                    (u.resultsAdapter = c.Decorate(u.resultsAdapter,
                        S)), u.tags &&
                    (u.resultsAdapter = c.Decorate(u.resultsAdapter,
                        D))), null == u.dropdownAdapter) {
                        if (u.multiple) u.dropdownAdapter = x; else {
                            var d = c.Decorate(x, _);
                            u.dropdownAdapter = d;
                        }
                        0 !== u.minimumResultsForSearch &&
                        (u.dropdownAdapter = c.Decorate(u.dropdownAdapter,
                            L)), u.closeOnSelect &&
                        (u.dropdownAdapter = c.Decorate(u.dropdownAdapter,
                            T)), null != u.dropdownCssClass &&
                        (u.dropdownAdapter = c.Decorate(u.dropdownAdapter,
                            A)), u.dropdownAdapter = c.Decorate(
                            u.dropdownAdapter, M);
                    }
                    null == u.selectionAdapter && (u.multiple
                        ? u.selectionAdapter = i
                        : u.selectionAdapter = n, null != u.placeholder &&
                    (u.selectionAdapter = c.Decorate(u.selectionAdapter,
                        a)), u.allowClear &&
                    (u.selectionAdapter = c.Decorate(u.selectionAdapter,
                        r)), u.multiple &&
                    (u.selectionAdapter = c.Decorate(u.selectionAdapter,
                        o)), null != u.selectionCssClass &&
                    (u.selectionAdapter = c.Decorate(u.selectionAdapter,
                        s)), u.selectionAdapter = c.Decorate(u.selectionAdapter,
                        l)), u.language = this._resolveLanguage(
                        u.language), u.language.push('en');
                    for (var C = [], E = 0; E < u.language.length; E++) {
                        var O = u.language[E];
                        -1 === C.indexOf(O) && C.push(O);
                    }
                    return u.language = C, u.translations = this._processTranslations(
                        u.language, u.debug), u;
                }, E.prototype.reset = function () {
                    function t (e) {
                        return e.replace(/[^\u0000-\u007E]/g,
                            (function (e) {return d[e] || e;}));
                    }

                    this.defaults = {
                        amdLanguageBase: './i18n/',
                        autocomplete: 'off',
                        closeOnSelect: !0,
                        debug: !1,
                        dropdownAutoWidth: !1,
                        escapeMarkup: c.escapeMarkup,
                        language: {},
                        matcher: function n (i, a) {
                            if (null == i.term || '' ===
                                i.term.trim()) return a;
                            if (a.children && a.children.length > 0) {
                                for (var r = e.extend(!0, {},
                                    a), o = a.children.length - 1; o >=
                                     0; o--) {
                                    null == n(i, a.children[o]) &&
                                    r.children.splice(o, 1);
                                }
                                return r.children.length > 0 ? r : n(i, r);
                            }
                            var s = t(a.text).toUpperCase(),
                                l = t(i.term).toUpperCase();
                            return s.indexOf(l) > -1 ? a : null;
                        },
                        minimumInputLength: 0,
                        maximumInputLength: 0,
                        maximumSelectionLength: 0,
                        minimumResultsForSearch: 0,
                        selectOnClose: !1,
                        scrollAfterSelect: !1,
                        sorter: function (e) {return e;},
                        templateResult: function (e) {return e.text;},
                        templateSelection: function (e) {return e.text;},
                        theme: 'default',
                        width: 'resolve',
                    };
                }, E.prototype.applyFromElement = function (
                    e, t) {
                    var n = e.language, i = this.defaults.language,
                        a = t.prop('lang'),
                        r = t.closest('[lang]').prop('lang'),
                        o = Array.prototype.concat.call(
                            this._resolveLanguage(a), this._resolveLanguage(n),
                            this._resolveLanguage(i), this._resolveLanguage(r));
                    return e.language = o, e;
                }, E.prototype._resolveLanguage = function (t) {
                    if (!t) return [];
                    if (e.isEmptyObject(t)) return [];
                    if (e.isPlainObject(t)) return [t];
                    var n;
                    n = Array.isArray(t) ? t : [t];
                    for (var i = [], a = 0; a < n.length; a++) if (i.push(
                        n[a]), 'string' == typeof n[a] && n[a].indexOf('-') >
                    0) {
                        var r = n[a].split('-')[0];
                        i.push(r);
                    }
                    return i;
                }, E.prototype._processTranslations = function (
                    t, n) {
                    for (var i = new u, a = 0; a < t.length; a++) {
                        var r = new u, o = t[a];
                        if ('string' == typeof o) try {
                            r = u.loadPath(o);
                        } catch (e) {
                            try {
                                o = this.defaults.amdLanguageBase +
                                    o, r = u.loadPath(o);
                            } catch (e) {
                                n && window.console && console.warn &&
                                console.warn(
                                    'Select2: The language file for "' + o +
                                    '" could not be automatically loaded. A fallback will be used instead.');
                            }
                        } else r = e.isPlainObject(o) ? new u(o) : o;
                        i.extend(r);
                    }
                    return i;
                }, E.prototype.set = function (t, n) {
                    var i = {};
                    i[e.camelCase(t)] = n;
                    var a = c._convertData(i);
                    e.extend(!0, this.defaults, a);
                }, new E;
            })), t.define('select2/options',
            ['jquery', './defaults', './utils'], (function (e, t, n) {
                function i (e, n) {
                    this.options = e, null != n && this.fromElement(n), null !=
                    n && (this.options = t.applyFromElement(this.options,
                        n)), this.options = t.apply(this.options);
                }

                return i.prototype.fromElement = function (t) {
                    var i = ['select2'];
                    null == this.options.multiple &&
                    (this.options.multiple = t.prop('multiple')), null ==
                    this.options.disabled &&
                    (this.options.disabled = t.prop('disabled')), null ==
                    this.options.autocomplete && t.prop('autocomplete') &&
                    (this.options.autocomplete = t.prop(
                        'autocomplete')), null == this.options.dir &&
                    (t.prop('dir')
                        ? this.options.dir = t.prop('dir')
                        : t.closest('[dir]').prop('dir')
                            ? this.options.dir = t.closest('[dir]').prop('dir')
                            : this.options.dir = 'ltr'), t.prop('disabled',
                        this.options.disabled), t.prop('multiple',
                        this.options.multiple), n.GetData(t[0],
                        'select2Tags') &&
                    (this.options.debug && window.console && console.warn &&
                    console.warn(
                        'Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'), n.StoreData(
                        t[0], 'data',
                        n.GetData(t[0], 'select2Tags')), n.StoreData(t[0],
                        'tags', !0)), n.GetData(t[0], 'ajaxUrl') &&
                    (this.options.debug && window.console && console.warn &&
                    console.warn(
                        'Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2.'), t.attr(
                        'ajax--url', n.GetData(t[0], 'ajaxUrl')), n.StoreData(
                        t[0], 'ajax-Url', n.GetData(t[0], 'ajaxUrl')));
                    var a = {};

                    function r (e, t) {return t.toUpperCase();}

                    for (var o = 0; o < t[0].attributes.length; o++) {
                        var s = t[0].attributes[o].name, l = 'data-';
                        if (s.substr(0, l.length) == l) {
                            var c = s.substring(l.length),
                                u = n.GetData(t[0], c);
                            a[c.replace(/-([a-z])/g, r)] = u;
                        }
                    }
                    e.fn.jquery && '1.' == e.fn.jquery.substr(0, 2) &&
                    t[0].dataset && (a = e.extend(!0, {}, t[0].dataset, a));
                    var d = e.extend(!0, {}, n.GetData(t[0]), a);
                    for (var h in d = n._convertData(d)) i.indexOf(h) > -1 ||
                    (e.isPlainObject(this.options[h]) ? e.extend(
                        this.options[h], d[h]) : this.options[h] = d[h]);
                    return this;
                }, i.prototype.get = function (e) {return this.options[e];}, i.prototype.set = function (
                    e, t) {this.options[e] = t;}, i;
            })), t.define('select2/core',
            ['jquery', './options', './utils', './keys'],
            (function (e, t, n, i) {
                var a = function (e, i) {
                    null != n.GetData(e[0], 'select2') &&
                    n.GetData(e[0], 'select2').
                        destroy(), this.$element = e, this.id = this._generateId(
                        e), i = i || {}, this.options = new t(i,
                        e), a.__super__.constructor.call(this);
                    var r = e.attr('tabindex') || 0;
                    n.StoreData(e[0], 'old-tabindex', r), e.attr('tabindex',
                        '-1');
                    var o = this.options.get('dataAdapter');
                    this.dataAdapter = new o(e, this.options);
                    var s = this.render();
                    this._placeContainer(s);
                    var l = this.options.get('selectionAdapter');
                    this.selection = new l(e,
                        this.options), this.$selection = this.selection.render(), this.selection.position(
                        this.$selection, s);
                    var c = this.options.get('dropdownAdapter');
                    this.dropdown = new c(e,
                        this.options), this.$dropdown = this.dropdown.render(), this.dropdown.position(
                        this.$dropdown, s);
                    var u = this.options.get('resultsAdapter');
                    this.results = new u(e, this.options,
                        this.dataAdapter), this.$results = this.results.render(), this.results.position(
                        this.$results, this.$dropdown);
                    var d = this;
                    this._bindAdapters(), this._registerDomEvents(), this._registerDataEvents(), this._registerSelectionEvents(), this._registerDropdownEvents(), this._registerResultsEvents(), this._registerEvents(), this.dataAdapter.current(
                        (function (e) {
                            d.trigger('selection:update', { data: e });
                        })), e[0].classList.add(
                        'select2-hidden-accessible'), e.attr('aria-hidden',
                        'true'), this._syncAttributes(), n.StoreData(e[0],
                        'select2', this), e.data('select2', this);
                };
                return n.Extend(a,
                    n.Observable), a.prototype._generateId = function (e) {
                    return 'select2-' +
                        (null != e.attr('id') ? e.attr('id') : null !=
                        e.attr('name')
                            ? e.attr('name') + '-' + n.generateChars(2)
                            : n.generateChars(4)).replace(/(:|\.|\[|\]|,)/g,
                            '');
                }, a.prototype._placeContainer = function (e) {
                    e.insertAfter(this.$element);
                    var t = this._resolveWidth(this.$element,
                        this.options.get('width'));
                    null != t && e.css('width', t);
                }, a.prototype._resolveWidth = function (
                    e, t) {
                    var n = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;
                    if ('resolve' == t) {
                        var i = this._resolveWidth(e, 'style');
                        return null != i ? i : this._resolveWidth(e, 'element');
                    }
                    if ('element' == t) {
                        var a = e.outerWidth(!1);
                        return a <= 0 ? 'auto' : a + 'px';
                    }
                    if ('style' == t) {
                        var r = e.attr('style');
                        if ('string' != typeof r) return null;
                        for (var o = r.split(';'), s = 0, l = o.length; s <
                        l; s += 1) {
                            var c = o[s].replace(/\s/g, '').match(n);
                            if (null !== c && c.length >= 1) return c[1];
                        }
                        return null;
                    }
                    return 'computedstyle' == t ? window.getComputedStyle(
                        e[0]).width : t;
                }, a.prototype._bindAdapters = function () {
                    this.dataAdapter.bind(this,
                        this.$container), this.selection.bind(this,
                        this.$container), this.dropdown.bind(this,
                        this.$container), this.results.bind(this,
                        this.$container);
                }, a.prototype._registerDomEvents = function () {
                    var e = this;
                    this.$element.on('change.select2', (function () {
                        e.dataAdapter.current((function (t) {
                            e.trigger('selection:update', { data: t });
                        }));
                    })), this.$element.on('focus.select2', (function (t) {
                        e.trigger('focus', t);
                    })), this._syncA = n.bind(this._syncAttributes,
                        this), this._syncS = n.bind(this._syncSubtree,
                        this), this._observer = new window.MutationObserver(
                        (function (t) {
                            e._syncA(), e._syncS(t);
                        })), this._observer.observe(this.$element[0],
                        { attributes: !0, childList: !0, subtree: !1 });
                }, a.prototype._registerDataEvents = function () {
                    var e = this;
                    this.dataAdapter.on('*',
                        (function (t, n) {e.trigger(t, n);}));
                }, a.prototype._registerSelectionEvents = function () {
                    var e = this, t = ['toggle', 'focus'];
                    this.selection.on('toggle',
                        (function () {e.toggleDropdown();})), this.selection.on(
                        'focus',
                        (function (t) {e.focus(t);})), this.selection.on('*',
                        (function (n, i) {
                            -1 === t.indexOf(n) && e.trigger(n, i);
                        }));
                }, a.prototype._registerDropdownEvents = function () {
                    var e = this;
                    this.dropdown.on('*', (function (t, n) {e.trigger(t, n);}));
                }, a.prototype._registerResultsEvents = function () {
                    var e = this;
                    this.results.on('*', (function (t, n) {e.trigger(t, n);}));
                }, a.prototype._registerEvents = function () {
                    var e = this;
                    this.on('open', (function () {
                        e.$container[0].classList.add(
                            'select2-container--open');
                    })), this.on('close', (function () {
                        e.$container[0].classList.remove(
                            'select2-container--open');
                    })), this.on('enable', (function () {
                        e.$container[0].classList.remove(
                            'select2-container--disabled');
                    })), this.on('disable', (function () {
                        e.$container[0].classList.add(
                            'select2-container--disabled');
                    })), this.on('blur', (function () {
                        e.$container[0].classList.remove(
                            'select2-container--focus');
                    })), this.on('query', (function (t) {
                        e.isOpen() ||
                        e.trigger('open', {}), this.dataAdapter.query(t,
                            (function (n) {
                                e.trigger('results:all', { data: n, query: t });
                            }));
                    })), this.on('query:append', (function (t) {
                        this.dataAdapter.query(t, (function (n) {
                            e.trigger('results:append', { data: n, query: t });
                        }));
                    })), this.on('keypress', (function (t) {
                        var n = t.which;
                        e.isOpen() ? n === i.ESC || n === i.UP && t.altKey
                            ? (e.close(t), t.preventDefault())
                            : n === i.ENTER || n === i.TAB
                                ? (e.trigger('results:select',
                                    {}), t.preventDefault())
                                : n === i.SPACE && t.ctrlKey
                                    ? (e.trigger('results:toggle',
                                        {}), t.preventDefault())
                                    : n === i.UP ? (e.trigger(
                                        'results:previous',
                                        {}), t.preventDefault()) : n ===
                                        i.DOWN && (e.trigger('results:next',
                                            {}), t.preventDefault()) : (n ===
                            i.ENTER || n === i.SPACE || n === i.DOWN &&
                            t.altKey) && (e.open(), t.preventDefault());
                    }));
                }, a.prototype._syncAttributes = function () {
                    this.options.set('disabled',
                        this.$element.prop('disabled')), this.isDisabled()
                        ? (this.isOpen() && this.close(), this.trigger(
                            'disable', {}))
                        : this.trigger('enable', {});
                }, a.prototype._isChangeMutation = function (e) {
                    var t = this;
                    if (e.addedNodes && e.addedNodes.length >
                        0) for (var n = 0; n <
                    e.addedNodes.length; n++) {if (e.addedNodes[n].selected) return !0;} else {
                        if (e.removedNodes && e.removedNodes.length >
                            0) return !0;
                        if (Array.isArray(e)) return e.some(
                            (function (e) {return t._isChangeMutation(e);}));
                    }
                    return !1;
                }, a.prototype._syncSubtree = function (e) {
                    var t = this._isChangeMutation(e), n = this;
                    t && this.dataAdapter.current((function (e) {
                        n.trigger('selection:update', { data: e });
                    }));
                }, a.prototype.trigger = function (
                    e, t) {
                    var n = a.__super__.trigger, i = {
                        open: 'opening',
                        close: 'closing',
                        select: 'selecting',
                        unselect: 'unselecting',
                        clear: 'clearing',
                    };
                    if (void 0 === t && (t = {}), e in i) {
                        var r = i[e], o = { prevented: !1, name: e, args: t };
                        if (n.call(this, r,
                            o), o.prevented) return void (t.prevented = !0);
                    }
                    n.call(this, e, t);
                }, a.prototype.toggleDropdown = function () {
                    this.isDisabled() ||
                    (this.isOpen() ? this.close() : this.open());
                }, a.prototype.open = function () {
                    this.isOpen() || this.isDisabled() ||
                    this.trigger('query', {});
                }, a.prototype.close = function (e) {
                    this.isOpen() &&
                    this.trigger('close', { originalEvent: e });
                }, a.prototype.isEnabled = function () {return !this.isDisabled();}, a.prototype.isDisabled = function () {
                    return this.options.get('disabled');
                }, a.prototype.isOpen = function () {
                    return this.$container[0].classList.contains(
                        'select2-container--open');
                }, a.prototype.hasFocus = function () {
                    return this.$container[0].classList.contains(
                        'select2-container--focus');
                }, a.prototype.focus = function (e) {
                    this.hasFocus() || (this.$container[0].classList.add(
                        'select2-container--focus'), this.trigger('focus', {}));
                }, a.prototype.enable = function (e) {
                    this.options.get('debug') && window.console &&
                    console.warn && console.warn(
                        'Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'), null !=
                    e && 0 !== e.length || (e = [!0]);
                    var t = !e[0];
                    this.$element.prop('disabled', t);
                }, a.prototype.data = function () {
                    this.options.get('debug') && arguments.length > 0 &&
                    window.console && console.warn && console.warn(
                        'Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');
                    var e = [];
                    return this.dataAdapter.current((function (t) {e = t;})), e;
                }, a.prototype.val = function (e) {
                    if (this.options.get('debug') && window.console &&
                    console.warn && console.warn(
                        'Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'), null ==
                    e || 0 === e.length) return this.$element.val();
                    var t = e[0];
                    Array.isArray(t) && (t = t.map(
                        (function (e) {return e.toString();}))), this.$element.val(
                        t).trigger('input').trigger('change');
                }, a.prototype.destroy = function () {
                    n.RemoveData(
                        this.$container[0]), this.$container.remove(), this._observer.disconnect(), this._observer = null, this._syncA = null, this._syncS = null, this.$element.off(
                        '.select2'), this.$element.attr('tabindex',
                        n.GetData(this.$element[0],
                            'old-tabindex')), this.$element[0].classList.remove(
                        'select2-hidden-accessible'), this.$element.attr(
                        'aria-hidden', 'false'), n.RemoveData(
                        this.$element[0]), this.$element.removeData(
                        'select2'), this.dataAdapter.destroy(), this.selection.destroy(), this.dropdown.destroy(), this.results.destroy(), this.dataAdapter = null, this.selection = null, this.dropdown = null, this.results = null;
                }, a.prototype.render = function () {
                    var t = e(
                        '<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');
                    return t.attr('dir', this.options.get(
                        'dir')), this.$container = t, this.$container[0].classList.add(
                        'select2-container--' +
                        this.options.get('theme')), n.StoreData(t[0], 'element',
                        this.$element), t;
                }, a;
            })), t.define('select2/dropdown/attachContainer', [], (function () {
            function e (e, t, n) {e.call(this, t, n);}

            return e.prototype.position = function (e, t, n) {
                n.find('.dropdown-wrapper').append(t), t[0].classList.add(
                    'select2-dropdown--below'), n[0].classList.add(
                    'select2-container--below');
            }, e;
        })), t.define('select2/dropdown/stopPropagation', [], (function () {
            function e () {}

            return e.prototype.bind = function (e, t, n) {
                e.call(this, t, n);
                this.$dropdown.on([
                        'blur',
                        'change',
                        'click',
                        'dblclick',
                        'focus',
                        'focusin',
                        'focusout',
                        'input',
                        'keydown',
                        'keyup',
                        'keypress',
                        'mousedown',
                        'mouseenter',
                        'mouseleave',
                        'mousemove',
                        'mouseover',
                        'mouseup',
                        'search',
                        'touchend',
                        'touchstart'].join(' '),
                    (function (e) {e.stopPropagation();}));
            }, e;
        })), t.define('select2/selection/stopPropagation', [], (function () {
            function e () {}

            return e.prototype.bind = function (e, t, n) {
                e.call(this, t, n);
                this.$selection.on([
                        'blur',
                        'change',
                        'click',
                        'dblclick',
                        'focus',
                        'focusin',
                        'focusout',
                        'input',
                        'keydown',
                        'keyup',
                        'keypress',
                        'mousedown',
                        'mouseenter',
                        'mouseleave',
                        'mousemove',
                        'mouseover',
                        'mouseup',
                        'search',
                        'touchend',
                        'touchstart'].join(' '),
                    (function (e) {e.stopPropagation();}));
            }, e;
        })),
            /*!
 * jQuery Mousewheel 3.1.13
 *
 * Copyright jQuery Foundation and other contributors
 * Released under the MIT license
 * http://jquery.org/license
 */
            n = function (e) {
                var t, n, i = [
                        'wheel',
                        'mousewheel',
                        'DOMMouseScroll',
                        'MozMousePixelScroll'],
                    a = 'onwheel' in document || document.documentMode >= 9
                        ? ['wheel']
                        : [
                            'mousewheel',
                            'DomMouseScroll',
                            'MozMousePixelScroll'], r = Array.prototype.slice;
                if (e.event.fixHooks) for (var o = i.length; o;) e.event.fixHooks[i[--o]] = e.event.mouseHooks;
                var s = e.event.special.mousewheel = {
                    version: '3.1.12',
                    setup: function () {
                        if (this.addEventListener) for (var t = a.length; t;) this.addEventListener(
                            a[--t], l, !1); else this.onmousewheel = l;
                        e.data(this, 'mousewheel-line-height',
                            s.getLineHeight(this)), e.data(this,
                            'mousewheel-page-height', s.getPageHeight(this));
                    },
                    teardown: function () {
                        if (this.removeEventListener) for (var t = a.length; t;) this.removeEventListener(
                            a[--t], l, !1); else this.onmousewheel = null;
                        e.removeData(this,
                            'mousewheel-line-height'), e.removeData(this,
                            'mousewheel-page-height');
                    },
                    getLineHeight: function (t) {
                        var n = e(t), i = n['offsetParent' in e.fn
                            ? 'offsetParent'
                            : 'parent']();
                        return i.length || (i = e('body')), parseInt(
                            i.css('fontSize'), 10) ||
                        parseInt(n.css('fontSize'), 10) || 16;
                    },
                    getPageHeight: function (t) {return e(t).height();},
                    settings: { adjustOldDeltas: !0, normalizeOffset: !0 },
                };

                function l (i) {
                    var a = i || window.event, o = r.call(arguments, 1), l = 0,
                        d = 0, h = 0, f = 0, p = 0, m = 0;
                    if ((i = e.event.fix(a)).type = 'mousewheel', 'detail' in
                    a && (h = -1 * a.detail), 'wheelDelta' in a &&
                    (h = a.wheelDelta), 'wheelDeltaY' in a &&
                    (h = a.wheelDeltaY), 'wheelDeltaX' in a &&
                    (d = -1 * a.wheelDeltaX), 'axis' in a && a.axis ===
                    a.HORIZONTAL_AXIS && (d = -1 * h, h = 0), l = 0 === h
                        ? d
                        : h, 'deltaY' in a &&
                    (l = h = -1 * a.deltaY), 'deltaX' in a &&
                    (d = a.deltaX, 0 === h && (l = -1 * d)), 0 !== h || 0 !==
                    d) {
                        if (1 === a.deltaMode) {
                            var g = e.data(this, 'mousewheel-line-height');
                            l *= g, h *= g, d *= g;
                        } else if (2 === a.deltaMode) {
                            var v = e.data(this, 'mousewheel-page-height');
                            l *= v, h *= v, d *= v;
                        }
                        if (f = Math.max(Math.abs(h), Math.abs(d)), (!n || f <
                            n) && (n = f, u(a, f) && (n /= 40)), u(a, f) &&
                        (l /= 40, d /= 40, h /= 40), l = Math[l >= 1
                            ? 'floor'
                            : 'ceil'](l / n), d = Math[d >= 1
                            ? 'floor'
                            : 'ceil'](d / n), h = Math[h >= 1
                            ? 'floor'
                            : 'ceil'](h / n), s.settings.normalizeOffset &&
                        this.getBoundingClientRect) {
                            var y = this.getBoundingClientRect();
                            p = i.clientX - y.left, m = i.clientY - y.top;
                        }
                        return i.deltaX = d, i.deltaY = h, i.deltaFactor = n, i.offsetX = p, i.offsetY = m, i.deltaMode = 0, o.unshift(
                            i, l, d, h), t && clearTimeout(t), t = setTimeout(c,
                            200), (e.event.dispatch || e.event.handle).apply(
                            this, o);
                    }
                }

                function c () {n = null;}

                function u (e, t) {
                    return s.settings.adjustOldDeltas && 'mousewheel' ===
                        e.type && t % 120 == 0;
                }

                e.fn.extend({
                    mousewheel: function (e) {
                        return e ? this.bind('mousewheel', e) : this.trigger(
                            'mousewheel');
                    },
                    unmousewheel: function (e) {
                        return this.unbind('mousewheel', e);
                    },
                });
            }, 'function' == typeof t.define && t.define.amd ? t.define(
            'jquery-mousewheel', ['jquery'], n) : 'object' == typeof exports
            ? module.exports = n
            : n(e), t.define('jquery.select2', [
            'jquery',
            'jquery-mousewheel',
            './select2/core',
            './select2/defaults',
            './select2/utils'], (function (e, t, n, i, a) {
            if (null == e.fn.select2) {
                var r = ['open', 'close', 'destroy'];
                e.fn.select2 = function (t) {
                    if ('object' == typeof (t = t || {})) return this.each(
                        (function () {
                            var i = e.extend(!0, {}, t);
                            new n(e(this), i);
                        })), this;
                    if ('string' == typeof t) {
                        var i, o = Array.prototype.slice.call(arguments, 1);
                        return this.each((function () {
                            var e = a.GetData(this, 'select2');
                            null == e && window.console && console.error &&
                            console.error('The select2(\'' + t +
                                '\') method was called on an element that is not using Select2.'), i = e[t].apply(
                                e, o);
                        })), r.indexOf(t) > -1 ? this : i;
                    }
                    throw new Error('Invalid arguments for Select2: ' + t);
                };
            }
            return null == e.fn.select2.defaults &&
            (e.fn.select2.defaults = i), n;
        })), { define: t.define, require: t.require };
    }(), n = t.require('jquery.select2');
    return e.fn.select2.amd = t, n;
})), $.fn.select2.defaults.set('theme',
    'bootstrap5'), $.fn.select2.defaults.set('width',
    '100%'), $.fn.select2.defaults.set('selectionCssClass', ':all:'),
    /* flatpickr v4.6.9, @license MIT */
    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).flatpickr = t();
    }(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 e = function () {
            return (e = Object.assign || function (e) {
                for (var t, n = 1, i = arguments.length; n <
                i; n++) for (var a in t = arguments[n]) Object.prototype.hasOwnProperty.call(
                    t, a) && (e[a] = t[a]);
                return e;
            }).apply(this, arguments);
        };

        function t () {
            for (var e = 0, t = 0, n = arguments.length; t <
            n; t++) e += arguments[t].length;
            var i = Array(e), a = 0;
            for (t = 0; t <
            n; t++) for (var r = arguments[t], o = 0, s = r.length; o <
            s; o++, a++) i[a] = r[o];
            return i;
        }

        var n = [
            'onChange',
            'onClose',
            'onDayCreate',
            'onDestroy',
            'onKeyDown',
            'onMonthChange',
            'onOpen',
            'onParseConfig',
            'onReady',
            'onValueUpdate',
            'onYearChange',
            'onPreCalendarPosition'], i = {
            _disable: [],
            allowInput: !1,
            allowInvalidPreload: !1,
            altFormat: 'F j, Y',
            altInput: !1,
            altInputClass: 'form-control input',
            animate: 'object' == typeof window && -1 ===
                window.navigator.userAgent.indexOf('MSIE'),
            ariaDateFormat: 'F j, Y',
            autoFillDefaultTime: !0,
            clickOpens: !0,
            closeOnSelect: !0,
            conjunction: ', ',
            dateFormat: 'Y-m-d',
            defaultHour: 12,
            defaultMinute: 0,
            defaultSeconds: 0,
            disable: [],
            disableMobile: !1,
            enableSeconds: !1,
            enableTime: !1,
            errorHandler: function (e) {
                return 'undefined' != typeof console && console.warn(e);
            },
            getWeek: function (e) {
                var t = new Date(e.getTime());
                t.setHours(0, 0, 0, 0), t.setDate(
                    t.getDate() + 3 - (t.getDay() + 6) % 7);
                var n = new Date(t.getFullYear(), 0, 4);
                return 1 + Math.round(((t.getTime() - n.getTime()) / 864e5 - 3 +
                    (n.getDay() + 6) % 7) / 7);
            },
            hourIncrement: 1,
            ignoredFocusElements: [],
            inline: !1,
            locale: 'default',
            minuteIncrement: 5,
            mode: 'single',
            monthSelectorType: 'dropdown',
            nextArrow: '<svg version=\'1.1\' xmlns=\'http://www.w3.org/2000/svg\' xmlns:xlink=\'http://www.w3.org/1999/xlink\' viewBox=\'0 0 17 17\'><g></g><path d=\'M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z\' /></svg>',
            noCalendar: !1,
            now: new Date,
            onChange: [],
            onClose: [],
            onDayCreate: [],
            onDestroy: [],
            onKeyDown: [],
            onMonthChange: [],
            onOpen: [],
            onParseConfig: [],
            onReady: [],
            onValueUpdate: [],
            onYearChange: [],
            onPreCalendarPosition: [],
            plugins: [],
            position: 'auto',
            positionElement: void 0,
            prevArrow: '<svg version=\'1.1\' xmlns=\'http://www.w3.org/2000/svg\' xmlns:xlink=\'http://www.w3.org/1999/xlink\' viewBox=\'0 0 17 17\'><g></g><path d=\'M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z\' /></svg>',
            shorthandCurrentMonth: !1,
            showMonths: 1,
            static: !1,
            time_24hr: !1,
            weekNumbers: !1,
            wrap: !1,
        }, a = {
            weekdays: {
                shorthand: [
                    'Sun',
                    'Mon',
                    'Tue',
                    'Wed',
                    'Thu',
                    'Fri',
                    'Sat'],
                longhand: [
                    'Sunday',
                    'Monday',
                    'Tuesday',
                    'Wednesday',
                    'Thursday',
                    'Friday',
                    'Saturday'],
            },
            months: {
                shorthand: [
                    'Jan',
                    'Feb',
                    'Mar',
                    'Apr',
                    'May',
                    'Jun',
                    'Jul',
                    'Aug',
                    'Sep',
                    'Oct',
                    'Nov',
                    'Dec'],
                longhand: [
                    'January',
                    'February',
                    'March',
                    'April',
                    'May',
                    'June',
                    'July',
                    'August',
                    'September',
                    'October',
                    'November',
                    'December'],
            },
            daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
            firstDayOfWeek: 0,
            ordinal: function (e) {
                var t = e % 100;
                if (t > 3 && t < 21) return 'th';
                switch (t % 10) {
                    case 1:
                        return 'st';
                    case 2:
                        return 'nd';
                    case 3:
                        return 'rd';
                    default:
                        return 'th';
                }
            },
            rangeSeparator: ' to ',
            weekAbbreviation: 'Wk',
            scrollTitle: 'Scroll to increment',
            toggleTitle: 'Click to toggle',
            amPM: ['AM', 'PM'],
            yearAriaLabel: 'Year',
            monthAriaLabel: 'Month',
            hourAriaLabel: 'Hour',
            minuteAriaLabel: 'Minute',
            time_24hr: !1,
        }, r = function (e, t) {
            return void 0 === t && (t = 2), ('000' + e).slice(-1 * t);
        }, o = function (e) {return !0 === e ? 1 : 0;};

        function s (e, t) {
            var n;
            return function () {
                var i = this;
                clearTimeout(n), n = setTimeout(
                    (function () {return e.apply(i, arguments);}), t);
            };
        }

        var l = function (e) {return e instanceof Array ? e : [e];};

        function c (e, t, n) {
            if (!0 === n) return e.classList.add(t);
            e.classList.remove(t);
        }

        function u (e, t, n) {
            var i = window.document.createElement(e);
            return t = t || '', n = n || '', i.className = t, void 0 !== n &&
            (i.textContent = n), i;
        }

        function d (e) {for (; e.firstChild;) e.removeChild(e.firstChild);}

        function h (e, t) {
            return t(e) ? e : e.parentNode
                ? h(e.parentNode, t)
                : void 0;
        }

        function f (e, t) {
            var n = u('div', 'numInputWrapper'),
                i = u('input', 'numInput ' + e), a = u('span', 'arrowUp'),
                r = u('span', 'arrowDown');
            if (-1 === navigator.userAgent.indexOf('MSIE 9.0')
                ? i.type = 'number'
                : (i.type = 'text', i.pattern = '\\d*'), void 0 !==
            t) for (var o in t) i.setAttribute(o, t[o]);
            return n.appendChild(i), n.appendChild(a), n.appendChild(r), n;
        }

        function p (e) {
            try {
                return 'function' == typeof e.composedPath
                    ? e.composedPath()[0]
                    : e.target;
            } catch (t) {return e.target;}
        }

        var m = function () {}, g = function (e, t, n) {
            return n.months[t
                ? 'shorthand'
                : 'longhand'][e];
        }, v = {
            D: m,
            F: function (e, t, n) {e.setMonth(n.months.longhand.indexOf(t));},
            G: function (e, t) {e.setHours(parseFloat(t));},
            H: function (e, t) {e.setHours(parseFloat(t));},
            J: function (e, t) {e.setDate(parseFloat(t));},
            K: function (e, t, n) {
                e.setHours(e.getHours() % 12 + 12 *
                    o(new RegExp(n.amPM[1], 'i').test(t)));
            },
            M: function (e, t, n) {e.setMonth(n.months.shorthand.indexOf(t));},
            S: function (e, t) {e.setSeconds(parseFloat(t));},
            U: function (e, t) {return new Date(1e3 * parseFloat(t));},
            W: function (e, t, n) {
                var i = parseInt(t),
                    a = new Date(e.getFullYear(), 0, 2 + 7 * (i - 1), 0, 0, 0,
                        0);
                return a.setDate(
                    a.getDate() - a.getDay() + n.firstDayOfWeek), a;
            },
            Y: function (e, t) {e.setFullYear(parseFloat(t));},
            Z: function (e, t) {return new Date(t);},
            d: function (e, t) {e.setDate(parseFloat(t));},
            h: function (e, t) {e.setHours(parseFloat(t));},
            i: function (e, t) {e.setMinutes(parseFloat(t));},
            j: function (e, t) {e.setDate(parseFloat(t));},
            l: m,
            m: function (e, t) {e.setMonth(parseFloat(t) - 1);},
            n: function (e, t) {e.setMonth(parseFloat(t) - 1);},
            s: function (e, t) {e.setSeconds(parseFloat(t));},
            u: function (e, t) {return new Date(parseFloat(t));},
            w: m,
            y: function (e, t) {e.setFullYear(2e3 + parseFloat(t));},
        }, y = {
            D: '(\\w+)',
            F: '(\\w+)',
            G: '(\\d\\d|\\d)',
            H: '(\\d\\d|\\d)',
            J: '(\\d\\d|\\d)\\w+',
            K: '',
            M: '(\\w+)',
            S: '(\\d\\d|\\d)',
            U: '(.+)',
            W: '(\\d\\d|\\d)',
            Y: '(\\d{4})',
            Z: '(.+)',
            d: '(\\d\\d|\\d)',
            h: '(\\d\\d|\\d)',
            i: '(\\d\\d|\\d)',
            j: '(\\d\\d|\\d)',
            l: '(\\w+)',
            m: '(\\d\\d|\\d)',
            n: '(\\d\\d|\\d)',
            s: '(\\d\\d|\\d)',
            u: '(.+)',
            w: '(\\d\\d|\\d)',
            y: '(\\d{2})',
        }, b = {
            Z: function (e) {return e.toISOString();},
            D: function (e, t, n) {return t.weekdays.shorthand[b.w(e, t, n)];},
            F: function (e, t, n) {return g(b.n(e, t, n) - 1, !1, t);},
            G: function (e, t, n) {return r(b.h(e, t, n));},
            H: function (e) {return r(e.getHours());},
            J: function (e, t) {
                return void 0 !== t.ordinal ? e.getDate() +
                    t.ordinal(e.getDate()) : e.getDate();
            },
            K: function (e, t) {return t.amPM[o(e.getHours() > 11)];},
            M: function (e, t) {return g(e.getMonth(), !0, t);},
            S: function (e) {return r(e.getSeconds());},
            U: function (e) {return e.getTime() / 1e3;},
            W: function (e, t, n) {return n.getWeek(e);},
            Y: function (e) {return r(e.getFullYear(), 4);},
            d: function (e) {return r(e.getDate());},
            h: function (e) {
                return e.getHours() % 12
                    ? e.getHours() % 12
                    : 12;
            },
            i: function (e) {return r(e.getMinutes());},
            j: function (e) {return e.getDate();},
            l: function (e, t) {return t.weekdays.longhand[e.getDay()];},
            m: function (e) {return r(e.getMonth() + 1);},
            n: function (e) {return e.getMonth() + 1;},
            s: function (e) {return e.getSeconds();},
            u: function (e) {return e.getTime();},
            w: function (e) {return e.getDay();},
            y: function (e) {return String(e.getFullYear()).substring(2);},
        }, x = function (e) {
            var t = e.config, n = void 0 === t ? i : t, r = e.l10n,
                o = void 0 === r ? a : r, s = e.isMobile, l = void 0 !== s && s;
            return function (e, t, i) {
                var a = i || o;
                return void 0 === n.formatDate || l ? t.split('').
                    map((function (t, i, r) {
                        return b[t] && '\\' !== r[i - 1]
                            ? b[t](e, a, n)
                            : '\\' !== t ? t : '';
                    })).
                    join('') : n.formatDate(e, t, a);
            };
        }, _ = function (e) {
            var t = e.config, n = void 0 === t ? i : t, r = e.l10n,
                o = void 0 === r ? a : r;
            return function (e, t, a, r) {
                if (0 === e || e) {
                    var s, l = r || o, c = e;
                    if (e instanceof Date) s = new Date(
                        e.getTime()); else if ('string' != typeof e &&
                        void 0 !== e.toFixed) s = new Date(
                        e); else if ('string' == typeof e) {
                        var u = t || (n || i).dateFormat, d = String(e).trim();
                        if ('today' ===
                            d) s = new Date, a = !0; else if (/Z$/.test(d) ||
                            /GMT$/.test(d)) s = new Date(e); else if (n &&
                            n.parseDate) s = n.parseDate(e, u); else {
                            s = n && n.noCalendar
                                ? new Date((new Date).setHours(0, 0, 0, 0))
                                : new Date((new Date).getFullYear(), 0, 1, 0, 0,
                                    0, 0);
                            for (var h = void 0, f = [], p = 0, m = 0, g = ''; p <
                            u.length; p++) {
                                var b = u[p], x = '\\' === b,
                                    _ = '\\' === u[p - 1] || x;
                                if (y[b] && !_) {
                                    g += y[b];
                                    var w = new RegExp(g).exec(e);
                                    w && (h = !0) &&
                                    f['Y' !== b ? 'push' : 'unshift'](
                                        { fn: v[b], val: w[++m] });
                                } else x || (g += '.');
                                f.forEach((function (e) {
                                    var t = e.fn, n = e.val;
                                    return s = t(s, n, l) || s;
                                }));
                            }
                            s = h ? s : void 0;
                        }
                    }
                    if (s instanceof Date && !isNaN(s.getTime())) return !0 ===
                    a && s.setHours(0, 0, 0, 0), s;
                    n.errorHandler(new Error('Invalid date provided: ' + c));
                }
            };
        };

        function w (e, t, n) {
            return void 0 === n && (n = !0), !1 !== n
                ? new Date(e.getTime()).setHours(0, 0, 0, 0) -
                new Date(t.getTime()).setHours(0, 0, 0, 0)
                : e.getTime() - t.getTime();
        }

        var k = 864e5;

        function M (e) {
            var t = e.defaultHour, n = e.defaultMinute, i = e.defaultSeconds;
            if (void 0 !== e.minDate) {
                var a = e.minDate.getHours(), r = e.minDate.getMinutes(),
                    o = e.minDate.getSeconds();
                t < a && (t = a), t === a && n < r && (n = r), t === a && n ===
                r && i < o && (i = e.minDate.getSeconds());
            }
            if (void 0 !== e.maxDate) {
                var s = e.maxDate.getHours(), l = e.maxDate.getMinutes();
                (t = Math.min(t, s)) === s && (n = Math.min(l, n)), t === s &&
                n === l && (i = e.maxDate.getSeconds());
            }
            return { hours: t, minutes: n, seconds: i };
        }

        'function' != typeof Object.assign && (Object.assign = function (e) {
            for (var t = [], n = 1; n < arguments.length; n++) t[n -
            1] = arguments[n];
            if (!e) throw TypeError(
                'Cannot convert undefined or null to object');
            for (var i = function (t) {
                t &&
                Object.keys(t).forEach((function (n) {return e[n] = t[n];}));
            }, a = 0, r = t; a < r.length; a++) {
                var o = r[a];
                i(o);
            }
            return e;
        });

        function L (m, v) {
            var b = { config: e(e({}, i), T.defaultConfig), l10n: a };

            function L (e) {return e.bind(b);}

            function S () {
                var e = b.config;
                !1 === e.weekNumbers && 1 === e.showMonths || !0 !==
                e.noCalendar && window.requestAnimationFrame((function () {
                    if (void 0 !== b.calendarContainer &&
                    (b.calendarContainer.style.visibility = 'hidden', b.calendarContainer.style.display = 'block'), void 0 !==
                    b.daysContainer) {
                        var t = (b.days.offsetWidth + 1) * e.showMonths;
                        b.daysContainer.style.width = t +
                            'px', b.calendarContainer.style.width = t +
                            (void 0 !== b.weekWrapper
                                ? b.weekWrapper.offsetWidth
                                : 0) +
                            'px', b.calendarContainer.style.removeProperty(
                            'visibility'), b.calendarContainer.style.removeProperty(
                            'display');
                    }
                }));
            }

            function A (e) {
                if (0 === b.selectedDates.length) {
                    var t = void 0 === b.config.minDate ||
                    w(new Date, b.config.minDate) >= 0
                        ? new Date
                        : new Date(b.config.minDate.getTime()), n = M(b.config);
                    t.setHours(n.hours, n.minutes, n.seconds,
                        t.getMilliseconds()), b.selectedDates = [t], b.latestSelectedDateObj = t;
                }
                void 0 !== e && 'blur' !== e.type && function (e) {
                    e.preventDefault();
                    var t = 'keydown' === e.type, n = p(e), i = n;
                    void 0 !== b.amPM && n === b.amPM &&
                    (b.amPM.textContent = b.l10n.amPM[o(
                        b.amPM.textContent === b.l10n.amPM[0])]);
                    var a = parseFloat(i.getAttribute('min')),
                        s = parseFloat(i.getAttribute('max')),
                        l = parseFloat(i.getAttribute('step')),
                        c = parseInt(i.value, 10),
                        u = e.delta || (t ? 38 === e.which ? 1 : -1 : 0),
                        d = c + l * u;
                    if (void 0 !== i.value && 2 === i.value.length) {
                        var h = i === b.hourElement, f = i === b.minuteElement;
                        d < a ? (d = s + d + o(!h) + (o(h) && o(!b.amPM)), f &&
                        N(void 0, -1, b.hourElement)) : d > s &&
                            (d = i === b.hourElement
                                ? d - s - o(!b.amPM)
                                : a, f &&
                            N(void 0, 1, b.hourElement)), b.amPM && h &&
                        (1 === l ? d + c === 23 : Math.abs(d - c) > l) &&
                        (b.amPM.textContent = b.l10n.amPM[o(
                            b.amPM.textContent ===
                            b.l10n.amPM[0])]), i.value = r(d);
                    }
                }(e);
                var i = b._input.value;
                D(), xe(), b._input.value !== i && b._debouncedChange();
            }

            function D () {
                if (void 0 !== b.hourElement && void 0 !== b.minuteElement) {
                    var e, t,
                        n = (parseInt(b.hourElement.value.slice(-2), 10) || 0) %
                            24,
                        i = (parseInt(b.minuteElement.value, 10) || 0) % 60,
                        a = void 0 !== b.secondElement ? (parseInt(
                            b.secondElement.value, 10) || 0) % 60 : 0;
                    void 0 !== b.amPM &&
                    (e = n, t = b.amPM.textContent, n = e % 12 + 12 *
                        o(t === b.l10n.amPM[1]));
                    var r = void 0 !== b.config.minTime || b.config.minDate &&
                        b.minDateHasTime && b.latestSelectedDateObj && 0 ===
                        w(b.latestSelectedDateObj, b.config.minDate, !0);
                    if (void 0 !== b.config.maxTime || b.config.maxDate &&
                        b.maxDateHasTime && b.latestSelectedDateObj && 0 ===
                        w(b.latestSelectedDateObj, b.config.maxDate, !0)) {
                        var s = void 0 !== b.config.maxTime
                            ? b.config.maxTime
                            : b.config.maxDate;
                        (n = Math.min(n, s.getHours())) === s.getHours() &&
                        (i = Math.min(i, s.getMinutes())), i ===
                        s.getMinutes() && (a = Math.min(a, s.getSeconds()));
                    }
                    if (r) {
                        var l = void 0 !== b.config.minTime
                            ? b.config.minTime
                            : b.config.minDate;
                        (n = Math.max(n, l.getHours())) === l.getHours() && i <
                        l.getMinutes() && (i = l.getMinutes()), i ===
                        l.getMinutes() && (a = Math.max(a, l.getSeconds()));
                    }
                    E(n, i, a);
                }
            }

            function C (e) {
                var t = e || b.latestSelectedDateObj;
                t && E(t.getHours(), t.getMinutes(), t.getSeconds());
            }

            function E (e, t, n) {
                void 0 !== b.latestSelectedDateObj &&
                b.latestSelectedDateObj.setHours(e % 24, t, n || 0,
                    0), b.hourElement && b.minuteElement && !b.isMobile &&
                (b.hourElement.value = r(
                    b.config.time_24hr ? e : (12 + e) % 12 + 12 *
                        o(e % 12 == 0)), b.minuteElement.value = r(
                    t), void 0 !== b.amPM &&
                (b.amPM.textContent = b.l10n.amPM[o(e >= 12)]), void 0 !==
                b.secondElement && (b.secondElement.value = r(n)));
            }

            function O (e) {
                var t = p(e), n = parseInt(t.value) + (e.delta || 0);
                (n / 1e3 > 1 || 'Enter' === e.key &&
                    !/[^\d]/.test(n.toString())) && J(n);
            }

            function Y (e, t, n, i) {
                return t instanceof Array ? t.forEach(
                    (function (t) {return Y(e, t, n, i);})) : e instanceof Array
                    ? e.forEach((function (e) {return Y(e, t, n, i);}))
                    : (e.addEventListener(t, n, i), void b._handlers.push({
                        remove: function () {
                            return e.removeEventListener(t, n);
                        },
                    }));
            }

            function P () {me('onChange');}

            function I (e, t) {
                var n = void 0 !== e
                    ? b.parseDate(e)
                    : b.latestSelectedDateObj ||
                    (b.config.minDate && b.config.minDate > b.now
                        ? b.config.minDate
                        : b.config.maxDate && b.config.maxDate < b.now
                            ? b.config.maxDate
                            : b.now), i = b.currentYear, a = b.currentMonth;
                try {
                    void 0 !== n &&
                    (b.currentYear = n.getFullYear(), b.currentMonth = n.getMonth());
                } catch (e) {
                    e.message = 'Invalid date supplied: ' +
                        n, b.config.errorHandler(e);
                }
                t && b.currentYear !== i && (me('onYearChange'), V()), !t ||
                b.currentYear === i && b.currentMonth === a ||
                me('onMonthChange'), b.redraw();
            }

            function j (e) {
                var t = p(e);
                ~t.className.indexOf('arrow') &&
                N(e, t.classList.contains('arrowUp') ? 1 : -1);
            }

            function N (e, t, n) {
                var i = e && p(e),
                    a = n || i && i.parentNode && i.parentNode.firstChild,
                    r = ge('increment');
                r.delta = t, a && a.dispatchEvent(r);
            }

            function H (e, t, n, i) {
                var a = Q(t, !0),
                    r = u('span', 'flatpickr-day ' + e, t.getDate().toString());
                return r.dateObj = t, r.$i = i, r.setAttribute('aria-label',
                    b.formatDate(t, b.config.ariaDateFormat)), -1 ===
                e.indexOf('hidden') && 0 === w(t, b.now) &&
                (b.todayDateElem = r, r.classList.add('today'), r.setAttribute(
                    'aria-current', 'date')), a ? (r.tabIndex = -1, ve(t) &&
                (r.classList.add(
                    'selected'), b.selectedDateElem = r, 'range' ===
                b.config.mode && (c(r, 'startRange', b.selectedDates[0] && 0 ===
                    w(t, b.selectedDates[0], !0)), c(r, 'endRange',
                    b.selectedDates[1] && 0 ===
                    w(t, b.selectedDates[1], !0)), 'nextMonthDay' === e &&
                r.classList.add('inRange')))) : r.classList.add(
                    'flatpickr-disabled'), 'range' === b.config.mode &&
                function (e) {
                    return !('range' !== b.config.mode ||
                        b.selectedDates.length < 2) &&
                        (w(e, b.selectedDates[0]) >= 0 &&
                            w(e, b.selectedDates[1]) <= 0);
                }(t) && !ve(t) && r.classList.add('inRange'), b.weekNumbers &&
                1 === b.config.showMonths && 'prevMonthDay' !== e && n % 7 ==
                1 && b.weekNumbers.insertAdjacentHTML('beforeend',
                    '<span class=\'flatpickr-day\'>' + b.config.getWeek(t) +
                    '</span>'), me('onDayCreate', r), r;
            }

            function F (e) {e.focus(), 'range' === b.config.mode && ie(e);}

            function R (e) {
                for (var t = e > 0 ? 0 : b.config.showMonths - 1, n = e > 0
                    ? b.config.showMonths
                    : -1, i = t; i !=
                     n; i += e) for (var a = b.daysContainer.children[i], r = e >
                0 ? 0 : a.children.length - 1, o = e > 0
                    ? a.children.length
                    : -1, s = r; s != o; s += e) {
                    var l = a.children[s];
                    if (-1 === l.className.indexOf('hidden') &&
                        Q(l.dateObj)) return l;
                }
            }

            function z (e, t) {
                var n = ee(document.activeElement || document.body),
                    i = void 0 !== e ? e : n
                        ? document.activeElement
                        : void 0 !== b.selectedDateElem &&
                        ee(b.selectedDateElem)
                            ? b.selectedDateElem
                            : void 0 !== b.todayDateElem && ee(b.todayDateElem)
                                ? b.todayDateElem
                                : R(t > 0 ? 1 : -1);
                void 0 === i ? b._input.focus() : n ? function (
                    e, t) {
                    for (var n = -1 === e.className.indexOf('Month')
                        ? e.dateObj.getMonth()
                        : b.currentMonth, i = t > 0
                        ? b.config.showMonths
                        : -1, a = t > 0 ? 1 : -1, r = n - b.currentMonth; r !=
                         i; r += a) for (var o = b.daysContainer.children[r], s = n -
                    b.currentMonth === r ? e.$i + t : t < 0
                        ? o.children.length - 1
                        : 0, l = o.children.length, c = s; c >= 0 && c < l &&
                                         c != (t > 0
                        ? l
                        : -1); c += a) {
                        var u = o.children[c];
                        if (-1 === u.className.indexOf('hidden') &&
                            Q(u.dateObj) && Math.abs(e.$i - c) >=
                            Math.abs(t)) return F(u);
                    }
                    b.changeMonth(a), z(R(a), 0);
                }(i, t) : F(i);
            }

            function B (e, t) {
                for (var n = (new Date(e, t, 1).getDay() -
                    b.l10n.firstDayOfWeek + 7) % 7, i = b.utils.getDaysInMonth(
                    (t - 1 + 12) % 12, e), a = b.utils.getDaysInMonth(t,
                    e), r = window.document.createDocumentFragment(), o = b.config.showMonths >
                    1, s = o ? 'prevMonthDay hidden' : 'prevMonthDay', l = o
                    ? 'nextMonthDay hidden'
                    : 'nextMonthDay', c = i + 1 - n, d = 0; c <=
                     i; c++, d++) r.appendChild(
                    H(s, new Date(e, t - 1, c), c, d));
                for (c = 1; c <= a; c++, d++) r.appendChild(
                    H('', new Date(e, t, c), c, d));
                for (var h = a + 1; h <= 42 - n &&
                (1 === b.config.showMonths || d % 7 !=
                    0); h++, d++) r.appendChild(
                    H(l, new Date(e, t + 1, h % a), h, d));
                var f = u('div', 'dayContainer');
                return f.appendChild(r), f;
            }

            function W () {
                if (void 0 !== b.daysContainer) {
                    d(b.daysContainer), b.weekNumbers && d(b.weekNumbers);
                    for (var e = document.createDocumentFragment(), t = 0; t <
                    b.config.showMonths; t++) {
                        var n = new Date(b.currentYear, b.currentMonth, 1);
                        n.setMonth(b.currentMonth + t), e.appendChild(
                            B(n.getFullYear(), n.getMonth()));
                    }
                    b.daysContainer.appendChild(
                        e), b.days = b.daysContainer.firstChild, 'range' ===
                    b.config.mode && 1 === b.selectedDates.length && ie();
                }
            }

            function V () {
                if (!(b.config.showMonths > 1 || 'dropdown' !==
                    b.config.monthSelectorType)) {
                    var e = function (e) {
                        return !(void 0 !== b.config.minDate &&
                            b.currentYear === b.config.minDate.getFullYear() &&
                            e < b.config.minDate.getMonth()) &&
                            !(void 0 !== b.config.maxDate && b.currentYear ===
                                b.config.maxDate.getFullYear() && e >
                                b.config.maxDate.getMonth());
                    };
                    b.monthsDropdownContainer.tabIndex = -1, b.monthsDropdownContainer.innerHTML = '';
                    for (var t = 0; t < 12; t++) if (e(t)) {
                        var n = u('option', 'flatpickr-monthDropdown-month');
                        n.value = new Date(b.currentYear, t).getMonth().
                            toString(), n.textContent = g(t,
                            b.config.shorthandCurrentMonth,
                            b.l10n), n.tabIndex = -1, b.currentMonth === t &&
                        (n.selected = !0), b.monthsDropdownContainer.appendChild(
                            n);
                    }
                }
            }

            function q () {
                var e, t = u('div', 'flatpickr-month'),
                    n = window.document.createDocumentFragment();
                b.config.showMonths > 1 || 'static' ===
                b.config.monthSelectorType
                    ? e = u('span', 'cur-month')
                    : (b.monthsDropdownContainer = u('select',
                    'flatpickr-monthDropdown-months'), b.monthsDropdownContainer.setAttribute(
                    'aria-label', b.l10n.monthAriaLabel), Y(
                    b.monthsDropdownContainer, 'change', (function (e) {
                        var t = p(e), n = parseInt(t.value, 10);
                        b.changeMonth(n - b.currentMonth), me('onMonthChange');
                    })), V(), e = b.monthsDropdownContainer);
                var i = f('cur-year', { tabindex: '-1' }),
                    a = i.getElementsByTagName('input')[0];
                a.setAttribute('aria-label',
                    b.l10n.yearAriaLabel), b.config.minDate &&
                a.setAttribute('min', b.config.minDate.getFullYear().
                    toString()), b.config.maxDate && (a.setAttribute('max',
                    b.config.maxDate.getFullYear().
                        toString()), a.disabled = !!b.config.minDate &&
                    b.config.minDate.getFullYear() ===
                    b.config.maxDate.getFullYear());
                var r = u('div', 'flatpickr-current-month');
                return r.appendChild(e), r.appendChild(i), n.appendChild(
                    r), t.appendChild(n), {
                    container: t,
                    yearElement: a,
                    monthElement: e,
                };
            }

            function U () {
                d(b.monthNav), b.monthNav.appendChild(
                    b.prevMonthNav), b.config.showMonths &&
                (b.yearElements = [], b.monthElements = []);
                for (var e = b.config.showMonths; e--;) {
                    var t = q();
                    b.yearElements.push(t.yearElement), b.monthElements.push(
                        t.monthElement), b.monthNav.appendChild(t.container);
                }
                b.monthNav.appendChild(b.nextMonthNav);
            }

            function X () {
                b.weekdayContainer
                    ? d(b.weekdayContainer)
                    : b.weekdayContainer = u('div', 'flatpickr-weekdays');
                for (var e = b.config.showMonths; e--;) {
                    var t = u('div', 'flatpickr-weekdaycontainer');
                    b.weekdayContainer.appendChild(t);
                }
                return $(), b.weekdayContainer;
            }

            function $ () {
                if (b.weekdayContainer) {
                    var e = b.l10n.firstDayOfWeek,
                        n = t(b.l10n.weekdays.shorthand);
                    e > 0 && e < n.length &&
                    (n = t(n.splice(e, n.length), n.splice(0, e)));
                    for (var i = b.config.showMonths; i--;) b.weekdayContainer.children[i].innerHTML = '\n      <span class=\'flatpickr-weekday\'>\n        ' +
                        n.join('</span><span class=\'flatpickr-weekday\'>') +
                        '\n      </span>\n      ';
                }
            }

            function G (e, t) {
                void 0 === t && (t = !0);
                var n = t ? e : e - b.currentMonth;
                n < 0 && !0 === b._hidePrevMonthArrow || n > 0 && !0 ===
                b._hideNextMonthArrow ||
                (b.currentMonth += n, (b.currentMonth < 0 || b.currentMonth >
                    11) && (b.currentYear += b.currentMonth > 11
                    ? 1
                    : -1, b.currentMonth = (b.currentMonth + 12) % 12, me(
                    'onYearChange'), V()), W(), me('onMonthChange'), ye());
            }

            function Z (e) {
                return !(!b.config.appendTo ||
                    !b.config.appendTo.contains(e)) ||
                    b.calendarContainer.contains(e);
            }

            function K (e) {
                if (b.isOpen && !b.config.inline) {
                    var t = p(e), n = Z(t),
                        i = t === b.input || t === b.altInput ||
                            b.element.contains(t) || e.path && e.path.indexOf &&
                            (~e.path.indexOf(b.input) ||
                                ~e.path.indexOf(b.altInput)),
                        a = 'blur' === e.type ? i && e.relatedTarget &&
                            !Z(e.relatedTarget) : !i && !n &&
                            !Z(e.relatedTarget),
                        r = !b.config.ignoredFocusElements.some(
                            (function (e) {return e.contains(t);}));
                    a && r &&
                    (void 0 !== b.timeContainer && void 0 !== b.minuteElement &&
                    void 0 !== b.hourElement && '' !== b.input.value &&
                    void 0 !== b.input.value && A(), b.close(), b.config &&
                    'range' === b.config.mode && 1 === b.selectedDates.length &&
                    (b.clear(!1), b.redraw()));
                }
            }

            function J (e) {
                if (!(!e || b.config.minDate && e <
                    b.config.minDate.getFullYear() || b.config.maxDate && e >
                    b.config.maxDate.getFullYear())) {
                    var t = e, n = b.currentYear !== t;
                    b.currentYear = t || b.currentYear, b.config.maxDate &&
                    b.currentYear === b.config.maxDate.getFullYear()
                        ? b.currentMonth = Math.min(b.config.maxDate.getMonth(),
                            b.currentMonth)
                        : b.config.minDate && b.currentYear ===
                        b.config.minDate.getFullYear() &&
                        (b.currentMonth = Math.max(b.config.minDate.getMonth(),
                            b.currentMonth)), n &&
                    (b.redraw(), me('onYearChange'), V());
                }
            }

            function Q (e, t) {
                var n;
                void 0 === t && (t = !0);
                var i = b.parseDate(e, void 0, t);
                if (b.config.minDate && i && w(i, b.config.minDate,
                    void 0 !== t ? t : !b.minDateHasTime) < 0 ||
                    b.config.maxDate && i && w(i, b.config.maxDate,
                        void 0 !== t ? t : !b.maxDateHasTime) > 0) return !1;
                if (!b.config.enable && 0 ===
                    b.config.disable.length) return !0;
                if (void 0 === i) return !1;
                for (var a = !!b.config.enable, r = null !==
                (n = b.config.enable) && void 0 !== n
                    ? n
                    : b.config.disable, o = 0, s = void 0; o < r.length; o++) {
                    if ('function' == typeof (s = r[o]) && s(i)) return a;
                    if (s instanceof Date && void 0 !== i && s.getTime() ===
                        i.getTime()) return a;
                    if ('string' == typeof s) {
                        var l = b.parseDate(s, void 0, !0);
                        return l && l.getTime() === i.getTime() ? a : !a;
                    }
                    if ('object' == typeof s && void 0 !== i && s.from &&
                        s.to && i.getTime() >= s.from.getTime() &&
                        i.getTime() <= s.to.getTime()) return a;
                }
                return !a;
            }

            function ee (e) {
                return void 0 !== b.daysContainer &&
                    (-1 === e.className.indexOf('hidden') && -1 ===
                        e.className.indexOf('flatpickr-disabled') &&
                        b.daysContainer.contains(e));
            }

            function te (e) {
                !(e.target === b._input) ||
                !(b.selectedDates.length > 0 || b._input.value.length > 0) ||
                e.relatedTarget && Z(e.relatedTarget) ||
                b.setDate(b._input.value, !0, e.target === b.altInput
                    ? b.config.altFormat
                    : b.config.dateFormat);
            }

            function ne (e) {
                var t = p(e),
                    n = b.config.wrap ? m.contains(t) : t === b._input,
                    i = b.config.allowInput, a = b.isOpen && (!i || !n),
                    r = b.config.inline && n && !i;
                if (13 === e.keyCode && n) {
                    if (i) return b.setDate(b._input.value, !0, t === b.altInput
                        ? b.config.altFormat
                        : b.config.dateFormat), t.blur();
                    b.open();
                } else if (Z(t) || a || r) {
                    var o = !!b.timeContainer && b.timeContainer.contains(t);
                    switch (e.keyCode) {
                        case 13:
                            o ? (e.preventDefault(), A(), ue()) : de(e);
                            break;
                        case 27:
                            e.preventDefault(), ue();
                            break;
                        case 8:
                        case 46:
                            n && !b.config.allowInput &&
                            (e.preventDefault(), b.clear());
                            break;
                        case 37:
                        case 39:
                            if (o || n) b.hourElement &&
                            b.hourElement.focus(); else if (e.preventDefault(), void 0 !==
                            b.daysContainer &&
                            (!1 === i || document.activeElement &&
                                ee(document.activeElement))) {
                                var s = 39 === e.keyCode ? 1 : -1;
                                e.ctrlKey ? (e.stopPropagation(), G(s), z(R(1),
                                    0)) : z(void 0, s);
                            }
                            break;
                        case 38:
                        case 40:
                            e.preventDefault();
                            var l = 40 === e.keyCode ? 1 : -1;
                            b.daysContainer && void 0 !== t.$i || t ===
                            b.input || t === b.altInput ? e.ctrlKey
                                ? (e.stopPropagation(), J(b.currentYear - l), z(
                                    R(1), 0))
                                : o || z(void 0, 7 * l) : t ===
                            b.currentYearElement
                                ? J(b.currentYear - l)
                                : b.config.enableTime && (!o && b.hourElement &&
                            b.hourElement.focus(), A(e), b._debouncedChange());
                            break;
                        case 9:
                            if (o) {
                                var c = [
                                        b.hourElement,
                                        b.minuteElement,
                                        b.secondElement,
                                        b.amPM].concat(b.pluginElements).
                                        filter((function (e) {return e;})),
                                    u = c.indexOf(t);
                                if (-1 !== u) {
                                    var d = c[u + (e.shiftKey ? -1 : 1)];
                                    e.preventDefault(), (d || b._input).focus();
                                }
                            } else !b.config.noCalendar && b.daysContainer &&
                            b.daysContainer.contains(t) && e.shiftKey &&
                            (e.preventDefault(), b._input.focus());
                    }
                }
                if (void 0 !== b.amPM && t === b.amPM) switch (e.key) {
                    case b.l10n.amPM[0].charAt(0):
                    case b.l10n.amPM[0].charAt(0).toLowerCase():
                        b.amPM.textContent = b.l10n.amPM[0], D(), xe();
                        break;
                    case b.l10n.amPM[1].charAt(0):
                    case b.l10n.amPM[1].charAt(0).toLowerCase():
                        b.amPM.textContent = b.l10n.amPM[1], D(), xe();
                }
                (n || Z(t)) && me('onKeyDown', e);
            }

            function ie (e) {
                if (1 === b.selectedDates.length &&
                    (!e || e.classList.contains('flatpickr-day') &&
                        !e.classList.contains('flatpickr-disabled'))) {
                    for (var t = e
                        ? e.dateObj.getTime()
                        : b.days.firstElementChild.dateObj.getTime(), n = b.parseDate(
                        b.selectedDates[0], void 0, !0).getTime(), i = Math.min(
                        t, b.selectedDates[0].getTime()), a = Math.max(t,
                        b.selectedDates[0].getTime()), r = !1, o = 0, s = 0, l = i; l <
                         a; l += k) Q(new Date(l), !0) ||
                    (r = r || l > i && l < a, l < n && (!o || l > o)
                        ? o = l
                        : l > n && (!s || l < s) && (s = l));
                    for (var c = 0; c <
                    b.config.showMonths; c++) for (var u = b.daysContainer.children[c], d = function (
                        i, a) {
                        var l, c, d, h = u.children[i], f = h.dateObj.getTime(),
                            p = o > 0 && f < o || s > 0 && f > s;
                        return p
                            ? (h.classList.add('notAllowed'), [
                                'inRange',
                                'startRange',
                                'endRange'].forEach((function (e) {
                                h.classList.remove(e);
                            })), 'continue')
                            : r && !p ? 'continue' : ([
                                'startRange',
                                'inRange',
                                'endRange',
                                'notAllowed'].forEach((function (e) {
                                h.classList.remove(e);
                            })), void (void 0 !== e && (e.classList.add(
                                t <= b.selectedDates[0].getTime()
                                    ? 'startRange'
                                    : 'endRange'), n < t && f === n
                                ? h.classList.add('startRange')
                                : n > t && f === n &&
                                h.classList.add('endRange'), f >= o &&
                            (0 === s || f <= s) &&
                            (c = n, d = t, (l = f) > Math.min(c, d) && l <
                            Math.max(c, d)) && h.classList.add('inRange'))));
                    }, h = 0, f = u.children.length; h < f; h++) d(h);
                }
            }

            function ae () {
                !b.isOpen || b.config.static || b.config.inline || le();
            }

            function re (e) {
                return function (t) {
                    var n = b.config['_' + e + 'Date'] = b.parseDate(t,
                        b.config.dateFormat),
                        i = b.config['_' + ('min' === e ? 'max' : 'min') +
                        'Date'];
                    void 0 !== n && (b['min' === e
                        ? 'minDateHasTime'
                        : 'maxDateHasTime'] = n.getHours() > 0 ||
                        n.getMinutes() > 0 || n.getSeconds() >
                        0), b.selectedDates &&
                    (b.selectedDates = b.selectedDates.filter(
                        (function (e) {
                            return Q(e);
                        })), b.selectedDates.length ||
                    'min' !== e || C(n), xe()), b.daysContainer &&
                    (ce(), void 0 !== n
                        ? b.currentYearElement[e] = n.getFullYear().
                            toString()
                        : b.currentYearElement.removeAttribute(
                            e), b.currentYearElement.disabled = !!i &&
                        void 0 !== n && i.getFullYear() === n.getFullYear());
                };
            }

            function oe () {
                return b.config.wrap ? m.querySelector('[data-input]') : m;
            }

            function se () {
                'object' != typeof b.config.locale && void 0 ===
                T.l10ns[b.config.locale] && b.config.errorHandler(new Error(
                    'flatpickr: invalid locale ' +
                    b.config.locale)), b.l10n = e(e({}, T.l10ns.default),
                    'object' == typeof b.config.locale
                        ? b.config.locale
                        : 'default' !== b.config.locale
                        ? T.l10ns[b.config.locale]
                        : void 0), y.K = '(' + b.l10n.amPM[0] + '|' +
                    b.l10n.amPM[1] + '|' + b.l10n.amPM[0].toLowerCase() + '|' +
                    b.l10n.amPM[1].toLowerCase() + ')', void 0 === e(e({}, v),
                    JSON.parse(JSON.stringify(m.dataset || {}))).time_24hr &&
                void 0 === T.defaultConfig.time_24hr &&
                (b.config.time_24hr = b.l10n.time_24hr), b.formatDate = x(
                    b), b.parseDate = _({ config: b.config, l10n: b.l10n });
            }

            function le (e) {
                if ('function' != typeof b.config.position) {
                    if (void 0 !== b.calendarContainer) {
                        me('onPreCalendarPosition');
                        var t = e || b._positionElement,
                            n = Array.prototype.reduce.call(
                                b.calendarContainer.children,
                                (function (e, t) {return e + t.offsetHeight;}),
                                0), i = b.calendarContainer.offsetWidth,
                            a = b.config.position.split(' '), r = a[0],
                            o = a.length > 1 ? a[1] : null,
                            s = t.getBoundingClientRect(),
                            l = window.innerHeight - s.bottom,
                            u = 'above' === r || 'below' !== r && l < n &&
                                s.top > n, d = window.pageYOffset + s.top +
                            (u ? -n - 2 : t.offsetHeight + 2);
                        if (c(b.calendarContainer, 'arrowTop', !u), c(
                            b.calendarContainer, 'arrowBottom',
                            u), !b.config.inline) {
                            var h = window.pageXOffset + s.left, f = !1, p = !1;
                            'center' === o
                                ? (h -= (i - s.width) / 2, f = !0)
                                : 'right' === o &&
                                (h -= i - s.width, p = !0), c(
                                b.calendarContainer, 'arrowLeft', !f && !p), c(
                                b.calendarContainer, 'arrowCenter', f), c(
                                b.calendarContainer, 'arrowRight', p);
                            var m = window.document.body.offsetWidth -
                                (window.pageXOffset + s.right),
                                g = h + i > window.document.body.offsetWidth,
                                v = m + i > window.document.body.offsetWidth;
                            if (c(b.calendarContainer, 'rightMost',
                                g), !b.config.static) if (b.calendarContainer.style.top = d +
                                'px', g) if (v) {
                                var y = function () {
                                    for (var e = null, t = 0; t <
                                    document.styleSheets.length; t++) {
                                        var n = document.styleSheets[t];
                                        try {n.cssRules;} catch (e) {continue;}
                                        e = n;
                                        break;
                                    }
                                    return null != e
                                        ? e
                                        : (i = document.createElement(
                                            'style'), document.head.appendChild(
                                            i), i.sheet);
                                    var i;
                                }();
                                if (void 0 === y) return;
                                var x = window.document.body.offsetWidth,
                                    _ = Math.max(0, x / 2 - i / 2),
                                    w = y.cssRules.length,
                                    k = '{left:' + s.left + 'px;right:auto;}';
                                c(b.calendarContainer, 'rightMost', !1), c(
                                    b.calendarContainer, 'centerMost',
                                    !0), y.insertRule(
                                    '.flatpickr-calendar.centerMost:before,.flatpickr-calendar.centerMost:after' +
                                    k, w), b.calendarContainer.style.left = _ +
                                    'px', b.calendarContainer.style.right = 'auto';
                            } else b.calendarContainer.style.left = 'auto', b.calendarContainer.style.right = m +
                                'px'; else b.calendarContainer.style.left = h +
                                'px', b.calendarContainer.style.right = 'auto';
                        }
                    }
                } else b.config.position(b, e);
            }

            function ce () {
                b.config.noCalendar || b.isMobile || (V(), ye(), W());
            }

            function ue () {
                b._input.focus(), -1 !==
                window.navigator.userAgent.indexOf('MSIE') || void 0 !==
                navigator.msMaxTouchPoints ? setTimeout(b.close, 0) : b.close();
            }

            function de (e) {
                e.preventDefault(), e.stopPropagation();
                var t = h(p(e), (function (e) {
                    return e.classList &&
                        e.classList.contains('flatpickr-day') &&
                        !e.classList.contains('flatpickr-disabled') &&
                        !e.classList.contains('notAllowed');
                }));
                if (void 0 !== t) {
                    var n = t, i = b.latestSelectedDateObj = new Date(
                        n.dateObj.getTime()),
                        a = (i.getMonth() < b.currentMonth || i.getMonth() >
                            b.currentMonth + b.config.showMonths - 1) &&
                            'range' !== b.config.mode;
                    if (b.selectedDateElem = n, 'single' ===
                    b.config.mode) b.selectedDates = [i]; else if ('multiple' ===
                        b.config.mode) {
                        var r = ve(i);
                        r
                            ? b.selectedDates.splice(parseInt(r), 1)
                            : b.selectedDates.push(i);
                    } else 'range' === b.config.mode &&
                    (2 === b.selectedDates.length && b.clear(!1,
                        !1), b.latestSelectedDateObj = i, b.selectedDates.push(
                        i), 0 !== w(i, b.selectedDates[0], !0) &&
                    b.selectedDates.sort(
                        (function (e, t) {return e.getTime() - t.getTime();})));
                    if (D(), a) {
                        var o = b.currentYear !== i.getFullYear();
                        b.currentYear = i.getFullYear(), b.currentMonth = i.getMonth(), o &&
                        (me('onYearChange'), V()), me('onMonthChange');
                    }
                    if (ye(), W(), xe(), a || 'range' === b.config.mode || 1 !==
                    b.config.showMonths ? void 0 !== b.selectedDateElem &&
                        void 0 === b.hourElement && b.selectedDateElem &&
                        b.selectedDateElem.focus() : F(n), void 0 !==
                    b.hourElement && void 0 !== b.hourElement &&
                    b.hourElement.focus(), b.config.closeOnSelect) {
                        var s = 'single' === b.config.mode &&
                            !b.config.enableTime,
                            l = 'range' === b.config.mode && 2 ===
                                b.selectedDates.length && !b.config.enableTime;
                        (s || l) && ue();
                    }
                    P();
                }
            }

            b.parseDate = _({
                config: b.config,
                l10n: b.l10n,
            }), b._handlers = [], b.pluginElements = [], b.loadedPlugins = [], b._bind = Y, b._setHoursFromDate = C, b._positionCalendar = le, b.changeMonth = G, b.changeYear = J, b.clear = function (
                e, t) {
                void 0 === e && (e = !0);
                void 0 === t && (t = !0);
                b.input.value = '', void 0 !== b.altInput &&
                (b.altInput.value = '');
                void 0 !== b.mobileInput && (b.mobileInput.value = '');
                b.selectedDates = [], b.latestSelectedDateObj = void 0, !0 ===
                t &&
                (b.currentYear = b._initialDate.getFullYear(), b.currentMonth = b._initialDate.getMonth());
                if (!0 === b.config.enableTime) {
                    var n = M(b.config), i = n.hours, a = n.minutes,
                        r = n.seconds;
                    E(i, a, r);
                }
                b.redraw(), e && me('onChange');
            }, b.close = function () {
                b.isOpen = !1, b.isMobile || (void 0 !== b.calendarContainer &&
                b.calendarContainer.classList.remove('open'), void 0 !==
                b._input && b._input.classList.remove('active'));
                me('onClose');
            }, b._createElement = u, b.destroy = function () {
                void 0 !== b.config && me('onDestroy');
                for (var e = b._handlers.length; e--;) b._handlers[e].remove();
                if (b._handlers = [], b.mobileInput) b.mobileInput.parentNode &&
                b.mobileInput.parentNode.removeChild(
                    b.mobileInput), b.mobileInput = void 0; else if (b.calendarContainer &&
                    b.calendarContainer.parentNode) if (b.config.static &&
                    b.calendarContainer.parentNode) {
                    var t = b.calendarContainer.parentNode;
                    if (t.lastChild && t.removeChild(
                        t.lastChild), t.parentNode) {
                        for (; t.firstChild;) t.parentNode.insertBefore(
                            t.firstChild, t);
                        t.parentNode.removeChild(t);
                    }
                } else b.calendarContainer.parentNode.removeChild(
                    b.calendarContainer);
                b.altInput && (b.input.type = 'text', b.altInput.parentNode &&
                b.altInput.parentNode.removeChild(
                    b.altInput), delete b.altInput);
                b.input &&
                (b.input.type = b.input._type, b.input.classList.remove(
                    'flatpickr-input'), b.input.removeAttribute('readonly'));
                [
                    '_showTimeInput',
                    'latestSelectedDateObj',
                    '_hideNextMonthArrow',
                    '_hidePrevMonthArrow',
                    '__hideNextMonthArrow',
                    '__hidePrevMonthArrow',
                    'isMobile',
                    'isOpen',
                    'selectedDateElem',
                    'minDateHasTime',
                    'maxDateHasTime',
                    'days',
                    'daysContainer',
                    '_input',
                    '_positionElement',
                    'innerContainer',
                    'rContainer',
                    'monthNav',
                    'todayDateElem',
                    'calendarContainer',
                    'weekdayContainer',
                    'prevMonthNav',
                    'nextMonthNav',
                    'monthsDropdownContainer',
                    'currentMonthElement',
                    'currentYearElement',
                    'navigationCurrentMonth',
                    'selectedDateElem',
                    'config'].forEach(
                    (function (e) {try {delete b[e];} catch (e) {}}));
            }, b.isEnabled = Q, b.jumpToDate = I, b.open = function (
                e, t) {
                void 0 === t && (t = b._positionElement);
                if (!0 === b.isMobile) {
                    if (e) {
                        e.preventDefault();
                        var n = p(e);
                        n && n.blur();
                    }
                    return void 0 !== b.mobileInput &&
                    (b.mobileInput.focus(), b.mobileInput.click()), void me(
                        'onOpen');
                }
                if (b._input.disabled || b.config.inline) return;
                var i = b.isOpen;
                b.isOpen = !0, i || (b.calendarContainer.classList.add(
                    'open'), b._input.classList.add('active'), me('onOpen'), le(
                    t));
                !0 === b.config.enableTime && !0 === b.config.noCalendar &&
                (!1 !== b.config.allowInput || void 0 !== e &&
                    b.timeContainer.contains(e.relatedTarget) ||
                    setTimeout((function () {return b.hourElement.select();}),
                        50));
            }, b.redraw = ce, b.set = function (e, t) {
                if (null !== e && 'object' ==
                    typeof e) for (var i in Object.assign(b.config,
                    e), e) void 0 !== he[i] && he[i].forEach(
                    (function (e) {return e();})); else b.config[e] = t, void 0 !==
                he[e] ? he[e].forEach((function (e) {return e();})) : n.indexOf(
                    e) > -1 && (b.config[e] = l(t));
                b.redraw(), xe(!0);
            }, b.setDate = function (e, t, n) {
                void 0 === t && (t = !1);
                void 0 === n && (n = b.config.dateFormat);
                if (0 !== e && !e || e instanceof Array && 0 ===
                    e.length) return b.clear(t);
                fe(e,
                    n), b.latestSelectedDateObj = b.selectedDates[b.selectedDates.length -
                1], b.redraw(), I(void 0, t), C(), 0 ===
                b.selectedDates.length && b.clear(!1);
                xe(t), t && me('onChange');
            }, b.toggle = function (e) {
                if (!0 === b.isOpen) return b.close();
                b.open(e);
            };
            var he = {
                locale: [se, $],
                showMonths: [U, S, X],
                minDate: [I],
                maxDate: [I],
                clickOpens: [
                    function () {
                        !0 === b.config.clickOpens
                            ? (Y(b._input, 'focus', b.open), Y(b._input,
                            'click', b.open))
                            : (b._input.removeEventListener('focus',
                            b.open), b._input.removeEventListener('click',
                            b.open));
                    }],
            };

            function fe (e, t) {
                var n = [];
                if (e instanceof Array) n = e.map((function (e) {
                    return b.parseDate(e, t);
                })); else if (e instanceof Date || 'number' ==
                    typeof e) n = [b.parseDate(e, t)]; else if ('string' ==
                    typeof e) switch (b.config.mode) {
                    case'single':
                    case'time':
                        n = [b.parseDate(e, t)];
                        break;
                    case'multiple':
                        n = e.split(b.config.conjunction).
                            map((function (e) {return b.parseDate(e, t);}));
                        break;
                    case'range':
                        n = e.split(b.l10n.rangeSeparator).
                            map((function (e) {return b.parseDate(e, t);}));
                } else b.config.errorHandler(
                    new Error('Invalid date supplied: ' + JSON.stringify(e)));
                b.selectedDates = b.config.allowInvalidPreload ? n : n.filter(
                    (function (e) {
                        return e instanceof Date && Q(e, !1);
                    })), 'range' === b.config.mode && b.selectedDates.sort(
                    (function (e, t) {return e.getTime() - t.getTime();}));
            }

            function pe (e) {
                return e.slice().
                    map((function (e) {
                        return 'string' == typeof e || 'number' == typeof e ||
                        e instanceof Date ? b.parseDate(e, void 0, !0) : e &&
                        'object' == typeof e && e.from && e.to
                            ? {
                                from: b.parseDate(e.from, void 0),
                                to: b.parseDate(e.to, void 0),
                            }
                            : e;
                    })).
                    filter((function (e) {return e;}));
            }

            function me (e, t) {
                if (void 0 !== b.config) {
                    var n = b.config[e];
                    if (void 0 !== n && n.length > 0) for (var i = 0; n[i] &&
                    i < n.length; i++) n[i](b.selectedDates, b.input.value, b,
                        t);
                    'onChange' === e &&
                    (b.input.dispatchEvent(ge('change')), b.input.dispatchEvent(
                        ge('input')));
                }
            }

            function ge (e) {
                var t = document.createEvent('Event');
                return t.initEvent(e, !0, !0), t;
            }

            function ve (e) {
                for (var t = 0; t < b.selectedDates.length; t++) if (0 ===
                    w(b.selectedDates[t], e)) return '' + t;
                return !1;
            }

            function ye () {
                b.config.noCalendar || b.isMobile || !b.monthNav ||
                (b.yearElements.forEach((function (e, t) {
                    var n = new Date(b.currentYear, b.currentMonth, 1);
                    n.setMonth(b.currentMonth + t), b.config.showMonths > 1 ||
                    'static' === b.config.monthSelectorType
                        ? b.monthElements[t].textContent = g(n.getMonth(),
                            b.config.shorthandCurrentMonth, b.l10n) + ' '
                        : b.monthsDropdownContainer.value = n.getMonth().
                            toString(), e.value = n.getFullYear().toString();
                })), b._hidePrevMonthArrow = void 0 !== b.config.minDate &&
                    (b.currentYear === b.config.minDate.getFullYear()
                        ? b.currentMonth <= b.config.minDate.getMonth()
                        : b.currentYear <
                        b.config.minDate.getFullYear()), b._hideNextMonthArrow = void 0 !==
                    b.config.maxDate &&
                    (b.currentYear === b.config.maxDate.getFullYear()
                        ? b.currentMonth + 1 > b.config.maxDate.getMonth()
                        : b.currentYear > b.config.maxDate.getFullYear()));
            }

            function be (e) {
                return b.selectedDates.map(
                    (function (t) {return b.formatDate(t, e);})).
                    filter((function (e, t, n) {
                        return 'range' !== b.config.mode ||
                            b.config.enableTime || n.indexOf(e) === t;
                    })).
                    join('range' !== b.config.mode
                        ? b.config.conjunction
                        : b.l10n.rangeSeparator);
            }

            function xe (e) {
                void 0 === e && (e = !0), void 0 !== b.mobileInput &&
                b.mobileFormatStr &&
                (b.mobileInput.value = void 0 !== b.latestSelectedDateObj
                    ? b.formatDate(b.latestSelectedDateObj, b.mobileFormatStr)
                    : ''), b.input.value = be(b.config.dateFormat), void 0 !==
                b.altInput &&
                (b.altInput.value = be(b.config.altFormat)), !1 !== e &&
                me('onValueUpdate');
            }

            function _e (e) {
                var t = p(e), n = b.prevMonthNav.contains(t),
                    i = b.nextMonthNav.contains(t);
                n || i ? G(n ? -1 : 1) : b.yearElements.indexOf(t) >= 0
                    ? t.select()
                    : t.classList.contains('arrowUp') ? b.changeYear(
                        b.currentYear + 1) : t.classList.contains(
                        'arrowDown') && b.changeYear(b.currentYear - 1);
            }

            return function () {
                b.element = b.input = m, b.isOpen = !1, function () {
                    var t = [
                            'wrap',
                            'weekNumbers',
                            'allowInput',
                            'allowInvalidPreload',
                            'clickOpens',
                            'time_24hr',
                            'enableTime',
                            'noCalendar',
                            'altInput',
                            'shorthandCurrentMonth',
                            'inline',
                            'static',
                            'enableSeconds',
                            'disableMobile'], a = e(
                        e({}, JSON.parse(JSON.stringify(m.dataset || {}))), v),
                        r = {};
                    b.config.parseDate = a.parseDate, b.config.formatDate = a.formatDate, Object.defineProperty(
                        b.config, 'enable', {
                            get: function () {return b.config._enable;},
                            set: function (e) {b.config._enable = pe(e);},
                        }), Object.defineProperty(b.config, 'disable', {
                        get: function () {return b.config._disable;},
                        set: function (e) {b.config._disable = pe(e);},
                    });
                    var o = 'time' === a.mode;
                    if (!a.dateFormat && (a.enableTime || o)) {
                        var s = T.defaultConfig.dateFormat || i.dateFormat;
                        r.dateFormat = a.noCalendar || o ? 'H:i' +
                            (a.enableSeconds ? ':S' : '') : s + ' H:i' +
                            (a.enableSeconds ? ':S' : '');
                    }
                    if (a.altInput && (a.enableTime || o) && !a.altFormat) {
                        var c = T.defaultConfig.altFormat || i.altFormat;
                        r.altFormat = a.noCalendar || o ? 'h:i' +
                            (a.enableSeconds ? ':S K' : ' K') : c + ' h:i' +
                            (a.enableSeconds ? ':S' : '') + ' K';
                    }
                    Object.defineProperty(b.config, 'minDate', {
                        get: function () {return b.config._minDate;},
                        set: re('min'),
                    }), Object.defineProperty(b.config, 'maxDate', {
                        get: function () {return b.config._maxDate;},
                        set: re('max'),
                    });
                    var u = function (e) {
                        return function (t) {
                            b.config['min' === e
                                ? '_minTime'
                                : '_maxTime'] = b.parseDate(t, 'H:i:S');
                        };
                    };
                    Object.defineProperty(b.config, 'minTime', {
                        get: function () {return b.config._minTime;},
                        set: u('min'),
                    }), Object.defineProperty(b.config, 'maxTime', {
                        get: function () {return b.config._maxTime;},
                        set: u('max'),
                    }), 'time' === a.mode &&
                    (b.config.noCalendar = !0, b.config.enableTime = !0);
                    Object.assign(b.config, r, a);
                    for (var d = 0; d < t.length; d++) b.config[t[d]] = !0 ===
                        b.config[t[d]] || 'true' === b.config[t[d]];
                    n.filter((function (e) {return void 0 !== b.config[e];})).
                        forEach((function (e) {
                            b.config[e] = l(b.config[e] || []).
                                map(L);
                        })), b.isMobile = !b.config.disableMobile &&
                        !b.config.inline && 'single' === b.config.mode &&
                        !b.config.disable.length && !b.config.enable &&
                        !b.config.weekNumbers &&
                        /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
                            navigator.userAgent);
                    for (d = 0; d < b.config.plugins.length; d++) {
                        var h = b.config.plugins[d](b) || {};
                        for (var f in h) n.indexOf(f) > -1 ? b.config[f] = l(
                            h[f]).map(L).concat(b.config[f]) : void 0 ===
                            a[f] && (b.config[f] = h[f]);
                    }
                    a.altInputClass ||
                    (b.config.altInputClass = oe().className + ' ' +
                        b.config.altInputClass);
                    me('onParseConfig');
                }(), se(), function () {
                    if (b.input = oe(), !b.input) return void b.config.errorHandler(
                        new Error('Invalid input element specified'));
                    b.input._type = b.input.type, b.input.type = 'text', b.input.classList.add(
                        'flatpickr-input'), b._input = b.input, b.config.altInput &&
                    (b.altInput = u(b.input.nodeName,
                        b.config.altInputClass), b._input = b.altInput, b.altInput.placeholder = b.input.placeholder, b.altInput.disabled = b.input.disabled, b.altInput.required = b.input.required, b.altInput.tabIndex = b.input.tabIndex, b.altInput.type = 'text', b.input.setAttribute(
                        'type', 'hidden'), !b.config.static &&
                    b.input.parentNode &&
                    b.input.parentNode.insertBefore(b.altInput,
                        b.input.nextSibling));
                    b.config.allowInput ||
                    b._input.setAttribute('readonly', 'readonly');
                    b._positionElement = b.config.positionElement || b._input;
                }(), function () {
                    b.selectedDates = [], b.now = b.parseDate(b.config.now) ||
                        new Date;
                    var e = b.config.defaultDate ||
                        ('INPUT' !== b.input.nodeName && 'TEXTAREA' !==
                        b.input.nodeName || !b.input.placeholder ||
                        b.input.value !== b.input.placeholder
                            ? b.input.value
                            : null);
                    e && fe(e, b.config.dateFormat);
                    b._initialDate = b.selectedDates.length > 0
                        ? b.selectedDates[0]
                        : b.config.minDate && b.config.minDate.getTime() >
                        b.now.getTime() ? b.config.minDate : b.config.maxDate &&
                        b.config.maxDate.getTime() < b.now.getTime()
                            ? b.config.maxDate
                            : b.now, b.currentYear = b._initialDate.getFullYear(), b.currentMonth = b._initialDate.getMonth(), b.selectedDates.length >
                    0 && (b.latestSelectedDateObj = b.selectedDates[0]);
                    void 0 !== b.config.minTime &&
                    (b.config.minTime = b.parseDate(b.config.minTime, 'H:i'));
                    void 0 !== b.config.maxTime &&
                    (b.config.maxTime = b.parseDate(b.config.maxTime, 'H:i'));
                    b.minDateHasTime = !!b.config.minDate &&
                        (b.config.minDate.getHours() > 0 ||
                            b.config.minDate.getMinutes() > 0 ||
                            b.config.minDate.getSeconds() >
                            0), b.maxDateHasTime = !!b.config.maxDate &&
                        (b.config.maxDate.getHours() > 0 ||
                            b.config.maxDate.getMinutes() > 0 ||
                            b.config.maxDate.getSeconds() > 0);
                }(), b.utils = {
                    getDaysInMonth: function (
                        e, t) {
                        return void 0 === e && (e = b.currentMonth), void 0 ===
                        t && (t = b.currentYear), 1 === e &&
                        (t % 4 == 0 && t % 100 != 0 || t % 400 == 0)
                            ? 29
                            : b.l10n.daysInMonth[e];
                    },
                }, b.isMobile || function () {
                    var e = window.document.createDocumentFragment();
                    if (b.calendarContainer = u('div',
                        'flatpickr-calendar'), b.calendarContainer.tabIndex = -1, !b.config.noCalendar) {
                        if (e.appendChild((b.monthNav = u('div',
                            'flatpickr-months'), b.yearElements = [], b.monthElements = [], b.prevMonthNav = u(
                            'span',
                            'flatpickr-prev-month'), b.prevMonthNav.innerHTML = b.config.prevArrow, b.nextMonthNav = u(
                            'span',
                            'flatpickr-next-month'), b.nextMonthNav.innerHTML = b.config.nextArrow, U(), Object.defineProperty(
                            b, '_hidePrevMonthArrow', {
                                get: function () {return b.__hidePrevMonthArrow;},
                                set: function (e) {
                                    b.__hidePrevMonthArrow !== e &&
                                    (c(b.prevMonthNav, 'flatpickr-disabled',
                                        e), b.__hidePrevMonthArrow = e);
                                },
                            }), Object.defineProperty(b, '_hideNextMonthArrow',
                            {
                                get: function () {return b.__hideNextMonthArrow;},
                                set: function (e) {
                                    b.__hideNextMonthArrow !== e &&
                                    (c(b.nextMonthNav, 'flatpickr-disabled',
                                        e), b.__hideNextMonthArrow = e);
                                },
                            }), b.currentYearElement = b.yearElements[0], ye(), b.monthNav)), b.innerContainer = u(
                            'div',
                            'flatpickr-innerContainer'), b.config.weekNumbers) {
                            var t = function () {
                                b.calendarContainer.classList.add('hasWeeks');
                                var e = u('div', 'flatpickr-weekwrapper');
                                e.appendChild(u('span', 'flatpickr-weekday',
                                    b.l10n.weekAbbreviation));
                                var t = u('div', 'flatpickr-weeks');
                                return e.appendChild(t), {
                                    weekWrapper: e,
                                    weekNumbers: t,
                                };
                            }(), n = t.weekWrapper, i = t.weekNumbers;
                            b.innerContainer.appendChild(
                                n), b.weekNumbers = i, b.weekWrapper = n;
                        }
                        b.rContainer = u('div',
                            'flatpickr-rContainer'), b.rContainer.appendChild(
                            X()), b.daysContainer || (b.daysContainer = u('div',
                            'flatpickr-days'), b.daysContainer.tabIndex = -1), W(), b.rContainer.appendChild(
                            b.daysContainer), b.innerContainer.appendChild(
                            b.rContainer), e.appendChild(b.innerContainer);
                    }
                    b.config.enableTime && e.appendChild(function () {
                        b.calendarContainer.classList.add(
                            'hasTime'), b.config.noCalendar &&
                        b.calendarContainer.classList.add('noCalendar');
                        var e = M(b.config);
                        b.timeContainer = u('div',
                            'flatpickr-time'), b.timeContainer.tabIndex = -1;
                        var t = u('span', 'flatpickr-time-separator', ':'),
                            n = f('flatpickr-hour',
                                { 'aria-label': b.l10n.hourAriaLabel });
                        b.hourElement = n.getElementsByTagName('input')[0];
                        var i = f('flatpickr-minute',
                            { 'aria-label': b.l10n.minuteAriaLabel });
                        b.minuteElement = i.getElementsByTagName(
                            'input')[0], b.hourElement.tabIndex = b.minuteElement.tabIndex = -1, b.hourElement.value = r(
                            b.latestSelectedDateObj
                                ? b.latestSelectedDateObj.getHours()
                                : b.config.time_24hr
                                ? e.hours
                                : function (e) {
                                    switch (e % 24) {
                                        case 0:
                                        case 12:
                                            return 12;
                                        default:
                                            return e % 12;
                                    }
                                }(e.hours)), b.minuteElement.value = r(
                            b.latestSelectedDateObj
                                ? b.latestSelectedDateObj.getMinutes()
                                : e.minutes), b.hourElement.setAttribute('step',
                            b.config.hourIncrement.toString()), b.minuteElement.setAttribute(
                            'step',
                            b.config.minuteIncrement.toString()), b.hourElement.setAttribute(
                            'min', b.config.time_24hr
                                ? '0'
                                : '1'), b.hourElement.setAttribute('max',
                            b.config.time_24hr
                                ? '23'
                                : '12'), b.hourElement.setAttribute('maxlength',
                            '2'), b.minuteElement.setAttribute('min',
                            '0'), b.minuteElement.setAttribute('max',
                            '59'), b.minuteElement.setAttribute('maxlength',
                            '2'), b.timeContainer.appendChild(
                            n), b.timeContainer.appendChild(
                            t), b.timeContainer.appendChild(
                            i), b.config.time_24hr &&
                        b.timeContainer.classList.add('time24hr');
                        if (b.config.enableSeconds) {
                            b.timeContainer.classList.add('hasSeconds');
                            var a = f('flatpickr-second');
                            b.secondElement = a.getElementsByTagName(
                                'input')[0], b.secondElement.value = r(
                                b.latestSelectedDateObj
                                    ? b.latestSelectedDateObj.getSeconds()
                                    : e.seconds), b.secondElement.setAttribute(
                                'step', b.minuteElement.getAttribute(
                                    'step')), b.secondElement.setAttribute(
                                'min', '0'), b.secondElement.setAttribute('max',
                                '59'), b.secondElement.setAttribute('maxlength',
                                '2'), b.timeContainer.appendChild(
                                u('span', 'flatpickr-time-separator',
                                    ':')), b.timeContainer.appendChild(a);
                        }
                        b.config.time_24hr ||
                        (b.amPM = u('span', 'flatpickr-am-pm', b.l10n.amPM[o(
                            (b.latestSelectedDateObj
                                ? b.hourElement.value
                                : b.config.defaultHour) >
                            11)]), b.amPM.title = b.l10n.toggleTitle, b.amPM.tabIndex = -1, b.timeContainer.appendChild(
                            b.amPM));
                        return b.timeContainer;
                    }());
                    c(b.calendarContainer, 'rangeMode',
                        'range' === b.config.mode), c(b.calendarContainer,
                        'animate', !0 === b.config.animate), c(
                        b.calendarContainer, 'multiMonth', b.config.showMonths >
                        1), b.calendarContainer.appendChild(e);
                    var a = void 0 !== b.config.appendTo && void 0 !==
                        b.config.appendTo.nodeType;
                    if ((b.config.inline || b.config.static) &&
                        (b.calendarContainer.classList.add(b.config.inline
                            ? 'inline'
                            : 'static'), b.config.inline &&
                        (!a && b.element.parentNode
                            ? b.element.parentNode.insertBefore(
                                b.calendarContainer, b._input.nextSibling)
                            : void 0 !== b.config.appendTo &&
                            b.config.appendTo.appendChild(
                                b.calendarContainer)), b.config.static)) {
                        var s = u('div', 'flatpickr-wrapper');
                        b.element.parentNode &&
                        b.element.parentNode.insertBefore(s,
                            b.element), s.appendChild(b.element), b.altInput &&
                        s.appendChild(b.altInput), s.appendChild(
                            b.calendarContainer);
                    }
                    b.config.static || b.config.inline ||
                    (void 0 !== b.config.appendTo
                        ? b.config.appendTo
                        : window.document.body).appendChild(
                        b.calendarContainer);
                }(), function () {
                    b.config.wrap &&
                    ['open', 'close', 'toggle', 'clear'].forEach((function (e) {
                        Array.prototype.forEach.call(
                            b.element.querySelectorAll('[data-' + e + ']'),
                            (function (t) {return Y(t, 'click', b[e]);}));
                    }));
                    if (b.isMobile) return void function () {
                        var e = b.config.enableTime ? b.config.noCalendar
                            ? 'time'
                            : 'datetime-local' : 'date';
                        b.mobileInput = u('input', b.input.className +
                            ' flatpickr-mobile'), b.mobileInput.tabIndex = 1, b.mobileInput.type = e, b.mobileInput.disabled = b.input.disabled, b.mobileInput.required = b.input.required, b.mobileInput.placeholder = b.input.placeholder, b.mobileFormatStr = 'datetime-local' ===
                        e ? 'Y-m-d\\TH:i:S' : 'date' === e
                            ? 'Y-m-d'
                            : 'H:i:S', b.selectedDates.length > 0 &&
                        (b.mobileInput.defaultValue = b.mobileInput.value = b.formatDate(
                            b.selectedDates[0], b.mobileFormatStr));
                        b.config.minDate &&
                        (b.mobileInput.min = b.formatDate(b.config.minDate,
                            'Y-m-d'));
                        b.config.maxDate &&
                        (b.mobileInput.max = b.formatDate(b.config.maxDate,
                            'Y-m-d'));
                        b.input.getAttribute('step') &&
                        (b.mobileInput.step = String(
                            b.input.getAttribute('step')));
                        b.input.type = 'hidden', void 0 !== b.altInput &&
                        (b.altInput.type = 'hidden');
                        try {
                            b.input.parentNode &&
                            b.input.parentNode.insertBefore(b.mobileInput,
                                b.input.nextSibling);
                        } catch (e) {}
                        Y(b.mobileInput, 'change', (function (e) {
                            b.setDate(p(e).value, !1, b.mobileFormatStr), me(
                                'onChange'), me('onClose');
                        }));
                    }();
                    var e = s(ae, 50);
                    b._debouncedChange = s(P, 300), b.daysContainer &&
                    !/iPhone|iPad|iPod/i.test(navigator.userAgent) &&
                    Y(b.daysContainer, 'mouseover',
                        (function (e) {
                            'range' === b.config.mode && ie(p(e));
                        }));
                    Y(window.document.body, 'keydown', ne), b.config.inline ||
                    b.config.static || Y(window, 'resize', e);
                    void 0 !== window.ontouchstart ? Y(window.document,
                        'touchstart', K) : Y(window.document, 'mousedown', K);
                    Y(window.document, 'focus', K, { capture: !0 }), !0 ===
                    b.config.clickOpens &&
                    (Y(b._input, 'focus', b.open), Y(b._input, 'click',
                        b.open));
                    void 0 !== b.daysContainer &&
                    (Y(b.monthNav, 'click', _e), Y(b.monthNav,
                        ['keyup', 'increment'], O), Y(b.daysContainer, 'click',
                        de));
                    if (void 0 !== b.timeContainer && void 0 !==
                        b.minuteElement && void 0 !== b.hourElement) {
                        var t = function (e) {
                            return p(e).
                                select();
                        };
                        Y(b.timeContainer, ['increment'], A), Y(b.timeContainer,
                            'blur', A, { capture: !0 }), Y(b.timeContainer,
                            'click', j), Y([b.hourElement, b.minuteElement],
                            ['focus', 'click'], t), void 0 !==
                        b.secondElement && Y(b.secondElement, 'focus',
                            (function () {
                                return b.secondElement &&
                                    b.secondElement.select();
                            })), void 0 !== b.amPM &&
                        Y(b.amPM, 'click', (function (e) {A(e), P();}));
                    }
                    b.config.allowInput && Y(b._input, 'blur', te);
                }(), (b.selectedDates.length || b.config.noCalendar) &&
                (b.config.enableTime &&
                C(b.config.noCalendar ? b.latestSelectedDateObj : void 0), xe(
                    !1)), S();
                var t = /^((?!chrome|android).)*safari/i.test(
                    navigator.userAgent);
                !b.isMobile && t && le(), me('onReady');
            }(), b;
        }

        function S (e, t) {
            for (var n = Array.prototype.slice.call(e).
                filter((function (e) {
                    return e instanceof HTMLElement;
                })), i = [], a = 0; a < n.length; a++) {
                var r = n[a];
                try {
                    if (null !== r.getAttribute('data-fp-omit')) continue;
                    void 0 !== r._flatpickr &&
                    (r._flatpickr.destroy(), r._flatpickr = void 0), r._flatpickr = L(
                        r, t || {}), i.push(r._flatpickr);
                } catch (e) {console.error(e);}
            }
            return 1 === i.length ? i[0] : i;
        }

        'undefined' != typeof HTMLElement && 'undefined' !=
        typeof HTMLCollection && 'undefined' != typeof NodeList &&
        (HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (e) {
            return S(this, e);
        }, HTMLElement.prototype.flatpickr = function (e) {
            return S([this], e);
        });
        var T = function (e, t) {
            return 'string' == typeof e ? S(window.document.querySelectorAll(e),
                t) : e instanceof Node ? S([e], t) : S(e, t);
        };
        return T.defaultConfig = {}, T.l10ns = {
            en: e({}, a),
            default: e({}, a),
        }, T.localize = function (t) {
            T.l10ns.default = e(e({}, T.l10ns.default), t);
        }, T.setDefaults = function (t) {
            T.defaultConfig = e(e({}, T.defaultConfig), t);
        }, T.parseDate = _({}), T.formatDate = x(
            {}), T.compareDates = w, 'undefined' != typeof jQuery && void 0 !==
        jQuery.fn && (jQuery.fn.flatpickr = function (e) {
            return S(this, e);
        }), Date.prototype.fp_incr = function (e) {
            return new Date(this.getFullYear(), this.getMonth(),
                this.getDate() + ('string' == typeof e ? parseInt(e, 10) : e));
        }, 'undefined' != typeof window && (window.flatpickr = T), T;
    })),
    /*!
 * https://github.com/paulmillr/es6-shim
 * @license es6-shim Copyright 2013-2016 by Paul Miller (http://paulmillr.com)
 *   and contributors,  MIT License
 * es6-shim: v0.35.4
 * see https://github.com/paulmillr/es6-shim/blob/0.35.3/LICENSE
 * Details and documentation:
 * https://github.com/paulmillr/es6-shim/
 */
    function (e, t) {
        'function' == typeof define && define.amd
            ? define(t)
            : 'object' == typeof exports
            ? module.exports = t()
            : e.returnExports = t();
    }(this, (function () {
        'use strict';
        var e, t = Function.call.bind(Function.apply),
            n = Function.call.bind(Function.call), i = Array.isArray,
            a = Object.keys, r = function (e) {
                return function () {
                    return !t(e, this, arguments);
                };
            }, o = function (e) {try {return e(), !1;} catch (e) {return !0;}},
            s = function (e) {try {return e();} catch (e) {return !1;}},
            l = r(o),
            c = function () {
                return !o((function () {
                    return Object.defineProperty({}, 'x',
                        { get: function () {} });
                }));
            }, u = !!Object.defineProperty && c(),
            d = 'foo' === function () {}.name,
            h = Function.call.bind(Array.prototype.forEach),
            f = Function.call.bind(Array.prototype.reduce),
            p = Function.call.bind(Array.prototype.filter),
            m = Function.call.bind(Array.prototype.some),
            g = function (e, t, n, i) {
                !i && t in e || (u ? Object.defineProperty(e, t, {
                    configurable: !0,
                    enumerable: !1,
                    writable: !0,
                    value: n,
                }) : e[t] = n);
            }, v = function (e, t, n) {
                h(a(t), (function (i) {
                    var a = t[i];
                    g(e, i, a, !!n);
                }));
            }, y = Function.call.bind(Object.prototype.toString),
            b = 'function' == typeof /abc/ ? function (e) {
                return 'function' == typeof e && '[object Function]' === y(e);
            } : function (e) {return 'function' == typeof e;}, x = {
                getter: function (e, t, n) {
                    if (!u) throw new TypeError('getters require true ES5 support');
                    Object.defineProperty(e, t,
                        { configurable: !0, enumerable: !1, get: n });
                },
                proxy: function (e, t, n) {
                    if (!u) throw new TypeError('getters require true ES5 support');
                    var i = Object.getOwnPropertyDescriptor(e, t);
                    Object.defineProperty(n, t, {
                        configurable: i.configurable,
                        enumerable: i.enumerable,
                        get: function () {return e[t];},
                        set: function (n) {e[t] = n;},
                    });
                },
                redefine: function (e, t, n) {
                    if (u) {
                        var i = Object.getOwnPropertyDescriptor(e, t);
                        i.value = n, Object.defineProperty(e, t, i);
                    } else e[t] = n;
                },
                defineByDescriptor: function (e, t, n) {
                    u ? Object.defineProperty(e, t, n) : 'value' in n &&
                        (e[t] = n.value);
                },
                preserveToString: function (e, t) {
                    t && b(t.toString) && g(e, 'toString', t.toString.bind(t), !0);
                },
            }, _ = Object.create || function (e, t) {
                var n = function () {};
                n.prototype = e;
                var i = new n;
                return void 0 !== t &&
                a(t).forEach((function (e) {x.defineByDescriptor(i, e, t[e]);})), i;
            }, w = function (e, t) {
                return !!Object.setPrototypeOf && s((function () {
                    var n = function t (n) {
                        var i = new e(n);
                        return Object.setPrototypeOf(i, t.prototype), i;
                    };
                    return Object.setPrototypeOf(n, e), n.prototype = _(e.prototype,
                        { constructor: { value: n } }), t(n);
                }));
            }, k = function () {
                if ('undefined' != typeof self) return self;
                if ('undefined' != typeof window) return window;
                if ('undefined' != typeof global) return global;
                throw new Error('unable to locate global object');
            }, M = k(), L = M.isFinite,
            S = Function.call.bind(String.prototype.indexOf),
            T = Function.apply.bind(Array.prototype.indexOf),
            A = Function.call.bind(Array.prototype.concat),
            D = Function.call.bind(String.prototype.slice),
            C = Function.call.bind(Array.prototype.push),
            E = Function.apply.bind(Array.prototype.push),
            O = Function.call.bind(Array.prototype.join),
            Y = Function.call.bind(Array.prototype.shift), P = Math.max,
            I = Math.min, j = Math.floor, N = Math.abs, H = Math.exp,
            F = Math.log, R = Math.sqrt,
            z = Function.call.bind(Object.prototype.hasOwnProperty),
            B = function () {}, W = M.Map, V = W && W.prototype.delete,
            q = W && W.prototype.get, U = W && W.prototype.has,
            X = W && W.prototype.set, $ = M.Symbol || {},
            G = $.species || '@@species',
            Z = Number.isNaN || function (e) {return e != e;},
            K = Number.isFinite ||
                function (e) {return 'number' == typeof e && L(e);},
            J = b(Math.sign) ? Math.sign : function (e) {
                var t = Number(e);
                return 0 === t || Z(t) ? t : t < 0 ? -1 : 1;
            }, Q = function (e) {
                var t = Number(e);
                return t < -1 || Z(t) ? NaN : 0 === t || t === 1 / 0 ? t : -1 === t
                    ? -1 / 0
                    : 1 + t - 1 == 0 ? t : t * (F(1 + t) / (1 + t - 1));
            }, ee = function (e) {return '[object Arguments]' === y(e);},
            te = function (e) {
                return null !== e && 'object' == typeof e && 'number' ==
                    typeof e.length && e.length >= 0 && '[object Array]' !==
                    y(e) && '[object Function]' === y(e.callee);
            }, ne = ee(arguments) ? ee : te, ie = {
                primitive: function (e) {
                    return null === e || 'function' != typeof e && 'object' !=
                        typeof e;
                },
                string: function (e) {return '[object String]' === y(e);},
                regex: function (e) {return '[object RegExp]' === y(e);},
                symbol: function (e) {
                    return 'function' == typeof M.Symbol && 'symbol' == typeof e;
                },
            }, ae = function (e, t, n) {
                var i = e[t];
                g(e, t, n, !0), x.preserveToString(e[t], i);
            }, re = 'function' == typeof $ && 'function' == typeof $.for &&
            ie.symbol($()),
            oe = ie.symbol($.iterator) ? $.iterator : '_es6-shim iterator_';
        M.Set && 'function' == typeof (new M.Set)['@@iterator'] &&
        (oe = '@@iterator'), M.Reflect || g(M, 'Reflect', {}, !0);
        var se, le = M.Reflect, ce = String,
            ue = 'undefined' != typeof document && document
                ? document.all
                : null, de = null == ue
            ? function (e) {return null == e;}
            : function (e) {return null == e && e !== ue;}, he = {
                Call: function (e, n) {
                    var i = arguments.length > 2
                        ? arguments[2]
                        : [];
                    if (!he.IsCallable(e)) throw new TypeError(
                        e + ' is not a function');
                    return t(e, n, i);
                },
                RequireObjectCoercible: function (e, t) {
                    if (de(e)) throw new TypeError(
                        t || 'Cannot call method on ' + e);
                    return e;
                },
                TypeIsObject: function (e) {
                    return null != e && !0 !== e && !1 !== e &&
                        ('function' == typeof e || 'object' == typeof e || e ===
                            ue);
                },
                ToObject: function (e, t) {
                    return Object(he.RequireObjectCoercible(e, t));
                },
                IsCallable: b,
                IsConstructor: function (e) {return he.IsCallable(e);},
                ToInt32: function (e) {return he.ToNumber(e) >> 0;},
                ToUint32: function (e) {return he.ToNumber(e) >>> 0;},
                ToNumber: function (e) {
                    if (re && '[object Symbol]' === y(e)) throw new TypeError(
                        'Cannot convert a Symbol value to a number');
                    return +e;
                },
                ToInteger: function (e) {
                    var t = he.ToNumber(e);
                    return Z(t) ? 0 : 0 !== t && K(t)
                        ? (t > 0 ? 1 : -1) * j(N(t))
                        : t;
                },
                ToLength: function (e) {
                    var t = he.ToInteger(e);
                    return t <= 0 ? 0 : t > Number.MAX_SAFE_INTEGER
                        ? Number.MAX_SAFE_INTEGER
                        : t;
                },
                SameValue: function (e, t) {
                    return e === t ? 0 !== e || 1 / e == 1 / t : Z(e) && Z(t);
                },
                SameValueZero: function (e, t) {return e === t || Z(e) && Z(t);},
                IsIterable: function (e) {
                    return he.TypeIsObject(e) && (void 0 !== e[oe] || ne(e));
                },
                GetIterator: function (t) {
                    if (ne(t)) return new e(t, 'value');
                    var n = he.GetMethod(t, oe);
                    if (!he.IsCallable(n)) throw new TypeError(
                        'value is not an iterable');
                    var i = he.Call(n, t);
                    if (!he.TypeIsObject(i)) throw new TypeError('bad iterator');
                    return i;
                },
                GetMethod: function (e, t) {
                    var n = he.ToObject(e)[t];
                    if (!de(n)) {
                        if (!he.IsCallable(n)) throw new TypeError(
                            'Method not callable: ' + t);
                        return n;
                    }
                },
                IteratorComplete: function (e) {return !!e.done;},
                IteratorClose: function (e, t) {
                    var n = he.GetMethod(e, 'return');
                    if (void 0 !== n) {
                        var i, a;
                        try {i = he.Call(n, e);} catch (e) {a = e;}
                        if (!t) {
                            if (a) throw a;
                            if (!he.TypeIsObject(i)) throw new TypeError(
                                'Iterator\'s return method returned a non-object.');
                        }
                    }
                },
                IteratorNext: function (e) {
                    var t = arguments.length > 1 ? e.next(arguments[1]) : e.next();
                    if (!he.TypeIsObject(t)) throw new TypeError('bad iterator');
                    return t;
                },
                IteratorStep: function (e) {
                    var t = he.IteratorNext(e);
                    return !he.IteratorComplete(t) && t;
                },
                Construct: function (e, t, n, i) {
                    var a = void 0 === n ? e : n;
                    if (!i && le.construct) return le.construct(e, t, a);
                    var r = a.prototype;
                    he.TypeIsObject(r) || (r = Object.prototype);
                    var o = _(r), s = he.Call(e, o, t);
                    return he.TypeIsObject(s) ? s : o;
                },
                SpeciesConstructor: function (e, t) {
                    var n = e.constructor;
                    if (void 0 === n) return t;
                    if (!he.TypeIsObject(n)) throw new TypeError('Bad constructor');
                    var i = n[G];
                    if (de(i)) return t;
                    if (!he.IsConstructor(i)) throw new TypeError('Bad @@species');
                    return i;
                },
                CreateHTML: function (e, t, n, i) {
                    var a = he.ToString(e), r = '<' + t;
                    '' !== n &&
                    (r += ' ' + n + '="' + he.ToString(i).replace(/"/g, '&quot;') +
                        '"');
                    return r + '>' + a + '</' + t + '>';
                },
                IsRegExp: function (e) {
                    if (!he.TypeIsObject(e)) return !1;
                    var t = e[$.match];
                    return void 0 !== t ? !!t : ie.regex(e);
                },
                ToString: function (e) {
                    if (re && '[object Symbol]' === y(e)) throw new TypeError(
                        'Cannot convert a Symbol value to a number');
                    return ce(e);
                },
            };
        if (u && re) {
            var fe = function (e) {
                if (ie.symbol($[e])) return $[e];
                var t = $.for('Symbol.' + e);
                return Object.defineProperty($, e, {
                    configurable: !1,
                    enumerable: !1,
                    writable: !1,
                    value: t,
                }), t;
            };
            if (!ie.symbol($.search)) {
                var pe = fe('search'), me = String.prototype.search;
                g(RegExp.prototype, pe,
                    (function (e) {return he.Call(me, e, [this]);}));
                var ge = function (e) {
                    var t = he.RequireObjectCoercible(this);
                    if (!de(e)) {
                        var n = he.GetMethod(e, pe);
                        if (void 0 !== n) return he.Call(n, e, [t]);
                    }
                    return he.Call(me, t, [he.ToString(e)]);
                };
                ae(String.prototype, 'search', ge);
            }
            if (!ie.symbol($.replace)) {
                var ve = fe('replace'), ye = String.prototype.replace;
                g(RegExp.prototype, ve,
                    (function (e, t) {return he.Call(ye, e, [this, t]);}));
                var be = function (e, t) {
                    var n = he.RequireObjectCoercible(this);
                    if (!de(e)) {
                        var i = he.GetMethod(e, ve);
                        if (void 0 !== i) return he.Call(i, e, [n, t]);
                    }
                    return he.Call(ye, n, [he.ToString(e), t]);
                };
                ae(String.prototype, 'replace', be);
            }
            if (!ie.symbol($.split)) {
                var xe = fe('split'), _e = String.prototype.split;
                g(RegExp.prototype, xe,
                    (function (e, t) {return he.Call(_e, e, [this, t]);}));
                var we = function (e, t) {
                    var n = he.RequireObjectCoercible(this);
                    if (!de(e)) {
                        var i = he.GetMethod(e, xe);
                        if (void 0 !== i) return he.Call(i, e, [n, t]);
                    }
                    return he.Call(_e, n, [he.ToString(e), t]);
                };
                ae(String.prototype, 'split', we);
            }
            var ke = ie.symbol($.match), Me = ke &&
                ((se = {})[$.match] = function () {return 42;}, 42 !==
                'a'.match(se));
            if (!ke || Me) {
                var Le = fe('match'), Se = String.prototype.match;
                g(RegExp.prototype, Le,
                    (function (e) {return he.Call(Se, e, [this]);}));
                var Te = function (e) {
                    var t = he.RequireObjectCoercible(this);
                    if (!de(e)) {
                        var n = he.GetMethod(e, Le);
                        if (void 0 !== n) return he.Call(n, e, [t]);
                    }
                    return he.Call(Se, t, [he.ToString(e)]);
                };
                ae(String.prototype, 'match', Te);
            }
        }
        var Ae = function (e, t, n) {
                x.preserveToString(t, e), Object.setPrototypeOf &&
                Object.setPrototypeOf(e, t), u ? h(Object.getOwnPropertyNames(e),
                    (function (i) {i in B || n[i] || x.proxy(e, i, t);})) : h(
                    Object.keys(e), (function (i) {
                        i in B || n[i] || (t[i] = e[i]);
                    })), t.prototype = e.prototype, x.redefine(e.prototype,
                    'constructor', t);
            }, De = function () {return this;},
            Ce = function (e) {u && !z(e, G) && x.getter(e, G, De);},
            Ee = function (e, t) {
                var n = t || function () {return this;};
                g(e, oe, n), !e[oe] && ie.symbol(oe) && (e[oe] = n);
            }, Oe = function (e, t, n) {
                u
                    ? Object.defineProperty(e, t,
                    { configurable: !0, enumerable: !0, writable: !0, value: n })
                    : e[t] = n;
            }, Ye = function (e, t, n) {
                if (Oe(e, t, n), !he.SameValue(e[t], n)) throw new TypeError(
                    'property is nonconfigurable');
            }, Pe = function (e, t, n, i) {
                if (!he.TypeIsObject(e)) throw new TypeError(
                    'Constructor requires `new`: ' + t.name);
                var a = t.prototype;
                he.TypeIsObject(a) || (a = n);
                var r = _(a);
                for (var o in i) if (z(i, o)) {
                    var s = i[o];
                    g(r, o, s, !0);
                }
                return r;
            };
        if (String.fromCodePoint && 1 !== String.fromCodePoint.length) {
            var Ie = String.fromCodePoint;
            ae(String, 'fromCodePoint',
                (function (e) {return he.Call(Ie, this, arguments);}));
        }
        var je = {
            fromCodePoint: function (e) {
                for (var t, n = [], i = 0, a = arguments.length; i < a; i++) {
                    if (t = Number(arguments[i]), !he.SameValue(t,
                        he.ToInteger(t)) || t < 0 || t >
                    1114111) throw new RangeError('Invalid code point ' + t);
                    t < 65536 ? C(n, String.fromCharCode(t)) : (t -= 65536, C(n,
                        String.fromCharCode(55296 + (t >> 10))), C(n,
                        String.fromCharCode(t % 1024 + 56320)));
                }
                return O(n, '');
            },
            raw: function (e) {
                var t = he.ToObject(e, 'bad template'),
                    n = he.ToObject(t.raw, 'bad raw value'), i = n.length,
                    a = he.ToLength(i);
                if (a <= 0) return '';
                for (var r, o, s, l, c = [], u = 0; u < a &&
                (r = he.ToString(u), s = he.ToString(n[r]), C(c, s), !(u + 1 >=
                    a));) o = u + 1 < arguments.length
                    ? arguments[u + 1]
                    : '', l = he.ToString(o), C(c, l), u += 1;
                return O(c, '');
            },
        };
        String.raw && 'xy' !==
        String.raw({ raw: { 0: 'x', 1: 'y', length: 2 } }) &&
        ae(String, 'raw', je.raw), v(String, je);
        var Ne = function e (t, n) {
            if (n < 1) return '';
            if (n % 2) return e(t, n - 1) + t;
            var i = e(t, n / 2);
            return i + i;
        }, He = 1 / 0, Fe = {
            repeat: function (e) {
                var t = he.ToString(he.RequireObjectCoercible(this)),
                    n = he.ToInteger(e);
                if (n < 0 || n >= He) throw new RangeError(
                    'repeat count must be less than infinity and not overflow maximum string size');
                return Ne(t, n);
            },
            startsWith: function (e) {
                var t = he.ToString(he.RequireObjectCoercible(this));
                if (he.IsRegExp(e)) throw new TypeError(
                    'Cannot call method "startsWith" with a regex');
                var n, i = he.ToString(e);
                arguments.length > 1 && (n = arguments[1]);
                var a = P(he.ToInteger(n), 0);
                return D(t, a, a + i.length) === i;
            },
            endsWith: function (e) {
                var t = he.ToString(he.RequireObjectCoercible(this));
                if (he.IsRegExp(e)) throw new TypeError(
                    'Cannot call method "endsWith" with a regex');
                var n, i = he.ToString(e), a = t.length;
                arguments.length > 1 && (n = arguments[1]);
                var r = void 0 === n ? a : he.ToInteger(n), o = I(P(r, 0), a);
                return D(t, o - i.length, o) === i;
            },
            includes: function (e) {
                if (he.IsRegExp(e)) throw new TypeError(
                    '"includes" does not accept a RegExp');
                var t, n = he.ToString(e);
                return arguments.length > 1 && (t = arguments[1]), -1 !==
                S(this, n, t);
            },
            codePointAt: function (e) {
                var t = he.ToString(he.RequireObjectCoercible(this)),
                    n = he.ToInteger(e), i = t.length;
                if (n >= 0 && n < i) {
                    var a = t.charCodeAt(n);
                    if (a < 55296 || a > 56319 || n + 1 === i) return a;
                    var r = t.charCodeAt(n + 1);
                    return r < 56320 || r > 57343 ? a : 1024 * (a - 55296) +
                        (r - 56320) + 65536;
                }
            },
        };
        if (String.prototype.includes && !1 !== 'a'.includes('a', 1 / 0) &&
        ae(String.prototype, 'includes',
            Fe.includes), String.prototype.startsWith &&
        String.prototype.endsWith) {
            var Re = o((function () {return '/a/'.startsWith(/a/);})), ze = s(
                (function () {return !1 === 'abc'.startsWith('a', 1 / 0);}));
            Re && ze || (ae(String.prototype, 'startsWith', Fe.startsWith), ae(
                String.prototype, 'endsWith', Fe.endsWith));
        }
        if (re) {
            var Be = s((function () {
                var e = /a/;
                return e[$.match] = !1, '/a/'.startsWith(e);
            }));
            Be || ae(String.prototype, 'startsWith', Fe.startsWith);
            var We = s((function () {
                var e = /a/;
                return e[$.match] = !1, '/a/'.endsWith(e);
            }));
            We || ae(String.prototype, 'endsWith', Fe.endsWith);
            var Ve = s((function () {
                var e = /a/;
                return e[$.match] = !1, '/a/'.includes(e);
            }));
            Ve || ae(String.prototype, 'includes', Fe.includes);
        }
        v(String.prototype, Fe);
        var qe = [
                '\t\n\v\f\r   ᠎    ',
                '          \u2028',
                '\u2029\ufeff'].join(''),
            Ue = new RegExp('(^[' + qe + ']+)|([' + qe + ']+$)', 'g'),
            Xe = function () {
                return he.ToString(he.RequireObjectCoercible(this)).
                    replace(Ue, '');
            }, $e = ['…', '​', '￾'].join(''),
            Ge = new RegExp('[' + $e + ']', 'g'), Ze = /^[-+]0x[0-9a-f]+$/i,
            Ke = $e.trim().length !== $e.length;
        g(String.prototype, 'trim', Xe, Ke);
        var Je = function (e) {
            return {
                value: e,
                done: 0 === arguments.length,
            };
        }, Qe = function (e) {
            he.RequireObjectCoercible(e), this._s = he.ToString(e), this._i = 0;
        };
        Qe.prototype.next = function () {
            var e = this._s, t = this._i;
            if (void 0 === e || t >= e.length) return this._s = void 0, Je();
            var n, i, a = e.charCodeAt(t);
            return i = a < 55296 || a > 56319 || t + 1 === e.length ||
            (n = e.charCodeAt(t + 1)) < 56320 || n > 57343
                ? 1
                : 2, this._i = t + i, Je(e.substr(t, i));
        }, Ee(Qe.prototype), Ee(String.prototype,
            (function () {return new Qe(this);}));
        var et = {
            from: function (e) {
                var t, i, a, r = this;
                if (arguments.length > 1 && (t = arguments[1]), void 0 ===
                t) i = !1; else {
                    if (!he.IsCallable(t)) throw new TypeError(
                        'Array.from: when provided, the second argument must be a function');
                    arguments.length > 2 && (a = arguments[2]), i = !0;
                }
                var o, s, l, c = void 0 !== (ne(e) || he.GetMethod(e, oe));
                if (c) {
                    s = he.IsConstructor(r) ? Object(new r) : [];
                    var u, d, h = he.GetIterator(e);
                    for (l = 0; !1 !== (u = he.IteratorStep(h));) {
                        d = u.value;
                        try {
                            i && (d = void 0 === a ? t(d, l) : n(t, a, d,
                                l)), s[l] = d;
                        } catch (e) {throw he.IteratorClose(h, !0), e;}
                        l += 1;
                    }
                    o = l;
                } else {
                    var f, p = he.ToObject(e);
                    for (o = he.ToLength(p.length), s = he.IsConstructor(r)
                        ? Object(new r(o))
                        : new Array(o), l = 0; l < o; ++l) f = p[l], i &&
                    (f = void 0 === a ? t(f, l) : n(t, a, f, l)), Ye(s, l, f);
                }
                return s.length = o, s;
            },
            of: function () {
                for (var e = arguments.length, t = this, n = i(t) ||
                !he.IsCallable(t) ? new Array(e) : he.Construct(t,
                    [e]), a = 0; a < e; ++a) Ye(n, a, arguments[a]);
                return n.length = e, n;
            },
        };
        v(Array, et), Ce(Array), v((e = function (
            e,
            t) {this.i = 0, this.array = e, this.kind = t;}).prototype,
            {
                next: function () {
                    var t = this.i, n = this.array;
                    if (!(this instanceof e)) throw new TypeError(
                        'Not an ArrayIterator');
                    if (void 0 !== n && t < he.ToLength(n.length)) {
                        var i, a = this.kind;
                        return 'key' === a ? i = t : 'value' === a
                            ? i = n[t]
                            : 'entry' === a && (i = [t, n[t]]), this.i = t +
                            1, Je(i);
                    }
                    return this.array = void 0, Je();
                },
            }), Ee(e.prototype);
        var tt = Array.of === et.of || function () {
            var e = function (e) {this.length = e;};
            e.prototype = [];
            var t = Array.of.apply(e, [1, 2]);
            return t instanceof e && 2 === t.length;
        }();
        tt || ae(Array, 'of', et.of);
        var nt = {
            copyWithin: function (e, t) {
                var n, i = he.ToObject(this), a = he.ToLength(i.length),
                    r = he.ToInteger(e), o = he.ToInteger(t),
                    s = r < 0 ? P(a + r, 0) : I(r, a),
                    l = o < 0 ? P(a + o, 0) : I(o, a);
                arguments.length > 2 && (n = arguments[2]);
                var c = void 0 === n ? a : he.ToInteger(n),
                    u = c < 0 ? P(a + c, 0) : I(c, a), d = I(u - l, a - s),
                    h = 1;
                for (l < s && s < l + d && (h = -1, l += d - 1, s += d - 1); d >
                0;) l in i ? i[s] = i[l] : delete i[s], l += h, s += h, d -= 1;
                return i;
            },
            fill: function (e) {
                var t, n;
                arguments.length > 1 && (t = arguments[1]), arguments.length >
                2 && (n = arguments[2]);
                var i = he.ToObject(this), a = he.ToLength(i.length);
                t = he.ToInteger(void 0 === t ? 0 : t), n = he.ToInteger(
                    void 0 === n ? a : n);
                for (var r = t < 0 ? P(a + t, 0) : I(t, a), o = n < 0
                    ? a + n
                    : n, s = r; s < a && s < o; ++s) i[s] = e;
                return i;
            },
            find: function (e) {
                var t = he.ToObject(this), i = he.ToLength(t.length);
                if (!he.IsCallable(e)) throw new TypeError(
                    'Array#find: predicate must be a function');
                for (var a, r = arguments.length > 1
                    ? arguments[1]
                    : null, o = 0; o < i; o++) if (a = t[o], r) {
                    if (n(e, r, a, o, t)) return a;
                } else if (e(a, o, t)) return a;
            },
            findIndex: function (e) {
                var t = he.ToObject(this), i = he.ToLength(t.length);
                if (!he.IsCallable(e)) throw new TypeError(
                    'Array#findIndex: predicate must be a function');
                for (var a = arguments.length > 1
                    ? arguments[1]
                    : null, r = 0; r < i; r++) if (a) {
                    if (n(e, a, t[r], r, t)) return r;
                } else if (e(t[r], r, t)) return r;
                return -1;
            },
            keys: function () {return new e(this, 'key');},
            values: function () {return new e(this, 'value');},
            entries: function () {return new e(this, 'entry');},
        };
        if (Array.prototype.keys && !he.IsCallable([1].keys().next) &&
        delete Array.prototype.keys, Array.prototype.entries &&
        !he.IsCallable([1].entries().next) &&
        delete Array.prototype.entries, Array.prototype.keys &&
        Array.prototype.entries && !Array.prototype.values &&
        Array.prototype[oe] &&
        (v(Array.prototype, { values: Array.prototype[oe] }), ie.symbol(
            $.unscopables) &&
        (Array.prototype[$.unscopables].values = !0)), d &&
        Array.prototype.values && 'values' !== Array.prototype.values.name) {
            var it = Array.prototype.values;
            ae(Array.prototype, 'values',
                (function () {return he.Call(it, this, arguments);})), g(
                Array.prototype, oe, Array.prototype.values, !0);
        }
        v(Array.prototype, nt), 1 / [!0].indexOf(!0, -0) < 0 &&
        g(Array.prototype, 'indexOf', (function (e) {
            var t = T(this, arguments);
            return 0 === t && 1 / t < 0 ? 0 : t;
        }), !0), Ee(Array.prototype,
            (function () {return this.values();})), Object.getPrototypeOf &&
        Ee(Object.getPrototypeOf([].values()));
        var at, rt = s(
            (function () {return 0 === Array.from({ length: -1 }).length;})),
            ot = 1 === (at = Array.from([0].entries())).length && i(at[0]) &&
                0 === at[0][0] && 0 === at[0][1];
        rt && ot || ae(Array, 'from', et.from);
        var st = s((function () {return Array.from([0], void 0);}));
        if (!st) {
            var lt = Array.from;
            ae(Array, 'from', (function (e) {
                return arguments.length > 1 && void 0 !== arguments[1]
                    ? he.Call(lt, this, arguments)
                    : n(lt, this, e);
            }));
        }
        var ct = -(Math.pow(2, 32) - 1), ut = function (e, t) {
            var i = { length: ct };
            return i[t ? (i.length >>> 0) - 1 : 0] = !0, s((function () {
                return n(e, i, (function () {
                    throw new RangeError('should not reach here');
                }), []), !0;
            }));
        };
        if (!ut(Array.prototype.forEach)) {
            var dt = Array.prototype.forEach;
            ae(Array.prototype, 'forEach', (function (e) {
                return he.Call(dt, this.length >= 0 ? this : [], arguments);
            }));
        }
        if (!ut(Array.prototype.map)) {
            var ht = Array.prototype.map;
            ae(Array.prototype, 'map', (function (e) {
                return he.Call(ht, this.length >= 0 ? this : [], arguments);
            }));
        }
        if (!ut(Array.prototype.filter)) {
            var ft = Array.prototype.filter;
            ae(Array.prototype, 'filter', (function (e) {
                return he.Call(ft, this.length >= 0 ? this : [], arguments);
            }));
        }
        if (!ut(Array.prototype.some)) {
            var pt = Array.prototype.some;
            ae(Array.prototype, 'some', (function (e) {
                return he.Call(pt, this.length >= 0 ? this : [], arguments);
            }));
        }
        if (!ut(Array.prototype.every)) {
            var mt = Array.prototype.every;
            ae(Array.prototype, 'every', (function (e) {
                return he.Call(mt, this.length >= 0 ? this : [], arguments);
            }));
        }
        if (!ut(Array.prototype.reduce)) {
            var gt = Array.prototype.reduce;
            ae(Array.prototype, 'reduce', (function (e) {
                return he.Call(gt, this.length >= 0 ? this : [], arguments);
            }));
        }
        if (!ut(Array.prototype.reduceRight, !0)) {
            var vt = Array.prototype.reduceRight;
            ae(Array.prototype, 'reduceRight', (function (e) {
                return he.Call(vt, this.length >= 0 ? this : [], arguments);
            }));
        }
        var yt = 8 !== Number('0o10'), bt = 2 !== Number('0b10'),
            xt = m($e, (function (e) {return 0 === Number(e + 0 + e);}));
        if (yt || bt || xt) {
            var _t = Number, wt = /^0b[01]+$/i, kt = /^0o[0-7]+$/i,
                Mt = wt.test.bind(wt), Lt = kt.test.bind(kt),
                St = function (e, t) {
                    var n;
                    if ('function' == typeof e.valueOf &&
                        (n = e.valueOf(), ie.primitive(n))) return n;
                    if ('function' == typeof e.toString &&
                        (n = e.toString(), ie.primitive(n))) return n;
                    throw new TypeError('No default value');
                }, Tt = Ge.test.bind(Ge), At = Ze.test.bind(Ze),
                Dt = function () {
                    var e = function (t) {
                        var n;
                        'string' ==
                        typeof (n = arguments.length > 0 ? ie.primitive(t)
                            ? t
                            : St(t, 'number') : 0) && (n = he.Call(Xe, n), Mt(n)
                            ? n = parseInt(D(n, 2), 2)
                            : Lt(n)
                                ? n = parseInt(D(n, 2), 8)
                                : (Tt(n) || At(n)) && (n = NaN));
                        var i = this, a = s((function () {
                            return _t.prototype.valueOf.call(i), !0;
                        }));
                        return i instanceof e && !a ? new _t(n) : _t(n);
                    };
                    return e;
                }();
            Ae(_t, Dt, {}), v(Dt, {
                NaN: _t.NaN,
                MAX_VALUE: _t.MAX_VALUE,
                MIN_VALUE: _t.MIN_VALUE,
                NEGATIVE_INFINITY: _t.NEGATIVE_INFINITY,
                POSITIVE_INFINITY: _t.POSITIVE_INFINITY,
            }), Number = Dt, x.redefine(M, 'Number', Dt);
        }
        var Ct = Math.pow(2, 53) - 1;
        v(Number, {
            MAX_SAFE_INTEGER: Ct,
            MIN_SAFE_INTEGER: -Ct,
            EPSILON: 2220446049250313e-31,
            parseInt: M.parseInt,
            parseFloat: M.parseFloat,
            isFinite: K,
            isInteger: function (e) {return K(e) && he.ToInteger(e) === e;},
            isSafeInteger: function (e) {
                return Number.isInteger(e) && N(e) <= Number.MAX_SAFE_INTEGER;
            },
            isNaN: Z,
        }), g(Number, 'parseInt', M.parseInt,
            Number.parseInt !== M.parseInt), 1 ===
        [, 1].find((function () {return !0;})) &&
        ae(Array.prototype, 'find', nt.find), 0 !==
        [, 1].findIndex((function () {return !0;})) &&
        ae(Array.prototype, 'findIndex', nt.findIndex);
        var Et, Ot, Yt, Pt = Function.bind.call(Function.bind,
            Object.prototype.propertyIsEnumerable), It = function (e, t) {
                u && Pt(e, t) && Object.defineProperty(e, t, { enumerable: !1 });
            }, jt = function () {
                for (var e = Number(this), t = arguments.length, n = t -
                    e, i = new Array(n < 0 ? 0 : n), a = e; a < t; ++a) i[a -
                e] = arguments[a];
                return i;
            }, Nt = function (e) {return function (t, n) {return t[n] = e[n], t;};},
            Ht = function (e, t) {
                var n, i = a(Object(t));
                return he.IsCallable(Object.getOwnPropertySymbols) &&
                (n = p(Object.getOwnPropertySymbols(Object(t)), Pt(t))), f(
                    A(i, n || []), Nt(t), e);
            }, Ft = {
                assign: function (e, t) {
                    var n = he.ToObject(e,
                        'Cannot convert undefined or null to object');
                    return f(he.Call(jt, 1, arguments), Ht, n);
                }, is: function (e, t) {return he.SameValue(e, t);},
            }, Rt = Object.assign && Object.preventExtensions && function () {
                var e = Object.preventExtensions({ 1: 2 });
                try {Object.assign(e, 'xy');} catch (t) {return 'y' === e[1];}
            }();
        if (Rt && ae(Object, 'assign', Ft.assign), v(Object, Ft), u) {
            var zt = {
                setPrototypeOf: function (e, t) {
                    var i, a = function (e, t) {
                        return function (e, t) {
                            if (!he.TypeIsObject(e)) throw new TypeError(
                                'cannot set prototype on a non-object');
                            if (null !== t &&
                                !he.TypeIsObject(t)) throw new TypeError(
                                'can only set prototype to an object or null' +
                                t);
                        }(e, t), n(i, e, t), e;
                    };
                    try {
                        i = e.getOwnPropertyDescriptor(e.prototype, t).set, n(i,
                            {}, null);
                    } catch (n) {
                        if (e.prototype !== {}[t]) return;
                        i = function (e) {this[t] = e;}, a.polyfill = a(
                            a({}, null), e.prototype) instanceof e;
                    }
                    return a;
                }(Object, '__proto__'),
            };
            v(Object, zt);
        }
        Object.setPrototypeOf && Object.getPrototypeOf && null !==
        Object.getPrototypeOf(Object.setPrototypeOf({}, null)) && null ===
        Object.getPrototypeOf(Object.create(null)) && (Et = Object.create(
            null), Ot = Object.getPrototypeOf, Yt = Object.setPrototypeOf, Object.getPrototypeOf = function (e) {
            var t = Ot(e);
            return t === Et ? null : t;
        }, Object.setPrototypeOf = function (e, t) {
            return Yt(e, null === t ? Et : t);
        }, Object.setPrototypeOf.polyfill = !1);
        var Bt = !o((function () {return Object.keys('foo');}));
        if (!Bt) {
            var Wt = Object.keys;
            ae(Object, 'keys',
                (function (e) {return Wt(he.ToObject(e));})), a = Object.keys;
        }
        var Vt = o((function () {return Object.keys(/a/g);}));
        if (Vt) {
            var qt = Object.keys;
            ae(Object, 'keys', (function (e) {
                if (ie.regex(e)) {
                    var t = [];
                    for (var n in e) z(e, n) && C(t, n);
                    return t;
                }
                return qt(e);
            })), a = Object.keys;
        }
        if (Object.getOwnPropertyNames) {
            var Ut = !o(
                (function () {return Object.getOwnPropertyNames('foo');}));
            if (!Ut) {
                var Xt = 'object' == typeof window
                    ? Object.getOwnPropertyNames(window)
                    : [], $t = Object.getOwnPropertyNames;
                ae(Object, 'getOwnPropertyNames', (function (e) {
                    var t = he.ToObject(e);
                    if ('[object Window]' === y(t)) try {
                        return $t(t);
                    } catch (e) {return A([], Xt);}
                    return $t(t);
                }));
            }
        }
        if (Object.getOwnPropertyDescriptor) {
            var Gt = !o((function () {
                return Object.getOwnPropertyDescriptor('foo', 'bar');
            }));
            if (!Gt) {
                var Zt = Object.getOwnPropertyDescriptor;
                ae(Object, 'getOwnPropertyDescriptor',
                    (function (e, t) {return Zt(he.ToObject(e), t);}));
            }
        }
        if (Object.seal) {
            var Kt = !o((function () {return Object.seal('foo');}));
            if (!Kt) {
                var Jt = Object.seal;
                ae(Object, 'seal',
                    (function (e) {return he.TypeIsObject(e) ? Jt(e) : e;}));
            }
        }
        if (Object.isSealed) {
            var Qt = !o((function () {return Object.isSealed('foo');}));
            if (!Qt) {
                var en = Object.isSealed;
                ae(Object, 'isSealed',
                    (function (e) {return !he.TypeIsObject(e) || en(e);}));
            }
        }
        if (Object.freeze) {
            var tn = !o((function () {return Object.freeze('foo');}));
            if (!tn) {
                var nn = Object.freeze;
                ae(Object, 'freeze',
                    (function (e) {return he.TypeIsObject(e) ? nn(e) : e;}));
            }
        }
        if (Object.isFrozen) {
            var an = !o((function () {return Object.isFrozen('foo');}));
            if (!an) {
                var rn = Object.isFrozen;
                ae(Object, 'isFrozen',
                    (function (e) {return !he.TypeIsObject(e) || rn(e);}));
            }
        }
        if (Object.preventExtensions) {
            var on = !o(
                (function () {return Object.preventExtensions('foo');}));
            if (!on) {
                var sn = Object.preventExtensions;
                ae(Object, 'preventExtensions',
                    (function (e) {return he.TypeIsObject(e) ? sn(e) : e;}));
            }
        }
        if (Object.isExtensible) {
            var ln = !o((function () {return Object.isExtensible('foo');}));
            if (!ln) {
                var cn = Object.isExtensible;
                ae(Object, 'isExtensible',
                    (function (e) {return !!he.TypeIsObject(e) && cn(e);}));
            }
        }
        if (Object.getPrototypeOf) {
            var un = !o((function () {return Object.getPrototypeOf('foo');}));
            if (!un) {
                var dn = Object.getPrototypeOf;
                ae(Object, 'getPrototypeOf',
                    (function (e) {return dn(he.ToObject(e));}));
            }
        }
        var hn, fn = u &&
            ((hn = Object.getOwnPropertyDescriptor(RegExp.prototype,
                'flags')) && he.IsCallable(hn.get));
        if (u && !fn) {
            var pn = function () {
                if (!he.TypeIsObject(this)) throw new TypeError(
                    'Method called on incompatible type: must be an object.');
                var e = '';
                return this.global && (e += 'g'), this.ignoreCase &&
                (e += 'i'), this.multiline && (e += 'm'), this.unicode &&
                (e += 'u'), this.sticky && (e += 'y'), e;
            };
            x.getter(RegExp.prototype, 'flags', pn);
        }
        var mn, gn = u &&
            s((function () {return '/a/i' === String(new RegExp(/a/g, 'i'));})),
            vn = re && u && ((mn = /./)[$.match] = !1, RegExp(mn) === mn),
            yn = s((function () {
                return '/abc/' ===
                    RegExp.prototype.toString.call({ source: 'abc' });
            })), bn = yn && s((function () {
                return '/a/b' ===
                    RegExp.prototype.toString.call({ source: 'a', flags: 'b' });
            }));
        if (!yn || !bn) {
            var xn = RegExp.prototype.toString;
            g(RegExp.prototype, 'toString', (function () {
                var e = he.RequireObjectCoercible(this);
                return ie.regex(e) ? n(xn, e) : '/' + ce(e.source) + '/' +
                    ce(e.flags);
            }), !0), x.preserveToString(RegExp.prototype.toString, xn);
        }
        if (u && (!gn || vn)) {
            var _n = Object.getOwnPropertyDescriptor(RegExp.prototype,
                'flags').get,
                wn = Object.getOwnPropertyDescriptor(RegExp.prototype,
                    'source') || {}, kn = function () {return this.source;},
                Mn = he.IsCallable(wn.get) ? wn.get : kn, Ln = RegExp,
                Sn = function e (t, n) {
                    var i = he.IsRegExp(t);
                    return this instanceof e || !i || void 0 !== n ||
                    t.constructor !== e ? ie.regex(t) ? new e(he.Call(Mn, t),
                        void 0 === n ? he.Call(_n, t) : n) : (i &&
                    (t.source, void 0 === n && t.flags), new Ln(t, n)) : t;
                };
            Ae(Ln, Sn, { $input: !0 }), RegExp = Sn, x.redefine(M, 'RegExp',
                Sn);
        }
        if (u) {
            var Tn = {
                input: '$_',
                lastMatch: '$&',
                lastParen: '$+',
                leftContext: '$`',
                rightContext: '$\'',
            };
            h(a(Tn), (function (e) {
                e in RegExp && !(Tn[e] in RegExp) &&
                x.getter(RegExp, Tn[e], (function () {return RegExp[e];}));
            }));
        }
        Ce(RegExp);
        var An = 1 / Number.EPSILON, Dn = function (e) {return e + An - An;},
            Cn = Math.pow(2, -23), En = Math.pow(2, 127) * (2 - Cn),
            On = Math.pow(2, -126), Yn = Math.E, Pn = Math.LOG2E,
            In = Math.LOG10E, jn = Number.prototype.clz;
        delete Number.prototype.clz;
        var Nn = {
            acosh: function (e) {
                var t = Number(e);
                if (Z(t) || e < 1) return NaN;
                if (1 === t) return 0;
                if (t === 1 / 0) return t;
                var n = 1 / (t * t);
                if (t < 2) return Q(t - 1 + R(1 - n) * t);
                var i = t / 2;
                return Q(i + R(1 - n) * i - 1) + 1 / Pn;
            },
            asinh: function (e) {
                var t = Number(e);
                if (0 === t || !L(t)) return t;
                var n = N(t), i = n * n, a = J(t);
                return n < 1 ? a * Q(n + i / (R(i + 1) + 1)) : a *
                    (Q(n / 2 + R(1 + 1 / i) * n / 2 - 1) + 1 / Pn);
            },
            atanh: function (e) {
                var t = Number(e);
                if (0 === t) return t;
                if (-1 === t) return -1 / 0;
                if (1 === t) return 1 / 0;
                if (Z(t) || t < -1 || t > 1) return NaN;
                var n = N(t);
                return J(t) * Q(2 * n / (1 - n)) / 2;
            },
            cbrt: function (e) {
                var t = Number(e);
                if (0 === t) return t;
                var n, i = t < 0;
                return i && (t = -t), n = t === 1 / 0 ? 1 / 0 : (t /
                    ((n = H(F(t) / 3)) * n) + 2 * n) / 3, i ? -n : n;
            },
            clz32: function (e) {
                var t = Number(e), n = he.ToUint32(t);
                return 0 === n ? 32 : jn ? he.Call(jn, n) : 31 -
                    j(F(n + .5) * Pn);
            },
            cosh: function (e) {
                var t = Number(e);
                if (0 === t) return 1;
                if (Z(t)) return NaN;
                if (!L(t)) return 1 / 0;
                var n = H(N(t) - 1);
                return (n + 1 / (n * Yn * Yn)) * (Yn / 2);
            },
            expm1: function (e) {
                var t = Number(e);
                if (t === -1 / 0) return -1;
                if (!L(t) || 0 === t) return t;
                if (N(t) > .5) return H(t) - 1;
                for (var n = t, i = 0, a = 1; i + n !== i;) i += n, n *= t /
                    (a += 1);
                return i;
            },
            hypot: function (e, t) {
                for (var n = 0, i = 0, a = 0; a < arguments.length; ++a) {
                    var r = N(Number(arguments[a]));
                    i < r ? (n *= i / r * (i / r), n += 1, i = r) : n += r > 0
                        ? r / i * (r / i)
                        : r;
                }
                return i === 1 / 0 ? 1 / 0 : i * R(n);
            },
            log2: function (e) {return F(e) * Pn;},
            log10: function (e) {return F(e) * In;},
            log1p: Q,
            sign: J,
            sinh: function (e) {
                var t = Number(e);
                if (!L(t) || 0 === t) return t;
                var n = N(t);
                if (n < 1) {
                    var i = Math.expm1(n);
                    return J(t) * i * (1 + 1 / (i + 1)) / 2;
                }
                var a = H(n - 1);
                return J(t) * (a - 1 / (a * Yn * Yn)) * (Yn / 2);
            },
            tanh: function (e) {
                var t = Number(e);
                return Z(t) || 0 === t ? t : t >= 20 ? 1 : t <= -20
                    ? -1
                    : (Math.expm1(t) - Math.expm1(-t)) / (H(t) + H(-t));
            },
            trunc: function (e) {
                var t = Number(e);
                return t < 0 ? -j(-t) : j(t);
            },
            imul: function (e, t) {
                var n = he.ToUint32(e), i = he.ToUint32(t), a = 65535 & n,
                    r = 65535 & i;
                return a * r +
                    ((n >>> 16 & 65535) * r + a * (i >>> 16 & 65535) << 16 >>>
                        0) | 0;
            },
            fround: function (e) {
                var t = Number(e);
                if (0 === t || t === 1 / 0 || t === -1 / 0 || Z(t)) return t;
                var n = J(t), i = N(t);
                if (i < On) return n * Dn(i / On / Cn) * On * Cn;
                var a = (1 + Cn / Number.EPSILON) * i, r = a - (a - i);
                return r > En || Z(r) ? n * (1 / 0) : n * r;
            },
        }, Hn = function (e, t, n) {
            return N(1 - e / t) / Number.EPSILON < (n || 8);
        };
        v(Math, Nn), g(Math, 'sinh', Nn.sinh, Math.sinh(710) === 1 / 0), g(Math,
            'cosh', Nn.cosh, Math.cosh(710) === 1 / 0), g(Math, 'log1p',
            Nn.log1p, -1e-17 !== Math.log1p(-1e-17)), g(Math, 'asinh', Nn.asinh,
            Math.asinh(-1e7) !== -Math.asinh(1e7)), g(Math, 'asinh', Nn.asinh,
            Math.asinh(1e300) === 1 / 0), g(Math, 'atanh', Nn.atanh,
            0 === Math.atanh(1e-300)), g(Math, 'tanh', Nn.tanh,
            -2e-17 !== Math.tanh(-2e-17)), g(Math, 'acosh', Nn.acosh,
            Math.acosh(Number.MAX_VALUE) === 1 / 0), g(Math, 'acosh', Nn.acosh,
            !Hn(Math.acosh(1 + Number.EPSILON),
                Math.sqrt(2 * Number.EPSILON))), g(Math, 'cbrt', Nn.cbrt,
            !Hn(Math.cbrt(1e-300), 1e-100)), g(Math, 'sinh', Nn.sinh,
            -2e-17 !== Math.sinh(-2e-17));
        var Fn = Math.expm1(10);
        g(Math, 'expm1', Nn.expm1,
            Fn > 22025.465794806718 || Fn < 22025.465794806718), g(Math,
            'hypot', Nn.hypot, Math.hypot(1 / 0, NaN) !== 1 / 0);
        var Rn = Math.round,
            zn = 0 === Math.round(.5 - Number.EPSILON / 4) && 1 ===
                Math.round(Number.EPSILON / 3.99 - .5), Bn = An + 1,
            Wn = 2 * An - 1,
            Vn = [Bn, Wn].every((function (e) {return Math.round(e) === e;}));
        g(Math, 'round', (function (e) {
            var t = j(e);
            return e - t < .5 ? t : -1 === t ? -0 : t + 1;
        }), !zn || !Vn), x.preserveToString(Math.round, Rn);
        var qn = Math.imul;
        -5 !== Math.imul(4294967295, 5) &&
        (Math.imul = Nn.imul, x.preserveToString(Math.imul, qn)), 2 !==
        Math.imul.length && ae(Math, 'imul',
            (function (e, t) {return he.Call(qn, Math, arguments);}));
        var Un, Xn, $n = function () {
            var e = M.setTimeout;
            if ('function' == typeof e || 'object' == typeof e) {
                he.IsPromise = function (e) {
                    return !!he.TypeIsObject(e) && void 0 !== e._promise;
                };
                var t, i = function (e) {
                    if (!he.IsConstructor(e)) throw new TypeError(
                        'Bad promise constructor');
                    var t = this;
                    if (t.resolve = void 0, t.reject = void 0, t.promise = new e(
                        (function (e, n) {
                            if (void 0 !== t.resolve || void 0 !==
                                t.reject) throw new TypeError(
                                'Bad Promise implementation!');
                            t.resolve = e, t.reject = n;
                        })), !he.IsCallable(t.resolve) ||
                    !he.IsCallable(t.reject)) throw new TypeError(
                        'Bad promise constructor');
                };
                'undefined' != typeof window &&
                he.IsCallable(window.postMessage) && (t = function () {
                    var e = [], t = 'zero-timeout-message';
                    return window.addEventListener('message', (function (n) {
                        if (n.source === window && n.data === t) {
                            if (n.stopPropagation(), 0 === e.length) return;
                            Y(e)();
                        }
                    }), !0), function (n) {
                        C(e, n), window.postMessage(t, '*');
                    };
                });
                var a, r, o, s, l = he.IsCallable(M.setImmediate)
                    ? M.setImmediate
                    : 'object' == typeof process && process.nextTick
                        ? process.nextTick
                        : (a = M.Promise, (r = a && a.resolve && a.resolve()) &&
                        function (e) {return r.then(e);} ||
                        (he.IsCallable(t) ? t() : function (t) {e(t, 0);})),
                    c = function (e) {return e;}, u = function (e) {throw e;},
                    d = {},
                    h = function (e, t, n) {l((function () {f(e, t, n);}));},
                    f = function (e, t, n) {
                        var i, a;
                        if (t === d) return e(n);
                        try {
                            i = e(n), a = t.resolve;
                        } catch (e) {i = e, a = t.reject;}
                        a(i);
                    }, p = function (e, t) {
                        var n = e._promise, i = n.reactionLength;
                        if (i > 0 &&
                            (h(n.fulfillReactionHandler0, n.reactionCapability0,
                                t), n.fulfillReactionHandler0 = void 0, n.rejectReactions0 = void 0, n.reactionCapability0 = void 0, i >
                            1)) for (var a = 1, r = 0; a < i; a++, r += 3) h(
                            n[r + 0], n[r + 2], t), e[r + 0] = void 0, e[r +
                        1] = void 0, e[r + 2] = void 0;
                        n.result = t, n.state = 1, n.reactionLength = 0;
                    }, m = function (e, t) {
                        var n = e._promise, i = n.reactionLength;
                        if (i > 0 &&
                            (h(n.rejectReactionHandler0, n.reactionCapability0,
                                t), n.fulfillReactionHandler0 = void 0, n.rejectReactions0 = void 0, n.reactionCapability0 = void 0, i >
                            1)) for (var a = 1, r = 0; a < i; a++, r += 3) h(
                            n[r + 1], n[r + 2], t), e[r + 0] = void 0, e[r +
                        1] = void 0, e[r + 2] = void 0;
                        n.result = t, n.state = 2, n.reactionLength = 0;
                    }, g = function (e) {
                        var t = !1;
                        return {
                            resolve: function (n) {
                                var i;
                                if (!t) {
                                    if (t = !0, n === e) return m(e,
                                        new TypeError('Self resolution'));
                                    if (!he.TypeIsObject(n)) return p(e, n);
                                    try {i = n.then;} catch (t) {return m(e, t);}
                                    if (!he.IsCallable(i)) return p(e, n);
                                    l((function () {b(e, n, i);}));
                                }
                            },
                            reject: function (n) {if (!t) return t = !0, m(e, n);},
                        };
                    }, y = function (e, t, i, a) {
                        e === s ? n(e, t, i, a, d) : n(e, t, i, a);
                    }, b = function (e, t, n) {
                        var i = g(e), a = i.resolve, r = i.reject;
                        try {y(n, t, a, r);} catch (e) {r(e);}
                    }, x = function () {
                        var e = function (t) {
                            if (!(this instanceof e)) throw new TypeError(
                                'Constructor Promise requires "new"');
                            if (this && this._promise) throw new TypeError(
                                'Bad construction');
                            if (!he.IsCallable(t)) throw new TypeError(
                                'not a valid resolver');
                            var n = Pe(this, e, o, {
                                _promise: {
                                    result: void 0,
                                    state: 0,
                                    reactionLength: 0,
                                    fulfillReactionHandler0: void 0,
                                    rejectReactionHandler0: void 0,
                                    reactionCapability0: void 0,
                                },
                            }), i = g(n), a = i.reject;
                            try {t(i.resolve, a);} catch (e) {a(e);}
                            return n;
                        };
                        return e;
                    }();
                o = x.prototype;
                var _ = function (e, t, n, i) {
                    var a = !1;
                    return function (r) {
                        a ||
                        (a = !0, t[e] = r, 0 == --i.count && (0, n.resolve)(t));
                    };
                };
                return v(x, {
                    all: function (e) {
                        var t = this;
                        if (!he.TypeIsObject(t)) throw new TypeError(
                            'Promise is not object');
                        var n, a, r = new i(t);
                        try {
                            return function (
                                e, t, n) {
                                for (var i, a, r = e.iterator, o = [], s = { count: 1 }, l = 0; ;) {
                                    try {
                                        if (!1 === (i = he.IteratorStep(r))) {
                                            e.done = !0;
                                            break;
                                        }
                                        a = i.value;
                                    } catch (t) {throw e.done = !0, t;}
                                    o[l] = void 0;
                                    var c = t.resolve(a), u = _(l, o, n, s);
                                    s.count += 1, y(c.then, c, u,
                                        n.reject), l += 1;
                                }
                                return 0 == --s.count &&
                                (0, n.resolve)(o), n.promise;
                            }(a = { iterator: n = he.GetIterator(e), done: !1 },
                                t, r);
                        } catch (e) {
                            var o = e;
                            if (a && !a.done) try {
                                he.IteratorClose(n, !0);
                            } catch (e) {o = e;}
                            return (0, r.reject)(o), r.promise;
                        }
                    },
                    race: function (e) {
                        var t = this;
                        if (!he.TypeIsObject(t)) throw new TypeError(
                            'Promise is not object');
                        var n, a, r = new i(t);
                        try {
                            return function (
                                e, t, n) {
                                for (var i, a, r, o = e.iterator; ;) {
                                    try {
                                        if (!1 === (i = he.IteratorStep(o))) {
                                            e.done = !0;
                                            break;
                                        }
                                        a = i.value;
                                    } catch (t) {throw e.done = !0, t;}
                                    r = t.resolve(a), y(r.then, r, n.resolve,
                                        n.reject);
                                }
                                return n.promise;
                            }(a = { iterator: n = he.GetIterator(e), done: !1 },
                                t, r);
                        } catch (e) {
                            var o = e;
                            if (a && !a.done) try {
                                he.IteratorClose(n, !0);
                            } catch (e) {o = e;}
                            return (0, r.reject)(o), r.promise;
                        }
                    },
                    reject: function (e) {
                        if (!he.TypeIsObject(this)) throw new TypeError(
                            'Bad promise constructor');
                        var t = new i(this);
                        return (0, t.reject)(e), t.promise;
                    },
                    resolve: function (e) {
                        var t = this;
                        if (!he.TypeIsObject(t)) throw new TypeError(
                            'Bad promise constructor');
                        if (he.IsPromise(e) && e.constructor === t) return e;
                        var n = new i(t);
                        return (0, n.resolve)(e), n.promise;
                    },
                }), v(o, {
                    catch: function (e) {return this.then(null, e);},
                    then: function (e, t) {
                        var n = this;
                        if (!he.IsPromise(n)) throw new TypeError(
                            'not a promise');
                        var a, r = he.SpeciesConstructor(n, x),
                            o = arguments.length > 2 && arguments[2] === d;
                        a = o && r === x ? d : new i(r);
                        var s, l = he.IsCallable(e) ? e : c,
                            f = he.IsCallable(t) ? t : u, p = n._promise;
                        if (0 === p.state) {
                            if (0 ===
                                p.reactionLength) p.fulfillReactionHandler0 = l, p.rejectReactionHandler0 = f, p.reactionCapability0 = a; else {
                                var m = 3 * (p.reactionLength - 1);
                                p[m + 0] = l, p[m + 1] = f, p[m + 2] = a;
                            }
                            p.reactionLength += 1;
                        } else if (1 === p.state) s = p.result, h(l, a,
                            s); else {
                            if (2 !== p.state) throw new TypeError(
                                'unexpected Promise state');
                            s = p.result, h(f, a, s);
                        }
                        return a.promise;
                    },
                }), d = new i(x), s = o.then, x;
            }
        }();
        if (M.Promise &&
        (delete M.Promise.accept, delete M.Promise.defer, delete M.Promise.prototype.chain), 'function' ==
        typeof $n) {
            v(M, { Promise: $n });
            var Gn = w(M.Promise, (function (e) {
                    return e.resolve(42).
                        then((function () {})) instanceof e;
                })), Zn = !o((function () {
                    return M.Promise.reject(42).
                        then(null, 5).
                        then(null, B);
                })), Kn = o((function () {return M.Promise.call(3, B);})),
                Jn = function (e) {
                    var t = e.resolve(5);
                    t.constructor = {};
                    var n = e.resolve(t);
                    try {n.then(null, B).then(null, B);} catch (e) {return !0;}
                    return t === n;
                }(M.Promise), Qn = u &&
                (Un = 0, Xn = Object.defineProperty({}, 'then',
                    { get: function () {Un += 1;} }), Promise.resolve(Xn), 1 ===
                Un), ei = function e (t) {
                    var n = new Promise(t);
                    t(3,
                        (function () {})), this.then = n.then, this.constructor = e;
                };
            ei.prototype = Promise.prototype, ei.all = Promise.all;
            var ti = s((function () {return !!ei.all([1, 2]);}));
            if (Gn && Zn && Kn && !Jn && Qn && !ti ||
            (Promise = $n, ae(M, 'Promise', $n)), 1 !== Promise.all.length) {
                var ni = Promise.all;
                ae(Promise, 'all',
                    (function (e) {return he.Call(ni, this, arguments);}));
            }
            if (1 !== Promise.race.length) {
                var ii = Promise.race;
                ae(Promise, 'race',
                    (function (e) {return he.Call(ii, this, arguments);}));
            }
            if (1 !== Promise.resolve.length) {
                var ai = Promise.resolve;
                ae(Promise, 'resolve',
                    (function (e) {return he.Call(ai, this, arguments);}));
            }
            if (1 !== Promise.reject.length) {
                var ri = Promise.reject;
                ae(Promise, 'reject',
                    (function (e) {return he.Call(ri, this, arguments);}));
            }
            It(Promise, 'all'), It(Promise, 'race'), It(Promise, 'resolve'), It(
                Promise, 'reject'), Ce(Promise);
        }
        var oi, si, li = function (e) {
            var t = a(f(e, (function (e, t) {return e[t] = !0, e;}), {}));
            return e.join(':') === t.join(':');
        }, ci = li(['z', 'a', 'bb']), ui = li(['z', 1, 'a', '3', 2]);
        if (u) {
            var di = function (e, t) {
                return t || ci
                    ? de(e) ? '^' + he.ToString(e) : 'string' == typeof e
                        ? '$' + e
                        : 'number' == typeof e ? ui ? e : 'n' + e : 'boolean' ==
                        typeof e ? 'b' + e : null
                    : null;
            }, hi = function () {
                return Object.create
                    ? Object.create(null)
                    : {};
            }, fi = function (e, t, a) {
                if (i(a) || ie.string(a)) h(a, (function (e) {
                    if (!he.TypeIsObject(e)) throw new TypeError(
                        'Iterator value ' + e + ' is not an entry object');
                    t.set(e[0], e[1]);
                })); else if (a instanceof e) n(e.prototype.forEach, a,
                    (function (e, n) {t.set(n, e);})); else {
                    var r, o;
                    if (!de(a)) {
                        if (o = t.set, !he.IsCallable(o)) throw new TypeError(
                            'bad map');
                        r = he.GetIterator(a);
                    }
                    if (void 0 !== r) for (; ;) {
                        var s = he.IteratorStep(r);
                        if (!1 === s) break;
                        var l = s.value;
                        try {
                            if (!he.TypeIsObject(l)) throw new TypeError(
                                'Iterator value ' + l +
                                ' is not an entry object');
                            n(o, t, l[0], l[1]);
                        } catch (e) {throw he.IteratorClose(r, !0), e;}
                    }
                }
            }, pi = function (e, t, a) {
                if (i(a) || ie.string(a)) h(a,
                    (function (e) {t.add(e);})); else if (a instanceof e) n(
                    e.prototype.forEach, a, (function (e) {t.add(e);})); else {
                    var r, o;
                    if (!de(a)) {
                        if (o = t.add, !he.IsCallable(o)) throw new TypeError(
                            'bad set');
                        r = he.GetIterator(a);
                    }
                    if (void 0 !== r) for (; ;) {
                        var s = he.IteratorStep(r);
                        if (!1 === s) break;
                        var l = s.value;
                        try {n(o, t, l);} catch (e) {
                            throw he.IteratorClose(r, !0), e;
                        }
                    }
                }
            }, mi = {
                Map: function () {
                    var e = {}, t = function (
                        e,
                        t) {this.key = e, this.value = t, this.next = null, this.prev = null;};
                    t.prototype.isRemoved = function () {
                        return this.key === e;
                    };
                    var i, a = function (e, t) {
                        if (!he.TypeIsObject(e) ||
                            !function (e) {return !!e._es6map;}(
                                e)) throw new TypeError(
                            'Method Map.prototype.' + t +
                            ' called on incompatible receiver ' +
                            he.ToString(e));
                    }, r = function (e, t) {
                        a(e,
                            '[[MapIterator]]'), this.head = e._head, this.i = this.head, this.kind = t;
                    };
                    Ee(r.prototype = {
                        isMapIterator: !0,
                        next: function () {
                            if (!this.isMapIterator) throw new TypeError(
                                'Not a MapIterator');
                            var e, t = this.i, n = this.kind, i = this.head;
                            if (void 0 === this.i) return Je();
                            for (; t.isRemoved() && t !== i;) t = t.prev;
                            for (; t.next !==
                                   i;) if (!(t = t.next).isRemoved()) return e = 'key' ===
                            n ? t.key : 'value' === n ? t.value : [
                                t.key,
                                t.value], this.i = t, Je(e);
                            return this.i = void 0, Je();
                        },
                    });
                    var o = function e () {
                        if (!(this instanceof e)) throw new TypeError(
                            'Constructor Map requires "new"');
                        if (this && this._es6map) throw new TypeError(
                            'Bad construction');
                        var n = Pe(this, e, i, {
                            _es6map: !0,
                            _head: null,
                            _map: W ? new W : null,
                            _size: 0,
                            _storage: hi(),
                        }), a = new t(null, null);
                        return a.next = a.prev = a, n._head = a, arguments.length >
                        0 && fi(e, n, arguments[0]), n;
                    };
                    return i = o.prototype, x.getter(i, 'size', (function () {
                        if (void 0 === this._size) throw new TypeError(
                            'size method called on incompatible Map');
                        return this._size;
                    })), v(i, {
                        get: function (e) {
                            var t;
                            a(this, 'get');
                            var n = di(e, !0);
                            if (null !== n) return (t = this._storage[n])
                                ? t.value
                                : void 0;
                            if (this._map) return (t = q.call(this._map, e))
                                ? t.value
                                : void 0;
                            for (var i = this._head, r = i; (r = r.next) !==
                            i;) if (he.SameValueZero(r.key, e)) return r.value;
                        },
                        has: function (e) {
                            a(this, 'has');
                            var t = di(e, !0);
                            if (null !== t) return void 0 !== this._storage[t];
                            if (this._map) return U.call(this._map, e);
                            for (var n = this._head, i = n; (i = i.next) !==
                            n;) if (he.SameValueZero(i.key, e)) return !0;
                            return !1;
                        },
                        set: function (e, n) {
                            a(this, 'set');
                            var i, r = this._head, o = r, s = di(e, !0);
                            if (null !== s) {
                                if (void 0 !==
                                    this._storage[s]) return this._storage[s].value = n, this;
                                i = this._storage[s] = new t(e, n), o = r.prev;
                            } else this._map &&
                            (U.call(this._map, e) ? q.call(this._map,
                                e).value = n : (i = new t(e, n), X.call(
                                this._map, e, i), o = r.prev));
                            for (; (o = o.next) !== r;) if (he.SameValueZero(
                                o.key, e)) return o.value = n, this;
                            return i = i || new t(e, n), he.SameValue(-0, e) &&
                            (i.key = 0), i.next = this._head, i.prev = this._head.prev, i.prev.next = i, i.next.prev = i, this._size += 1, this;
                        },
                        delete: function (t) {
                            a(this, 'delete');
                            var n = this._head, i = n, r = di(t, !0);
                            if (null !== r) {
                                if (void 0 === this._storage[r]) return !1;
                                i = this._storage[r].prev, delete this._storage[r];
                            } else if (this._map) {
                                if (!U.call(this._map, t)) return !1;
                                i = q.call(this._map, t).prev, V.call(this._map,
                                    t);
                            }
                            for (; (i = i.next) !== n;) if (he.SameValueZero(
                                i.key,
                                t)) return i.key = e, i.value = e, i.prev.next = i.next, i.next.prev = i.prev, this._size -= 1, !0;
                            return !1;
                        },
                        clear: function () {
                            a(this, 'clear'), this._map = W
                                ? new W
                                : null, this._size = 0, this._storage = hi();
                            for (var t = this._head, n = t, i = n.next; (n = i) !==
                            t;) n.key = e, n.value = e, i = n.next, n.next = n.prev = t;
                            t.next = t.prev = t;
                        },
                        keys: function () {
                            return a(this, 'keys'), new r(this, 'key');
                        },
                        values: function () {
                            return a(this, 'values'), new r(this, 'value');
                        },
                        entries: function () {
                            return a(this, 'entries'), new r(this, 'key+value');
                        },
                        forEach: function (e) {
                            a(this, 'forEach');
                            for (var t = arguments.length > 1
                                ? arguments[1]
                                : null, i = this.entries(), r = i.next(); !r.done; r = i.next()) t
                                ? n(e, t, r.value[1], r.value[0], this)
                                : e(r.value[1], r.value[0], this);
                        },
                    }), Ee(i, i.entries), o;
                }(), Set: function () {
                    var e, t = function (e, t) {
                        if (!he.TypeIsObject(e) || !function (e) {
                            return e._es6set && void 0 !== e._storage;
                        }(e)) throw new TypeError('Set.prototype.' + t +
                            ' called on incompatible receiver ' +
                            he.ToString(e));
                    }, i = function t () {
                        if (!(this instanceof t)) throw new TypeError(
                            'Constructor Set requires "new"');
                        if (this && this._es6set) throw new TypeError(
                            'Bad construction');
                        var n = Pe(this, t, e, {
                            _es6set: !0,
                            '[[SetData]]': null,
                            _storage: hi(),
                        });
                        if (!n._es6set) throw new TypeError('bad set');
                        return arguments.length > 0 &&
                        pi(t, n, arguments[0]), n;
                    };
                    e = i.prototype;
                    var r = function (e) {
                        if (!e['[[SetData]]']) {
                            var t = new mi.Map;
                            e['[[SetData]]'] = t, h(a(e._storage),
                                (function (e) {
                                    var n = function (e) {
                                        var t = e;
                                        if ('^null' === t) return null;
                                        if ('^undefined' !== t) {
                                            var n = t.charAt(0);
                                            return '$' === n ? D(t, 1) : 'n' ===
                                            n ? +D(t, 1) : 'b' === n
                                                ? 'btrue' === t
                                                : +t;
                                        }
                                    }(e);
                                    t.set(n, n);
                                })), e['[[SetData]]'] = t;
                        }
                        e._storage = null;
                    };
                    x.getter(i.prototype, 'size', (function () {
                        return t(this, 'size'), this._storage ? a(
                            this._storage).length : (r(
                            this), this['[[SetData]]'].size);
                    })), v(i.prototype, {
                        has: function (e) {
                            var n;
                            return t(this, 'has'), this._storage && null !==
                            (n = di(e)) ? !!this._storage[n] : (r(
                                this), this['[[SetData]]'].has(e));
                        },
                        add: function (e) {
                            var n;
                            return t(this, 'add'), this._storage && null !==
                            (n = di(e)) ? (this._storage[n] = !0, this) : (r(
                                this), this['[[SetData]]'].set(e, e), this);
                        },
                        delete: function (e) {
                            var n;
                            if (t(this, 'delete'), this._storage && null !==
                            (n = di(e))) {
                                var i = z(this._storage, n);
                                return delete this._storage[n] && i;
                            }
                            return r(this), this['[[SetData]]'].delete(e);
                        },
                        clear: function () {
                            t(this, 'clear'), this._storage &&
                            (this._storage = hi()), this['[[SetData]]'] &&
                            this['[[SetData]]'].clear();
                        },
                        values: function () {
                            return t(this, 'values'), r(this), new o(
                                this['[[SetData]]'].values());
                        },
                        entries: function () {
                            return t(this, 'entries'), r(this), new o(
                                this['[[SetData]]'].entries());
                        },
                        forEach: function (e) {
                            t(this, 'forEach');
                            var i = arguments.length > 1 ? arguments[1] : null,
                                a = this;
                            r(a), this['[[SetData]]'].forEach((function (t, r) {
                                i ? n(e, i, r, r, a) : e(r, r, a);
                            }));
                        },
                    }), g(i.prototype, 'keys', i.prototype.values, !0), Ee(
                        i.prototype, i.prototype.values);
                    var o = function (e) {this.it = e;};
                    return o.prototype = {
                        isSetIterator: !0,
                        next: function () {
                            if (!this.isSetIterator) throw new TypeError(
                                'Not a SetIterator');
                            return this.it.next();
                        },
                    }, Ee(o.prototype), i;
                }(),
            }, gi = M.Set && !Set.prototype.delete && Set.prototype.remove &&
                Set.prototype.items && Set.prototype.map &&
                Array.isArray((new Set).keys);
            if (gi && (M.Set = mi.Set), M.Map || M.Set) {
                var vi = s(
                    (function () {return 2 === new Map([[1, 2]]).get(1);}));
                vi || (M.Map = function e () {
                    if (!(this instanceof e)) throw new TypeError(
                        'Constructor Map requires "new"');
                    var t = new W;
                    return arguments.length > 0 && fi(e, t,
                        arguments[0]), delete t.constructor, Object.setPrototypeOf(
                        t, M.Map.prototype), t;
                }, M.Map.prototype = _(W.prototype), g(M.Map.prototype,
                    'constructor', M.Map, !0), x.preserveToString(M.Map, W));
                var yi = new Map,
                    bi = ((si = new Map([[1, 0], [2, 0], [3, 0], [4, 0]])).set(
                        -0, si), si.get(0) === si && si.get(-0) === si &&
                    si.has(0) && si.has(-0)), xi = yi.set(1, 2) === yi;
                bi && xi || ae(Map.prototype, 'set', (function (e, t) {
                    return n(X, this, 0 === e ? 0 : e, t), this;
                })), bi || (v(Map.prototype, {
                    get: function (e) {return n(q, this, 0 === e ? 0 : e);},
                    has: function (e) {return n(U, this, 0 === e ? 0 : e);},
                }, !0), x.preserveToString(Map.prototype.get,
                    q), x.preserveToString(Map.prototype.has, U));
                var _i = new Set,
                    wi = Set.prototype.delete && Set.prototype.add &&
                        Set.prototype.has &&
                        ((oi = _i).delete(0), oi.add(-0), !oi.has(0)),
                    ki = _i.add(1) === _i;
                if (!wi || !ki) {
                    var Mi = Set.prototype.add;
                    Set.prototype.add = function (e) {
                        return n(Mi, this, 0 === e ? 0 : e), this;
                    }, x.preserveToString(Set.prototype.add, Mi);
                }
                if (!wi) {
                    var Li = Set.prototype.has;
                    Set.prototype.has = function (e) {
                        return n(Li, this, 0 === e ? 0 : e);
                    }, x.preserveToString(Set.prototype.has, Li);
                    var Si = Set.prototype.delete;
                    Set.prototype.delete = function (e) {
                        return n(Si, this, 0 === e ? 0 : e);
                    }, x.preserveToString(Set.prototype.delete, Si);
                }
                var Ti = w(M.Map, (function (e) {
                    var t = new e([]);
                    return t.set(42, 42), t instanceof e;
                })), Ai = Object.setPrototypeOf && !Ti, Di = function () {
                    try {
                        return !(M.Map() instanceof M.Map);
                    } catch (e) {return e instanceof TypeError;}
                }();
                0 === M.Map.length && !Ai && Di || (M.Map = function e () {
                    if (!(this instanceof e)) throw new TypeError(
                        'Constructor Map requires "new"');
                    var t = new W;
                    return arguments.length > 0 && fi(e, t,
                        arguments[0]), delete t.constructor, Object.setPrototypeOf(
                        t, e.prototype), t;
                }, M.Map.prototype = W.prototype, g(M.Map.prototype,
                    'constructor', M.Map, !0), x.preserveToString(M.Map, W));
                var Ci = w(M.Set, (function (e) {
                    var t = new e([]);
                    return t.add(42, 42), t instanceof e;
                })), Ei = Object.setPrototypeOf && !Ci, Oi = function () {
                    try {
                        return !(M.Set() instanceof M.Set);
                    } catch (e) {return e instanceof TypeError;}
                }();
                if (0 !== M.Set.length || Ei || !Oi) {
                    var Yi = M.Set;
                    M.Set = function e () {
                        if (!(this instanceof e)) throw new TypeError(
                            'Constructor Set requires "new"');
                        var t = new Yi;
                        return arguments.length > 0 && pi(e, t,
                            arguments[0]), delete t.constructor, Object.setPrototypeOf(
                            t, e.prototype), t;
                    }, M.Set.prototype = Yi.prototype, g(M.Set.prototype,
                        'constructor', M.Set, !0), x.preserveToString(M.Set,
                        Yi);
                }
                var Pi = new M.Map,
                    Ii = !s((function () {return Pi.keys().next().done;}));
                if (('function' != typeof M.Map.prototype.clear || 0 !==
                    (new M.Set).size || 0 !== Pi.size || 'function' !=
                    typeof M.Map.prototype.keys || 'function' !=
                    typeof M.Set.prototype.keys || 'function' !=
                    typeof M.Map.prototype.forEach || 'function' !=
                    typeof M.Set.prototype.forEach || l(M.Map) || l(M.Set) ||
                    'function' != typeof Pi.keys().next || Ii || !Ti) &&
                v(M, { Map: mi.Map, Set: mi.Set }, !0), M.Set.prototype.keys !==
                M.Set.prototype.values &&
                g(M.Set.prototype, 'keys', M.Set.prototype.values, !0), Ee(
                    Object.getPrototypeOf((new M.Map).keys())), Ee(
                    Object.getPrototypeOf((new M.Set).keys())), d && 'has' !==
                M.Set.prototype.has.name) {
                    var ji = M.Set.prototype.has;
                    ae(M.Set.prototype, 'has',
                        (function (e) {return n(ji, this, e);}));
                }
            }
            v(M, mi), Ce(M.Map), Ce(M.Set);
        }
        var Ni = function (e) {
            if (!he.TypeIsObject(e)) throw new TypeError(
                'target must be an object');
        }, Hi = {
            apply: function () {
                return he.Call(he.Call, null, arguments);
            },
            construct: function (e, t) {
                if (!he.IsConstructor(e)) throw new TypeError(
                    'First argument must be a constructor.');
                var n = arguments.length > 2 ? arguments[2] : e;
                if (!he.IsConstructor(n)) throw new TypeError(
                    'new.target must be a constructor.');
                return he.Construct(e, t, n, 'internal');
            },
            deleteProperty: function (e, t) {
                if (Ni(e), u) {
                    var n = Object.getOwnPropertyDescriptor(e, t);
                    if (n && !n.configurable) return !1;
                }
                return delete e[t];
            },
            has: function (e, t) {return Ni(e), t in e;},
        };
        Object.getOwnPropertyNames && Object.assign(Hi, {
            ownKeys: function (e) {
                Ni(e);
                var t = Object.getOwnPropertyNames(e);
                return he.IsCallable(Object.getOwnPropertySymbols) &&
                E(t, Object.getOwnPropertySymbols(e)), t;
            },
        });
        var Fi = function (e) {return !o(e);};
        if (Object.preventExtensions && Object.assign(Hi, {
            isExtensible: function (e) {return Ni(e), Object.isExtensible(e);},
            preventExtensions: function (e) {
                return Ni(e), Fi(
                    (function () {return Object.preventExtensions(e);}));
            },
        }), u) {
            var Ri = function (
                e, t, n) {
                var i = Object.getOwnPropertyDescriptor(e, t);
                if (!i) {
                    var a = Object.getPrototypeOf(e);
                    if (null === a) return;
                    return Ri(a, t, n);
                }
                return 'value' in i ? i.value : i.get
                    ? he.Call(i.get, n)
                    : void 0;
            }, zi = function (e, t, i, a) {
                var r = Object.getOwnPropertyDescriptor(e, t);
                if (!r) {
                    var o = Object.getPrototypeOf(e);
                    if (null !== o) return zi(o, t, i, a);
                    r = {
                        value: void 0,
                        writable: !0,
                        enumerable: !0,
                        configurable: !0,
                    };
                }
                return 'value' in r ? !!r.writable && (!!he.TypeIsObject(a) &&
                    (Object.getOwnPropertyDescriptor(a, t) ? le.defineProperty(
                        a, t, { value: i }) : le.defineProperty(a, t, {
                        value: i,
                        writable: !0,
                        enumerable: !0,
                        configurable: !0,
                    }))) : !!r.set && (n(r.set, a, i), !0);
            };
            Object.assign(Hi, {
                defineProperty: function (e, t, n) {
                    return Ni(e), Fi(
                        (function () {return Object.defineProperty(e, t, n);}));
                },
                getOwnPropertyDescriptor: function (e, t) {
                    return Ni(e), Object.getOwnPropertyDescriptor(e, t);
                },
                get: function (e, t) {
                    Ni(e);
                    var n = arguments.length > 2 ? arguments[2] : e;
                    return Ri(e, t, n);
                },
                set: function (e, t, n) {
                    Ni(e);
                    var i = arguments.length > 3 ? arguments[3] : e;
                    return zi(e, t, n, i);
                },
            });
        }
        if (Object.getPrototypeOf) {
            var Bi = Object.getPrototypeOf;
            Hi.getPrototypeOf = function (e) {return Ni(e), Bi(e);};
        }
        if (Object.setPrototypeOf && Hi.getPrototypeOf) {
            var Wi = function (
                e, t) {
                for (var n = t; n;) {
                    if (e === n) return !0;
                    n = Hi.getPrototypeOf(n);
                }
                return !1;
            };
            Object.assign(Hi, {
                setPrototypeOf: function (e, t) {
                    if (Ni(e), null !== t &&
                    !he.TypeIsObject(t)) throw new TypeError(
                        'proto must be an object or null');
                    return t === le.getPrototypeOf(e) ||
                        !(le.isExtensible && !le.isExtensible(e)) &&
                        (!Wi(e, t) && (Object.setPrototypeOf(e, t), !0));
                },
            });
        }
        var Vi = function (e, t) {
            he.IsCallable(M.Reflect[e]) ? s((function () {
                return M.Reflect[e](1), M.Reflect[e](NaN), M.Reflect[e](!0), !0;
            })) && ae(M.Reflect, e, t) : g(M.Reflect, e, t);
        };
        Object.keys(Hi).forEach((function (e) {Vi(e, Hi[e]);}));
        var qi = M.Reflect.getPrototypeOf;
        if (d && qi && 'getPrototypeOf' !== qi.name &&
        ae(M.Reflect, 'getPrototypeOf', (function (e) {
            return n(qi, M.Reflect, e);
        })), M.Reflect.setPrototypeOf &&
        s((function () {return M.Reflect.setPrototypeOf(1, {}), !0;})) &&
        ae(M.Reflect, 'setPrototypeOf',
            Hi.setPrototypeOf), M.Reflect.defineProperty && (s((function () {
            var e = !M.Reflect.defineProperty(1, 'test', { value: 1 }),
                t = 'function' != typeof Object.preventExtensions ||
                    !M.Reflect.defineProperty(Object.preventExtensions({}),
                        'test', {});
            return e && t;
        })) || ae(M.Reflect, 'defineProperty',
            Hi.defineProperty)), M.Reflect.construct && (s((function () {
            var e = function () {};
            return M.Reflect.construct((function () {}), [], e) instanceof e;
        })) || ae(M.Reflect, 'construct', Hi.construct)), 'Invalid Date' !==
        String(new Date(NaN))) {
            var Ui = Date.prototype.toString, Xi = function () {
                var e = +this;
                return e != e ? 'Invalid Date' : he.Call(Ui, this);
            };
            ae(Date.prototype, 'toString', Xi);
        }
        var $i = {
            anchor: function (e) {
                return he.CreateHTML(this, 'a', 'name', e);
            },
            big: function () {return he.CreateHTML(this, 'big', '', '');},
            blink: function () {return he.CreateHTML(this, 'blink', '', '');},
            bold: function () {return he.CreateHTML(this, 'b', '', '');},
            fixed: function () {return he.CreateHTML(this, 'tt', '', '');},
            fontcolor: function (e) {
                return he.CreateHTML(this, 'font', 'color', e);
            },
            fontsize: function (e) {
                return he.CreateHTML(this, 'font', 'size', e);
            },
            italics: function () {return he.CreateHTML(this, 'i', '', '');},
            link: function (e) {return he.CreateHTML(this, 'a', 'href', e);},
            small: function () {return he.CreateHTML(this, 'small', '', '');},
            strike: function () {return he.CreateHTML(this, 'strike', '', '');},
            sub: function () {return he.CreateHTML(this, 'sub', '', '');},
            sup: function () {return he.CreateHTML(this, 'sup', '', '');},
        };
        h(Object.keys($i), (function (e) {
            var t = String.prototype[e], i = !1;
            if (he.IsCallable(t)) {
                var a = n(t, '', ' " '), r = A([], a.match(/"/g)).length;
                i = a !== a.toLowerCase() || r > 2;
            } else i = !0;
            i && ae(String.prototype, e, $i[e]);
        }));
        var Gi = function () {
            if (!re) return !1;
            var e = 'object' == typeof JSON && 'function' ==
            typeof JSON.stringify ? JSON.stringify : null;
            if (!e) return !1;
            if (void 0 !== e($())) return !0;
            if ('[null]' !== e([$()])) return !0;
            var t = { a: $() };
            return t[$()] = !0, '{}' !== e(t);
        }(), Zi = s((function () {
            return !re || '{}' === JSON.stringify(Object($())) && '[{}]' ===
                JSON.stringify([Object($())]);
        }));
        if (Gi || !Zi) {
            var Ki = JSON.stringify;
            ae(JSON, 'stringify', (function (e) {
                if ('symbol' != typeof e) {
                    var t;
                    arguments.length > 1 && (t = arguments[1]);
                    var a = [e];
                    if (i(t)) a.push(t); else {
                        var r = he.IsCallable(t)
                            ? t
                            : null, o = function (e, t) {
                            var i = r ? n(r, this, e, t) : t;
                            if ('symbol' != typeof i) return ie.symbol(i) ? Nt(
                                {})(i) : i;
                        };
                        a.push(o);
                    }
                    return arguments.length > 2 &&
                    a.push(arguments[2]), Ki.apply(this, a);
                }
            }));
        }
        return M;
    })), function (e, t) {
    'object' == typeof exports && 'undefined' != typeof module
        ? t(exports)
        : 'function' == typeof define && define.amd
        ? define(['exports'], t)
        : t((e = e || self).FormValidation = {});
}(this, (function (e) {
    'use strict';

    function t (e) {
        for (var t = e.length, n = [
            [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
            [
                0,
                2,
                4,
                6,
                8,
                1,
                3,
                5,
                7,
                9]], i = 0, a = 0; t--;) a += n[i][parseInt(e.charAt(t),
            10)], i = 1 - i;
        return a % 10 == 0 && a > 0;
    }

    function n (e) {
        for (var t = e.length, n = 5, i = 0; i < t; i++) n = (2 * (n || 10) %
            11 + parseInt(e.charAt(i), 10)) % 10;
        return 1 === n;
    }

    function i (e) {
        for (var t = arguments.length > 1 && void 0 !== arguments[1]
            ? arguments[1]
            : '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', n = e.length, i = t.length, a = Math.floor(
            i / 2), r = 0; r < n; r++) a = (2 * (a || i) % (i + 1) +
            t.indexOf(e.charAt(r))) % i;
        return 1 === a;
    }

    function a (e) {
        for (var t = [
            [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
            [1, 2, 3, 4, 0, 6, 7, 8, 9, 5],
            [2, 3, 4, 0, 1, 7, 8, 9, 5, 6],
            [3, 4, 0, 1, 2, 8, 9, 5, 6, 7],
            [4, 0, 1, 2, 3, 9, 5, 6, 7, 8],
            [5, 9, 8, 7, 6, 0, 4, 3, 2, 1],
            [6, 5, 9, 8, 7, 1, 0, 4, 3, 2],
            [7, 6, 5, 9, 8, 2, 1, 0, 4, 3],
            [8, 7, 6, 5, 9, 3, 2, 1, 0, 4],
            [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]], n = [
            [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
            [1, 5, 7, 6, 2, 8, 3, 0, 9, 4],
            [5, 8, 0, 3, 7, 9, 6, 1, 4, 2],
            [8, 9, 1, 6, 0, 4, 3, 5, 2, 7],
            [9, 4, 5, 3, 1, 2, 6, 8, 7, 0],
            [4, 2, 8, 6, 5, 7, 3, 9, 0, 1],
            [2, 7, 9, 3, 8, 0, 6, 4, 1, 5],
            [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]], i = e.reverse(), a = 0, r = 0; r <
             i.length; r++) a = t[a][n[r % 8][i[r]]];
        return 0 === a;
    }

    var r = { luhn: t, mod11And10: n, mod37And36: i, verhoeff: a };

    function o (e, t) {
        if (!(e instanceof t)) throw new TypeError(
            'Cannot call a class as a function');
    }

    function s (e, t) {
        for (var n = 0; n < t.length; n++) {
            var i = t[n];
            i.enumerable = i.enumerable || !1, i.configurable = !0, 'value' in
            i && (i.writable = !0), Object.defineProperty(e, i.key, i);
        }
    }

    function l (e, t, n) {return t && s(e.prototype, t), n && s(e, n), e;}

    function c (e, t, n) {
        return t in e
            ? Object.defineProperty(e, t,
                { value: n, enumerable: !0, configurable: !0, writable: !0 })
            : e[t] = n, e;
    }

    function u (e, t) {
        if ('function' != typeof t && null !== t) throw new TypeError(
            'Super expression must either be null or a function');
        e.prototype = Object.create(t && t.prototype,
            { constructor: { value: e, writable: !0, configurable: !0 } }), t &&
        h(e, t);
    }

    function d (e) {
        return (d = Object.setPrototypeOf
            ? Object.getPrototypeOf
            : function (e) {return e.__proto__ || Object.getPrototypeOf(e);})(
            e);
    }

    function h (e, t) {
        return (h = Object.setPrototypeOf ||
            function (e, t) {return e.__proto__ = t, e;})(e, t);
    }

    function f (e) {
        if (void 0 === e) throw new ReferenceError(
            'this hasn\'t been initialised - super() hasn\'t been called');
        return e;
    }

    function p (e, t) {
        return !t || 'object' != typeof t && 'function' != typeof t ? f(e) : t;
    }

    function m (e) {
        var t = 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 (e) {return !1;}
        }();
        return function () {
            var n, i = d(e);
            if (t) {
                var a = d(this).constructor;
                n = Reflect.construct(i, arguments, a);
            } else n = i.apply(this, arguments);
            return p(this, n);
        };
    }

    function g (e, t) {
        (null == t || t > e.length) && (t = e.length);
        for (var n = 0, i = new Array(t); n < t; n++) i[n] = e[n];
        return i;
    }

    function v (e, t) {
        var n;
        if ('undefined' == typeof Symbol || null == e[Symbol.iterator]) {
            if (Array.isArray(e) || (n = function (e, t) {
                if (e) {
                    if ('string' == typeof e) return g(e, t);
                    var n = Object.prototype.toString.call(e).slice(8, -1);
                    return 'Object' === n && e.constructor &&
                    (n = e.constructor.name), 'Map' === n || 'Set' === n
                        ? Array.from(e)
                        : 'Arguments' === n ||
                        /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)
                            ? g(e, t)
                            : void 0;
                }
            }(e)) || t && e && 'number' == typeof e.length) {
                n && (e = n);
                var i = 0, a = function () {};
                return {
                    s: a,
                    n: function () {
                        return i >= e.length
                            ? { done: !0 }
                            : { done: !1, value: e[i++] };
                    },
                    e: function (e) {throw e;},
                    f: a,
                };
            }
            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 r, o = !0, s = !1;
        return {
            s: function () {n = e[Symbol.iterator]();},
            n: function () {
                var e = n.next();
                return o = e.done, e;
            },
            e: function (e) {s = !0, r = e;},
            f: function () {
                try {
                    o || null == n.return || n.return();
                } finally {if (s) throw r;}
            },
        };
    }

    function y (e, t, n, i) {
        var a = (n.getAttribute('type') || '').toLowerCase(),
            r = n.tagName.toLowerCase();
        if ('textarea' === r) return n.value;
        if ('select' === r) {
            var o = n, s = o.selectedIndex;
            return s >= 0 ? o.options.item(s).value : '';
        }
        if ('input' === r) {
            if ('radio' === a || 'checkbox' === a) {
                var l = i.filter((function (e) {return e.checked;})).length;
                return 0 === l ? '' : l + '';
            }
            return n.value;
        }
        return '';
    }

    function b (e, t) {
        var n = Array.isArray(t) ? t : [t], i = e;
        return n.forEach((function (e) {i = i.replace('%s', e);})), i;
    }

    function x (e, t) {
        if ('function' == typeof e) return e.apply(this, t);
        if ('string' == typeof e) {
            var n = e;
            '()' === n.substring(n.length - 2) &&
            (n = n.substring(0, n.length - 2));
            var i, a = n.split('.'), r = a.pop(), o = window, s = v(a);
            try {for (s.s(); !(i = s.n()).done;) {o = o[i.value];}} catch (e) {
                s.e(e);
            } finally {s.f();}
            return void 0 === o[r] ? null : o[r].apply(this, t);
        }
    }

    var _ = {
        AMERICAN_EXPRESS: { length: [15], prefix: ['34', '37'] },
        DANKORT: { length: [16], prefix: ['5019'] },
        DINERS_CLUB: {
            length: [14],
            prefix: ['300', '301', '302', '303', '304', '305', '36'],
        },
        DINERS_CLUB_US: { length: [16], prefix: ['54', '55'] },
        DISCOVER: {
            length: [16],
            prefix: [
                '6011',
                '622126',
                '622127',
                '622128',
                '622129',
                '62213',
                '62214',
                '62215',
                '62216',
                '62217',
                '62218',
                '62219',
                '6222',
                '6223',
                '6224',
                '6225',
                '6226',
                '6227',
                '6228',
                '62290',
                '62291',
                '622920',
                '622921',
                '622922',
                '622923',
                '622924',
                '622925',
                '644',
                '645',
                '646',
                '647',
                '648',
                '649',
                '65'],
        },
        ELO: {
            length: [16],
            prefix: [
                '4011',
                '4312',
                '4389',
                '4514',
                '4573',
                '4576',
                '5041',
                '5066',
                '5067',
                '509',
                '6277',
                '6362',
                '6363',
                '650',
                '6516',
                '6550'],
        },
        FORBRUGSFORENINGEN: { length: [16], prefix: ['600722'] },
        JCB: {
            length: [16],
            prefix: ['3528', '3529', '353', '354', '355', '356', '357', '358'],
        },
        LASER: {
            length: [16, 17, 18, 19],
            prefix: ['6304', '6706', '6771', '6709'],
        },
        MAESTRO: {
            length: [12, 13, 14, 15, 16, 17, 18, 19],
            prefix: [
                '5018',
                '5020',
                '5038',
                '5868',
                '6304',
                '6759',
                '6761',
                '6762',
                '6763',
                '6764',
                '6765',
                '6766'],
        },
        MASTERCARD: { length: [16], prefix: ['51', '52', '53', '54', '55'] },
        SOLO: { length: [16, 18, 19], prefix: ['6334', '6767'] },
        UNIONPAY: {
            length: [16, 17, 18, 19],
            prefix: [
                '622126',
                '622127',
                '622128',
                '622129',
                '62213',
                '62214',
                '62215',
                '62216',
                '62217',
                '62218',
                '62219',
                '6222',
                '6223',
                '6224',
                '6225',
                '6226',
                '6227',
                '6228',
                '62290',
                '62291',
                '622920',
                '622921',
                '622922',
                '622923',
                '622924',
                '622925'],
        },
        VISA: { length: [16], prefix: ['4'] },
        VISA_ELECTRON: {
            length: [16],
            prefix: ['4026', '417500', '4405', '4508', '4844', '4913', '4917'],
        },
    };

    function w (e, t, n, i) {
        if (isNaN(e) || isNaN(t) || isNaN(n)) return !1;
        if (e < 1e3 || e > 9999 || t <= 0 || t > 12) return !1;
        if (n <= 0 || n > [
            31,
            e % 400 == 0 || e % 100 != 0 && e % 4 == 0 ? 29 : 28,
            31,
            30,
            31,
            30,
            31,
            31,
            30,
            31,
            30,
            31][t - 1]) return !1;
        if (!0 === i) {
            var a = new Date, r = a.getFullYear(), o = a.getMonth(),
                s = a.getDate();
            return e < r || e === r && t - 1 < o || e === r && t - 1 === o &&
                n < s;
        }
        return !0;
    }

    function k (e, t) {
        return new Promise((function (n, i) {
            var a = Object.assign({},
                { crossDomain: !1, headers: {}, method: 'GET', params: {} }, t),
                r = Object.keys(a.params).
                    map((function (e) {
                        return ''.concat(encodeURIComponent(e), '=').
                            concat(encodeURIComponent(a.params[e]));
                    })).
                    join('&'), o = e.indexOf('?'),
                s = 'GET' === a.method ? ''.concat(e).
                    concat(o ? '?' : '&').
                    concat(r) : e;
            if (a.crossDomain) {
                var l = document.createElement('script'),
                    c = '___fetch'.concat(Date.now(), '___');
                window[c] = function (e) {
                    delete window[c], n(e);
                }, l.src = ''.concat(s).
                    concat(o ? '&' : '?', 'callback=').
                    concat(c), l.async = !0, l.addEventListener('load',
                    (function () {
                        l.parentNode.removeChild(l);
                    })), l.addEventListener('error',
                    (function () {return i;})), document.head.appendChild(l);
            } else {
                var u = new XMLHttpRequest;
                u.open(a.method, s), u.setRequestHeader('X-Requested-With',
                    'XMLHttpRequest'), 'POST' === a.method &&
                u.setRequestHeader('Content-Type',
                    'application/x-www-form-urlencoded'), Object.keys(
                    a.headers).
                    forEach((function (e) {
                        return u.setRequestHeader(e, a.headers[e]);
                    })), u.addEventListener('load', (function () {
                    n(JSON.parse(this.responseText));
                })), u.addEventListener('error',
                    (function () {return i;})), u.send(function (e) {
                    return Object.keys(e).
                        map((function (t) {
                            return ''.concat(encodeURIComponent(t), '=').
                                concat(encodeURIComponent(e[t]));
                        })).
                        join('&');
                }(a.params));
            }
        }));
    }

    function M (e, t) {
        if (!/^\d{13}$/.test(e)) return !1;
        var n = parseInt(e.substr(0, 2), 10), i = parseInt(e.substr(2, 2), 10),
            a = parseInt(e.substr(7, 2), 10), r = parseInt(e.substr(12, 1), 10);
        if (n > 31 || i > 12) return !1;
        for (var o = 0, s = 0; s < 6; s++) o += (7 - s) *
            (parseInt(e.charAt(s), 10) + parseInt(e.charAt(s + 6), 10));
        if (10 !== (o = 11 - o % 11) && 11 !== o || (o = 0), o !== r) return !1;
        switch (t.toUpperCase()) {
            case'BA':
                return 10 <= a && a <= 19;
            case'MK':
                return 41 <= a && a <= 49;
            case'ME':
                return 20 <= a && a <= 29;
            case'RS':
                return 70 <= a && a <= 99;
            case'SI':
                return 50 <= a && a <= 59;
            default:
                return !0;
        }
    }

    function L (e) {
        if (!/^\d{9,10}$/.test(e)) return { meta: {}, valid: !1 };
        var t = 1900 + parseInt(e.substr(0, 2), 10),
            n = parseInt(e.substr(2, 2), 10) % 50 % 20,
            i = parseInt(e.substr(4, 2), 10);
        if (9 === e.length) {
            if (t >= 1980 && (t -= 100), t > 1953) return {
                meta: {},
                valid: !1,
            };
        } else t < 1954 && (t += 100);
        if (!w(t, n, i)) return { meta: {}, valid: !1 };
        if (10 === e.length) {
            var a = parseInt(e.substr(0, 9), 10) % 11;
            return t < 1985 && (a %= 10), {
                meta: {},
                valid: ''.concat(a) === e.substr(9, 1),
            };
        }
        return { meta: {}, valid: !0 };
    }

    function S (e) {
        if (!/^[0-9]{11}$/.test(e)) return { meta: {}, valid: !1 };
        var t = parseInt(e.charAt(0), 10), n = parseInt(e.substr(1, 2), 10);
        if (!w(n = 100 * (t % 2 == 0 ? 17 + t / 2 : 17 + (t + 1) / 2) + n,
            parseInt(e.substr(3, 2), 10), parseInt(e.substr(5, 2), 10),
            !0)) return { meta: {}, valid: !1 };
        var i, a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1], r = 0;
        for (i = 0; i < 10; i++) r += parseInt(e.charAt(i), 10) * a[i];
        if (10 !== (r %= 11)) return {
            meta: {},
            valid: ''.concat(r) === e.charAt(10),
        };
        for (r = 0, a = [3, 4, 5, 6, 7, 8, 9, 1, 2, 3], i = 0; i <
        10; i++) r += parseInt(e.charAt(i), 10) * a[i];
        return 10 === (r %= 11) && (r = 0), {
            meta: {},
            valid: ''.concat(r) === e.charAt(10),
        };
    }

    function T (e) {
        if (e.length < 8) return { meta: {}, valid: !1 };
        var t = e;
        if (8 === t.length &&
        (t = '0'.concat(t)), !/^[0-9]{4}[.]{0,1}[0-9]{2}[.]{0,1}[0-9]{3}$/.test(
            t)) return { meta: {}, valid: !1 };
        if (t = t.replace(/\./g, ''), 0 === parseInt(t, 10)) return {
            meta: {},
            valid: !1,
        };
        for (var n = 0, i = t.length, a = 0; a < i - 1; a++) n += (9 - a) *
            parseInt(t.charAt(a), 10);
        return 10 === (n %= 11) && (n = 0), {
            meta: {},
            valid: ''.concat(n) === t.charAt(i - 1),
        };
    }

    function A (e) {
        var t = e;
        if (/^(GR|EL)[0-9]{9}$/.test(t) &&
        (t = t.substr(2)), !/^[0-9]{9}$/.test(t)) return {
            meta: {},
            valid: !1,
        };
        8 === t.length && (t = '0'.concat(t));
        for (var n = [256, 128, 64, 32, 16, 8, 4, 2], i = 0, a = 0; a <
        8; a++) i += parseInt(t.charAt(a), 10) * n[a];
        return {
            meta: {},
            valid: ''.concat(i = i % 11 % 10) === t.substr(8, 1),
        };
    }

    function D (e) {
        for (var t = function (e) {
            return e.split('').
                map((function (e) {
                    var t = e.charCodeAt(0);
                    return t >= 65 && t <= 90 ? t - 55 : e;
                })).
                join('').
                split('').
                map((function (e) {return parseInt(e, 10);}));
        }(e), n = 0, i = t.length, a = 0; a < i - 1; ++a) n = 10 * (n + t[a]) %
            97;
        return (n += t[i - 1]) % 97 == 1;
    }

    var C = {
        between: function () {
            var e = function (e) {
                return parseFloat(''.concat(e).replace(',', '.'));
            };
            return {
                validate: function (t) {
                    var n = t.value;
                    if ('' === n) return { valid: !0 };
                    var i = Object.assign({}, { inclusive: !0, message: '' },
                        t.options), a = e(i.min), r = e(i.max);
                    return i.inclusive ? {
                        message: b(t.l10n
                            ? i.message || t.l10n.between.default
                            : i.message, [''.concat(a), ''.concat(r)]),
                        valid: parseFloat(n) >= a && parseFloat(n) <= r,
                    } : {
                        message: b(t.l10n
                            ? i.message || t.l10n.between.notInclusive
                            : i.message, [''.concat(a), ''.concat(r)]),
                        valid: parseFloat(n) > a && parseFloat(n) < r,
                    };
                },
            };
        },
        blank: function () {return { validate: function (e) {return { valid: !0 };} };},
        callback: function () {
            return {
                validate: function (e) {
                    var t = x(e.options.callback, [e]);
                    return 'boolean' == typeof t ? { valid: t } : t;
                },
            };
        },
        choice: function () {
            return {
                validate: function (e) {
                    var t = 'select' === e.element.tagName.toLowerCase()
                        ? e.element.querySelectorAll('option:checked').length
                        : e.elements.filter(
                            (function (e) {return e.checked;})).length,
                        n = e.options.min ? ''.concat(e.options.min) : '',
                        i = e.options.max ? ''.concat(e.options.max) : '',
                        a = e.l10n
                            ? e.options.message || e.l10n.choice.default
                            : e.options.message,
                        r = !(n && t < parseInt(n, 10) || i && t >
                            parseInt(i, 10));
                    switch (!0) {
                        case!!n && !!i:
                            a = b(e.l10n
                                ? e.l10n.choice.between
                                : e.options.message, [n, i]);
                            break;
                        case!!n:
                            a = b(
                                e.l10n ? e.l10n.choice.more : e.options.message,
                                n);
                            break;
                        case!!i:
                            a = b(
                                e.l10n ? e.l10n.choice.less : e.options.message,
                                i);
                    }
                    return { message: a, valid: r };
                },
            };
        },
        creditCard: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return {
                        meta: { type: null },
                        valid: !0,
                    };
                    if (/[^0-9-\s]+/.test(
                        e.value)) return { meta: { type: null }, valid: !1 };
                    var n = e.value.replace(/\D/g, '');
                    if (!t(n)) return { meta: { type: null }, valid: !1 };
                    for (var i = 0, a = Object.keys(_); i < a.length; i++) {
                        var r = a[i];
                        for (var o in _[r].prefix) if (e.value.substr(0,
                            _[r].prefix[o].length) === _[r].prefix[o] && -1 !==
                            _[r].length.indexOf(n.length)) return {
                            meta: { type: r },
                            valid: !0,
                        };
                    }
                    return { meta: { type: null }, valid: !1 };
                },
            };
        },
        date: function () {
            var e = function (e, t, n) {
                var i = t.indexOf('YYYY'), a = t.indexOf('MM'),
                    r = t.indexOf('DD');
                if (-1 === i || -1 === a || -1 === r) return null;
                var o = e.split(' '), s = o[0].split(n);
                if (s.length < 3) return null;
                var l = new Date(parseInt(s[i], 10), parseInt(s[a], 10) - 1,
                    parseInt(s[r], 10));
                if (o.length > 1) {
                    var c = o[1].split(':');
                    l.setHours(
                        c.length > 0 ? parseInt(c[0], 10) : 0), l.setMinutes(
                        c.length > 1 ? parseInt(c[1], 10) : 0), l.setSeconds(
                        c.length > 2 ? parseInt(c[2], 10) : 0);
                }
                return l;
            }, t = function (e, t) {
                var n = t.replace(/Y/g, 'y').
                        replace(/M/g, 'm').
                        replace(/D/g, 'd').
                        replace(/:m/g, ':M').
                        replace(/:mm/g, ':MM').
                        replace(/:S/, ':s').
                        replace(/:SS/, ':ss'), i = e.getDate(),
                    a = i < 10 ? '0'.concat(i) : i, r = e.getMonth() + 1,
                    o = r < 10 ? '0'.concat(r) : r,
                    s = ''.concat(e.getFullYear()).substr(2),
                    l = e.getFullYear(), c = e.getHours() % 12 || 12,
                    u = c < 10 ? '0'.concat(c) : c, d = e.getHours(),
                    h = d < 10 ? '0'.concat(d) : d, f = e.getMinutes(),
                    p = f < 10 ? '0'.concat(f) : f, m = e.getSeconds(),
                    g = m < 10 ? '0'.concat(m) : m, v = {
                        H: ''.concat(d),
                        HH: ''.concat(h),
                        M: ''.concat(f),
                        MM: ''.concat(p),
                        d: ''.concat(i),
                        dd: ''.concat(a),
                        h: ''.concat(c),
                        hh: ''.concat(u),
                        m: ''.concat(r),
                        mm: ''.concat(o),
                        s: ''.concat(m),
                        ss: ''.concat(g),
                        yy: ''.concat(s),
                        yyyy: ''.concat(l),
                    };
                return n.replace(
                    /d{1,4}|m{1,4}|yy(?:yy)?|([HhMs])\1?|"[^"]*"|'[^']*'/g,
                    (function (e) {
                        return v[e] ? v[e] : e.slice(1, e.length - 1);
                    }));
            };
            return {
                validate: function (n) {
                    if ('' === n.value) return {
                        meta: { date: null },
                        valid: !0,
                    };
                    var i = Object.assign({}, {
                            format: n.element && 'date' ===
                            n.element.getAttribute('type')
                                ? 'YYYY-MM-DD'
                                : 'MM/DD/YYYY', message: '',
                        }, n.options), a = n.l10n ? n.l10n.date.default : i.message,
                        r = {
                            message: ''.concat(a),
                            meta: { date: null },
                            valid: !1,
                        }, o = i.format.split(' '),
                        s = o.length > 1 ? o[1] : null,
                        l = o.length > 2 ? o[2] : null, c = n.value.split(' '),
                        u = c[0], d = c.length > 1 ? c[1] : null;
                    if (o.length !== c.length) return r;
                    var h = i.separator ||
                        (-1 !== u.indexOf('/') ? '/' : -1 !== u.indexOf('-')
                            ? '-'
                            : -1 !== u.indexOf('.') ? '.' : '/');
                    if (null === h || -1 === u.indexOf(h)) return r;
                    var f = u.split(h), p = o[0].split(h);
                    if (f.length !== p.length) return r;
                    var m = f[p.indexOf('YYYY')], g = f[p.indexOf('MM')],
                        v = f[p.indexOf('DD')];
                    if (!/^\d+$/.test(m) || !/^\d+$/.test(g) ||
                        !/^\d+$/.test(v) || m.length > 4 || g.length > 2 ||
                        v.length > 2) return r;
                    var y = parseInt(m, 10), x = parseInt(g, 10),
                        _ = parseInt(v, 10);
                    if (!w(y, x, _)) return r;
                    var k = new Date(y, x - 1, _);
                    if (s) {
                        var M = d.split(':');
                        if (s.split(':').length !== M.length) return r;
                        var L = M.length > 0 ? M[0].length <= 2 &&
                            /^\d+$/.test(M[0]) ? parseInt(M[0], 10) : -1 : 0,
                            S = M.length > 1 ? M[1].length <= 2 &&
                            /^\d+$/.test(M[1]) ? parseInt(M[1], 10) : -1 : 0,
                            T = M.length > 2 ? M[2].length <= 2 &&
                            /^\d+$/.test(M[2]) ? parseInt(M[2], 10) : -1 : 0;
                        if (-1 === L || -1 === S || -1 === T) return r;
                        if (T < 0 || T > 60) return r;
                        if (L < 0 || L >= 24 || l && L > 12) return r;
                        if (S < 0 || S > 59) return r;
                        k.setHours(L), k.setMinutes(S), k.setSeconds(T);
                    }
                    var A = 'function' == typeof i.min ? i.min() : i.min,
                        D = A instanceof Date ? A : A ? e(A, p, h) : k,
                        C = 'function' == typeof i.max ? i.max() : i.max,
                        E = C instanceof Date ? C : C ? e(C, p, h) : k,
                        O = A instanceof Date ? t(D, i.format) : A,
                        Y = C instanceof Date ? t(E, i.format) : C;
                    switch (!0) {
                        case!!O && !Y:
                            return {
                                message: b(n.l10n ? n.l10n.date.min : a, O),
                                meta: { date: k },
                                valid: k.getTime() >= D.getTime(),
                            };
                        case!!Y && !O:
                            return {
                                message: b(n.l10n ? n.l10n.date.max : a, Y),
                                meta: { date: k },
                                valid: k.getTime() <= E.getTime(),
                            };
                        case!!Y && !!O:
                            return {
                                message: b(n.l10n ? n.l10n.date.range : a,
                                    [O, Y]),
                                meta: { date: k },
                                valid: k.getTime() <= E.getTime() &&
                                    k.getTime() >= D.getTime(),
                            };
                        default:
                            return {
                                message: ''.concat(a),
                                meta: { date: k },
                                valid: !0,
                            };
                    }
                },
            };
        },
        different: function () {
            return {
                validate: function (e) {
                    var t = 'function' == typeof e.options.compare
                        ? e.options.compare.call(this)
                        : e.options.compare;
                    return { valid: '' === t || e.value !== t };
                },
            };
        },
        digits: function () {
            return {
                validate: function (e) {
                    return {
                        valid: '' === e.value || /^\d+$/.test(e.value),
                    };
                },
            };
        },
        emailAddress: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    var t = Object.assign({},
                        { multiple: !1, separator: /[,;]/ }, e.options),
                        n = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
                    if (!0 === t.multiple || 'true' === ''.concat(t.multiple)) {
                        for (var i = t.separator || /[,;]/, a = function (
                            e, t) {
                            for (var n = e.split(
                                /"/), i = n.length, a = [], r = '', o = 0; o <
                                 i; o++) if (o % 2 == 0) {
                                var s = n[o].split(t), l = s.length;
                                if (1 === l) r += s[0]; else {
                                    a.push(r + s[0]);
                                    for (var c = 1; c < l - 1; c++) a.push(
                                        s[c]);
                                    r = s[l - 1];
                                }
                            } else r += '"' + n[o], o < i - 1 && (r += '"');
                            return a.push(r), a;
                        }(e.value, i), r = a.length, o = 0; o <
                             r; o++) if (!n.test(a[o])) return { valid: !1 };
                        return { valid: !0 };
                    }
                    return { valid: n.test(e.value) };
                },
            };
        },
        file: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    var t, n = e.options.extension
                        ? e.options.extension.toLowerCase().split(',')
                        : null,
                        i = e.options.type ? e.options.type.toLowerCase().
                            split(',') : null;
                    if (window.File && window.FileList && window.FileReader) {
                        var a = e.element.files, r = a.length, o = 0;
                        if (e.options.maxFiles && r >
                            parseInt(''.concat(e.options.maxFiles),
                                10)) return {
                            meta: { error: 'INVALID_MAX_FILES' },
                            valid: !1,
                        };
                        if (e.options.minFiles && r <
                            parseInt(''.concat(e.options.minFiles),
                                10)) return {
                            meta: { error: 'INVALID_MIN_FILES' },
                            valid: !1,
                        };
                        for (var s = {}, l = 0; l < r; l++) {
                            if (o += a[l].size, s = {
                                ext: t = a[l].name.substr(
                                    a[l].name.lastIndexOf('.') + 1),
                                file: a[l],
                                size: a[l].size,
                                type: a[l].type,
                            }, e.options.minSize && a[l].size <
                            parseInt(''.concat(e.options.minSize), 10)) return {
                                meta: Object.assign({},
                                    { error: 'INVALID_MIN_SIZE' }, s),
                                valid: !1,
                            };
                            if (e.options.maxSize && a[l].size >
                                parseInt(''.concat(e.options.maxSize),
                                    10)) return {
                                meta: Object.assign({},
                                    { error: 'INVALID_MAX_SIZE' }, s),
                                valid: !1,
                            };
                            if (n && -1 === n.indexOf(t.toLowerCase())) return {
                                meta: Object.assign({},
                                    { error: 'INVALID_EXTENSION' }, s),
                                valid: !1,
                            };
                            if (a[l].type && i && -1 === i.indexOf(
                                a[l].type.toLowerCase())) return {
                                meta: Object.assign({},
                                    { error: 'INVALID_TYPE' }, s), valid: !1,
                            };
                        }
                        if (e.options.maxTotalSize && o >
                            parseInt(''.concat(e.options.maxTotalSize),
                                10)) return {
                            meta: Object.assign({}, {
                                error: 'INVALID_MAX_TOTAL_SIZE',
                                totalSize: o,
                            }, s), valid: !1,
                        };
                        if (e.options.minTotalSize && o <
                            parseInt(''.concat(e.options.minTotalSize),
                                10)) return {
                            meta: Object.assign({}, {
                                error: 'INVALID_MIN_TOTAL_SIZE',
                                totalSize: o,
                            }, s), valid: !1,
                        };
                    } else if (t = e.value.substr(
                        e.value.lastIndexOf('.') + 1), n && -1 === n.indexOf(
                        t.toLowerCase())) return {
                        meta: {
                            error: 'INVALID_EXTENSION',
                            ext: t,
                        }, valid: !1,
                    };
                    return { valid: !0 };
                },
            };
        },
        greaterThan: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    var t = Object.assign({}, { inclusive: !0, message: '' },
                        e.options),
                        n = parseFloat(''.concat(t.min).replace(',', '.'));
                    return t.inclusive ? {
                        message: b(e.l10n
                            ? t.message || e.l10n.greaterThan.default
                            : t.message, ''.concat(n)),
                        valid: parseFloat(e.value) >= n,
                    } : {
                        message: b(e.l10n ? t.message ||
                            e.l10n.greaterThan.notInclusive : t.message,
                            ''.concat(n)), valid: parseFloat(e.value) > n,
                    };
                },
            };
        },
        identical: function () {
            return {
                validate: function (e) {
                    var t = 'function' == typeof e.options.compare
                        ? e.options.compare.call(this)
                        : e.options.compare;
                    return { valid: '' === t || e.value === t };
                },
            };
        },
        integer: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    var t = Object.assign({},
                        { decimalSeparator: '.', thousandsSeparator: '' },
                        e.options), n = '.' === t.decimalSeparator
                        ? '\\.'
                        : t.decimalSeparator, i = '.' === t.thousandsSeparator
                        ? '\\.'
                        : t.thousandsSeparator, a = new RegExp(
                        '^-?[0-9]{1,3}('.concat(i, '[0-9]{3})*(').
                            concat(n, '[0-9]+)?$')), r = new RegExp(i, 'g'),
                        o = ''.concat(e.value);
                    if (!a.test(o)) return { valid: !1 };
                    i && (o = o.replace(r, '')), n && (o = o.replace(n, '.'));
                    var s = parseFloat(o);
                    return {
                        valid: !isNaN(s) && isFinite(s) && Math.floor(s) === s,
                    };
                },
            };
        },
        ip: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    var t = Object.assign({}, { ipv4: !0, ipv6: !0 },
                        e.options),
                        n = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\/([0-9]|[1-2][0-9]|3[0-2]))?$/,
                        i = /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*(\/(\d|\d\d|1[0-1]\d|12[0-8]))?$/;
                    switch (!0) {
                        case t.ipv4 && !t.ipv6:
                            return {
                                message: e.l10n
                                    ? t.message || e.l10n.ip.ipv4
                                    : t.message,
                                valid: n.test(e.value),
                            };
                        case!t.ipv4 && t.ipv6:
                            return {
                                message: e.l10n
                                    ? t.message || e.l10n.ip.ipv6
                                    : t.message,
                                valid: i.test(e.value),
                            };
                        case t.ipv4 && t.ipv6:
                        default:
                            return {
                                message: e.l10n
                                    ? t.message || e.l10n.ip.default
                                    : t.message,
                                valid: n.test(e.value) || i.test(e.value),
                            };
                    }
                },
            };
        },
        lessThan: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    var t = Object.assign({}, { inclusive: !0, message: '' },
                        e.options),
                        n = parseFloat(''.concat(t.max).replace(',', '.'));
                    return t.inclusive ? {
                        message: b(e.l10n
                            ? t.message || e.l10n.lessThan.default
                            : t.message, ''.concat(n)),
                        valid: parseFloat(e.value) <= n,
                    } : {
                        message: b(e.l10n
                            ? t.message || e.l10n.lessThan.notInclusive
                            : t.message, ''.concat(n)),
                        valid: parseFloat(e.value) < n,
                    };
                },
            };
        },
        notEmpty: function () {
            return {
                validate: function (e) {
                    var t = !!e.options && !!e.options.trim, n = e.value;
                    return {
                        valid: !t && '' !== n || t && '' !== n && '' !==
                            n.trim(),
                    };
                },
            };
        },
        numeric: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    var t = Object.assign({},
                        { decimalSeparator: '.', thousandsSeparator: '' },
                        e.options), n = ''.concat(e.value);
                    n.substr(0, 1) === t.decimalSeparator ? n = '0'.concat(
                        t.decimalSeparator).concat(n.substr(1)) : n.substr(0,
                        2) === '-'.concat(t.decimalSeparator) &&
                        (n = '-0'.concat(t.decimalSeparator).
                            concat(n.substr(2)));
                    var i = '.' === t.decimalSeparator
                        ? '\\.'
                        : t.decimalSeparator, a = '.' === t.thousandsSeparator
                        ? '\\.'
                        : t.thousandsSeparator, r = new RegExp(
                        '^-?[0-9]{1,3}('.concat(a, '[0-9]{3})*(').
                            concat(i, '[0-9]+)?$')), o = new RegExp(a, 'g');
                    if (!r.test(n)) return { valid: !1 };
                    a && (n = n.replace(o, '')), i && (n = n.replace(i, '.'));
                    var s = parseFloat(n);
                    return { valid: !isNaN(s) && isFinite(s) };
                },
            };
        },
        promise: function () {
            return {
                validate: function (e) {
                    return x(e.options.promise, [e]);
                },
            };
        },
        regexp: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    var t = e.options.regexp;
                    if (t instanceof RegExp) return { valid: t.test(e.value) };
                    var n = t.toString();
                    return {
                        valid: (e.options.flags
                            ? new RegExp(n, e.options.flags)
                            : new RegExp(n)).test(e.value),
                    };
                },
            };
        },
        remote: function () {
            var e = {
                crossDomain: !1,
                data: {},
                headers: {},
                method: 'GET',
                validKey: 'valid',
            };
            return {
                validate: function (t) {
                    if ('' === t.value) return Promise.resolve({ valid: !0 });
                    var n = Object.assign({}, e, t.options), i = n.data;
                    return 'function' == typeof n.data &&
                    (i = n.data.call(this, t)), 'string' == typeof i &&
                    (i = JSON.parse(i)), i[n.name || t.field] = t.value, k(
                        'function' == typeof n.url
                            ? n.url.call(this, t)
                            : n.url, {
                            crossDomain: n.crossDomain,
                            headers: n.headers,
                            method: n.method,
                            params: i,
                        }).
                        then((function (e) {
                            return Promise.resolve({
                                message: e.message,
                                meta: e,
                                valid: 'true' === ''.concat(e[n.validKey]),
                            });
                        })).
                        catch((function (e) {
                            return Promise.reject({ valid: !1 });
                        }));
                },
            };
        },
        stringCase: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    var t = Object.assign({}, { case: 'lower' }, e.options),
                        n = (t.case || 'lower').toLowerCase();
                    return {
                        message: t.message || (e.l10n ? 'upper' === n
                            ? e.l10n.stringCase.upper
                            : e.l10n.stringCase.default : t.message),
                        valid: 'upper' === n
                            ? e.value === e.value.toUpperCase()
                            : e.value === e.value.toLowerCase(),
                    };
                },
            };
        },
        stringLength: function () {
            return {
                validate: function (e) {
                    var t = Object.assign({},
                        { message: '', trim: !1, utf8Bytes: !1 }, e.options),
                        n = !0 === t.trim || 'true' === ''.concat(t.trim)
                            ? e.value.trim()
                            : e.value;
                    if ('' === n) return { valid: !0 };
                    var i = t.min ? ''.concat(t.min) : '',
                        a = t.max ? ''.concat(t.max) : '', r = t.utf8Bytes
                        ? function (e) {
                            for (var t = e.length, n = e.length - 1; n >=
                            0; n--) {
                                var i = e.charCodeAt(n);
                                i > 127 && i <= 2047 ? t++ : i > 2047 && i <=
                                    65535 && (t += 2), i >= 56320 && i <=
                                57343 && n--;
                            }
                            return ''.concat(t);
                        }(n)
                        : n.length, o = !0, s = e.l10n
                        ? t.message || e.l10n.stringLength.default
                        : t.message;
                    switch ((i && r < parseInt(i, 10) || a && r >
                        parseInt(a, 10)) && (o = !1), !0) {
                        case!!i && !!a:
                            s = b(e.l10n ? t.message ||
                                e.l10n.stringLength.between : t.message,
                                [i, a]);
                            break;
                        case!!i:
                            s = b(e.l10n
                                ? t.message || e.l10n.stringLength.more
                                : t.message, ''.concat(parseInt(i, 10)));
                            break;
                        case!!a:
                            s = b(e.l10n
                                ? t.message || e.l10n.stringLength.less
                                : t.message, ''.concat(parseInt(a, 10)));
                    }
                    return { message: s, valid: o };
                },
            };
        },
        uri: function () {
            var e = {
                allowEmptyProtocol: !1,
                allowLocal: !1,
                protocol: 'http, https, ftp',
            };
            return {
                validate: function (t) {
                    if ('' === t.value) return { valid: !0 };
                    var n = Object.assign({}, e, t.options),
                        i = !0 === n.allowLocal || 'true' ===
                            ''.concat(n.allowLocal),
                        a = !0 === n.allowEmptyProtocol || 'true' ===
                            ''.concat(n.allowEmptyProtocol),
                        r = n.protocol.split(',').join('|').replace(/\s/g, '');
                    return {
                        valid: new RegExp(
                            '^(?:(?:' + r + ')://)' + (a ? '?' : '') +
                            '(?:\\S+(?::\\S*)?@)?(?:' + (i
                            ? ''
                            : '(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})') +
                            '(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-?)*[a-z\\u00a1-\\uffff0-9])*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))' +
                            (i ? '?' : '') + ')(?::\\d{2,5})?(?:/[^\\s]*)?$',
                            'i').test(t.value),
                    };
                },
            };
        },
        base64: function () {
            return {
                validate: function (e) {
                    return {
                        valid: '' === e.value ||
                            /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$/.test(
                                e.value),
                    };
                },
            };
        },
        bic: function () {
            return {
                validate: function (e) {
                    return {
                        valid: '' === e.value ||
                            /^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?$/.test(
                                e.value),
                    };
                },
            };
        },
        color: function () {
            var e = ['hex', 'rgb', 'rgba', 'hsl', 'hsla', 'keyword'], t = [
                'aliceblue',
                'antiquewhite',
                'aqua',
                'aquamarine',
                'azure',
                'beige',
                'bisque',
                'black',
                'blanchedalmond',
                'blue',
                'blueviolet',
                'brown',
                'burlywood',
                'cadetblue',
                'chartreuse',
                'chocolate',
                'coral',
                'cornflowerblue',
                'cornsilk',
                'crimson',
                'cyan',
                'darkblue',
                'darkcyan',
                'darkgoldenrod',
                'darkgray',
                'darkgreen',
                'darkgrey',
                'darkkhaki',
                'darkmagenta',
                'darkolivegreen',
                'darkorange',
                'darkorchid',
                'darkred',
                'darksalmon',
                'darkseagreen',
                'darkslateblue',
                'darkslategray',
                'darkslategrey',
                'darkturquoise',
                'darkviolet',
                'deeppink',
                'deepskyblue',
                'dimgray',
                'dimgrey',
                'dodgerblue',
                'firebrick',
                'floralwhite',
                'forestgreen',
                'fuchsia',
                'gainsboro',
                'ghostwhite',
                'gold',
                'goldenrod',
                'gray',
                'green',
                'greenyellow',
                'grey',
                'honeydew',
                'hotpink',
                'indianred',
                'indigo',
                'ivory',
                'khaki',
                'lavender',
                'lavenderblush',
                'lawngreen',
                'lemonchiffon',
                'lightblue',
                'lightcoral',
                'lightcyan',
                'lightgoldenrodyellow',
                'lightgray',
                'lightgreen',
                'lightgrey',
                'lightpink',
                'lightsalmon',
                'lightseagreen',
                'lightskyblue',
                'lightslategray',
                'lightslategrey',
                'lightsteelblue',
                'lightyellow',
                'lime',
                'limegreen',
                'linen',
                'magenta',
                'maroon',
                'mediumaquamarine',
                'mediumblue',
                'mediumorchid',
                'mediumpurple',
                'mediumseagreen',
                'mediumslateblue',
                'mediumspringgreen',
                'mediumturquoise',
                'mediumvioletred',
                'midnightblue',
                'mintcream',
                'mistyrose',
                'moccasin',
                'navajowhite',
                'navy',
                'oldlace',
                'olive',
                'olivedrab',
                'orange',
                'orangered',
                'orchid',
                'palegoldenrod',
                'palegreen',
                'paleturquoise',
                'palevioletred',
                'papayawhip',
                'peachpuff',
                'peru',
                'pink',
                'plum',
                'powderblue',
                'purple',
                'red',
                'rosybrown',
                'royalblue',
                'saddlebrown',
                'salmon',
                'sandybrown',
                'seagreen',
                'seashell',
                'sienna',
                'silver',
                'skyblue',
                'slateblue',
                'slategray',
                'slategrey',
                'snow',
                'springgreen',
                'steelblue',
                'tan',
                'teal',
                'thistle',
                'tomato',
                'transparent',
                'turquoise',
                'violet',
                'wheat',
                'white',
                'whitesmoke',
                'yellow',
                'yellowgreen'], n = function (e) {
                return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(e);
            }, i = function (e) {
                return /^hsl\((\s*(-?\d+)\s*,)(\s*(\b(0?\d{1,2}|100)\b%)\s*,)(\s*(\b(0?\d{1,2}|100)\b%)\s*)\)$/.test(
                    e);
            }, a = function (e) {
                return /^hsla\((\s*(-?\d+)\s*,)(\s*(\b(0?\d{1,2}|100)\b%)\s*,){2}(\s*(0?(\.\d+)?|1(\.0+)?)\s*)\)$/.test(
                    e);
            }, r = function (e) {return t.indexOf(e) >= 0;}, o = function (e) {
                return /^rgb\((\s*(\b([01]?\d{1,2}|2[0-4]\d|25[0-5])\b)\s*,){2}(\s*(\b([01]?\d{1,2}|2[0-4]\d|25[0-5])\b)\s*)\)$/.test(
                    e) ||
                    /^rgb\((\s*(\b(0?\d{1,2}|100)\b%)\s*,){2}(\s*(\b(0?\d{1,2}|100)\b%)\s*)\)$/.test(
                        e);
            }, s = function (e) {
                return /^rgba\((\s*(\b([01]?\d{1,2}|2[0-4]\d|25[0-5])\b)\s*,){3}(\s*(0?(\.\d+)?|1(\.0+)?)\s*)\)$/.test(
                    e) ||
                    /^rgba\((\s*(\b(0?\d{1,2}|100)\b%)\s*,){3}(\s*(0?(\.\d+)?|1(\.0+)?)\s*)\)$/.test(
                        e);
            };
            return {
                validate: function (t) {
                    if ('' === t.value) return { valid: !0 };
                    var l, c = v('string' == typeof t.options.type
                        ? t.options.type.toString().replace(/s/g, '').split(',')
                        : t.options.type || e);
                    try {
                        for (c.s(); !(l = c.n()).done;) {
                            var u = l.value.toLowerCase();
                            if (-1 !== e.indexOf(u)) {
                                var d = !0;
                                switch (u) {
                                    case'hex':
                                        d = n(t.value);
                                        break;
                                    case'hsl':
                                        d = i(t.value);
                                        break;
                                    case'hsla':
                                        d = a(t.value);
                                        break;
                                    case'keyword':
                                        d = r(t.value);
                                        break;
                                    case'rgb':
                                        d = o(t.value);
                                        break;
                                    case'rgba':
                                        d = s(t.value);
                                }
                                if (d) return { valid: !0 };
                            }
                        }
                    } catch (e) {c.e(e);} finally {c.f();}
                    return { valid: !1 };
                },
            };
        },
        cusip: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    var t = e.value.toUpperCase();
                    if (!/^[0123456789ABCDEFGHJKLMNPQRSTUVWXYZ*@#]{9}$/.test(
                        t)) return { valid: !1 };
                    var n = t.split(''), i = n.pop(), a = n.map((function (e) {
                        var t = e.charCodeAt(0);
                        switch (!0) {
                            case'*' === e:
                                return 36;
                            case'@' === e:
                                return 37;
                            case'#' === e:
                                return 38;
                            case t >= 'A'.charCodeAt(0) && t <=
                            'Z'.charCodeAt(0):
                                return t - 'A'.charCodeAt(0) + 10;
                            default:
                                return parseInt(e, 10);
                        }
                    })).
                        map((function (e, t) {
                            var n = t % 2 == 0 ? e : 2 * e;
                            return Math.floor(n / 10) + n % 10;
                        })).
                        reduce((function (e, t) {return e + t;}), 0);
                    return { valid: i === ''.concat((10 - a % 10) % 10) };
                },
            };
        },
        ean: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    if (!/^(\d{8}|\d{12}|\d{13}|\d{14})$/.test(
                        e.value)) return { valid: !1 };
                    for (var t = e.value.length, n = 0, i = 8 === t
                        ? [3, 1]
                        : [1, 3], a = 0; a < t - 1; a++) n += parseInt(
                        e.value.charAt(a), 10) * i[a % 2];
                    return {
                        valid: ''.concat(n = (10 - n % 10) % 10) ===
                            e.value.charAt(t - 1),
                    };
                },
            };
        },
        ein: function () {
            var e = {
                ANDOVER: ['10', '12'],
                ATLANTA: ['60', '67'],
                AUSTIN: ['50', '53'],
                BROOKHAVEN: [
                    '01',
                    '02',
                    '03',
                    '04',
                    '05',
                    '06',
                    '11',
                    '13',
                    '14',
                    '16',
                    '21',
                    '22',
                    '23',
                    '25',
                    '34',
                    '51',
                    '52',
                    '54',
                    '55',
                    '56',
                    '57',
                    '58',
                    '59',
                    '65'],
                CINCINNATI: ['30', '32', '35', '36', '37', '38', '61'],
                FRESNO: ['15', '24'],
                INTERNET: ['20', '26', '27', '45', '46', '47'],
                KANSAS_CITY: ['40', '44'],
                MEMPHIS: ['94', '95'],
                OGDEN: ['80', '90'],
                PHILADELPHIA: [
                    '33',
                    '39',
                    '41',
                    '42',
                    '43',
                    '48',
                    '62',
                    '63',
                    '64',
                    '66',
                    '68',
                    '71',
                    '72',
                    '73',
                    '74',
                    '75',
                    '76',
                    '77',
                    '81',
                    '82',
                    '83',
                    '84',
                    '85',
                    '86',
                    '87',
                    '88',
                    '91',
                    '92',
                    '93',
                    '98',
                    '99'],
                SMALL_BUSINESS_ADMINISTRATION: ['31'],
            };
            return {
                validate: function (t) {
                    if ('' === t.value) return { meta: null, valid: !0 };
                    if (!/^[0-9]{2}-?[0-9]{7}$/.test(
                        t.value)) return { meta: null, valid: !1 };
                    var n = ''.concat(t.value.substr(0, 2));
                    for (var i in e) if (-1 !== e[i].indexOf(n)) return {
                        meta: { campus: i },
                        valid: !0,
                    };
                    return { meta: null, valid: !1 };
                },
            };
        },
        grid: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    var t = e.value.toUpperCase();
                    return /^[GRID:]*([0-9A-Z]{2})[-\s]*([0-9A-Z]{5})[-\s]*([0-9A-Z]{10})[-\s]*([0-9A-Z]{1})$/g.test(
                        t) ? ('GRID:' ===
                    (t = t.replace(/\s/g, '').replace(/-/g, '')).substr(0, 5) &&
                    (t = t.substr(5)), { valid: i(t) }) : { valid: !1 };
                },
            };
        },
        hex: function () {
            return {
                validate: function (e) {
                    return {
                        valid: '' === e.value || /^[0-9a-fA-F]+$/.test(e.value),
                    };
                },
            };
        },
        iban: function () {
            var e = {
                AD: 'AD[0-9]{2}[0-9]{4}[0-9]{4}[A-Z0-9]{12}',
                AE: 'AE[0-9]{2}[0-9]{3}[0-9]{16}',
                AL: 'AL[0-9]{2}[0-9]{8}[A-Z0-9]{16}',
                AO: 'AO[0-9]{2}[0-9]{21}',
                AT: 'AT[0-9]{2}[0-9]{5}[0-9]{11}',
                AZ: 'AZ[0-9]{2}[A-Z]{4}[A-Z0-9]{20}',
                BA: 'BA[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{8}[0-9]{2}',
                BE: 'BE[0-9]{2}[0-9]{3}[0-9]{7}[0-9]{2}',
                BF: 'BF[0-9]{2}[0-9]{23}',
                BG: 'BG[0-9]{2}[A-Z]{4}[0-9]{4}[0-9]{2}[A-Z0-9]{8}',
                BH: 'BH[0-9]{2}[A-Z]{4}[A-Z0-9]{14}',
                BI: 'BI[0-9]{2}[0-9]{12}',
                BJ: 'BJ[0-9]{2}[A-Z]{1}[0-9]{23}',
                BR: 'BR[0-9]{2}[0-9]{8}[0-9]{5}[0-9]{10}[A-Z][A-Z0-9]',
                CH: 'CH[0-9]{2}[0-9]{5}[A-Z0-9]{12}',
                CI: 'CI[0-9]{2}[A-Z]{1}[0-9]{23}',
                CM: 'CM[0-9]{2}[0-9]{23}',
                CR: 'CR[0-9]{2}[0-9][0-9]{3}[0-9]{14}',
                CV: 'CV[0-9]{2}[0-9]{21}',
                CY: 'CY[0-9]{2}[0-9]{3}[0-9]{5}[A-Z0-9]{16}',
                CZ: 'CZ[0-9]{2}[0-9]{20}',
                DE: 'DE[0-9]{2}[0-9]{8}[0-9]{10}',
                DK: 'DK[0-9]{2}[0-9]{14}',
                DO: 'DO[0-9]{2}[A-Z0-9]{4}[0-9]{20}',
                DZ: 'DZ[0-9]{2}[0-9]{20}',
                EE: 'EE[0-9]{2}[0-9]{2}[0-9]{2}[0-9]{11}[0-9]{1}',
                ES: 'ES[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{1}[0-9]{1}[0-9]{10}',
                FI: 'FI[0-9]{2}[0-9]{6}[0-9]{7}[0-9]{1}',
                FO: 'FO[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}',
                FR: 'FR[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}',
                GB: 'GB[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}',
                GE: 'GE[0-9]{2}[A-Z]{2}[0-9]{16}',
                GI: 'GI[0-9]{2}[A-Z]{4}[A-Z0-9]{15}',
                GL: 'GL[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}',
                GR: 'GR[0-9]{2}[0-9]{3}[0-9]{4}[A-Z0-9]{16}',
                GT: 'GT[0-9]{2}[A-Z0-9]{4}[A-Z0-9]{20}',
                HR: 'HR[0-9]{2}[0-9]{7}[0-9]{10}',
                HU: 'HU[0-9]{2}[0-9]{3}[0-9]{4}[0-9]{1}[0-9]{15}[0-9]{1}',
                IE: 'IE[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}',
                IL: 'IL[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{13}',
                IR: 'IR[0-9]{2}[0-9]{22}',
                IS: 'IS[0-9]{2}[0-9]{4}[0-9]{2}[0-9]{6}[0-9]{10}',
                IT: 'IT[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}',
                JO: 'JO[0-9]{2}[A-Z]{4}[0-9]{4}[0]{8}[A-Z0-9]{10}',
                KW: 'KW[0-9]{2}[A-Z]{4}[0-9]{22}',
                KZ: 'KZ[0-9]{2}[0-9]{3}[A-Z0-9]{13}',
                LB: 'LB[0-9]{2}[0-9]{4}[A-Z0-9]{20}',
                LI: 'LI[0-9]{2}[0-9]{5}[A-Z0-9]{12}',
                LT: 'LT[0-9]{2}[0-9]{5}[0-9]{11}',
                LU: 'LU[0-9]{2}[0-9]{3}[A-Z0-9]{13}',
                LV: 'LV[0-9]{2}[A-Z]{4}[A-Z0-9]{13}',
                MC: 'MC[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}',
                MD: 'MD[0-9]{2}[A-Z0-9]{20}',
                ME: 'ME[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}',
                MG: 'MG[0-9]{2}[0-9]{23}',
                MK: 'MK[0-9]{2}[0-9]{3}[A-Z0-9]{10}[0-9]{2}',
                ML: 'ML[0-9]{2}[A-Z]{1}[0-9]{23}',
                MR: 'MR13[0-9]{5}[0-9]{5}[0-9]{11}[0-9]{2}',
                MT: 'MT[0-9]{2}[A-Z]{4}[0-9]{5}[A-Z0-9]{18}',
                MU: 'MU[0-9]{2}[A-Z]{4}[0-9]{2}[0-9]{2}[0-9]{12}[0-9]{3}[A-Z]{3}',
                MZ: 'MZ[0-9]{2}[0-9]{21}',
                NL: 'NL[0-9]{2}[A-Z]{4}[0-9]{10}',
                NO: 'NO[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{1}',
                PK: 'PK[0-9]{2}[A-Z]{4}[A-Z0-9]{16}',
                PL: 'PL[0-9]{2}[0-9]{8}[0-9]{16}',
                PS: 'PS[0-9]{2}[A-Z]{4}[A-Z0-9]{21}',
                PT: 'PT[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{11}[0-9]{2}',
                QA: 'QA[0-9]{2}[A-Z]{4}[A-Z0-9]{21}',
                RO: 'RO[0-9]{2}[A-Z]{4}[A-Z0-9]{16}',
                RS: 'RS[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}',
                SA: 'SA[0-9]{2}[0-9]{2}[A-Z0-9]{18}',
                SE: 'SE[0-9]{2}[0-9]{3}[0-9]{16}[0-9]{1}',
                SI: 'SI[0-9]{2}[0-9]{5}[0-9]{8}[0-9]{2}',
                SK: 'SK[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{10}',
                SM: 'SM[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}',
                SN: 'SN[0-9]{2}[A-Z]{1}[0-9]{23}',
                TL: 'TL38[0-9]{3}[0-9]{14}[0-9]{2}',
                TN: 'TN59[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}',
                TR: 'TR[0-9]{2}[0-9]{5}[A-Z0-9]{1}[A-Z0-9]{16}',
                VG: 'VG[0-9]{2}[A-Z]{4}[0-9]{16}',
                XK: 'XK[0-9]{2}[0-9]{4}[0-9]{10}[0-9]{2}',
            }, t = [
                'AT',
                'BE',
                'BG',
                'CH',
                'CY',
                'CZ',
                'DE',
                'DK',
                'EE',
                'ES',
                'FI',
                'FR',
                'GB',
                'GI',
                'GR',
                'HR',
                'HU',
                'IE',
                'IS',
                'IT',
                'LI',
                'LT',
                'LU',
                'LV',
                'MC',
                'MT',
                'NL',
                'NO',
                'PL',
                'PT',
                'RO',
                'SE',
                'SI',
                'SK',
                'SM'];
            return {
                validate: function (n) {
                    if ('' === n.value) return { valid: !0 };
                    var i = Object.assign({}, { message: '' }, n.options),
                        a = n.value.replace(/[^a-zA-Z0-9]/g, '').toUpperCase(),
                        r = i.country || a.substr(0, 2);
                    if (!e[r]) return { message: i.message, valid: !1 };
                    if (void 0 !== i.sepa) {
                        var o = -1 !== t.indexOf(r);
                        if (('true' === i.sepa || !0 === i.sepa) && !o ||
                            ('false' === i.sepa || !1 === i.sepa) &&
                            o) return { message: i.message, valid: !1 };
                    }
                    var s = b(
                        n.l10n ? i.message || n.l10n.iban.country : i.message,
                        n.l10n ? n.l10n.iban.countries[r] : r);
                    if (!new RegExp('^'.concat(e[r], '$')).test(
                        n.value)) return { message: s, valid: !1 };
                    a = (a = ''.concat(a.substr(4)).
                        concat(a.substr(0, 4))).split('').
                        map((function (e) {
                            var t = e.charCodeAt(0);
                            return t >= 'A'.charCodeAt(0) && t <=
                            'Z'.charCodeAt(0) ? t - 'A'.charCodeAt(0) + 10 : e;
                        })).
                        join('');
                    for (var l = parseInt(a.substr(0, 1),
                        10), c = a.length, u = 1; u < c; ++u) l = (10 * l +
                        parseInt(a.substr(u, 1), 10)) % 97;
                    return { message: s, valid: 1 === l };
                },
            };
        },
        id: function () {
            var e = [
                'AR',
                'BA',
                'BG',
                'BR',
                'CH',
                'CL',
                'CN',
                'CO',
                'CZ',
                'DK',
                'EE',
                'ES',
                'FI',
                'FR',
                'HK',
                'HR',
                'ID',
                'IE',
                'IL',
                'IS',
                'KR',
                'LT',
                'LV',
                'ME',
                'MK',
                'MX',
                'MY',
                'NL',
                'NO',
                'PE',
                'PL',
                'RO',
                'RS',
                'SE',
                'SI',
                'SK',
                'SM',
                'TH',
                'TR',
                'TW',
                'UY',
                'ZA'];
            return {
                validate: function (i) {
                    if ('' === i.value) return { valid: !0 };
                    var r = Object.assign({}, { message: '' }, i.options),
                        o = i.value.substr(0, 2);
                    if (o = 'function' == typeof r.country ? r.country.call(
                        this) : r.country, -1 ===
                    e.indexOf(o)) return { valid: !0 };
                    var s = { meta: {}, valid: !0 };
                    switch (o.toLowerCase()) {
                        case'ar':
                            s = function (e) {
                                var t = e.replace(/\./g, '');
                                return { meta: {}, valid: /^\d{7,8}$/.test(t) };
                            }(i.value);
                            break;
                        case'ba':
                            s = function (e) {
                                return {
                                    meta: {},
                                    valid: M(e, 'BA'),
                                };
                            }(i.value);
                            break;
                        case'bg':
                            s = function (e) {
                                if (!/^\d{10}$/.test(e) &&
                                    !/^\d{6}\s\d{3}\s\d{1}$/.test(
                                        e)) return { meta: {}, valid: !1 };
                                var t = e.replace(/\s/g, ''),
                                    n = parseInt(t.substr(0, 2), 10) + 1900,
                                    i = parseInt(t.substr(2, 2), 10);
                                if (i > 40 ? (n += 100, i -= 40) : i > 20 &&
                                    (n -= 100, i -= 20), !w(n, i,
                                    parseInt(t.substr(4, 2),
                                        10))) return { meta: {}, valid: !1 };
                                for (var a = 0, r = [
                                    2,
                                    4,
                                    8,
                                    5,
                                    10,
                                    9,
                                    7,
                                    3,
                                    6], o = 0; o < 9; o++) a += parseInt(
                                    t.charAt(o), 10) * r[o];
                                return {
                                    meta: {},
                                    valid: ''.concat(a = a % 11 % 10) ===
                                        t.substr(9, 1),
                                };
                            }(i.value);
                            break;
                        case'br':
                            s = function (e) {
                                var t = e.replace(/\D/g, '');
                                if (!/^\d{11}$/.test(t) ||
                                    /^1{11}|2{11}|3{11}|4{11}|5{11}|6{11}|7{11}|8{11}|9{11}|0{11}$/.test(
                                        t)) return { meta: {}, valid: !1 };
                                var n, i = 0;
                                for (n = 0; n < 9; n++) i += (10 - n) *
                                    parseInt(t.charAt(n), 10);
                                if (10 != (i = 11 - i % 11) && 11 !== i ||
                                (i = 0), ''.concat(i) !==
                                t.charAt(9)) return { meta: {}, valid: !1 };
                                var a = 0;
                                for (n = 0; n < 10; n++) a += (11 - n) *
                                    parseInt(t.charAt(n), 10);
                                return 10 != (a = 11 - a % 11) && 11 !== a ||
                                (a = 0), {
                                    meta: {},
                                    valid: ''.concat(a) === t.charAt(10),
                                };
                            }(i.value);
                            break;
                        case'ch':
                            s = function (e) {
                                if (!/^756[.]{0,1}[0-9]{4}[.]{0,1}[0-9]{4}[.]{0,1}[0-9]{2}$/.test(
                                    e)) return { meta: {}, valid: !1 };
                                for (var t = e.replace(/\D/g, '').
                                    substr(3), n = t.length, i = 8 === n ? [
                                    3,
                                    1] : [1, 3], a = 0, r = 0; r < n -
                                     1; r++) a += parseInt(t.charAt(r), 10) *
                                    i[r % 2];
                                return {
                                    meta: {},
                                    valid: ''.concat(a = 10 - a % 10) ===
                                        t.charAt(n - 1),
                                };
                            }(i.value);
                            break;
                        case'cl':
                            s = function (e) {
                                if (!/^\d{7,8}[-]{0,1}[0-9K]$/i.test(
                                    e)) return { meta: {}, valid: !1 };
                                for (var t = e.replace(/-/g, ''); t.length <
                                9;) t = '0'.concat(t);
                                for (var n = [
                                    3,
                                    2,
                                    7,
                                    6,
                                    5,
                                    4,
                                    3,
                                    2], i = 0, a = 0; a < 8; a++) i += parseInt(
                                    t.charAt(a), 10) * n[a];
                                var r = ''.concat(i = 11 - i % 11);
                                return 11 === i ? r = '0' : 10 === i &&
                                    (r = 'K'), {
                                    meta: {},
                                    valid: r === t.charAt(8).toUpperCase(),
                                };
                            }(i.value);
                            break;
                        case'cn':
                            s = function (e) {
                                var t = e.trim();
                                if (!/^\d{15}$/.test(t) &&
                                    !/^\d{17}[\dXx]{1}$/.test(
                                        t)) return { meta: {}, valid: !1 };
                                var n = {
                                        11: {
                                            0: [0],
                                            1: [[0, 9], [11, 17]],
                                            2: [0, 28, 29],
                                        },
                                        12: {
                                            0: [0],
                                            1: [[0, 16]],
                                            2: [0, 21, 23, 25],
                                        },
                                        13: {
                                            0: [0],
                                            1: [
                                                [0, 5],
                                                7,
                                                8,
                                                21,
                                                [23, 33],
                                                [81, 85]],
                                            2: [
                                                [0, 5],
                                                [7, 9],
                                                [23, 25],
                                                27,
                                                29,
                                                30,
                                                81,
                                                83],
                                            3: [[0, 4], [21, 24]],
                                            4: [[0, 4], 6, 21, [23, 35], 81],
                                            5: [[0, 3], [21, 35], 81, 82],
                                            6: [[0, 4], [21, 38], [81, 84]],
                                            7: [[0, 3], 5, 6, [21, 33]],
                                            8: [[0, 4], [21, 28]],
                                            9: [[0, 3], [21, 30], [81, 84]],
                                            10: [[0, 3], [22, 26], 28, 81, 82],
                                            11: [[0, 2], [21, 28], 81, 82],
                                        },
                                        14: {
                                            0: [0],
                                            1: [0, 1, [5, 10], [21, 23], 81],
                                            2: [[0, 3], 11, 12, [21, 27]],
                                            3: [[0, 3], 11, 21, 22],
                                            4: [[0, 2], 11, 21, [23, 31], 81],
                                            5: [[0, 2], 21, 22, 24, 25, 81],
                                            6: [[0, 3], [21, 24]],
                                            7: [[0, 2], [21, 29], 81],
                                            8: [[0, 2], [21, 30], 81, 82],
                                            9: [[0, 2], [21, 32], 81],
                                            10: [[0, 2], [21, 34], 81, 82],
                                            11: [[0, 2], [21, 30], 81, 82],
                                            23: [[0, 3], 22, 23, [25, 30], 32, 33],
                                        },
                                        15: {
                                            0: [0],
                                            1: [[0, 5], [21, 25]],
                                            2: [[0, 7], [21, 23]],
                                            3: [[0, 4]],
                                            4: [[0, 4], [21, 26], [28, 30]],
                                            5: [[0, 2], [21, 26], 81],
                                            6: [[0, 2], [21, 27]],
                                            7: [[0, 3], [21, 27], [81, 85]],
                                            8: [[0, 2], [21, 26]],
                                            9: [[0, 2], [21, 29], 81],
                                            22: [[0, 2], [21, 24]],
                                            25: [[0, 2], [22, 31]],
                                            26: [[0, 2], [24, 27], [29, 32], 34],
                                            28: [0, 1, [22, 27]],
                                            29: [0, [21, 23]],
                                        },
                                        21: {
                                            0: [0],
                                            1: [[0, 6], [11, 14], [22, 24], 81],
                                            2: [[0, 4], [11, 13], 24, [81, 83]],
                                            3: [[0, 4], 11, 21, 23, 81],
                                            4: [[0, 4], 11, [21, 23]],
                                            5: [[0, 5], 21, 22],
                                            6: [[0, 4], 24, 81, 82],
                                            7: [[0, 3], 11, 26, 27, 81, 82],
                                            8: [[0, 4], 11, 81, 82],
                                            9: [[0, 5], 11, 21, 22],
                                            10: [[0, 5], 11, 21, 81],
                                            11: [[0, 3], 21, 22],
                                            12: [[0, 2], 4, 21, 23, 24, 81, 82],
                                            13: [[0, 3], 21, 22, 24, 81, 82],
                                            14: [[0, 4], 21, 22, 81],
                                        },
                                        22: {
                                            0: [0],
                                            1: [[0, 6], 12, 22, [81, 83]],
                                            2: [[0, 4], 11, 21, [81, 84]],
                                            3: [[0, 3], 22, 23, 81, 82],
                                            4: [[0, 3], 21, 22],
                                            5: [[0, 3], 21, 23, 24, 81, 82],
                                            6: [[0, 2], 4, 5, [21, 23], 25, 81],
                                            7: [[0, 2], [21, 24], 81],
                                            8: [[0, 2], 21, 22, 81, 82],
                                            24: [[0, 6], 24, 26],
                                        },
                                        23: {
                                            0: [0],
                                            1: [[0, 12], 21, [23, 29], [81, 84]],
                                            2: [
                                                [0, 8],
                                                21,
                                                [23, 25],
                                                27,
                                                [29, 31],
                                                81],
                                            3: [[0, 7], 21, 81, 82],
                                            4: [[0, 7], 21, 22],
                                            5: [[0, 3], 5, 6, [21, 24]],
                                            6: [[0, 6], [21, 24]],
                                            7: [[0, 16], 22, 81],
                                            8: [[0, 5], 11, 22, 26, 28, 33, 81, 82],
                                            9: [[0, 4], 21],
                                            10: [[0, 5], 24, 25, 81, [83, 85]],
                                            11: [[0, 2], 21, 23, 24, 81, 82],
                                            12: [[0, 2], [21, 26], [81, 83]],
                                            27: [[0, 4], [21, 23]],
                                        },
                                        31: {
                                            0: [0],
                                            1: [0, 1, [3, 10], [12, 20]],
                                            2: [0, 30],
                                        },
                                        32: {
                                            0: [0],
                                            1: [[0, 7], 11, [13, 18], 24, 25],
                                            2: [[0, 6], 11, 81, 82],
                                            3: [[0, 5], 11, 12, [21, 24], 81, 82],
                                            4: [[0, 2], 4, 5, 11, 12, 81, 82],
                                            5: [[0, 9], [81, 85]],
                                            6: [[0, 2], 11, 12, 21, 23, [81, 84]],
                                            7: [0, 1, 3, 5, 6, [21, 24]],
                                            8: [[0, 4], 11, 26, [29, 31]],
                                            9: [[0, 3], [21, 25], 28, 81, 82],
                                            10: [[0, 3], 11, 12, 23, 81, 84, 88],
                                            11: [[0, 2], 11, 12, [81, 83]],
                                            12: [[0, 4], [81, 84]],
                                            13: [[0, 2], 11, [21, 24]],
                                        },
                                        33: {
                                            0: [0],
                                            1: [
                                                [0, 6],
                                                [8, 10],
                                                22,
                                                27,
                                                82,
                                                83,
                                                85],
                                            2: [
                                                0,
                                                1,
                                                [3, 6],
                                                11,
                                                12,
                                                25,
                                                26,
                                                [81, 83]],
                                            3: [[0, 4], 22, 24, [26, 29], 81, 82],
                                            4: [[0, 2], 11, 21, 24, [81, 83]],
                                            5: [[0, 3], [21, 23]],
                                            6: [[0, 2], 21, 24, [81, 83]],
                                            7: [[0, 3], 23, 26, 27, [81, 84]],
                                            8: [[0, 3], 22, 24, 25, 81],
                                            9: [[0, 3], 21, 22],
                                            10: [[0, 4], [21, 24], 81, 82],
                                            11: [[0, 2], [21, 27], 81],
                                        },
                                        34: {
                                            0: [0],
                                            1: [[0, 4], 11, [21, 24], 81],
                                            2: [[0, 4], 7, 8, [21, 23], 25],
                                            3: [[0, 4], 11, [21, 23]],
                                            4: [[0, 6], 21],
                                            5: [[0, 4], 6, [21, 23]],
                                            6: [[0, 4], 21],
                                            7: [[0, 3], 11, 21],
                                            8: [[0, 3], 11, [22, 28], 81],
                                            10: [[0, 4], [21, 24]],
                                            11: [[0, 3], 22, [24, 26], 81, 82],
                                            12: [[0, 4], 21, 22, 25, 26, 82],
                                            13: [[0, 2], [21, 24]],
                                            14: [[0, 2], [21, 24]],
                                            15: [[0, 3], [21, 25]],
                                            16: [[0, 2], [21, 23]],
                                            17: [[0, 2], [21, 23]],
                                            18: [[0, 2], [21, 25], 81],
                                        },
                                        35: {
                                            0: [0],
                                            1: [[0, 5], 11, [21, 25], 28, 81, 82],
                                            2: [[0, 6], [11, 13]],
                                            3: [[0, 5], 22],
                                            4: [[0, 3], 21, [23, 30], 81],
                                            5: [[0, 5], 21, [24, 27], [81, 83]],
                                            6: [[0, 3], [22, 29], 81],
                                            7: [[0, 2], [21, 25], [81, 84]],
                                            8: [[0, 2], [21, 25], 81],
                                            9: [[0, 2], [21, 26], 81, 82],
                                        },
                                        36: {
                                            0: [0],
                                            1: [[0, 5], 11, [21, 24]],
                                            2: [[0, 3], 22, 81],
                                            3: [[0, 2], 13, [21, 23]],
                                            4: [[0, 3], 21, [23, 30], 81, 82],
                                            5: [[0, 2], 21],
                                            6: [[0, 2], 22, 81],
                                            7: [[0, 2], [21, 35], 81, 82],
                                            8: [[0, 3], [21, 30], 81],
                                            9: [[0, 2], [21, 26], [81, 83]],
                                            10: [[0, 2], [21, 30]],
                                            11: [[0, 2], [21, 30], 81],
                                        },
                                        37: {
                                            0: [0],
                                            1: [[0, 5], 12, 13, [24, 26], 81],
                                            2: [[0, 3], 5, [11, 14], [81, 85]],
                                            3: [[0, 6], [21, 23]],
                                            4: [[0, 6], 81],
                                            5: [[0, 3], [21, 23]],
                                            6: [[0, 2], [11, 13], 34, [81, 87]],
                                            7: [[0, 5], 24, 25, [81, 86]],
                                            8: [[0, 2], 11, [26, 32], [81, 83]],
                                            9: [[0, 3], 11, 21, 23, 82, 83],
                                            10: [[0, 2], [81, 83]],
                                            11: [[0, 3], 21, 22],
                                            12: [[0, 3]],
                                            13: [[0, 2], 11, 12, [21, 29]],
                                            14: [[0, 2], [21, 28], 81, 82],
                                            15: [[0, 2], [21, 26], 81],
                                            16: [[0, 2], [21, 26]],
                                            17: [[0, 2], [21, 28]],
                                        },
                                        41: {
                                            0: [0],
                                            1: [[0, 6], 8, 22, [81, 85]],
                                            2: [[0, 5], 11, [21, 25]],
                                            3: [[0, 7], 11, [22, 29], 81],
                                            4: [[0, 4], 11, [21, 23], 25, 81, 82],
                                            5: [[0, 3], 5, 6, 22, 23, 26, 27, 81],
                                            6: [[0, 3], 11, 21, 22],
                                            7: [[0, 4], 11, 21, [24, 28], 81, 82],
                                            8: [[0, 4], 11, [21, 23], 25, [81, 83]],
                                            9: [[0, 2], 22, 23, [26, 28]],
                                            10: [[0, 2], [23, 25], 81, 82],
                                            11: [[0, 4], [21, 23]],
                                            12: [[0, 2], 21, 22, 24, 81, 82],
                                            13: [[0, 3], [21, 30], 81],
                                            14: [[0, 3], [21, 26], 81],
                                            15: [[0, 3], [21, 28]],
                                            16: [[0, 2], [21, 28], 81],
                                            17: [[0, 2], [21, 29]],
                                            90: [0, 1],
                                        },
                                        42: {
                                            0: [0],
                                            1: [[0, 7], [11, 17]],
                                            2: [[0, 5], 22, 81],
                                            3: [[0, 3], [21, 25], 81],
                                            5: [[0, 6], [25, 29], [81, 83]],
                                            6: [[0, 2], 6, 7, [24, 26], [82, 84]],
                                            7: [[0, 4]],
                                            8: [[0, 2], 4, 21, 22, 81],
                                            9: [[0, 2], [21, 23], 81, 82, 84],
                                            10: [[0, 3], [22, 24], 81, 83, 87],
                                            11: [[0, 2], [21, 27], 81, 82],
                                            12: [[0, 2], [21, 24], 81],
                                            13: [[0, 3], 21, 81],
                                            28: [[0, 2], 22, 23, [25, 28]],
                                            90: [0, [4, 6], 21],
                                        },
                                        43: {
                                            0: [0],
                                            1: [[0, 5], 11, 12, 21, 22, 24, 81],
                                            2: [[0, 4], 11, 21, [23, 25], 81],
                                            3: [[0, 2], 4, 21, 81, 82],
                                            4: [
                                                0,
                                                1,
                                                [5, 8],
                                                12,
                                                [21, 24],
                                                26,
                                                81,
                                                82],
                                            5: [[0, 3], 11, [21, 25], [27, 29], 81],
                                            6: [[0, 3], 11, 21, 23, 24, 26, 81, 82],
                                            7: [[0, 3], [21, 26], 81],
                                            8: [[0, 2], 11, 21, 22],
                                            9: [[0, 3], [21, 23], 81],
                                            10: [[0, 3], [21, 28], 81],
                                            11: [[0, 3], [21, 29]],
                                            12: [[0, 2], [21, 30], 81],
                                            13: [[0, 2], 21, 22, 81, 82],
                                            31: [0, 1, [22, 27], 30],
                                        },
                                        44: {
                                            0: [0],
                                            1: [[0, 7], [11, 16], 83, 84],
                                            2: [
                                                [0, 5],
                                                21,
                                                22,
                                                24,
                                                29,
                                                32,
                                                33,
                                                81,
                                                82],
                                            3: [0, 1, [3, 8]],
                                            4: [[0, 4]],
                                            5: [0, 1, [6, 15], 23, 82, 83],
                                            6: [0, 1, [4, 8]],
                                            7: [0, 1, [3, 5], 81, [83, 85]],
                                            8: [[0, 4], 11, 23, 25, [81, 83]],
                                            9: [[0, 3], 23, [81, 83]],
                                            12: [[0, 3], [23, 26], 83, 84],
                                            13: [[0, 3], [22, 24], 81],
                                            14: [[0, 2], [21, 24], 26, 27, 81],
                                            15: [[0, 2], 21, 23, 81],
                                            16: [[0, 2], [21, 25]],
                                            17: [[0, 2], 21, 23, 81],
                                            18: [[0, 3], 21, 23, [25, 27], 81, 82],
                                            19: [0],
                                            20: [0],
                                            51: [[0, 3], 21, 22],
                                            52: [[0, 3], 21, 22, 24, 81],
                                            53: [[0, 2], [21, 23], 81],
                                        },
                                        45: {
                                            0: [0],
                                            1: [[0, 9], [21, 27]],
                                            2: [[0, 5], [21, 26]],
                                            3: [[0, 5], 11, 12, [21, 32]],
                                            4: [0, 1, [3, 6], 11, [21, 23], 81],
                                            5: [[0, 3], 12, 21],
                                            6: [[0, 3], 21, 81],
                                            7: [[0, 3], 21, 22],
                                            8: [[0, 4], 21, 81],
                                            9: [[0, 3], [21, 24], 81],
                                            10: [[0, 2], [21, 31]],
                                            11: [[0, 2], [21, 23]],
                                            12: [[0, 2], [21, 29], 81],
                                            13: [[0, 2], [21, 24], 81],
                                            14: [[0, 2], [21, 25], 81],
                                        },
                                        46: {
                                            0: [0],
                                            1: [0, 1, [5, 8]],
                                            2: [0, 1],
                                            3: [0, [21, 23]],
                                            90: [[0, 3], [5, 7], [21, 39]],
                                        },
                                        50: {
                                            0: [0],
                                            1: [[0, 19]],
                                            2: [0, [22, 38], [40, 43]],
                                            3: [0, [81, 84]],
                                        },
                                        51: {
                                            0: [0],
                                            1: [
                                                0,
                                                1,
                                                [4, 8],
                                                [12, 15],
                                                [21, 24],
                                                29,
                                                31,
                                                32,
                                                [81, 84]],
                                            3: [[0, 4], 11, 21, 22],
                                            4: [[0, 3], 11, 21, 22],
                                            5: [[0, 4], 21, 22, 24, 25],
                                            6: [0, 1, 3, 23, 26, [81, 83]],
                                            7: [0, 1, 3, 4, [22, 27], 81],
                                            8: [[0, 2], 11, 12, [21, 24]],
                                            9: [[0, 4], [21, 23]],
                                            10: [[0, 2], 11, 24, 25, 28],
                                            11: [
                                                [0, 2],
                                                [11, 13],
                                                23,
                                                24,
                                                26,
                                                29,
                                                32,
                                                33,
                                                81],
                                            13: [[0, 4], [21, 25], 81],
                                            14: [[0, 2], [21, 25]],
                                            15: [[0, 3], [21, 29]],
                                            16: [[0, 3], [21, 23], 81],
                                            17: [[0, 3], [21, 25], 81],
                                            18: [[0, 3], [21, 27]],
                                            19: [[0, 3], [21, 23]],
                                            20: [[0, 2], 21, 22, 81],
                                            32: [0, [21, 33]],
                                            33: [0, [21, 38]],
                                            34: [0, 1, [22, 37]],
                                        },
                                        52: {
                                            0: [0],
                                            1: [[0, 3], [11, 15], [21, 23], 81],
                                            2: [0, 1, 3, 21, 22],
                                            3: [[0, 3], [21, 30], 81, 82],
                                            4: [[0, 2], [21, 25]],
                                            5: [[0, 2], [21, 27]],
                                            6: [[0, 3], [21, 28]],
                                            22: [0, 1, [22, 30]],
                                            23: [0, 1, [22, 28]],
                                            24: [0, 1, [22, 28]],
                                            26: [0, 1, [22, 36]],
                                            27: [[0, 2], 22, 23, [25, 32]],
                                        },
                                        53: {
                                            0: [0],
                                            1: [
                                                [0, 3],
                                                [11, 14],
                                                21,
                                                22,
                                                [24, 29],
                                                81],
                                            3: [[0, 2], [21, 26], 28, 81],
                                            4: [[0, 2], [21, 28]],
                                            5: [[0, 2], [21, 24]],
                                            6: [[0, 2], [21, 30]],
                                            7: [[0, 2], [21, 24]],
                                            8: [[0, 2], [21, 29]],
                                            9: [[0, 2], [21, 27]],
                                            23: [0, 1, [22, 29], 31],
                                            25: [[0, 4], [22, 32]],
                                            26: [0, 1, [21, 28]],
                                            27: [0, 1, [22, 30]],
                                            28: [0, 1, 22, 23],
                                            29: [0, 1, [22, 32]],
                                            31: [0, 2, 3, [22, 24]],
                                            34: [0, [21, 23]],
                                            33: [0, 21, [23, 25]],
                                            35: [0, [21, 28]],
                                        },
                                        54: {
                                            0: [0],
                                            1: [[0, 2], [21, 27]],
                                            21: [0, [21, 29], 32, 33],
                                            22: [0, [21, 29], [31, 33]],
                                            23: [0, 1, [22, 38]],
                                            24: [0, [21, 31]],
                                            25: [0, [21, 27]],
                                            26: [0, [21, 27]],
                                        },
                                        61: {
                                            0: [0],
                                            1: [[0, 4], [11, 16], 22, [24, 26]],
                                            2: [[0, 4], 22],
                                            3: [[0, 4], [21, 24], [26, 31]],
                                            4: [[0, 4], [22, 31], 81],
                                            5: [[0, 2], [21, 28], 81, 82],
                                            6: [[0, 2], [21, 32]],
                                            7: [[0, 2], [21, 30]],
                                            8: [[0, 2], [21, 31]],
                                            9: [[0, 2], [21, 29]],
                                            10: [[0, 2], [21, 26]],
                                        },
                                        62: {
                                            0: [0],
                                            1: [[0, 5], 11, [21, 23]],
                                            2: [0, 1],
                                            3: [[0, 2], 21],
                                            4: [[0, 3], [21, 23]],
                                            5: [[0, 3], [21, 25]],
                                            6: [[0, 2], [21, 23]],
                                            7: [[0, 2], [21, 25]],
                                            8: [[0, 2], [21, 26]],
                                            9: [[0, 2], [21, 24], 81, 82],
                                            10: [[0, 2], [21, 27]],
                                            11: [[0, 2], [21, 26]],
                                            12: [[0, 2], [21, 28]],
                                            24: [0, 21, [24, 29]],
                                            26: [0, 21, [23, 30]],
                                            29: [0, 1, [21, 27]],
                                            30: [0, 1, [21, 27]],
                                        },
                                        63: {
                                            0: [0],
                                            1: [[0, 5], [21, 23]],
                                            2: [0, 2, [21, 25]],
                                            21: [0, [21, 23], [26, 28]],
                                            22: [0, [21, 24]],
                                            23: [0, [21, 24]],
                                            25: [0, [21, 25]],
                                            26: [0, [21, 26]],
                                            27: [0, 1, [21, 26]],
                                            28: [[0, 2], [21, 23]],
                                        },
                                        64: {
                                            0: [0],
                                            1: [0, 1, [4, 6], 21, 22, 81],
                                            2: [[0, 3], 5, [21, 23]],
                                            3: [[0, 3], [21, 24], 81],
                                            4: [[0, 2], [21, 25]],
                                            5: [[0, 2], 21, 22],
                                        },
                                        65: {
                                            0: [0],
                                            1: [[0, 9], 21],
                                            2: [[0, 5]],
                                            21: [0, 1, 22, 23],
                                            22: [0, 1, 22, 23],
                                            23: [[0, 3], [23, 25], 27, 28],
                                            28: [0, 1, [22, 29]],
                                            29: [0, 1, [22, 29]],
                                            30: [0, 1, [22, 24]],
                                            31: [0, 1, [21, 31]],
                                            32: [0, 1, [21, 27]],
                                            40: [0, 2, 3, [21, 28]],
                                            42: [[0, 2], 21, [23, 26]],
                                            43: [0, 1, [21, 26]],
                                            90: [[0, 4]],
                                            27: [[0, 2], 22, 23],
                                        },
                                        71: { 0: [0] },
                                        81: { 0: [0] },
                                        82: { 0: [0] },
                                    }, i = parseInt(t.substr(0, 2), 10),
                                    a = parseInt(t.substr(2, 2), 10),
                                    r = parseInt(t.substr(4, 2), 10);
                                if (!n[i] || !n[i][a]) return {
                                    meta: {},
                                    valid: !1,
                                };
                                var o, s, l = !1, c = n[i][a];
                                for (o = 0; o <
                                c.length; o++) if (Array.isArray(c[o]) &&
                                    c[o][0] <= r && r <= c[o][1] ||
                                    !Array.isArray(c[o]) && r === c[o]) {
                                    l = !0;
                                    break;
                                }
                                if (!l) return { meta: {}, valid: !1 };
                                if (s = 18 === t.length
                                    ? t.substr(6, 8)
                                    : '19'.concat(t.substr(6, 6)), !w(
                                    parseInt(s.substr(0, 4), 10),
                                    parseInt(s.substr(4, 2), 10),
                                    parseInt(s.substr(6, 2),
                                        10))) return { meta: {}, valid: !1 };
                                if (18 === t.length) {
                                    var u = [
                                        7,
                                        9,
                                        10,
                                        5,
                                        8,
                                        4,
                                        2,
                                        1,
                                        6,
                                        3,
                                        7,
                                        9,
                                        10,
                                        5,
                                        8,
                                        4,
                                        2], d = 0;
                                    for (o = 0; o < 17; o++) d += parseInt(
                                        t.charAt(o), 10) * u[o];
                                    return d = (12 - d % 11) % 11, {
                                        meta: {},
                                        valid: ('X' !==
                                        t.charAt(17).toUpperCase() ? parseInt(
                                            t.charAt(17), 10) : 10) === d,
                                    };
                                }
                                return { meta: {}, valid: !0 };
                            }(i.value);
                            break;
                        case'co':
                            s = function (e) {
                                var t = e.replace(/\./g, '').
                                    replace('-', '');
                                if (!/^\d{8,16}$/.test(t)) return {
                                    meta: {},
                                    valid: !1,
                                };
                                for (var n = t.length, i = [
                                    3,
                                    7,
                                    13,
                                    17,
                                    19,
                                    23,
                                    29,
                                    37,
                                    41,
                                    43,
                                    47,
                                    53,
                                    59,
                                    67,
                                    71], a = 0, r = n - 2; r >=
                                     0; r--) a += parseInt(t.charAt(r), 10) *
                                    i[r];
                                return (a %= 11) >= 2 && (a = 11 - a), {
                                    meta: {},
                                    valid: ''.concat(a) === t.substr(n - 1),
                                };
                            }(i.value);
                            break;
                        case'cz':
                            s = L(i.value);
                            break;
                        case'dk':
                            s = function (e) {
                                if (!/^[0-9]{6}[-]{0,1}[0-9]{4}$/.test(
                                    e)) return { meta: {}, valid: !1 };
                                var t = e.replace(/-/g, ''),
                                    n = parseInt(t.substr(0, 2), 10),
                                    i = parseInt(t.substr(2, 2), 10),
                                    a = parseInt(t.substr(4, 2), 10);
                                switch (!0) {
                                    case-1 !== '5678'.indexOf(t.charAt(6)) &&
                                    a >= 58:
                                        a += 1800;
                                        break;
                                    case-1 !== '0123'.indexOf(t.charAt(6)):
                                    case-1 !== '49'.indexOf(t.charAt(6)) && a >=
                                    37:
                                        a += 1900;
                                        break;
                                    default:
                                        a += 2e3;
                                }
                                return { meta: {}, valid: w(a, i, n) };
                            }(i.value);
                            break;
                        case'ee':
                            s = S(i.value);
                            break;
                        case'es':
                            s = function (e) {
                                var t = /^[0-9]{8}[-]{0,1}[A-HJ-NP-TV-Z]$/.test(
                                    e),
                                    n = /^[XYZ][-]{0,1}[0-9]{7}[-]{0,1}[A-HJ-NP-TV-Z]$/.test(
                                        e),
                                    i = /^[A-HNPQS][-]{0,1}[0-9]{7}[-]{0,1}[0-9A-J]$/.test(
                                        e);
                                if (!t && !n && !i) return {
                                    meta: {},
                                    valid: !1,
                                };
                                var a, r, o = e.replace(/-/g, '');
                                if (t || n) {
                                    r = 'DNI';
                                    var s = 'XYZ'.indexOf(o.charAt(0));
                                    return -1 !== s && (o = s + o.substr(1) +
                                        '', r = 'NIE'), {
                                        meta: { type: r },
                                        valid: (a = 'TRWAGMYFPDXBNJZSQVHLCKE'[(a = parseInt(
                                            o.substr(0, 8), 10)) % 23]) ===
                                            o.substr(8, 1),
                                    };
                                }
                                a = o.substr(1, 7), r = 'CIF';
                                for (var l = o[0], c = o.substr(
                                    -1), u = 0, d = 0; d <
                                     a.length; d++) if (d % 2 !=
                                    0) u += parseInt(a[d], 10); else {
                                    var h = '' + 2 * parseInt(a[d], 10);
                                    u += parseInt(h[0], 10), 2 === h.length &&
                                    (u += parseInt(h[1], 10));
                                }
                                var f = u - 10 * Math.floor(u / 10);
                                return 0 !== f && (f = 10 - f), {
                                    meta: { type: r },
                                    valid: -1 !== 'KQS'.indexOf(l) ? c ===
                                        'JABCDEFGHI'[f] : -1 !==
                                    'ABEH'.indexOf(l) ? c === '' + f : c ===
                                        '' + f || c === 'JABCDEFGHI'[f],
                                };
                            }(i.value);
                            break;
                        case'fi':
                            s = function (e) {
                                if (!/^[0-9]{6}[-+A][0-9]{3}[0-9ABCDEFHJKLMNPRSTUVWXY]$/.test(
                                    e)) return { meta: {}, valid: !1 };
                                var t = parseInt(e.substr(0, 2), 10),
                                    n = parseInt(e.substr(2, 2), 10),
                                    i = parseInt(e.substr(4, 2), 10);
                                if (!w(i = {
                                    '+': 1800,
                                    '-': 1900,
                                    A: 2e3,
                                }[e.charAt(6)] + i, n, t)) return {
                                    meta: {},
                                    valid: !1,
                                };
                                if (parseInt(e.substr(7, 3), 10) <
                                    2) return { meta: {}, valid: !1 };
                                var a = parseInt(
                                    e.substr(0, 6) + e.substr(7, 3) + '', 10);
                                return {
                                    meta: {},
                                    valid: '0123456789ABCDEFHJKLMNPRSTUVWXY'.charAt(
                                        a % 31) === e.charAt(10),
                                };
                            }(i.value);
                            break;
                        case'fr':
                            s = function (e) {
                                var t = e.toUpperCase();
                                if (!/^(1|2)\d{2}\d{2}(\d{2}|\d[A-Z]|\d{3})\d{2,3}\d{3}\d{2}$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                var n = t.substr(5, 2);
                                switch (!0) {
                                    case/^\d{2}$/.test(n):
                                        t = e;
                                        break;
                                    case'2A' === n:
                                        t = ''.concat(e.substr(0, 5), '19').
                                            concat(e.substr(7));
                                        break;
                                    case'2B' === n:
                                        t = ''.concat(e.substr(0, 5), '18').
                                            concat(e.substr(7));
                                        break;
                                    default:
                                        return { meta: {}, valid: !1 };
                                }
                                var i = 97 - parseInt(t.substr(0, 13), 10) % 97;
                                return {
                                    meta: {},
                                    valid: (i < 10 ? '0'.concat(i) : ''.concat(
                                        i)) === t.substr(13),
                                };
                            }(i.value);
                            break;
                        case'hk':
                            s = function (e) {
                                var t = e.toUpperCase();
                                if (!/^[A-MP-Z]{1,2}[0-9]{6}[0-9A]$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                var n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
                                    i = t.charAt(0), a = t.charAt(1), r = 0,
                                    o = t;
                                /^[A-Z]$/.test(a)
                                    ? (r += 9 * (10 + n.indexOf(i)), r += 8 *
                                    (10 + n.indexOf(a)), o = t.substr(2))
                                    : (r += 324, r += 8 *
                                    (10 + n.indexOf(i)), o = t.substr(1));
                                for (var s = o.length, l = 0; l < s -
                                1; l++) r += (7 - l) *
                                    parseInt(o.charAt(l), 10);
                                var c = r % 11;
                                return {
                                    meta: {},
                                    valid: (0 === c ? '0' : 11 - c == 10
                                        ? 'A'
                                        : ''.concat(11 - c)) ===
                                        o.charAt(s - 1),
                                };
                            }(i.value);
                            break;
                        case'hr':
                            s = function (e) {
                                return {
                                    meta: {},
                                    valid: /^[0-9]{11}$/.test(e) && n(e),
                                };
                            }(i.value);
                            break;
                        case'id':
                            s = function (e) {
                                return /^[2-9]\d{11}$/.test(e)
                                    ? {
                                        meta: {},
                                        valid: a(e.split('').
                                            map((function (e) {
                                                return parseInt(e, 10);
                                            }))),
                                    }
                                    : { meta: {}, valid: !1 };
                            }(i.value);
                            break;
                        case'ie':
                            s = function (e) {
                                if (!/^\d{7}[A-W][AHWTX]?$/.test(
                                    e)) return { meta: {}, valid: !1 };
                                var t = function (e) {
                                    for (var t = e; t.length <
                                    7;) t = '0'.concat(t);
                                    for (var n = 'WABCDEFGHIJKLMNOPQRSTUV', i = 0, a = 0; a <
                                    7; a++) i += parseInt(t.charAt(a), 10) *
                                        (8 - a);
                                    return i += 9 *
                                        n.indexOf(t.substr(7)), n[i % 23];
                                };
                                return {
                                    meta: {},
                                    valid: 9 !== e.length || 'A' !==
                                    e.charAt(8) && 'H' !== e.charAt(8)
                                        ? e.charAt(7) === t(e.substr(0, 7))
                                        : e.charAt(7) ===
                                        t(e.substr(0, 7) + e.substr(8) + ''),
                                };
                            }(i.value);
                            break;
                        case'il':
                            s = function (e) {
                                return /^\d{1,9}$/.test(e)
                                    ? { meta: {}, valid: t(e) }
                                    : { meta: {}, valid: !1 };
                            }(i.value);
                            break;
                        case'is':
                            s = function (e) {
                                if (!/^[0-9]{6}[-]{0,1}[0-9]{4}$/.test(
                                    e)) return { meta: {}, valid: !1 };
                                var t = e.replace(/-/g, ''),
                                    n = parseInt(t.substr(0, 2), 10),
                                    i = parseInt(t.substr(2, 2), 10),
                                    a = parseInt(t.substr(4, 2), 10),
                                    r = parseInt(t.charAt(9), 10);
                                if (!w(
                                    a = 9 === r ? 1900 + a : 100 * (20 + r) + a,
                                    i, n, !0)) return { meta: {}, valid: !1 };
                                for (var o = [
                                    3,
                                    2,
                                    7,
                                    6,
                                    5,
                                    4,
                                    3,
                                    2], s = 0, l = 0; l < 8; l++) s += parseInt(
                                    t.charAt(l), 10) * o[l];
                                return {
                                    meta: {},
                                    valid: ''.concat(s = 11 - s % 11) ===
                                        t.charAt(8),
                                };
                            }(i.value);
                            break;
                        case'kr':
                            s = function (e) {
                                var t = e.replace('-', '');
                                if (!/^\d{13}$/.test(t)) return {
                                    meta: {},
                                    valid: !1,
                                };
                                var n = t.charAt(6),
                                    i = parseInt(t.substr(0, 2), 10),
                                    a = parseInt(t.substr(2, 2), 10),
                                    r = parseInt(t.substr(4, 2), 10);
                                switch (n) {
                                    case'1':
                                    case'2':
                                    case'5':
                                    case'6':
                                        i += 1900;
                                        break;
                                    case'3':
                                    case'4':
                                    case'7':
                                    case'8':
                                        i += 2e3;
                                        break;
                                    default:
                                        i += 1800;
                                }
                                if (!w(i, a, r)) return { meta: {}, valid: !1 };
                                for (var o = [
                                    2,
                                    3,
                                    4,
                                    5,
                                    6,
                                    7,
                                    8,
                                    9,
                                    2,
                                    3,
                                    4,
                                    5], s = t.length, l = 0, c = 0; c < s -
                                     1; c++) l += o[c] *
                                    parseInt(t.charAt(c), 10);
                                return {
                                    meta: {},
                                    valid: ''.concat((11 - l % 11) % 10) ===
                                        t.charAt(s - 1),
                                };
                            }(i.value);
                            break;
                        case'lt':
                            s = S(i.value);
                            break;
                        case'lv':
                            s = function (e) {
                                if (!/^[0-9]{6}[-]{0,1}[0-9]{5}$/.test(
                                    e)) return { meta: {}, valid: !1 };
                                var t = e.replace(/\D/g, ''),
                                    n = parseInt(t.substr(0, 2), 10),
                                    i = parseInt(t.substr(2, 2), 10),
                                    a = parseInt(t.substr(4, 2), 10);
                                if (!w(a = a + 1800 + 100 *
                                    parseInt(t.charAt(6), 10), i, n,
                                    !0)) return { meta: {}, valid: !1 };
                                for (var r = 0, o = [
                                    10,
                                    5,
                                    8,
                                    4,
                                    2,
                                    1,
                                    6,
                                    3,
                                    7,
                                    9], s = 0; s < 10; s++) r += parseInt(
                                    t.charAt(s), 10) * o[s];
                                return {
                                    meta: {},
                                    valid: ''.concat(r = (r + 1) % 11 % 10) ===
                                        t.charAt(10),
                                };
                            }(i.value);
                            break;
                        case'me':
                            s = function (e) {
                                return {
                                    meta: {},
                                    valid: M(e, 'ME'),
                                };
                            }(i.value);
                            break;
                        case'mk':
                            s = function (e) {
                                return {
                                    meta: {},
                                    valid: M(e, 'MK'),
                                };
                            }(i.value);
                            break;
                        case'mx':
                            s = function (e) {
                                var t = e.toUpperCase();
                                if (!/^[A-Z]{4}\d{6}[A-Z]{6}[0-9A-Z]\d$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                var n = t.substr(0, 4);
                                if ([
                                    'BACA',
                                    'BAKA',
                                    'BUEI',
                                    'BUEY',
                                    'CACA',
                                    'CACO',
                                    'CAGA',
                                    'CAGO',
                                    'CAKA',
                                    'CAKO',
                                    'COGE',
                                    'COGI',
                                    'COJA',
                                    'COJE',
                                    'COJI',
                                    'COJO',
                                    'COLA',
                                    'CULO',
                                    'FALO',
                                    'FETO',
                                    'GETA',
                                    'GUEI',
                                    'GUEY',
                                    'JETA',
                                    'JOTO',
                                    'KACA',
                                    'KACO',
                                    'KAGA',
                                    'KAGO',
                                    'KAKA',
                                    'KAKO',
                                    'KOGE',
                                    'KOGI',
                                    'KOJA',
                                    'KOJE',
                                    'KOJI',
                                    'KOJO',
                                    'KOLA',
                                    'KULO',
                                    'LILO',
                                    'LOCA',
                                    'LOCO',
                                    'LOKA',
                                    'LOKO',
                                    'MAME',
                                    'MAMO',
                                    'MEAR',
                                    'MEAS',
                                    'MEON',
                                    'MIAR',
                                    'MION',
                                    'MOCO',
                                    'MOKO',
                                    'MULA',
                                    'MULO',
                                    'NACA',
                                    'NACO',
                                    'PEDA',
                                    'PEDO',
                                    'PENE',
                                    'PIPI',
                                    'PITO',
                                    'POPO',
                                    'PUTA',
                                    'PUTO',
                                    'QULO',
                                    'RATA',
                                    'ROBA',
                                    'ROBE',
                                    'ROBO',
                                    'RUIN',
                                    'SENO',
                                    'TETA',
                                    'VACA',
                                    'VAGA',
                                    'VAGO',
                                    'VAKA',
                                    'VUEI',
                                    'VUEY',
                                    'WUEI',
                                    'WUEY'].indexOf(n) >= 0) return {
                                    meta: {},
                                    valid: !1,
                                };
                                var i = parseInt(t.substr(4, 2), 10),
                                    a = parseInt(t.substr(6, 2), 10),
                                    r = parseInt(t.substr(6, 2), 10);
                                if (/^[0-9]$/.test(t.charAt(16))
                                    ? i += 1900
                                    : i += 2e3, !w(i, a, r)) return {
                                    meta: {},
                                    valid: !1,
                                };
                                var o = t.charAt(10);
                                if ('H' !== o && 'M' !== o) return {
                                    meta: {},
                                    valid: !1,
                                };
                                var s = t.substr(11, 2);
                                if (-1 === [
                                    'AS',
                                    'BC',
                                    'BS',
                                    'CC',
                                    'CH',
                                    'CL',
                                    'CM',
                                    'CS',
                                    'DF',
                                    'DG',
                                    'GR',
                                    'GT',
                                    'HG',
                                    'JC',
                                    'MC',
                                    'MN',
                                    'MS',
                                    'NE',
                                    'NL',
                                    'NT',
                                    'OC',
                                    'PL',
                                    'QR',
                                    'QT',
                                    'SL',
                                    'SP',
                                    'SR',
                                    'TC',
                                    'TL',
                                    'TS',
                                    'VZ',
                                    'YN',
                                    'ZS'].indexOf(s)) return {
                                    meta: {},
                                    valid: !1,
                                };
                                for (var l = 0, c = t.length, u = 0; u < c -
                                1; u++) l += (18 - u) *
                                    '0123456789ABCDEFGHIJKLMN&OPQRSTUVWXYZ'.indexOf(
                                        t.charAt(u));
                                return {
                                    meta: {},
                                    valid: ''.concat(l = (10 - l % 10) % 10) ===
                                        t.charAt(c - 1),
                                };
                            }(i.value);
                            break;
                        case'my':
                            s = function (e) {
                                if (!/^\d{12}$/.test(e)) return {
                                    meta: {},
                                    valid: !1,
                                };
                                var t = parseInt(e.substr(0, 2), 10),
                                    n = parseInt(e.substr(2, 2), 10),
                                    i = parseInt(e.substr(4, 2), 10);
                                if (!w(t + 1900, n, i) &&
                                    !w(t + 2e3, n, i)) return {
                                    meta: {},
                                    valid: !1,
                                };
                                var a = e.substr(6, 2);
                                return {
                                    meta: {},
                                    valid: -1 === [
                                        '17',
                                        '18',
                                        '19',
                                        '20',
                                        '69',
                                        '70',
                                        '73',
                                        '80',
                                        '81',
                                        '94',
                                        '95',
                                        '96',
                                        '97'].indexOf(a),
                                };
                            }(i.value);
                            break;
                        case'nl':
                            s = T(i.value);
                            break;
                        case'no':
                            s = function (e) {
                                return /^\d{11}$/.test(e)
                                    ? {
                                        meta: {},
                                        valid: ''.concat(function (e) {
                                            for (var t = [
                                                3,
                                                7,
                                                6,
                                                1,
                                                8,
                                                9,
                                                4,
                                                5,
                                                2], n = 0, i = 0; i <
                                                 9; i++) n += t[i] *
                                                parseInt(e.charAt(i), 10);
                                            return 11 - n % 11;
                                        }(e)) === e.substr(-2, 1) && ''.concat(
                                            function (e) {
                                                for (var t = [
                                                    5,
                                                    4,
                                                    3,
                                                    2,
                                                    7,
                                                    6,
                                                    5,
                                                    4,
                                                    3,
                                                    2], n = 0, i = 0; i <
                                                     10; i++) n += t[i] *
                                                    parseInt(e.charAt(i), 10);
                                                return 11 - n % 11;
                                            }(e)) === e.substr(-1),
                                    }
                                    : { meta: {}, valid: !1 };
                            }(i.value);
                            break;
                        case'pe':
                            s = function (e) {
                                if (!/^\d{8}[0-9A-Z]*$/.test(
                                    e)) return { meta: {}, valid: !1 };
                                if (8 === e.length) return {
                                    meta: {},
                                    valid: !0,
                                };
                                for (var t = [
                                    3,
                                    2,
                                    7,
                                    6,
                                    5,
                                    4,
                                    3,
                                    2], n = 0, i = 0; i < 8; i++) n += t[i] *
                                    parseInt(e.charAt(i), 10);
                                var a = n % 11,
                                    r = [6, 5, 4, 3, 2, 1, 1, 0, 9, 8, 7][a],
                                    o = 'KJIHGFEDCBA'.charAt(a);
                                return {
                                    meta: {},
                                    valid: e.charAt(8) === ''.concat(r) ||
                                        e.charAt(8) === o,
                                };
                            }(i.value);
                            break;
                        case'pl':
                            s = function (e) {
                                if (!/^[0-9]{11}$/.test(e)) return {
                                    meta: {},
                                    valid: !1,
                                };
                                for (var t = 0, n = e.length, i = [
                                    1,
                                    3,
                                    7,
                                    9,
                                    1,
                                    3,
                                    7,
                                    9,
                                    1,
                                    3,
                                    7], a = 0; a < n - 1; a++) t += i[a] *
                                    parseInt(e.charAt(a), 10);
                                return 0 == (t %= 10) && (t = 10), {
                                    meta: {},
                                    valid: ''.concat(t = 10 - t) ===
                                        e.charAt(n - 1),
                                };
                            }(i.value);
                            break;
                        case'ro':
                            s = function (e) {
                                if (!/^[0-9]{13}$/.test(e)) return {
                                    meta: {},
                                    valid: !1,
                                };
                                var t = parseInt(e.charAt(0), 10);
                                if (0 === t || 7 === t || 8 ===
                                    t) return { meta: {}, valid: !1 };
                                var n = parseInt(e.substr(1, 2), 10),
                                    i = parseInt(e.substr(3, 2), 10),
                                    a = parseInt(e.substr(5, 2), 10);
                                if (a > 31 && i > 12) return {
                                    meta: {},
                                    valid: !1,
                                };
                                if (9 !== t && !w(n = {
                                    1: 1900,
                                    2: 1900,
                                    3: 1800,
                                    4: 1800,
                                    5: 2e3,
                                    6: 2e3,
                                }[t + ''] + n, i, a)) return {
                                    meta: {},
                                    valid: !1,
                                };
                                for (var r = 0, o = [
                                    2,
                                    7,
                                    9,
                                    1,
                                    4,
                                    6,
                                    3,
                                    5,
                                    8,
                                    2,
                                    7,
                                    9], s = e.length, l = 0; l < s -
                                     1; l++) r += parseInt(e.charAt(l), 10) *
                                    o[l];
                                return 10 == (r %= 11) && (r = 1), {
                                    meta: {},
                                    valid: ''.concat(r) === e.charAt(s - 1),
                                };
                            }(i.value);
                            break;
                        case'rs':
                            s = function (e) {
                                return {
                                    meta: {},
                                    valid: M(e, 'RS'),
                                };
                            }(i.value);
                            break;
                        case'se':
                            s = function (e) {
                                if (!/^[0-9]{10}$/.test(e) &&
                                    !/^[0-9]{6}[-|+][0-9]{4}$/.test(
                                        e)) return { meta: {}, valid: !1 };
                                var n = e.replace(/[^0-9]/g, '');
                                return w(parseInt(n.substr(0, 2), 10) + 1900,
                                    parseInt(n.substr(2, 2), 10),
                                    parseInt(n.substr(4, 2), 10)) ? {
                                    meta: {},
                                    valid: t(n),
                                } : { meta: {}, valid: !1 };
                            }(i.value);
                            break;
                        case'si':
                            s = function (e) {
                                return {
                                    meta: {},
                                    valid: M(e, 'SI'),
                                };
                            }(i.value);
                            break;
                        case'sk':
                            s = L(i.value);
                            break;
                        case'sm':
                            s = function (e) {
                                return {
                                    meta: {},
                                    valid: /^\d{5}$/.test(e),
                                };
                            }(i.value);
                            break;
                        case'th':
                            s = function (e) {
                                if (13 !== e.length) return {
                                    meta: {},
                                    valid: !1,
                                };
                                for (var t = 0, n = 0; n <
                                12; n++) t += parseInt(e.charAt(n), 10) *
                                    (13 - n);
                                return {
                                    meta: {},
                                    valid: (11 - t % 11) % 10 ===
                                        parseInt(e.charAt(12), 10),
                                };
                            }(i.value);
                            break;
                        case'tr':
                            s = function (e) {
                                if (11 !== e.length) return {
                                    meta: {},
                                    valid: !1,
                                };
                                for (var t = 0, n = 0; n <
                                10; n++) t += parseInt(e.charAt(n), 10);
                                return {
                                    meta: {},
                                    valid: t % 10 ===
                                        parseInt(e.charAt(10), 10),
                                };
                            }(i.value);
                            break;
                        case'tw':
                            s = function (e) {
                                var t = e.toUpperCase();
                                if (!/^[A-Z][12][0-9]{8}$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                for (var n = t.length, i = 'ABCDEFGHJKLMNPQRSTUVXYWZIO'.indexOf(
                                    t.charAt(0)) + 10, a = Math.floor(i / 10) +
                                    i % 10 * (n - 1), r = 0, o = 1; o < n -
                                     1; o++) r += parseInt(t.charAt(o), 10) *
                                    (n - 1 - o);
                                return {
                                    meta: {},
                                    valid: (a + r +
                                        parseInt(t.charAt(n - 1), 10)) % 10 ==
                                        0,
                                };
                            }(i.value);
                            break;
                        case'uy':
                            s = function (e) {
                                if (!/^\d{8}$/.test(e)) return {
                                    meta: {},
                                    valid: !1,
                                };
                                for (var t = [
                                    2,
                                    9,
                                    8,
                                    7,
                                    6,
                                    3,
                                    4], n = 0, i = 0; i < 7; i++) n += parseInt(
                                    e.charAt(i), 10) * t[i];
                                return (n %= 10) > 0 && (n = 10 - n), {
                                    meta: {},
                                    valid: ''.concat(n) === e.charAt(7),
                                };
                            }(i.value);
                            break;
                        case'za':
                            s = function (e) {
                                if (!/^[0-9]{10}[0|1][8|9][0-9]$/.test(
                                    e)) return { meta: {}, valid: !1 };
                                var n = parseInt(e.substr(0, 2), 10);
                                return w(n = n >= (new Date).getFullYear() % 100
                                    ? n + 1900
                                    : n + 2e3, parseInt(e.substr(2, 2), 10),
                                    parseInt(e.substr(4, 2), 10)) ? {
                                    meta: {},
                                    valid: t(e),
                                } : { meta: {}, valid: !1 };
                            }(i.value);
                    }
                    var l = b(
                        i.l10n ? r.message || i.l10n.id.country : r.message,
                        i.l10n
                            ? i.l10n.id.countries[o.toUpperCase()]
                            : o.toUpperCase());
                    return Object.assign({}, { message: l }, s);
                },
            };
        },
        imei: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    switch (!0) {
                        case/^\d{15}$/.test(e.value):
                        case/^\d{2}-\d{6}-\d{6}-\d{1}$/.test(e.value):
                        case/^\d{2}\s\d{6}\s\d{6}\s\d{1}$/.test(e.value):
                            return { valid: t(e.value.replace(/[^0-9]/g, '')) };
                        case/^\d{14}$/.test(e.value):
                        case/^\d{16}$/.test(e.value):
                        case/^\d{2}-\d{6}-\d{6}(|-\d{2})$/.test(e.value):
                        case/^\d{2}\s\d{6}\s\d{6}(|\s\d{2})$/.test(e.value):
                            return { valid: !0 };
                        default:
                            return { valid: !1 };
                    }
                },
            };
        },
        imo: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    if (!/^IMO \d{7}$/i.test(e.value)) return { valid: !1 };
                    for (var t = e.value.replace(/^.*(\d{7})$/,
                        '$1'), n = 0, i = 6; i >= 1; i--) n += parseInt(
                        t.slice(6 - i, -i), 10) * (i + 1);
                    return { valid: n % 10 === parseInt(t.charAt(6), 10) };
                },
            };
        },
        isbn: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return {
                        meta: { type: null },
                        valid: !0,
                    };
                    var t;
                    switch (!0) {
                        case/^\d{9}[\dX]$/.test(e.value):
                        case 13 === e.value.length &&
                        /^(\d+)-(\d+)-(\d+)-([\dX])$/.test(e.value):
                        case 13 === e.value.length &&
                        /^(\d+)\s(\d+)\s(\d+)\s([\dX])$/.test(e.value):
                            t = 'ISBN10';
                            break;
                        case/^(978|979)\d{9}[\dX]$/.test(e.value):
                        case 17 === e.value.length &&
                        /^(978|979)-(\d+)-(\d+)-(\d+)-([\dX])$/.test(e.value):
                        case 17 === e.value.length &&
                        /^(978|979)\s(\d+)\s(\d+)\s(\d+)\s([\dX])$/.test(
                            e.value):
                            t = 'ISBN13';
                            break;
                        default:
                            return { meta: { type: null }, valid: !1 };
                    }
                    var n, i, a = e.value.replace(/[^0-9X]/gi, '').split(''),
                        r = a.length, o = 0;
                    switch (t) {
                        case'ISBN10':
                            for (o = 0, n = 0; n < r - 1; n++) o += parseInt(
                                a[n], 10) * (10 - n);
                            return 11 === (i = 11 - o % 11) ? i = 0 : 10 ===
                                i && (i = 'X'), {
                                meta: { type: t },
                                valid: ''.concat(i) === a[r - 1],
                            };
                        case'ISBN13':
                            for (o = 0, n = 0; n < r - 1; n++) o += n % 2 == 0
                                ? parseInt(a[n], 10)
                                : 3 * parseInt(a[n], 10);
                            return 10 === (i = 10 - o % 10) && (i = '0'), {
                                meta: { type: t },
                                valid: ''.concat(i) === a[r - 1],
                            };
                    }
                },
            };
        },
        isin: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    var t = e.value.toUpperCase();
                    if (!new RegExp(
                        '^(AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW)[0-9A-Z]{10}$').test(
                        e.value)) return { valid: !1 };
                    var n, i = t.length, a = '';
                    for (n = 0; n < i - 1; n++) {
                        var r = t.charCodeAt(n);
                        a += r > 57 ? (r - 55).toString() : t.charAt(n);
                    }
                    var o = '', s = a.length, l = s % 2 != 0 ? 0 : 1;
                    for (n = 0; n < s; n++) o += parseInt(a[n], 10) *
                        (n % 2 === l ? 2 : 1) + '';
                    var c = 0;
                    for (n = 0; n < o.length; n++) c += parseInt(o.charAt(n),
                        10);
                    return {
                        valid: ''.concat(c = (10 - c % 10) % 10) ===
                            t.charAt(i - 1),
                    };
                },
            };
        },
        ismn: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { meta: null, valid: !0 };
                    var t;
                    switch (!0) {
                        case/^M\d{9}$/.test(e.value):
                        case/^M-\d{4}-\d{4}-\d{1}$/.test(e.value):
                        case/^M\s\d{4}\s\d{4}\s\d{1}$/.test(e.value):
                            t = 'ISMN10';
                            break;
                        case/^9790\d{9}$/.test(e.value):
                        case/^979-0-\d{4}-\d{4}-\d{1}$/.test(e.value):
                        case/^979\s0\s\d{4}\s\d{4}\s\d{1}$/.test(e.value):
                            t = 'ISMN13';
                            break;
                        default:
                            return { meta: null, valid: !1 };
                    }
                    var n = e.value;
                    'ISMN10' === t && (n = '9790'.concat(n.substr(1)));
                    for (var i = 0, a = (n = n.replace(/[^0-9]/gi,
                        '')).length, r = [1, 3], o = 0; o < a -
                         1; o++) i += parseInt(n.charAt(o), 10) * r[o % 2];
                    return {
                        meta: { type: t },
                        valid: ''.concat(i = (10 - i % 10) % 10) ===
                            n.charAt(a - 1),
                    };
                },
            };
        },
        issn: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    if (!/^\d{4}-\d{3}[\dX]$/.test(
                        e.value)) return { valid: !1 };
                    var t = e.value.replace(/[^0-9X]/gi, '').split(''),
                        n = t.length, i = 0;
                    'X' === t[7] && (t[7] = '10');
                    for (var a = 0; a < n; a++) i += parseInt(t[a], 10) *
                        (8 - a);
                    return { valid: i % 11 == 0 };
                },
            };
        },
        mac: function () {
            return {
                validate: function (e) {
                    return {
                        valid: '' === e.value ||
                            /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/.test(
                                e.value) ||
                            /^([0-9A-Fa-f]{4}\.){2}([0-9A-Fa-f]{4})$/.test(
                                e.value),
                    };
                },
            };
        },
        meid: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    var n = e.value;
                    if (/^[0-9A-F]{15}$/i.test(n) ||
                        /^[0-9A-F]{2}[- ][0-9A-F]{6}[- ][0-9A-F]{6}[- ][0-9A-F]$/i.test(
                            n) || /^\d{19}$/.test(n) ||
                        /^\d{5}[- ]\d{5}[- ]\d{4}[- ]\d{4}[- ]\d$/.test(n)) {
                        var i = n.charAt(n.length - 1).toUpperCase();
                        if ((n = n.replace(/[- ]/g, '')).match(
                            /^\d*$/i)) return { valid: t(n) };
                        n = n.slice(0, -1);
                        var a, r = '';
                        for (a = 1; a <= 13; a += 2) r += (2 *
                            parseInt(n.charAt(a), 16)).toString(16);
                        var o = 0;
                        for (a = 0; a < r.length; a++) o += parseInt(
                            r.charAt(a), 16);
                        return {
                            valid: o % 10 == 0 ? '0' === i : i === (2 *
                                (10 * Math.floor((o + 10) / 10) - o)).toString(
                                16).toUpperCase(),
                        };
                    }
                    return /^[0-9A-F]{14}$/i.test(n) ||
                    /^[0-9A-F]{2}[- ][0-9A-F]{6}[- ][0-9A-F]{6}$/i.test(n) ||
                    /^\d{18}$/.test(n) ||
                    /^\d{5}[- ]\d{5}[- ]\d{4}[- ]\d{4}$/.test(n)
                        ? { valid: !0 }
                        : { valid: !1 };
                },
            };
        },
        phone: function () {
            var e = [
                'AE',
                'BG',
                'BR',
                'CN',
                'CZ',
                'DE',
                'DK',
                'ES',
                'FR',
                'GB',
                'IN',
                'MA',
                'NL',
                'PK',
                'RO',
                'RU',
                'SK',
                'TH',
                'US',
                'VE'];
            return {
                validate: function (t) {
                    if ('' === t.value) return { valid: !0 };
                    var n = Object.assign({}, { message: '' }, t.options),
                        i = t.value.trim(), a = i.substr(0, 2);
                    if (!(a = 'function' == typeof n.country ? n.country.call(
                        this) : n.country) || -1 ===
                        e.indexOf(a.toUpperCase())) return { valid: !0 };
                    var r = !0;
                    switch (a.toUpperCase()) {
                        case'AE':
                            r = /^(((\+|00)?971[\s.-]?(\(0\)[\s.-]?)?|0)(\(5(0|2|5|6)\)|5(0|2|5|6)|2|3|4|6|7|9)|60)([\s.-]?[0-9]){7}$/.test(
                                i);
                            break;
                        case'BG':
                            r = /^(0|359|00)(((700|900)[0-9]{5}|((800)[0-9]{5}|(800)[0-9]{4}))|(87|88|89)([0-9]{7})|((2[0-9]{7})|(([3-9][0-9])(([0-9]{6})|([0-9]{5})))))$/.test(
                                i.replace(/\+|\s|-|\/|\(|\)/gi, ''));
                            break;
                        case'BR':
                            r = /^(([\d]{4}[-.\s]{1}[\d]{2,3}[-.\s]{1}[\d]{2}[-.\s]{1}[\d]{2})|([\d]{4}[-.\s]{1}[\d]{3}[-.\s]{1}[\d]{4})|((\(?\+?[0-9]{2}\)?\s?)?(\(?\d{2}\)?\s?)?\d{4,5}[-.\s]?\d{4}))$/.test(
                                i);
                            break;
                        case'CN':
                            r = /^((00|\+)?(86(?:-| )))?((\d{11})|(\d{3}[- ]{1}\d{4}[- ]{1}\d{4})|((\d{2,4}[- ]){1}(\d{7,8}|(\d{3,4}[- ]{1}\d{4}))([- ]{1}\d{1,4})?))$/.test(
                                i);
                            break;
                        case'CZ':
                            r = /^(((00)([- ]?)|\+)(420)([- ]?))?((\d{3})([- ]?)){2}(\d{3})$/.test(
                                i);
                            break;
                        case'DE':
                            r = /^(((((((00|\+)49[ \-/]?)|0)[1-9][0-9]{1,4})[ \-/]?)|((((00|\+)49\()|\(0)[1-9][0-9]{1,4}\)[ \-/]?))[0-9]{1,7}([ \-/]?[0-9]{1,5})?)$/.test(
                                i);
                            break;
                        case'DK':
                            r = /^(\+45|0045|\(45\))?\s?[2-9](\s?\d){7}$/.test(
                                i);
                            break;
                        case'ES':
                            r = /^(?:(?:(?:\+|00)34\D?))?(?:5|6|7|8|9)(?:\d\D?){8}$/.test(
                                i);
                            break;
                        case'FR':
                            r = /^(?:(?:(?:\+|00)33[ ]?(?:\(0\)[ ]?)?)|0){1}[1-9]{1}([ .-]?)(?:\d{2}\1?){3}\d{2}$/.test(
                                i);
                            break;
                        case'GB':
                            r = /^\(?(?:(?:0(?:0|11)\)?[\s-]?\(?|\+)44\)?[\s-]?\(?(?:0\)?[\s-]?\(?)?|0)(?:\d{2}\)?[\s-]?\d{4}[\s-]?\d{4}|\d{3}\)?[\s-]?\d{3}[\s-]?\d{3,4}|\d{4}\)?[\s-]?(?:\d{5}|\d{3}[\s-]?\d{3})|\d{5}\)?[\s-]?\d{4,5}|8(?:00[\s-]?11[\s-]?11|45[\s-]?46[\s-]?4\d))(?:(?:[\s-]?(?:x|ext\.?\s?|#)\d+)?)$/.test(
                                i);
                            break;
                        case'IN':
                            r = /((\+?)((0[ -]+)*|(91 )*)(\d{12}|\d{10}))|\d{5}([- ]*)\d{6}/.test(
                                i);
                            break;
                        case'MA':
                            r = /^(?:(?:(?:\+|00)212[\s]?(?:[\s]?\(0\)[\s]?)?)|0){1}(?:5[\s.-]?[2-3]|6[\s.-]?[13-9]){1}[0-9]{1}(?:[\s.-]?\d{2}){3}$/.test(
                                i);
                            break;
                        case'NL':
                            r = /^((\+|00(\s|\s?-\s?)?)31(\s|\s?-\s?)?(\(0\)[-\s]?)?|0)[1-9]((\s|\s?-\s?)?[0-9])((\s|\s?-\s?)?[0-9])((\s|\s?-\s?)?[0-9])\s?[0-9]\s?[0-9]\s?[0-9]\s?[0-9]\s?[0-9]$/gm.test(
                                i);
                            break;
                        case'PK':
                            r = /^0?3[0-9]{2}[0-9]{7}$/.test(i);
                            break;
                        case'RO':
                            r = /^(\+4|)?(07[0-8]{1}[0-9]{1}|02[0-9]{2}|03[0-9]{2}){1}?(\s|\.|-)?([0-9]{3}(\s|\.|-|)){2}$/g.test(
                                i);
                            break;
                        case'RU':
                            r = /^((8|\+7|007)[-./ ]?)?([(/.]?\d{3}[)/.]?[-./ ]?)?[\d\-./ ]{7,10}$/g.test(
                                i);
                            break;
                        case'SK':
                            r = /^(((00)([- ]?)|\+)(421)([- ]?))?((\d{3})([- ]?)){2}(\d{3})$/.test(
                                i);
                            break;
                        case'TH':
                            r = /^0\(?([6|8-9]{2})*-([0-9]{3})*-([0-9]{4})$/.test(
                                i);
                            break;
                        case'VE':
                            r = /^0(?:2(?:12|4[0-9]|5[1-9]|6[0-9]|7[0-8]|8[1-35-8]|9[1-5]|3[45789])|4(?:1[246]|2[46]))\d{7}$/.test(
                                i);
                            break;
                        case'US':
                        default:
                            r = /^(?:(1-?)|(\+1 ?))?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}$/.test(
                                i);
                    }
                    return {
                        message: b(t.l10n
                            ? n.message || t.l10n.phone.country
                            : n.message,
                            t.l10n ? t.l10n.phone.countries[a] : a), valid: r,
                    };
                },
            };
        },
        rtn: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    if (!/^\d{9}$/.test(e.value)) return { valid: !1 };
                    for (var t = 0, n = 0; n < e.value.length; n += 3) t += 3 *
                        parseInt(e.value.charAt(n), 10) + 7 *
                        parseInt(e.value.charAt(n + 1), 10) +
                        parseInt(e.value.charAt(n + 2), 10);
                    return { valid: 0 !== t && t % 10 == 0 };
                },
            };
        },
        sedol: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    var t = e.value.toUpperCase();
                    if (!/^[0-9A-Z]{7}$/.test(t)) return { valid: !1 };
                    for (var n = [
                        1,
                        3,
                        1,
                        7,
                        3,
                        9,
                        1], i = t.length, a = 0, r = 0; r < i -
                         1; r++) a += n[r] * parseInt(t.charAt(r), 36);
                    return {
                        valid: ''.concat(a = (10 - a % 10) % 10) ===
                            t.charAt(i - 1),
                    };
                },
            };
        },
        siren: function () {
            return {
                validate: function (e) {
                    return {
                        valid: '' === e.value || /^\d{9}$/.test(e.value) &&
                            t(e.value),
                    };
                },
            };
        },
        siret: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    for (var t, n = e.value.length, i = 0, a = 0; a <
                    n; a++) t = parseInt(e.value.charAt(a), 10), a % 2 == 0 &&
                    (t *= 2) > 9 && (t -= 9), i += t;
                    return { valid: i % 10 == 0 };
                },
            };
        },
        step: function () {
            var e = function (e, t) {
                if (0 === t) return 1;
                var n = ''.concat(e).split('.'), i = ''.concat(t).split('.'),
                    a = (1 === n.length ? 0 : n[1].length) +
                        (1 === i.length ? 0 : i[1].length);
                return function (e, t) {
                    var n, i = Math.pow(10, t), a = e * i;
                    switch (!0) {
                        case 0 === a:
                            n = 0;
                            break;
                        case a > 0:
                            n = 1;
                            break;
                        case a < 0:
                            n = -1;
                    }
                    return a % 1 == .5 * n
                        ? (Math.floor(a) + (n > 0 ? 1 : 0)) / i
                        : Math.round(a) / i;
                }(e - t * Math.floor(e / t), a);
            };
            return {
                validate: function (t) {
                    if ('' === t.value) return { valid: !0 };
                    var n = parseFloat(t.value);
                    if (isNaN(n) || !isFinite(n)) return { valid: !1 };
                    var i = Object.assign({},
                        { baseValue: 0, message: '', step: 1 }, t.options),
                        a = e(n - i.baseValue, i.step);
                    return {
                        message: b(t.l10n
                            ? i.message || t.l10n.step.default
                            : i.message, ''.concat(i.step)),
                        valid: 0 === a || a === i.step,
                    };
                },
            };
        },
        uuid: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    var t = Object.assign({}, { message: '' }, e.options), n = {
                        3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,
                        4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,
                        5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,
                        all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i,
                    }, i = t.version ? ''.concat(t.version) : 'all';
                    return {
                        message: t.version ? b(e.l10n
                            ? t.message || e.l10n.uuid.version
                            : t.message, t.version) : e.l10n
                            ? e.l10n.uuid.default
                            : t.message,
                        valid: null === n[i] || n[i].test(e.value),
                    };
                },
            };
        },
        vat: function () {
            var e = [
                'AR',
                'AT',
                'BE',
                'BG',
                'BR',
                'CH',
                'CY',
                'CZ',
                'DE',
                'DK',
                'EE',
                'EL',
                'ES',
                'FI',
                'FR',
                'GB',
                'GR',
                'HR',
                'HU',
                'IE',
                'IS',
                'IT',
                'LT',
                'LU',
                'LV',
                'MT',
                'NL',
                'NO',
                'PL',
                'PT',
                'RO',
                'RU',
                'RS',
                'SE',
                'SK',
                'SI',
                'VE',
                'ZA'];
            return {
                validate: function (i) {
                    var a = i.value;
                    if ('' === a) return { valid: !0 };
                    var r = Object.assign({}, { message: '' }, i.options),
                        o = a.substr(0, 2);
                    if (o = 'function' == typeof r.country ? r.country.call(
                        this) : r.country, -1 ===
                    e.indexOf(o)) return { valid: !0 };
                    var s = { meta: {}, valid: !0 };
                    switch (o.toLowerCase()) {
                        case'ar':
                            s = function (e) {
                                var t = e.replace('-', '');
                                if (/^AR[0-9]{11}$/.test(t) &&
                                (t = t.substr(2)), !/^[0-9]{11}$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                for (var n = [
                                    5,
                                    4,
                                    3,
                                    2,
                                    7,
                                    6,
                                    5,
                                    4,
                                    3,
                                    2], i = 0, a = 0; a <
                                     10; a++) i += parseInt(t.charAt(a), 10) *
                                    n[a];
                                return 11 == (i = 11 - i % 11) && (i = 0), {
                                    meta: {},
                                    valid: ''.concat(i) === t.substr(10),
                                };
                            }(a);
                            break;
                        case'at':
                            s = function (e) {
                                var t = e;
                                if (/^ATU[0-9]{8}$/.test(t) &&
                                (t = t.substr(2)), !/^U[0-9]{8}$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                t = t.substr(1);
                                for (var n = [
                                    1,
                                    2,
                                    1,
                                    2,
                                    1,
                                    2,
                                    1], i = 0, a = 0, r = 0; r <
                                     7; r++) (a = parseInt(t.charAt(r), 10) *
                                    n[r]) > 9 &&
                                (a = Math.floor(a / 10) + a % 10), i += a;
                                return 10 == (i = 10 - (i + 4) % 10) &&
                                (i = 0), {
                                    meta: {},
                                    valid: ''.concat(i) === t.substr(7, 1),
                                };
                            }(a);
                            break;
                        case'be':
                            s = function (e) {
                                var t = e;
                                return /^BE[0]?[0-9]{9}$/.test(t) &&
                                (t = t.substr(2)), /^[0]?[0-9]{9}$/.test(t)
                                    ? (9 === t.length &&
                                    (t = '0'.concat(t)), '0' === t.substr(1, 1)
                                        ? { meta: {}, valid: !1 }
                                        : {
                                            meta: {},
                                            valid: (parseInt(t.substr(0, 8),
                                                10) +
                                                parseInt(t.substr(8, 2), 10)) %
                                                97 == 0,
                                        })
                                    : { meta: {}, valid: !1 };
                            }(a);
                            break;
                        case'bg':
                            s = function (e) {
                                var t = e;
                                if (/^BG[0-9]{9,10}$/.test(t) &&
                                (t = t.substr(2)), !/^[0-9]{9,10}$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                var n = 0, i = 0;
                                if (9 === t.length) {
                                    for (i = 0; i < 8; i++) n += parseInt(
                                        t.charAt(i), 10) * (i + 1);
                                    if (10 == (n %= 11)) {
                                        for (n = 0, i = 0; i <
                                        8; i++) n += parseInt(t.charAt(i), 10) *
                                            (i + 3);
                                        n %= 11;
                                    }
                                    return {
                                        meta: {},
                                        valid: ''.concat(n %= 10) ===
                                            t.substr(8),
                                    };
                                }
                                return {
                                    meta: {},
                                    valid: function (e) {
                                        var t = parseInt(e.substr(0, 2), 10) +
                                            1900,
                                            n = parseInt(e.substr(2, 2), 10);
                                        if (n > 40 ? (t += 100, n -= 40) : n >
                                            20 && (t -= 100, n -= 20), !w(t, n,
                                            parseInt(e.substr(4, 2),
                                                10))) return !1;
                                        for (var i = [
                                            2,
                                            4,
                                            8,
                                            5,
                                            10,
                                            9,
                                            7,
                                            3,
                                            6], a = 0, r = 0; r <
                                             9; r++) a += parseInt(e.charAt(r),
                                            10) * i[r];
                                        return ''.concat(a = a % 11 % 10) ===
                                            e.substr(9, 1);
                                    }(t) || function (e) {
                                        for (var t = [
                                            21,
                                            19,
                                            17,
                                            13,
                                            11,
                                            9,
                                            7,
                                            3,
                                            1], n = 0, i = 0; i <
                                             9; i++) n += parseInt(e.charAt(i),
                                            10) * t[i];
                                        return ''.concat(n %= 10) ===
                                            e.substr(9, 1);
                                    }(t) || function (e) {
                                        for (var t = [
                                            4,
                                            3,
                                            2,
                                            7,
                                            6,
                                            5,
                                            4,
                                            3,
                                            2], n = 0, i = 0; i <
                                             9; i++) n += parseInt(e.charAt(i),
                                            10) * t[i];
                                        return 10 != (n = 11 - n % 11) &&
                                            (11 === n && (n = 0), ''.concat(
                                                n) === e.substr(9, 1));
                                    }(t),
                                };
                            }(a);
                            break;
                        case'br':
                            s = function (e) {
                                if ('' === e) return {
                                    meta: {},
                                    valid: !0,
                                };
                                var t = e.replace(/[^\d]+/g, '');
                                if ('' === t || 14 !==
                                    t.length) return { meta: {}, valid: !1 };
                                if ('00000000000000' === t ||
                                    '11111111111111' === t ||
                                    '22222222222222' === t ||
                                    '33333333333333' === t ||
                                    '44444444444444' === t ||
                                    '55555555555555' === t ||
                                    '66666666666666' === t ||
                                    '77777777777777' === t ||
                                    '88888888888888' === t ||
                                    '99999999999999' === t) return {
                                    meta: {},
                                    valid: !1,
                                };
                                var n, i = t.length - 2, a = t.substring(0, i),
                                    r = t.substring(i), o = 0, s = i - 7;
                                for (n = i; n >= 1; n--) o += parseInt(
                                    a.charAt(i - n), 10) * s--, s < 2 &&
                                (s = 9);
                                var l = o % 11 < 2 ? 0 : 11 - o % 11;
                                if (l !== parseInt(r.charAt(0),
                                    10)) return { meta: {}, valid: !1 };
                                for (i += 1, a = t.substring(0,
                                    i), o = 0, s = i - 7, n = i; n >=
                                     1; n--) o += parseInt(a.charAt(i - n),
                                    10) * s--, s < 2 && (s = 9);
                                return {
                                    meta: {},
                                    valid: (l = o % 11 < 2 ? 0 : 11 - o %
                                        11) === parseInt(r.charAt(1), 10),
                                };
                            }(a);
                            break;
                        case'ch':
                            s = function (e) {
                                var t = e;
                                if (/^CHE[0-9]{9}(MWST|TVA|IVA|TPV)?$/.test(
                                    t) && (t = t.substr(
                                    2)), !/^E[0-9]{9}(MWST|TVA|IVA|TPV)?$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                t = t.substr(1);
                                for (var n = [
                                    5,
                                    4,
                                    3,
                                    2,
                                    7,
                                    6,
                                    5,
                                    4], i = 0, a = 0; a < 8; a++) i += parseInt(
                                    t.charAt(a), 10) * n[a];
                                return 10 == (i = 11 - i % 11) ? {
                                    meta: {},
                                    valid: !1,
                                } : (11 === i && (i = 0), {
                                    meta: {},
                                    valid: ''.concat(i) === t.substr(8, 1),
                                });
                            }(a);
                            break;
                        case'cy':
                            s = function (e) {
                                var t = e;
                                if (/^CY[0-5|9][0-9]{7}[A-Z]$/.test(t) &&
                                (t = t.substr(
                                    2)), !/^[0-5|9][0-9]{7}[A-Z]$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                if ('12' === t.substr(0, 2)) return {
                                    meta: {},
                                    valid: !1,
                                };
                                for (var n = 0, i = {
                                    0: 1,
                                    1: 0,
                                    2: 5,
                                    3: 7,
                                    4: 9,
                                    5: 13,
                                    6: 15,
                                    7: 17,
                                    8: 19,
                                    9: 21,
                                }, a = 0; a < 8; a++) {
                                    var r = parseInt(t.charAt(a), 10);
                                    a % 2 == 0 && (r = i[''.concat(r)]), n += r;
                                }
                                return {
                                    meta: {},
                                    valid: ''.concat(
                                        'ABCDEFGHIJKLMNOPQRSTUVWXYZ'[n %
                                        26]) === t.substr(8, 1),
                                };
                            }(a);
                            break;
                        case'cz':
                            s = function (e) {
                                var t = e;
                                if (/^CZ[0-9]{8,10}$/.test(t) &&
                                (t = t.substr(2)), !/^[0-9]{8,10}$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                var n = 0, i = 0;
                                if (8 === t.length) {
                                    if ('9' === ''.concat(t.charAt(0))) return {
                                        meta: {},
                                        valid: !1,
                                    };
                                    for (n = 0, i = 0; i <
                                    7; i++) n += parseInt(t.charAt(i), 10) *
                                        (8 - i);
                                    return 10 == (n = 11 - n % 11) &&
                                    (n = 0), 11 === n && (n = 1), {
                                        meta: {},
                                        valid: ''.concat(n) === t.substr(7, 1),
                                    };
                                }
                                if (9 === t.length && '6' === ''.concat(
                                    t.charAt(0))) {
                                    for (n = 0, i = 0; i <
                                    7; i++) n += parseInt(t.charAt(i + 1), 10) *
                                        (8 - i);
                                    return 10 == (n = 11 - n % 11) &&
                                    (n = 0), 11 === n && (n = 1), {
                                        meta: {},
                                        valid: ''.concat(n = [
                                            8,
                                            7,
                                            6,
                                            5,
                                            4,
                                            3,
                                            2,
                                            1,
                                            0,
                                            9,
                                            10][n - 1]) === t.substr(8, 1),
                                    };
                                }
                                if (9 === t.length || 10 === t.length) {
                                    var a = 1900 + parseInt(t.substr(0, 2), 10),
                                        r = parseInt(t.substr(2, 2), 10) % 50 %
                                            20,
                                        o = parseInt(t.substr(4, 2), 10);
                                    if (9 === t.length) {
                                        if (a >= 1980 && (a -= 100), a >
                                        1953) return {
                                            meta: {},
                                            valid: !1,
                                        };
                                    } else a < 1954 && (a += 100);
                                    if (!w(a, r, o)) return {
                                        meta: {},
                                        valid: !1,
                                    };
                                    if (10 === t.length) {
                                        var s = parseInt(t.substr(0, 9), 10) %
                                            11;
                                        return a < 1985 && (s %= 10), {
                                            meta: {},
                                            valid: ''.concat(s) ===
                                                t.substr(9, 1),
                                        };
                                    }
                                    return { meta: {}, valid: !0 };
                                }
                                return { meta: {}, valid: !1 };
                            }(a);
                            break;
                        case'de':
                            s = function (e) {
                                var t = e;
                                return /^DE[0-9]{9}$/.test(t) &&
                                (t = t.substr(2)), /^[0-9]{9}$/.test(t)
                                    ? { meta: {}, valid: n(t) }
                                    : { meta: {}, valid: !1 };
                            }(a);
                            break;
                        case'dk':
                            s = function (e) {
                                var t = e;
                                if (/^DK[0-9]{8}$/.test(t) &&
                                (t = t.substr(2)), !/^[0-9]{8}$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                for (var n = 0, i = [
                                    2,
                                    7,
                                    6,
                                    5,
                                    4,
                                    3,
                                    2,
                                    1], a = 0; a < 8; a++) n += parseInt(
                                    t.charAt(a), 10) * i[a];
                                return { meta: {}, valid: n % 11 == 0 };
                            }(a);
                            break;
                        case'ee':
                            s = function (e) {
                                var t = e;
                                if (/^EE[0-9]{9}$/.test(t) &&
                                (t = t.substr(2)), !/^[0-9]{9}$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                for (var n = 0, i = [
                                    3,
                                    7,
                                    1,
                                    3,
                                    7,
                                    1,
                                    3,
                                    7,
                                    1], a = 0; a < 9; a++) n += parseInt(
                                    t.charAt(a), 10) * i[a];
                                return { meta: {}, valid: n % 10 == 0 };
                            }(a);
                            break;
                        case'el':
                            s = A(a);
                            break;
                        case'es':
                            s = function (e) {
                                var t = e;
                                if (/^ES[0-9A-Z][0-9]{7}[0-9A-Z]$/.test(t) &&
                                (t = t.substr(
                                    2)), !/^[0-9A-Z][0-9]{7}[0-9A-Z]$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                var n = t.charAt(0);
                                return /^[0-9]$/.test(n)
                                    ? {
                                        meta: { type: 'DNI' },
                                        valid: function (e) {
                                            var t = parseInt(e.substr(0, 8),
                                                10);
                                            return ''.concat(
                                                'TRWAGMYFPDXBNJZSQVHLCKE'[t %
                                                23]) === e.substr(8, 1);
                                        }(t),
                                    }
                                    : /^[XYZ]$/.test(n)
                                        ? {
                                            meta: { type: 'NIE' },
                                            valid: function (e) {
                                                var t = [
                                                        'XYZ'.indexOf(e.charAt(0)),
                                                        e.substr(1)].join(''),
                                                    n = 'TRWAGMYFPDXBNJZSQVHLCKE'[parseInt(
                                                        t, 10) % 23];
                                                return ''.concat(n) ===
                                                    e.substr(8, 1);
                                            }(t),
                                        }
                                        : {
                                            meta: { type: 'CIF' },
                                            valid: function (e) {
                                                var t, n = e.charAt(0);
                                                if (-1 !== 'KLM'.indexOf(
                                                    n)) return t = parseInt(
                                                    e.substr(1, 8),
                                                    10), ''.concat(
                                                    t = 'TRWAGMYFPDXBNJZSQVHLCKE'[t %
                                                    23]) === e.substr(8, 1);
                                                if (-1 !==
                                                    'ABCDEFGHJNPQRSUVW'.indexOf(
                                                        n)) {
                                                    for (var i = [
                                                        2,
                                                        1,
                                                        2,
                                                        1,
                                                        2,
                                                        1,
                                                        2], a = 0, r = 0, o = 0; o <
                                                         7; o++) (r = parseInt(
                                                        e.charAt(o + 1), 10) *
                                                        i[o]) > 9 &&
                                                    (r = Math.floor(r / 10) +
                                                        r % 10), a += r;
                                                    return 10 ==
                                                    (a = 10 - a % 10) &&
                                                    (a = 0), ''.concat(a) ===
                                                    e.substr(8, 1) ||
                                                    'JABCDEFGHI'[a] ===
                                                    e.substr(8, 1);
                                                }
                                                return !1;
                                            }(t),
                                        };
                            }(a);
                            break;
                        case'fi':
                            s = function (e) {
                                var t = e;
                                if (/^FI[0-9]{8}$/.test(t) &&
                                (t = t.substr(2)), !/^[0-9]{8}$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                for (var n = [
                                    7,
                                    9,
                                    10,
                                    5,
                                    8,
                                    4,
                                    2,
                                    1], i = 0, a = 0; a < 8; a++) i += parseInt(
                                    t.charAt(a), 10) * n[a];
                                return { meta: {}, valid: i % 11 == 0 };
                            }(a);
                            break;
                        case'fr':
                            s = function (e) {
                                var n = e;
                                if (/^FR[0-9A-Z]{2}[0-9]{9}$/.test(n) &&
                                (n = n.substr(
                                    2)), !/^[0-9A-Z]{2}[0-9]{9}$/.test(
                                    n)) return { meta: {}, valid: !1 };
                                if ('000' !== n.substr(2, 4)) return {
                                    meta: {},
                                    valid: t(n.substr(2)),
                                };
                                if (/^[0-9]{2}$/.test(n.substr(0, 2))) return {
                                    meta: {},
                                    valid: n.substr(0, 2) === ''.concat(
                                        parseInt(n.substr(2) + '12', 10) % 97),
                                };
                                var i, a = '0123456789ABCDEFGHJKLMNPQRSTUVWXYZ';
                                return i = /^[0-9]$/.test(n.charAt(0)) ? 24 *
                                    a.indexOf(n.charAt(0)) +
                                    a.indexOf(n.charAt(1)) - 10 : 34 *
                                    a.indexOf(n.charAt(0)) +
                                    a.indexOf(n.charAt(1)) - 100, {
                                    meta: {},
                                    valid: (parseInt(n.substr(2), 10) + 1 +
                                        Math.floor(i / 11)) % 11 == i % 11,
                                };
                            }(a);
                            break;
                        case'gb':
                            s = function (e) {
                                var t = e;
                                if ((/^GB[0-9]{9}$/.test(t) ||
                                    /^GB[0-9]{12}$/.test(t) ||
                                    /^GBGD[0-9]{3}$/.test(t) ||
                                    /^GBHA[0-9]{3}$/.test(t) ||
                                    /^GB(GD|HA)8888[0-9]{5}$/.test(t)) &&
                                (t = t.substr(2)), !(/^[0-9]{9}$/.test(t) ||
                                    /^[0-9]{12}$/.test(t) ||
                                    /^GD[0-9]{3}$/.test(t) ||
                                    /^HA[0-9]{3}$/.test(t) ||
                                    /^(GD|HA)8888[0-9]{5}$/.test(
                                        t))) return { meta: {}, valid: !1 };
                                var n = t.length;
                                if (5 === n) {
                                    var i = t.substr(0, 2),
                                        a = parseInt(t.substr(2), 10);
                                    return {
                                        meta: {},
                                        valid: 'GD' === i && a < 500 || 'HA' ===
                                            i && a >= 500,
                                    };
                                }
                                if (11 === n &&
                                    ('GD8888' === t.substr(0, 6) || 'HA8888' ===
                                        t.substr(0, 6))) return 'GD' ===
                                t.substr(0, 2) &&
                                parseInt(t.substr(6, 3), 10) >= 500 || 'HA' ===
                                t.substr(0, 2) && parseInt(t.substr(6, 3), 10) <
                                500 ? { meta: {}, valid: !1 } : {
                                    meta: {},
                                    valid: parseInt(t.substr(6, 3), 10) % 97 ===
                                        parseInt(t.substr(9, 2), 10),
                                };
                                if (9 === n || 12 === n) {
                                    for (var r = [
                                        8,
                                        7,
                                        6,
                                        5,
                                        4,
                                        3,
                                        2,
                                        10,
                                        1], o = 0, s = 0; s <
                                         9; s++) o += parseInt(t.charAt(s),
                                        10) * r[s];
                                    return o %= 97, {
                                        meta: {},
                                        valid: parseInt(t.substr(0, 3), 10) >=
                                        100
                                            ? 0 === o || 42 === o || 55 === o
                                            : 0 === o,
                                    };
                                }
                                return { meta: {}, valid: !0 };
                            }(a);
                            break;
                        case'gr':
                            s = A(a);
                            break;
                        case'hr':
                            s = function (e) {
                                var t = e;
                                return /^HR[0-9]{11}$/.test(t) &&
                                (t = t.substr(2)), /^[0-9]{11}$/.test(t)
                                    ? { meta: {}, valid: n(t) }
                                    : { meta: {}, valid: !1 };
                            }(a);
                            break;
                        case'hu':
                            s = function (e) {
                                var t = e;
                                if (/^HU[0-9]{8}$/.test(t) &&
                                (t = t.substr(2)), !/^[0-9]{8}$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                for (var n = [
                                    9,
                                    7,
                                    3,
                                    1,
                                    9,
                                    7,
                                    3,
                                    1], i = 0, a = 0; a < 8; a++) i += parseInt(
                                    t.charAt(a), 10) * n[a];
                                return { meta: {}, valid: i % 10 == 0 };
                            }(a);
                            break;
                        case'ie':
                            s = function (e) {
                                var t = e;
                                if (/^IE[0-9][0-9A-Z*+][0-9]{5}[A-Z]{1,2}$/.test(
                                    t) && (t = t.substr(
                                    2)), !/^[0-9][0-9A-Z*+][0-9]{5}[A-Z]{1,2}$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                var n = function (e) {
                                    for (var t = e; t.length <
                                    7;) t = '0'.concat(t);
                                    for (var n = 'WABCDEFGHIJKLMNOPQRSTUV', i = 0, a = 0; a <
                                    7; a++) i += parseInt(t.charAt(a), 10) *
                                        (8 - a);
                                    return i += 9 *
                                        n.indexOf(t.substr(7)), n[i % 23];
                                };
                                return /^[0-9]+$/.test(t.substr(0, 7))
                                    ? {
                                        meta: {},
                                        valid: t.charAt(7) ===
                                            n(''.concat(t.substr(0, 7)).
                                                concat(t.substr(8))),
                                    }
                                    : -1 !==
                                    'ABCDEFGHIJKLMNOPQRSTUVWXYZ+*'.indexOf(
                                        t.charAt(1)) ? {
                                        meta: {},
                                        valid: t.charAt(7) ===
                                            n(''.concat(t.substr(2, 5)).
                                                concat(t.substr(0, 1))),
                                    } : { meta: {}, valid: !0 };
                            }(a);
                            break;
                        case'is':
                            s = function (e) {
                                var t = e;
                                return /^IS[0-9]{5,6}$/.test(t) &&
                                (t = t.substr(2)), {
                                    meta: {},
                                    valid: /^[0-9]{5,6}$/.test(t),
                                };
                            }(a);
                            break;
                        case'it':
                            s = function (e) {
                                var n = e;
                                if (/^IT[0-9]{11}$/.test(n) &&
                                (n = n.substr(2)), !/^[0-9]{11}$/.test(
                                    n)) return { meta: {}, valid: !1 };
                                if (0 === parseInt(n.substr(0, 7),
                                    10)) return { meta: {}, valid: !1 };
                                var i = parseInt(n.substr(7, 3), 10);
                                return i < 1 || i > 201 && 999 !== i && 888 !==
                                i ? { meta: {}, valid: !1 } : {
                                    meta: {},
                                    valid: t(n),
                                };
                            }(a);
                            break;
                        case'lt':
                            s = function (e) {
                                var t = e;
                                if (/^LT([0-9]{7}1[0-9]|[0-9]{10}1[0-9])$/.test(
                                    t) && (t = t.substr(
                                    2)), !/^([0-9]{7}1[0-9]|[0-9]{10}1[0-9])$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                var n, i = t.length, a = 0;
                                for (n = 0; n < i - 1; n++) a += parseInt(
                                    t.charAt(n), 10) * (1 + n % 9);
                                var r = a % 11;
                                if (10 === r) for (a = 0, n = 0; n < i -
                                1; n++) a += parseInt(t.charAt(n), 10) *
                                    (1 + (n + 2) % 9);
                                return {
                                    meta: {},
                                    valid: ''.concat(r = r % 11 % 10) ===
                                        t.charAt(i - 1),
                                };
                            }(a);
                            break;
                        case'lu':
                            s = function (e) {
                                var t = e;
                                return /^LU[0-9]{8}$/.test(t) &&
                                (t = t.substr(2)), /^[0-9]{8}$/.test(t)
                                    ? {
                                        meta: {},
                                        valid: ''.concat(
                                            parseInt(t.substr(0, 6), 10) %
                                            89) === t.substr(6, 2),
                                    }
                                    : { meta: {}, valid: !1 };
                            }(a);
                            break;
                        case'lv':
                            s = function (e) {
                                var t = e;
                                if (/^LV[0-9]{11}$/.test(t) &&
                                (t = t.substr(2)), !/^[0-9]{11}$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                var n, i = parseInt(t.charAt(0), 10),
                                    a = t.length, r = 0, o = [];
                                if (i > 3) {
                                    for (r = 0, o = [
                                        9,
                                        1,
                                        4,
                                        8,
                                        3,
                                        10,
                                        2,
                                        5,
                                        7,
                                        6,
                                        1], n = 0; n < a; n++) r += parseInt(
                                        t.charAt(n), 10) * o[n];
                                    return { meta: {}, valid: 3 == (r %= 11) };
                                }
                                var s = parseInt(t.substr(0, 2), 10),
                                    l = parseInt(t.substr(2, 2), 10),
                                    c = parseInt(t.substr(4, 2), 10);
                                if (!w(c = c + 1800 + 100 *
                                    parseInt(t.charAt(6), 10), l,
                                    s)) return { meta: {}, valid: !1 };
                                for (r = 0, o = [
                                    10,
                                    5,
                                    8,
                                    4,
                                    2,
                                    1,
                                    6,
                                    3,
                                    7,
                                    9], n = 0; n < a - 1; n++) r += parseInt(
                                    t.charAt(n), 10) * o[n];
                                return {
                                    meta: {},
                                    valid: ''.concat(r = (r + 1) % 11 % 10) ===
                                        t.charAt(a - 1),
                                };
                            }(a);
                            break;
                        case'mt':
                            s = function (e) {
                                var t = e;
                                if (/^MT[0-9]{8}$/.test(t) &&
                                (t = t.substr(2)), !/^[0-9]{8}$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                for (var n = [
                                    3,
                                    4,
                                    6,
                                    7,
                                    8,
                                    9,
                                    10,
                                    1], i = 0, a = 0; a < 8; a++) i += parseInt(
                                    t.charAt(a), 10) * n[a];
                                return { meta: {}, valid: i % 37 == 0 };
                            }(a);
                            break;
                        case'nl':
                            s = function (e) {
                                var t = e;
                                return /^NL[0-9]{9}B[0-9]{2}$/.test(t) &&
                                (t = t.substr(2)), /^[0-9]{9}B[0-9]{2}$/.test(t)
                                    ? {
                                        meta: {},
                                        valid: T(t.substr(0, 9)).valid ||
                                            D('NL'.concat(t)),
                                    }
                                    : { meta: {}, valid: !1 };
                            }(a);
                            break;
                        case'no':
                            s = function (e) {
                                var t = e;
                                if (/^NO[0-9]{9}$/.test(t) &&
                                (t = t.substr(2)), !/^[0-9]{9}$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                for (var n = [
                                    3,
                                    2,
                                    7,
                                    6,
                                    5,
                                    4,
                                    3,
                                    2], i = 0, a = 0; a < 8; a++) i += parseInt(
                                    t.charAt(a), 10) * n[a];
                                return 11 == (i = 11 - i % 11) && (i = 0), {
                                    meta: {},
                                    valid: ''.concat(i) === t.substr(8, 1),
                                };
                            }(a);
                            break;
                        case'pl':
                            s = function (e) {
                                var t = e;
                                if (/^PL[0-9]{10}$/.test(t) &&
                                (t = t.substr(2)), !/^[0-9]{10}$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                for (var n = [
                                    6,
                                    5,
                                    7,
                                    2,
                                    3,
                                    4,
                                    5,
                                    6,
                                    7,
                                    -1], i = 0, a = 0; a <
                                     10; a++) i += parseInt(t.charAt(a), 10) *
                                    n[a];
                                return { meta: {}, valid: i % 11 == 0 };
                            }(a);
                            break;
                        case'pt':
                            s = function (e) {
                                var t = e;
                                if (/^PT[0-9]{9}$/.test(t) &&
                                (t = t.substr(2)), !/^[0-9]{9}$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                for (var n = [
                                    9,
                                    8,
                                    7,
                                    6,
                                    5,
                                    4,
                                    3,
                                    2], i = 0, a = 0; a < 8; a++) i += parseInt(
                                    t.charAt(a), 10) * n[a];
                                return (i = 11 - i % 11) > 9 && (i = 0), {
                                    meta: {},
                                    valid: ''.concat(i) === t.substr(8, 1),
                                };
                            }(a);
                            break;
                        case'ro':
                            s = function (e) {
                                var t = e;
                                if (/^RO[1-9][0-9]{1,9}$/.test(t) &&
                                (t = t.substr(2)), !/^[1-9][0-9]{1,9}$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                for (var n = t.length, i = [
                                    7,
                                    5,
                                    3,
                                    2,
                                    1,
                                    7,
                                    5,
                                    3,
                                    2].slice(10 - n), a = 0, r = 0; r < n -
                                     1; r++) a += parseInt(t.charAt(r), 10) *
                                    i[r];
                                return {
                                    meta: {},
                                    valid: ''.concat(a = 10 * a % 11 % 10) ===
                                        t.substr(n - 1, 1),
                                };
                            }(a);
                            break;
                        case'rs':
                            s = function (e) {
                                var t = e;
                                if (/^RS[0-9]{9}$/.test(t) &&
                                (t = t.substr(2)), !/^[0-9]{9}$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                for (var n = 10, i = 0, a = 0; a < 8; a++) 0 ==
                                (i = (parseInt(t.charAt(a), 10) + n) % 10) &&
                                (i = 10), n = 2 * i % 11;
                                return {
                                    meta: {},
                                    valid: (n + parseInt(t.substr(8, 1), 10)) %
                                        10 == 1,
                                };
                            }(a);
                            break;
                        case'ru':
                            s = function (e) {
                                var t = e;
                                if (/^RU([0-9]{10}|[0-9]{12})$/.test(t) &&
                                (t = t.substr(
                                    2)), !/^([0-9]{10}|[0-9]{12})$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                var n = 0;
                                if (10 === t.length) {
                                    var i = [
                                        2,
                                        4,
                                        10,
                                        3,
                                        5,
                                        9,
                                        4,
                                        6,
                                        8,
                                        0], a = 0;
                                    for (n = 0; n < 10; n++) a += parseInt(
                                        t.charAt(n), 10) * i[n];
                                    return (a %= 11) > 9 && (a %= 10), {
                                        meta: {},
                                        valid: ''.concat(a) === t.substr(9, 1),
                                    };
                                }
                                if (12 === t.length) {
                                    var r = [
                                        7,
                                        2,
                                        4,
                                        10,
                                        3,
                                        5,
                                        9,
                                        4,
                                        6,
                                        8,
                                        0], o = [
                                        3,
                                        7,
                                        2,
                                        4,
                                        10,
                                        3,
                                        5,
                                        9,
                                        4,
                                        6,
                                        8,
                                        0], s = 0, l = 0;
                                    for (n = 0; n < 11; n++) s += parseInt(
                                        t.charAt(n), 10) * r[n], l += parseInt(
                                        t.charAt(n), 10) * o[n];
                                    return (s %= 11) > 9 &&
                                    (s %= 10), (l %= 11) > 9 && (l %= 10), {
                                        meta: {},
                                        valid: ''.concat(s) ===
                                            t.substr(10, 1) && ''.concat(l) ===
                                            t.substr(11, 1),
                                    };
                                }
                                return { meta: {}, valid: !0 };
                            }(a);
                            break;
                        case'se':
                            s = function (e) {
                                var n = e;
                                return /^SE[0-9]{10}01$/.test(n) &&
                                (n = n.substr(2)), /^[0-9]{10}01$/.test(n)
                                    ? {
                                        meta: {},
                                        valid: t(n = n.substr(0, 10)),
                                    }
                                    : { meta: {}, valid: !1 };
                            }(a);
                            break;
                        case'si':
                            s = function (e) {
                                var t = e.match(/^(SI)?([1-9][0-9]{7})$/);
                                if (!t) return { meta: {}, valid: !1 };
                                for (var n = t[1] ? e.substr(2) : e, i = [
                                    8,
                                    7,
                                    6,
                                    5,
                                    4,
                                    3,
                                    2], a = 0, r = 0; r < 7; r++) a += parseInt(
                                    n.charAt(r), 10) * i[r];
                                return 10 == (a = 11 - a % 11) && (a = 0), {
                                    meta: {},
                                    valid: ''.concat(a) === n.substr(7, 1),
                                };
                            }(a);
                            break;
                        case'sk':
                            s = function (e) {
                                var t = e;
                                return /^SK[1-9][0-9][(2-4)|(6-9)][0-9]{7}$/.test(
                                    t) && (t = t.substr(
                                    2)), /^[1-9][0-9][(2-4)|(6-9)][0-9]{7}$/.test(
                                    t) ? {
                                    meta: {},
                                    valid: parseInt(t, 10) % 11 == 0,
                                } : { meta: {}, valid: !1 };
                            }(a);
                            break;
                        case've':
                            s = function (e) {
                                var t = e;
                                if (/^VE[VEJPG][0-9]{9}$/.test(t) &&
                                (t = t.substr(2)), !/^[VEJPG][0-9]{9}$/.test(
                                    t)) return { meta: {}, valid: !1 };
                                for (var n = [
                                    3,
                                    2,
                                    7,
                                    6,
                                    5,
                                    4,
                                    3,
                                    2], i = {
                                    E: 8,
                                    G: 20,
                                    J: 12,
                                    P: 16,
                                    V: 4,
                                }[t.charAt(0)], a = 0; a <
                                     8; a++) i += parseInt(t.charAt(a + 1),
                                    10) * n[a];
                                return 11 != (i = 11 - i % 11) && 10 !== i ||
                                (i = 0), {
                                    meta: {},
                                    valid: ''.concat(i) === t.substr(9, 1),
                                };
                            }(a);
                            break;
                        case'za':
                            s = function (e) {
                                var t = e;
                                return /^ZA4[0-9]{9}$/.test(t) &&
                                (t = t.substr(2)), {
                                    meta: {},
                                    valid: /^4[0-9]{9}$/.test(t),
                                };
                            }(a);
                    }
                    var l = b(
                        i.l10n ? r.message || i.l10n.vat.country : r.message,
                        i.l10n
                            ? i.l10n.vat.countries[o.toUpperCase()]
                            : o.toUpperCase());
                    return Object.assign({}, { message: l }, s);
                },
            };
        },
        vin: function () {
            return {
                validate: function (e) {
                    if ('' === e.value) return { valid: !0 };
                    if (!/^[a-hj-npr-z0-9]{8}[0-9xX][a-hj-npr-z0-9]{8}$/i.test(
                        e.value)) return { valid: !1 };
                    for (var t = e.value.toUpperCase(), n = {
                        A: 1,
                        B: 2,
                        C: 3,
                        D: 4,
                        E: 5,
                        F: 6,
                        G: 7,
                        H: 8,
                        J: 1,
                        K: 2,
                        L: 3,
                        M: 4,
                        N: 5,
                        P: 7,
                        R: 9,
                        S: 2,
                        T: 3,
                        U: 4,
                        V: 5,
                        W: 6,
                        X: 7,
                        Y: 8,
                        Z: 9,
                        0: 0,
                        1: 1,
                        2: 2,
                        3: 3,
                        4: 4,
                        5: 5,
                        6: 6,
                        7: 7,
                        8: 8,
                        9: 9,
                    }, i = [
                        8,
                        7,
                        6,
                        5,
                        4,
                        3,
                        2,
                        10,
                        0,
                        9,
                        8,
                        7,
                        6,
                        5,
                        4,
                        3,
                        2], a = t.length, r = 0, o = 0; o <
                         a; o++) r += n[''.concat(t.charAt(o))] * i[o];
                    var s = ''.concat(r % 11);
                    return '10' === s && (s = 'X'), {
                        valid: s === t.charAt(8),
                    };
                },
            };
        },
        zipCode: function () {
            var e = [
                'AT',
                'BG',
                'BR',
                'CA',
                'CH',
                'CZ',
                'DE',
                'DK',
                'ES',
                'FR',
                'GB',
                'IE',
                'IN',
                'IT',
                'MA',
                'NL',
                'PL',
                'PT',
                'RO',
                'RU',
                'SE',
                'SG',
                'SK',
                'US'];
            return {
                validate: function (t) {
                    var n = Object.assign({}, t.options);
                    if ('' === t.value || !n.country) return { valid: !0 };
                    var i = t.value.substr(0, 2);
                    if (!(i = 'function' == typeof n.country ? n.country.call(
                        this) : n.country) || -1 ===
                        e.indexOf(i.toUpperCase())) return { valid: !0 };
                    var a = !1;
                    switch (i = i.toUpperCase()) {
                        case'AT':
                            a = /^([1-9]{1})(\d{3})$/.test(t.value);
                            break;
                        case'BG':
                            a = /^([1-9]{1}[0-9]{3})$/.test(t.value);
                            break;
                        case'BR':
                            a = /^(\d{2})([.]?)(\d{3})([-]?)(\d{3})$/.test(
                                t.value);
                            break;
                        case'CA':
                            a = /^(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|X|Y){1}[0-9]{1}(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|W|X|Y|Z){1}\s?[0-9]{1}(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|W|X|Y|Z){1}[0-9]{1}$/i.test(
                                t.value);
                            break;
                        case'CH':
                            a = /^([1-9]{1})(\d{3})$/.test(t.value);
                            break;
                        case'CZ':
                            a = /^(\d{3})([ ]?)(\d{2})$/.test(t.value);
                            break;
                        case'DE':
                            a = /^(?!01000|99999)(0[1-9]\d{3}|[1-9]\d{4})$/.test(
                                t.value);
                            break;
                        case'DK':
                            a = /^(DK(-|\s)?)?\d{4}$/i.test(t.value);
                            break;
                        case'ES':
                            a = /^(?:0[1-9]|[1-4][0-9]|5[0-2])\d{3}$/.test(
                                t.value);
                            break;
                        case'FR':
                            a = /^[0-9]{5}$/i.test(t.value);
                            break;
                        case'GB':
                            a = function (e) {
                                for (var t = '[ABCDEFGHIJKLMNOPRSTUWYZ]', n = '[ABCDEFGHKLMNOPQRSTUVWXY]', i = '[ABDEFGHJLNPQRSTUWXYZ]', a = 0, r = [
                                    new RegExp('^('.concat(t, '{1}').
                                        concat(n,
                                            '?[0-9]{1,2})(\\s*)([0-9]{1}').
                                        concat(i, '{2})$'), 'i'),
                                    new RegExp('^('.concat(t, '{1}[0-9]{1}').
                                        concat('[ABCDEFGHJKPMNRSTUVWXY]',
                                            '{1})(\\s*)([0-9]{1}').
                                        concat(i, '{2})$'), 'i'),
                                    new RegExp('^('.concat(t, '{1}').
                                        concat(n, '{1}?[0-9]{1}').
                                        concat('[ABEHMNPRVWXY]',
                                            '{1})(\\s*)([0-9]{1}').
                                        concat(i, '{2})$'), 'i'),
                                    new RegExp(
                                        '^(BF1)(\\s*)([0-6]{1}[ABDEFGHJLNPQRST]{1}[ABDEFGHJLNPQRSTUWZYZ]{1})$',
                                        'i'),
                                    /^(GIR)(\s*)(0AA)$/i,
                                    /^(BFPO)(\s*)([0-9]{1,4})$/i,
                                    /^(BFPO)(\s*)(c\/o\s*[0-9]{1,3})$/i,
                                    /^([A-Z]{4})(\s*)(1ZZ)$/i,
                                    /^(AI-2640)$/i]; a <
                                     r.length; a++) if (r[a].test(e)) return !0;
                                return !1;
                            }(t.value);
                            break;
                        case'IN':
                            a = /^\d{3}\s?\d{3}$/.test(t.value);
                            break;
                        case'IE':
                            a = /^(D6W|[ACDEFHKNPRTVWXY]\d{2})\s[0-9ACDEFHKNPRTVWXY]{4}$/.test(
                                t.value);
                            break;
                        case'IT':
                            a = /^(I-|IT-)?\d{5}$/i.test(t.value);
                            break;
                        case'MA':
                            a = /^[1-9][0-9]{4}$/i.test(t.value);
                            break;
                        case'NL':
                            a = /^[1-9][0-9]{3} ?(?!sa|sd|ss)[a-z]{2}$/i.test(
                                t.value);
                            break;
                        case'PL':
                            a = /^[0-9]{2}-[0-9]{3}$/.test(t.value);
                            break;
                        case'PT':
                            a = /^[1-9]\d{3}-\d{3}$/.test(t.value);
                            break;
                        case'RO':
                            a = /^(0[1-8]{1}|[1-9]{1}[0-5]{1})?[0-9]{4}$/i.test(
                                t.value);
                            break;
                        case'RU':
                            a = /^[0-9]{6}$/i.test(t.value);
                            break;
                        case'SE':
                            a = /^(S-)?\d{3}\s?\d{2}$/i.test(t.value);
                            break;
                        case'SG':
                            a = /^([0][1-9]|[1-6][0-9]|[7]([0-3]|[5-9])|[8][0-2])(\d{4})$/i.test(
                                t.value);
                            break;
                        case'SK':
                            a = /^(\d{3})([ ]?)(\d{2})$/.test(t.value);
                            break;
                        case'US':
                        default:
                            a = /^\d{4,5}([-]?\d{4})?$/.test(t.value);
                    }
                    return {
                        message: b(t.l10n
                            ? n.message || t.l10n.zipCode.country
                            : n.message,
                            t.l10n ? t.l10n.zipCode.countries[i] : i), valid: a,
                    };
                },
            };
        },
    }, E = function () {
        function e (t, n) {
            o(this, e), this.elements = {}, this.ee = {
                fns: {},
                clear: function () {this.fns = {};},
                emit: function (e) {
                    for (var t = arguments.length, n = new Array(
                        t > 1 ? t - 1 : 0), i = 1; i < t; i++) n[i -
                    1] = arguments[i];
                    (this.fns[e] || []).map(
                        (function (e) {return e.apply(e, n);}));
                },
                off: function (e, t) {
                    if (this.fns[e]) {
                        var n = this.fns[e].indexOf(t);
                        n >= 0 && this.fns[e].splice(n, 1);
                    }
                },
                on: function (e, t) {
                    (this.fns[e] = this.fns[e] || []).push(t);
                },
            }, this.filter = {
                filters: {},
                add: function (e, t) {
                    (this.filters[e] = this.filters[e] || []).push(t);
                },
                clear: function () {this.filters = {};},
                execute: function (e, t, n) {
                    if (!this.filters[e] || !this.filters[e].length) return t;
                    for (var i = t, a = this.filters[e], r = a.length, o = 0; o <
                    r; o++) i = a[o].apply(i, n);
                    return i;
                },
                remove: function (e, t) {
                    this.filters[e] &&
                    (this.filters[e] = this.filters[e].filter(
                        (function (e) {return e !== t;})));
                },
            }, this.plugins = {}, this.results = new Map, this.validators = {}, this.form = t, this.fields = n;
        }

        return l(e, [
            {
                key: 'on',
                value: function (e, t) {return this.ee.on(e, t), this;},
            },
            {
                key: 'off',
                value: function (e, t) {return this.ee.off(e, t), this;},
            },
            {
                key: 'emit',
                value: function (e) {
                    for (var t, n = arguments.length, i = new Array(
                        n > 1 ? n - 1 : 0), a = 1; a < n; a++) i[a -
                    1] = arguments[a];
                    return (t = this.ee).emit.apply(t, [e].concat(i)), this;
                },
            },
            {
                key: 'registerPlugin',
                value: function (e, t) {
                    if (this.plugins[e]) throw new Error(
                        'The plguin '.concat(e, ' is registered'));
                    return t.setCore(
                        this), t.install(), this.plugins[e] = t, this;
                },
            },
            {
                key: 'deregisterPlugin',
                value: function (e) {
                    var t = this.plugins[e];
                    return t && t.uninstall(), delete this.plugins[e], this;
                },
            },
            {
                key: 'registerValidator',
                value: function (e, t) {
                    if (this.validators[e]) throw new Error(
                        'The validator '.concat(e, ' is registered'));
                    return this.validators[e] = t, this;
                },
            },
            {
                key: 'registerFilter',
                value: function (e, t) {return this.filter.add(e, t), this;},
            },
            {
                key: 'deregisterFilter',
                value: function (e, t) {return this.filter.remove(e, t), this;},
            },
            {
                key: 'executeFilter',
                value: function (e, t, n) {
                    return this.filter.execute(e, t, n);
                },
            },
            {
                key: 'addField',
                value: function (e, t) {
                    var n = Object.assign({}, { selector: '', validators: {} },
                        t);
                    return this.fields[e] = this.fields[e]
                        ? {
                            selector: n.selector || this.fields[e].selector,
                            validators: Object.assign({},
                                this.fields[e].validators, n.validators),
                        }
                        : n, this.elements[e] = this.queryElements(
                        e), this.emit('core.field.added', {
                        elements: this.elements[e],
                        field: e,
                        options: this.fields[e],
                    }), this;
                },
            },
            {
                key: 'removeField',
                value: function (e) {
                    if (!this.fields[e]) throw new Error('The field '.concat(e,
                        ' validators are not defined. Please ensure the field is added first'));
                    var t = this.elements[e], n = this.fields[e];
                    return delete this.elements[e], delete this.fields[e], this.emit(
                        'core.field.removed',
                        { elements: t, field: e, options: n }), this;
                },
            },
            {
                key: 'validate', value: function () {
                    var e = this;
                    return this.emit(
                        'core.form.validating'), this.filter.execute(
                        'validate-pre', Promise.resolve(), []).
                        then((function () {
                            return Promise.all(Object.keys(e.fields).
                                map((function (t) {
                                    return e.validateField(t);
                                }))).then((function (t) {
                                switch (!0) {
                                    case-1 !== t.indexOf('Invalid'):
                                        return e.emit(
                                            'core.form.invalid'), Promise.resolve(
                                            'Invalid');
                                    case-1 !== t.indexOf('NotValidated'):
                                        return e.emit(
                                            'core.form.notvalidated'), Promise.resolve(
                                            'NotValidated');
                                    default:
                                        return e.emit(
                                            'core.form.valid'), Promise.resolve(
                                            'Valid');
                                }
                            }));
                        }));
                },
            },
            {
                key: 'validateField',
                value: function (e) {
                    var t = this, n = this.results.get(e);
                    if ('Valid' === n || 'Invalid' ===
                        n) return Promise.resolve(n);
                    this.emit('core.field.validating', e);
                    var i = this.elements[e];
                    if (0 === i.length) return this.emit('core.field.valid',
                        e), Promise.resolve('Valid');
                    var a = i[0].getAttribute('type');
                    return 'radio' === a || 'checkbox' === a || 1 === i.length
                        ? this.validateElement(e, i[0])
                        : Promise.all(i.map(
                            (function (n) {return t.validateElement(e, n);}))).
                            then((function (n) {
                                switch (!0) {
                                    case-1 !== n.indexOf('Invalid'):
                                        return t.emit('core.field.invalid',
                                            e), t.results.set(e,
                                            'Invalid'), Promise.resolve(
                                            'Invalid');
                                    case-1 !== n.indexOf('NotValidated'):
                                        return t.emit('core.field.notvalidated',
                                            e), t.results.delete(
                                            e), Promise.resolve('NotValidated');
                                    default:
                                        return t.emit('core.field.valid',
                                            e), t.results.set(e,
                                            'Valid'), Promise.resolve('Valid');
                                }
                            }));
                },
            },
            {
                key: 'validateElement', value: function (e, t) {
                    var n = this;
                    this.results.delete(e);
                    var i = this.elements[e];
                    if (this.filter.execute('element-ignored', !1,
                        [e, t, i])) return this.emit('core.element.ignored',
                        { element: t, elements: i, field: e }), Promise.resolve(
                        'Ignored');
                    var a = this.fields[e].validators;
                    this.emit('core.element.validating',
                        { element: t, elements: i, field: e });
                    var r = Object.keys(a).
                        map((function (i) {
                            return function () {
                                return n.executeValidator(e, t, i, a[i]);
                            };
                        }));
                    return this.waterfall(r).
                        then((function (a) {
                            var r = -1 === a.indexOf('Invalid');
                            n.emit('core.element.validated', {
                                element: t,
                                elements: i,
                                field: e,
                                valid: r,
                            });
                            var o = t.getAttribute('type');
                            return 'radio' !== o && 'checkbox' !== o && 1 !==
                            i.length || n.emit(
                                r ? 'core.field.valid' : 'core.field.invalid',
                                e), Promise.resolve(r ? 'Valid' : 'Invalid');
                        })).
                        catch((function (a) {
                            return n.emit('core.element.notvalidated', {
                                element: t,
                                elements: i,
                                field: e,
                            }), Promise.resolve(a);
                        }));
                },
            },
            {
                key: 'executeValidator', value: function (e, t, n, i) {
                    var a = this, r = this.elements[e],
                        o = this.filter.execute('validator-name', n, [n, e]);
                    if (i.message = this.filter.execute('validator-message',
                        i.message, [this.locale, e, o]), !this.validators[o] ||
                    !1 === i.enabled) return this.emit(
                        'core.validator.validated', {
                            element: t,
                            elements: r,
                            field: e,
                            result: this.normalizeResult(e, o, { valid: !0 }),
                            validator: o,
                        }), Promise.resolve('Valid');
                    var s = this.validators[o],
                        l = this.getElementValue(e, t, o);
                    if (!this.filter.execute('field-should-validate', !0,
                        [e, t, l, n])) return this.emit(
                        'core.validator.notvalidated', {
                            element: t,
                            elements: r,
                            field: e,
                            validator: n,
                        }), Promise.resolve('NotValidated');
                    this.emit('core.validator.validating',
                        { element: t, elements: r, field: e, validator: n });
                    var c = s().
                        validate({
                            element: t,
                            elements: r,
                            field: e,
                            l10n: this.localization,
                            options: i,
                            value: l,
                        });
                    if ('function' == typeof c.then) return c.then(
                        (function (i) {
                            var o = a.normalizeResult(e, n, i);
                            return a.emit('core.validator.validated', {
                                element: t,
                                elements: r,
                                field: e,
                                result: o,
                                validator: n,
                            }), o.valid ? 'Valid' : 'Invalid';
                        }));
                    var u = this.normalizeResult(e, n, c);
                    return this.emit('core.validator.validated', {
                        element: t,
                        elements: r,
                        field: e,
                        result: u,
                        validator: n,
                    }), Promise.resolve(u.valid ? 'Valid' : 'Invalid');
                },
            },
            {
                key: 'getElementValue',
                value: function (e, t, n) {
                    var i = y(this.form, 0, t, this.elements[e]);
                    return this.filter.execute('field-value', i, [i, e, t, n]);
                },
            },
            {
                key: 'getElements',
                value: function (e) {return this.elements[e];},
            },
            { key: 'getFields', value: function () {return this.fields;} },
            { key: 'getFormElement', value: function () {return this.form;} },
            { key: 'getLocale', value: function () {return this.locale;} },
            { key: 'getPlugin', value: function (e) {return this.plugins[e];} },
            {
                key: 'updateFieldStatus',
                value: function (e, t, n) {
                    var i = this, a = this.elements[e],
                        r = a[0].getAttribute('type');
                    if (('radio' === r || 'checkbox' === r
                        ? [a[0]]
                        : a).forEach((function (a) {
                        return i.updateElementStatus(e, a, t, n);
                    })), !n) switch (t) {
                        case'NotValidated':
                            this.emit('core.field.notvalidated',
                                e), this.results.delete(e);
                            break;
                        case'Validating':
                            this.emit('core.field.validating',
                                e), this.results.delete(e);
                            break;
                        case'Valid':
                            this.emit('core.field.valid', e), this.results.set(
                                e, 'Valid');
                            break;
                        case'Invalid':
                            this.emit('core.field.invalid',
                                e), this.results.set(e, 'Invalid');
                    }
                    return this;
                },
            },
            {
                key: 'updateElementStatus',
                value: function (e, t, n, i) {
                    var a = this, r = this.elements[e],
                        o = this.fields[e].validators,
                        s = i ? [i] : Object.keys(o);
                    switch (n) {
                        case'NotValidated':
                            s.forEach((function (n) {
                                return a.emit('core.validator.notvalidated', {
                                    element: t,
                                    elements: r,
                                    field: e,
                                    validator: n,
                                });
                            })), this.emit('core.element.notvalidated',
                                { element: t, elements: r, field: e });
                            break;
                        case'Validating':
                            s.forEach((function (n) {
                                return a.emit('core.validator.validating', {
                                    element: t,
                                    elements: r,
                                    field: e,
                                    validator: n,
                                });
                            })), this.emit('core.element.validating',
                                { element: t, elements: r, field: e });
                            break;
                        case'Valid':
                            s.forEach((function (n) {
                                return a.emit('core.validator.validated', {
                                    element: t,
                                    field: e,
                                    result: {
                                        message: o[n].message,
                                        valid: !0,
                                    },
                                    validator: n,
                                });
                            })), this.emit('core.element.validated', {
                                element: t,
                                elements: r,
                                field: e,
                                valid: !0,
                            });
                            break;
                        case'Invalid':
                            s.forEach((function (n) {
                                return a.emit('core.validator.validated', {
                                    element: t,
                                    field: e,
                                    result: {
                                        message: o[n].message,
                                        valid: !1,
                                    },
                                    validator: n,
                                });
                            })), this.emit('core.element.validated', {
                                element: t,
                                elements: r,
                                field: e,
                                valid: !1,
                            });
                    }
                    return this;
                },
            },
            {
                key: 'resetForm', value: function (e) {
                    var t = this;
                    return Object.keys(this.fields).
                        forEach((function (n) {
                            return t.resetField(n, e);
                        })), this.emit('core.form.reset', { reset: e }), this;
                },
            },
            {
                key: 'resetField',
                value: function (e, t) {
                    if (t) {
                        var n = this.elements[e], i = n[0].getAttribute('type');
                        n.forEach((function (e) {
                            'radio' === i || 'checkbox' === i
                                ? (e.removeAttribute(
                                'selected'), e.removeAttribute(
                                'checked'), e.checked = !1)
                                : (e.setAttribute('value', ''), (e instanceof
                                HTMLInputElement || e instanceof
                                HTMLTextAreaElement) && (e.value = ''));
                        }));
                    }
                    return this.updateFieldStatus(e, 'NotValidated'), this.emit(
                        'core.field.reset', { field: e, reset: t }), this;
                },
            },
            {
                key: 'revalidateField',
                value: function (e) {
                    return this.updateFieldStatus(e,
                        'NotValidated'), this.validateField(e);
                },
            },
            {
                key: 'disableValidator',
                value: function (e, t) {return this.toggleValidator(!1, e, t);},
            },
            {
                key: 'enableValidator',
                value: function (e, t) {return this.toggleValidator(!0, e, t);},
            },
            {
                key: 'updateValidatorOption',
                value: function (e, t, n, i) {
                    return this.fields[e] && this.fields[e].validators &&
                    this.fields[e].validators[t] &&
                    (this.fields[e].validators[t][n] = i), this;
                },
            },
            {
                key: 'setFieldOptions',
                value: function (e, t) {return this.fields[e] = t, this;},
            },
            {
                key: 'destroy', value: function () {
                    var e = this;
                    return Object.keys(this.plugins).
                        forEach(
                            (function (t) {return e.plugins[t].uninstall();})), this.ee.clear(), this.filter.clear(), this.results.clear(), this.plugins = {}, this;
                },
            },
            {
                key: 'setLocale',
                value: function (
                    e,
                    t) {return this.locale = e, this.localization = t, this;},
            },
            {
                key: 'waterfall',
                value: function (e) {
                    return e.reduce((function (e, t) {
                        return e.then((function (e) {
                            return t().
                                then((function (t) {return e.push(t), e;}));
                        }));
                    }), Promise.resolve([]));
                },
            },
            {
                key: 'queryElements',
                value: function (e) {
                    var t = this.fields[e].selector ? '#' ===
                    this.fields[e].selector.charAt(0)
                        ? '[id="'.concat(this.fields[e].selector.substring(1),
                            '"]')
                        : this.fields[e].selector : '[name="'.concat(e, '"]');
                    return [].slice.call(this.form.querySelectorAll(t));
                },
            },
            {
                key: 'normalizeResult',
                value: function (e, t, n) {
                    var i = this.fields[e].validators[t];
                    return Object.assign({}, n, {
                        message: n.message || (i ? i.message : '') ||
                            (this.localization && this.localization[t] &&
                            this.localization[t].default
                                ? this.localization[t].default
                                : '') ||
                            'The field '.concat(e, ' is not valid'),
                    });
                },
            },
            {
                key: 'toggleValidator',
                value: function (e, t, n) {
                    var i = this, a = this.fields[t].validators;
                    return n && a && a[n]
                        ? this.fields[t].validators[n].enabled = e
                        : n || Object.keys(a).
                        forEach(
                            (function (n) {return i.fields[t].validators[n].enabled = e;})), this.updateFieldStatus(
                        t, 'NotValidated', n);
                },
            }]), e;
    }();
    var O = function () {
        function e (t) {o(this, e), this.opts = t;}

        return l(e, [
            {
                key: 'setCore',
                value: function (e) {return this.core = e, this;},
            },
            { key: 'install', value: function () {} },
            { key: 'uninstall', value: function () {} }]), e;
    }(), Y = { getFieldValue: y }, P = function (e) {
        u(n, e);
        var t = m(n);

        function n (e) {
            var i;
            return o(this, n), (i = t.call(this, e)).opts = e ||
                {}, i.validatorNameFilter = i.getValidatorName.bind(f(i)), i;
        }

        return l(n, [
            {
                key: 'install',
                value: function () {
                    this.core.registerFilter('validator-name',
                        this.validatorNameFilter);
                },
            },
            {
                key: 'uninstall',
                value: function () {
                    this.core.deregisterFilter('validator-name',
                        this.validatorNameFilter);
                },
            },
            {
                key: 'getValidatorName',
                value: function (e, t) {return this.opts[e] || e;},
            }]), n;
    }(O), I = function (e) {
        u(n, e);
        var t = m(n);

        function n () {
            var e;
            return o(this, n), (e = t.call(this,
                {})).elementValidatedHandler = e.onElementValidated.bind(
                f(e)), e.fieldValidHandler = e.onFieldValid.bind(
                f(e)), e.fieldInvalidHandler = e.onFieldInvalid.bind(
                f(e)), e.messageDisplayedHandler = e.onMessageDisplayed.bind(
                f(e)), e;
        }

        return l(n, [
            {
                key: 'install',
                value: function () {
                    this.core.on('core.field.valid', this.fieldValidHandler).
                        on('core.field.invalid', this.fieldInvalidHandler).
                        on('core.element.validated',
                            this.elementValidatedHandler).
                        on('plugins.message.displayed',
                            this.messageDisplayedHandler);
                },
            },
            {
                key: 'uninstall',
                value: function () {
                    this.core.off('core.field.valid', this.fieldValidHandler).
                        off('core.field.invalid', this.fieldInvalidHandler).
                        off('core.element.validated',
                            this.elementValidatedHandler).
                        off('plugins.message.displayed',
                            this.messageDisplayedHandler);
                },
            },
            {
                key: 'onElementValidated',
                value: function (e) {
                    e.valid && (e.element.setAttribute('aria-invalid',
                        'false'), e.element.removeAttribute(
                        'aria-describedby'));
                },
            },
            {
                key: 'onFieldValid',
                value: function (e) {
                    var t = this.core.getElements(e);
                    t && t.forEach((function (e) {
                        e.setAttribute('aria-invalid',
                            'false'), e.removeAttribute('aria-describedby');
                    }));
                },
            },
            {
                key: 'onFieldInvalid',
                value: function (e) {
                    var t = this.core.getElements(e);
                    t && t.forEach((function (e) {
                        return e.setAttribute('aria-invalid', 'true');
                    }));
                },
            },
            {
                key: 'onMessageDisplayed',
                value: function (e) {
                    e.messageElement.setAttribute('role',
                        'alert'), e.messageElement.setAttribute('aria-hidden',
                        'false');
                    var t = this.core.getElements(e.field),
                        n = t.indexOf(e.element),
                        i = 'js-fv-'.concat(e.field, '-').
                            concat(n, '-').
                            concat(Date.now(), '-message');
                    e.messageElement.setAttribute('id',
                        i), e.element.setAttribute('aria-describedby', i);
                    var a = e.element.getAttribute('type');
                    'radio' !== a && 'checkbox' !== a || t.forEach(
                        (function (e) {
                            return e.setAttribute('aria-describedby', i);
                        }));
                },
            }]), n;
    }(O), j = function (e) {
        u(n, e);
        var t = m(n);

        function n (e) {
            var i;
            return o(this, n), (i = t.call(this,
                e)).addedFields = new Map, i.opts = Object.assign({}, {
                html5Input: !1,
                pluginPrefix: 'data-fvp-',
                prefix: 'data-fv-',
            }, e), i.fieldAddedHandler = i.onFieldAdded.bind(
                f(i)), i.fieldRemovedHandler = i.onFieldRemoved.bind(f(i)), i;
        }

        return l(n, [
            {
                key: 'install', value: function () {
                    var e = this;
                    this.parsePlugins();
                    var t = this.parseOptions();
                    Object.keys(t).
                        forEach((function (n) {
                            e.addedFields.has(n) ||
                            e.addedFields.set(n, !0), e.core.addField(n, t[n]);
                        })), this.core.on('core.field.added',
                        this.fieldAddedHandler).
                        on('core.field.removed', this.fieldRemovedHandler);
                },
            },
            {
                key: 'uninstall',
                value: function () {
                    this.addedFields.clear(), this.core.off('core.field.added',
                        this.fieldAddedHandler).
                        off('core.field.removed', this.fieldRemovedHandler);
                },
            },
            {
                key: 'onFieldAdded',
                value: function (e) {
                    var t = this, n = e.elements;
                    n && 0 !== n.length && !this.addedFields.has(e.field) &&
                    (this.addedFields.set(e.field, !0), n.forEach(
                        (function (n) {
                            var i = t.parseElement(n);
                            if (!t.isEmptyOption(i)) {
                                var a = {
                                    selector: e.options.selector,
                                    validators: Object.assign({},
                                        e.options.validators || {},
                                        i.validators),
                                };
                                t.core.setFieldOptions(e.field, a);
                            }
                        })));
                },
            },
            {
                key: 'onFieldRemoved',
                value: function (e) {
                    e.field && this.addedFields.has(e.field) &&
                    this.addedFields.delete(e.field);
                },
            },
            {
                key: 'parseOptions',
                value: function () {
                    var e = this, t = this.opts.prefix, n = {},
                        i = this.core.getFields(),
                        a = this.core.getFormElement();
                    return [].slice.call(
                        a.querySelectorAll('[name], ['.concat(t, 'field]'))).
                        forEach((function (i) {
                            var a = e.parseElement(i);
                            if (!e.isEmptyOption(a)) {
                                var r = i.getAttribute('name') ||
                                    i.getAttribute(''.concat(t, 'field'));
                                n[r] = Object.assign({}, n[r], a);
                            }
                        })), Object.keys(n).
                        forEach((function (e) {
                            Object.keys(n[e].validators).
                                forEach((function (t) {
                                    n[e].validators[t].enabled = n[e].validators[t].enabled ||
                                        !1, i[e] && i[e].validators &&
                                    i[e].validators[t] &&
                                    Object.assign(n[e].validators[t],
                                        i[e].validators[t]);
                                }));
                        })), Object.assign({}, i, n);
                },
            },
            {
                key: 'createPluginInstance',
                value: function (e, t) {
                    for (var n = e.split('.'), i = window ||
                        this, a = 0, r = n.length; a < r; a++) i = i[n[a]];
                    if ('function' != typeof i) throw new Error(
                        'the plugin '.concat(e, ' doesn\'t exist'));
                    return new i(t);
                },
            },
            {
                key: 'parsePlugins',
                value: function () {
                    for (var e = this, t = this.core.getFormElement(), n = new RegExp(
                        '^'.concat(this.opts.pluginPrefix,
                            '([a-z0-9-]+)(___)*([a-z0-9-]+)*$')), i = t.attributes.length, a = {}, r = 0; r <
                         i; r++) {
                        var o = t.attributes[r].name, s = t.attributes[r].value,
                            l = n.exec(o);
                        if (l && 4 === l.length) {
                            var u = this.toCamelCase(l[1]);
                            a[u] = Object.assign({}, l[3]
                                ? c({}, this.toCamelCase(l[3]), s)
                                : { enabled: '' === s || 'true' === s }, a[u]);
                        }
                    }
                    Object.keys(a).
                        forEach((function (t) {
                            var n = a[t], i = n.enabled, r = n.class;
                            if (i && r) {
                                delete n.enabled, delete n.clazz;
                                var o = e.createPluginInstance(r, n);
                                e.core.registerPlugin(t, o);
                            }
                        }));
                },
            },
            {
                key: 'isEmptyOption', value: function (e) {
                    var t = e.validators;
                    return 0 === Object.keys(t).length && t.constructor ===
                        Object;
                },
            },
            {
                key: 'parseElement', value: function (e) {
                    for (var t = new RegExp('^'.concat(this.opts.prefix,
                        '([a-z0-9-]+)(___)*([a-z0-9-]+)*$')), n = e.attributes.length, i = {}, a = e.getAttribute(
                        'type'), r = 0; r < n; r++) {
                        var o = e.attributes[r].name, s = e.attributes[r].value;
                        if (this.opts.html5Input) switch (!0) {
                            case'minlength' === o:
                                i.stringLength = Object.assign({},
                                    { enabled: !0, min: parseInt(s, 10) },
                                    i.stringLength);
                                break;
                            case'maxlength' === o:
                                i.stringLength = Object.assign({},
                                    { enabled: !0, max: parseInt(s, 10) },
                                    i.stringLength);
                                break;
                            case'pattern' === o:
                                i.regexp = Object.assign({},
                                    { enabled: !0, regexp: s }, i.regexp);
                                break;
                            case'required' === o:
                                i.notEmpty = Object.assign({}, { enabled: !0 },
                                    i.notEmpty);
                                break;
                            case'type' === o && 'color' === s:
                                i.color = Object.assign({},
                                    { enabled: !0, type: 'hex' }, i.color);
                                break;
                            case'type' === o && 'email' === s:
                                i.emailAddress = Object.assign({},
                                    { enabled: !0 }, i.emailAddress);
                                break;
                            case'type' === o && 'url' === s:
                                i.uri = Object.assign({}, { enabled: !0 },
                                    i.uri);
                                break;
                            case'type' === o && 'range' === s:
                                i.between = Object.assign({}, {
                                    enabled: !0,
                                    max: parseFloat(e.getAttribute('max')),
                                    min: parseFloat(e.getAttribute('min')),
                                }, i.between);
                                break;
                            case'min' === o && 'date' !== a && 'range' !== a:
                                i.greaterThan = Object.assign({},
                                    { enabled: !0, min: parseFloat(s) },
                                    i.greaterThan);
                                break;
                            case'max' === o && 'date' !== a && 'range' !== a:
                                i.lessThan = Object.assign({},
                                    { enabled: !0, max: parseFloat(s) },
                                    i.lessThan);
                        }
                        var l = t.exec(o);
                        if (l && 4 === l.length) {
                            var u = this.toCamelCase(l[1]);
                            i[u] = Object.assign({},
                                l[3] ? c({}, this.toCamelCase(l[3]),
                                    this.normalizeValue(s)) : {
                                    enabled: '' === s || 'true' === s,
                                }, i[u]);
                        }
                    }
                    return { validators: i };
                },
            },
            {
                key: 'normalizeValue',
                value: function (e) {
                    return 'true' === e || 'false' !== e && e;
                },
            },
            {
                key: 'toUpperCase',
                value: function (e) {return e.charAt(1).toUpperCase();},
            },
            {
                key: 'toCamelCase',
                value: function (e) {
                    return e.replace(/-./g, this.toUpperCase);
                },
            }]), n;
    }(O), N = function (e) {
        u(n, e);
        var t = m(n);

        function n () {
            var e;
            return o(this, n), (e = t.call(this,
                {})).onValidHandler = e.onFormValid.bind(f(e)), e;
        }

        return l(n, [
            {
                key: 'install',
                value: function () {
                    if (this.core.getFormElement().
                        querySelectorAll(
                            '[type="submit"][name="submit"]').length) throw new Error(
                        'Do not use `submit` for the name attribute of submit button');
                    this.core.on('core.form.valid', this.onValidHandler);
                },
            },
            {
                key: 'uninstall',
                value: function () {
                    this.core.off('core.form.valid', this.onValidHandler);
                },
            },
            {
                key: 'onFormValid',
                value: function () {
                    var e = this.core.getFormElement();
                    e instanceof HTMLFormElement && e.submit();
                },
            }]), n;
    }(O), H = function (e) {
        u(n, e);
        var t = m(n);

        function n (e) {
            var i;
            return o(this, n), (i = t.call(this, e)).opts = e ||
                {}, i.triggerExecutedHandler = i.onTriggerExecuted.bind(
                f(i)), i;
        }

        return l(n, [
            {
                key: 'install',
                value: function () {
                    this.core.on('plugins.trigger.executed',
                        this.triggerExecutedHandler);
                },
            },
            {
                key: 'uninstall',
                value: function () {
                    this.core.off('plugins.trigger.executed',
                        this.triggerExecutedHandler);
                },
            },
            {
                key: 'onTriggerExecuted',
                value: function (e) {
                    if (this.opts[e.field]) {
                        var t, n = v(this.opts[e.field].split(' '));
                        try {
                            for (n.s(); !(t = n.n()).done;) {
                                var i = t.value.trim();
                                this.opts[i] && this.core.revalidateField(i);
                            }
                        } catch (e) {n.e(e);} finally {n.f();}
                    }
                },
            }]), n;
    }(O), F = function (e) {
        u(n, e);
        var t = m(n);

        function n (e) {
            var i;
            return o(this, n), (i = t.call(this, e)).opts = Object.assign({},
                { excluded: n.defaultIgnore },
                e), i.ignoreValidationFilter = i.ignoreValidation.bind(f(i)), i;
        }

        return l(n, [
            {
                key: 'install',
                value: function () {
                    this.core.registerFilter('element-ignored',
                        this.ignoreValidationFilter);
                },
            },
            {
                key: 'uninstall',
                value: function () {
                    this.core.deregisterFilter('element-ignored',
                        this.ignoreValidationFilter);
                },
            },
            {
                key: 'ignoreValidation',
                value: function (e, t, n) {
                    return this.opts.excluded.apply(this, [e, t, n]);
                },
            }], [
            {
                key: 'defaultIgnore',
                value: function (e, t, n) {
                    var i = !!(t.offsetWidth || t.offsetHeight ||
                        t.getClientRects().length),
                        a = t.getAttribute('disabled');
                    return '' === a || 'disabled' === a || 'hidden' ===
                        t.getAttribute('type') || !i;
                },
            }]), n;
    }(O), R = function (e) {
        u(n, e);
        var t = m(n);

        function n (e) {
            var i;
            return o(this, n), (i = t.call(this,
                e)).statuses = new Map, i.opts = Object.assign({},
                { onStatusChanged: function () {} },
                e), i.elementValidatingHandler = i.onElementValidating.bind(
                f(i)), i.elementValidatedHandler = i.onElementValidated.bind(
                f(i)), i.elementNotValidatedHandler = i.onElementNotValidated.bind(
                f(i)), i.elementIgnoredHandler = i.onElementIgnored.bind(
                f(i)), i.fieldAddedHandler = i.onFieldAdded.bind(
                f(i)), i.fieldRemovedHandler = i.onFieldRemoved.bind(f(i)), i;
        }

        return l(n, [
            {
                key: 'install',
                value: function () {
                    this.core.on('core.element.validating',
                        this.elementValidatingHandler).
                        on('core.element.validated',
                            this.elementValidatedHandler).
                        on('core.element.notvalidated',
                            this.elementNotValidatedHandler).
                        on('core.element.ignored', this.elementIgnoredHandler).
                        on('core.field.added', this.fieldAddedHandler).
                        on('core.field.removed', this.fieldRemovedHandler);
                },
            },
            {
                key: 'uninstall',
                value: function () {
                    this.statuses.clear(), this.core.off(
                        'core.element.validating',
                        this.elementValidatingHandler).
                        off('core.element.validated',
                            this.elementValidatedHandler).
                        off('core.element.notvalidated',
                            this.elementNotValidatedHandler).
                        off('core.element.ignored', this.elementIgnoredHandler).
                        off('core.field.added', this.fieldAddedHandler).
                        off('core.field.removed', this.fieldRemovedHandler);
                },
            },
            {
                key: 'areFieldsValid',
                value: function () {
                    return Array.from(this.statuses.values()).
                        every((function (e) {
                            return 'Valid' === e || 'NotValidated' === e ||
                                'Ignored' === e;
                        }));
                },
            },
            { key: 'getStatuses', value: function () {return this.statuses;} },
            {
                key: 'onFieldAdded',
                value: function (e) {
                    this.statuses.set(e.field, 'NotValidated');
                },
            },
            {
                key: 'onFieldRemoved',
                value: function (e) {
                    this.statuses.has(e.field) &&
                    this.statuses.delete(e.field), this.opts.onStatusChanged(
                        this.areFieldsValid());
                },
            },
            {
                key: 'onElementValidating',
                value: function (e) {
                    this.statuses.set(e.field,
                        'Validating'), this.opts.onStatusChanged(!1);
                },
            },
            {
                key: 'onElementValidated',
                value: function (e) {
                    this.statuses.set(e.field,
                        e.valid ? 'Valid' : 'Invalid'), e.valid
                        ? this.opts.onStatusChanged(this.areFieldsValid())
                        : this.opts.onStatusChanged(!1);
                },
            },
            {
                key: 'onElementNotValidated',
                value: function (e) {
                    this.statuses.set(e.field,
                        'NotValidated'), this.opts.onStatusChanged(!1);
                },
            },
            {
                key: 'onElementIgnored',
                value: function (e) {
                    this.statuses.set(e.field,
                        'Ignored'), this.opts.onStatusChanged(
                        this.areFieldsValid());
                },
            }]), n;
    }(O);

    function z (e, t) {
        var n = [], i = [];
        Object.keys(t).
            forEach((function (e) {
                e && (t[e] ? n.push(e) : i.push(e));
            })), i.forEach((function (t) {
            return function (e, t) {
                t.split(' ').
                    forEach((function (t) {
                        e.classList
                            ? e.classList.remove(t)
                            : e.className = e.className.replace(t, '');
                    }));
            }(e, t);
        })), n.forEach((function (t) {
            return function (e, t) {
                t.split(' ').
                    forEach((function (t) {
                        e.classList
                            ? e.classList.add(t)
                            : ' '.concat(e.className, ' ').
                                indexOf(' '.concat(t, ' ')) &&
                            (e.className += ' '.concat(t));
                    }));
            }(e, t);
        }));
    }

    function B (e, t) {
        var n = e.matches || e.webkitMatchesSelector || e.mozMatchesSelector ||
            e.msMatchesSelector;
        return n ? n.call(e, t) : [].slice.call(
            e.parentElement.querySelectorAll(t)).indexOf(e) >= 0;
    }

    function W (e, t) {
        for (var n = e; n && !B(n, t);) n = n.parentElement;
        return n;
    }

    var V = function (e) {
        u(n, e);
        var t = m(n);

        function n (e) {
            var i;
            return o(this, n), (i = t.call(this,
                e)).messages = new Map, i.defaultContainer = document.createElement(
                'div'), i.opts = Object.assign({},
                { container: function (e, t) {return i.defaultContainer;} },
                e), i.elementIgnoredHandler = i.onElementIgnored.bind(
                f(i)), i.fieldAddedHandler = i.onFieldAdded.bind(
                f(i)), i.fieldRemovedHandler = i.onFieldRemoved.bind(
                f(i)), i.validatorValidatedHandler = i.onValidatorValidated.bind(
                f(i)), i.validatorNotValidatedHandler = i.onValidatorNotValidated.bind(
                f(i)), i;
        }

        return l(n, [
            {
                key: 'install',
                value: function () {
                    this.core.getFormElement().
                        appendChild(this.defaultContainer), this.core.on(
                        'core.element.ignored', this.elementIgnoredHandler).
                        on('core.field.added', this.fieldAddedHandler).
                        on('core.field.removed', this.fieldRemovedHandler).
                        on('core.validator.validated',
                            this.validatorValidatedHandler).
                        on('core.validator.notvalidated',
                            this.validatorNotValidatedHandler);
                },
            },
            {
                key: 'uninstall',
                value: function () {
                    this.core.getFormElement().
                        removeChild(
                            this.defaultContainer), this.messages.forEach(
                        (function (e) {
                            return e.parentNode.removeChild(e);
                        })), this.messages.clear(), this.core.off(
                        'core.element.ignored', this.elementIgnoredHandler).
                        off('core.field.added', this.fieldAddedHandler).
                        off('core.field.removed', this.fieldRemovedHandler).
                        off('core.validator.validated',
                            this.validatorValidatedHandler).
                        off('core.validator.notvalidated',
                            this.validatorNotValidatedHandler);
                },
            },
            {
                key: 'onFieldAdded',
                value: function (e) {
                    var t = this, n = e.elements;
                    n && (n.forEach((function (e) {
                        var n = t.messages.get(e);
                        n &&
                        (n.parentNode.removeChild(n), t.messages.delete(e));
                    })), this.prepareFieldContainer(e.field, n));
                },
            },
            {
                key: 'onFieldRemoved', value: function (e) {
                    var t = this;
                    if (e.elements.length && e.field) {
                        var n = e.elements[0].getAttribute('type');
                        ('radio' === n || 'checkbox' === n
                            ? [e.elements[0]]
                            : e.elements).forEach((function (e) {
                            if (t.messages.has(e)) {
                                var n = t.messages.get(e);
                                n.parentNode.removeChild(n), t.messages.delete(
                                    e);
                            }
                        }));
                    }
                },
            },
            {
                key: 'prepareFieldContainer',
                value: function (e, t) {
                    var n = this;
                    if (t.length) {
                        var i = t[0].getAttribute('type');
                        'radio' === i || 'checkbox' === i
                            ? this.prepareElementContainer(e, t[0], t)
                            : t.forEach((function (i) {
                                return n.prepareElementContainer(e, i, t);
                            }));
                    }
                },
            },
            {
                key: 'prepareElementContainer', value: function (e, t, n) {
                    var i;
                    if ('string' == typeof this.opts.container) {
                        var a = '#' === this.opts.container.charAt(0)
                            ? '[id="'.concat(this.opts.container.substring(1),
                                '"]')
                            : this.opts.container;
                        i = this.core.getFormElement().querySelector(a);
                    } else i = this.opts.container(e, t);
                    var r = document.createElement('div');
                    i.appendChild(r), z(r,
                        { 'fv-plugins-message-container': !0 }), this.core.emit(
                        'plugins.message.placed', {
                            element: t,
                            elements: n,
                            field: e,
                            messageElement: r,
                        }), this.messages.set(t, r);
                },
            },
            {
                key: 'getMessage',
                value: function (e) {
                    return 'string' == typeof e.message
                        ? e.message
                        : e.message[this.core.getLocale()];
                },
            },
            {
                key: 'onValidatorValidated',
                value: function (e) {
                    var t = e.elements, n = e.element.getAttribute('type'),
                        i = 'radio' === n || 'checkbox' === n
                            ? t[0]
                            : e.element;
                    if (this.messages.has(i)) {
                        var a = this.messages.get(i), r = a.querySelector(
                            '[data-field="'.concat(e.field,
                                '"][data-validator="').
                                concat(e.validator, '"]'));
                        if (r || e.result.valid) r && !e.result.valid
                            ? (r.innerHTML = this.getMessage(
                                e.result), this.core.emit(
                                'plugins.message.displayed', {
                                    element: e.element,
                                    field: e.field,
                                    message: e.result.message,
                                    messageElement: r,
                                    meta: e.result.meta,
                                    validator: e.validator,
                                }))
                            : r && e.result.valid && a.removeChild(r); else {
                            var o = document.createElement('div');
                            o.innerHTML = this.getMessage(
                                e.result), o.setAttribute('data-field',
                                e.field), o.setAttribute('data-validator',
                                e.validator), this.opts.clazz &&
                            z(o, c({}, this.opts.clazz, !0)), a.appendChild(
                                o), this.core.emit('plugins.message.displayed',
                                {
                                    element: e.element,
                                    field: e.field,
                                    message: e.result.message,
                                    messageElement: o,
                                    meta: e.result.meta,
                                    validator: e.validator,
                                });
                        }
                    }
                },
            },
            {
                key: 'onValidatorNotValidated',
                value: function (e) {
                    var t = e.elements, n = e.element.getAttribute('type'),
                        i = 'radio' === n || 'checkbox' === n
                            ? t[0]
                            : e.element;
                    if (this.messages.has(i)) {
                        var a = this.messages.get(i), r = a.querySelector(
                            '[data-field="'.concat(e.field,
                                '"][data-validator="').
                                concat(e.validator, '"]'));
                        r && a.removeChild(r);
                    }
                },
            },
            {
                key: 'onElementIgnored',
                value: function (e) {
                    var t = e.elements, n = e.element.getAttribute('type'),
                        i = 'radio' === n || 'checkbox' === n
                            ? t[0]
                            : e.element;
                    if (this.messages.has(i)) {
                        var a = this.messages.get(i);
                        [].slice.call(a.querySelectorAll(
                            '[data-field="'.concat(e.field, '"]'))).
                            forEach((function (e) {a.removeChild(e);}));
                    }
                },
            }], [
            {
                key: 'getClosestContainer',
                value: function (e, t, n) {
                    for (var i = e; i && i !== t &&
                    (i = i.parentElement, !n.test(i.className));) ;
                    return i;
                },
            }]), n;
    }(O), q = function (e) {
        u(n, e);
        var t = m(n);

        function n (e) {
            var i;
            return o(this, n), (i = t.call(this,
                e)).results = new Map, i.containers = new Map, i.opts = Object.assign(
                {}, {
                    defaultMessageContainer: !0,
                    eleInvalidClass: '',
                    eleValidClass: '',
                    rowClasses: '',
                    rowValidatingClass: '',
                }, e), i.elementIgnoredHandler = i.onElementIgnored.bind(
                f(i)), i.elementValidatingHandler = i.onElementValidating.bind(
                f(i)), i.elementValidatedHandler = i.onElementValidated.bind(
                f(i)), i.elementNotValidatedHandler = i.onElementNotValidated.bind(
                f(i)), i.iconPlacedHandler = i.onIconPlaced.bind(
                f(i)), i.fieldAddedHandler = i.onFieldAdded.bind(
                f(i)), i.fieldRemovedHandler = i.onFieldRemoved.bind(
                f(i)), i.messagePlacedHandler = i.onMessagePlaced.bind(f(i)), i;
        }

        return l(n, [
            {
                key: 'install', value: function () {
                    var e, t = this;
                    z(this.core.getFormElement(),
                        (c(e = {}, this.opts.formClass, !0), c(e,
                            'fv-plugins-framework', !0), e)), this.core.on(
                        'core.element.ignored', this.elementIgnoredHandler).
                        on('core.element.validating',
                            this.elementValidatingHandler).
                        on('core.element.validated',
                            this.elementValidatedHandler).
                        on('core.element.notvalidated',
                            this.elementNotValidatedHandler).
                        on('plugins.icon.placed', this.iconPlacedHandler).
                        on('core.field.added', this.fieldAddedHandler).
                        on('core.field.removed',
                            this.fieldRemovedHandler), this.opts.defaultMessageContainer &&
                    (this.core.registerPlugin('___frameworkMessage', new V({
                        clazz: this.opts.messageClass,
                        container: function (e, n) {
                            var i = W(n, 'string' == typeof t.opts.rowSelector
                                ? t.opts.rowSelector
                                : t.opts.rowSelector(e, n));
                            return V.getClosestContainer(n, i,
                                t.opts.rowPattern);
                        },
                    })), this.core.on('plugins.message.placed',
                        this.messagePlacedHandler));
                },
            },
            {
                key: 'uninstall', value: function () {
                    var e;
                    this.results.clear(), this.containers.clear(), z(
                        this.core.getFormElement(),
                        (c(e = {}, this.opts.formClass, !1), c(e,
                            'fv-plugins-framework', !1), e)), this.core.off(
                        'core.element.ignored', this.elementIgnoredHandler).
                        off('core.element.validating',
                            this.elementValidatingHandler).
                        off('core.element.validated',
                            this.elementValidatedHandler).
                        off('core.element.notvalidated',
                            this.elementNotValidatedHandler).
                        off('plugins.icon.placed', this.iconPlacedHandler).
                        off('core.field.added', this.fieldAddedHandler).
                        off('core.field.removed',
                            this.fieldRemovedHandler), this.opts.defaultMessageContainer &&
                    this.core.off('plugins.message.placed',
                        this.messagePlacedHandler);
                },
            },
            { key: 'onIconPlaced', value: function (e) {} },
            { key: 'onMessagePlaced', value: function (e) {} },
            {
                key: 'onFieldAdded',
                value: function (e) {
                    var t = this, n = e.elements;
                    n && (n.forEach((function (e) {
                        var n, i = t.containers.get(e);
                        i && (z(i, (c(n = {}, t.opts.rowInvalidClass, !1), c(n,
                            t.opts.rowValidatingClass, !1), c(n,
                            t.opts.rowValidClass, !1), c(n,
                            'fv-plugins-icon-container',
                            !1), n)), t.containers.delete(e));
                    })), this.prepareFieldContainer(e.field, n));
                },
            },
            {
                key: 'onFieldRemoved', value: function (e) {
                    var t = this;
                    e.elements.forEach((function (e) {
                        var n, i = t.containers.get(e);
                        i && z(i, (c(n = {}, t.opts.rowInvalidClass, !1), c(n,
                            t.opts.rowValidatingClass, !1), c(n,
                            t.opts.rowValidClass, !1), n));
                    }));
                },
            },
            {
                key: 'prepareFieldContainer',
                value: function (e, t) {
                    var n = this;
                    if (t.length) {
                        var i = t[0].getAttribute('type');
                        'radio' === i || 'checkbox' === i
                            ? this.prepareElementContainer(e, t[0])
                            : t.forEach((function (t) {
                                return n.prepareElementContainer(e, t);
                            }));
                    }
                },
            },
            {
                key: 'prepareElementContainer',
                value: function (e, t) {
                    var n, i = W(t, 'string' == typeof this.opts.rowSelector
                        ? this.opts.rowSelector
                        : this.opts.rowSelector(e, t));
                    i !== t && (z(i, (c(n = {}, this.opts.rowClasses, !0), c(n,
                        'fv-plugins-icon-container',
                        !0), n)), this.containers.set(t, i));
                },
            },
            {
                key: 'onElementValidating',
                value: function (e) {
                    var t, n = e.elements, i = e.element.getAttribute('type'),
                        a = 'radio' === i || 'checkbox' === i
                            ? n[0]
                            : e.element, r = this.containers.get(a);
                    r && z(r, (c(t = {}, this.opts.rowInvalidClass, !1), c(t,
                        this.opts.rowValidatingClass, !0), c(t,
                        this.opts.rowValidClass, !1), t));
                },
            },
            {
                key: 'onElementNotValidated',
                value: function (e) {
                    this.removeClasses(e.element, e.elements);
                },
            },
            {
                key: 'onElementIgnored',
                value: function (e) {
                    this.removeClasses(e.element, e.elements);
                },
            },
            {
                key: 'removeClasses',
                value: function (e, t) {
                    var n, i = e.getAttribute('type'),
                        a = 'radio' === i || 'checkbox' === i ? t[0] : e;
                    z(a, (c(n = {}, this.opts.eleValidClass, !1), c(n,
                        this.opts.eleInvalidClass, !1), n));
                    var r, o = this.containers.get(a);
                    o && z(o, (c(r = {}, this.opts.rowInvalidClass, !1), c(r,
                        this.opts.rowValidatingClass, !1), c(r,
                        this.opts.rowValidClass, !1), r));
                },
            },
            {
                key: 'onElementValidated',
                value: function (e) {
                    var t = this, n = e.elements,
                        i = e.element.getAttribute('type'),
                        a = 'radio' === i || 'checkbox' === i
                            ? n[0]
                            : e.element;
                    n.forEach((function (n) {
                        var i;
                        z(n, (c(i = {}, t.opts.eleValidClass, e.valid), c(i,
                            t.opts.eleInvalidClass, !e.valid), i));
                    }));
                    var r = this.containers.get(a);
                    if (r) if (e.valid) {
                        this.results.delete(a);
                        var o, s = !0;
                        if (this.containers.forEach((function (e, n) {
                            e === r && !1 === t.results.get(n) && (s = !1);
                        })), s) z(r,
                            (c(o = {}, this.opts.rowInvalidClass, !1), c(o,
                                this.opts.rowValidatingClass, !1), c(o,
                                this.opts.rowValidClass, !0), o));
                    } else {
                        var l;
                        this.results.set(a, !1), z(r,
                            (c(l = {}, this.opts.rowInvalidClass, !0), c(l,
                                this.opts.rowValidatingClass, !1), c(l,
                                this.opts.rowValidClass, !1), l));
                    }
                },
            }]), n;
    }(O), U = function (e) {
        u(n, e);
        var t = m(n);

        function n (e) {
            var i;
            return o(this, n), (i = t.call(this,
                e)).icons = new Map, i.opts = Object.assign({}, {
                invalid: 'fv-plugins-icon--invalid',
                onPlaced: function () {},
                onSet: function () {},
                valid: 'fv-plugins-icon--valid',
                validating: 'fv-plugins-icon--validating',
            }, e), i.elementValidatingHandler = i.onElementValidating.bind(
                f(i)), i.elementValidatedHandler = i.onElementValidated.bind(
                f(i)), i.elementNotValidatedHandler = i.onElementNotValidated.bind(
                f(i)), i.elementIgnoredHandler = i.onElementIgnored.bind(
                f(i)), i.fieldAddedHandler = i.onFieldAdded.bind(f(i)), i;
        }

        return l(n, [
            {
                key: 'install',
                value: function () {
                    this.core.on('core.element.validating',
                        this.elementValidatingHandler).
                        on('core.element.validated',
                            this.elementValidatedHandler).
                        on('core.element.notvalidated',
                            this.elementNotValidatedHandler).
                        on('core.element.ignored', this.elementIgnoredHandler).
                        on('core.field.added', this.fieldAddedHandler);
                },
            },
            {
                key: 'uninstall',
                value: function () {
                    this.icons.forEach((function (e) {
                        return e.parentNode.removeChild(e);
                    })), this.icons.clear(), this.core.off(
                        'core.element.validating',
                        this.elementValidatingHandler).
                        off('core.element.validated',
                            this.elementValidatedHandler).
                        off('core.element.notvalidated',
                            this.elementNotValidatedHandler).
                        off('core.element.ignored', this.elementIgnoredHandler).
                        off('core.field.added', this.fieldAddedHandler);
                },
            },
            {
                key: 'onFieldAdded',
                value: function (e) {
                    var t = this, n = e.elements;
                    n && (n.forEach((function (e) {
                        var n = t.icons.get(e);
                        n && (n.parentNode.removeChild(n), t.icons.delete(e));
                    })), this.prepareFieldIcon(e.field, n));
                },
            },
            {
                key: 'prepareFieldIcon', value: function (e, t) {
                    var n = this;
                    if (t.length) {
                        var i = t[0].getAttribute('type');
                        'radio' === i || 'checkbox' === i
                            ? this.prepareElementIcon(e, t[0])
                            : t.forEach(
                            (function (t) {
                                return n.prepareElementIcon(e, t);
                            }));
                    }
                },
            },
            {
                key: 'prepareElementIcon',
                value: function (e, t) {
                    var n = document.createElement('i');
                    n.setAttribute('data-field', e), t.parentNode.insertBefore(
                        n, t.nextSibling), z(n, { 'fv-plugins-icon': !0 });
                    var i = {
                        classes: {
                            invalid: this.opts.invalid,
                            valid: this.opts.valid,
                            validating: this.opts.validating,
                        }, element: t, field: e, iconElement: n,
                    };
                    this.core.emit('plugins.icon.placed',
                        i), this.opts.onPlaced(i), this.icons.set(t, n);
                },
            },
            {
                key: 'onElementValidating',
                value: function (e) {
                    var t, n = this.setClasses(e.field, e.element, e.elements,
                        (c(t = {}, this.opts.invalid, !1), c(t, this.opts.valid,
                            !1), c(t, this.opts.validating, !0), t)), i = {
                        element: e.element,
                        field: e.field,
                        iconElement: n,
                        status: 'Validating',
                    };
                    this.core.emit('plugins.icon.set', i), this.opts.onSet(i);
                },
            },
            {
                key: 'onElementValidated',
                value: function (e) {
                    var t, n = this.setClasses(e.field, e.element, e.elements,
                        (c(t = {}, this.opts.invalid, !e.valid), c(t,
                            this.opts.valid, e.valid), c(t,
                            this.opts.validating, !1), t)), i = {
                        element: e.element,
                        field: e.field,
                        iconElement: n,
                        status: e.valid ? 'Valid' : 'Invalid',
                    };
                    this.core.emit('plugins.icon.set', i), this.opts.onSet(i);
                },
            },
            {
                key: 'onElementNotValidated',
                value: function (e) {
                    var t, n = this.setClasses(e.field, e.element, e.elements,
                        (c(t = {}, this.opts.invalid, !1), c(t, this.opts.valid,
                            !1), c(t, this.opts.validating, !1), t)), i = {
                        element: e.element,
                        field: e.field,
                        iconElement: n,
                        status: 'NotValidated',
                    };
                    this.core.emit('plugins.icon.set', i), this.opts.onSet(i);
                },
            },
            {
                key: 'onElementIgnored',
                value: function (e) {
                    var t, n = this.setClasses(e.field, e.element, e.elements,
                        (c(t = {}, this.opts.invalid, !1), c(t, this.opts.valid,
                            !1), c(t, this.opts.validating, !1), t)), i = {
                        element: e.element,
                        field: e.field,
                        iconElement: n,
                        status: 'Ignored',
                    };
                    this.core.emit('plugins.icon.set', i), this.opts.onSet(i);
                },
            },
            {
                key: 'setClasses',
                value: function (e, t, n, i) {
                    var a = t.getAttribute('type'),
                        r = 'radio' === a || 'checkbox' === a ? n[0] : t;
                    if (this.icons.has(r)) {
                        var o = this.icons.get(r);
                        return z(o, i), o;
                    }
                    return null;
                },
            }]), n;
    }(O), X = function (e) {
        u(n, e);
        var t = m(n);

        function n (e) {
            var i;
            return o(this, n), (i = t.call(this,
                e)).invalidFields = new Map, i.opts = Object.assign({},
                { enabled: !0 },
                e), i.validatorHandler = i.onValidatorValidated.bind(
                f(i)), i.shouldValidateFilter = i.shouldValidate.bind(
                f(i)), i.fieldAddedHandler = i.onFieldAdded.bind(
                f(i)), i.elementNotValidatedHandler = i.onElementNotValidated.bind(
                f(i)), i.elementValidatingHandler = i.onElementValidating.bind(
                f(i)), i;
        }

        return l(n, [
            {
                key: 'install',
                value: function () {
                    this.core.on('core.validator.validated',
                        this.validatorHandler).
                        on('core.field.added', this.fieldAddedHandler).
                        on('core.element.notvalidated',
                            this.elementNotValidatedHandler).
                        on('core.element.validating',
                            this.elementValidatingHandler).
                        registerFilter('field-should-validate',
                            this.shouldValidateFilter);
                },
            },
            {
                key: 'uninstall',
                value: function () {
                    this.invalidFields.clear(), this.core.off(
                        'core.validator.validated', this.validatorHandler).
                        off('core.field.added', this.fieldAddedHandler).
                        off('core.element.notvalidated',
                            this.elementNotValidatedHandler).
                        off('core.element.validating',
                            this.elementValidatingHandler).
                        deregisterFilter('field-should-validate',
                            this.shouldValidateFilter);
                },
            },
            {
                key: 'shouldValidate',
                value: function (e, t, n, i) {
                    return !((!0 === this.opts.enabled || !0 ===
                        this.opts.enabled[e]) && this.invalidFields.has(t) &&
                        !!this.invalidFields.get(t).length && -1 ===
                        this.invalidFields.get(t).indexOf(i));
                },
            },
            {
                key: 'onValidatorValidated',
                value: function (e) {
                    var t = this.invalidFields.has(e.element)
                        ? this.invalidFields.get(e.element)
                        : [], n = t.indexOf(e.validator);
                    e.result.valid && n >= 0
                        ? t.splice(n, 1)
                        : e.result.valid || -1 !== n ||
                        t.push(e.validator), this.invalidFields.set(e.element,
                        t);
                },
            },
            {
                key: 'onFieldAdded',
                value: function (e) {
                    e.elements && this.clearInvalidFields(e.elements);
                },
            },
            {
                key: 'onElementNotValidated',
                value: function (e) {this.clearInvalidFields(e.elements);},
            },
            {
                key: 'onElementValidating',
                value: function (e) {this.clearInvalidFields(e.elements);},
            },
            {
                key: 'clearInvalidFields', value: function (e) {
                    var t = this;
                    e.forEach(
                        (function (e) {return t.invalidFields.delete(e);}));
                },
            }]), n;
    }(O), $ = function (e) {
        u(n, e);
        var t = m(n);

        function n (e) {
            var i;
            return o(this, n), (i = t.call(this,
                e)).isFormValid = !1, i.opts = Object.assign({}, {
                aspNetButton: !1,
                buttons: function (e) {
                    return [].slice.call(e.querySelectorAll(
                        '[type="submit"]:not([formnovalidate])'));
                },
            }, e), i.submitHandler = i.handleSubmitEvent.bind(
                f(i)), i.buttonClickHandler = i.handleClickEvent.bind(f(i)), i;
        }

        return l(n, [
            {
                key: 'install', value: function () {
                    var e = this;
                    if (this.core.getFormElement() instanceof HTMLFormElement) {
                        var t = this.core.getFormElement();
                        this.submitButtons = this.opts.buttons(
                            t), t.setAttribute('novalidate',
                            'novalidate'), t.addEventListener('submit',
                            this.submitHandler), this.hiddenClickedEle = document.createElement(
                            'input'), this.hiddenClickedEle.setAttribute('type',
                            'hidden'), t.appendChild(
                            this.hiddenClickedEle), this.submitButtons.forEach(
                            (function (t) {
                                t.addEventListener('click',
                                    e.buttonClickHandler);
                            }));
                    }
                },
            },
            {
                key: 'uninstall',
                value: function () {
                    var e = this, t = this.core.getFormElement();
                    t instanceof HTMLFormElement &&
                    t.removeEventListener('submit',
                        this.submitHandler), this.submitButtons.forEach(
                        (function (t) {
                            t.removeEventListener('click',
                                e.buttonClickHandler);
                        })), this.hiddenClickedEle.parentElement.removeChild(
                        this.hiddenClickedEle);
                },
            },
            {
                key: 'handleSubmitEvent',
                value: function (e) {this.validateForm(e);},
            },
            {
                key: 'handleClickEvent',
                value: function (e) {
                    if (e.currentTarget instanceof
                        HTMLElement) if (this.opts.aspNetButton && !0 ===
                        this.isFormValid) ; else {
                        this.core.getFormElement().
                            removeEventListener('submit',
                                this.submitHandler), this.clickedButton = e.target;
                        var t = this.clickedButton.getAttribute('name'),
                            n = this.clickedButton.getAttribute('value');
                        t && n && (this.hiddenClickedEle.setAttribute('name',
                            t), this.hiddenClickedEle.setAttribute('value',
                            n)), this.validateForm(e);
                    }
                },
            },
            {
                key: 'validateForm', value: function (e) {
                    var t = this;
                    e.preventDefault(), this.core.validate().
                        then((function (e) {
                            'Valid' === e && t.opts.aspNetButton &&
                            !t.isFormValid && t.clickedButton &&
                            (t.isFormValid = !0, t.clickedButton.removeEventListener(
                                'click',
                                t.buttonClickHandler), t.clickedButton.click());
                        }));
                },
            }]), n;
    }(O), G = function (e) {
        u(n, e);
        var t = m(n);

        function n (e) {
            var i;
            return o(this, n), (i = t.call(this,
                e)).messages = new Map, i.opts = Object.assign({},
                { placement: 'top', trigger: 'click' },
                e), i.iconPlacedHandler = i.onIconPlaced.bind(
                f(i)), i.validatorValidatedHandler = i.onValidatorValidated.bind(
                f(i)), i.elementValidatedHandler = i.onElementValidated.bind(
                f(i)), i.documentClickHandler = i.onDocumentClicked.bind(
                f(i)), i;
        }

        return l(n, [
            {
                key: 'install',
                value: function () {
                    this.tip = document.createElement('div'), z(this.tip,
                        c({ 'fv-plugins-tooltip': !0 },
                            'fv-plugins-tooltip--'.concat(this.opts.placement),
                            !0)), document.body.appendChild(
                        this.tip), this.core.on('plugins.icon.placed',
                        this.iconPlacedHandler).
                        on('core.validator.validated',
                            this.validatorValidatedHandler).
                        on('core.element.validated',
                            this.elementValidatedHandler), 'click' ===
                    this.opts.trigger && document.addEventListener('click',
                        this.documentClickHandler);
                },
            },
            {
                key: 'uninstall',
                value: function () {
                    this.messages.clear(), document.body.removeChild(
                        this.tip), this.core.off('plugins.icon.placed',
                        this.iconPlacedHandler).
                        off('core.validator.validated',
                            this.validatorValidatedHandler).
                        off('core.element.validated',
                            this.elementValidatedHandler), 'click' ===
                    this.opts.trigger && document.removeEventListener('click',
                        this.documentClickHandler);
                },
            },
            {
                key: 'onIconPlaced', value: function (e) {
                    var t = this;
                    switch (z(e.iconElement,
                        { 'fv-plugins-tooltip-icon': !0 }), this.opts.trigger) {
                        case'hover':
                            e.iconElement.addEventListener('mouseenter',
                                (function (n) {
                                    return t.show(e.element, n);
                                })), e.iconElement.addEventListener(
                                'mouseleave',
                                (function (e) {return t.hide();}));
                            break;
                        case'click':
                        default:
                            e.iconElement.addEventListener('click',
                                (function (n) {return t.show(e.element, n);}));
                    }
                },
            },
            {
                key: 'onValidatorValidated',
                value: function (e) {
                    if (!e.result.valid) {
                        var t = e.elements, n = e.element.getAttribute('type'),
                            i = 'radio' === n || 'checkbox' === n
                                ? t[0]
                                : e.element,
                            a = 'string' == typeof e.result.message
                                ? e.result.message
                                : e.result.message[this.core.getLocale()];
                        this.messages.set(i, a);
                    }
                },
            },
            {
                key: 'onElementValidated',
                value: function (e) {
                    if (e.valid) {
                        var t = e.elements, n = e.element.getAttribute('type'),
                            i = 'radio' === n || 'checkbox' === n
                                ? t[0]
                                : e.element;
                        this.messages.delete(i);
                    }
                },
            },
            { key: 'onDocumentClicked', value: function (e) {this.hide();} },
            {
                key: 'show', value: function (e, t) {
                    if (t.preventDefault(), t.stopPropagation(), this.messages.has(
                        e)) {
                        z(this.tip,
                            { 'fv-plugins-tooltip--hide': !1 }), this.tip.innerHTML = '<div class="fv-plugins-tooltip__content">'.concat(
                            this.messages.get(e), '</div>');
                        var n = t.target.getBoundingClientRect(),
                            i = this.tip.getBoundingClientRect(), a = i.height,
                            r = i.width, o = 0, s = 0;
                        switch (this.opts.placement) {
                            case'bottom':
                                o = n.top + n.height, s = n.left + n.width / 2 -
                                    r / 2;
                                break;
                            case'bottom-left':
                                o = n.top + n.height, s = n.left;
                                break;
                            case'bottom-right':
                                o = n.top + n.height, s = n.left + n.width - r;
                                break;
                            case'left':
                                o = n.top + n.height / 2 - a / 2, s = n.left -
                                    r;
                                break;
                            case'right':
                                o = n.top + n.height / 2 - a / 2, s = n.left +
                                    n.width;
                                break;
                            case'top-left':
                                o = n.top - a, s = n.left;
                                break;
                            case'top-right':
                                o = n.top - a, s = n.left + n.width - r;
                                break;
                            case'top':
                            default:
                                o = n.top - a, s = n.left + n.width / 2 - r / 2;
                        }
                        o += window.pageYOffset ||
                            document.documentElement.scrollTop ||
                            document.body.scrollTop ||
                            0, s += window.pageXOffset ||
                            document.documentElement.scrollLeft ||
                            document.body.scrollLeft ||
                            0, this.tip.setAttribute('style',
                            'top: '.concat(o, 'px; left: ').concat(s, 'px'));
                    }
                },
            },
            {
                key: 'hide',
                value: function () {
                    z(this.tip, { 'fv-plugins-tooltip--hide': !0 });
                },
            }]), n;
    }(O), Z = function (e) {
        u(n, e);
        var t = m(n);

        function n (e) {
            var i;
            o(this, n), (i = t.call(this, e)).handlers = [], i.timers = new Map;
            var a = document.createElement('div');
            return i.defaultEvent = 'oninput' in a
                ? 'input'
                : 'keyup', i.opts = Object.assign({},
                { delay: 0, event: i.defaultEvent, threshold: 0 },
                e), i.fieldAddedHandler = i.onFieldAdded.bind(
                f(i)), i.fieldRemovedHandler = i.onFieldRemoved.bind(f(i)), i;
        }

        return l(n, [
            {
                key: 'install',
                value: function () {
                    this.core.on('core.field.added', this.fieldAddedHandler).
                        on('core.field.removed', this.fieldRemovedHandler);
                },
            },
            {
                key: 'uninstall',
                value: function () {
                    this.handlers.forEach((function (e) {
                        return e.element.removeEventListener(e.event,
                            e.handler);
                    })), this.handlers = [], this.timers.forEach((function (e) {
                        return window.clearTimeout(e);
                    })), this.timers.clear(), this.core.off('core.field.added',
                        this.fieldAddedHandler).
                        off('core.field.removed', this.fieldRemovedHandler);
                },
            },
            {
                key: 'prepareHandler', value: function (e, t) {
                    var n = this;
                    t.forEach((function (t) {
                        var i = [];
                        if (n.opts.event && !1 ===
                            n.opts.event[e]) i = []; else if (n.opts.event &&
                            n.opts.event[e]) i = n.opts.event[e].split(
                            ' '); else if ('string' == typeof n.opts.event &&
                            n.opts.event !==
                            n.defaultEvent) i = n.opts.event.split(' '); else {
                            var a = t.getAttribute('type'),
                                r = t.tagName.toLowerCase();
                            i = [
                                'radio' === a || 'checkbox' === a || 'file' ===
                                a || 'select' === r ? 'change' : n.ieVersion >=
                                10 && t.getAttribute('placeholder')
                                    ? 'keyup'
                                    : n.defaultEvent];
                        }
                        i.forEach((function (i) {
                            var a = function (i) {
                                return n.handleEvent(i, e, t);
                            };
                            n.handlers.push({
                                element: t,
                                event: i,
                                field: e,
                                handler: a,
                            }), t.addEventListener(i, a);
                        }));
                    }));
                },
            },
            {
                key: 'handleEvent', value: function (e, t, n) {
                    var i = this;
                    if (this.exceedThreshold(t, n) && this.core.executeFilter(
                        'plugins-trigger-should-validate', !0, [
                            t,
                            n])) {
                        var a = function () {
                            return i.core.validateElement(t, n).
                                then((function (a) {
                                    i.core.emit('plugins.trigger.executed',
                                        { element: n, event: e, field: t });
                                }));
                        }, r = this.opts.delay[t] || this.opts.delay;
                        if (0 === r) a(); else {
                            var o = this.timers.get(n);
                            o && window.clearTimeout(o), this.timers.set(n,
                                window.setTimeout(a, 1e3 * r));
                        }
                    }
                },
            },
            {
                key: 'onFieldAdded',
                value: function (e) {
                    this.handlers.filter(
                        (function (t) {return t.field === e.field;})).
                        forEach((function (e) {
                            return e.element.removeEventListener(e.event,
                                e.handler);
                        })), this.prepareHandler(e.field, e.elements);
                },
            },
            {
                key: 'onFieldRemoved',
                value: function (e) {
                    this.handlers.filter((function (t) {
                        return t.field === e.field &&
                            e.elements.indexOf(t.element) >= 0;
                    })).
                        forEach((function (e) {
                            return e.element.removeEventListener(e.event,
                                e.handler);
                        }));
                },
            },
            {
                key: 'exceedThreshold',
                value: function (e, t) {
                    var n = 0 !== this.opts.threshold[e] && 0 !==
                        this.opts.threshold &&
                        (this.opts.threshold[e] || this.opts.threshold);
                    if (!n) return !0;
                    var i = t.getAttribute('type');
                    return -1 !== [
                            'button',
                            'checkbox',
                            'file',
                            'hidden',
                            'image',
                            'radio',
                            'reset',
                            'submit'].indexOf(i) ||
                        this.core.getElementValue(e, t).length >= n;
                },
            }]), n;
    }(O), K = {
        Alias: P,
        Aria: I,
        Declarative: j,
        DefaultSubmit: N,
        Dependency: H,
        Excluded: F,
        FieldStatus: R,
        Framework: q,
        Icon: U,
        Message: V,
        Sequence: X,
        SubmitButton: $,
        Tooltip: G,
        Trigger: Z,
    };
    var J = {
        call: x,
        classSet: z,
        closest: W,
        fetch: k,
        format: b,
        hasClass: function (e, t) {
            return e.classList
                ? e.classList.contains(t)
                : new RegExp('(^| )'.concat(t, '( |$)'), 'gi').test(
                    e.className);
        },
        isValidDate: w,
    };
    e.Plugin = O, e.algorithms = r, e.filters = Y, e.formValidation = function (
        e, t) {
        var n = Object.assign({}, { fields: {}, locale: 'en_US', plugins: {} },
            t), i = new E(e, n.fields);
        return i.setLocale(n.locale, n.localization), Object.keys(n.plugins).
            forEach((function (e) {
                return i.registerPlugin(e, n.plugins[e]);
            })), Object.keys(C).
            forEach((function (e) {
                return i.registerValidator(e, C[e]);
            })), Object.keys(n.fields).
            forEach((function (e) {return i.addField(e, n.fields[e]);})), i;
    }, e.locales = {}, e.plugins = K, e.utils = J, e.validators = C, Object.defineProperty(
        e, '__esModule', { value: !0 });
})), function (e, t) {
    'object' == typeof exports && 'undefined' != typeof module
        ? module.exports = t()
        : 'function' == typeof define && define.amd ? define(t) : ((e = e ||
        self).FormValidation = e.FormValidation ||
        {}, e.FormValidation.plugins = e.FormValidation.plugins ||
        {}, e.FormValidation.plugins.Bootstrap5 = t());
}(this, (function () {
    'use strict';

    function e (e, t) {
        for (var n = 0; n < t.length; n++) {
            var i = t[n];
            i.enumerable = i.enumerable || !1, i.configurable = !0, 'value' in
            i && (i.writable = !0), Object.defineProperty(e, i.key, i);
        }
    }

    function t (e) {
        return (t = Object.setPrototypeOf
            ? Object.getPrototypeOf
            : function (e) {return e.__proto__ || Object.getPrototypeOf(e);})(
            e);
    }

    function n (e, t) {
        return (n = Object.setPrototypeOf ||
            function (e, t) {return e.__proto__ = t, e;})(e, t);
    }

    function i (e) {
        if (void 0 === e) throw new ReferenceError(
            'this hasn\'t been initialised - super() hasn\'t been called');
        return e;
    }

    function a (e, t) {
        return !t || 'object' != typeof t && 'function' != typeof t ? i(e) : t;
    }

    function r (e) {
        var n = 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 (e) {return !1;}
        }();
        return function () {
            var i, r = t(e);
            if (n) {
                var o = t(this).constructor;
                i = Reflect.construct(r, arguments, o);
            } else i = r.apply(this, arguments);
            return a(this, i);
        };
    }

    function o (e, n, i) {
        return (o = 'undefined' != typeof Reflect && Reflect.get
            ? Reflect.get
            : function (e, n, i) {
                var a = function (
                    e, n) {
                    for (; !Object.prototype.hasOwnProperty.call(e, n) &&
                           null !== (e = t(e));) ;
                    return e;
                }(e, n);
                if (a) {
                    var r = Object.getOwnPropertyDescriptor(a, n);
                    return r.get ? r.get.call(i) : r.value;
                }
            })(e, n, i || e);
    }

    var s = FormValidation.utils.classSet, l = FormValidation.utils.hasClass;
    return function (a) {
        !function (e, t) {
            if ('function' != typeof t && null !== t) throw new TypeError(
                'Super expression must either be null or a function');
            e.prototype = Object.create(t && t.prototype, {
                constructor: {
                    value: e,
                    writable: !0,
                    configurable: !0,
                },
            }), t && n(e, t);
        }(f, a);
        var c, u, d, h = r(f);

        function f (e) {
            var t;
            return function (e, t) {
                if (!(e instanceof t)) throw new TypeError(
                    'Cannot call a class as a function');
            }(this, f), (t = h.call(this, Object.assign({}, {
                eleInvalidClass: 'is-invalid',
                eleValidClass: 'is-valid',
                formClass: 'fv-plugins-bootstrap5',
                rowInvalidClass: 'fv-plugins-bootstrap5-row-invalid',
                rowPattern: /^(.*)(col|offset)(-(sm|md|lg|xl))*-[0-9]+(.*)$/,
                rowSelector: '.row',
                rowValidClass: 'fv-plugins-bootstrap5-row-valid',
            }, e))).eleValidatedHandler = t.handleElementValidated.bind(
                i(t)), t;
        }

        return c = f, (u = [
            {
                key: 'install',
                value: function () {
                    o(t(f.prototype), 'install', this).
                        call(this), this.core.on('core.element.validated',
                        this.eleValidatedHandler);
                },
            },
            {
                key: 'uninstall',
                value: function () {
                    o(t(f.prototype), 'install', this).
                        call(this), this.core.off('core.element.validated',
                        this.eleValidatedHandler);
                },
            },
            {
                key: 'handleElementValidated',
                value: function (e) {
                    var t = e.element.getAttribute('type');
                    if (('checkbox' === t || 'radio' === t) &&
                        e.elements.length > 1 && l(e.element,
                            'form-check-input')) {
                        var n = e.element.parentElement;
                        l(n, 'form-check') &&
                        s(n, { 'is-invalid': !e.valid, 'is-valid': e.valid });
                    }
                },
            },
            {
                key: 'onIconPlaced',
                value: function (e) {
                    s(e.element, { 'fv-plugins-icon-input': !0 });
                    var t = e.element.parentElement;
                    l(t, 'input-group') &&
                    (t.parentElement.insertBefore(e.iconElement,
                        t.nextSibling), e.element.nextElementSibling &&
                    l(e.element.nextElementSibling, 'input-group-text') &&
                    s(e.iconElement, { 'fv-plugins-icon-input-group': !0 }));
                    var n = e.element.getAttribute('type');
                    if ('checkbox' === n || 'radio' === n) {
                        var i = t.parentElement;
                        l(t, 'form-check') ? (s(e.iconElement,
                            { 'fv-plugins-icon-check': !0 }), t.parentElement.insertBefore(
                            e.iconElement, t.nextSibling)) : l(t.parentElement,
                            'form-check') && (s(e.iconElement,
                            { 'fv-plugins-icon-check': !0 }), i.parentElement.insertBefore(
                            e.iconElement, i.nextSibling));
                    }
                },
            },
            {
                key: 'onMessagePlaced',
                value: function (e) {
                    e.messageElement.classList.add('invalid-feedback');
                    var t = e.element.parentElement;
                    if (l(t, 'input-group')) return t.appendChild(
                        e.messageElement), void s(t, { 'has-validation': !0 });
                    var n = e.element.getAttribute('type');
                    'checkbox' !== n && 'radio' !== n ||
                    !l(e.element, 'form-check-input') || l(t, 'form-check') ||
                    e.elements[e.elements.length - 1].parentElement.appendChild(
                        e.messageElement);
                },
            }]) && e(c.prototype, u), d && e(c, d), f;
    }(FormValidation.plugins.Framework);
})),
    /**
     * @version: 3.1
     * @author: Dan Grossman http://www.dangrossman.info/
     * @copyright: Copyright (c) 2012-2019 Dan Grossman. All rights reserved.
     * @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php
     * @website: http://www.daterangepicker.com/
     */
    function (e, t) {
        if ('function' == typeof define && define.amd) define(
            ['moment', 'jquery'], (function (e, n) {
                return n.fn || (n.fn = {}), 'function' != typeof e &&
                e.hasOwnProperty('default') && (e = e.default), t(e, n);
            })); else if ('object' == typeof module && module.exports) {
            var n = 'undefined' != typeof window
                ? window.jQuery
                : void 0;
            n || (n = require('jquery')).fn || (n.fn = {});
            var i = 'undefined' != typeof window && void 0 !== window.moment
                ? window.moment
                : require('moment');
            module.exports = t(i, n);
        } else e.daterangepicker = t(e.moment, e.jQuery);
    }(this, (function (e, t) {
        var n = function (n, i, a) {
            if (this.parentEl = 'body', this.element = t(
                n), this.startDate = e().startOf('day'), this.endDate = e().
                endOf(
                    'day'), this.minDate = !1, this.maxDate = !1, this.maxSpan = !1, this.autoApply = !1, this.singleDatePicker = !1, this.showDropdowns = !1, this.minYear = e().
                subtract(100, 'year').
                format('YYYY'), this.maxYear = e().
                add(100, 'year').
                format(
                    'YYYY'), this.showWeekNumbers = !1, this.showISOWeekNumbers = !1, this.showCustomRangeLabel = !0, this.timePicker = !1, this.timePicker24Hour = !1, this.timePickerIncrement = 1, this.timePickerSeconds = !1, this.linkedCalendars = !0, this.autoUpdateInput = !0, this.alwaysShowCalendars = !1, this.ranges = {}, this.opens = 'right', this.element.hasClass(
                'pull-right') &&
            (this.opens = 'left'), this.drops = 'down', this.element.hasClass(
                'dropup') &&
            (this.drops = 'up'), this.buttonClasses = 'btn btn-sm', this.applyButtonClasses = 'btn-primary', this.cancelButtonClasses = 'btn-default', this.locale = {
                direction: 'ltr',
                format: e.localeData().longDateFormat('L'),
                separator: ' - ',
                applyLabel: 'Apply',
                cancelLabel: 'Cancel',
                weekLabel: 'W',
                customRangeLabel: 'Custom Range',
                daysOfWeek: e.weekdaysMin(),
                monthNames: e.monthsShort(),
                firstDay: e.localeData().firstDayOfWeek(),
            }, this.callback = function () {}, this.isShowing = !1, this.leftCalendar = {}, this.rightCalendar = {}, 'object' ==
            typeof i && null !== i || (i = {}), 'string' ==
            typeof (i = t.extend(this.element.data(), i)).template ||
            i.template instanceof t ||
            (i.template = '<div class="daterangepicker"><div class="ranges"></div><div class="drp-calendar left"><div class="calendar-table"></div><div class="calendar-time"></div></div><div class="drp-calendar right"><div class="calendar-table"></div><div class="calendar-time"></div></div><div class="drp-buttons"><span class="drp-selected"></span><button class="cancelBtn" type="button"></button><button class="applyBtn" disabled="disabled" type="button"></button> </div></div>'), this.parentEl = i.parentEl &&
            t(i.parentEl).length ? t(i.parentEl) : t(
                this.parentEl), this.container = t(i.template).
                appendTo(this.parentEl), 'object' == typeof i.locale &&
            ('string' == typeof i.locale.direction &&
            (this.locale.direction = i.locale.direction), 'string' ==
            typeof i.locale.format &&
            (this.locale.format = i.locale.format), 'string' ==
            typeof i.locale.separator &&
            (this.locale.separator = i.locale.separator), 'object' ==
            typeof i.locale.daysOfWeek &&
            (this.locale.daysOfWeek = i.locale.daysOfWeek.slice()), 'object' ==
            typeof i.locale.monthNames &&
            (this.locale.monthNames = i.locale.monthNames.slice()), 'number' ==
            typeof i.locale.firstDay &&
            (this.locale.firstDay = i.locale.firstDay), 'string' ==
            typeof i.locale.applyLabel &&
            (this.locale.applyLabel = i.locale.applyLabel), 'string' ==
            typeof i.locale.cancelLabel &&
            (this.locale.cancelLabel = i.locale.cancelLabel), 'string' ==
            typeof i.locale.weekLabel &&
            (this.locale.weekLabel = i.locale.weekLabel), 'string' ==
            typeof i.locale.customRangeLabel)) {
                (f = document.createElement(
                    'textarea')).innerHTML = i.locale.customRangeLabel;
                var r = f.value;
                this.locale.customRangeLabel = r;
            }
            if (this.container.addClass(this.locale.direction), 'string' ==
            typeof i.startDate &&
            (this.startDate = e(i.startDate, this.locale.format)), 'string' ==
            typeof i.endDate &&
            (this.endDate = e(i.endDate, this.locale.format)), 'string' ==
            typeof i.minDate &&
            (this.minDate = e(i.minDate, this.locale.format)), 'string' ==
            typeof i.maxDate &&
            (this.maxDate = e(i.maxDate, this.locale.format)), 'object' ==
            typeof i.startDate && (this.startDate = e(i.startDate)), 'object' ==
            typeof i.endDate && (this.endDate = e(i.endDate)), 'object' ==
            typeof i.minDate && (this.minDate = e(i.minDate)), 'object' ==
            typeof i.maxDate && (this.maxDate = e(i.maxDate)), this.minDate &&
            this.startDate.isBefore(this.minDate) &&
            (this.startDate = this.minDate.clone()), this.maxDate &&
            this.endDate.isAfter(this.maxDate) &&
            (this.endDate = this.maxDate.clone()), 'string' ==
            typeof i.applyButtonClasses &&
            (this.applyButtonClasses = i.applyButtonClasses), 'string' ==
            typeof i.applyClass &&
            (this.applyButtonClasses = i.applyClass), 'string' ==
            typeof i.cancelButtonClasses &&
            (this.cancelButtonClasses = i.cancelButtonClasses), 'string' ==
            typeof i.cancelClass &&
            (this.cancelButtonClasses = i.cancelClass), 'object' ==
            typeof i.maxSpan && (this.maxSpan = i.maxSpan), 'object' ==
            typeof i.dateLimit && (this.maxSpan = i.dateLimit), 'string' ==
            typeof i.opens && (this.opens = i.opens), 'string' ==
            typeof i.drops && (this.drops = i.drops), 'boolean' ==
            typeof i.showWeekNumbers &&
            (this.showWeekNumbers = i.showWeekNumbers), 'boolean' ==
            typeof i.showISOWeekNumbers &&
            (this.showISOWeekNumbers = i.showISOWeekNumbers), 'string' ==
            typeof i.buttonClasses &&
            (this.buttonClasses = i.buttonClasses), 'object' ==
            typeof i.buttonClasses &&
            (this.buttonClasses = i.buttonClasses.join(' ')), 'boolean' ==
            typeof i.showDropdowns &&
            (this.showDropdowns = i.showDropdowns), 'number' ==
            typeof i.minYear && (this.minYear = i.minYear), 'number' ==
            typeof i.maxYear && (this.maxYear = i.maxYear), 'boolean' ==
            typeof i.showCustomRangeLabel &&
            (this.showCustomRangeLabel = i.showCustomRangeLabel), 'boolean' ==
            typeof i.singleDatePicker &&
            (this.singleDatePicker = i.singleDatePicker, this.singleDatePicker &&
            (this.endDate = this.startDate.clone())), 'boolean' ==
            typeof i.timePicker &&
            (this.timePicker = i.timePicker), 'boolean' ==
            typeof i.timePickerSeconds &&
            (this.timePickerSeconds = i.timePickerSeconds), 'number' ==
            typeof i.timePickerIncrement &&
            (this.timePickerIncrement = i.timePickerIncrement), 'boolean' ==
            typeof i.timePicker24Hour &&
            (this.timePicker24Hour = i.timePicker24Hour), 'boolean' ==
            typeof i.autoApply && (this.autoApply = i.autoApply), 'boolean' ==
            typeof i.autoUpdateInput &&
            (this.autoUpdateInput = i.autoUpdateInput), 'boolean' ==
            typeof i.linkedCalendars &&
            (this.linkedCalendars = i.linkedCalendars), 'function' ==
            typeof i.isInvalidDate &&
            (this.isInvalidDate = i.isInvalidDate), 'function' ==
            typeof i.isCustomDate &&
            (this.isCustomDate = i.isCustomDate), 'boolean' ==
            typeof i.alwaysShowCalendars &&
            (this.alwaysShowCalendars = i.alwaysShowCalendars), 0 !=
            this.locale.firstDay) for (var o = this.locale.firstDay; o >
            0;) this.locale.daysOfWeek.push(
                this.locale.daysOfWeek.shift()), o--;
            var s, l, c;
            if (void 0 === i.startDate && void 0 === i.endDate &&
                t(this.element).is(':text')) {
                var u = t(this.element).val(),
                    d = u.split(this.locale.separator);
                s = l = null, 2 == d.length
                    ? (s = e(d[0], this.locale.format), l = e(d[1],
                        this.locale.format))
                    : this.singleDatePicker && '' !== u &&
                    (s = e(u, this.locale.format), l = e(u,
                        this.locale.format)), null !== s && null !== l &&
                (this.setStartDate(s), this.setEndDate(l));
            }
            if ('object' == typeof i.ranges) {
                for (c in i.ranges) {
                    s = 'string' == typeof i.ranges[c][0] ? e(i.ranges[c][0],
                        this.locale.format) : e(i.ranges[c][0]), l = 'string' ==
                    typeof i.ranges[c][1] ? e(i.ranges[c][1],
                        this.locale.format) : e(i.ranges[c][1]), this.minDate &&
                    s.isBefore(this.minDate) && (s = this.minDate.clone());
                    var h = this.maxDate;
                    if (this.maxSpan && h &&
                    s.clone().add(this.maxSpan).isAfter(h) &&
                    (h = s.clone().add(this.maxSpan)), h && l.isAfter(h) &&
                    (l = h.clone()), !(this.minDate && l.isBefore(this.minDate,
                        this.timepicker ? 'minute' : 'day') || h &&
                        s.isAfter(h, this.timepicker ? 'minute' : 'day'))) {
                        var f;
                        (f = document.createElement('textarea')).innerHTML = c;
                        r = f.value;
                        this.ranges[r] = [s, l];
                    }
                }
                var p = '<ul>';
                for (c in this.ranges) p += '<li data-range-key="' + c + '">' +
                    c + '</li>';
                this.showCustomRangeLabel &&
                (p += '<li data-range-key="' + this.locale.customRangeLabel +
                    '">' + this.locale.customRangeLabel +
                    '</li>'), p += '</ul>', this.container.find('.ranges').
                    prepend(p);
            }
            'function' == typeof a && (this.callback = a), this.timePicker ||
            (this.startDate = this.startDate.startOf(
                'day'), this.endDate = this.endDate.endOf(
                'day'), this.container.find('.calendar-time').
                hide()), this.timePicker && this.autoApply &&
            (this.autoApply = !1), this.autoApply &&
            this.container.addClass('auto-apply'), 'object' ==
            typeof i.ranges &&
            this.container.addClass('show-ranges'), this.singleDatePicker &&
            (this.container.addClass('single'), this.container.find(
                '.drp-calendar.left').addClass('single'), this.container.find(
                '.drp-calendar.left').show(), this.container.find(
                '.drp-calendar.right').hide(), !this.timePicker &&
            this.autoApply &&
            this.container.addClass('auto-apply')), (void 0 === i.ranges &&
                !this.singleDatePicker || this.alwaysShowCalendars) &&
            this.container.addClass('show-calendar'), this.container.addClass(
                'opens' + this.opens), this.container.find(
                '.applyBtn, .cancelBtn').
                addClass(this.buttonClasses), this.applyButtonClasses.length &&
            this.container.find('.applyBtn').
                addClass(
                    this.applyButtonClasses), this.cancelButtonClasses.length &&
            this.container.find('.cancelBtn').
                addClass(this.cancelButtonClasses), this.container.find(
                '.applyBtn').html(this.locale.applyLabel), this.container.find(
                '.cancelBtn').
                html(this.locale.cancelLabel), this.container.find(
                '.drp-calendar').
                on('click.daterangepicker', '.prev',
                    t.proxy(this.clickPrev, this)).
                on('click.daterangepicker', '.next',
                    t.proxy(this.clickNext, this)).
                on('mousedown.daterangepicker', 'td.available',
                    t.proxy(this.clickDate, this)).
                on('mouseenter.daterangepicker', 'td.available',
                    t.proxy(this.hoverDate, this)).
                on('change.daterangepicker', 'select.yearselect',
                    t.proxy(this.monthOrYearChanged, this)).
                on('change.daterangepicker', 'select.monthselect',
                    t.proxy(this.monthOrYearChanged, this)).
                on('change.daterangepicker',
                    'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect',
                    t.proxy(this.timeChanged, this)), this.container.find(
                '.ranges').
                on('click.daterangepicker', 'li',
                    t.proxy(this.clickRange, this)), this.container.find(
                '.drp-buttons').
                on('click.daterangepicker', 'button.applyBtn',
                    t.proxy(this.clickApply, this)).
                on('click.daterangepicker', 'button.cancelBtn',
                    t.proxy(this.clickCancel, this)), this.element.is(
                'input') || this.element.is('button') ? this.element.on({
                'click.daterangepicker': t.proxy(this.show, this),
                'focus.daterangepicker': t.proxy(this.show, this),
                'keyup.daterangepicker': t.proxy(this.elementChanged, this),
                'keydown.daterangepicker': t.proxy(this.keydown, this),
            }) : (this.element.on('click.daterangepicker',
                t.proxy(this.toggle, this)), this.element.on(
                'keydown.daterangepicker',
                t.proxy(this.toggle, this))), this.updateElement();
        };
        return n.prototype = {
            constructor: n,
            setStartDate: function (t) {
                'string' == typeof t &&
                (this.startDate = e(t, this.locale.format)), 'object' ==
                typeof t && (this.startDate = e(t)), this.timePicker ||
                (this.startDate = this.startDate.startOf(
                    'day')), this.timePicker && this.timePickerIncrement &&
                this.startDate.minute(Math.round(
                    this.startDate.minute() / this.timePickerIncrement) *
                    this.timePickerIncrement), this.minDate &&
                this.startDate.isBefore(this.minDate) &&
                (this.startDate = this.minDate.clone(), this.timePicker &&
                this.timePickerIncrement && this.startDate.minute(Math.round(
                    this.startDate.minute() / this.timePickerIncrement) *
                    this.timePickerIncrement)), this.maxDate &&
                this.startDate.isAfter(this.maxDate) &&
                (this.startDate = this.maxDate.clone(), this.timePicker &&
                this.timePickerIncrement && this.startDate.minute(Math.floor(
                    this.startDate.minute() / this.timePickerIncrement) *
                    this.timePickerIncrement)), this.isShowing ||
                this.updateElement(), this.updateMonthsInView();
            },
            setEndDate: function (t) {
                'string' == typeof t &&
                (this.endDate = e(t, this.locale.format)), 'object' ==
                typeof t && (this.endDate = e(t)), this.timePicker ||
                (this.endDate = this.endDate.endOf('day')), this.timePicker &&
                this.timePickerIncrement && this.endDate.minute(Math.round(
                    this.endDate.minute() / this.timePickerIncrement) *
                    this.timePickerIncrement), this.endDate.isBefore(
                    this.startDate) &&
                (this.endDate = this.startDate.clone()), this.maxDate &&
                this.endDate.isAfter(this.maxDate) &&
                (this.endDate = this.maxDate.clone()), this.maxSpan &&
                this.startDate.clone().
                    add(this.maxSpan).
                    isBefore(this.endDate) &&
                (this.endDate = this.startDate.clone().
                    add(this.maxSpan)), this.previousRightTime = this.endDate.clone(), this.container.find(
                    '.drp-selected').
                    html(this.startDate.format(this.locale.format) +
                        this.locale.separator + this.endDate.format(
                            this.locale.format)), this.isShowing ||
                this.updateElement(), this.updateMonthsInView();
            },
            isInvalidDate: function () {return !1;},
            isCustomDate: function () {return !1;},
            updateView: function () {
                this.timePicker &&
                (this.renderTimePicker('left'), this.renderTimePicker(
                    'right'), this.endDate ? this.container.find(
                    '.right .calendar-time select').
                    prop('disabled', !1).
                    removeClass('disabled') : this.container.find(
                    '.right .calendar-time select').
                    prop('disabled', !0).
                    addClass('disabled')), this.endDate &&
                this.container.find('.drp-selected').
                    html(this.startDate.format(this.locale.format) +
                        this.locale.separator + this.endDate.format(
                            this.locale.format)), this.updateMonthsInView(), this.updateCalendars(), this.updateFormInputs();
            },
            updateMonthsInView: function () {
                if (this.endDate) {
                    if (!this.singleDatePicker && this.leftCalendar.month &&
                        this.rightCalendar.month &&
                        (this.startDate.format('YYYY-MM') ==
                            this.leftCalendar.month.format('YYYY-MM') ||
                            this.startDate.format('YYYY-MM') ==
                            this.rightCalendar.month.format('YYYY-MM')) &&
                        (this.endDate.format('YYYY-MM') ==
                            this.leftCalendar.month.format('YYYY-MM') ||
                            this.endDate.format('YYYY-MM') ==
                            this.rightCalendar.month.format('YYYY-MM'))) return;
                    this.leftCalendar.month = this.startDate.clone().
                        date(2), this.linkedCalendars || this.endDate.month() ==
                    this.startDate.month() && this.endDate.year() ==
                    this.startDate.year()
                        ? this.rightCalendar.month = this.startDate.clone().
                            date(2).
                            add(1, 'month')
                        : this.rightCalendar.month = this.endDate.clone().
                            date(2);
                } else this.leftCalendar.month.format('YYYY-MM') !=
                this.startDate.format('YYYY-MM') &&
                this.rightCalendar.month.format('YYYY-MM') !=
                this.startDate.format('YYYY-MM') &&
                (this.leftCalendar.month = this.startDate.clone().
                    date(2), this.rightCalendar.month = this.startDate.clone().
                    date(2).
                    add(1, 'month'));
                this.maxDate && this.linkedCalendars &&
                !this.singleDatePicker && this.rightCalendar.month >
                this.maxDate &&
                (this.rightCalendar.month = this.maxDate.clone().
                    date(2), this.leftCalendar.month = this.maxDate.clone().
                    date(2).
                    subtract(1, 'month'));
            },
            updateCalendars: function () {
                if (this.timePicker) {
                    var e, t, n, i;
                    if (this.endDate) {
                        if (e = parseInt(
                            this.container.find('.left .hourselect').val(),
                            10), t = parseInt(
                            this.container.find('.left .minuteselect').val(),
                            10), isNaN(t) && (t = parseInt(this.container.find(
                            '.left .minuteselect option:last').
                            val(), 10)), n = this.timePickerSeconds
                            ? parseInt(
                                this.container.find('.left .secondselect').
                                    val(), 10)
                            : 0, !this.timePicker24Hour) 'PM' ===
                        (i = this.container.find('.left .ampmselect').val()) &&
                        e < 12 && (e += 12), 'AM' === i && 12 === e && (e = 0);
                    } else if (e = parseInt(
                        this.container.find('.right .hourselect').val(),
                        10), t = parseInt(
                        this.container.find('.right .minuteselect').val(),
                        10), isNaN(t) && (t = parseInt(
                        this.container.find('.right .minuteselect option:last').
                            val(), 10)), n = this.timePickerSeconds
                        ? parseInt(
                            this.container.find('.right .secondselect').val(),
                            10)
                        : 0, !this.timePicker24Hour) 'PM' ===
                    (i = this.container.find('.right .ampmselect').val()) && e <
                    12 && (e += 12), 'AM' === i && 12 === e && (e = 0);
                    this.leftCalendar.month.hour(e).
                        minute(t).
                        second(n), this.rightCalendar.month.hour(e).
                        minute(t).
                        second(n);
                }
                this.renderCalendar('left'), this.renderCalendar(
                    'right'), this.container.find('.ranges li').
                    removeClass('active'), null != this.endDate &&
                this.calculateChosenLabel();
            },
            renderCalendar: function (n) {
                var i, a = (i = 'left' == n
                    ? this.leftCalendar
                    : this.rightCalendar).month.month(), r = i.month.year(),
                    o = i.month.hour(), s = i.month.minute(),
                    l = i.month.second(), c = e([r, a]).daysInMonth(),
                    u = e([r, a, 1]), d = e([r, a, c]),
                    h = e(u).subtract(1, 'month').month(),
                    f = e(u).subtract(1, 'month').year(),
                    p = e([f, h]).daysInMonth(), m = u.day();
                (i = []).firstDay = u, i.lastDay = d;
                for (var g = 0; g < 6; g++) i[g] = [];
                var v = p - m + this.locale.firstDay + 1;
                v > p && (v -= 7), m == this.locale.firstDay && (v = p - 6);
                for (var y = e([f, h, v, 12, s, l]), b = (g = 0, 0), x = 0; g <
                42; g++, b++, y = e(y).add(24, 'hour')) g > 0 && b % 7 == 0 &&
                (b = 0, x++), i[x][b] = y.clone().
                    hour(o).
                    minute(s).
                    second(l), y.hour(12), this.minDate &&
                i[x][b].format('YYYY-MM-DD') ==
                this.minDate.format('YYYY-MM-DD') &&
                i[x][b].isBefore(this.minDate) && 'left' == n &&
                (i[x][b] = this.minDate.clone()), this.maxDate &&
                i[x][b].format('YYYY-MM-DD') ==
                this.maxDate.format('YYYY-MM-DD') &&
                i[x][b].isAfter(this.maxDate) && 'right' == n &&
                (i[x][b] = this.maxDate.clone());
                'left' == n
                    ? this.leftCalendar.calendar = i
                    : this.rightCalendar.calendar = i;
                var _ = 'left' == n ? this.minDate : this.startDate,
                    w = this.maxDate, k = ('left' == n
                    ? this.startDate
                    : this.endDate, this.locale.direction, '<table class="table-condensed">');
                k += '<thead>', k += '<tr>', (this.showWeekNumbers ||
                    this.showISOWeekNumbers) && (k += '<th></th>'), _ &&
                !_.isBefore(i.firstDay) || this.linkedCalendars && 'left' != n
                    ? k += '<th></th>'
                    : k += '<th class="prev available"><span></span></th>';
                var M = this.locale.monthNames[i[1][1].month()] +
                    i[1][1].format(' YYYY');
                if (this.showDropdowns) {
                    for (var L = i[1][1].month(), S = i[1][1].year(), T = w &&
                        w.year() || this.maxYear, A = _ && _.year() ||
                        this.minYear, D = S == A, C = S ==
                        T, E = '<select class="monthselect">', O = 0; O <
                         12; O++) (!D || _ && O >= _.month()) &&
                    (!C || w && O <= w.month())
                        ? E += '<option value=\'' + O + '\'' +
                            (O === L ? ' selected=\'selected\'' : '') + '>' +
                            this.locale.monthNames[O] + '</option>'
                        : E += '<option value=\'' + O + '\'' +
                            (O === L ? ' selected=\'selected\'' : '') +
                            ' disabled=\'disabled\'>' +
                            this.locale.monthNames[O] + '</option>';
                    E += '</select>';
                    for (var Y = '<select class="yearselect">', P = A; P <=
                    T; P++) Y += '<option value="' + P + '"' +
                        (P === S ? ' selected="selected"' : '') + '>' + P +
                        '</option>';
                    M = E + (Y += '</select>');
                }
                if (k += '<th colspan="5" class="month">' + M + '</th>', w &&
                !w.isAfter(i.lastDay) || this.linkedCalendars && 'right' != n &&
                !this.singleDatePicker
                    ? k += '<th></th>'
                    : k += '<th class="next available"><span></span></th>', k += '</tr>', k += '<tr>', (this.showWeekNumbers ||
                    this.showISOWeekNumbers) &&
                (k += '<th class="week">' + this.locale.weekLabel +
                    '</th>'), t.each(this.locale.daysOfWeek, (function (e, t) {
                    k += '<th>' + t + '</th>';
                })), k += '</tr>', k += '</thead>', k += '<tbody>', null ==
                this.endDate && this.maxSpan) {
                    var I = this.startDate.clone().
                        add(this.maxSpan).
                        endOf('day');
                    w && !I.isBefore(w) || (w = I);
                }
                for (x = 0; x < 6; x++) {
                    k += '<tr>', this.showWeekNumbers
                        ? k += '<td class="week">' + i[x][0].week() + '</td>'
                        : this.showISOWeekNumbers &&
                        (k += '<td class="week">' + i[x][0].isoWeek() +
                            '</td>');
                    for (b = 0; b < 7; b++) {
                        var j = [];
                        i[x][b].isSame(new Date, 'day') &&
                        j.push('today'), i[x][b].isoWeekday() > 5 &&
                        j.push('weekend'), i[x][b].month() != i[1][1].month() &&
                        j.push('off', 'ends'), this.minDate &&
                        i[x][b].isBefore(this.minDate, 'day') &&
                        j.push('off', 'disabled'), w &&
                        i[x][b].isAfter(w, 'day') &&
                        j.push('off', 'disabled'), this.isInvalidDate(
                            i[x][b]) &&
                        j.push('off', 'disabled'), i[x][b].format(
                            'YYYY-MM-DD') ==
                        this.startDate.format('YYYY-MM-DD') &&
                        j.push('active', 'start-date'), null != this.endDate &&
                        i[x][b].format('YYYY-MM-DD') ==
                        this.endDate.format('YYYY-MM-DD') &&
                        j.push('active', 'end-date'), null != this.endDate &&
                        i[x][b] > this.startDate && i[x][b] < this.endDate &&
                        j.push('in-range');
                        var N = this.isCustomDate(i[x][b]);
                        !1 !== N && ('string' == typeof N
                            ? j.push(N)
                            : Array.prototype.push.apply(j, N));
                        var H = '', F = !1;
                        for (g = 0; g < j.length; g++) H += j[g] +
                            ' ', 'disabled' == j[g] && (F = !0);
                        F || (H += 'available'), k += '<td class="' +
                            H.replace(/^\s+|\s+$/g, '') + '" data-title="r' +
                            x + 'c' + b + '">' + i[x][b].date() + '</td>';
                    }
                    k += '</tr>';
                }
                k += '</tbody>', k += '</table>', this.container.find(
                    '.drp-calendar.' + n + ' .calendar-table').html(k);
            },
            renderTimePicker: function (e) {
                if ('right' != e || this.endDate) {
                    var t, n, i, a = this.maxDate;
                    if (!this.maxSpan || this.maxDate &&
                    !this.startDate.clone().
                        add(this.maxSpan).
                        isBefore(this.maxDate) ||
                    (a = this.startDate.clone().add(this.maxSpan)), 'left' ==
                    e) n = this.startDate.clone(), i = this.minDate; else if ('right' ==
                        e) {
                        n = this.endDate.clone(), i = this.startDate;
                        var r = this.container.find(
                            '.drp-calendar.right .calendar-time');
                        if ('' != r.html() && (n.hour(isNaN(n.hour())
                            ? r.find('.hourselect option:selected').val()
                            : n.hour()), n.minute(isNaN(n.minute())
                            ? r.find('.minuteselect option:selected').val()
                            : n.minute()), n.second(isNaN(n.second())
                            ? r.find('.secondselect option:selected').val()
                            : n.second()), !this.timePicker24Hour)) {
                            var o = r.find('.ampmselect option:selected').val();
                            'PM' === o && n.hour() < 12 &&
                            n.hour(n.hour() + 12), 'AM' === o && 12 ===
                            n.hour() && n.hour(0);
                        }
                        n.isBefore(this.startDate) &&
                        (n = this.startDate.clone()), a && n.isAfter(a) &&
                        (n = a.clone());
                    }
                    t = '<select class="hourselect">';
                    for (var s = this.timePicker24Hour
                        ? 0
                        : 1, l = this.timePicker24Hour ? 23 : 12, c = s; c <=
                         l; c++) {
                        var u = c;
                        this.timePicker24Hour ||
                        (u = n.hour() >= 12 ? 12 == c ? 12 : c + 12 : 12 == c
                            ? 0
                            : c);
                        var d = n.clone().hour(u), h = !1;
                        i && d.minute(59).isBefore(i) && (h = !0), a &&
                        d.minute(0).isAfter(a) && (h = !0), u != n.hour() || h
                            ? t += h ? '<option value="' + c +
                                '" disabled="disabled" class="disabled">' + c +
                                '</option>' : '<option value="' + c + '">' + c +
                                '</option>'
                            : t += '<option value="' + c +
                                '" selected="selected">' + c + '</option>';
                    }
                    t += '</select> ', t += ': <select class="minuteselect">';
                    for (c = 0; c < 60; c += this.timePickerIncrement) {
                        var f = c < 10
                            ? '0' + c
                            : c;
                        d = n.clone().minute(c), h = !1;
                        i && d.second(59).isBefore(i) && (h = !0), a &&
                        d.second(0).isAfter(a) && (h = !0), n.minute() != c || h
                            ? t += h ? '<option value="' + c +
                                '" disabled="disabled" class="disabled">' + f +
                                '</option>' : '<option value="' + c + '">' + f +
                                '</option>'
                            : t += '<option value="' + c +
                                '" selected="selected">' + f + '</option>';
                    }
                    if (t += '</select> ', this.timePickerSeconds) {
                        t += ': <select class="secondselect">';
                        for (c = 0; c < 60; c++) {
                            f = c < 10
                                ? '0' + c
                                : c, d = n.clone().second(c), h = !1;
                            i && d.isBefore(i) && (h = !0), a && d.isAfter(a) &&
                            (h = !0), n.second() != c || h
                                ? t += h
                                    ? '<option value="' + c +
                                    '" disabled="disabled" class="disabled">' +
                                    f + '</option>'
                                    : '<option value="' + c + '">' + f +
                                    '</option>'
                                : t += '<option value="' + c +
                                    '" selected="selected">' + f + '</option>';
                        }
                        t += '</select> ';
                    }
                    if (!this.timePicker24Hour) {
                        t += '<select class="ampmselect">';
                        var p = '', m = '';
                        i &&
                        n.clone().hour(12).minute(0).second(0).isBefore(i) &&
                        (p = ' disabled="disabled" class="disabled"'), a &&
                        n.clone().hour(0).minute(0).second(0).isAfter(a) &&
                        (m = ' disabled="disabled" class="disabled"'), n.hour() >=
                        12
                            ? t += '<option value="AM"' + p +
                                '>AM</option><option value="PM" selected="selected"' +
                                m + '>PM</option>'
                            : t += '<option value="AM" selected="selected"' +
                                p + '>AM</option><option value="PM"' + m +
                                '>PM</option>', t += '</select>';
                    }
                    this.container.find(
                        '.drp-calendar.' + e + ' .calendar-time').html(t);
                }
            },
            updateFormInputs: function () {
                this.singleDatePicker || this.endDate &&
                (this.startDate.isBefore(this.endDate) ||
                    this.startDate.isSame(this.endDate))
                    ? this.container.find('button.applyBtn').
                        prop('disabled', !1)
                    : this.container.find('button.applyBtn').
                        prop('disabled', !0);
            },
            move: function () {
                var e, n = { top: 0, left: 0 }, i = this.drops,
                    a = t(window).width();
                switch (this.parentEl.is('body') || (n = {
                    top: this.parentEl.offset().top - this.parentEl.scrollTop(),
                    left: this.parentEl.offset().left -
                        this.parentEl.scrollLeft(),
                }, a = this.parentEl[0].clientWidth +
                    this.parentEl.offset().left), i) {
                    case'auto':
                        (e = this.element.offset().top +
                            this.element.outerHeight() - n.top) +
                        this.container.outerHeight() >=
                        this.parentEl[0].scrollHeight &&
                        (e = this.element.offset().top -
                            this.container.outerHeight() - n.top, i = 'up');
                        break;
                    case'up':
                        e = this.element.offset().top -
                            this.container.outerHeight() - n.top;
                        break;
                    default:
                        e = this.element.offset().top +
                            this.element.outerHeight() - n.top;
                }
                this.container.css({ top: 0, left: 0, right: 'auto' });
                var r = this.container.outerWidth();
                if (this.container.toggleClass('drop-up', 'up' == i), 'left' ==
                this.opens) {
                    var o = a - this.element.offset().left -
                        this.element.outerWidth();
                    r + o > t(window).width()
                        ? this.container.css({ top: e, right: 'auto', left: 9 })
                        : this.container.css(
                        { top: e, right: o, left: 'auto' });
                } else if ('center' == this.opens) {
                    (s = this.element.offset().left - n.left +
                        this.element.outerWidth() / 2 - r / 2) < 0
                        ? this.container.css({ top: e, right: 'auto', left: 9 })
                        : s + r > t(window).width()
                        ? this.container.css({ top: e, left: 'auto', right: 0 })
                        : this.container.css(
                            { top: e, left: s, right: 'auto' });
                } else {
                    var s;
                    (s = this.element.offset().left - n.left) + r >
                    t(window).width()
                        ? this.container.css({ top: e, left: 'auto', right: 0 })
                        : this.container.css(
                        { top: e, left: s, right: 'auto' });
                }
            },
            show: function (e) {
                this.isShowing || (this._outsideClickProxy = t.proxy(
                    (function (e) {this.outsideClick(e);}), this), t(document).
                    on('mousedown.daterangepicker', this._outsideClickProxy).
                    on('touchend.daterangepicker', this._outsideClickProxy).
                    on('click.daterangepicker', '[data-toggle=dropdown]',
                        this._outsideClickProxy).
                    on('focusin.daterangepicker', this._outsideClickProxy), t(
                    window).
                    on('resize.daterangepicker',
                        t.proxy((function (e) {this.move(e);}),
                            this)), this.oldStartDate = this.startDate.clone(), this.oldEndDate = this.endDate.clone(), this.previousRightTime = this.endDate.clone(), this.updateView(), this.container.show(), this.move(), this.element.trigger(
                    'show.daterangepicker', this), this.isShowing = !0);
            },
            hide: function (e) {
                this.isShowing && (this.endDate ||
                (this.startDate = this.oldStartDate.clone(), this.endDate = this.oldEndDate.clone()), this.startDate.isSame(
                    this.oldStartDate) &&
                this.endDate.isSame(this.oldEndDate) ||
                this.callback(this.startDate.clone(), this.endDate.clone(),
                    this.chosenLabel), this.updateElement(), t(document).
                    off('.daterangepicker'), t(window).
                    off('.daterangepicker'), this.container.hide(), this.element.trigger(
                    'hide.daterangepicker', this), this.isShowing = !1);
            },
            toggle: function (e) {this.isShowing ? this.hide() : this.show();},
            outsideClick: function (e) {
                var n = t(e.target);
                'focusin' == e.type || n.closest(this.element).length ||
                n.closest(this.container).length ||
                n.closest('.calendar-table').length ||
                (this.hide(), this.element.trigger(
                    'outsideClick.daterangepicker', this));
            },
            showCalendars: function () {
                this.container.addClass(
                    'show-calendar'), this.move(), this.element.trigger(
                    'showCalendar.daterangepicker', this);
            },
            hideCalendars: function () {
                this.container.removeClass(
                    'show-calendar'), this.element.trigger(
                    'hideCalendar.daterangepicker', this);
            },
            clickRange: function (e) {
                var t = e.target.getAttribute('data-range-key');
                if (this.chosenLabel = t, t ==
                this.locale.customRangeLabel) this.showCalendars(); else {
                    var n = this.ranges[t];
                    this.startDate = n[0], this.endDate = n[1], this.timePicker ||
                    (this.startDate.startOf('day'), this.endDate.endOf(
                        'day')), this.alwaysShowCalendars ||
                    this.hideCalendars(), this.clickApply();
                }
            },
            clickPrev: function (e) {
                t(e.target).
                    parents('.drp-calendar').
                    hasClass('left')
                    ? (this.leftCalendar.month.subtract(1,
                    'month'), this.linkedCalendars &&
                    this.rightCalendar.month.subtract(1, 'month'))
                    : this.rightCalendar.month.subtract(1,
                    'month'), this.updateCalendars();
            },
            clickNext: function (e) {
                t(e.target).
                    parents('.drp-calendar').
                    hasClass('left')
                    ? this.leftCalendar.month.add(1, 'month')
                    : (this.rightCalendar.month.add(1,
                    'month'), this.linkedCalendars &&
                    this.leftCalendar.month.add(1,
                        'month')), this.updateCalendars();
            },
            hoverDate: function (e) {
                if (t(e.target).
                    hasClass('available')) {
                    var n = t(e.target).
                            attr('data-title'), i = n.substr(1, 1),
                        a = n.substr(3, 1), r = t(e.target).
                            parents('.drp-calendar').
                            hasClass('left')
                        ? this.leftCalendar.calendar[i][a]
                        : this.rightCalendar.calendar[i][a],
                        o = this.leftCalendar, s = this.rightCalendar,
                        l = this.startDate;
                    this.endDate ||
                    this.container.find('.drp-calendar tbody td').
                        each((function (e, n) {
                            if (!t(n).
                                hasClass('week')) {
                                var i = t(n).
                                        attr('data-title'), a = i.substr(1, 1),
                                    c = i.substr(3, 1), u = t(n).
                                        parents('.drp-calendar').
                                        hasClass('left')
                                    ? o.calendar[a][c]
                                    : s.calendar[a][c];
                                u.isAfter(l) && u.isBefore(r) ||
                                u.isSame(r, 'day')
                                    ? t(n).addClass('in-range')
                                    : t(n).removeClass('in-range');
                            }
                        }));
                }
            },
            clickDate: function (e) {
                if (t(e.target).hasClass('available')) {
                    var n = t(e.target).attr('data-title'), i = n.substr(1, 1),
                        a = n.substr(3, 1), r = t(e.target).
                            parents('.drp-calendar').
                            hasClass('left')
                        ? this.leftCalendar.calendar[i][a]
                        : this.rightCalendar.calendar[i][a];
                    if (this.endDate || r.isBefore(this.startDate, 'day')) {
                        if (this.timePicker) {
                            var o = parseInt(
                                this.container.find('.left .hourselect').val(),
                                10);
                            if (!this.timePicker24Hour) 'PM' ===
                            (c = this.container.find('.left .ampmselect').
                                val()) && o < 12 && (o += 12), 'AM' === c &&
                            12 === o && (o = 0);
                            var s = parseInt(
                                this.container.find('.left .minuteselect').
                                    val(), 10);
                            isNaN(s) && (s = parseInt(this.container.find(
                                '.left .minuteselect option:last').val(), 10));
                            var l = this.timePickerSeconds ? parseInt(
                                this.container.find('.left .secondselect').
                                    val(), 10) : 0;
                            r = r.clone().hour(o).minute(s).second(l);
                        }
                        this.endDate = null, this.setStartDate(r.clone());
                    } else if (!this.endDate &&
                        r.isBefore(this.startDate)) this.setEndDate(
                        this.startDate.clone()); else {
                        if (this.timePicker) {
                            var c;
                            o = parseInt(
                                this.container.find('.right .hourselect').val(),
                                10);
                            if (!this.timePicker24Hour) 'PM' ===
                            (c = this.container.find('.right .ampmselect').
                                val()) && o < 12 && (o += 12), 'AM' === c &&
                            12 === o && (o = 0);
                            s = parseInt(
                                this.container.find('.right .minuteselect').
                                    val(), 10);
                            isNaN(s) && (s = parseInt(this.container.find(
                                '.right .minuteselect option:last').val(), 10));
                            l = this.timePickerSeconds ? parseInt(
                                this.container.find('.right .secondselect').
                                    val(), 10) : 0;
                            r = r.clone().hour(o).minute(s).second(l);
                        }
                        this.setEndDate(r.clone()), this.autoApply &&
                        (this.calculateChosenLabel(), this.clickApply());
                    }
                    this.singleDatePicker &&
                    (this.setEndDate(this.startDate), !this.timePicker &&
                    this.autoApply &&
                    this.clickApply()), this.updateView(), e.stopPropagation();
                }
            },
            calculateChosenLabel: function () {
                var e = !0, t = 0;
                for (var n in this.ranges) {
                    if (this.timePicker) {
                        var i = this.timePickerSeconds
                            ? 'YYYY-MM-DD HH:mm:ss'
                            : 'YYYY-MM-DD HH:mm';
                        if (this.startDate.format(i) ==
                            this.ranges[n][0].format(i) &&
                            this.endDate.format(i) == this.ranges[n][1].format(
                                i)) {
                            e = !1, this.chosenLabel = this.container.find(
                                '.ranges li:eq(' + t + ')').
                                addClass('active').
                                attr('data-range-key');
                            break;
                        }
                    } else if (this.startDate.format('YYYY-MM-DD') ==
                        this.ranges[n][0].format('YYYY-MM-DD') &&
                        this.endDate.format('YYYY-MM-DD') ==
                        this.ranges[n][1].format('YYYY-MM-DD')) {
                        e = !1, this.chosenLabel = this.container.find(
                            '.ranges li:eq(' + t + ')').
                            addClass('active').
                            attr('data-range-key');
                        break;
                    }
                    t++;
                }
                e && (this.showCustomRangeLabel
                    ? this.chosenLabel = this.container.find('.ranges li:last').
                        addClass('active').
                        attr('data-range-key')
                    : this.chosenLabel = null, this.showCalendars());
            },
            clickApply: function (e) {
                this.hide(), this.element.trigger('apply.daterangepicker',
                    this);
            },
            clickCancel: function (e) {
                this.startDate = this.oldStartDate, this.endDate = this.oldEndDate, this.hide(), this.element.trigger(
                    'cancel.daterangepicker', this);
            },
            monthOrYearChanged: function (e) {
                var n = t(e.target).
                        closest('.drp-calendar').
                        hasClass('left'), i = n ? 'left' : 'right',
                    a = this.container.find('.drp-calendar.' + i),
                    r = parseInt(a.find('.monthselect').val(), 10),
                    o = a.find('.yearselect').val();
                n ||
                (o < this.startDate.year() || o == this.startDate.year() && r <
                    this.startDate.month()) &&
                (r = this.startDate.month(), o = this.startDate.year()), this.minDate &&
                (o < this.minDate.year() || o == this.minDate.year() && r <
                    this.minDate.month()) &&
                (r = this.minDate.month(), o = this.minDate.year()), this.maxDate &&
                (o > this.maxDate.year() || o == this.maxDate.year() && r >
                    this.maxDate.month()) &&
                (r = this.maxDate.month(), o = this.maxDate.year()), n
                    ? (this.leftCalendar.month.month(r).
                        year(o), this.linkedCalendars &&
                    (this.rightCalendar.month = this.leftCalendar.month.clone().
                        add(1, 'month')))
                    : (this.rightCalendar.month.month(r).
                        year(o), this.linkedCalendars &&
                    (this.leftCalendar.month = this.rightCalendar.month.clone().
                        subtract(1, 'month'))), this.updateCalendars();
            },
            timeChanged: function (e) {
                var n = t(e.target).
                        closest('.drp-calendar'), i = n.hasClass('left'),
                    a = parseInt(n.find('.hourselect').val(), 10),
                    r = parseInt(n.find('.minuteselect').val(), 10);
                isNaN(r) &&
                (r = parseInt(n.find('.minuteselect option:last').val(), 10));
                var o = this.timePickerSeconds ? parseInt(
                    n.find('.secondselect').val(), 10) : 0;
                if (!this.timePicker24Hour) {
                    var s = n.find('.ampmselect').
                        val();
                    'PM' === s && a < 12 && (a += 12), 'AM' === s && 12 === a &&
                    (a = 0);
                }
                if (i) {
                    var l = this.startDate.clone();
                    l.hour(a), l.minute(r), l.second(o), this.setStartDate(
                        l), this.singleDatePicker
                        ? this.endDate = this.startDate.clone()
                        : this.endDate && this.endDate.format('YYYY-MM-DD') ==
                        l.format('YYYY-MM-DD') && this.endDate.isBefore(l) &&
                        this.setEndDate(l.clone());
                } else if (this.endDate) {
                    var c = this.endDate.clone();
                    c.hour(a), c.minute(r), c.second(o), this.setEndDate(c);
                }
                this.updateCalendars(), this.updateFormInputs(), this.renderTimePicker(
                    'left'), this.renderTimePicker('right');
            },
            elementChanged: function () {
                if (this.element.is('input') && this.element.val().length) {
                    var t = this.element.val().
                        split(this.locale.separator), n = null, i = null;
                    2 === t.length &&
                    (n = e(t[0], this.locale.format), i = e(t[1],
                        this.locale.format)), (this.singleDatePicker || null ===
                        n || null === i) && (i = n = e(this.element.val(),
                        this.locale.format)), n.isValid() && i.isValid() &&
                    (this.setStartDate(n), this.setEndDate(
                        i), this.updateView());
                }
            },
            keydown: function (e) {
                9 !== e.keyCode && 13 !== e.keyCode || this.hide(), 27 ===
                e.keyCode &&
                (e.preventDefault(), e.stopPropagation(), this.hide());
            },
            updateElement: function () {
                if (this.element.is('input') && this.autoUpdateInput) {
                    var e = this.startDate.format(this.locale.format);
                    this.singleDatePicker || (e += this.locale.separator +
                        this.endDate.format(this.locale.format)), e !==
                    this.element.val() && this.element.val(e).trigger('change');
                }
            },
            remove: function () {
                this.container.remove(), this.element.off(
                    '.daterangepicker'), this.element.removeData();
            },
        }, t.fn.daterangepicker = function (e, i) {
            var a = t.extend(!0, {}, t.fn.daterangepicker.defaultOptions, e);
            return this.each((function () {
                var e = t(this);
                e.data('daterangepicker') &&
                e.data('daterangepicker').remove(), e.data('daterangepicker',
                    new n(e, a, i));
            })), this;
        }, n;
    })), function (e) {
    'use strict';
    e.event.special.destroyed || (e.event.special.destroyed = {
        remove: function (e) {
            e.handler && e.handler();
        },
    }), e.fn.extend({
        maxlength: function (t, n) {
            var i = e('body');

            function a (e) {
                var t = e.charCodeAt();
                return t ? t < 128 ? 1 : t < 2048 ? 2 : 3 : 0;
            }

            function r (e) {
                return e.split('').
                    map(a).
                    concat(0).
                    reduce((function (e, t) {return e + t;}));
            }

            function o (e) {
                var n = e.val();
                n = t.twoCharLinebreak
                    ? n.replace(/\r(?!\n)|\n(?!\r)/g, '\r\n')
                    : n.replace(/(?:\r\n|\r|\n)/g, '\n');
                var i = 0;
                return i = t.utf8 ? r(n) : n.length, 'file' ===
                e.prop('type') && '' !== e.val() && (i -= 12), i;
            }

            function s (e, t) {return t - o(e);}

            function l (e, t) {
                t.css({ display: 'block' }), e.trigger('maxlength.shown');
            }

            function c (e, n, i) {
                var a = '';
                return t.message ? a = 'function' == typeof t.message
                    ? t.message(e, n)
                    : t.message.replace('%charsTyped%', i).
                        replace('%charsRemaining%', n - i).
                        replace('%charsTotal%', n) : (t.preText &&
                (a += t.preText), t.showCharsTyped ? a += i : a += n -
                    i, t.showMaxLength && (a += t.separator + n), t.postText &&
                (a += t.postText)), a;
            }

            function u (e, n, i, a) {
                var r, s, u, d;
                a && (a.html(c(n.val(), i, i - e)), e > 0
                    ? (r = n, s = t.threshold, u = i, d = !0, !t.alwaysShow &&
                    u - o(r) > s && (d = !1), d ? l(n, a.removeClass(
                        t.limitReachedClass + ' ' + t.limitExceededClass).
                        addClass(t.warningClass)) : function (
                        e, n) {
                        t.alwaysShow || (n.css({ display: 'none' }), e.trigger(
                            'maxlength.hidden'));
                    }(n, a))
                    : t.limitExceededClass ? l(n, 0 === e ? a.removeClass(
                        t.warningClass + ' ' + t.limitExceededClass).
                        addClass(t.limitReachedClass) : a.removeClass(
                        t.warningClass + ' ' + t.limitReachedClass).
                        addClass(t.limitExceededClass)) : l(n,
                        a.removeClass(t.warningClass).
                            addClass(
                                t.limitReachedClass))), t.customMaxAttribute &&
                (e < 0 ? n.addClass(t.customMaxClass) : n.removeClass(
                    t.customMaxClass));
            }

            function d (n, i) {
                var a = function (t) {
                    var n = t[0];
                    return e.extend({},
                        'function' == typeof n.getBoundingClientRect
                            ? n.getBoundingClientRect()
                            : { width: n.offsetWidth, height: n.offsetHeight },
                        t.offset());
                }(n);
                if ('function' !== e.type(t.placement)) if (e.isPlainObject(
                    t.placement)) !function (n, i) {
                    if (n && i) {
                        var a = {};
                        e.each(['top', 'bottom', 'left', 'right', 'position'],
                            (function (e, n) {
                                var i = t.placement[n];
                                void 0 !== i && (a[n] = i);
                            })), i.css(a);
                    }
                }(t.placement, i); else {
                    var r = n.outerWidth(), o = i.outerWidth(), s = i.width(),
                        l = i.height();
                    switch (t.appendToParent &&
                    (a.top -= n.parent().offset().top, a.left -= n.parent().
                        offset().left), t.placement) {
                        case'bottom':
                            i.css({
                                top: a.top + a.height,
                                left: a.left + a.width / 2 - s / 2,
                            });
                            break;
                        case'top':
                            i.css({
                                top: a.top - l,
                                left: a.left + a.width / 2 - s / 2,
                            });
                            break;
                        case'left':
                            i.css({
                                top: a.top + a.height / 2 - l / 2,
                                left: a.left - s,
                            });
                            break;
                        case'right':
                            i.css({
                                top: a.top + a.height / 2 - l / 2,
                                left: a.left + a.width,
                            });
                            break;
                        case'bottom-right':
                            i.css({
                                top: a.top + a.height,
                                left: a.left + a.width,
                            });
                            break;
                        case'top-right':
                            i.css({ top: a.top - l, left: a.left + r });
                            break;
                        case'top-left':
                            i.css({ top: a.top - l, left: a.left - o });
                            break;
                        case'bottom-left':
                            i.css({
                                top: a.top + n.outerHeight(),
                                left: a.left - o,
                            });
                            break;
                        case'centered-right':
                            i.css({
                                top: a.top + l / 2,
                                left: a.left + r - o - 3,
                            });
                            break;
                        case'bottom-right-inside':
                            i.css({
                                top: a.top + a.height,
                                left: a.left + a.width - o,
                            });
                            break;
                        case'top-right-inside':
                            i.css({ top: a.top - l, left: a.left + r - o });
                            break;
                        case'top-left-inside':
                            i.css({ top: a.top - l, left: a.left });
                            break;
                        case'bottom-left-inside':
                            i.css(
                                { top: a.top + n.outerHeight(), left: a.left });
                    }
                } else t.placement(n, i, a);
            }

            function h (e) {
                var n = e.attr('maxlength') || t.customMaxAttribute;
                if (t.customMaxAttribute && !t.allowOverMax) {
                    var i = e.attr(t.customMaxAttribute);
                    (!n || i < n) && (n = i);
                }
                return n || (n = e.attr('size')), n;
            }

            return e.isFunction(t) && !n && (n = t, t = {}), t = e.extend({
                showOnReady: !1,
                alwaysShow: !0,
                threshold: 0,
                warningClass: 'small form-text text-muted',
                limitReachedClass: 'small form-text text-danger',
                limitExceededClass: '',
                separator: ' / ',
                preText: '',
                postText: '',
                showMaxLength: !0,
                placement: 'bottom-right-inside',
                message: null,
                showCharsTyped: !0,
                validate: !1,
                utf8: !1,
                appendToParent: !1,
                twoCharLinebreak: !0,
                customMaxAttribute: null,
                customMaxClass: 'overmax',
                allowOverMax: !1,
                zIndex: 1099,
            }, t), this.each((function () {
                var n, o, l = e(this);

                function f () {
                    var a = c(l.val(), n, '0');
                    n = h(l), o ||
                    (o = e('<span class="bootstrap-maxlength"></span>').
                        css({
                            display: 'none',
                            position: 'absolute',
                            whiteSpace: 'nowrap',
                            zIndex: t.zIndex,
                        }).
                        html(a)), l.is('textarea') &&
                    (l.data('maxlenghtsizex', l.outerWidth()), l.data(
                        'maxlenghtsizey', l.outerHeight()), l.mouseup(
                        (function () {
                            l.outerWidth() === l.data('maxlenghtsizex') &&
                            l.outerHeight() === l.data('maxlenghtsizey') ||
                            d(l, o), l.data('maxlenghtsizex',
                                l.outerWidth()), l.data('maxlenghtsizey',
                                l.outerHeight());
                        }))), t.appendToParent
                        ? (l.parent().
                            append(o), l.parent().css('position', 'relative'))
                        : i.append(o), u(s(l, h(l)), l, n, o), d(l, o);
                }

                e(window).resize((function () {o && d(l, o);})), t.showOnReady
                    ? l.ready((function () {f();}))
                    : l.focus((function () {f();})), l.on(
                    'maxlength.reposition',
                    (function () {d(l, o);})), l.on('destroyed',
                    (function () {o && o.remove();})), l.on('blur',
                    (function () {o && !t.showOnReady && o.remove();})), l.on(
                    'input', (function () {
                        var e = h(l), i = s(l, e), c = !0;
                        return t.validate && i < 0 ? (!function (
                            e, n) {
                            var i = e.val();
                            if (t.twoCharLinebreak && '\n' ===
                            (i = i.replace(/\r(?!\n)|\n(?!\r)/g,
                                '\r\n'))[i.length - 1] &&
                            (n -= i.length % 2), t.utf8) {
                                for (var o = i.split('').map(a), s = 0, l = r(
                                    i) - n; s < l; s += o.pop()) ;
                                n -= n - o.length;
                            }
                            e.val(i.substr(0, n));
                        }(l, e), c = !1) : u(i, l, n, o), c;
                    }));
            }));
        },
    });
}(jQuery), function (e, t) {
    if ('object' == typeof exports && 'object' ==
        typeof module) module.exports = t(); else if ('function' ==
        typeof define && define.amd) define([], t); else {
        var n = t();
        for (var i in n) ('object' == typeof exports ? exports : e)[i] = n[i];
    }
}(this, (function () {
    return function () {
        'use strict';
        var e = {
            4528: function (e) {
                e.exports = JSON.parse(
                    '{"BACKSPACE":8,"BACKSPACE_SAFARI":127,"DELETE":46,"DOWN":40,"END":35,"ENTER":13,"ESCAPE":27,"HOME":36,"INSERT":45,"LEFT":37,"PAGE_DOWN":34,"PAGE_UP":33,"RIGHT":39,"SPACE":32,"TAB":9,"UP":38,"X":88,"Z":90,"CONTROL":17,"PAUSE/BREAK":19,"WINDOWS_LEFT":91,"WINDOWS_RIGHT":92,"KEY_229":229}');
            },
            8741: function (e, t) {
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.default = void 0;
                var n = !('undefined' == typeof window || !window.document ||
                    !window.document.createElement);
                t.default = n;
            },
            3976: function (e, t, n) {
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.default = void 0;
                var i, a = (i = n(4528)) && i.__esModule ? i : { default: i },
                    r = {
                        _maxTestPos: 500,
                        placeholder: '_',
                        optionalmarker: ['[', ']'],
                        quantifiermarker: ['{', '}'],
                        groupmarker: ['(', ')'],
                        alternatormarker: '|',
                        escapeChar: '\\',
                        mask: null,
                        regex: null,
                        oncomplete: function () {},
                        onincomplete: function () {},
                        oncleared: function () {},
                        repeat: 0,
                        greedy: !1,
                        autoUnmask: !1,
                        removeMaskOnSubmit: !1,
                        clearMaskOnLostFocus: !0,
                        insertMode: !0,
                        insertModeVisual: !0,
                        clearIncomplete: !1,
                        alias: null,
                        onKeyDown: function () {},
                        onBeforeMask: null,
                        onBeforePaste: function (e, t) {
                            return 'function' == typeof t.onBeforeMask
                                ? t.onBeforeMask.call(this, e, t)
                                : e;
                        },
                        onBeforeWrite: null,
                        onUnMask: null,
                        showMaskOnFocus: !0,
                        showMaskOnHover: !0,
                        onKeyValidation: function () {},
                        skipOptionalPartCharacter: ' ',
                        numericInput: !1,
                        rightAlign: !1,
                        undoOnEscape: !0,
                        radixPoint: '',
                        _radixDance: !1,
                        groupSeparator: '',
                        keepStatic: null,
                        positionCaretOnTab: !0,
                        tabThrough: !1,
                        supportsInputType: [
                            'text',
                            'tel',
                            'url',
                            'password',
                            'search'],
                        ignorables: [
                            a.default.BACKSPACE,
                            a.default.TAB,
                            a.default['PAUSE/BREAK'],
                            a.default.ESCAPE,
                            a.default.PAGE_UP,
                            a.default.PAGE_DOWN,
                            a.default.END,
                            a.default.HOME,
                            a.default.LEFT,
                            a.default.UP,
                            a.default.RIGHT,
                            a.default.DOWN,
                            a.default.INSERT,
                            a.default.DELETE,
                            93,
                            112,
                            113,
                            114,
                            115,
                            116,
                            117,
                            118,
                            119,
                            120,
                            121,
                            122,
                            123,
                            0,
                            229],
                        isComplete: null,
                        preValidation: null,
                        postValidation: null,
                        staticDefinitionSymbol: void 0,
                        jitMasking: !1,
                        nullable: !0,
                        inputEventOnly: !1,
                        noValuePatching: !1,
                        positionCaretOnClick: 'lvp',
                        casing: null,
                        inputmode: 'text',
                        importDataAttributes: !0,
                        shiftPositions: !0,
                        usePrototypeDefinitions: !0,
                        validationEventTimeOut: 3e3,
                    };
                t.default = r;
            },
            7392: function (e, t) {
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.default = void 0, t.default = {
                    9: {
                        validator: '[0-90-9]',
                        definitionSymbol: '*',
                    },
                    a: {
                        validator: '[A-Za-zА-яЁёÀ-ÿµ]',
                        definitionSymbol: '*',
                    },
                    '*': { validator: '[0-90-9A-Za-zА-яЁёÀ-ÿµ]' },
                };
            },
            253: function (e, t) {
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.default = function (
                    e, t, n) {
                    if (void 0 === n) return e.__data ? e.__data[t] : null;
                    e.__data = e.__data || {}, e.__data[t] = n;
                };
            },
            3776: function (e, t, n) {
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.on = function (e, t) {
                    function n (
                        e, n) {
                        a.addEventListener
                            ? a.addEventListener(e, t, !1)
                            : a.attachEvent &&
                            a.attachEvent('on' + e, t), i[e] = i[e] ||
                            {}, i[e][n] = i[e][n] || [], i[e][n].push(t);
                    }

                    if (c(
                        this[0])) for (var i = this[0].eventRegistry, a = this[0], r = e.split(
                        ' '), o = 0; o < r.length; o++) {
                        var s = r[o].split('.');
                        n(s[0], s[1] || 'global');
                    }
                    return this;
                }, t.off = function (e, t) {
                    var n, i;

                    function a (e, t, a) {
                        if (e in n == 1) if (i.removeEventListener
                            ? i.removeEventListener(e, a, !1)
                            : i.detachEvent &&
                            i.detachEvent('on' + e, a), 'global' ===
                        t) for (var r in n[e]) n[e][r].splice(
                            n[e][r].indexOf(a), 1); else n[e][t].splice(
                            n[e][t].indexOf(a), 1);
                    }

                    function r (e, i) {
                        var a, r, o = [];
                        if (e.length > 0) if (void 0 ===
                            t) for (a = 0, r = n[e][i].length; a <
                        r; a++) o.push({
                            ev: e,
                            namespace: i && i.length > 0 ? i : 'global',
                            handler: n[e][i][a],
                        }); else o.push({
                            ev: e,
                            namespace: i && i.length > 0 ? i : 'global',
                            handler: t,
                        }); else if (i.length >
                            0) for (var s in n) for (var l in n[s]) if (l ===
                            i) if (void 0 ===
                            t) for (a = 0, r = n[s][l].length; a <
                        r; a++) o.push({
                            ev: s,
                            namespace: l,
                            handler: n[s][l][a],
                        }); else o.push({ ev: s, namespace: l, handler: t });
                        return o;
                    }

                    if (c(this[0]) && e) {
                        n = this[0].eventRegistry, i = this[0];
                        for (var o = e.split(' '), s = 0; s <
                        o.length; s++) for (var l = o[s].split('.'), u = r(l[0],
                            l[1]), d = 0, h = u.length; d < h; d++) a(u[d].ev,
                            u[d].namespace, u[d].handler);
                    }
                    return this;
                }, t.trigger = function (e) {
                    if (c(
                        this[0])) for (var t = this[0].eventRegistry, n = this[0], i = 'string' ==
                    typeof e ? e.split(' ') : [e.type], r = 0; r <
                                       i.length; r++) {
                        var s = i[r].split('.'), l = s[0], u = s[1] || 'global';
                        if (void 0 !== document && 'global' === u) {
                            var d, h, f = {
                                bubbles: !0,
                                cancelable: !0,
                                detail: arguments[1],
                            };
                            if (document.createEvent) {
                                try {
                                    switch (l) {
                                        case'input':
                                            f.inputType = 'insertText', d = new InputEvent(
                                                l, f);
                                            break;
                                        default:
                                            d = new CustomEvent(l, f);
                                    }
                                } catch (e) {
                                    (d = document.createEvent(
                                        'CustomEvent')).initCustomEvent(l,
                                        f.bubbles, f.cancelable, f.detail);
                                }
                                e.type && (0, a.default)(d, e), n.dispatchEvent(
                                    d);
                            } else (d = document.createEventObject()).eventType = l, d.detail = arguments[1], e.type &&
                            (0, a.default)(d, e), n.fireEvent(
                                'on' + d.eventType, d);
                        } else if (void 0 !==
                            t[l]) if (arguments[0] = arguments[0].type
                            ? arguments[0]
                            : o.default.Event(
                                arguments[0]), arguments[0].detail = arguments.slice(
                            1), 'global' ===
                        u) for (var p in t[l]) for (h = 0; h <
                        t[l][p].length; h++) t[l][p][h].apply(n,
                            arguments); else for (h = 0; h <
                        t[l][u].length; h++) t[l][u][h].apply(n, arguments);
                    }
                    return this;
                }, t.Event = void 0;
                var i, a = l(n(600)), r = l(n(9380)), o = l(n(4963)),
                    s = l(n(8741));

                function l (e) {return e && e.__esModule ? e : { default: e };}

                function c (e) {return e instanceof Element;}

                t.Event = i, 'function' == typeof r.default.CustomEvent
                    ? t.Event = i = r.default.CustomEvent
                    : s.default && (t.Event = i = function (e, t) {
                    t = t || { bubbles: !1, cancelable: !1, detail: void 0 };
                    var n = document.createEvent('CustomEvent');
                    return n.initCustomEvent(e, t.bubbles, t.cancelable,
                        t.detail), n;
                }, i.prototype = r.default.Event.prototype);
            },
            600: function (e, t) {
                function n (e) {
                    return (n = 'function' == typeof Symbol && 'symbol' ==
                    typeof Symbol.iterator
                        ? function (e) {return typeof e;}
                        : function (e) {
                            return e && 'function' == typeof Symbol &&
                            e.constructor === Symbol && e !== Symbol.prototype
                                ? 'symbol'
                                : typeof e;
                        })(e);
                }

                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.default = function e () {
                    var t, i, a, r, o, s, l = arguments[0] || {}, c = 1,
                        u = arguments.length, d = !1;
                    for ('boolean' == typeof l &&
                         (d = l, l = arguments[c] || {}, c++), 'object' !==
                    n(l) && 'function' != typeof l && (l = {}); c <
                         u; c++) if (null !=
                        (t = arguments[c])) for (i in t) a = l[i], l !==
                    (r = t[i]) && (d && r &&
                    ('[object Object]' === Object.prototype.toString.call(r) ||
                        (o = Array.isArray(r))) ? (o ? (o = !1, s = a &&
                    Array.isArray(a) ? a : []) : s = a && '[object Object]' ===
                    Object.prototype.toString.call(a) ? a : {}, l[i] = e(d, s,
                        r)) : void 0 !== r && (l[i] = r));
                    return l;
                };
            },
            4963: function (e, t, n) {
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.default = void 0;
                var i = s(n(600)), a = s(n(9380)), r = s(n(253)), o = n(3776);

                function s (e) {return e && e.__esModule ? e : { default: e };}

                var l = a.default.document;

                function c (e) {
                    return e instanceof c ? e : this instanceof c
                        ? void (null != e && e !== a.default &&
                            (this[0] = e.nodeName ? e : void 0 !== e[0] &&
                            e[0].nodeName ? e[0] : l.querySelector(
                                e), void 0 !== this[0] && null !== this[0] &&
                            (this[0].eventRegistry = this[0].eventRegistry ||
                                {})))
                        : new c(e);
                }

                c.prototype = {
                    on: o.on,
                    off: o.off,
                    trigger: o.trigger,
                }, c.extend = i.default, c.data = r.default, c.Event = o.Event;
                var u = c;
                t.default = u;
            },
            9845: function (e, t, n) {
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.iphone = t.iemobile = t.mobile = t.ie = t.ua = void 0;
                var i, a = (i = n(9380)) && i.__esModule ? i : { default: i },
                    r = a.default.navigator && a.default.navigator.userAgent ||
                        '',
                    o = r.indexOf('MSIE ') > 0 || r.indexOf('Trident/') > 0,
                    s = 'ontouchstart' in a.default, l = /iemobile/i.test(r),
                    c = /iphone/i.test(r) && !l;
                t.iphone = c, t.iemobile = l, t.mobile = s, t.ie = o, t.ua = r;
            },
            7184: function (e, t) {
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.default = function (e) {
                    return e.replace(n, '\\$1');
                };
                var n = new RegExp('(\\' + [
                    '/',
                    '.',
                    '*',
                    '+',
                    '?',
                    '|',
                    '(',
                    ')',
                    '[',
                    ']',
                    '{',
                    '}',
                    '\\',
                    '$',
                    '^'].join('|\\') + ')', 'gim');
            },
            6030: function (e, t, n) {
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.EventHandlers = void 0;
                var i, a = n(8711),
                    r = (i = n(4528)) && i.__esModule ? i : { default: i },
                    o = n(9845), s = n(7215), l = n(7760), c = n(4713), u = {
                        keydownEvent: function (e) {
                            var t = this.inputmask, n = t.opts, i = t.dependencyLib,
                                u = t.maskset, d = this, h = i(d), f = e.keyCode,
                                p = a.caret.call(t, d),
                                m = n.onKeyDown.call(this, e, a.getBuffer.call(t),
                                    p, n);
                            if (void 0 !== m) return m;
                            if (f === r.default.BACKSPACE || f ===
                                r.default.DELETE || o.iphone && f ===
                                r.default.BACKSPACE_SAFARI || e.ctrlKey && f ===
                                r.default.X && !('oncut' in
                                    d)) e.preventDefault(), s.handleRemove.call(t,
                                d, f, p), (0, l.writeBuffer)(d,
                                a.getBuffer.call(t, !0), u.p, e,
                                d.inputmask._valueGet() !==
                                a.getBuffer.call(t).join('')); else if (f ===
                                r.default.END || f === r.default.PAGE_DOWN) {
                                e.preventDefault();
                                var g = a.seekNext.call(t,
                                    a.getLastValidPosition.call(t));
                                a.caret.call(t, d, e.shiftKey ? p.begin : g, g, !0);
                            } else f === r.default.HOME && !e.shiftKey || f ===
                            r.default.PAGE_UP
                                ? (e.preventDefault(), a.caret.call(t, d, 0,
                                    e.shiftKey ? p.begin : 0, !0))
                                : n.undoOnEscape && f === r.default.ESCAPE && !0 !==
                                e.altKey
                                    ? ((0, l.checkVal)(d, !0, !1,
                                        t.undoValue.split('')), h.trigger('click'))
                                    : !0 === n.tabThrough && f === r.default.TAB
                                        ? !0 === e.shiftKey
                                            ? (p.end = a.seekPrevious.call(t, p.end,
                                                !0), !0 === c.getTest.call(t,
                                                p.end - 1).match.static &&
                                            p.end--, p.begin = a.seekPrevious.call(
                                                t, p.end, !0), p.begin >= 0 &&
                                            p.end > 0 &&
                                            (e.preventDefault(), a.caret.call(t, d,
                                                p.begin, p.end)))
                                            : (p.begin = a.seekNext.call(t, p.begin,
                                                !0), p.end = a.seekNext.call(t,
                                                p.begin, !0), p.end <
                                            u.maskLength && p.end--, p.begin <=
                                            u.maskLength &&
                                            (e.preventDefault(), a.caret.call(t, d,
                                                p.begin, p.end)))
                                        : e.shiftKey || n.insertModeVisual && !1 ===
                                        n.insertMode &&
                                        (f === r.default.RIGHT ? setTimeout(
                                            (function () {
                                                var e = a.caret.call(t, d);
                                                a.caret.call(t, d, e.begin);
                                            }), 0) : f === r.default.LEFT &&
                                            setTimeout((function () {
                                                var e = a.translatePosition.call(t,
                                                    d.inputmask.caretPos.begin);
                                                a.translatePosition.call(t,
                                                    d.inputmask.caretPos.end), t.isRTL
                                                    ? a.caret.call(t, d, e +
                                                        (e === u.maskLength
                                                            ? 0
                                                            : 1))
                                                    : a.caret.call(t, d,
                                                        e - (0 === e ? 0 : 1));
                                            }), 0));
                            t.ignorable = n.ignorables.includes(f);
                        },
                        keypressEvent: function (e, t, n, i, o) {
                            var c = this.inputmask || this, u = c.opts,
                                d = c.dependencyLib, h = c.maskset, f = c.el,
                                p = d(f), m = e.which || e.charCode || e.keyCode;
                            if (!(!0 === t || e.ctrlKey && e.altKey) &&
                                (e.ctrlKey || e.metaKey ||
                                    c.ignorable)) return m === r.default.ENTER &&
                            c.undoValue !== c._valueGet(!0) &&
                            (c.undoValue = c._valueGet(!0), setTimeout(
                                (function () {p.trigger('change');}),
                                0)), c.skipInputEvent = !0, !0;
                            if (m) {
                                44 !== m && 46 !== m || 3 !== e.location || '' ===
                                u.radixPoint || (m = u.radixPoint.charCodeAt(0));
                                var g,
                                    v = t ? { begin: o, end: o } : a.caret.call(c,
                                        f), y = String.fromCharCode(m);
                                h.writeOutBuffer = !0;
                                var b = s.isValid.call(c, v, y, i, void 0, void 0,
                                    void 0, t);
                                if (!1 !== b &&
                                (a.resetMaskSet.call(c, !0), g = void 0 !== b.caret
                                    ? b.caret
                                    : a.seekNext.call(c, b.pos.begin
                                        ? b.pos.begin
                                        : b.pos), h.p = g), g = u.numericInput &&
                                void 0 === b.caret
                                    ? a.seekPrevious.call(c, g)
                                    : g, !1 !== n && (setTimeout(
                                    (function () {
                                        u.onKeyValidation.call(f, m, b);
                                    }),
                                    0), h.writeOutBuffer && !1 !== b)) {
                                    var x = a.getBuffer.call(c);
                                    (0, l.writeBuffer)(f, x, g, e, !0 !== t);
                                }
                                if (e.preventDefault(), t) return !1 !== b &&
                                (b.forwardPosition = g), b;
                            }
                        },
                        keyupEvent: function (e) {
                            var t = this.inputmask;
                            !t.isComposing || e.keyCode !== r.default.KEY_229 &&
                            e.keyCode !== r.default.ENTER || t.$el.trigger('input');
                        },
                        pasteEvent: function (e) {
                            var t, n = this.inputmask, i = n.opts,
                                r = n._valueGet(!0), o = a.caret.call(n, this);
                            n.isRTL && (t = o.end, o.end = o.begin, o.begin = t);
                            var s = r.substr(0, o.begin),
                                c = r.substr(o.end, r.length);
                            if (s == (n.isRTL
                                ? a.getBufferTemplate.call(n).slice().reverse()
                                : a.getBufferTemplate.call(n)).slice(0, o.begin).
                                join('') && (s = ''), c == (n.isRTL
                                ? a.getBufferTemplate.call(n).slice().reverse()
                                : a.getBufferTemplate.call(n)).slice(o.end).
                                join('') && (c = ''), window.clipboardData &&
                            window.clipboardData.getData) r = s +
                                window.clipboardData.getData('Text') + c; else {
                                if (!e.clipboardData ||
                                    !e.clipboardData.getData) return !0;
                                r = s + e.clipboardData.getData('text/plain') + c;
                            }
                            var u = r;
                            if ('function' == typeof i.onBeforePaste) {
                                if (!1 === (u = i.onBeforePaste.call(n, r,
                                    i))) return e.preventDefault();
                                u || (u = r);
                            }
                            return (0, l.checkVal)(this, !0, !1,
                                u.toString().split(''), e), e.preventDefault();
                        },
                        inputFallBackEvent: function (e) {
                            var t = this.inputmask, n = t.opts, i = t.dependencyLib,
                                s = this, d = s.inputmask._valueGet(!0),
                                h = (t.isRTL
                                    ? a.getBuffer.call(t).slice().reverse()
                                    : a.getBuffer.call(t)).join(''),
                                f = a.caret.call(t, s, void 0, void 0, !0);
                            if (h !== d) {
                                var p = function (e, i, r) {
                                    for (var o, s, l, u = e.substr(0, r.begin).
                                        split(''), d = e.substr(r.begin).
                                        split(''), h = i.substr(0, r.begin).
                                        split(''), f = i.substr(r.begin).
                                        split(''), p = u.length >= h.length
                                        ? u.length
                                        : h.length, m = d.length >= f.length
                                        ? d.length
                                        : f.length, g = '', v = [], y = '~'; u.length <
                                         p;) u.push(y);
                                    for (; h.length < p;) h.push(y);
                                    for (; d.length < m;) d.unshift(y);
                                    for (; f.length < m;) f.unshift(y);
                                    var b = u.concat(d), x = h.concat(f);
                                    for (s = 0, o = b.length; s <
                                    o; s++) switch (l = c.getPlaceholder.call(t,
                                        a.translatePosition.call(t, s)), g) {
                                        case'insertText':
                                            x[s - 1] === b[s] && r.begin ==
                                            b.length - 1 && v.push(b[s]), s = o;
                                            break;
                                        case'insertReplacementText':
                                        case'deleteContentBackward':
                                            b[s] === y ? r.end++ : s = o;
                                            break;
                                        default:
                                            b[s] !== x[s] &&
                                            (b[s + 1] !== y && b[s + 1] !== l &&
                                            void 0 !== b[s + 1] ||
                                            (x[s] !== l || x[s + 1] !== y) &&
                                            x[s] !== y
                                                ? x[s + 1] === y && x[s] ===
                                                b[s + 1]
                                                    ? (g = 'insertText', v.push(
                                                        b[s]), r.begin--, r.end--)
                                                    : b[s] !== l && b[s] !== y &&
                                                    (b[s + 1] === y || x[s] !==
                                                        b[s] && x[s + 1] ===
                                                        b[s + 1])
                                                        ? (g = 'insertReplacementText', v.push(
                                                            b[s]), r.begin--)
                                                        : b[s] === y
                                                            ? (g = 'deleteContentBackward', (a.isMask.call(
                                                                t,
                                                                a.translatePosition.call(
                                                                    t, s), !0) ||
                                                                x[s] ===
                                                                n.radixPoint) &&
                                                            r.end++)
                                                            : s = o
                                                : (g = 'insertText', v.push(
                                                    b[s]), r.begin--, r.end--));
                                    }
                                    return { action: g, data: v, caret: r };
                                }(d = function (
                                    e, n, i) {
                                    if (o.iemobile) {
                                        var r = n.replace(
                                            a.getBuffer.call(t).join(''), '');
                                        if (1 === r.length) {
                                            var s = n.split('');
                                            s.splice(i.begin, 0, r), n = s.join('');
                                        }
                                    }
                                    return n;
                                }(0, d, f), h, f);
                                switch ((s.inputmask.shadowRoot ||
                                    s.ownerDocument).activeElement !== s &&
                                s.focus(), (0, l.writeBuffer)(s,
                                    a.getBuffer.call(t)), a.caret.call(t, s,
                                    f.begin, f.end, !0), p.action) {
                                    case'insertText':
                                    case'insertReplacementText':
                                        p.data.forEach((function (e, n) {
                                            var a = new i.Event('keypress');
                                            a.which = e.charCodeAt(
                                                0), t.ignorable = !1, u.keypressEvent.call(
                                                s, a);
                                        })), setTimeout(
                                            (function () {t.$el.trigger('keyup');}),
                                            0);
                                        break;
                                    case'deleteContentBackward':
                                        var m = new i.Event('keydown');
                                        m.keyCode = r.default.BACKSPACE, u.keydownEvent.call(
                                            s, m);
                                        break;
                                    default:
                                        (0, l.applyInputValue)(s, d);
                                }
                                e.preventDefault();
                            }
                        },
                        compositionendEvent: function (e) {
                            var t = this.inputmask;
                            t.isComposing = !1, t.$el.trigger('input');
                        },
                        setValueEvent: function (e) {
                            var t = this.inputmask, n = this,
                                i = e && e.detail ? e.detail[0] : arguments[1];
                            void 0 === i &&
                            (i = n.inputmask._valueGet(!0)), (0, l.applyInputValue)(
                                n, i), (e.detail && void 0 !== e.detail[1] ||
                                void 0 !== arguments[2]) && a.caret.call(t, n,
                                e.detail ? e.detail[1] : arguments[2]);
                        },
                        focusEvent: function (e) {
                            var t = this.inputmask, n = t.opts, i = this,
                                r = i.inputmask._valueGet();
                            n.showMaskOnFocus && r !==
                            a.getBuffer.call(t).join('') &&
                            (0, l.writeBuffer)(i, a.getBuffer.call(t),
                                a.seekNext.call(t,
                                    a.getLastValidPosition.call(t))), !0 !==
                            n.positionCaretOnTab || !1 !== t.mouseEnter ||
                            s.isComplete.call(t, a.getBuffer.call(t)) && -1 !==
                            a.getLastValidPosition.call(t) || u.clickEvent.apply(i,
                                [e, !0]), t.undoValue = t._valueGet(!0);
                        },
                        invalidEvent: function (e) {this.inputmask.validationEvent = !0;},
                        mouseleaveEvent: function () {
                            var e = this.inputmask, t = e.opts, n = this;
                            e.mouseEnter = !1, t.clearMaskOnLostFocus &&
                            (n.inputmask.shadowRoot ||
                                n.ownerDocument).activeElement !== n &&
                            (0, l.HandleNativePlaceholder)(n,
                                e.originalPlaceholder);
                        },
                        clickEvent: function (e, t) {
                            var n = this.inputmask, i = this;
                            if ((i.inputmask.shadowRoot ||
                                i.ownerDocument).activeElement === i) {
                                var r = a.determineNewCaretPosition.call(n,
                                    a.caret.call(n, i), t);
                                void 0 !== r && a.caret.call(n, i, r);
                            }
                        },
                        cutEvent: function (e) {
                            var t = this.inputmask, n = t.maskset, i = this,
                                o = a.caret.call(t, i),
                                c = window.clipboardData || e.clipboardData,
                                u = t.isRTL ? a.getBuffer.call(t).
                                    slice(o.end, o.begin) : a.getBuffer.call(t).
                                    slice(o.begin, o.end);
                            c.setData('text',
                                t.isRTL ? u.reverse().join('') : u.join(
                                    '')), document.execCommand &&
                            document.execCommand('copy'), s.handleRemove.call(t, i,
                                r.default.DELETE, o), (0, l.writeBuffer)(i,
                                a.getBuffer.call(t), n.p, e,
                                t.undoValue !== t._valueGet(!0));
                        },
                        blurEvent: function (e) {
                            var t = this.inputmask, n = t.opts,
                                i = (0, t.dependencyLib)(this), r = this;
                            if (r.inputmask) {
                                (0, l.HandleNativePlaceholder)(r,
                                    t.originalPlaceholder);
                                var o = r.inputmask._valueGet(),
                                    c = a.getBuffer.call(t).slice();
                                '' !== o && (n.clearMaskOnLostFocus &&
                                (-1 === a.getLastValidPosition.call(t) && o ===
                                a.getBufferTemplate.call(t).join('')
                                    ? c = []
                                    : l.clearOptionalTail.call(t, c)), !1 ===
                                s.isComplete.call(t, c) &&
                                (setTimeout(
                                    (function () {i.trigger('incomplete');}),
                                    0), n.clearIncomplete &&
                                (a.resetMaskSet.call(t), c = n.clearMaskOnLostFocus
                                    ? []
                                    : a.getBufferTemplate.call(t).
                                        slice())), (0, l.writeBuffer)(r, c, void 0,
                                    e)), t.undoValue !== t._valueGet(!0) &&
                                (t.undoValue = t._valueGet(!0), i.trigger(
                                    'change'));
                            }
                        },
                        mouseenterEvent: function () {
                            var e = this.inputmask, t = e.opts, n = this;
                            if (e.mouseEnter = !0, (n.inputmask.shadowRoot ||
                                n.ownerDocument).activeElement !== n) {
                                var i = (e.isRTL ? a.getBufferTemplate.call(e).
                                    slice().
                                    reverse() : a.getBufferTemplate.call(e)).join(
                                    '');
                                e.placeholder !== i && n.placeholder !==
                                e.originalPlaceholder &&
                                (e.originalPlaceholder = n.placeholder), t.showMaskOnHover &&
                                (0, l.HandleNativePlaceholder)(n, i);
                            }
                        },
                        submitEvent: function () {
                            var e = this.inputmask, t = e.opts;
                            e.undoValue !== e._valueGet(!0) &&
                            e.$el.trigger('change'), t.clearMaskOnLostFocus &&
                            -1 === a.getLastValidPosition.call(e) && e._valueGet &&
                            e._valueGet() ===
                            a.getBufferTemplate.call(e).join('') &&
                            e._valueSet(''), t.clearIncomplete && !1 ===
                            s.isComplete.call(e, a.getBuffer.call(e)) &&
                            e._valueSet(''), t.removeMaskOnSubmit &&
                            (e._valueSet(e.unmaskedvalue(), !0), setTimeout(
                                (function () {
                                    (0, l.writeBuffer)(e.el, a.getBuffer.call(e));
                                }), 0));
                        },
                        resetEvent: function () {
                            var e = this.inputmask;
                            e.refreshValue = !0, setTimeout((function () {
                                (0, l.applyInputValue)(e.el, e._valueGet(!0));
                            }), 0);
                        },
                    };
                t.EventHandlers = u;
            },
            9716: function (e, t, n) {
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.EventRuler = void 0;
                var i = s(n(2394)), a = s(n(4528)), r = n(8711), o = n(7760);

                function s (e) {return e && e.__esModule ? e : { default: e };}

                var l = {
                    on: function (e, t, n) {
                        var s = e.inputmask.dependencyLib, l = function (t) {
                            t.originalEvent &&
                            (t = t.originalEvent || t, arguments[0] = t);
                            var l, c = this, u = c.inputmask,
                                d = u ? u.opts : void 0;
                            if (void 0 === u && 'FORM' !== this.nodeName) {
                                var h = s.data(c, '_inputmask_opts');
                                s(c).off(), h && new i.default(h).mask(c);
                            } else {
                                if (['submit', 'reset', 'setvalue'].includes(
                                    t.type) || 'FORM' === this.nodeName ||
                                    !(c.disabled || c.readOnly &&
                                        !('keydown' === t.type && t.ctrlKey &&
                                            67 === t.keyCode || !1 ===
                                            d.tabThrough && t.keyCode ===
                                            a.default.TAB))) {
                                    switch (t.type) {
                                        case'input':
                                            if (!0 === u.skipInputEvent ||
                                                t.inputType &&
                                                'insertCompositionText' ===
                                                t.inputType) return u.skipInputEvent = !1, t.preventDefault();
                                            break;
                                        case'keydown':
                                            u.skipKeyPressEvent = !1, u.skipInputEvent = u.isComposing = t.keyCode ===
                                                a.default.KEY_229;
                                            break;
                                        case'keyup':
                                        case'compositionend':
                                            u.isComposing &&
                                            (u.skipInputEvent = !1);
                                            break;
                                        case'keypress':
                                            if (!0 ===
                                                u.skipKeyPressEvent) return t.preventDefault();
                                            u.skipKeyPressEvent = !0;
                                            break;
                                        case'click':
                                        case'focus':
                                            return u.validationEvent
                                                ? (u.validationEvent = !1, e.blur(), (0, o.HandleNativePlaceholder)(
                                                    e, (u.isRTL
                                                        ? r.getBufferTemplate.call(
                                                            u).slice().reverse()
                                                        : r.getBufferTemplate.call(
                                                            u)).join(
                                                        '')), setTimeout(
                                                    (function () {e.focus();}),
                                                    d.validationEventTimeOut), !1)
                                                : (l = arguments, setTimeout(
                                                    (function () {
                                                        e.inputmask &&
                                                        n.apply(c, l);
                                                    }), 0), !1);
                                    }
                                    var f = n.apply(c, arguments);
                                    return !1 === f &&
                                    (t.preventDefault(), t.stopPropagation()), f;
                                }
                                t.preventDefault();
                            }
                        };
                        ['submit', 'reset'].includes(t) ? (l = l.bind(
                            e), null !== e.form && s(e.form).on(t, l)) : s(e).
                            on(t,
                                l), e.inputmask.events[t] = e.inputmask.events[t] ||
                            [], e.inputmask.events[t].push(l);
                    },
                    off: function (e, t) {
                        if (e.inputmask && e.inputmask.events) {
                            var n = e.inputmask.dependencyLib,
                                i = e.inputmask.events;
                            for (var a in t &&
                            ((i = [])[t] = e.inputmask.events[t]), i) {
                                for (var r = i[a]; r.length > 0;) {
                                    var o = r.pop();
                                    ['submit', 'reset'].includes(a) ? null !==
                                        e.form && n(e.form).off(a, o) : n(e).
                                        off(a, o);
                                }
                                delete e.inputmask.events[a];
                            }
                        }
                    },
                };
                t.EventRuler = l;
            },
            219: function (e, t, n) {
                var i = l(n(2394)), a = l(n(4528)), r = l(n(7184)), o = n(8711);

                function s (e) {
                    return (s = 'function' == typeof Symbol && 'symbol' ==
                    typeof Symbol.iterator
                        ? function (e) {return typeof e;}
                        : function (e) {
                            return e && 'function' == typeof Symbol &&
                            e.constructor === Symbol && e !== Symbol.prototype
                                ? 'symbol'
                                : typeof e;
                        })(e);
                }

                function l (e) {return e && e.__esModule ? e : { default: e };}

                var c = i.default.dependencyLib, u = (new Date).getFullYear(),
                    d = {
                        d: [
                            '[1-9]|[12][0-9]|3[01]',
                            Date.prototype.setDate,
                            'day',
                            Date.prototype.getDate],
                        dd: [
                            '0[1-9]|[12][0-9]|3[01]',
                            Date.prototype.setDate,
                            'day',
                            function () {
                                return b(Date.prototype.getDate.call(this), 2);
                            }],
                        ddd: [''],
                        dddd: [''],
                        m: [
                            '[1-9]|1[012]',
                            Date.prototype.setMonth,
                            'month',
                            function () {
                                return Date.prototype.getMonth.call(this) + 1;
                            }],
                        mm: [
                            '0[1-9]|1[012]',
                            Date.prototype.setMonth,
                            'month',
                            function () {
                                return b(Date.prototype.getMonth.call(this) + 1,
                                    2);
                            }],
                        mmm: [''],
                        mmmm: [''],
                        yy: [
                            '[0-9]{2}',
                            Date.prototype.setFullYear,
                            'year',
                            function () {
                                return b(Date.prototype.getFullYear.call(this),
                                    2);
                            }],
                        yyyy: [
                            '[0-9]{4}',
                            Date.prototype.setFullYear,
                            'year',
                            function () {
                                return b(Date.prototype.getFullYear.call(this),
                                    4);
                            }],
                        h: [
                            '[1-9]|1[0-2]',
                            Date.prototype.setHours,
                            'hours',
                            Date.prototype.getHours],
                        hh: [
                            '0[1-9]|1[0-2]',
                            Date.prototype.setHours,
                            'hours',
                            function () {
                                return b(Date.prototype.getHours.call(this), 2);
                            }],
                        hx: [
                            function (e) {return '[0-9]{'.concat(e, '}');},
                            Date.prototype.setHours,
                            'hours',
                            function (e) {return Date.prototype.getHours;}],
                        H: [
                            '1?[0-9]|2[0-3]',
                            Date.prototype.setHours,
                            'hours',
                            Date.prototype.getHours],
                        HH: [
                            '0[0-9]|1[0-9]|2[0-3]',
                            Date.prototype.setHours,
                            'hours',
                            function () {
                                return b(Date.prototype.getHours.call(this), 2);
                            }],
                        Hx: [
                            function (e) {return '[0-9]{'.concat(e, '}');},
                            Date.prototype.setHours,
                            'hours',
                            function (e) {
                                return function () {
                                    return b(Date.prototype.getHours.call(this),
                                        e);
                                };
                            }],
                        M: [
                            '[1-5]?[0-9]',
                            Date.prototype.setMinutes,
                            'minutes',
                            Date.prototype.getMinutes],
                        MM: [
                            '0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]',
                            Date.prototype.setMinutes,
                            'minutes',
                            function () {
                                return b(Date.prototype.getMinutes.call(this),
                                    2);
                            }],
                        s: [
                            '[1-5]?[0-9]',
                            Date.prototype.setSeconds,
                            'seconds',
                            Date.prototype.getSeconds],
                        ss: [
                            '0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]',
                            Date.prototype.setSeconds,
                            'seconds',
                            function () {
                                return b(Date.prototype.getSeconds.call(this),
                                    2);
                            }],
                        l: [
                            '[0-9]{3}',
                            Date.prototype.setMilliseconds,
                            'milliseconds',
                            function () {
                                return b(
                                    Date.prototype.getMilliseconds.call(this),
                                    3);
                            }],
                        L: [
                            '[0-9]{2}',
                            Date.prototype.setMilliseconds,
                            'milliseconds',
                            function () {
                                return b(
                                    Date.prototype.getMilliseconds.call(this),
                                    2);
                            }],
                        t: ['[ap]', f, 'ampm', p, 1],
                        tt: ['[ap]m', f, 'ampm', p, 2],
                        T: ['[AP]', f, 'ampm', p, 1],
                        TT: ['[AP]M', f, 'ampm', p, 2],
                        Z: [''],
                        o: [''],
                        S: [''],
                    }, h = {
                        isoDate: 'yyyy-mm-dd',
                        isoTime: 'HH:MM:ss',
                        isoDateTime: 'yyyy-mm-dd\'T\'HH:MM:ss',
                        isoUtcDateTime: 'UTC:yyyy-mm-dd\'T\'HH:MM:ss\'Z\'',
                    };

                function f (e) {
                    e.toLowerCase().includes('p') &&
                    this.setHours(this.getHours() + 12);
                }

                function p () {}

                function m (e) {
                    var t = new RegExp('\\d+$').exec(e[0]);
                    if (t && void 0 !== t[0]) {
                        var n = d[e[0][0] + 'x'].slice('');
                        return n[0] = n[0](t[0]), n[3] = n[3](t[0]), n;
                    }
                    if (d[e[0]]) return d[e[0]];
                }

                function g (e) {
                    if (!e.tokenizer) {
                        var t = [], n = [];
                        for (var i in d) if (/\.*x$/.test(i)) {
                            var a = i[0] + '\\d+';
                            -1 === n.indexOf(a) && n.push(a);
                        } else -1 === t.indexOf(i[0]) && t.push(i[0]);
                        e.tokenizer = '(' +
                            (n.length > 0 ? n.join('|') + '|' : '') +
                            t.join('+|') + ')+?|.', e.tokenizer = new RegExp(
                            e.tokenizer, 'g');
                    }
                    return e.tokenizer;
                }

                function v (e, t, n) {
                    if (void 0 === e.rawday || !isFinite(e.rawday) &&
                        new Date(e.date.getFullYear(),
                            isFinite(e.rawmonth) ? e.month : e.date.getMonth() +
                                1, 0).getDate() >= e.day || '29' == e.day &&
                        !Number.isFinite(e.rawyear) ||
                        new Date(e.date.getFullYear(),
                            isFinite(e.rawmonth) ? e.month : e.date.getMonth() +
                                1, 0).getDate() >= e.day) return t;
                    if ('29' == e.day) {
                        var i = w(t.pos, n);
                        if ('yyyy' === i.targetMatch[0] && t.pos -
                            i.targetMatchIndex == 2) return t.remove = t.pos +
                            1, t;
                    } else if ('02' == e.month && '30' == e.day && void 0 !==
                        t.c) return e.day = '03', e.date.setDate(
                        3), e.date.setMonth(1), t.insert = [
                        {
                            pos: t.pos,
                            c: '0',
                        },
                        { pos: t.pos + 1, c: t.c }], t.caret = o.seekNext.call(
                        this, t.pos + 1), t;
                    return !1;
                }

                function y (e, t, n, i) {
                    var a, o, s = '';
                    for (g(n).lastIndex = 0; a = g(n).exec(e);) if (void 0 ===
                        t) if (o = m(a)) s += '(' + o[0] +
                        ')'; else switch (a[0]) {
                        case'[':
                            s += '(';
                            break;
                        case']':
                            s += ')?';
                            break;
                        default:
                            s += (0, r.default)(a[0]);
                    } else (o = m(a))
                        ? !0 !== i && o[3] ? s += o[3].call(t.date) : o[2]
                            ? s += t['raw' + o[2]]
                            : s += a[0]
                        : s += a[0];
                    return s;
                }

                function b (e, t, n) {
                    for (e = String(e), t = t || 2; e.length < t;) e = n ? e +
                        '0' : '0' + e;
                    return e;
                }

                function x (e, t, n) {
                    var i, a, r, o = { date: new Date(1, 0, 1) }, l = e;

                    function c (e, t, n) {
                        if (e[i] = 'ampm' === i
                            ? t
                            : t.replace(/[^0-9]/g, '0'), e['raw' +
                        i] = t, void 0 !== r) {
                            var a = e[i];
                            ('day' === i && 29 === parseInt(a) || 'month' ===
                                i && 2 === parseInt(a)) &&
                            (29 !== parseInt(e.day) || 2 !==
                                parseInt(e.month) || '' !== e.year && void 0 !==
                                e.year ||
                                e.date.setFullYear(2012, 1, 29)), 'day' === i &&
                            0 === parseInt(a) && (a = 1), 'month' === i &&
                            (a = parseInt(a)) > 0 && (a -= 1), 'year' === i &&
                            a.length < 4 && (a = b(a, 4, !0)), '' === a ||
                            isNaN(a) || r.call(e.date, a), 'ampm' === i &&
                            r.call(e.date, a);
                        }
                    }

                    if ('string' == typeof l) {
                        for (g(n).lastIndex = 0; a = g(n).exec(t);) {
                            var u = new RegExp('\\d+$').exec(a[0]),
                                h = u ? a[0][0] + 'x' : a[0], f = void 0;
                            if (u) {
                                var p = g(n).lastIndex, m = w(a.index, n);
                                g(n).lastIndex = p, f = l.slice(0,
                                    l.indexOf(m.nextMatch[0]));
                            } else f = l.slice(0, h.length);
                            Object.prototype.hasOwnProperty.call(d, h) &&
                            (i = d[h][2], r = d[h][1], c(o, f)), l = l.slice(
                                f.length);
                        }
                        return o;
                    }
                    if (l && 'object' === s(l) &&
                        Object.prototype.hasOwnProperty.call(l,
                            'date')) return l;
                }

                function _ (e, t) {return y(t.inputFormat, { date: e }, t);}

                function w (e, t) {
                    var n, i, a = 0, r = 0;
                    for (g(t).lastIndex = 0; i = g(t).
                        exec(t.inputFormat);) {
                        var o = new RegExp('\\d+$').exec(i[0]);
                        if ((a += r = o ? parseInt(o[0]) : i[0].length) >= e) {
                            n = i, i = g(t).exec(t.inputFormat);
                            break;
                        }
                    }
                    return {
                        targetMatchIndex: a - r,
                        nextMatch: i,
                        targetMatch: n,
                    };
                }

                i.default.extendAliases({
                    datetime: {
                        mask: function (e) {
                            return e.numericInput = !1, d.S = e.i18n.ordinalSuffix.join(
                                '|'), e.inputFormat = h[e.inputFormat] ||
                                e.inputFormat, e.displayFormat = h[e.displayFormat] ||
                                e.displayFormat ||
                                e.inputFormat, e.outputFormat = h[e.outputFormat] ||
                                e.outputFormat ||
                                e.inputFormat, e.placeholder = '' !==
                            e.placeholder
                                ? e.placeholder
                                : e.inputFormat.replace(/[[\]]/,
                                    ''), e.regex = y(e.inputFormat, void 0,
                                e), e.min = x(e.min, e.inputFormat,
                                e), e.max = x(e.max, e.inputFormat, e), null;
                        },
                        placeholder: '',
                        inputFormat: 'isoDateTime',
                        displayFormat: void 0,
                        outputFormat: void 0,
                        min: null,
                        max: null,
                        skipOptionalPartCharacter: '',
                        i18n: {
                            dayNames: [
                                'Mon',
                                'Tue',
                                'Wed',
                                'Thu',
                                'Fri',
                                'Sat',
                                'Sun',
                                'Monday',
                                'Tuesday',
                                'Wednesday',
                                'Thursday',
                                'Friday',
                                'Saturday',
                                'Sunday'],
                            monthNames: [
                                'Jan',
                                'Feb',
                                'Mar',
                                'Apr',
                                'May',
                                'Jun',
                                'Jul',
                                'Aug',
                                'Sep',
                                'Oct',
                                'Nov',
                                'Dec',
                                'January',
                                'February',
                                'March',
                                'April',
                                'May',
                                'June',
                                'July',
                                'August',
                                'September',
                                'October',
                                'November',
                                'December'],
                            ordinalSuffix: ['st', 'nd', 'rd', 'th'],
                        },
                        preValidation: function (e, t, n, i, a, r, o, s) {
                            if (s) return !0;
                            if (isNaN(n) && e[t] !== n) {
                                var l = w(t, a);
                                if (l.nextMatch && l.nextMatch[0] === n &&
                                    l.targetMatch[0].length > 1) {
                                    var c = d[l.targetMatch[0]][0];
                                    if (new RegExp(c).test(
                                        '0' + e[t - 1])) return e[t] = e[t -
                                    1], e[t - 1] = '0', {
                                        fuzzy: !0,
                                        buffer: e,
                                        refreshFromBuffer: {
                                            start: t - 1,
                                            end: t + 1,
                                        },
                                        pos: t + 1,
                                    };
                                }
                            }
                            return !0;
                        },
                        postValidation: function (e, t, n, i, a, r, o, s) {
                            var l, c;
                            if (o) return !0;
                            if (!1 === i && (((l = w(t + 1, a)).targetMatch &&
                                l.targetMatchIndex === t &&
                                l.targetMatch[0].length > 1 && void 0 !==
                                d[l.targetMatch[0]] ||
                                (l = w(t + 2, a)).targetMatch &&
                                l.targetMatchIndex === t + 1 &&
                                l.targetMatch[0].length > 1 && void 0 !==
                                d[l.targetMatch[0]]) &&
                            (c = d[l.targetMatch[0]][0]), void 0 !== c &&
                            (void 0 !== r.validPositions[t + 1] &&
                            new RegExp(c).test(n + '0')
                                ? (e[t] = n, e[t + 1] = '0', i = {
                                    pos: t + 2,
                                    caret: t,
                                })
                                : new RegExp(c).test('0' + n) &&
                                (e[t] = '0', e[t + 1] = n, i = {
                                    pos: t + 2,
                                })), !1 === i)) return i;
                            if (i.fuzzy && (e = i.buffer, t = i.pos), (l = w(t,
                                a)).targetMatch && l.targetMatch[0] &&
                            void 0 !== d[l.targetMatch[0]]) {
                                c = d[l.targetMatch[0]][0];
                                var h = e.slice(l.targetMatchIndex,
                                    l.targetMatchIndex +
                                    l.targetMatch[0].length);
                                !1 === new RegExp(c).test(h.join('')) && 2 ===
                                l.targetMatch[0].length &&
                                r.validPositions[l.targetMatchIndex] &&
                                r.validPositions[l.targetMatchIndex + 1] &&
                                (r.validPositions[l.targetMatchIndex +
                                1].input = '0');
                            }
                            var f = i, p = x(e.join(''), a.inputFormat, a);
                            return f && p.date.getTime() == p.date.getTime() &&
                            (a.prefillYear && (f = function (e, t, n) {
                                if (e.year !== e.rawyear) {
                                    var i = u.toString(),
                                        a = e.rawyear.replace(/[^0-9]/g, ''),
                                        r = i.slice(0, a.length),
                                        o = i.slice(a.length);
                                    if (2 === a.length && a === r) {
                                        var s = new Date(u, e.month - 1, e.day);
                                        e.day == s.getDate() &&
                                        (!n.max || n.max.date.getTime() >=
                                            s.getTime()) && (e.date.setFullYear(
                                            u), e.year = i, t.insert = [
                                            {
                                                pos: t.pos + 1, c: o[0],
                                            }, { pos: t.pos + 2, c: o[1] }]);
                                    }
                                }
                                return t;
                            }(p, f, a)), f = function (e, t, n, i, a) {
                                if (!t) return t;
                                if (n.min) {
                                    if (e.rawyear) {
                                        var r, o = e.rawyear.replace(/[^0-9]/g,
                                            ''),
                                            s = n.min.year.substr(0, o.length);
                                        if (o < s) {
                                            var l = w(t.pos, n);
                                            if (o = e.rawyear.substr(0,
                                                t.pos - l.targetMatchIndex + 1).
                                                replace(/[^0-9]/g,
                                                    '0'), (s = n.min.year.substr(
                                                0, o.length)) <=
                                            o) return t.remove = l.targetMatchIndex +
                                                o.length, t;
                                            if (o = 'yyyy' === l.targetMatch[0]
                                                ? e.rawyear.substr(1, 1)
                                                : e.rawyear.substr(0,
                                                    1), s = n.min.year.substr(2,
                                                1), r = n.max
                                                ? n.max.year.substr(2, 1)
                                                : o, 1 === o.length && s <= o &&
                                            o <= r && !0 !==
                                            a) return 'yyyy' ===
                                            l.targetMatch[0]
                                                ? (t.insert = [
                                                    {
                                                        pos: t.pos + 1,
                                                        c: o,
                                                        strict: !0,
                                                    }], t.caret = t.pos +
                                                    2, i.validPositions[t.pos].input = n.min.year[1])
                                                : (t.insert = [
                                                    {
                                                        pos: t.pos + 1,
                                                        c: n.min.year[1],
                                                        strict: !0,
                                                    },
                                                    {
                                                        pos: t.pos + 2,
                                                        c: o,
                                                        strict: !0,
                                                    }], t.caret = t.pos +
                                                    3, i.validPositions[t.pos].input = n.min.year[0]), t;
                                            t = !1;
                                        }
                                    }
                                    for (var c in e) -1 === c.indexOf('raw') &&
                                    e['raw'.concat(c)] &&
                                    (e[c], e['raw'.concat(c)]);
                                    t && e.year && e.year === e.rawyear &&
                                    n.min.date.getTime() ==
                                    n.min.date.getTime() &&
                                    (t = n.min.date.getTime() <=
                                        e.date.getTime());
                                }
                                return t && n.max && n.max.date.getTime() ==
                                n.max.date.getTime() &&
                                (t = n.max.date.getTime() >=
                                    e.date.getTime()), t;
                            }(p, f = v.call(this, p, f, a), a, r,
                                s)), void 0 !== t && f && i.pos !== t
                                ? {
                                    buffer: y(a.inputFormat, p, a).split(''),
                                    refreshFromBuffer: { start: t, end: i.pos },
                                    pos: i.caret || i.pos,
                                }
                                : f;
                        },
                        onKeyDown: function (e, t, n, i) {
                            e.ctrlKey && e.keyCode === a.default.RIGHT &&
                            (this.inputmask._valueSet(_(new Date, i)), c(this).
                                trigger('setvalue'));
                        },
                        onUnMask: function (e, t, n) {
                            return t ? y(n.outputFormat, x(e, n.inputFormat, n),
                                n, !0) : t;
                        },
                        casing: function (e, t, n, i) {
                            return 0 == t.nativeDef.indexOf('[ap]')
                                ? e.toLowerCase()
                                : 0 == t.nativeDef.indexOf('[AP]')
                                    ? e.toUpperCase()
                                    : e;
                        },
                        onBeforeMask: function (e, t) {
                            return '[object Date]' ===
                            Object.prototype.toString.call(e) &&
                            (e = _(e, t)), e;
                        },
                        insertMode: !1,
                        shiftPositions: !1,
                        keepStatic: !1,
                        inputmode: 'numeric',
                        prefillYear: !0,
                    },
                });
            },
            3851: function (e, t, n) {
                var i, a = (i = n(2394)) && i.__esModule ? i : { default: i },
                    r = n(8711), o = n(4713);
                a.default.extendDefinitions({
                    A: { validator: '[A-Za-zА-яЁёÀ-ÿµ]', casing: 'upper' },
                    '&': { validator: '[0-9A-Za-zА-яЁёÀ-ÿµ]', casing: 'upper' },
                    '#': { validator: '[0-9A-Fa-f]', casing: 'upper' },
                });
                var s = new RegExp('25[0-5]|2[0-4][0-9]|[01][0-9][0-9]');

                function l (e, t, n, i, a) {
                    return n - 1 > -1 && '.' !== t.buffer[n - 1]
                        ? (e = t.buffer[n - 1] + e, e = n - 2 > -1 && '.' !==
                        t.buffer[n - 2] ? t.buffer[n - 2] + e : '0' + e)
                        : e = '00' + e, s.test(e);
                }

                a.default.extendAliases({
                    cssunit: { regex: '[+-]?[0-9]+\\.?([0-9]+)?(px|em|rem|ex|%|in|cm|mm|pt|pc)' },
                    url: {
                        regex: '(https?|ftp)://.*',
                        autoUnmask: !1,
                        keepStatic: !1,
                        tabThrough: !0,
                    },
                    ip: {
                        mask: 'i[i[i]].j[j[j]].k[k[k]].l[l[l]]',
                        definitions: {
                            i: { validator: l },
                            j: { validator: l },
                            k: { validator: l },
                            l: { validator: l },
                        },
                        onUnMask: function (e, t, n) {return e;},
                        inputmode: 'numeric',
                    },
                    email: {
                        mask: '*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]',
                        greedy: !1,
                        casing: 'lower',
                        onBeforePaste: function (e, t) {
                            return (e = e.toLowerCase()).replace('mailto:', '');
                        },
                        definitions: {
                            '*': { validator: '[0-91-9A-Za-zА-яЁёÀ-ÿµ!#$%&\'*+/=?^_`{|}~-]' },
                            '-': { validator: '[0-9A-Za-z-]' },
                        },
                        onUnMask: function (e, t, n) {return e;},
                        inputmode: 'email',
                    },
                    mac: { mask: '##:##:##:##:##:##' },
                    vin: {
                        mask: 'V{13}9{4}',
                        definitions: {
                            V: {
                                validator: '[A-HJ-NPR-Za-hj-npr-z\\d]',
                                casing: 'upper',
                            },
                        },
                        clearIncomplete: !0,
                        autoUnmask: !0,
                    },
                    ssn: {
                        mask: '999-99-9999',
                        postValidation: function (
                            e, t, n, i, a, s, l) {
                            var c = o.getMaskTemplate.call(this, !0,
                                r.getLastValidPosition.call(this), !0, !0);
                            return /^(?!219-09-9999|078-05-1120)(?!666|000|9.{2}).{3}-(?!00).{2}-(?!0{4}).{4}$/.test(
                                c.join(''));
                        },
                    },
                });
            },
            207: function (e, t, n) {
                var i = s(n(2394)), a = s(n(4528)), r = s(n(7184)), o = n(8711);

                function s (e) {return e && e.__esModule ? e : { default: e };}

                var l = i.default.dependencyLib;

                function c (e, t) {
                    for (var n = '', a = 0; a <
                    e.length; a++) i.default.prototype.definitions[e.charAt(
                        a)] || t.definitions[e.charAt(a)] ||
                    t.optionalmarker[0] === e.charAt(a) ||
                    t.optionalmarker[1] === e.charAt(a) ||
                    t.quantifiermarker[0] === e.charAt(a) ||
                    t.quantifiermarker[1] === e.charAt(a) ||
                    t.groupmarker[0] === e.charAt(a) || t.groupmarker[1] ===
                    e.charAt(a) || t.alternatormarker === e.charAt(a)
                        ? n += '\\' + e.charAt(a)
                        : n += e.charAt(a);
                    return n;
                }

                function u (e, t, n, i) {
                    if (e.length > 0 && t > 0 && (!n.digitsOptional || i)) {
                        var a = e.indexOf(n.radixPoint), r = !1;
                        n.negationSymbol.back === e[e.length - 1] &&
                        (r = !0, e.length--), -1 === a &&
                        (e.push(n.radixPoint), a = e.length - 1);
                        for (var o = 1; o <= t; o++) isFinite(e[a + o]) ||
                        (e[a + o] = '0');
                    }
                    return r && e.push(n.negationSymbol.back), e;
                }

                function d (e, t) {
                    var n = 0;
                    if ('+' === e) {
                        for (n in t.validPositions) ;
                        n = o.seekNext.call(this, parseInt(n));
                    }
                    for (var i in t.tests) if ((i = parseInt(i)) >=
                        n) for (var a = 0, r = t.tests[i].length; a <
                    r; a++) if ((void 0 === t.validPositions[i] || '-' === e) &&
                        t.tests[i][a].match.def === e) return i +
                        (void 0 !== t.validPositions[i] && '-' !== e ? 1 : 0);
                    return n;
                }

                function h (e, t) {
                    var n = -1;
                    for (var i in t.validPositions) {
                        var a = t.validPositions[i];
                        if (a && a.match.def === e) {
                            n = parseInt(i);
                            break;
                        }
                    }
                    return n;
                }

                function f (e, t, n, i, a) {
                    var r = t.buffer ? t.buffer.indexOf(a.radixPoint) : -1,
                        o = (-1 !== r || i && a.jitMasking) &&
                            new RegExp(a.definitions[9].validator).test(e);
                    return a._radixDance && -1 !== r && o && null ==
                    t.validPositions[r] ? {
                        insert: {
                            pos: r === n ? r + 1 : r,
                            c: a.radixPoint,
                        }, pos: n,
                    } : o;
                }

                i.default.extendAliases({
                    numeric: {
                        mask: function (e) {
                            e.repeat = 0, e.groupSeparator === e.radixPoint &&
                            e.digits && '0' !== e.digits &&
                            ('.' === e.radixPoint
                                ? e.groupSeparator = ','
                                : ',' === e.radixPoint
                                    ? e.groupSeparator = '.'
                                    : e.groupSeparator = ''), ' ' ===
                            e.groupSeparator &&
                            (e.skipOptionalPartCharacter = void 0), e.placeholder.length >
                            1 && (e.placeholder = e.placeholder.charAt(
                                0)), 'radixFocus' === e.positionCaretOnClick &&
                            '' === e.placeholder &&
                            (e.positionCaretOnClick = 'lvp');
                            var t = '0', n = e.radixPoint;
                            !0 === e.numericInput && void 0 === e.__financeInput
                                ? (t = '1', e.positionCaretOnClick = 'radixFocus' ===
                                e.positionCaretOnClick
                                ? 'lvp'
                                : e.positionCaretOnClick, e.digitsOptional = !1, isNaN(
                                e.digits) &&
                                (e.digits = 2), e._radixDance = !1, n = ',' ===
                                e.radixPoint ? '?' : '!', '' !== e.radixPoint &&
                                void 0 === e.definitions[n] &&
                                (e.definitions[n] = {}, e.definitions[n].validator = '[' +
                                    e.radixPoint +
                                    ']', e.definitions[n].placeholder = e.radixPoint, e.definitions[n].static = !0, e.definitions[n].generated = !0))
                                : (e.__financeInput = !1, e.numericInput = !0);
                            var i, a = '[+]';
                            if (a += c(e.prefix, e), '' !== e.groupSeparator
                                ? (void 0 === e.definitions[e.groupSeparator] &&
                                (e.definitions[e.groupSeparator] = {}, e.definitions[e.groupSeparator].validator = '[' +
                                    e.groupSeparator +
                                    ']', e.definitions[e.groupSeparator].placeholder = e.groupSeparator, e.definitions[e.groupSeparator].static = !0, e.definitions[e.groupSeparator].generated = !0), a += e._mask(
                                    e))
                                : a += '9{+}', void 0 !== e.digits && 0 !==
                            e.digits) {
                                var o = e.digits.toString().split(',');
                                isFinite(o[0]) && o[1] && isFinite(o[1])
                                    ? a += n + t + '{' + e.digits + '}'
                                    : (isNaN(e.digits) || parseInt(e.digits) >
                                    0) &&
                                    (e.digitsOptional || e.jitMasking ? (i = a +
                                        n + t + '{0,' + e.digits +
                                        '}', e.keepStatic = !0) : a += n + t +
                                        '{' + e.digits + '}');
                            } else e.inputmode = 'numeric';
                            return a += c(e.suffix, e), a += '[-]', i && (a = [
                                i + c(e.suffix, e) + '[-]',
                                a]), e.greedy = !1, function (e) {
                                void 0 === e.parseMinMaxOptions &&
                                (null !== e.min && (e.min = e.min.toString().
                                    replace(new RegExp(
                                        (0, r.default)(e.groupSeparator), 'g'),
                                        ''), ',' === e.radixPoint &&
                                (e.min = e.min.replace(e.radixPoint,
                                    '.')), e.min = isFinite(e.min) ? parseFloat(
                                    e.min) : NaN, isNaN(e.min) &&
                                (e.min = Number.MIN_VALUE)), null !== e.max &&
                                (e.max = e.max.toString().
                                    replace(new RegExp(
                                        (0, r.default)(e.groupSeparator), 'g'),
                                        ''), ',' === e.radixPoint &&
                                (e.max = e.max.replace(e.radixPoint,
                                    '.')), e.max = isFinite(e.max) ? parseFloat(
                                    e.max) : NaN, isNaN(e.max) &&
                                (e.max = Number.MAX_VALUE)), e.parseMinMaxOptions = 'done');
                            }(e), a;
                        },
                        _mask: function (e) {
                            return '(' + e.groupSeparator + '999){+|1}';
                        },
                        digits: '*',
                        digitsOptional: !0,
                        enforceDigitsOnBlur: !1,
                        radixPoint: '.',
                        positionCaretOnClick: 'radixFocus',
                        _radixDance: !0,
                        groupSeparator: '',
                        allowMinus: !0,
                        negationSymbol: { front: '-', back: '' },
                        prefix: '',
                        suffix: '',
                        min: null,
                        max: null,
                        SetMaxOnOverflow: !1,
                        step: 1,
                        inputType: 'text',
                        unmaskAsNumber: !1,
                        roundingFN: Math.round,
                        inputmode: 'decimal',
                        shortcuts: { k: '000', m: '000000' },
                        placeholder: '0',
                        greedy: !1,
                        rightAlign: !0,
                        insertMode: !0,
                        autoUnmask: !1,
                        skipOptionalPartCharacter: '',
                        usePrototypeDefinitions: !1,
                        definitions: {
                            0: { validator: f },
                            1: { validator: f, definitionSymbol: '9' },
                            9: {
                                validator: '[0-90-9٠-٩۰-۹]',
                                definitionSymbol: '*',
                            },
                            '+': {
                                validator: function (e, t, n, i, a) {
                                    return a.allowMinus && ('-' === e || e ===
                                        a.negationSymbol.front);
                                },
                            },
                            '-': {
                                validator: function (e, t, n, i, a) {
                                    return a.allowMinus && e ===
                                        a.negationSymbol.back;
                                },
                            },
                        },
                        preValidation: function (e, t, n, i, a, r, o, s) {
                            var l;
                            if (!1 !== a.__financeInput && n ===
                                a.radixPoint) return !1;
                            if (l = a.shortcuts && a.shortcuts[n]) {
                                if (l.length > 1) for (var c = [], u = 0; u <
                                l.length; u++) c.push(
                                    { pos: t + u, c: l[u], strict: !1 });
                                return { insert: c };
                            }
                            var f = e.indexOf(a.radixPoint), p = t;
                            if (t = function (
                                e, t, n, i, a) {
                                return a._radixDance && a.numericInput && t !==
                                a.negationSymbol.back && e <= n &&
                                (n > 0 || t == a.radixPoint) &&
                                (void 0 === i.validPositions[e - 1] ||
                                    i.validPositions[e - 1].input !==
                                    a.negationSymbol.back) && (e -= 1), e;
                            }(t, n, f, r, a), '-' === n || n ===
                            a.negationSymbol.front) {
                                if (!0 !== a.allowMinus) return !1;
                                var m = !1, g = h('+', r), v = h('-', r);
                                return -1 !== g && (m = [g, v]), !1 !== m
                                    ? {
                                        remove: m,
                                        caret: p - a.negationSymbol.back.length,
                                    }
                                    : {
                                        insert: [
                                            {
                                                pos: d.call(this, '+', r),
                                                c: a.negationSymbol.front,
                                                fromIsValid: !0,
                                            },
                                            {
                                                pos: d.call(this, '-', r),
                                                c: a.negationSymbol.back,
                                                fromIsValid: void 0,
                                            }],
                                        caret: p + a.negationSymbol.back.length,
                                    };
                            }
                            if (n === a.groupSeparator) return { caret: p };
                            if (s) return !0;
                            if (-1 !== f && !0 === a._radixDance && !1 === i &&
                                n === a.radixPoint && void 0 !== a.digits &&
                                (isNaN(a.digits) || parseInt(a.digits) > 0) &&
                                f !== t) return {
                                caret: a._radixDance && t === f - 1 ? f + 1 : f,
                            };
                            if (!1 === a.__financeInput) if (i) {
                                if (a.digitsOptional) return { rewritePosition: o.end };
                                if (!a.digitsOptional) {
                                    if (o.begin > f && o.end <= f) return n ===
                                    a.radixPoint
                                        ? {
                                            insert: {
                                                pos: f + 1,
                                                c: '0',
                                                fromIsValid: !0,
                                            }, rewritePosition: f,
                                        }
                                        : { rewritePosition: f + 1 };
                                    if (o.begin < f) return {
                                        rewritePosition: o.begin - 1,
                                    };
                                }
                            } else if (!a.showMaskOnHover &&
                                !a.showMaskOnFocus && !a.digitsOptional &&
                                a.digits > 0 && '' === this.__valueGet.call(
                                    this.el)) return { rewritePosition: f };
                            return { rewritePosition: t };
                        },
                        postValidation: function (e, t, n, i, a, r, o) {
                            if (!1 === i) return i;
                            if (o) return !0;
                            if (null !== a.min || null !== a.max) {
                                var s = a.onUnMask(e.slice().reverse().join(''),
                                    void 0,
                                    l.extend({}, a, { unmaskAsNumber: !0 }));
                                if (null !== a.min && s < a.min &&
                                    (s.toString().length >
                                        a.min.toString().length || s <
                                        0)) return !1;
                                if (null !== a.max && s >
                                    a.max) return !!a.SetMaxOnOverflow && {
                                    refreshFromBuffer: !0,
                                    buffer: u(a.max.toString().
                                        replace('.', a.radixPoint).
                                        split(''), a.digits, a).reverse(),
                                };
                            }
                            return i;
                        },
                        onUnMask: function (e, t, n) {
                            if ('' === t && !0 === n.nullable) return t;
                            var i = e.replace(n.prefix, '');
                            return i = (i = i.replace(n.suffix, '')).replace(
                                new RegExp((0, r.default)(n.groupSeparator),
                                    'g'), ''), '' !== n.placeholder.charAt(0) &&
                            (i = i.replace(
                                new RegExp(n.placeholder.charAt(0), 'g'),
                                '0')), n.unmaskAsNumber ? ('' !==
                            n.radixPoint && -1 !== i.indexOf(n.radixPoint) &&
                            (i = i.replace(r.default.call(this, n.radixPoint),
                                '.')), i = (i = i.replace(new RegExp(
                                '^' + (0, r.default)(n.negationSymbol.front)),
                                '-')).replace(new RegExp(
                                (0, r.default)(n.negationSymbol.back) + '$'),
                                ''), Number(i)) : i;
                        },
                        isComplete: function (e, t) {
                            var n = (t.numericInput
                                ? e.slice().reverse()
                                : e).join('');
                            return n = (n = (n = (n = (n = n.replace(new RegExp(
                                '^' + (0, r.default)(t.negationSymbol.front)),
                                '-')).replace(new RegExp(
                                (0, r.default)(t.negationSymbol.back) + '$'),
                                '')).replace(t.prefix, '')).replace(t.suffix,
                                '')).replace(new RegExp(
                                (0, r.default)(t.groupSeparator) + '([0-9]{3})',
                                'g'), '$1'), ',' === t.radixPoint &&
                            (n = n.replace((0, r.default)(t.radixPoint),
                                '.')), isFinite(n);
                        },
                        onBeforeMask: function (e, t) {
                            var n = t.radixPoint || ',';
                            isFinite(t.digits) &&
                            (t.digits = parseInt(t.digits)), 'number' !=
                            typeof e && 'number' !== t.inputType || '' === n ||
                            (e = e.toString().replace('.', n));
                            var i = '-' === e.charAt(0) || e.charAt(0) ===
                                t.negationSymbol.front, a = e.split(n),
                                o = a[0].replace(/[^\-0-9]/g, ''),
                                s = a.length > 1
                                    ? a[1].replace(/[^0-9]/g, '')
                                    : '', l = a.length > 1;
                            e = o + ('' !== s ? n + s : s);
                            var c = 0;
                            if ('' !== n &&
                                (c = t.digitsOptional ? t.digits < s.length
                                    ? t.digits
                                    : s.length : t.digits, '' !== s ||
                                !t.digitsOptional)) {
                                var d = Math.pow(10, c || 1);
                                e = e.replace((0, r.default)(n), '.'), isNaN(
                                    parseFloat(e)) ||
                                (e = (t.roundingFN(parseFloat(e) * d) /
                                    d).toFixed(c)), e = e.toString().
                                    replace('.', n);
                            }
                            if (0 === t.digits && -1 !== e.indexOf(n) &&
                            (e = e.substring(0, e.indexOf(n))), null !==
                            t.min || null !== t.max) {
                                var h = e.toString().
                                    replace(n, '.');
                                null !== t.min && h < t.min
                                    ? e = t.min.toString().replace('.', n)
                                    : null !== t.max && h > t.max &&
                                    (e = t.max.toString().replace('.', n));
                            }
                            return i && '-' !== e.charAt(0) && (e = '-' + e), u(
                                e.toString().split(''), c, t, l).join('');
                        },
                        onBeforeWrite: function (e, t, n, i) {
                            function a (e, t) {
                                if (!1 !== i.__financeInput || t) {
                                    var n = e.indexOf(i.radixPoint);
                                    -1 !== n && e.splice(n, 1);
                                }
                                if ('' !== i.groupSeparator) for (; -1 !==
                                                                    (n = e.indexOf(
                                                                        i.groupSeparator));) e.splice(
                                    n, 1);
                                return e;
                            }

                            var o, s = function (e, t) {
                                var n = new RegExp('(^' +
                                    ('' !== t.negationSymbol.front
                                        ? (0, r.default)(
                                        t.negationSymbol.front) + '?'
                                        : '') + (0, r.default)(t.prefix) +
                                    ')(.*)(' + (0, r.default)(t.suffix) +
                                    ('' != t.negationSymbol.back
                                        ? (0, r.default)(
                                        t.negationSymbol.back) + '?'
                                        : '') + '$)').exec(
                                    e.slice().reverse().join('')),
                                    i = n ? n[2] : '', a = !1;
                                return i && (i = i.split(
                                    t.radixPoint.charAt(0))[0], a = new RegExp(
                                    '^[0' + t.groupSeparator + ']*').exec(
                                    i)), !(!a ||
                                    !(a[0].length > 1 || a[0].length > 0 &&
                                        a[0].length < i.length)) && a;
                            }(t, i);
                            if (s) for (var c = t.join('').
                                    lastIndexOf(s[0].split('').reverse().join('')) -
                                (s[0] == s.input ? 0 : 1), d = s[0] == s.input
                                ? 1
                                : 0, h = s[0].length - d; h >
                                        0; h--) delete this.maskset.validPositions[c +
                            h], delete t[c + h];
                            if (e) switch (e.type) {
                                case'blur':
                                case'checkval':
                                    if (null !== i.min) {
                                        var f = i.onUnMask(
                                            t.slice().reverse().join(''),
                                            void 0, l.extend({}, i,
                                                { unmaskAsNumber: !0 }));
                                        if (null !== i.min && f <
                                            i.min) return {
                                            refreshFromBuffer: !0,
                                            buffer: u(i.min.toString().
                                                replace('.', i.radixPoint).
                                                split(''), i.digits, i).
                                                reverse(),
                                        };
                                    }
                                    if (t[t.length - 1] ===
                                        i.negationSymbol.front) {
                                        var p = new RegExp('(^' +
                                            ('' != i.negationSymbol.front
                                                ? (0, r.default)(
                                                i.negationSymbol.front) + '?'
                                                : '') +
                                            (0, r.default)(i.prefix) +
                                            ')(.*)(' +
                                            (0, r.default)(i.suffix) +
                                            ('' != i.negationSymbol.back
                                                ? (0, r.default)(
                                                i.negationSymbol.back) + '?'
                                                : '') + '$)').exec(
                                            a(t.slice(), !0).
                                                reverse().
                                                join(''));
                                        0 == (p ? p[2] : '') && (o = {
                                            refreshFromBuffer: !0,
                                            buffer: [0],
                                        });
                                    } else '' !== i.radixPoint && t[0] ===
                                    i.radixPoint && (o && o.buffer
                                        ? o.buffer.shift()
                                        : (t.shift(), o = {
                                            refreshFromBuffer: !0,
                                            buffer: a(t),
                                        }));
                                    if (i.enforceDigitsOnBlur) {
                                        var m = (o = o || {}) && o.buffer ||
                                            t.slice().reverse();
                                        o.refreshFromBuffer = !0, o.buffer = u(
                                            m, i.digits, i, !0).reverse();
                                    }
                            }
                            return o;
                        },
                        onKeyDown: function (e, t, n, i) {
                            var r, o = l(this);
                            if (e.ctrlKey) switch (e.keyCode) {
                                case a.default.UP:
                                    return this.inputmask.__valueSet.call(this,
                                        parseFloat(
                                            this.inputmask.unmaskedvalue()) +
                                        parseInt(i.step)), o.trigger(
                                        'setvalue'), !1;
                                case a.default.DOWN:
                                    return this.inputmask.__valueSet.call(this,
                                        parseFloat(
                                            this.inputmask.unmaskedvalue()) -
                                        parseInt(i.step)), o.trigger(
                                        'setvalue'), !1;
                            }
                            if (!e.shiftKey &&
                                (e.keyCode === a.default.DELETE || e.keyCode ===
                                    a.default.BACKSPACE || e.keyCode ===
                                    a.default.BACKSPACE_SAFARI) && n.begin !==
                                t.length) {
                                if (t[e.keyCode === a.default.DELETE
                                    ? n.begin - 1
                                    : n.end] ===
                                    i.negationSymbol.front) return r = t.slice().
                                    reverse(), '' !== i.negationSymbol.front &&
                                r.shift(), '' !== i.negationSymbol.back &&
                                r.pop(), o.trigger('setvalue',
                                    [r.join(''), n.begin]), !1;
                                if (!0 === i._radixDance) {
                                    var s = t.indexOf(i.radixPoint);
                                    if (i.digitsOptional) {
                                        if (0 === s) return (r = t.slice().
                                            reverse()).pop(), o.trigger(
                                            'setvalue', [
                                                r.join(''),
                                                n.begin >= r.length
                                                    ? r.length
                                                    : n.begin]), !1;
                                    } else if (-1 !== s &&
                                        (n.begin < s || n.end < s ||
                                            e.keyCode === a.default.DELETE &&
                                            n.begin === s)) return n.begin !==
                                    n.end || e.keyCode !==
                                    a.default.BACKSPACE && e.keyCode !==
                                    a.default.BACKSPACE_SAFARI ||
                                    n.begin++, (r = t.slice().reverse()).splice(
                                        r.length - n.begin,
                                        n.begin - n.end + 1), r = u(r, i.digits,
                                        i).join(''), o.trigger('setvalue', [
                                        r,
                                        n.begin >= r.length
                                            ? s + 1
                                            : n.begin]), !1;
                                }
                            }
                        },
                    },
                    currency: {
                        prefix: '',
                        groupSeparator: ',',
                        alias: 'numeric',
                        digits: 2,
                        digitsOptional: !1,
                    },
                    decimal: { alias: 'numeric' },
                    integer: {
                        alias: 'numeric',
                        inputmode: 'numeric',
                        digits: 0,
                    },
                    percentage: {
                        alias: 'numeric',
                        min: 0,
                        max: 100,
                        suffix: ' %',
                        digits: 0,
                        allowMinus: !1,
                    },
                    indianns: {
                        alias: 'numeric',
                        _mask: function (e) {
                            return '(' + e.groupSeparator + '99){*|1}(' +
                                e.groupSeparator + '999){1|1}';
                        },
                        groupSeparator: ',',
                        radixPoint: '.',
                        placeholder: '0',
                        digits: 2,
                        digitsOptional: !1,
                    },
                });
            },
            9380: function (e, t, n) {
                var i;
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.default = void 0;
                var a = ((i = n(8741)) && i.__esModule
                    ? i
                    : { default: i }).default ? window : {};
                t.default = a;
            },
            7760: function (e, t, n) {
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.applyInputValue = u, t.clearOptionalTail = d, t.checkVal = h, t.HandleNativePlaceholder = function (
                    e, t) {
                    var n = e
                        ? e.inputmask
                        : this;
                    if (l.ie) {
                        if (e.inputmask._valueGet() !== t &&
                            (e.placeholder !== t || '' === e.placeholder)) {
                            var i = o.getBuffer.call(n).
                                slice(), a = e.inputmask._valueGet();
                            if (a !== t) {
                                var r = o.getLastValidPosition.call(n);
                                -1 === r && a ===
                                o.getBufferTemplate.call(n).join('')
                                    ? i = []
                                    : -1 !== r && d.call(n, i), f(e, i);
                            }
                        }
                    } else e.placeholder !== t &&
                    (e.placeholder = t, '' === e.placeholder &&
                    e.removeAttribute('placeholder'));
                }, t.unmaskedvalue = function (e) {
                    var t = e
                        ? e.inputmask
                        : this, n = t.opts, i = t.maskset;
                    if (e) {
                        if (void 0 === e.inputmask) return e.value;
                        e.inputmask && e.inputmask.refreshValue &&
                        u(e, e.inputmask._valueGet(!0));
                    }
                    var a = [], r = i.validPositions;
                    for (var s in r) r[s] && r[s].match &&
                    (1 != r[s].match.static || Array.isArray(i.metadata) &&
                        !0 !== r[s].generatedInput) && a.push(r[s].input);
                    var l = 0 === a.length ? '' : (t.isRTL
                        ? a.reverse()
                        : a).join('');
                    if ('function' == typeof n.onUnMask) {
                        var c = (t.isRTL
                            ? o.getBuffer.call(t).slice().reverse()
                            : o.getBuffer.call(t)).join('');
                        l = n.onUnMask.call(t, c, l, n);
                    }
                    return l;
                }, t.writeBuffer = f;
                var i, a = (i = n(4528)) && i.__esModule ? i : { default: i },
                    r = n(4713), o = n(8711), s = n(7215), l = n(9845),
                    c = n(6030);

                function u (e, t) {
                    var n = e ? e.inputmask : this, i = n.opts;
                    e.inputmask.refreshValue = !1, 'function' ==
                    typeof i.onBeforeMask &&
                    (t = i.onBeforeMask.call(n, t, i) || t), h(e, !0, !1,
                        t = t.toString().split('')), n.undoValue = n._valueGet(
                        !0), (i.clearMaskOnLostFocus || i.clearIncomplete) &&
                    e.inputmask._valueGet() ===
                    o.getBufferTemplate.call(n).join('') && -1 ===
                    o.getLastValidPosition.call(n) && e.inputmask._valueSet('');
                }

                function d (e) {
                    e.length = 0;
                    for (var t, n = r.getMaskTemplate.call(this, !0, 0, !0,
                        void 0, !0); void 0 !== (t = n.shift());) e.push(t);
                    return e;
                }

                function h (e, t, n, i, a) {
                    var l = e ? e.inputmask : this, u = l.maskset, d = l.opts,
                        h = l.dependencyLib, p = i.slice(), m = '', g = -1,
                        v = void 0, y = d.skipOptionalPartCharacter;
                    d.skipOptionalPartCharacter = '', o.resetMaskSet.call(
                        l), u.tests = {}, g = d.radixPoint
                        ? o.determineNewCaretPosition.call(l,
                            { begin: 0, end: 0 }, !1, !1 === d.__financeInput
                                ? 'radixFocus'
                                : void 0).begin
                        : 0, u.p = g, l.caretPos = { begin: g };
                    var b = [], x = l.caretPos;
                    if (p.forEach((function (e, t) {
                        if (void 0 !== e) {
                            var i = new h.Event('_checkval');
                            i.which = e.toString().charCodeAt(0), m += e;
                            var a = o.getLastValidPosition.call(l, void 0, !0);
                            !function (
                                e, t) {
                                for (var n = r.getMaskTemplate.call(l, !0, 0).
                                    slice(e, o.seekNext.call(l, e, !1, !1)).
                                    join('').
                                    replace(/'/g, ''), i = n.indexOf(t); i >
                                     0 && " " === n[i - 1];) i--;
                                var a = 0 === i && !o.isMask.call(l, e) &&
                                    (r.getTest.call(l, e).match.nativeDef ===
                                        t.charAt(0) || !0 ===
                                        r.getTest.call(l, e).match.static &&
                                        r.getTest.call(l, e).match.nativeDef ===
                                        '\'' + t.charAt(0) || ' ' ===
                                        r.getTest.call(l, e).match.nativeDef &&
                                        (r.getTest.call(l,
                                            e + 1).match.nativeDef ===
                                            t.charAt(0) || !0 ===
                                            r.getTest.call(l,
                                                e + 1).match.static &&
                                            r.getTest.call(l,
                                                e + 1).match.nativeDef ===
                                            '\'' +
                                            t.charAt(0)));
                                if (!a && i > 0 && !o.isMask.call(l, e, !1,
                                    !0)) {
                                    var s = o.seekNext.call(l, e);
                                    l.caretPos.begin < s &&
                                    (l.caretPos = { begin: s });
                                }
                                return a;
                            }(g, m)
                                ? (v = c.EventHandlers.keypressEvent.call(l, i,
                                !0, !1, n, l.caretPos.begin)) &&
                                (g = l.caretPos.begin + 1, m = '')
                                : v = c.EventHandlers.keypressEvent.call(l, i,
                                !0, !1, n, a + 1), v ? (void 0 !== v.pos &&
                            u.validPositions[v.pos] && !0 ===
                            u.validPositions[v.pos].match.static && void 0 ===
                            u.validPositions[v.pos].alternation &&
                            (b.push(v.pos), l.isRTL ||
                            (v.forwardPosition = v.pos + 1)), f.call(l, void 0,
                                o.getBuffer.call(l), v.forwardPosition, i,
                                !1), l.caretPos = {
                                begin: v.forwardPosition,
                                end: v.forwardPosition,
                            }, x = l.caretPos) : void 0 ===
                            u.validPositions[t] && p[t] ===
                            r.getPlaceholder.call(l, t) &&
                            o.isMask.call(l, t, !0)
                                ? l.caretPos.begin++
                                : l.caretPos = x;
                        }
                    })), b.length > 0) {
                        var _, w, k = o.seekNext.call(l, -1, void 0, !1);
                        if (!s.isComplete.call(l, o.getBuffer.call(l)) &&
                            b.length <= k ||
                            s.isComplete.call(l, o.getBuffer.call(l)) &&
                            b.length > 0 && b.length !== k && 0 ===
                            b[0]) for (var M = k; void 0 !== (_ = b.shift());) {
                            var L = new h.Event('_checkval');
                            if ((w = u.validPositions[_]).generatedInput = !0, L.which = w.input.charCodeAt(
                                0), (v = c.EventHandlers.keypressEvent.call(l,
                                L, !0, !1, n, M)) && void 0 !== v.pos &&
                            v.pos !== _ && u.validPositions[v.pos] && !0 ===
                            u.validPositions[v.pos].match.static) b.push(
                                v.pos); else if (!v) break;
                            M++;
                        }
                    }
                    t && f.call(l, e, o.getBuffer.call(l),
                        v ? v.forwardPosition : l.caretPos.begin,
                        a || new h.Event('checkval'),
                        a && 'input' === a.type && l.undoValue !==
                        l._valueGet(!0)), d.skipOptionalPartCharacter = y;
                }

                function f (e, t, n, i, r) {
                    var l = e ? e.inputmask : this, c = l.opts,
                        u = l.dependencyLib;
                    if (i && 'function' == typeof c.onBeforeWrite) {
                        var d = c.onBeforeWrite.call(l, i, t, n, c);
                        if (d) {
                            if (d.refreshFromBuffer) {
                                var h = d.refreshFromBuffer;
                                s.refreshFromBuffer.call(l,
                                    !0 === h ? h : h.start, h.end,
                                    d.buffer || t), t = o.getBuffer.call(l, !0);
                            }
                            void 0 !== n &&
                            (n = void 0 !== d.caret ? d.caret : n);
                        }
                    }
                    if (void 0 !== e &&
                        (e.inputmask._valueSet(t.join('')), void 0 === n ||
                        void 0 !== i && 'blur' === i.type ||
                        o.caret.call(l, e, n, void 0, void 0,
                            void 0 !== i && 'keydown' === i.type &&
                            (i.keyCode === a.default.DELETE || i.keyCode ===
                                a.default.BACKSPACE)), !0 === r)) {
                        var f = u(e), p = e.inputmask._valueGet();
                        e.inputmask.skipInputEvent = !0, f.trigger(
                            'input'), setTimeout((function () {
                            p === o.getBufferTemplate.call(l).join('')
                                ? f.trigger('cleared')
                                : !0 === s.isComplete.call(l, t) &&
                                f.trigger('complete');
                        }), 0);
                    }
                }
            },
            2394: function (e, t, n) {
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.default = void 0, n(7149), n(3194);
                var i = n(157), a = g(n(4963)), r = g(n(9380)), o = n(2391),
                    s = n(4713), l = n(8711), c = n(7215), u = n(7760),
                    d = n(9716), h = g(n(7392)), f = g(n(3976)), p = g(n(8741));

                function m (e) {
                    return (m = 'function' == typeof Symbol && 'symbol' ==
                    typeof Symbol.iterator
                        ? function (e) {return typeof e;}
                        : function (e) {
                            return e && 'function' == typeof Symbol &&
                            e.constructor === Symbol && e !== Symbol.prototype
                                ? 'symbol'
                                : typeof e;
                        })(e);
                }

                function g (e) {return e && e.__esModule ? e : { default: e };}

                var v = r.default.document, y = '_inputmask_opts';

                function b (e, t, n) {
                    if (p.default) {
                        if (!(this instanceof b)) return new b(e, t, n);
                        this.dependencyLib = a.default, this.el = void 0, this.events = {}, this.maskset = void 0, !0 !==
                        n &&
                        ('[object Object]' === Object.prototype.toString.call(e)
                            ? t = e
                            : (t = t || {}, e &&
                            (t.alias = e)), this.opts = a.default.extend(!0, {},
                            this.defaults, t), this.noMasksCache = t &&
                            void 0 !== t.definitions, this.userOptions = t ||
                            {}, x(this.opts.alias, t,
                            this.opts)), this.refreshValue = !1, this.undoValue = void 0, this.$el = void 0, this.skipKeyPressEvent = !1, this.skipInputEvent = !1, this.validationEvent = !1, this.ignorable = !1, this.maxLength, this.mouseEnter = !1, this.originalPlaceholder = void 0, this.isComposing = !1;
                    }
                }

                function x (e, t, n) {
                    var i = b.prototype.aliases[e];
                    return i ? (i.alias &&
                    x(i.alias, void 0, n), a.default.extend(!0, n,
                        i), a.default.extend(!0, n, t), !0) : (null ===
                    n.mask && (n.mask = e), !1);
                }

                b.prototype = {
                    dataAttribute: 'data-inputmask',
                    defaults: f.default,
                    definitions: h.default,
                    aliases: {},
                    masksCache: {},
                    get isRTL () {
                        return this.opts.isRTL || this.opts.numericInput;
                    },
                    mask: function (e) {
                        var t = this;
                        return 'string' == typeof e &&
                        (e = v.getElementById(e) ||
                            v.querySelectorAll(e)), (e = e.nodeName
                            ? [e]
                            : Array.isArray(e) ? e : Array.from(e)).forEach(
                            (function (e, n) {
                                var s = a.default.extend(!0, {}, t.opts);
                                if (function (e, t, n, i) {
                                    function o (
                                        t, a) {
                                        var o = '' === i ? t : i + '-' + t;
                                        null !==
                                        (a = void 0 !== a ? a : e.getAttribute(
                                            o)) && ('string' == typeof a &&
                                        (0 === t.indexOf('on')
                                            ? a = r.default[a]
                                            : 'false' === a
                                                ? a = !1
                                                : 'true' === a &&
                                                (a = !0)), n[t] = a);
                                    }

                                    if (!0 === t.importDataAttributes) {
                                        var s, l, c, u, d = e.getAttribute(i);
                                        if (d && '' !== d &&
                                        (d = d.replace(/'/g,
                                            '"'), l = JSON.parse('{' + d +
                                            '}')), l) for (u in c = void 0, l) if ('alias' ===
                                            u.toLowerCase()) {
                                            c = l[u];
                                            break;
                                        }
                                        for (s in o('alias', c), n.alias &&
                                        x(n.alias, n, t), t) {
                                            if (l) for (u in c = void 0, l) if (u.toLowerCase() ===
                                                s.toLowerCase()) {
                                                c = l[u];
                                                break;
                                            }
                                            o(s, c);
                                        }
                                    }
                                    return a.default.extend(!0, t,
                                        n), ('rtl' === e.dir || t.rightAlign) &&
                                    (e.style.textAlign = 'right'), ('rtl' ===
                                        e.dir || t.numericInput) &&
                                    (e.dir = 'ltr', e.removeAttribute(
                                        'dir'), t.isRTL = !0), Object.keys(
                                        n).length;
                                }(e, s, a.default.extend(!0, {}, t.userOptions),
                                    t.dataAttribute)) {
                                    var l = (0, o.generateMaskSet)(s,
                                        t.noMasksCache);
                                    void 0 !== l && (void 0 !== e.inputmask &&
                                    (e.inputmask.opts.autoUnmask = !0, e.inputmask.remove()), e.inputmask = new b(
                                        void 0, void 0,
                                        !0), e.inputmask.opts = s, e.inputmask.noMasksCache = t.noMasksCache, e.inputmask.userOptions = a.default.extend(
                                        !0, {},
                                        t.userOptions), e.inputmask.el = e, e.inputmask.$el = (0, a.default)(
                                        e), e.inputmask.maskset = l, a.default.data(
                                        e, y, t.userOptions), i.mask.call(
                                        e.inputmask));
                                }
                            })), e && e[0] && e[0].inputmask || this;
                    },
                    option: function (e, t) {
                        return 'string' == typeof e
                            ? this.opts[e]
                            : 'object' === m(e) ? (a.default.extend(
                                this.userOptions, e), this.el && !0 !== t &&
                            this.mask(this.el), this) : void 0;
                    },
                    unmaskedvalue: function (e) {
                        if (this.maskset = this.maskset ||
                            (0, o.generateMaskSet)(this.opts,
                                this.noMasksCache), void 0 === this.el ||
                        void 0 !== e) {
                            var t = ('function' ==
                                typeof this.opts.onBeforeMask &&
                                this.opts.onBeforeMask.call(this, e,
                                    this.opts) || e).split('');
                            u.checkVal.call(this, void 0, !1, !1,
                                t), 'function' ==
                            typeof this.opts.onBeforeWrite &&
                            this.opts.onBeforeWrite.call(this, void 0,
                                l.getBuffer.call(this), 0, this.opts);
                        }
                        return u.unmaskedvalue.call(this, this.el);
                    },
                    remove: function () {
                        if (this.el) {
                            a.default.data(this.el, y, null);
                            var e = this.opts.autoUnmask ? (0, u.unmaskedvalue)(
                                this.el) : this._valueGet(this.opts.autoUnmask);
                            e !== l.getBufferTemplate.call(this).join('')
                                ? this._valueSet(e, this.opts.autoUnmask)
                                : this._valueSet(''), d.EventRuler.off(
                                this.el), Object.getOwnPropertyDescriptor &&
                            Object.getPrototypeOf
                                ? Object.getOwnPropertyDescriptor(
                                Object.getPrototypeOf(this.el), 'value') &&
                                this.__valueGet &&
                                Object.defineProperty(this.el, 'value', {
                                    get: this.__valueGet,
                                    set: this.__valueSet,
                                    configurable: !0,
                                })
                                : v.__lookupGetter__ &&
                                this.el.__lookupGetter__('value') &&
                                this.__valueGet &&
                                (this.el.__defineGetter__('value',
                                    this.__valueGet), this.el.__defineSetter__(
                                    'value',
                                    this.__valueSet)), this.el.inputmask = void 0;
                        }
                        return this.el;
                    },
                    getemptymask: function () {
                        return this.maskset = this.maskset ||
                            (0, o.generateMaskSet)(this.opts,
                                this.noMasksCache), l.getBufferTemplate.call(
                            this).join('');
                    },
                    hasMaskedValue: function () {return !this.opts.autoUnmask;},
                    isComplete: function () {
                        return this.maskset = this.maskset ||
                            (0, o.generateMaskSet)(this.opts,
                                this.noMasksCache), c.isComplete.call(this,
                            l.getBuffer.call(this));
                    },
                    getmetadata: function () {
                        if (this.maskset = this.maskset ||
                            (0, o.generateMaskSet)(this.opts,
                                this.noMasksCache), Array.isArray(
                            this.maskset.metadata)) {
                            var e = s.getMaskTemplate.call(this, !0, 0, !1).
                                join('');
                            return this.maskset.metadata.forEach((function (t) {
                                return t.mask !== e || (e = t, !1);
                            })), e;
                        }
                        return this.maskset.metadata;
                    },
                    isValid: function (e) {
                        if (this.maskset = this.maskset ||
                            (0, o.generateMaskSet)(this.opts,
                                this.noMasksCache), e) {
                            var t = ('function' ==
                                typeof this.opts.onBeforeMask &&
                                this.opts.onBeforeMask.call(this, e,
                                    this.opts) || e).split('');
                            u.checkVal.call(this, void 0, !0, !1, t);
                        } else e = this.isRTL ? l.getBuffer.call(this).
                            slice().
                            reverse().
                            join('') : l.getBuffer.call(this).join('');
                        for (var n = l.getBuffer.call(
                            this), i = l.determineLastRequiredPosition.call(
                            this), a = n.length - 1; a > i &&
                             !l.isMask.call(this, a); a--) ;
                        return n.splice(i, a + 1 - i), c.isComplete.call(this,
                            n) && e === (this.isRTL ? l.getBuffer.call(this).
                            slice().
                            reverse().
                            join('') : l.getBuffer.call(this).join(''));
                    },
                    format: function (e, t) {
                        this.maskset = this.maskset ||
                            (0, o.generateMaskSet)(this.opts,
                                this.noMasksCache);
                        var n = ('function' == typeof this.opts.onBeforeMask &&
                            this.opts.onBeforeMask.call(this, e, this.opts) ||
                            e).split('');
                        u.checkVal.call(this, void 0, !0, !1, n);
                        var i = this.isRTL ? l.getBuffer.call(this).
                            slice().
                            reverse().
                            join('') : l.getBuffer.call(this).join('');
                        return t
                            ? { value: i, metadata: this.getmetadata() }
                            : i;
                    },
                    setValue: function (e) {
                        this.el &&
                        (0, a.default)(this.el).trigger('setvalue', [e]);
                    },
                    analyseMask: o.analyseMask,
                }, b.extendDefaults = function (e) {
                    a.default.extend(!0, b.prototype.defaults, e);
                }, b.extendDefinitions = function (e) {
                    a.default.extend(!0, b.prototype.definitions, e);
                }, b.extendAliases = function (e) {
                    a.default.extend(!0, b.prototype.aliases, e);
                }, b.format = function (e, t, n) {
                    return b(t).
                        format(e, n);
                }, b.unmask = function (e, t) {
                    return b(t).
                        unmaskedvalue(e);
                }, b.isValid = function (e, t) {
                    return b(t).
                        isValid(e);
                }, b.remove = function (e) {
                    'string' == typeof e && (e = v.getElementById(e) ||
                        v.querySelectorAll(e)), (e = e.nodeName
                        ? [e]
                        : e).forEach(
                        (function (e) {e.inputmask && e.inputmask.remove();}));
                }, b.setValue = function (e, t) {
                    'string' == typeof e && (e = v.getElementById(e) ||
                        v.querySelectorAll(e)), (e = e.nodeName
                        ? [e]
                        : e).forEach((function (e) {
                        e.inputmask
                            ? e.inputmask.setValue(t)
                            : (0, a.default)(e).trigger('setvalue', [t]);
                    }));
                }, b.dependencyLib = a.default, r.default.Inputmask = b;
                var _ = b;
                t.default = _;
            },
            5296: function (e, t, n) {
                function i (e) {
                    return (i = 'function' == typeof Symbol && 'symbol' ==
                    typeof Symbol.iterator
                        ? function (e) {return typeof e;}
                        : function (e) {
                            return e && 'function' == typeof Symbol &&
                            e.constructor === Symbol && e !== Symbol.prototype
                                ? 'symbol'
                                : typeof e;
                        })(e);
                }

                var a = f(n(9380)), r = f(n(2394)), o = f(n(8741));

                function s (e, t) {
                    return !t || 'object' !== i(t) && 'function' != typeof t
                        ? function (e) {
                            if (void 0 === e) throw new ReferenceError(
                                'this hasn\'t been initialised - super() hasn\'t been called');
                            return e;
                        }(e)
                        : t;
                }

                function l (e) {
                    var t = 'function' == typeof Map
                        ? new Map
                        : void 0;
                    return (l = function (e) {
                        if (null === e || (n = e, -1 ===
                        Function.toString.call(n).
                            indexOf('[native code]'))) return e;
                        var n;
                        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 c(e, arguments, h(this).constructor);
                        }

                        return i.prototype = Object.create(e.prototype, {
                            constructor: {
                                value: i,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), d(i, e);
                    })(e);
                }

                function c (e, t, n) {
                    return (c = u()
                        ? Reflect.construct
                        : function (e, t, n) {
                            var i = [null];
                            i.push.apply(i, t);
                            var a = new (Function.bind.apply(e, i));
                            return n && d(a, n.prototype), a;
                        }).apply(null, arguments);
                }

                function u () {
                    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 (e) {return !1;}
                }

                function d (e, t) {
                    return (d = Object.setPrototypeOf ||
                        function (e, t) {return e.__proto__ = t, e;})(e, t);
                }

                function h (e) {
                    return (h = Object.setPrototypeOf
                        ? Object.getPrototypeOf
                        : function (e) {
                            return e.__proto__ || Object.getPrototypeOf(e);
                        })(e);
                }

                function f (e) {return e && e.__esModule ? e : { default: e };}

                var p = a.default.document;
                if (o.default && p && p.head && p.head.attachShadow &&
                    a.default.customElements && void 0 ===
                    a.default.customElements.get('input-mask')) {
                    var m = function (e) {
                        !function (
                            e, t) {
                            if ('function' != typeof t && null !==
                                t) throw new TypeError(
                                'Super expression must either be null or a function');
                            e.prototype = Object.create(t && t.prototype, {
                                constructor: {
                                    value: e,
                                    writable: !0,
                                    configurable: !0,
                                },
                            }), t && d(e, t);
                        }(a, e);
                        var t, n, i = (t = a, n = u(), function () {
                            var e, i = h(t);
                            if (n) {
                                var a = h(this).constructor;
                                e = Reflect.construct(i, arguments, a);
                            } else e = i.apply(this, arguments);
                            return s(this, e);
                        });

                        function a () {
                            var e;
                            !function (e, t) {
                                if (!(e instanceof t)) throw new TypeError(
                                    'Cannot call a class as a function');
                            }(this, a);
                            var t = (e = i.call(this)).getAttributeNames(),
                                n = e.attachShadow({ mode: 'closed' }),
                                o = p.createElement('input');
                            for (var s in o.type = 'text', n.appendChild(
                                o), t) Object.prototype.hasOwnProperty.call(t,
                                s) &&
                            o.setAttribute(t[s], e.getAttribute(t[s]));
                            var l = new r.default;
                            return l.dataAttribute = '', l.mask(
                                o), o.inputmask.shadowRoot = n, e;
                        }

                        return a;
                    }(l(HTMLElement));
                    a.default.customElements.define('input-mask', m);
                }
            },
            2391: function (e, t, n) {
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.generateMaskSet = function (e, t) {
                    function n (e, n, a) {
                        var r, o, s = !1;
                        if (null !== e && '' !== e ||
                        ((s = null !== a.regex) ? e = (e = a.regex).replace(
                            /^(\^)(.*)(\$)$/, '$2') : (s = !0, e = '.*')), 1 ===
                        e.length && !1 === a.greedy && 0 !== a.repeat &&
                        (a.placeholder = ''), a.repeat > 0 || '*' ===
                        a.repeat || '+' === a.repeat) {
                            var l = '*' === a.repeat
                                ? 0
                                : '+' === a.repeat ? 1 : a.repeat;
                            e = a.groupmarker[0] + e + a.groupmarker[1] +
                                a.quantifiermarker[0] + l + ',' + a.repeat +
                                a.quantifiermarker[1];
                        }
                        return o = s ? 'regex_' + a.regex : a.numericInput
                            ? e.split('').reverse().join('')
                            : e, !1 !== a.keepStatic &&
                        (o = 'ks_' + o), void 0 ===
                        Inputmask.prototype.masksCache[o] || !0 === t
                            ? (r = {
                                mask: e,
                                maskToken: Inputmask.prototype.analyseMask(e, s,
                                    a),
                                validPositions: {},
                                _buffer: void 0,
                                buffer: void 0,
                                tests: {},
                                excludes: {},
                                metadata: n,
                                maskLength: void 0,
                                jitOffset: {},
                            }, !0 !== t &&
                            (Inputmask.prototype.masksCache[o] = r, r = i.default.extend(
                                !0, {}, Inputmask.prototype.masksCache[o])))
                            : r = i.default.extend(!0, {},
                                Inputmask.prototype.masksCache[o]), r;
                    }

                    if ('function' == typeof e.mask &&
                    (e.mask = e.mask(e)), Array.isArray(e.mask)) {
                        if (e.mask.length > 1) {
                            null === e.keepStatic && (e.keepStatic = !0);
                            var a = e.groupmarker[0];
                            return (e.isRTL
                                ? e.mask.reverse()
                                : e.mask).forEach((function (t) {
                                a.length > 1 &&
                                (a += e.groupmarker[1] + e.alternatormarker +
                                    e.groupmarker[0]), void 0 !== t.mask &&
                                'function' != typeof t.mask
                                    ? a += t.mask
                                    : a += t;
                            })), n(a += e.groupmarker[1], e.mask, e);
                        }
                        e.mask = e.mask.pop();
                    }
                    return null === e.keepStatic &&
                    (e.keepStatic = !1), e.mask && void 0 !== e.mask.mask &&
                    'function' != typeof e.mask.mask
                        ? n(e.mask.mask, e.mask, e)
                        : n(e.mask, e.mask, e);
                }, t.analyseMask = function (e, t, n) {
                    var i, r, o, s, l, c,
                        u = /(?:[?*+]|\{[0-9+*]+(?:,[0-9+*]*)?(?:\|[0-9+*]*)?\})|[^.?*+^${[]()|\\]+|./g,
                        d = /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g,
                        h = !1, f = new a.default, p = [], m = [], g = !1;

                    function v (e, i, a) {
                        a = void 0 !== a ? a : e.matches.length;
                        var r = e.matches[a - 1];
                        if (t) 0 === i.indexOf('[') || h &&
                        /\\d|\\s|\\w]/i.test(i) || '.' === i ? e.matches.splice(
                            a++, 0, {
                                fn: new RegExp(i, n.casing ? 'i' : ''),
                                static: !1,
                                optionality: !1,
                                newBlockMarker: void 0 === r
                                    ? 'master'
                                    : r.def !== i,
                                casing: null,
                                def: i,
                                placeholder: void 0,
                                nativeDef: i,
                            }) : (h && (i = i[i.length - 1]), i.split('').
                            forEach((function (t, i) {
                                r = e.matches[a - 1], e.matches.splice(a++, 0, {
                                    fn: /[a-z]/i.test(
                                        n.staticDefinitionSymbol || t)
                                        ? new RegExp('[' +
                                            (n.staticDefinitionSymbol || t) +
                                            ']', n.casing ? 'i' : '')
                                        : null,
                                    static: !0,
                                    optionality: !1,
                                    newBlockMarker: void 0 === r
                                        ? 'master'
                                        : r.def !== t && !0 !== r.static,
                                    casing: null,
                                    def: n.staticDefinitionSymbol || t,
                                    placeholder: void 0 !==
                                    n.staticDefinitionSymbol ? t : void 0,
                                    nativeDef: (h ? '\'' : '') + t,
                                });
                            }))), h = !1; else {
                            var o = n.definitions && n.definitions[i] ||
                                n.usePrototypeDefinitions &&
                                Inputmask.prototype.definitions[i];
                            o && !h ? e.matches.splice(a++, 0, {
                                fn: o.validator
                                    ? 'string' == typeof o.validator
                                        ? new RegExp(o.validator,
                                            n.casing ? 'i' : '')
                                        : new function () {this.test = o.validator;}
                                    : new RegExp('.'),
                                static: o.static || !1,
                                optionality: !1,
                                newBlockMarker: void 0 === r
                                    ? 'master'
                                    : r.def !== (o.definitionSymbol || i),
                                casing: o.casing,
                                def: o.definitionSymbol || i,
                                placeholder: o.placeholder,
                                nativeDef: i,
                                generated: o.generated,
                            }) : (e.matches.splice(a++, 0, {
                                fn: /[a-z]/i.test(n.staticDefinitionSymbol || i)
                                    ? new RegExp(
                                        '[' + (n.staticDefinitionSymbol || i) +
                                        ']', n.casing ? 'i' : '')
                                    : null,
                                static: !0,
                                optionality: !1,
                                newBlockMarker: void 0 === r
                                    ? 'master'
                                    : r.def !== i && !0 !== r.static,
                                casing: null,
                                def: n.staticDefinitionSymbol || i,
                                placeholder: void 0 !== n.staticDefinitionSymbol
                                    ? i
                                    : void 0,
                                nativeDef: (h ? '\'' : '') + i,
                            }), h = !1);
                        }
                    }

                    function y () {
                        if (p.length > 0) {
                            if (v(s = p[p.length - 1], r), s.isAlternator) {
                                l = p.pop();
                                for (var e = 0; e <
                                l.matches.length; e++) l.matches[e].isGroup &&
                                (l.matches[e].isGroup = !1);
                                p.length > 0
                                    ? (s = p[p.length - 1]).matches.push(l)
                                    : f.matches.push(l);
                            }
                        } else v(f, r);
                    }

                    function b (e) {
                        var t = new a.default(!0);
                        return t.openGroup = !1, t.matches = e, t;
                    }

                    function x () {
                        if ((o = p.pop()).openGroup = !1, void 0 !==
                        o) if (p.length > 0) {
                            if ((s = p[p.length - 1]).matches.push(
                                o), s.isAlternator) {
                                l = p.pop();
                                for (var e = 0; e <
                                l.matches.length; e++) l.matches[e].isGroup = !1, l.matches[e].alternatorGroup = !1;
                                p.length > 0
                                    ? (s = p[p.length - 1]).matches.push(l)
                                    : f.matches.push(l);
                            }
                        } else f.matches.push(o); else y();
                    }

                    function _ (e) {
                        var t = e.pop();
                        return t.isQuantifier && (t = b([e.pop(), t])), t;
                    }

                    for (t &&
                         (n.optionalmarker[0] = void 0, n.optionalmarker[1] = void 0); i = t
                        ? d.exec(e)
                        : u.exec(e);) {
                        if (r = i[0], t) switch (r.charAt(0)) {
                            case'?':
                                r = '{0,1}';
                                break;
                            case'+':
                            case'*':
                                r = '{' + r + '}';
                                break;
                            case'|':
                                if (0 === p.length) {
                                    var w = b(f.matches);
                                    w.openGroup = !0, p.push(
                                        w), f.matches = [], g = !0;
                                }
                        }
                        if (h) y(); else switch (r.charAt(0)) {
                            case'$':
                            case'^':
                                t || y();
                                break;
                            case'(?=':
                            case'(?!':
                            case'(?<=':
                            case'(?<!':
                                p.push(new a.default(!0));
                                break;
                            case n.escapeChar:
                                h = !0, t && y();
                                break;
                            case n.optionalmarker[1]:
                            case n.groupmarker[1]:
                                x();
                                break;
                            case n.optionalmarker[0]:
                                p.push(new a.default(!1, !0));
                                break;
                            case n.groupmarker[0]:
                                p.push(new a.default(!0));
                                break;
                            case n.quantifiermarker[0]:
                                var k = new a.default(!1, !1, !0),
                                    M = (r = r.replace(/[{}]/g, '')).split('|'),
                                    L = M[0].split(','),
                                    S = isNaN(L[0]) ? L[0] : parseInt(L[0]),
                                    T = 1 === L.length ? S : isNaN(L[1])
                                        ? L[1]
                                        : parseInt(L[1]),
                                    A = isNaN(M[1]) ? M[1] : parseInt(M[1]);
                                '*' !== S && '+' !== S || (S = '*' === T
                                    ? 0
                                    : 1), k.quantifier = {
                                    min: S,
                                    max: T,
                                    jit: A,
                                };
                                var D = p.length > 0
                                    ? p[p.length - 1].matches
                                    : f.matches;
                                if ((i = D.pop()).isAlternator) {
                                    D.push(i), D = i.matches;
                                    var C = new a.default(!0), E = D.pop();
                                    D.push(C), D = C.matches, i = E;
                                }
                                i.isGroup || (i = b([i])), D.push(i), D.push(k);
                                break;
                            case n.alternatormarker:
                                if (p.length > 0) {
                                    var O = (s = p[p.length -
                                    1]).matches[s.matches.length - 1];
                                    c = s.openGroup &&
                                    (void 0 === O.matches || !1 === O.isGroup &&
                                        !1 === O.isAlternator) ? p.pop() : _(
                                        s.matches);
                                } else c = _(f.matches);
                                if (c.isAlternator) p.push(
                                    c); else if (c.alternatorGroup
                                    ? (l = p.pop(), c.alternatorGroup = !1)
                                    : l = new a.default(!1, !1, !1,
                                        !0), l.matches.push(c), p.push(
                                    l), c.openGroup) {
                                    c.openGroup = !1;
                                    var Y = new a.default(!0);
                                    Y.alternatorGroup = !0, p.push(Y);
                                }
                                break;
                            default:
                                y();
                        }
                    }
                    for (g && x(); p.length > 0;) o = p.pop(), f.matches.push(
                        o);
                    return f.matches.length > 0 && (function e (i) {
                        i && i.matches && i.matches.forEach((function (a, r) {
                            var o = i.matches[r + 1];
                            (void 0 === o || void 0 === o.matches || !1 ===
                                o.isQuantifier) && a && a.isGroup &&
                            (a.isGroup = !1, t ||
                            (v(a, n.groupmarker[0], 0), !0 !== a.openGroup &&
                            v(a, n.groupmarker[1]))), e(a);
                        }));
                    }(f), m.push(f)), (n.numericInput || n.isRTL) &&
                    function e (t) {
                        for (var i in t.matches = t.matches.reverse(), t.matches) if (Object.prototype.hasOwnProperty.call(
                            t.matches, i)) {
                            var a = parseInt(i);
                            if (t.matches[i].isQuantifier && t.matches[a + 1] &&
                                t.matches[a + 1].isGroup) {
                                var r = t.matches[i];
                                t.matches.splice(i, 1), t.matches.splice(a + 1,
                                    0, r);
                            }
                            void 0 !== t.matches[i].matches
                                ? t.matches[i] = e(t.matches[i])
                                : t.matches[i] = ((o = t.matches[i]) ===
                                n.optionalmarker[0]
                                ? o = n.optionalmarker[1]
                                : o === n.optionalmarker[1]
                                    ? o = n.optionalmarker[0]
                                    : o === n.groupmarker[0]
                                        ? o = n.groupmarker[1]
                                        : o === n.groupmarker[1] &&
                                        (o = n.groupmarker[0]), o);
                        }
                        var o;
                        return t;
                    }(m[0]), m;
                };
                var i = r(n(4963)), a = r(n(9695));

                function r (e) {return e && e.__esModule ? e : { default: e };}
            },
            157: function (e, t, n) {
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.mask = function () {
                    var e = this, t = this.opts, n = this.el,
                        i = this.dependencyLib;
                    s.EventRuler.off(n);
                    var d = function (t, n) {
                        'textarea' !== t.tagName.toLowerCase() &&
                        n.ignorables.push(a.default.ENTER);
                        var l = t.getAttribute('type'),
                            c = 'input' === t.tagName.toLowerCase() &&
                                n.supportsInputType.includes(l) ||
                                t.isContentEditable || 'textarea' ===
                                t.tagName.toLowerCase();
                        if (!c) if ('input' === t.tagName.toLowerCase()) {
                            var u = document.createElement('input');
                            u.setAttribute('type', l), c = 'text' ===
                                u.type, u = null;
                        } else c = 'partial';
                        return !1 !== c ? function (t) {
                            var a, l;

                            function c () {
                                return this.inputmask
                                    ? this.inputmask.opts.autoUnmask
                                        ? this.inputmask.unmaskedvalue()
                                        : -1 !==
                                        r.getLastValidPosition.call(e) || !0 !==
                                        n.nullable
                                            ? (this.inputmask.shadowRoot ||
                                                this.ownerDocument).activeElement ===
                                            this && n.clearMaskOnLostFocus
                                                ? (e.isRTL
                                                    ? o.clearOptionalTail.call(
                                                        e, r.getBuffer.call(e).
                                                            slice()).reverse()
                                                    : o.clearOptionalTail.call(
                                                        e, r.getBuffer.call(e).
                                                            slice())).join('')
                                                : a.call(this)
                                            : ''
                                    : a.call(this);
                            }

                            function u (e) {
                                l.call(this, e), this.inputmask &&
                                (0, o.applyInputValue)(this, e);
                            }

                            if (!t.inputmask.__valueGet) {
                                if (!0 !== n.noValuePatching) {
                                    if (Object.getOwnPropertyDescriptor) {
                                        var d = Object.getPrototypeOf
                                            ? Object.getOwnPropertyDescriptor(
                                                Object.getPrototypeOf(t),
                                                'value')
                                            : void 0;
                                        d && d.get && d.set
                                            ? (a = d.get, l = d.set, Object.defineProperty(
                                            t, 'value', {
                                                get: c,
                                                set: u,
                                                configurable: !0,
                                            }))
                                            : 'input' !==
                                            t.tagName.toLowerCase() &&
                                            (a = function () {return this.textContent;}, l = function (e) {this.textContent = e;}, Object.defineProperty(
                                                t, 'value', {
                                                    get: c,
                                                    set: u,
                                                    configurable: !0,
                                                }));
                                    } else document.__lookupGetter__ &&
                                    t.__lookupGetter__('value') &&
                                    (a = t.__lookupGetter__(
                                        'value'), l = t.__lookupSetter__(
                                        'value'), t.__defineGetter__('value',
                                        c), t.__defineSetter__('value', u));
                                    t.inputmask.__valueGet = a, t.inputmask.__valueSet = l;
                                }
                                t.inputmask._valueGet = function (t) {
                                    return e.isRTL && !0 !== t ? a.call(
                                        this.el).
                                        split('').
                                        reverse().
                                        join('') : a.call(this.el);
                                }, t.inputmask._valueSet = function (
                                    t, n) {
                                    l.call(this.el,
                                        null == t ? '' : !0 !== n && e.isRTL
                                            ? t.split('').reverse().join('')
                                            : t);
                                }, void 0 === a &&
                                (a = function () {return this.value;}, l = function (e) {this.value = e;}, function (t) {
                                    if (i.valHooks &&
                                        (void 0 === i.valHooks[t] || !0 !==
                                            i.valHooks[t].inputmaskpatch)) {
                                        var a = i.valHooks[t] &&
                                            i.valHooks[t].get
                                            ? i.valHooks[t].get
                                            : function (e) {return e.value;},
                                            s = i.valHooks[t] &&
                                            i.valHooks[t].set
                                                ? i.valHooks[t].set
                                                : function (
                                                    e,
                                                    t) {return e.value = t, e;};
                                        i.valHooks[t] = {
                                            get: function (t) {
                                                if (t.inputmask) {
                                                    if (t.inputmask.opts.autoUnmask) return t.inputmask.unmaskedvalue();
                                                    var i = a(t);
                                                    return -1 !==
                                                    r.getLastValidPosition.call(
                                                        e, void 0, void 0,
                                                        t.inputmask.maskset.validPositions) ||
                                                    !0 !== n.nullable ? i : '';
                                                }
                                                return a(t);
                                            },
                                            set: function (e, t) {
                                                var n = s(e, t);
                                                return e.inputmask &&
                                                (0, o.applyInputValue)(e, t), n;
                                            },
                                            inputmaskpatch: !0,
                                        };
                                    }
                                }(t.type), function (t) {
                                    s.EventRuler.on(t, 'mouseenter',
                                        (function () {
                                            var t = this.inputmask._valueGet(
                                                !0);
                                            t !== (e.isRTL
                                                ? r.getBuffer.call(e).reverse()
                                                : r.getBuffer.call(e)).join(
                                                '') &&
                                            (0, o.applyInputValue)(this, t);
                                        }));
                                }(t));
                            }
                        }(t) : t.inputmask = void 0, c;
                    }(n, t);
                    if (!1 !== d) {
                        e.originalPlaceholder = n.placeholder, e.maxLength = void 0 !==
                        n ? n.maxLength : void 0, -1 === e.maxLength &&
                        (e.maxLength = void 0), 'inputMode' in n && null ===
                        n.getAttribute('inputmode') &&
                        (n.inputMode = t.inputmode, n.setAttribute('inputmode',
                            t.inputmode)), !0 === d &&
                        (t.showMaskOnFocus = t.showMaskOnFocus && -1 ===
                            ['cc-number', 'cc-exp'].indexOf(
                                n.autocomplete), l.iphone &&
                        (t.insertModeVisual = !1), s.EventRuler.on(n, 'submit',
                            u.EventHandlers.submitEvent), s.EventRuler.on(n,
                            'reset',
                            u.EventHandlers.resetEvent), s.EventRuler.on(n,
                            'blur', u.EventHandlers.blurEvent), s.EventRuler.on(
                            n, 'focus',
                            u.EventHandlers.focusEvent), s.EventRuler.on(n,
                            'invalid',
                            u.EventHandlers.invalidEvent), s.EventRuler.on(n,
                            'click',
                            u.EventHandlers.clickEvent), s.EventRuler.on(n,
                            'mouseleave',
                            u.EventHandlers.mouseleaveEvent), s.EventRuler.on(n,
                            'mouseenter',
                            u.EventHandlers.mouseenterEvent), s.EventRuler.on(n,
                            'paste',
                            u.EventHandlers.pasteEvent), s.EventRuler.on(n,
                            'cut', u.EventHandlers.cutEvent), s.EventRuler.on(n,
                            'complete', t.oncomplete), s.EventRuler.on(n,
                            'incomplete', t.onincomplete), s.EventRuler.on(n,
                            'cleared', t.oncleared), !0 !== t.inputEventOnly &&
                        (s.EventRuler.on(n, 'keydown',
                            u.EventHandlers.keydownEvent), s.EventRuler.on(n,
                            'keypress',
                            u.EventHandlers.keypressEvent), s.EventRuler.on(n,
                            'keyup', u.EventHandlers.keyupEvent)), (l.mobile ||
                            t.inputEventOnly) &&
                        n.removeAttribute('maxLength'), s.EventRuler.on(n,
                            'input',
                            u.EventHandlers.inputFallBackEvent), s.EventRuler.on(
                            n, 'compositionend',
                            u.EventHandlers.compositionendEvent)), s.EventRuler.on(
                            n, 'setvalue',
                            u.EventHandlers.setValueEvent), r.getBufferTemplate.call(
                            e).join(''), e.undoValue = e._valueGet(!0);
                        var h = (n.inputmask.shadowRoot ||
                            n.ownerDocument).activeElement;
                        if ('' !== n.inputmask._valueGet(!0) || !1 ===
                            t.clearMaskOnLostFocus || h === n) {
                            (0, o.applyInputValue)(n, n.inputmask._valueGet(!0),
                                t);
                            var f = r.getBuffer.call(e).slice();
                            !1 === c.isComplete.call(e, f) &&
                            t.clearIncomplete &&
                            r.resetMaskSet.call(e), t.clearMaskOnLostFocus &&
                            h !== n && (-1 === r.getLastValidPosition.call(e)
                                ? f = []
                                : o.clearOptionalTail.call(e, f)), (!1 ===
                                t.clearMaskOnLostFocus || t.showMaskOnFocus &&
                                h === n || '' !== n.inputmask._valueGet(!0)) &&
                            (0, o.writeBuffer)(n, f), h === n &&
                            r.caret.call(e, n, r.seekNext.call(e,
                                r.getLastValidPosition.call(e)));
                        }
                    }
                };
                var i, a = (i = n(4528)) && i.__esModule ? i : { default: i },
                    r = n(8711), o = n(7760), s = n(9716), l = n(9845),
                    c = n(7215), u = n(6030);
            },
            9695: function (e, t) {
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.default = function (
                    e, t, n, i) {
                    this.matches = [], this.openGroup = e ||
                        !1, this.alternatorGroup = !1, this.isGroup = e ||
                        !1, this.isOptional = t || !1, this.isQuantifier = n ||
                        !1, this.isAlternator = i || !1, this.quantifier = {
                        min: 1,
                        max: 1,
                    };
                };
            },
            3194: function () {
                Array.prototype.includes ||
                Object.defineProperty(Array.prototype, 'includes', {
                    value: function (e, t) {
                        if (null == this) throw new TypeError(
                            '"this" is null or not defined');
                        var n = Object(this), i = n.length >>> 0;
                        if (0 === i) return !1;
                        for (var a = 0 | t, r = Math.max(
                            a >= 0 ? a : i - Math.abs(a), 0); r < i;) {
                            if (n[r] === e) return !0;
                            r++;
                        }
                        return !1;
                    },
                });
            },
            7149: function () {
                function e (t) {
                    return (e = 'function' == typeof Symbol && 'symbol' ==
                    typeof Symbol.iterator
                        ? function (e) {return typeof e;}
                        : function (e) {
                            return e && 'function' == typeof Symbol &&
                            e.constructor === Symbol && e !== Symbol.prototype
                                ? 'symbol'
                                : typeof e;
                        })(t);
                }

                'function' != typeof Object.getPrototypeOf &&
                (Object.getPrototypeOf = 'object' === e('test'.__proto__)
                    ? function (e) {return e.__proto__;}
                    : function (e) {return e.constructor.prototype;});
            },
            8711: function (e, t, n) {
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.caret = function (e, t, n, i, a) {
                    var r, o = this, s = this.opts;
                    if (void 0 === t) return 'selectionStart' in e &&
                    'selectionEnd' in e
                        ? (t = e.selectionStart, n = e.selectionEnd)
                        : window.getSelection
                            ? (r = window.getSelection().
                                getRangeAt(
                                    0)).commonAncestorContainer.parentNode !== e &&
                            r.commonAncestorContainer !== e ||
                            (t = r.startOffset, n = r.endOffset)
                            : document.selection &&
                            document.selection.createRange && (n = (t = 0 -
                                (r = document.selection.createRange()).duplicate().
                                    moveStart('character',
                                        -e.inputmask._valueGet().length)) +
                                r.text.length), {
                        begin: i ? t : c.call(o, t),
                        end: i ? n : c.call(o, n),
                    };
                    if (Array.isArray(t) &&
                    (n = o.isRTL ? t[0] : t[1], t = o.isRTL
                        ? t[1]
                        : t[0]), void 0 !== t.begin &&
                    (n = o.isRTL ? t.begin : t.end, t = o.isRTL
                        ? t.end
                        : t.begin), 'number' == typeof t) {
                        t = i ? t : c.call(o, t), n = 'number' ==
                        typeof (n = i ? n : c.call(o, n))
                            ? n
                            : t;
                        var l = parseInt(((e.ownerDocument.defaultView ||
                            window).getComputedStyle
                            ? (e.ownerDocument.defaultView ||
                                window).getComputedStyle(e, null)
                            : e.currentStyle).fontSize) * n;
                        if (e.scrollLeft = l > e.scrollWidth
                            ? l
                            : 0, e.inputmask.caretPos = {
                            begin: t,
                            end: n,
                        }, s.insertModeVisual && !1 === s.insertMode && t ===
                        n && (a || n++), e === (e.inputmask.shadowRoot ||
                            e.ownerDocument).activeElement) if ('setSelectionRange' in
                            e) e.setSelectionRange(t,
                            n); else if (window.getSelection) {
                            if (r = document.createRange(), void 0 ===
                            e.firstChild || null === e.firstChild) {
                                var u = document.createTextNode('');
                                e.appendChild(u);
                            }
                            r.setStart(e.firstChild,
                                t < e.inputmask._valueGet().length
                                    ? t
                                    : e.inputmask._valueGet().length), r.setEnd(
                                e.firstChild, n < e.inputmask._valueGet().length
                                    ? n
                                    : e.inputmask._valueGet().length), r.collapse(
                                !0);
                            var d = window.getSelection();
                            d.removeAllRanges(), d.addRange(r);
                        } else e.createTextRange &&
                        ((r = e.createTextRange()).collapse(!0), r.moveEnd(
                            'character', n), r.moveStart('character',
                            t), r.select());
                    }
                }, t.determineLastRequiredPosition = function (e) {
                    var t, n, r = this, s = this.maskset,
                        l = this.dependencyLib,
                        c = i.getMaskTemplate.call(r, !0, o.call(r), !0, !0),
                        u = c.length, d = o.call(r), h = {},
                        f = s.validPositions[d],
                        p = void 0 !== f ? f.locator.slice() : void 0;
                    for (t = d + 1; t <
                    c.length; t++) p = (n = i.getTestTemplate.call(r, t, p,
                        t - 1)).locator.slice(), h[t] = l.extend(!0, {}, n);
                    var m = f && void 0 !== f.alternation
                        ? f.locator[f.alternation]
                        : void 0;
                    for (t = u - 1; t > d && ((n = h[t]).match.optionality ||
                        n.match.optionalQuantifier && n.match.newBlockMarker ||
                        m && (m !== h[t].locator[f.alternation] && 1 !=
                            n.match.static || !0 === n.match.static &&
                            n.locator[f.alternation] &&
                            a.checkAlternationMatch.call(r,
                                n.locator[f.alternation].toString().split(","),
                                m.toString().split(",")) && "" !==
                            i.getTests.call(r, t)[0].def)) && c[t] ===
                    i.getPlaceholder.call(r, t, n.match); t--) u--;
                    return e ? { l: u, def: h[u] ? h[u].match : void 0 } : u;
                }, t.determineNewCaretPosition = function (e, t, n) {
                    var a = this, c = this.maskset, u = this.opts;
                    if (t &&
                    (a.isRTL ? e.end = e.begin : e.begin = e.end), e.begin ===
                    e.end) {
                        switch (n = n || u.positionCaretOnClick) {
                            case'none':
                                break;
                            case'select':
                                e = { begin: 0, end: r.call(a).length };
                                break;
                            case'ignore':
                                e.end = e.begin = l.call(a, o.call(a));
                                break;
                            case'radixFocus':
                                if (function (e) {
                                    if ('' !== u.radixPoint && 0 !== u.digits) {
                                        var t = c.validPositions;
                                        if (void 0 === t[e] || t[e].input ===
                                            i.getPlaceholder.call(a, e)) {
                                            if (e < l.call(a, -1)) return !0;
                                            var n = r.call(a).
                                                indexOf(u.radixPoint);
                                            if (-1 !== n) {
                                                for (var o in t) if (t[o] && n <
                                                    o && t[o].input !==
                                                    i.getPlaceholder.call(a,
                                                        o)) return !1;
                                                return !0;
                                            }
                                        }
                                    }
                                    return !1;
                                }(e.begin)) {
                                    var d = r.call(a).
                                        join('').
                                        indexOf(u.radixPoint);
                                    e.end = e.begin = u.numericInput ? l.call(a,
                                        d) : d;
                                    break;
                                }
                            default:
                                var h = e.begin, f = o.call(a, h, !0),
                                    p = l.call(a,
                                        -1 !== f || s.call(a, 0) ? f : -1);
                                if (h <= p) e.end = e.begin = s.call(a, h, !1,
                                    !0) ? h : l.call(a, h); else {
                                    var m = c.validPositions[f],
                                        g = i.getTestTemplate.call(a, p,
                                            m ? m.match.locator : void 0, m),
                                        v = i.getPlaceholder.call(a, p,
                                            g.match);
                                    if ('' !== v && r.call(a)[p] !== v && !0 !==
                                        g.match.optionalQuantifier && !0 !==
                                        g.match.newBlockMarker ||
                                        !s.call(a, p, u.keepStatic, !0) &&
                                        g.match.def === v) {
                                        var y = l.call(a, p);
                                        (h >= y || h === p) && (p = y);
                                    }
                                    e.end = e.begin = p;
                                }
                        }
                        return e;
                    }
                }, t.getBuffer = r, t.getBufferTemplate = function () {
                    var e = this.maskset;
                    return void 0 === e._buffer &&
                    (e._buffer = i.getMaskTemplate.call(this, !1, 1), void 0 ===
                    e.buffer && (e.buffer = e._buffer.slice())), e._buffer;
                }, t.getLastValidPosition = o, t.isMask = s, t.resetMaskSet = function (e) {
                    var t = this.maskset;
                    t.buffer = void 0, !0 !== e &&
                    (t.validPositions = {}, t.p = 0);
                }, t.seekNext = l, t.seekPrevious = function (
                    e, t) {
                    var n = this, a = e - 1;
                    if (e <= 0) return 0;
                    for (; a > 0 && (!0 === t &&
                        (!0 !== i.getTest.call(n, a).match.newBlockMarker ||
                            !s.call(n, a, void 0, !0)) || !0 !== t &&
                        !s.call(n, a, void 0, !0));) a--;
                    return a;
                }, t.translatePosition = c;
                var i = n(4713), a = n(7215);

                function r (e) {
                    var t = this.maskset;
                    return void 0 !== t.buffer && !0 !== e ||
                    (t.buffer = i.getMaskTemplate.call(this, !0, o.call(this),
                        !0), void 0 === t._buffer &&
                    (t._buffer = t.buffer.slice())), t.buffer;
                }

                function o (e, t, n) {
                    var i = this.maskset, a = -1, r = -1,
                        o = n || i.validPositions;
                    for (var s in void 0 === e && (e = -1), o) {
                        var l = parseInt(s);
                        o[l] && (t || !0 !== o[l].generatedInput) &&
                        (l <= e && (a = l), l >= e && (r = l));
                    }
                    return -1 === a || a == e ? r : -1 == r || e - a < r - e
                        ? a
                        : r;
                }

                function s (e, t, n) {
                    var a = this, r = this.maskset,
                        o = i.getTestTemplate.call(a, e).match;
                    if ('' === o.def && (o = i.getTest.call(a, e).match), !0 !==
                    o.static) return o.fn;
                    if (!0 === n && void 0 !== r.validPositions[e] && !0 !==
                        r.validPositions[e].generatedInput) return !0;
                    if (!0 !== t && e > -1) {
                        if (n) {
                            var s = i.getTests.call(a, e);
                            return s.length > 1 +
                                ('' === s[s.length - 1].match.def ? 1 : 0);
                        }
                        var l = i.determineTestTemplate.call(a, e,
                            i.getTests.call(a, e)),
                            c = i.getPlaceholder.call(a, e, l.match);
                        return l.match.def !== c;
                    }
                    return !1;
                }

                function l (e, t, n) {
                    var a = this;
                    void 0 === n && (n = !0);
                    for (var r = e + 1; "" !== i.getTest.call(a, r).match.def &&
                    (!0 === t &&
                        (!0 !== i.getTest.call(a, r).match.newBlockMarker ||
                            !s.call(a, r, void 0, !0)) || !0 !== t &&
                        !s.call(a, r, void 0, n));) r++;
                    return r;
                }

                function c (e) {
                    var t = this.opts, n = this.el;
                    return !this.isRTL || 'number' != typeof e || t.greedy &&
                    '' === t.placeholder || !n ||
                    (e = Math.abs(this._valueGet().length - e)), e;
                }
            },
            4713: function (e, t) {
                function n (e, t) {
                    var n = (null != e.alternation
                        ? e.mloc[i(e)]
                        : e.locator).join('');
                    if ('' !== n) for (; n.length < t;) n += '0';
                    return n;
                }

                function i (e) {
                    var t = e.locator[e.alternation];
                    return 'string' == typeof t && t.length > 0 &&
                    (t = t.split(',')[0]), void 0 !== t ? t.toString() : '';
                }

                function a (e, t, n) {
                    var i = this.opts, a = this.maskset;
                    if (void 0 !==
                        (t = t || s.call(this, e).match).placeholder || !0 ===
                        n) return 'function' == typeof t.placeholder
                        ? t.placeholder(i)
                        : t.placeholder;
                    if (!0 === t.static) {
                        if (e > -1 && void 0 === a.validPositions[e]) {
                            var r, o = c.call(this, e), l = [];
                            if (o.length > 1 + ('' === o[o.length - 1].match.def
                                ? 1
                                : 0)) for (var u = 0; u <
                            o.length; u++) if ('' !== o[u].match.def && !0 !==
                                o[u].match.optionality && !0 !==
                                o[u].match.optionalQuantifier &&
                                (!0 === o[u].match.static || void 0 === r ||
                                    !1 !==
                                    o[u].match.fn.test(r.match.def, a, e, !0,
                                        i)) &&
                                (l.push(o[u]), !0 === o[u].match.static &&
                                (r = o[u]), l.length > 1 && /[0-9a-bA-Z]/.test(
                                    l[0].match.def))) return i.placeholder.charAt(
                                e % i.placeholder.length);
                        }
                        return t.def;
                    }
                    return i.placeholder.charAt(e % i.placeholder.length);
                }

                function r (e, t, n) {
                    return this.maskset.validPositions[e] ||
                        o.call(this, e, c.call(this, e, t ? t.slice() : t, n));
                }

                function o (e, t) {
                    var i = this.opts;
                    e = e > 0 ? e - 1 : 0;
                    for (var a, r, o, l = n(s.call(this, e)), c = 0; c <
                    t.length; c++) {
                        var u = t[c];
                        a = n(u, l.length);
                        var d = Math.abs(a - l);
                        (void 0 === r || '' !== a && d < r || o && !i.greedy &&
                            o.match.optionality && 'master' ===
                            o.match.newBlockMarker &&
                            (!u.match.optionality || !u.match.newBlockMarker) ||
                            o && o.match.optionalQuantifier &&
                            !u.match.optionalQuantifier) && (r = d, o = u);
                    }
                    return o;
                }

                function s (e, t) {
                    var n = this.maskset;
                    return n.validPositions[e] ? n.validPositions[e] : (t ||
                        c.call(this, e))[0];
                }

                function l (
                    e, t, n) {
                    function i (e) {
                        for (var t, n = [], i = -1, a = 0, r = e.length; a <
                        r; a++) if ('-' === e.charAt(a)) for (t = e.charCodeAt(
                            a + 1); ++i < t;) n.push(
                            String.fromCharCode(i)); else i = e.charCodeAt(
                            a), n.push(e.charAt(a));
                        return n.join('');
                    }

                    return e.match.def === t.match.nativeDef ||
                        !(!(n.regex || e.match.fn instanceof RegExp &&
                            t.match.fn instanceof RegExp) || !0 ===
                            e.match.static || !0 === t.match.static) && -1 !==
                        i(t.match.fn.toString().replace(/[[\]/]/g, '')).
                            indexOf(
                                i(e.match.fn.toString().
                                    replace(/[[\]/]/g, '')));
                }

                function c (e, t, n) {
                    var i, a = this, r = this.dependencyLib, s = this.maskset,
                        c = this.opts, u = this.el, d = s.maskToken,
                        h = t ? n : 0, f = t ? t.slice() : [0], p = [], m = !1,
                        g = t ? t.join('') : '';

                    function v (t, n, a, r) {
                        function o (a, r, d) {
                            function f (e, t) {
                                var n = 0 === t.matches.indexOf(e);
                                return n || t.matches.every((function (i, a) {
                                    return !0 === i.isQuantifier
                                        ? n = f(e, t.matches[a - 1])
                                        : Object.prototype.hasOwnProperty.call(
                                        i, 'matches') && (n = f(e, i)), !n;
                                })), n;
                            }

                            function y (e, t, n) {
                                var i, a;
                                if ((s.tests[e] || s.validPositions[e]) &&
                                (s.tests[e] || [s.validPositions[e]]).every(
                                    (function (e, r) {
                                        if (e.mloc[t]) return i = e, !1;
                                        var o = void 0 !== n
                                            ? n
                                            : e.alternation,
                                            s = void 0 !== e.locator[o]
                                                ? e.locator[o].toString().
                                                    indexOf(t)
                                                : -1;
                                        return (void 0 === a || s < a) && -1 !==
                                        s && (i = e, a = s), !0;
                                    })), i) {
                                    var r = i.locator[i.alternation];
                                    return (i.mloc[t] || i.mloc[r] ||
                                        i.locator).slice(
                                        (void 0 !== n ? n : i.alternation) + 1);
                                }
                                return void 0 !== n ? y(e, t) : void 0;
                            }

                            function b (e, t) {
                                var n = e.alternation,
                                    i = void 0 === t || n === t.alternation &&
                                        -1 === e.locator[n].toString().
                                            indexOf(t.locator[n]);
                                if (!i && n >
                                    t.alternation) for (var a = t.alternation; a <
                                n; a++) if (e.locator[a] !== t.locator[a]) {
                                    n = a, i = !0;
                                    break;
                                }
                                if (i) {
                                    e.mloc = e.mloc || {};
                                    var r = e.locator[n];
                                    if (void 0 !== r) {
                                        if ('string' == typeof r &&
                                        (r = r.split(',')[0]), void 0 ===
                                        e.mloc[r] &&
                                        (e.mloc[r] = e.locator.slice()), void 0 !==
                                        t) {
                                            for (var o in t.mloc) 'string' ==
                                            typeof o &&
                                            (o = o.split(',')[0]), void 0 ===
                                            e.mloc[o] &&
                                            (e.mloc[o] = t.mloc[o]);
                                            e.locator[n] = Object.keys(e.mloc).
                                                join(',');
                                        }
                                        return !0;
                                    }
                                    e.alternation = void 0;
                                }
                                return !1;
                            }

                            function x (e, t) {
                                if (e.locator.length !==
                                    t.locator.length) return !1;
                                for (var n = e.alternation + 1; n <
                                e.locator.length; n++) if (e.locator[n] !==
                                    t.locator[n]) return !1;
                                return !0;
                            }

                            if (h > e +
                                c._maxTestPos) throw'Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. ' +
                            s.mask;
                            if (h === e && void 0 === a.matches) return p.push({
                                match: a,
                                locator: r.reverse(),
                                cd: g,
                                mloc: {},
                            }), !0;
                            if (void 0 !== a.matches) {
                                if (a.isGroup && d !== a) {
                                    if (a = o(
                                        t.matches[t.matches.indexOf(a) + 1], r,
                                        d)) return !0;
                                } else if (a.isOptional) {
                                    var _ = a, w = p.length;
                                    if (a = v(a, n, r, d)) {
                                        if (p.forEach((function (e, t) {
                                            t >= w &&
                                            (e.match.optionality = !0);
                                        })), i = p[p.length -
                                        1].match, void 0 !== d ||
                                        !f(i, _)) return !0;
                                        m = !0, h = e;
                                    }
                                } else if (a.isAlternator) {
                                    var k, M = a, L = [], S = p.slice(),
                                        T = r.length, A = !1,
                                        D = n.length > 0 ? n.shift() : -1;
                                    if (-1 === D || 'string' == typeof D) {
                                        var C, E = h, O = n.slice(), Y = [];
                                        if ('string' == typeof D) Y = D.split(
                                            ','); else for (C = 0; C <
                                        M.matches.length; C++) Y.push(
                                            C.toString());
                                        if (void 0 !== s.excludes[e]) {
                                            for (var P = Y.slice(), I = 0, j = s.excludes[e].length; I <
                                            j; I++) {
                                                var N = s.excludes[e][I].toString().
                                                    split(':');
                                                r.length == N[1] &&
                                                Y.splice(Y.indexOf(N[0]), 1);
                                            }
                                            0 === Y.length &&
                                            (delete s.excludes[e], Y = P);
                                        }
                                        (!0 === c.keepStatic ||
                                            isFinite(parseInt(c.keepStatic)) &&
                                            E >= c.keepStatic) &&
                                        (Y = Y.slice(0, 1));
                                        for (var H = 0; H < Y.length; H++) {
                                            C = parseInt(
                                                Y[H]), p = [], n = 'string' ==
                                                typeof D && y(h, C, T) ||
                                                O.slice();
                                            var F = M.matches[C];
                                            if (F && o(F, [C].concat(r),
                                                d)) a = !0; else if (0 === H &&
                                            (A = !0), F && F.matches &&
                                            F.matches.length >
                                            M.matches[0].matches.length) break;
                                            k = p.slice(), h = E, p = [];
                                            for (var R = 0; R < k.length; R++) {
                                                var z = k[R], B = !1;
                                                z.match.jit = z.match.jit ||
                                                    A, z.alternation = z.alternation ||
                                                    T, b(z);
                                                for (var W = 0; W <
                                                L.length; W++) {
                                                    var V = L[W];
                                                    if ('string' != typeof D ||
                                                        void 0 !==
                                                        z.alternation &&
                                                        Y.includes(
                                                            z.locator[z.alternation].toString())) {
                                                        if (z.match.nativeDef ===
                                                            V.match.nativeDef) {
                                                            B = !0, b(V, z);
                                                            break;
                                                        }
                                                        if (l(z, V, c)) {
                                                            b(z, V) &&
                                                            (B = !0, L.splice(
                                                                L.indexOf(V), 0,
                                                                z));
                                                            break;
                                                        }
                                                        if (l(V, z, c)) {
                                                            b(V, z);
                                                            break;
                                                        }
                                                        if (G = V, !0 ===
                                                        ($ = z).match.static &&
                                                        !0 !== G.match.static &&
                                                        G.match.fn.test(
                                                            $.match.def, s, e,
                                                            !1, c, !1)) {
                                                            x(z, V) ||
                                                            void 0 !==
                                                            u.inputmask.userOptions.keepStatic
                                                                ? b(z, V) &&
                                                                (B = !0, L.splice(
                                                                    L.indexOf(
                                                                        V), 0,
                                                                    z))
                                                                : c.keepStatic = !0;
                                                            break;
                                                        }
                                                    }
                                                }
                                                B || L.push(z);
                                            }
                                        }
                                        p = S.concat(L), h = e, m = p.length >
                                            0, a = L.length > 0, n = O.slice();
                                    } else a = o(M.matches[D] || t.matches[D],
                                        [D].concat(r), d);
                                    if (a) return !0;
                                } else if (a.isQuantifier && d !==
                                    t.matches[t.matches.indexOf(a) -
                                    1]) for (var q = a, U = n.length > 0
                                    ? n.shift()
                                    : 0; U < (isNaN(q.quantifier.max)
                                    ? U + 1
                                    : q.quantifier.max) && h <= e; U++) {
                                    var X = t.matches[t.matches.indexOf(q) - 1];
                                    if (a = o(X, [U].concat(r), X)) {
                                        if ((i = p[p.length -
                                        1].match).optionalQuantifier = U >=
                                            q.quantifier.min, i.jit = (U + 1) *
                                            (X.matches.indexOf(i) + 1) >
                                            q.quantifier.jit, i.optionalQuantifier &&
                                        f(i, X)) {
                                            m = !0, h = e;
                                            break;
                                        }
                                        return i.jit &&
                                        (s.jitOffset[e] = X.matches.length -
                                            X.matches.indexOf(i)), !0;
                                    }
                                } else if (a = v(a, n, r, d)) return !0;
                            } else h++;
                            var $, G;
                        }

                        for (var d = n.length > 0 ? n.shift() : 0; d <
                        t.matches.length; d++) if (!0 !==
                            t.matches[d].isQuantifier) {
                            var f = o(t.matches[d], [d].concat(a), r);
                            if (f && h === e) return f;
                            if (h > e) break;
                        }
                    }

                    if (e > -1) {
                        if (void 0 === t) {
                            for (var y, b = e - 1; void 0 ===
                            (y = s.validPositions[b] || s.tests[b]) && b >
                            -1;) b--;
                            void 0 !== y && b > -1 && (f = function (e, t) {
                                var n, i = [];
                                return Array.isArray(t) || (t = [t]), t.length >
                                0 && (void 0 === t[0].alternation || !0 ===
                                c.keepStatic
                                    ? 0 === (i = o.call(a, e, t.slice()).
                                        locator.
                                        slice()).length &&
                                    (i = t[0].locator.slice())
                                    : t.forEach((function (e) {
                                        '' !== e.def && (0 === i.length
                                            ? (n = e.alternation, i = e.locator.slice())
                                            : e.locator[n] && -1 ===
                                            i[n].toString().
                                                indexOf(e.locator[n]) &&
                                            (i[n] += ',' + e.locator[n]));
                                    }))), i;
                            }(b, y), g = f.join(''), h = b);
                        }
                        if (s.tests[e] && s.tests[e][0].cd ===
                            g) return s.tests[e];
                        for (var x = f.shift(); x < d.length &&
                        !(v(d[x], f, [x]) && h === e || h > e); x++) ;
                    }
                    return (0 === p.length || m) && p.push({
                        match: {
                            fn: null,
                            static: !0,
                            optionality: !1,
                            casing: null,
                            def: '',
                            placeholder: '',
                        }, locator: [], mloc: {}, cd: g,
                    }), void 0 !== t && s.tests[e]
                        ? r.extend(!0, [], p)
                        : (s.tests[e] = r.extend(!0, [], p), s.tests[e]);
                }

                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.determineTestTemplate = o, t.getDecisionTaker = i, t.getMaskTemplate = function (
                    e, t, n, i, s) {
                    var l = this, u = this.opts, d = this.maskset, h = u.greedy;
                    s && (u.greedy = !1), t = t || 0;
                    var f, p, m, g, v = [], y = 0;
                    do {
                        if (!0 === e && d.validPositions[y]) p = (m = s &&
                        !0 === d.validPositions[y].match.optionality &&
                        void 0 === d.validPositions[y + 1] &&
                        (!0 === d.validPositions[y].generatedInput ||
                            d.validPositions[y].input ==
                            u.skipOptionalPartCharacter && y > 0)
                            ? o.call(l, y, c.call(l, y, f, y - 1))
                            : d.validPositions[y]).match, f = m.locator.slice(), v.push(
                            !0 === n ? m.input : !1 === n
                                ? p.nativeDef
                                : a.call(l, y, p)); else {
                            p = (m = r.call(l, y, f,
                                y - 1)).match, f = m.locator.slice();
                            var b = !0 !== i &&
                                (!1 !== u.jitMasking ? u.jitMasking : p.jit);
                            (g = (g && p.static && p.def !== u.groupSeparator &&
                                null === p.fn || d.validPositions[y - 1] &&
                                p.static && p.def !== u.groupSeparator &&
                                null === p.fn) && d.tests[y] && 1 ===
                                d.tests[y].length) || !1 === b || void 0 ===
                            b || 'number' == typeof b && isFinite(b) && b > y
                                ? v.push(
                                !1 === n ? p.nativeDef : a.call(l, y, p))
                                : g = !1;
                        }
                        y++;
                    } while (!0 !== p.static || '' !== p.def || t > y);
                    return '' === v[v.length - 1] && v.pop(), !1 === n &&
                    void 0 !== d.maskLength ||
                    (d.maskLength = y - 1), u.greedy = h, v;
                }, t.getPlaceholder = a, t.getTest = s, t.getTests = c, t.getTestTemplate = r, t.isSubsetOf = l;
            },
            7215: function (e, t, n) {
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.alternate = l, t.checkAlternationMatch = function (
                    e, t, n) {
                    for (var i, a = this.opts.greedy
                        ? t
                        : t.slice(0, 1), r = !1, o = void 0 !== n
                        ? n.split(',')
                        : [], s = 0; s < o.length; s++) -1 !==
                    (i = e.indexOf(o[s])) && e.splice(i, 1);
                    for (var l = 0; l < e.length; l++) if (a.includes(e[l])) {
                        r = !0;
                        break;
                    }
                    return r;
                }, t.isComplete = u, t.isValid = d, t.refreshFromBuffer = f, t.revalidateMask = m, t.handleRemove = function (
                    e, t, n, i, s) {
                    var c = this, u = this.maskset, d = this.opts;
                    if ((d.numericInput || c.isRTL) &&
                        (t === r.default.BACKSPACE
                            ? t = r.default.DELETE
                            : t === r.default.DELETE &&
                            (t = r.default.BACKSPACE), c.isRTL)) {
                        var h = n.end;
                        n.end = n.begin, n.begin = h;
                    }
                    var f, p = o.getLastValidPosition.call(c, void 0, !0);
                    if (n.end >= o.getBuffer.call(c).length && p >= n.end &&
                    (n.end = p + 1), t === r.default.BACKSPACE ? n.end -
                        n.begin < 1 &&
                        (n.begin = o.seekPrevious.call(c, n.begin)) : t ===
                        r.default.DELETE && n.begin === n.end &&
                        (n.end = o.isMask.call(c, n.end, !0, !0)
                            ? n.end + 1
                            : o.seekNext.call(c, n.end) + 1), !1 !==
                    (f = m.call(c, n))) {
                        if (!0 !== i && !1 !== d.keepStatic || null !==
                            d.regex && -1 !== a.getTest.call(c, n.begin).
                                match.
                                def.
                                indexOf('|')) {
                            var g = l.call(c, !0);
                            if (g) {
                                var v = void 0 !== g.caret ? g.caret : g.pos
                                    ? o.seekNext.call(c,
                                        g.pos.begin ? g.pos.begin : g.pos)
                                    : o.getLastValidPosition.call(c, -1, !0);
                                (t !== r.default.DELETE || n.begin > v) &&
                                n.begin;
                            }
                        }
                        !0 !== i && (u.p = t === r.default.DELETE
                            ? n.begin + f
                            : n.begin, u.p = o.determineNewCaretPosition.call(c,
                            { begin: u.p, end: u.p }, !1).begin);
                    }
                };
                var i, a = n(4713),
                    r = (i = n(4528)) && i.__esModule ? i : { default: i },
                    o = n(8711), s = n(6030);

                function l (e, t, n, i, r, s) {
                    var c, u, h, f, p, m, g, v, y, b, x, _ = this,
                        w = this.dependencyLib, k = this.opts, M = _.maskset,
                        L = w.extend(!0, {}, M.validPositions),
                        S = w.extend(!0, {}, M.tests), T = !1, A = !1,
                        D = void 0 !== r ? r : o.getLastValidPosition.call(_);
                    if (s && (b = s.begin, x = s.end, s.begin > s.end &&
                    (b = s.end, x = s.begin)), -1 === D && void 0 ===
                    r) c = 0, u = (f = a.getTest.call(_,
                        c)).alternation; else for (; D >=
                                                     0; D--) if ((h = M.validPositions[D]) &&
                        void 0 !== h.alternation) {
                        if (f && f.locator[h.alternation] !==
                            h.locator[h.alternation]) break;
                        c = D, u = M.validPositions[c].alternation, f = h;
                    }
                    if (void 0 !== u) {
                        g = parseInt(c), M.excludes[g] = M.excludes[g] ||
                            [], !0 !== e && M.excludes[g].push(
                            (0, a.getDecisionTaker)(f) + ':' + f.alternation);
                        var C = [], E = -1;
                        for (p = g; p <
                        o.getLastValidPosition.call(_, void 0, !0) +
                        1; p++) -1 === E && e <= p && void 0 !== t &&
                        (C.push(t), E = C.length -
                            1), (m = M.validPositions[p]) && !0 !==
                        m.generatedInput && (void 0 === s || p < b || p >= x) &&
                        C.push(m.input), delete M.validPositions[p];
                        for (-1 === E && void 0 !== t &&
                             (C.push(t), E = C.length - 1); void 0 !==
                             M.excludes[g] && M.excludes[g].length < 10;) {
                            for (M.tests = {}, o.resetMaskSet.call(_,
                                !0), T = !0, p = 0; p < C.length &&
                                 (v = T.caret ||
                                     o.getLastValidPosition.call(_, void 0,
                                         !0) + 1, y = C[p], T = d.call(_, v, y,
                                     !1, i, !0)); p++) p === E && (A = T), 1 ==
                            e && T && (A = { caretPos: p });
                            if (T) break;
                            if (o.resetMaskSet.call(_), f = a.getTest.call(_,
                                g), M.validPositions = w.extend(!0, {},
                                L), M.tests = w.extend(!0, {},
                                S), !M.excludes[g]) {
                                A = l.call(_, e, t, n, i, g - 1, s);
                                break;
                            }
                            var O = (0, a.getDecisionTaker)(f);
                            if (-1 !== M.excludes[g].indexOf(
                                O + ':' + f.alternation)) {
                                A = l.call(_, e, t, n, i, g - 1, s);
                                break;
                            }
                            for (M.excludes[g].push(
                                O + ':' + f.alternation), p = g; p <
                                 o.getLastValidPosition.call(_, void 0, !0) +
                                 1; p++) delete M.validPositions[p];
                        }
                    }
                    return A && !1 === k.keepStatic || delete M.excludes[g], A;
                }

                function c (e, t, n) {
                    var i = this.opts, a = this.maskset;
                    switch (i.casing || t.casing) {
                        case'upper':
                            e = e.toUpperCase();
                            break;
                        case'lower':
                            e = e.toLowerCase();
                            break;
                        case'title':
                            var o = a.validPositions[n - 1];
                            e = 0 === n || o && o.input ===
                            String.fromCharCode(r.default.SPACE)
                                ? e.toUpperCase()
                                : e.toLowerCase();
                            break;
                        default:
                            if ('function' == typeof i.casing) {
                                var s = Array.prototype.slice.call(arguments);
                                s.push(a.validPositions), e = i.casing.apply(
                                    this, s);
                            }
                    }
                    return e;
                }

                function u (e) {
                    var t = this, n = this.opts, i = this.maskset;
                    if ('function' == typeof n.isComplete) return n.isComplete(
                        e, n);
                    if ('*' !== n.repeat) {
                        var r = !1,
                            s = o.determineLastRequiredPosition.call(t, !0),
                            l = o.seekPrevious.call(t, s.l);
                        if (void 0 === s.def || s.def.newBlockMarker ||
                            s.def.optionality || s.def.optionalQuantifier) {
                            r = !0;
                            for (var c = 0; c <= l; c++) {
                                var u = a.getTestTemplate.call(t, c).match;
                                if (!0 !== u.static && void 0 ===
                                    i.validPositions[c] && !0 !==
                                    u.optionality && !0 !==
                                    u.optionalQuantifier || !0 === u.static &&
                                    e[c] !== a.getPlaceholder.call(t, c, u)) {
                                    r = !1;
                                    break;
                                }
                            }
                        }
                        return r;
                    }
                }

                function d (e, t, n, i, r, s, h) {
                    var g = this, v = this.dependencyLib, y = this.opts,
                        b = g.maskset;

                    function x (e) {
                        return g.isRTL ? e.begin - e.end > 1 || e.begin -
                            e.end == 1 : e.end - e.begin > 1 || e.end -
                            e.begin == 1;
                    }

                    n = !0 === n;
                    var _ = e;

                    function w (e) {
                        if (void 0 !== e) {
                            if (void 0 !== e.remove &&
                            (Array.isArray(e.remove) ||
                            (e.remove = [e.remove]), e.remove.sort(
                                (function (e, t) {return t.pos - e.pos;})).
                                forEach((function (e) {
                                    m.call(g, { begin: e, end: e + 1 });
                                })), e.remove = void 0), void 0 !== e.insert &&
                            (Array.isArray(e.insert) ||
                            (e.insert = [e.insert]), e.insert.sort(
                                (function (e, t) {return e.pos - t.pos;})).
                                forEach((function (e) {
                                    '' !== e.c && d.call(g, e.pos, e.c,
                                        void 0 === e.strict || e.strict,
                                        void 0 !== e.fromIsValid
                                            ? e.fromIsValid
                                            : i);
                                })), e.insert = void 0), e.refreshFromBuffer &&
                            e.buffer) {
                                var t = e.refreshFromBuffer;
                                f.call(g, !0 === t ? t : t.start, t.end,
                                    e.buffer), e.refreshFromBuffer = void 0;
                            }
                            void 0 !== e.rewritePosition &&
                            (_ = e.rewritePosition, e = !0);
                        }
                        return e;
                    }

                    function k (t, n, r) {
                        var s = !1;
                        return a.getTests.call(g, t).
                            every((function (l, u) {
                                var d = l.match;
                                if (o.getBuffer.call(g, !0), !1 !==
                                (s = (!d.jit || void 0 !==
                                    b.validPositions[o.seekPrevious.call(g,
                                        t)]) &&
                                    (null != d.fn ? d.fn.test(n, b, t, r, y,
                                        x(e)) : (n === d.def || n ===
                                        y.skipOptionalPartCharacter) && '' !==
                                        d.def && {
                                            c: a.getPlaceholder.call(g, t, d,
                                                !0) || d.def, pos: t,
                                        }))) {
                                    var h = void 0 !== s.c ? s.c : n, f = t;
                                    return h = h ===
                                    y.skipOptionalPartCharacter && !0 ===
                                    d.static ? a.getPlaceholder.call(g, t, d,
                                        !0) || d.def : h, !0 !== (s = w(s)) &&
                                    void 0 !== s.pos && s.pos !== t &&
                                    (f = s.pos), !0 !== s && void 0 === s.pos &&
                                    void 0 === s.c || !1 === m.call(g, e,
                                        v.extend({}, l,
                                            { input: c.call(g, h, d, f) }), i,
                                        f) && (s = !1), !1;
                                }
                                return !0;
                            })), s;
                    }

                    void 0 !== e.begin && (_ = g.isRTL ? e.end : e.begin);
                    var M = !0, L = v.extend(!0, {}, b.validPositions);
                    if (!1 === y.keepStatic && void 0 !== b.excludes[_] &&
                        !0 !== r && !0 !== i) for (var S = _; S <
                    (g.isRTL ? e.begin : e.end); S++) void 0 !==
                    b.excludes[S] &&
                    (b.excludes[S] = void 0, delete b.tests[S]);
                    if ('function' == typeof y.preValidation && !0 !== i &&
                    !0 !== s && (M = w(
                        M = y.preValidation.call(g, o.getBuffer.call(g), _, t,
                            x(e), y, b, e, n || r))), !0 === M) {
                        if (M = k(_, t, n), (!n || !0 === i) && !1 === M &&
                        !0 !== s) {
                            var T = b.validPositions[_];
                            if (!T || !0 !== T.match.static || T.match.def !==
                                t && t !== y.skipOptionalPartCharacter) {
                                if (y.insertMode || void 0 ===
                                    b.validPositions[o.seekNext.call(g, _)] ||
                                    e.end > _) {
                                    var A = !1;
                                    if (b.jitOffset[_] && void 0 ===
                                    b.validPositions[o.seekNext.call(g, _)] &&
                                    !1 !==
                                    (M = d.call(g, _ + b.jitOffset[_], t, !0,
                                        !0)) &&
                                    (!0 !== r && (M.caret = _), A = !0), e.end >
                                    _ && (b.validPositions[_] = void 0), !A &&
                                    !o.isMask.call(g, _, y.keepStatic && 0 ===
                                        _)) for (var D = _ +
                                        1, C = o.seekNext.call(g, _, !1,
                                        0 !== _); D <= C; D++) if (!1 !==
                                        (M = k(D, t, n))) {
                                        M = p.call(g, _,
                                            void 0 !== M.pos ? M.pos : D) ||
                                            M, _ = D;
                                        break;
                                    }
                                }
                            } else M = { caret: o.seekNext.call(g, _) };
                        }
                        !1 !== M || !y.keepStatic ||
                        !u.call(g, o.getBuffer.call(g)) && 0 !== _ || n ||
                        !0 === r ? x(e) && b.tests[_] && b.tests[_].length >
                            1 && y.keepStatic && !n && !0 !== r &&
                            (M = l.call(g, !0)) : M = l.call(g, _, t, n, i,
                            void 0, e), !0 === M && (M = { pos: _ });
                    }
                    if ('function' == typeof y.postValidation && !0 !== i &&
                        !0 !== s) {
                        var E = y.postValidation.call(g,
                            o.getBuffer.call(g, !0),
                            void 0 !== e.begin ? g.isRTL ? e.end : e.begin : e,
                            t, M, y, b, n, h);
                        void 0 !== E && (M = !0 === E ? M : E);
                    }
                    M && void 0 === M.pos && (M.pos = _), !1 === M || !0 === s
                        ? (o.resetMaskSet.call(g,
                            !0), b.validPositions = v.extend(!0, {}, L))
                        : p.call(g, void 0, _, !0);
                    var O = w(M);
                    return void 0 !== g.maxLength &&
                    o.getBuffer.call(g).length > g.maxLength && !i &&
                    (o.resetMaskSet.call(g, !0), b.validPositions = v.extend(!0,
                        {}, L), O = !1), O;
                }

                function h (
                    e, t, n) {
                    for (var i = this.maskset, r = !1, o = a.getTests.call(this,
                        e), s = 0; s < o.length; s++) {
                        if (o[s].match && (o[s].match.nativeDef ===
                            t.match[n.shiftPositions ? 'def' : 'nativeDef'] &&
                            (!n.shiftPositions || !t.match.static) ||
                            o[s].match.nativeDef === t.match.nativeDef ||
                            n.regex && !o[s].match.static &&
                            o[s].match.fn.test(t.input))) {
                            r = !0;
                            break;
                        }
                        if (o[s].match && o[s].match.def ===
                            t.match.nativeDef) {
                            r = void 0;
                            break;
                        }
                    }
                    return !1 === r && void 0 !== i.jitOffset[e] &&
                    (r = h.call(this, e + i.jitOffset[e], t, n)), r;
                }

                function f (e, t, n) {
                    var i, a, r = this, l = this.maskset, c = this.opts,
                        u = this.dependencyLib, d = c.skipOptionalPartCharacter,
                        h = r.isRTL ? n.slice().reverse() : n;
                    if (c.skipOptionalPartCharacter = '', !0 ===
                    e) o.resetMaskSet.call(
                        r), l.tests = {}, e = 0, t = n.length, a = o.determineNewCaretPosition.call(
                        r, { begin: 0, end: 0 }, !1).begin; else {
                        for (i = e; i < t; i++) delete l.validPositions[i];
                        a = e;
                    }
                    var f = new u.Event('keypress');
                    for (i = e; i < t; i++) {
                        f.which = h[i].toString().
                            charCodeAt(0), r.ignorable = !1;
                        var p = s.EventHandlers.keypressEvent.call(r, f, !0, !1,
                            !1, a);
                        !1 !== p && void 0 !== p && (a = p.forwardPosition);
                    }
                    c.skipOptionalPartCharacter = d;
                }

                function p (e, t, n) {
                    var i = this, r = this.maskset, s = this.dependencyLib;
                    if (void 0 === e) for (e = t - 1; e > 0 &&
                    !r.validPositions[e]; e--) ;
                    for (var l = e; l < t; l++) if (void 0 ===
                        r.validPositions[l] && !o.isMask.call(i, l, !1) &&
                        (0 == l ? a.getTest.call(i, l) : r.validPositions[l -
                        1])) {
                        var c = a.getTests.call(i, l).slice();
                        '' === c[c.length - 1].match.def && c.pop();
                        var u, h = a.determineTestTemplate.call(i, l, c);
                        if (h && (!0 !== h.match.jit || 'master' ===
                            h.match.newBlockMarker &&
                            (u = r.validPositions[l + 1]) && !0 ===
                            u.match.optionalQuantifier) && ((h = s.extend({}, h,
                            {
                                input: a.getPlaceholder.call(i, l, h.match,
                                    !0) || h.match.def,
                            })).generatedInput = !0, m.call(i, l, h, !0), !0 !==
                        n)) {
                            var f = r.validPositions[t].input;
                            return r.validPositions[t] = void 0, d.call(i, t, f,
                                !0, !0);
                        }
                    }
                }

                function m (e, t, n, i) {
                    var r = this, s = this.maskset, l = this.opts,
                        c = this.dependencyLib;

                    function u (e, t, n) {
                        var i = t[e];
                        if (void 0 !== i && !0 === i.match.static && !0 !==
                            i.match.optionality &&
                            (void 0 === t[0] || void 0 === t[0].alternation)) {
                            var a = n.begin <= e - 1
                                ? t[e - 1] && !0 === t[e - 1].match.static &&
                                t[e - 1]
                                : t[e - 1],
                                r = n.end > e + 1 ? t[e + 1] && !0 ===
                                    t[e + 1].match.static && t[e + 1] : t[e +
                                1];
                            return a && r;
                        }
                        return !1;
                    }

                    var f = 0, p = void 0 !== e.begin ? e.begin : e,
                        m = void 0 !== e.end ? e.end : e, g = !0;
                    if (e.begin > e.end &&
                    (p = e.end, m = e.begin), i = void 0 !== i ? i : p, p !==
                    m || l.insertMode && void 0 !== s.validPositions[i] &&
                    void 0 === n || void 0 === t) {
                        var v, y = c.extend(!0, {}, s.validPositions),
                            b = o.getLastValidPosition.call(r, void 0, !0);
                        for (s.p = p, v = b; v >=
                        p; v--) delete s.validPositions[v], void 0 === t &&
                        delete s.tests[v + 1];
                        var x, _, w = i, k = w;
                        for (t && (s.validPositions[i] = c.extend(!0, {},
                            t), k++, w++), v = t ? m : m - 1; v <= b; v++) {
                            if (void 0 !== (x = y[v]) && !0 !==
                                x.generatedInput && (v >= m || v >= p &&
                                    u(v, y, { begin: p, end: m }))) {
                                for (; "" !== a.getTest.call(r, k).match.def;) {
                                    if (!1 !== (_ = h.call(r, k, x, l)) ||
                                        '+' === x.match.def) {
                                        '+' === x.match.def &&
                                        o.getBuffer.call(r, !0);
                                        var M = d.call(r, k, x.input,
                                            '+' !== x.match.def, !0);
                                        if (g = !1 !== M, w = (M.pos || k) +
                                            1, !g && _) break;
                                    } else g = !1;
                                    if (g) {
                                        void 0 === t && x.match.static && v ===
                                        e.begin && f++;
                                        break;
                                    }
                                    if (!g && k > s.maskLength) break;
                                    k++;
                                }
                                '' == a.getTest.call(r, k).match.def &&
                                (g = !1), k = w;
                            }
                            if (!g) break;
                        }
                        if (!g) return s.validPositions = c.extend(!0, {},
                            y), o.resetMaskSet.call(r, !0), !1;
                    } else t && a.getTest.call(r, i).match.cd === t.match.cd &&
                    (s.validPositions[i] = c.extend(!0, {}, t));
                    return o.resetMaskSet.call(r, !0), f;
                }
            },
        }, t = {};

        function n (i) {
            var a = t[i];
            if (void 0 !== a) return a.exports;
            var r = t[i] = { exports: {} };
            return e[i](r, r.exports, n), r.exports;
        }

        var i = {};
        return function () {
            var e, t = i;
            Object.defineProperty(t, '__esModule',
                { value: !0 }), t.default = void 0, n(3851), n(219), n(207), n(
                5296);
            var a = ((e = n(2394)) && e.__esModule
                ? e
                : { default: e }).default;
            t.default = a;
        }(), i;
    }();
})), function (e, t, n) {
    e(n.document).
        ajaxComplete((function (n, i, a) {
            -1 !== e.inArray('html', a.dataTypes) &&
            e('.inputmask, [data-inputmask], [data-inputmask-mask], [data-inputmask-alias], [data-inputmask-regex]').
                each(
                    (function (e, n) {void 0 === n.inputmask && t().mask(n);}));
        })).
        ready((function () {
            e('.inputmask, [data-inputmask], [data-inputmask-mask], [data-inputmask-alias],[data-inputmask-regex]').
                each(
                    (function (e, n) {void 0 === n.inputmask && t().mask(n);}));
        }));
}(jQuery, window.Inputmask, window);
var tns = function () {
    var e = window,
        t = e.requestAnimationFrame || e.webkitRequestAnimationFrame ||
            e.mozRequestAnimationFrame || e.msRequestAnimationFrame ||
            function (e) {return setTimeout(e, 16);}, n = window,
        i = n.cancelAnimationFrame || n.mozCancelAnimationFrame ||
            function (e) {clearTimeout(e);};

    function a () {
        for (var e, t, n, i = arguments[0] ||
            {}, a = 1, r = arguments.length; a < r; a++) if (null !==
            (e = arguments[a])) for (t in e) i !== (n = e[t]) && void 0 !== n &&
        (i[t] = n);
        return i;
    }

    function r (e) {
        return ['true', 'false'].indexOf(e) >= 0
            ? JSON.parse(e)
            : e;
    }

    function o (e, t, n, i) {
        if (i) try {e.setItem(t, n);} catch (e) {}
        return n;
    }

    function s () {
        var e = document, t = e.body;
        return t || ((t = e.createElement('body')).fake = !0), t;
    }

    var l = document.documentElement;

    function c (e) {
        var t = '';
        return e.fake &&
        (t = l.style.overflow, e.style.background = '', e.style.overflow = l.style.overflow = 'hidden', l.appendChild(
            e)), t;
    }

    function u (e, t) {
        e.fake && (e.remove(), l.style.overflow = t, l.offsetHeight);
    }

    function d (e, t, n, i) {
        'insertRule' in e ? e.insertRule(t + '{' + n + '}', i) : e.addRule(t, n,
            i);
    }

    function h (e) {return ('insertRule' in e ? e.cssRules : e.rules).length;}

    function f (e, t, n) {
        for (var i = 0, a = e.length; i < a; i++) t.call(n, e[i], i);
    }

    var p = 'classList' in document.createElement('_'),
        m = p ? function (e, t) {return e.classList.contains(t);} : function (
            e,
            t) {
            return e.className.indexOf(t) >= 0;
        },
        g = p ? function (e, t) {m(e, t) || e.classList.add(t);} : function (
            e,
            t) {
            m(e, t) || (e.className += ' ' + t);
        }, v = p
        ? function (e, t) {m(e, t) && e.classList.remove(t);}
        : function (e, t) {
            m(e, t) && (e.className = e.className.replace(t, ''));
        };

    function y (e, t) {return e.hasAttribute(t);}

    function b (e, t) {return e.getAttribute(t);}

    function x (e) {return void 0 !== e.item;}

    function _ (e, t) {
        if (e = x(e) || e instanceof Array
            ? e
            : [e], '[object Object]' === Object.prototype.toString.call(
            t)) for (var n = e.length; n--;) for (var i in t) e[n].setAttribute(
            i, t[i]);
    }

    function w (e, t) {
        e = x(e) || e instanceof Array ? e : [e];
        for (var n = (t = t instanceof Array
            ? t
            : [t]).length, i = e.length; i--;) for (var a = n; a--;) e[i].removeAttribute(
            t[a]);
    }

    function k (e) {
        for (var t = [], n = 0, i = e.length; n < i; n++) t.push(e[n]);
        return t;
    }

    function M (e, t) {
        'none' !== e.style.display && (e.style.display = 'none');
    }

    function L (e, t) {'none' === e.style.display && (e.style.display = '');}

    function S (e) {return 'none' !== window.getComputedStyle(e).display;}

    function T (e) {
        if ('string' == typeof e) {
            var t = [e], n = e.charAt(0).toUpperCase() + e.substr(1);
            ['Webkit', 'Moz', 'ms', 'O'].forEach((function (i) {
                'ms' === i && 'transform' !== e || t.push(i + n);
            })), e = t;
        }
        for (var i = document.createElement(
            'fakeelement'), a = (e.length, 0); a < e.length; a++) {
            var r = e[a];
            if (void 0 !== i.style[r]) return r;
        }
        return !1;
    }

    function A (e, t) {
        var n = !1;
        return /^Webkit/.test(e) ? n = 'webkit' + t + 'End' : /^O/.test(e)
            ? n = 'o' + t + 'End'
            : e && (n = t.toLowerCase() + 'end'), n;
    }

    var D = !1;
    try {
        var C = Object.defineProperty({}, 'passive',
            { get: function () {D = !0;} });
        window.addEventListener('test', null, C);
    } catch (e) {}
    var E = !!D && { passive: !0 };

    function O (e, t, n) {
        for (var i in t) {
            var a = [
                'touchstart',
                'touchmove'].indexOf(i) >= 0 && !n && E;
            e.addEventListener(i, t[i], a);
        }
    }

    function Y (e, t) {
        for (var n in t) {
            var i = [
                'touchstart',
                'touchmove'].indexOf(n) >= 0 && E;
            e.removeEventListener(n, t[n], i);
        }
    }

    function P () {
        return {
            topics: {},
            on: function (e, t) {
                this.topics[e] = this.topics[e] || [], this.topics[e].push(t);
            },
            off: function (e, t) {
                if (this.topics[e]) for (var n = 0; n <
                this.topics[e].length; n++) if (this.topics[e][n] === t) {
                    this.topics[e].splice(n, 1);
                    break;
                }
            },
            emit: function (e, t) {
                t.type = e, this.topics[e] &&
                this.topics[e].forEach((function (n) {n(t, e);}));
            },
        };
    }

    Object.keys || (Object.keys = function (e) {
        var t = [];
        for (var n in e) Object.prototype.hasOwnProperty.call(e, n) &&
        t.push(n);
        return t;
    }), 'remove' in Element.prototype ||
    (Element.prototype.remove = function () {
        this.parentNode && this.parentNode.removeChild(this);
    });
    var I = function (e) {
        e = a({
            container: '.slider',
            mode: 'carousel',
            axis: 'horizontal',
            items: 1,
            gutter: 0,
            edgePadding: 0,
            fixedWidth: !1,
            autoWidth: !1,
            viewportMax: !1,
            slideBy: 1,
            center: !1,
            controls: !0,
            controlsPosition: 'top',
            controlsText: ['prev', 'next'],
            controlsContainer: !1,
            prevButton: !1,
            nextButton: !1,
            nav: !0,
            navPosition: 'top',
            navContainer: !1,
            navAsThumbnails: !1,
            arrowKeys: !1,
            speed: 300,
            autoplay: !1,
            autoplayPosition: 'top',
            autoplayTimeout: 5e3,
            autoplayDirection: 'forward',
            autoplayText: ['start', 'stop'],
            autoplayHoverPause: !1,
            autoplayButton: !1,
            autoplayButtonOutput: !0,
            autoplayResetOnVisibility: !0,
            animateIn: 'tns-fadeIn',
            animateOut: 'tns-fadeOut',
            animateNormal: 'tns-normal',
            animateDelay: !1,
            loop: !0,
            rewind: !1,
            autoHeight: !1,
            responsive: !1,
            lazyload: !1,
            lazyloadSelector: '.tns-lazy-img',
            touch: !0,
            mouseDrag: !1,
            swipeAngle: 15,
            nested: !1,
            preventActionWhenRunning: !1,
            preventScrollOnTouch: !1,
            freezable: !0,
            onInit: !1,
            useLocalStorage: !0,
            nonce: !1,
        }, e || {});
        var n = document, l = window,
            p = { ENTER: 13, SPACE: 32, LEFT: 37, RIGHT: 39 }, x = {},
            D = e.useLocalStorage;
        if (D) {
            var C = navigator.userAgent, E = new Date;
            try {
                (x = l.localStorage) ? (x.setItem(E, E), D = x.getItem(E) ==
                    E, x.removeItem(E)) : D = !1, D || (x = {});
            } catch (e) {D = !1;}
            D && (x.tnsApp && x.tnsApp !== C && [
                'tC',
                'tPL',
                'tMQ',
                'tTf',
                't3D',
                'tTDu',
                'tTDe',
                'tADu',
                'tADe',
                'tTE',
                'tAE'].forEach(
                (function (e) {x.removeItem(e);})), localStorage.tnsApp = C);
        }
        var j = x.tC ? r(x.tC) : o(x, 'tC', function () {
                var e = document, t = s(), n = c(t), i = e.createElement('div'),
                    a = !1;
                t.appendChild(i);
                try {
                    for (var r, o = '(10px * 10)', l = [
                        'calc' + o,
                        '-moz-calc' + o,
                        '-webkit-calc' + o], d = 0; d <
                         3; d++) if (r = l[d], i.style.width = r, 100 ===
                    i.offsetWidth) {
                        a = r.replace(o, '');
                        break;
                    }
                } catch (e) {}
                return t.fake ? u(t, n) : i.remove(), a;
            }(), D), N = x.tPL ? r(x.tPL) : o(x, 'tPL', function () {
                var e, t = document, n = s(), i = c(n), a = t.createElement('div'),
                    r = t.createElement('div'), o = '';
                a.className = 'tns-t-subp2', r.className = 'tns-t-ct';
                for (var l = 0; l < 70; l++) o += '<div></div>';
                return r.innerHTML = o, a.appendChild(r), n.appendChild(
                    a), e = Math.abs(a.getBoundingClientRect().left -
                    r.children[67].getBoundingClientRect().left) < 2, n.fake ? u(n,
                    i) : a.remove(), e;
            }(), D), H = x.tMQ ? r(x.tMQ) : o(x, 'tMQ', function () {
                if (window.matchMedia || window.msMatchMedia) return !0;
                var e, t = document, n = s(), i = c(n), a = t.createElement('div'),
                    r = t.createElement('style'),
                    o = '@media all and (min-width:1px){.tns-mq-test{position:absolute}}';
                return r.type = 'text/css', a.className = 'tns-mq-test', n.appendChild(
                    r), n.appendChild(a), r.styleSheet
                    ? r.styleSheet.cssText = o
                    : r.appendChild(
                        t.createTextNode(o)), e = window.getComputedStyle
                    ? window.getComputedStyle(a).position
                    : a.currentStyle.position, n.fake
                    ? u(n, i)
                    : a.remove(), 'absolute' === e;
            }(), D), F = x.tTf ? r(x.tTf) : o(x, 'tTf', T('transform'), D),
            R = x.t3D ? r(x.t3D) : o(x, 't3D', function (e) {
                if (!e) return !1;
                if (!window.getComputedStyle) return !1;
                var t, n = document, i = s(), a = c(i),
                    r = n.createElement('p'), o = e.length > 9
                    ? '-' + e.slice(0, -9).toLowerCase() + '-'
                    : '';
                return o += 'transform', i.insertBefore(r,
                    null), r.style[e] = 'translate3d(1px,1px,1px)', t = window.getComputedStyle(
                    r).getPropertyValue(o), i.fake
                    ? u(i, a)
                    : r.remove(), void 0 !== t && t.length > 0 && 'none' !== t;
            }(F), D),
            z = x.tTDu ? r(x.tTDu) : o(x, 'tTDu', T('transitionDuration'), D),
            B = x.tTDe ? r(x.tTDe) : o(x, 'tTDe', T('transitionDelay'), D),
            W = x.tADu ? r(x.tADu) : o(x, 'tADu', T('animationDuration'), D),
            V = x.tADe ? r(x.tADe) : o(x, 'tADe', T('animationDelay'), D),
            q = x.tTE ? r(x.tTE) : o(x, 'tTE', A(z, 'Transition'), D),
            U = x.tAE ? r(x.tAE) : o(x, 'tAE', A(W, 'Animation'), D),
            X = l.console && 'function' == typeof l.console.warn, $ = [
                'container',
                'controlsContainer',
                'prevButton',
                'nextButton',
                'navContainer',
                'autoplayButton'], G = {};
        if ($.forEach((function (t) {
            if ('string' == typeof e[t]) {
                var i = e[t], a = n.querySelector(i);
                if (G[t] = i, !a || !a.nodeName) return void (X &&
                    console.warn('Can\'t find', e[t]));
                e[t] = a;
            }
        })), !(e.container.children.length < 1)) {
            var Z = e.responsive, K = e.nested, J = 'carousel' === e.mode;
            if (Z) {
                0 in Z && (e = a(e, Z[0]), delete Z[0]);
                var Q = {};
                for (var ee in Z) {
                    var te = Z[ee];
                    te = 'number' == typeof te ? { items: te } : te, Q[ee] = te;
                }
                Z = Q, Q = null;
            }
            if (J || function e (t) {
                for (var n in t) J ||
                ('slideBy' === n && (t[n] = 'page'), 'edgePadding' === n &&
                (t[n] = !1), 'autoHeight' === n &&
                (t[n] = !1)), 'responsive' === n && e(t[n]);
            }(e), !J) {
                e.axis = 'horizontal', e.slideBy = 'page', e.edgePadding = !1;
                var ne = e.animateIn, ie = e.animateOut, ae = e.animateDelay,
                    re = e.animateNormal;
            }
            var oe, se, le = 'horizontal' === e.axis,
                ce = n.createElement('div'), ue = n.createElement('div'),
                de = e.container, he = de.parentNode, fe = de.outerHTML,
                pe = de.children, me = pe.length, ge = Yn(), ve = !1;
            Z && ei(), J && (de.className += ' tns-vpfix');
            var ye, be, xe, _e, we, ke, Me, Le, Se, Te = e.autoWidth,
                Ae = Hn('fixedWidth'), De = Hn('edgePadding'),
                Ce = Hn('gutter'), Ee = jn(), Oe = Hn('center'),
                Ye = Te ? 1 : Math.floor(Hn('items')), Pe = Hn('slideBy'),
                Ie = e.viewportMax || e.fixedWidthViewportWidth,
                je = Hn('arrowKeys'), Ne = Hn('speed'), He = e.rewind,
                Fe = !He && e.loop, Re = Hn('autoHeight'), ze = Hn('controls'),
                Be = Hn('controlsText'), We = Hn('nav'), Ve = Hn('touch'),
                qe = Hn('mouseDrag'), Ue = Hn('autoplay'),
                Xe = Hn('autoplayTimeout'), $e = Hn('autoplayText'),
                Ge = Hn('autoplayHoverPause'),
                Ze = Hn('autoplayResetOnVisibility'),
                Ke = (Me = null, Le = Hn('nonce'), Se = document.createElement(
                    'style'), Me && Se.setAttribute('media', Me), Le &&
                Se.setAttribute('nonce', Le), document.querySelector('head').
                    appendChild(Se), Se.sheet ? Se.sheet : Se.styleSheet),
                Je = e.lazyload, Qe = e.lazyloadSelector, et = [], tt = Fe
                ? (we = function () {
                    if (Te || Ae && !Ie) return me - 1;
                    var t = Ae ? 'fixedWidth' : 'items', n = [];
                    if ((Ae || e[t] < me) && n.push(e[t]), Z) for (var i in Z) {
                        var a = Z[i][t];
                        a && (Ae || a < me) && n.push(a);
                    }
                    return n.length || n.push(0), Math.ceil(
                        Ae ? Ie / Math.min.apply(null, n) : Math.max.apply(null,
                            n));
                }(), ke = J ? Math.ceil((5 * we - me) / 2) : 4 * we -
                    me, ke = Math.max(we, ke), Nn('edgePadding')
                    ? ke + 1
                    : ke)
                : 0, nt = J ? me + 2 * tt : me + tt, it = !(!Ae && !Te || Fe),
                at = Ae ? Si() : null, rt = !J || !Fe, ot = le ? 'left' : 'top',
                st = '', lt = '', ct = Ae ? function () {
                    return Oe && !Fe ? me - 1 : Math.ceil(-at / (Ae + Ce));
                } : Te ? function () {
                    for (var e = 0; e < nt; e++) if (ye[e] >= -at) return e;
                } : function () {
                    return Oe && J && !Fe ? me - 1 : Fe || J
                        ? Math.max(0, nt - Math.ceil(Ye))
                        : nt - 1;
                }, ut = Cn(Hn('startIndex')), dt = ut, ht = (Dn(), 0),
                ft = Te ? null : ct(), pt = e.preventActionWhenRunning,
                mt = e.swipeAngle, gt = !mt || '?', vt = !1, yt = e.onInit,
                bt = new P, xt = ' tns-slider tns-' + e.mode, _t = de.id ||
                (_e = window.tnsId, window.tnsId = _e ? _e + 1 : 1, 'tns' +
                window.tnsId), wt = Hn('disable'), kt = !1, Mt = e.freezable,
                Lt = !(!Mt || Te) && Qn(), St = !1, Tt = {
                    click: Ii, keydown: function (e) {
                        e = Wi(e);
                        var t = [p.LEFT, p.RIGHT].indexOf(e.keyCode);
                        t >= 0 &&
                        (0 === t ? Gt.disabled || Ii(e, -1) : Zt.disabled ||
                            Ii(e, 1));
                    },
                }, At = {
                    click: function (e) {
                        if (vt) {
                            if (pt) return;
                            Yi();
                        }
                        var t = Vi(e = Wi(e));
                        for (; t !== en && !y(t, "data-nav");) t = t.parentNode;
                        if (y(t, 'data-nav')) {
                            var n = rn = Number(b(t, 'data-nav')),
                                i = Ae || Te ? n * me / nn : n * Ye;
                            Pi(jt ? n : Math.min(Math.ceil(i), me - 1), e), on ===
                            n && (hn && Ri(), rn = -1);
                        }
                    }, keydown: function (e) {
                        e = Wi(e);
                        var t = n.activeElement;
                        if (!y(t, 'data-nav')) return;
                        var i = [p.LEFT, p.RIGHT, p.ENTER, p.SPACE].indexOf(
                            e.keyCode), a = Number(b(t, 'data-nav'));
                        i >= 0 &&
                        (0 === i ? a > 0 && Bi(Qt[a - 1]) : 1 === i ? a < nn - 1 &&
                            Bi(Qt[a + 1]) : (rn = a, Pi(a, e)));
                    },
                }, Dt = {
                    mouseover: function () {hn && (Ni(), fn = !0);},
                    mouseout: function () {fn && (ji(), fn = !1);},
                }, Ct = {
                    visibilitychange: function () {
                        n.hidden ? hn && (Ni(), mn = !0) : mn && (ji(), mn = !1);
                    },
                }, Et = {
                    keydown: function (e) {
                        e = Wi(e);
                        var t = [p.LEFT, p.RIGHT].indexOf(e.keyCode);
                        t >= 0 && Ii(e, 0 === t ? -1 : 1);
                    },
                }, Ot = {
                    touchstart: $i,
                    touchmove: Gi,
                    touchend: Ki,
                    touchcancel: Ki,
                }, Yt = {
                    mousedown: $i,
                    mousemove: Gi,
                    mouseup: Ki,
                    mouseleave: Ki,
                }, Pt = Nn('controls'), It = Nn('nav'),
                jt = !!Te || e.navAsThumbnails, Nt = Nn('autoplay'),
                Ht = Nn('touch'), Ft = Nn('mouseDrag'), Rt = 'tns-slide-active',
                zt = 'tns-slide-cloned', Bt = 'tns-complete', Wt = {
                    load: function (e) {ci(Vi(e));},
                    error: function (e) {
                        t = Vi(e), g(t, 'failed'), ui(t);
                        var t;
                    },
                }, Vt = 'force' === e.preventScrollOnTouch;
            if (Pt) var qt, Ut, Xt = e.controlsContainer,
                $t = e.controlsContainer ? e.controlsContainer.outerHTML : '',
                Gt = e.prevButton, Zt = e.nextButton,
                Kt = e.prevButton ? e.prevButton.outerHTML : '',
                Jt = e.nextButton ? e.nextButton.outerHTML : '';
            if (It) var Qt, en = e.navContainer,
                tn = e.navContainer ? e.navContainer.outerHTML : '',
                nn = Te ? me : Qi(), an = 0, rn = -1, on = On(), sn = on,
                ln = 'tns-nav-active', cn = 'Carousel Page ',
                un = ' (Current Slide)';
            if (Nt) var dn, hn, fn, pn, mn,
                gn = 'forward' === e.autoplayDirection ? 1 : -1,
                vn = e.autoplayButton,
                yn = e.autoplayButton ? e.autoplayButton.outerHTML : '', bn = [
                    '<span class=\'tns-visually-hidden\'>',
                    ' animation</span>'];
            if (Ht || Ft) var xn, _n, wn = {}, kn = {}, Mn = !1,
                Ln = le ? function (e, t) {return e.x - t.x;} : function (
                    e, t) {
                    return e.y - t.y;
                };
            Te || An(wt || Lt), F && (ot = F, st = 'translate', R ? (st += le
                ? '3d('
                : '3d(0px, ', lt = le ? ', 0px, 0px)' : ', 0px)') : (st += le
                ? 'X('
                : 'Y(', lt = ')')), J &&
            (de.className = de.className.replace('tns-vpfix',
                '')), function () {
                Nn('gutter');
                ce.className = 'tns-outer', ue.className = 'tns-inner', ce.id = _t +
                    '-ow', ue.id = _t + '-iw', '' === de.id && (de.id = _t);
                xt += N || Te ? ' tns-subpixel' : ' tns-no-subpixel', xt += j
                    ? ' tns-calc'
                    : ' tns-no-calc', Te && (xt += ' tns-autowidth');
                xt += ' tns-' + e.axis, de.className += xt, J
                    ? ((oe = n.createElement('div')).id = _t +
                        '-mw', oe.className = 'tns-ovh', ce.appendChild(
                        oe), oe.appendChild(ue))
                    : ce.appendChild(ue);
                if (Re) {(oe || ue).className += ' tns-ah';}
                if (he.insertBefore(ce, de), ue.appendChild(de), f(pe,
                    (function (e, t) {
                        g(e, 'tns-item'), e.id ||
                        (e.id = _t + '-item' + t), !J && re && g(e, re), _(e,
                            { 'aria-hidden': 'true', tabindex: '-1' });
                    })), tt) {
                    for (var t = n.createDocumentFragment(), i = n.createDocumentFragment(), a = tt; a--;) {
                        var r = a % me, o = pe[r].cloneNode(!0);
                        if (g(o, zt), w(o, 'id'), i.insertBefore(o,
                            i.firstChild), J) {
                            var s = pe[me - 1 - r].cloneNode(!0);
                            g(s, zt), w(s, 'id'), t.appendChild(s);
                        }
                    }
                    de.insertBefore(t, de.firstChild), de.appendChild(
                        i), pe = de.children;
                }
            }(), function () {
                if (!J) for (var t = ut, n = ut + Math.min(me, Ye); t <
                n; t++) {
                    var i = pe[t];
                    i.style.left = 100 * (t - ut) / Ye + '%', g(i, ne), v(i,
                        re);
                }
                le && (N || Te ? (d(Ke, '#' + _t + ' > .tns-item',
                    'font-size:' + l.getComputedStyle(pe[0]).fontSize + ';',
                    h(Ke)), d(Ke, '#' + _t, 'font-size:0;', h(Ke))) : J && f(pe,
                    (function (
                        e, t) {
                        e.style.marginLeft = function (e) {
                            return j
                                ? j + '(' + 100 * e + '% / ' + nt + ')'
                                : 100 * e / nt + '%';
                        }(t);
                    })));
                if (H) {
                    if (z) {
                        var a = oe && e.autoHeight ? Vn(e.speed) : '';
                        d(Ke, '#' + _t + '-mw', a, h(Ke));
                    }
                    a = Fn(e.edgePadding, e.gutter, e.fixedWidth, e.speed,
                        e.autoHeight), d(Ke, '#' + _t + '-iw', a, h(Ke)), J &&
                    (a = le && !Te ? 'width:' +
                        Rn(e.fixedWidth, e.gutter, e.items) + ';' : '', z &&
                    (a += Vn(Ne)), d(Ke, '#' + _t, a, h(Ke))), a = le && !Te
                        ? zn(e.fixedWidth, e.gutter, e.items)
                        : '', e.gutter && (a += Bn(e.gutter)), J ||
                    (z && (a += Vn(Ne)), W && (a += qn(Ne))), a &&
                    d(Ke, '#' + _t + ' > .tns-item', a, h(Ke));
                } else {
                    J && Re &&
                    (oe.style[z] = Ne / 1e3 + 's'), ue.style.cssText = Fn(De,
                        Ce, Ae, Re), J && le && !Te &&
                    (de.style.width = Rn(Ae, Ce, Ye));
                    a = le && !Te ? zn(Ae, Ce, Ye) : '';
                    Ce && (a += Bn(Ce)), a &&
                    d(Ke, '#' + _t + ' > .tns-item', a, h(Ke));
                }
                if (Z && H) for (var r in Z) {
                    r = parseInt(r);
                    var o = Z[r], s = (a = '', ''), c = '', u = '', p = '',
                        m = Te ? null : Hn('items', r), y = Hn('fixedWidth', r),
                        b = Hn('speed', r), x = Hn('edgePadding', r),
                        _ = Hn('autoHeight', r), w = Hn('gutter', r);
                    z && oe && Hn('autoHeight', r) && 'speed' in o &&
                    (s = '#' + _t + '-mw{' + Vn(b) + '}'), ('edgePadding' in
                        o || 'gutter' in o) &&
                    (c = '#' + _t + '-iw{' + Fn(x, w, y, b, _) + '}'), J &&
                    le && !Te &&
                    ('fixedWidth' in o || 'items' in o || Ae && 'gutter' in
                        o) && (u = 'width:' + Rn(y, w, m) + ';'), z &&
                    'speed' in o && (u += Vn(b)), u &&
                    (u = '#' + _t + '{' + u + '}'), ('fixedWidth' in o || Ae &&
                        'gutter' in o || !J && 'items' in o) &&
                    (p += zn(y, w, m)), 'gutter' in o && (p += Bn(w)), !J &&
                    'speed' in o && (z && (p += Vn(b)), W && (p += qn(b))), p &&
                    (p = '#' + _t + ' > .tns-item{' + p + '}'), (a = s + c + u +
                        p) && Ke.insertRule(
                        '@media (min-width: ' + r / 16 + 'em) {' + a + '}',
                        Ke.cssRules.length);
                }
            }(), Un();
            var Sn = Fe ? J ? function () {
                    var e = ht, t = ft;
                    e += Pe, t -= Pe, De ? (e += 1, t -= 1) : Ae && (Ee + Ce) %
                        (Ae + Ce) && (t -= 1), tt &&
                    (ut > t ? ut -= me : ut < e && (ut += me));
                } : function () {
                    if (ut > ft) for (; ut >= ht + me;) ut -= me; else if (ut <
                        ht) for (; ut <= ft - me;) ut += me;
                } : function () {ut = Math.max(ht, Math.min(ft, ut));},
                Tn = J ? function () {
                    var e, t, n, i, a, r, o, s, l, c, u;
                    Mi(de, ''), z || !Ne
                        ? (Di(), Ne && S(de) || Yi())
                        : (e = de, t = ot, n = st, i = lt, a = Ti(), r = Ne, o = Yi, s = Math.min(
                            r, 10), l = a.indexOf('%') >= 0
                            ? '%'
                            : 'px', a = a.replace(l, ''), c = Number(
                            e.style[t].replace(n, '').
                                replace(i, '').
                                replace(l, '')), u = (a - c) / r *
                            s, setTimeout((function a () {
                            r -= s, c += u, e.style[t] = n + c + l + i, r > 0
                                ? setTimeout(a, s)
                                : o();
                        }), s)), le || Ji();
                } : function () {
                    et = [];
                    var e = {};
                    e[q] = e[U] = Yi, Y(pe[dt], e), O(pe[ut], e), Ci(dt, ne, ie,
                        !0), Ci(ut, re, ne), q && U && Ne && S(de) || Yi();
                };
            return {
                version: '2.9.3',
                getInfo: ta,
                events: bt,
                goTo: Pi,
                play: function () {Ue && !hn && (Fi(), pn = !1);},
                pause: function () {hn && (Ri(), pn = !0);},
                isOn: ve,
                updateSliderHeight: gi,
                refresh: Un,
                destroy: function () {
                    if (Ke.disabled = !0, Ke.ownerNode &&
                    Ke.ownerNode.remove(), Y(l, { resize: Kn }), je &&
                    Y(n, Et), Xt && Y(Xt, Tt), en && Y(en, At), Y(de, Dt), Y(de,
                        Ct), vn && Y(vn, { click: zi }), Ue &&
                    clearInterval(dn), J && q) {
                        var t = {};
                        t[q] = Yi, Y(de, t);
                    }
                    Ve && Y(de, Ot), qe && Y(de, Yt);
                    var i = [fe, $t, Kt, Jt, tn, yn];
                    for (var a in $.forEach((function (t, n) {
                        var a = 'container' === t ? ce : e[t];
                        if ('object' == typeof a && a) {
                            var r = !!a.previousElementSibling &&
                                a.previousElementSibling, o = a.parentNode;
                            a.outerHTML = i[n], e[t] = r
                                ? r.nextElementSibling
                                : o.firstElementChild;
                        }
                    })), $ = ne = ie = ae = re = le = ce = ue = de = he = fe = pe = me = se = ge = Te = Ae = De = Ce = Ee = Ye = Pe = Ie = je = Ne = He = Fe = Re = Ke = Je = ye = et = tt = nt = it = at = rt = ot = st = lt = ct = ut = dt = ht = ft = mt = gt = vt = yt = bt = xt = _t = wt = kt = Mt = Lt = St = Tt = At = Dt = Ct = Et = Ot = Yt = Pt = It = jt = Nt = Ht = Ft = Rt = Bt = Wt = be = ze = Be = Xt = $t = Gt = Zt = qt = Ut = We = en = tn = Qt = nn = an = rn = on = sn = ln = cn = un = Ue = Xe = gn = $e = Ge = vn = yn = Ze = bn = dn = hn = fn = pn = mn = wn = kn = xn = Mn = _n = Ln = Ve = qe = null, this) 'rebuild' !==
                    a && (this[a] = null);
                    ve = !1;
                },
                rebuild: function () {return I(a(e, G));},
            };
        }

        function An (e) {e && (ze = We = Ve = qe = je = Ue = Ge = Ze = !1);}

        function Dn () {
            for (var e = J ? ut - tt : ut; e < 0;) e += me;
            return e % me + 1;
        }

        function Cn (e) {
            return e = e
                ? Math.max(0, Math.min(Fe ? me - 1 : me - Ye, e))
                : 0, J ? e + tt : e;
        }

        function En (e) {
            for (null == e && (e = ut), J && (e -= tt); e < 0;) e += me;
            return Math.floor(e % me);
        }

        function On () {
            var e, t = En();
            return e = jt ? t : Ae || Te
                ? Math.ceil((t + 1) * nn / me - 1)
                : Math.floor(t / Ye), !Fe && J && ut === ft && (e = nn - 1), e;
        }

        function Yn () {
            return l.innerWidth || n.documentElement.clientWidth ||
                n.body.clientWidth;
        }

        function Pn (e) {return 'top' === e ? 'afterbegin' : 'beforeend';}

        function In (e) {
            if (null != e) {
                var t, i, a = n.createElement('div');
                return e.appendChild(
                    a), i = (t = a.getBoundingClientRect()).right -
                    t.left, a.remove(), i || In(e.parentNode);
            }
        }

        function jn () {
            var e = De ? 2 * De - Ce : 0;
            return In(he) - e;
        }

        function Nn (t) {
            if (e[t]) return !0;
            if (Z) for (var n in Z) if (Z[n][t]) return !0;
            return !1;
        }

        function Hn (t, n) {
            if (null == n && (n = ge), 'items' === t && Ae) return Math.floor(
                (Ee + Ce) / (Ae + Ce)) || 1;
            var i = e[t];
            if (Z) for (var a in Z) n >= parseInt(a) && t in Z[a] &&
            (i = Z[a][t]);
            return 'slideBy' === t && 'page' === i && (i = Hn('items')), J ||
            'slideBy' !== t && 'items' !== t || (i = Math.floor(i)), i;
        }

        function Fn (e, t, n, i, a) {
            var r = '';
            if (void 0 !== e) {
                var o = e;
                t && (o -= t), r = le
                    ? 'margin: 0 ' + o + 'px 0 ' + e + 'px;'
                    : 'margin: ' + e + 'px 0 ' + o + 'px 0;';
            } else if (t && !n) {
                var s = '-' + t + 'px';
                r = 'margin: 0 ' + (le ? s + ' 0 0' : '0 ' + s + ' 0') + ';';
            }
            return !J && a && z && i && (r += Vn(i)), r;
        }

        function Rn (e, t, n) {
            return e ? (e + t) * nt + 'px' : j ? j + '(' + 100 * nt + '% / ' +
                n + ')' : 100 * nt / n + '%';
        }

        function zn (e, t, n) {
            var i;
            if (e) i = e + t + 'px'; else {
                J || (n = Math.floor(n));
                var a = J ? nt : n;
                i = j ? j + '(100% / ' + a + ')' : 100 / a + '%';
            }
            return i = 'width:' + i, 'inner' !== K ? i + ';' : i +
                ' !important;';
        }

        function Bn (e) {
            var t = '';
            !1 !== e &&
            (t = (le ? 'padding-' : 'margin-') + (le ? 'right' : 'bottom') +
                ': ' + e + 'px;');
            return t;
        }

        function Wn (e, t) {
            var n = e.substring(0, e.length - t).toLowerCase();
            return n && (n = '-' + n + '-'), n;
        }

        function Vn (e) {
            return Wn(z, 18) + 'transition-duration:' + e / 1e3 + 's;';
        }

        function qn (e) {
            return Wn(W, 17) + 'animation-duration:' + e / 1e3 + 's;';
        }

        function Un () {
            if (Nn('autoHeight') || Te || !le) {
                var e = de.querySelectorAll('img');
                f(e, (function (e) {
                    var t = e.src;
                    Je || (t && t.indexOf('data:image') < 0 ? (e.src = '', O(e,
                        Wt), g(e, 'loading'), e.src = t) : ci(e));
                })), t((function () {fi(k(e), (function () {be = !0;}));})), Nn(
                    'autoHeight') &&
                (e = di(ut, Math.min(ut + Ye - 1, nt - 1))), Je
                    ? Xn()
                    : t((function () {fi(k(e), Xn);}));
            } else J && Ai(), Gn(), Zn();
        }

        function Xn () {
            if (Te && me > 1) {
                var e = Fe ? ut : me - 1;
                !function t () {
                    var n = pe[e].getBoundingClientRect().left,
                        i = pe[e - 1].getBoundingClientRect().right;
                    Math.abs(n - i) <= 1 ? $n() : setTimeout(
                        (function () {t();}), 16);
                }();
            } else $n();
        }

        function $n () {
            le && !Te || (vi(), Te
                ? (at = Si(), Mt && (Lt = Qn()), ft = ct(), An(wt || Lt))
                : Ji()), J && Ai(), Gn(), Zn();
        }

        function Gn () {
            if (yi(), ce.insertAdjacentHTML('afterbegin',
                '<div class="tns-liveregion tns-visually-hidden" aria-live="polite" aria-atomic="true">slide <span class="current">' +
                oi() + '</span>  of ' + me + '</div>'), xe = ce.querySelector(
                '.tns-liveregion .current'), Nt) {
                var t = Ue ? 'stop' : 'start';
                vn ? _(vn, { 'data-action': t }) : e.autoplayButtonOutput &&
                    (ce.insertAdjacentHTML(Pn(e.autoplayPosition),
                        '<button type="button" data-action="' + t + '">' +
                        bn[0] + t + bn[1] + $e[0] +
                        '</button>'), vn = ce.querySelector(
                        '[data-action]')), vn && O(vn, { click: zi }), Ue &&
                (Fi(), Ge && O(de, Dt), Ze && O(de, Ct));
            }
            if (It) {
                if (en) _(en, { 'aria-label': 'Carousel Pagination' }), f(
                    Qt = en.children, (function (e, t) {
                        _(e, {
                            'data-nav': t,
                            tabindex: '-1',
                            'aria-label': cn + (t + 1),
                            'aria-controls': _t,
                        });
                    })); else {
                    for (var n = '', i = jt
                        ? ''
                        : 'style="display:none"', a = 0; a <
                         me; a++) n += '<button type="button" data-nav="' + a +
                        '" tabindex="-1" aria-controls="' + _t + '" ' + i +
                        ' aria-label="' + cn + (a + 1) + '"></button>';
                    n = '<div class="tns-nav" aria-label="Carousel Pagination">' +
                        n + '</div>', ce.insertAdjacentHTML(Pn(e.navPosition),
                        n), en = ce.querySelector('.tns-nav'), Qt = en.children;
                }
                if (ea(), z) {
                    var r = z.substring(0, z.length - 18).
                        toLowerCase(), o = 'transition: all ' + Ne / 1e3 + 's';
                    r && (o = '-' + r + '-' + o), d(Ke,
                        '[aria-controls^=' + _t + '-item]', o, h(Ke));
                }
                _(Qt[on], { 'aria-label': cn + (on + 1) + un }), w(Qt[on],
                    'tabindex'), g(Qt[on], ln), O(en, At);
            }
            Pt && (Xt || Gt && Zt ||
            (ce.insertAdjacentHTML(Pn(e.controlsPosition),
                '<div class="tns-controls" aria-label="Carousel Navigation" tabindex="0"><button type="button" data-controls="prev" tabindex="-1" aria-controls="' +
                _t + '">' + Be[0] +
                '</button><button type="button" data-controls="next" tabindex="-1" aria-controls="' +
                _t + '">' + Be[1] + '</button></div>'), Xt = ce.querySelector(
                '.tns-controls')), Gt && Zt ||
            (Gt = Xt.children[0], Zt = Xt.children[1]), e.controlsContainer &&
            _(Xt, {
                'aria-label': 'Carousel Navigation',
                tabindex: '0',
            }), (e.controlsContainer || e.prevButton && e.nextButton) &&
            _([Gt, Zt], {
                'aria-controls': _t,
                tabindex: '-1',
            }), (e.controlsContainer || e.prevButton && e.nextButton) &&
            (_(Gt, { 'data-controls': 'prev' }), _(Zt,
                { 'data-controls': 'next' })), qt = xi(Gt), Ut = xi(
                Zt), ki(), Xt ? O(Xt, Tt) : (O(Gt, Tt), O(Zt, Tt))), ti();
        }

        function Zn () {
            if (J && q) {
                var t = {};
                t[q] = Yi, O(de, t);
            }
            Ve && O(de, Ot, e.preventScrollOnTouch), qe && O(de, Yt), je &&
            O(n, Et), 'inner' === K ? bt.on('outerResized',
                (function () {Jn(), bt.emit('innerLoaded', ta());})) : (Z ||
                Ae || Te || Re || !le) && O(l, { resize: Kn }), Re &&
            ('outer' === K ? bt.on('innerLoaded', hi) : wt || hi()), li(), wt
                ? ai()
                : Lt && ii(), bt.on('indexChanged', pi), 'inner' === K &&
            bt.emit('innerLoaded', ta()), 'function' == typeof yt &&
            yt(ta()), ve = !0;
        }

        function Kn (e) {t((function () {Jn(Wi(e));}));}

        function Jn (t) {
            if (ve) {
                'outer' === K && bt.emit('outerResized', ta(t)), ge = Yn();
                var i, a = se, r = !1;
                Z &&
                (ei(), (i = a !== se) && bt.emit('newBreakpointStart', ta(t)));
                var o, s, l = Ye, c = wt, u = Lt, p = je, m = ze, y = We,
                    b = Ve, x = qe, _ = Ue, w = Ge, k = Ze, S = ut;
                if (i) {
                    var T = Ae, A = Re, D = Be, C = Oe, E = $e;
                    if (!H) var P = Ce, I = De;
                }
                if (je = Hn('arrowKeys'), ze = Hn('controls'), We = Hn(
                    'nav'), Ve = Hn('touch'), Oe = Hn('center'), qe = Hn(
                    'mouseDrag'), Ue = Hn('autoplay'), Ge = Hn(
                    'autoplayHoverPause'), Ze = Hn(
                    'autoplayResetOnVisibility'), i &&
                (wt = Hn('disable'), Ae = Hn('fixedWidth'), Ne = Hn(
                    'speed'), Re = Hn('autoHeight'), Be = Hn(
                    'controlsText'), $e = Hn('autoplayText'), Xe = Hn(
                    'autoplayTimeout'), H ||
                (De = Hn('edgePadding'), Ce = Hn('gutter'))), An(
                    wt), Ee = jn(), le && !Te || wt ||
                (vi(), le || (Ji(), r = !0)), (Ae || Te) &&
                (at = Si(), ft = ct()), (i || Ae) &&
                (Ye = Hn('items'), Pe = Hn('slideBy'), (s = Ye !== l) &&
                (Ae || Te || (ft = ct()), Sn())), i && wt !== c &&
                (wt ? ai() : function () {
                    if (!kt) return;
                    if (Ke.disabled = !1, de.className += xt, Ai(), Fe) for (var e = tt; e--;) J &&
                    L(pe[e]), L(pe[nt - e - 1]);
                    if (!J) for (var t = ut, n = ut + me; t < n; t++) {
                        var i = pe[t], a = t < ut + Ye ? ne : re;
                        i.style.left = 100 * (t - ut) / Ye + '%', g(i, a);
                    }
                    ni(), kt = !1;
                }()), Mt && (i || Ae || Te) && (Lt = Qn()) !== u &&
                (Lt ? (Di(Ti(Cn(0))), ii()) : (!function () {
                    if (!St) return;
                    De && H && (ue.style.margin = '');
                    if (tt) for (var e = 'tns-transparent', t = tt; t--;) J &&
                    v(pe[t], e), v(pe[nt - t - 1], e);
                    ni(), St = !1;
                }(), r = !0)), An(wt || Lt), Ue || (Ge = Ze = !1), je !== p &&
                (je ? O(n, Et) : Y(n, Et)), ze !== m &&
                (ze ? Xt ? L(Xt) : (Gt && L(Gt), Zt && L(Zt)) : Xt
                    ? M(Xt)
                    : (Gt && M(Gt), Zt && M(Zt))), We !== y &&
                (We ? (L(en), ea()) : M(en)), Ve !== b &&
                (Ve ? O(de, Ot, e.preventScrollOnTouch) : Y(de, Ot)), qe !==
                x && (qe ? O(de, Yt) : Y(de, Yt)), Ue !== _ &&
                (Ue ? (vn && L(vn), hn || pn || Fi()) : (vn && M(vn), hn &&
                Ri())), Ge !== w && (Ge ? O(de, Dt) : Y(de, Dt)), Ze !== k &&
                (Ze ? O(n, Ct) : Y(n, Ct)), i) {
                    if (Ae === T && Oe === C || (r = !0), Re !== A &&
                    (Re || (ue.style.height = '')), ze && Be !== D &&
                    (Gt.innerHTML = Be[0], Zt.innerHTML = Be[1]), vn && $e !==
                    E) {
                        var j = Ue ? 1 : 0, N = vn.innerHTML,
                            F = N.length - E[j].length;
                        N.substring(F) === E[j] &&
                        (vn.innerHTML = N.substring(0, F) + $e[j]);
                    }
                } else Oe && (Ae || Te) && (r = !0);
                if ((s || Ae && !Te) && (nn = Qi(), ea()), (o = ut !== S)
                    ? (bt.emit('indexChanged', ta()), r = !0)
                    : s ? o || pi() : (Ae || Te) && (li(), yi(), ri()), s &&
                !J && function () {
                    for (var e = ut + Math.min(me, Ye), t = nt; t--;) {
                        var n = pe[t];
                        t >= ut && t < e ? (g(n,
                            'tns-moving'), n.style.left = 100 * (t - ut) / Ye +
                            '%', g(n, ne), v(n, re)) : n.style.left &&
                            (n.style.left = '', g(n, re), v(n, ne)), v(n, ie);
                    }
                    setTimeout((function () {
                        f(pe, (function (e) {v(e, 'tns-moving');}));
                    }), 300);
                }(), !wt && !Lt) {
                    if (i && !H && (De === I && Ce === P ||
                    (ue.style.cssText = Fn(De, Ce, Ae, Ne, Re)), le)) {
                        J && (de.style.width = Rn(Ae, Ce, Ye));
                        var R = zn(Ae, Ce, Ye) + Bn(Ce);
                        !function (e, t) {
                            'deleteRule' in e
                                ? e.deleteRule(t)
                                : e.removeRule(t);
                        }(Ke, h(Ke) - 1), d(Ke, '#' + _t + ' > .tns-item', R,
                            h(Ke));
                    }
                    Re && hi(), r && (Ai(), dt = ut);
                }
                i && bt.emit('newBreakpointEnd', ta(t));
            }
        }

        function Qn () {
            if (!Ae && !Te) return me <= (Oe ? Ye - (Ye - 1) / 2 : Ye);
            var e = Ae ? (Ae + Ce) * me : ye[me],
                t = De ? Ee + 2 * De : Ee + Ce;
            return Oe &&
            (t -= Ae ? (Ee - Ae) / 2 : (Ee - (ye[ut + 1] - ye[ut] - Ce)) /
                2), e <= t;
        }

        function ei () {
            for (var e in se = 0, Z) e = parseInt(e), ge >= e && (se = e);
        }

        function ti () {
            !Ue && vn && M(vn), !We && en && M(en), ze ||
            (Xt ? M(Xt) : (Gt && M(Gt), Zt && M(Zt)));
        }

        function ni () {
            Ue && vn && L(vn), We && en && L(en), ze &&
            (Xt ? L(Xt) : (Gt && L(Gt), Zt && L(Zt)));
        }

        function ii () {
            if (!St) {
                if (De &&
                (ue.style.margin = '0px'), tt) for (var e = 'tns-transparent', t = tt; t--;) J &&
                g(pe[t], e), g(pe[nt - t - 1], e);
                ti(), St = !0;
            }
        }

        function ai () {
            if (!kt) {
                if (Ke.disabled = !0, de.className = de.className.replace(
                    xt.substring(1), ''), w(de,
                    ['style']), Fe) for (var e = tt; e--;) J && M(pe[e]), M(
                    pe[nt - e - 1]);
                if (le && J || w(ue, ['style']), !J) for (var t = ut, n = ut +
                    me; t < n; t++) {
                    var i = pe[t];
                    w(i, ['style']), v(i, ne), v(i, re);
                }
                ti(), kt = !0;
            }
        }

        function ri () {
            var e = oi();
            xe.innerHTML !== e && (xe.innerHTML = e);
        }

        function oi () {
            var e = si(), t = e[0] + 1, n = e[1] + 1;
            return t === n ? t + '' : t + ' to ' + n;
        }

        function si (e) {
            null == e && (e = Ti());
            var t, n, i, a = ut;
            if (Oe || De ? (Te || Ae) &&
                (n = -(parseFloat(e) + De), i = n + Ee + 2 * De) : Te &&
                (n = ye[ut], i = n + Ee), Te) ye.forEach((function (e, r) {
                r < nt &&
                ((Oe || De) && e <= n + .5 && (a = r), i - e >= .5 && (t = r));
            })); else {
                if (Ae) {
                    var r = Ae + Ce;
                    Oe || De
                        ? (a = Math.floor(n / r), t = Math.ceil(i / r - 1))
                        : t = a + Math.ceil(Ee / r) - 1;
                } else if (Oe || De) {
                    var o = Ye - 1;
                    if (Oe ? (a -= o / 2, t = ut + o / 2) : t = ut + o, De) {
                        var s = De * Ye / Ee;
                        a -= s, t += s;
                    }
                    a = Math.floor(a), t = Math.ceil(t);
                } else t = a + Ye - 1;
                a = Math.max(a, 0), t = Math.min(t, nt - 1);
            }
            return [a, t];
        }

        function li () {
            if (Je && !wt) {
                var e = si();
                e.push(Qe), di.apply(null, e).
                    forEach((function (e) {
                        if (!m(e, Bt)) {
                            var t = {};
                            t[q] = function (e) {e.stopPropagation();}, O(e,
                                t), O(e, Wt), e.src = b(e, 'data-src');
                            var n = b(e, 'data-srcset');
                            n && (e.srcset = n), g(e, 'loading');
                        }
                    }));
            }
        }

        function ci (e) {g(e, 'loaded'), ui(e);}

        function ui (e) {g(e, Bt), v(e, 'loading'), Y(e, Wt);}

        function di (e, t, n) {
            var i = [];
            for (n || (n = 'img'); e <= t;) f(pe[e].querySelectorAll(n),
                (function (e) {i.push(e);})), e++;
            return i;
        }

        function hi () {
            var e = di.apply(null, si());
            t((function () {fi(e, gi);}));
        }

        function fi (e, n) {
            return be ? n() : (e.forEach((function (t, n) {
                !Je && t.complete && ui(t), m(t, Bt) && e.splice(n, 1);
            })), e.length ? void t((function () {fi(e, n);})) : n());
        }

        function pi () {
            li(), yi(), ri(), ki(), function () {
                if (We && (on = rn >= 0 ? rn : On(), rn = -1, on !== sn)) {
                    var e = Qt[sn], t = Qt[on];
                    _(e, { tabindex: '-1', 'aria-label': cn + (sn + 1) }), v(e,
                        ln), _(t, { 'aria-label': cn + (on + 1) + un }), w(t,
                        'tabindex'), g(t, ln), sn = on;
                }
            }();
        }

        function mi (e, t) {
            for (var n = [], i = e, a = Math.min(e + t, nt); i < a; i++) n.push(
                pe[i].offsetHeight);
            return Math.max.apply(null, n);
        }

        function gi () {
            var e = Re ? mi(ut, Ye) : mi(tt, me), t = oe || ue;
            t.style.height !== e && (t.style.height = e + 'px');
        }

        function vi () {
            ye = [0];
            var e = le ? 'left' : 'top', t = le ? 'right' : 'bottom',
                n = pe[0].getBoundingClientRect()[e];
            f(pe, (function (i, a) {
                a && ye.push(i.getBoundingClientRect()[e] - n), a === nt - 1 &&
                ye.push(i.getBoundingClientRect()[t] - n);
            }));
        }

        function yi () {
            var e = si(), t = e[0], n = e[1];
            f(pe, (function (e, i) {
                i >= t && i <= n ? y(e, 'aria-hidden') &&
                    (w(e, ['aria-hidden', 'tabindex']), g(e, Rt)) : y(e,
                    'aria-hidden') ||
                    (_(e, { 'aria-hidden': 'true', tabindex: '-1' }), v(e, Rt));
            }));
        }

        function bi (e) {return e.nodeName.toLowerCase();}

        function xi (e) {return 'button' === bi(e);}

        function _i (e) {return 'true' === e.getAttribute('aria-disabled');}

        function wi (e, t, n) {
            e ? t.disabled = n : t.setAttribute('aria-disabled', n.toString());
        }

        function ki () {
            if (ze && !He && !Fe) {
                var e = qt ? Gt.disabled : _i(Gt),
                    t = Ut ? Zt.disabled : _i(Zt), n = ut <= ht,
                    i = !He && ut >= ft;
                n && !e && wi(qt, Gt, !0), !n && e && wi(qt, Gt, !1), i && !t &&
                wi(Ut, Zt, !0), !i && t && wi(Ut, Zt, !1);
            }
        }

        function Mi (e, t) {z && (e.style[z] = t);}

        function Li (e) {
            return null == e && (e = ut), Te ? (Ee - (De ? Ce : 0) -
                (ye[e + 1] - ye[e] - Ce)) / 2 : Ae
                ? (Ee - Ae) / 2
                : (Ye - 1) / 2;
        }

        function Si () {
            var e = Ee + (De ? Ce : 0) - (Ae ? (Ae + Ce) * nt : ye[nt]);
            return Oe && !Fe &&
            (e = Ae ? -(Ae + Ce) * (nt - 1) - Li() : Li(nt - 1) -
                ye[nt - 1]), e > 0 && (e = 0), e;
        }

        function Ti (e) {
            var t;
            if (null == e && (e = ut), le && !Te) if (Ae) t = -(Ae + Ce) *
                e, Oe && (t += Li()); else {
                var n = F ? nt : Ye;
                Oe && (e -= Li()), t = 100 * -e / n;
            } else t = -ye[e], Oe && Te && (t += Li());
            return it && (t = Math.max(t, at)), t += !le || Te || Ae
                ? 'px'
                : '%';
        }

        function Ai (e) {Mi(de, '0s'), Di(e);}

        function Di (e) {null == e && (e = Ti()), de.style[ot] = st + e + lt;}

        function Ci (e, t, n, i) {
            var a = e + Ye;
            Fe || (a = Math.min(a, nt));
            for (var r = e; r < a; r++) {
                var o = pe[r];
                i || (o.style.left = 100 * (r - ut) / Ye + '%'), ae && B &&
                (o.style[B] = o.style[V] = ae * (r - e) / 1e3 + 's'), v(o,
                    t), g(o, n), i && et.push(o);
            }
        }

        function Ei (e, t) {
            rt && Sn(), (ut !== dt || t) &&
            (bt.emit('indexChanged', ta()), bt.emit('transitionStart',
                ta()), Re && hi(), hn && e &&
            ['click', 'keydown'].indexOf(e.type) >= 0 && Ri(), vt = !0, Tn());
        }

        function Oi (e) {return e.toLowerCase().replace(/-/g, '');}

        function Yi (e) {
            if (J || vt) {
                if (bt.emit('transitionEnd', ta(e)), !J && et.length >
                0) for (var t = 0; t < et.length; t++) {
                    var n = et[t];
                    n.style.left = '', V && B &&
                    (n.style[V] = '', n.style[B] = ''), v(n, ie), g(n, re);
                }
                if (!e || !J && e.target.parentNode === de || e.target === de &&
                    Oi(e.propertyName) === Oi(ot)) {
                    if (!rt) {
                        var i = ut;
                        Sn(), ut !== i && (bt.emit('indexChanged', ta()), Ai());
                    }
                    'inner' === K &&
                    bt.emit('innerLoaded', ta()), vt = !1, dt = ut;
                }
            }
        }

        function Pi (e, t) {
            if (!Lt) if ('prev' === e) Ii(t, -1); else if ('next' === e) Ii(t,
                1); else {
                if (vt) {
                    if (pt) return;
                    Yi();
                }
                var n = En(), i = 0;
                if ('first' === e ? i = -n : 'last' === e ? i = J
                    ? me - Ye - n
                    : me - 1 - n : ('number' != typeof e &&
                (e = parseInt(e)), isNaN(e) ||
                (t || (e = Math.max(0, Math.min(me - 1, e))), i = e - n)), !J &&
                i && Math.abs(i) < Ye) {
                    var a = i > 0 ? 1 : -1;
                    i += ut + i - me >= ht ? me * a : 2 * me * a * -1;
                }
                ut += i, J && Fe &&
                (ut < ht && (ut += me), ut > ft && (ut -= me)), En(ut) !==
                En(dt) && Ei(t);
            }
        }

        function Ii (e, t) {
            if (vt) {
                if (pt) return;
                Yi();
            }
            var n;
            if (!t) {
                for (var i = Vi(e = Wi(e)); i !== Xt && [Gt, Zt].indexOf(i) <
                0;) i = i.parentNode;
                var a = [Gt, Zt].indexOf(i);
                a >= 0 && (n = !0, t = 0 === a ? -1 : 1);
            }
            if (He) {
                if (ut === ht && -1 === t) return void Pi('last', e);
                if (ut === ft && 1 === t) return void Pi('first', e);
            }
            t && (ut += Pe * t, Te && (ut = Math.floor(ut)), Ei(
                n || e && 'keydown' === e.type ? e : null));
        }

        function ji () {
            dn = setInterval((function () {Ii(null, gn);}), Xe), hn = !0;
        }

        function Ni () {clearInterval(dn), hn = !1;}

        function Hi (e, t) {
            _(vn, { 'data-action': e }), vn.innerHTML = bn[0] + e + bn[1] + t;
        }

        function Fi () {ji(), vn && Hi('stop', $e[1]);}

        function Ri () {Ni(), vn && Hi('start', $e[0]);}

        function zi () {hn ? (Ri(), pn = !0) : (Fi(), pn = !1);}

        function Bi (e) {e.focus();}

        function Wi (e) {return qi(e = e || l.event) ? e.changedTouches[0] : e;}

        function Vi (e) {return e.target || l.event.srcElement;}

        function qi (e) {return e.type.indexOf('touch') >= 0;}

        function Ui (e) {
            e.preventDefault
                ? e.preventDefault()
                : e.returnValue = !1;
        }

        function Xi () {
            return r = kn.y - wn.y, o = kn.x - wn.x, t = Math.atan2(r, o) *
                (180 / Math.PI), n = mt, i = !1, (a = Math.abs(
                90 - Math.abs(t))) >= 90 - n ? i = 'horizontal' : a <= n &&
                (i = 'vertical'), i === e.axis;
            var t, n, i, a, r, o;
        }

        function $i (e) {
            if (vt) {
                if (pt) return;
                Yi();
            }
            Ue && hn && Ni(), Mn = !0, _n && (i(_n), _n = null);
            var t = Wi(e);
            bt.emit(qi(e) ? 'touchStart' : 'dragStart', ta(e)), !qi(e) &&
            ['img', 'a'].indexOf(bi(Vi(e))) >= 0 &&
            Ui(e), kn.x = wn.x = t.clientX, kn.y = wn.y = t.clientY, J &&
            (xn = parseFloat(de.style[ot].replace(st, '')), Mi(de, '0s'));
        }

        function Gi (e) {
            if (Mn) {
                var n = Wi(e);
                kn.x = n.clientX, kn.y = n.clientY, J ? _n ||
                    (_n = t((function () {Zi(e);}))) : ('?' === gt &&
                (gt = Xi()), gt && (Vt = !0)), ('boolean' !=
                    typeof e.cancelable || e.cancelable) && Vt &&
                e.preventDefault();
            }
        }

        function Zi (e) {
            if (gt) {
                if (i(_n), Mn && (_n = t((function () {Zi(e);}))), '?' === gt &&
                (gt = Xi()), gt) {
                    !Vt && qi(e) && (Vt = !0);
                    try {
                        e.type &&
                        bt.emit(qi(e) ? 'touchMove' : 'dragMove', ta(e));
                    } catch (e) {}
                    var n = xn, a = Ln(kn, wn);
                    if (!le || Ae || Te) n += a, n += 'px'; else n += F ? a *
                        Ye * 100 / ((Ee + Ce) * nt) : 100 * a /
                        (Ee + Ce), n += '%';
                    de.style[ot] = st + n + lt;
                }
            } else Mn = !1;
        }

        function Ki (n) {
            if (Mn) {
                _n && (i(_n), _n = null), J && Mi(de, ''), Mn = !1;
                var a = Wi(n);
                kn.x = a.clientX, kn.y = a.clientY;
                var r = Ln(kn, wn);
                if (Math.abs(r)) {
                    if (!qi(n)) {
                        var o = Vi(n);
                        O(o, {
                            click: function e (t) {
                                Ui(t), Y(o, { click: e });
                            },
                        });
                    }
                    J ? _n = t((function () {
                        if (le && !Te) {
                            var e = -r * Ye / (Ee + Ce);
                            e = r > 0 ? Math.floor(e) : Math.ceil(e), ut += e;
                        } else {
                            var t = -(xn + r);
                            if (t <= 0) ut = ht; else if (t >=
                                ye[nt - 1]) ut = ft; else for (var i = 0; i <
                            nt && t >= ye[i];) ut = i, t > ye[i] && r < 0 &&
                            (ut += 1), i++;
                        }
                        Ei(n, r), bt.emit(qi(n) ? 'touchEnd' : 'dragEnd',
                            ta(n));
                    })) : gt && Ii(n, r > 0 ? -1 : 1);
                }
            }
            'auto' === e.preventScrollOnTouch && (Vt = !1), mt &&
            (gt = '?'), Ue && !hn && ji();
        }

        function Ji () {(oe || ue).style.height = ye[ut + Ye] - ye[ut] + 'px';}

        function Qi () {
            var e = Ae ? (Ae + Ce) * me / Ee : me / Ye;
            return Math.min(Math.ceil(e), me);
        }

        function ea () {
            if (We && !jt && nn !== an) {
                var e = an, t = nn, n = L;
                for (an > nn && (e = nn, t = an, n = M); e < t;) n(Qt[e]), e++;
                an = nn;
            }
        }

        function ta (e) {
            return {
                container: de,
                slideItems: pe,
                navContainer: en,
                navItems: Qt,
                controlsContainer: Xt,
                hasControls: Pt,
                prevButton: Gt,
                nextButton: Zt,
                items: Ye,
                slideBy: Pe,
                cloneCount: tt,
                slideCount: me,
                slideCountNew: nt,
                index: ut,
                indexCached: dt,
                displayIndex: Dn(),
                navCurrentIndex: on,
                navCurrentIndexCached: sn,
                pages: nn,
                pagesCached: an,
                sheet: Ke,
                isOn: ve,
                event: e || {},
            };
        }

        X && console.warn('No slides found in', e.container);
    };
    return I;
}();
/*! nouislider - 14.7.0 - 4/6/2021 */
!function (e) {
    'function' == typeof define && define.amd
        ? define([], e)
        : 'object' == typeof exports
        ? module.exports = e()
        : window.noUiSlider = e();
}((function () {
    'use strict';
    var e = '14.7.0';

    function t (e) {e.parentElement.removeChild(e);}

    function n (e) {return null != e;}

    function i (e) {e.preventDefault();}

    function a (e) {return 'number' == typeof e && !isNaN(e) && isFinite(e);}

    function r (e, t, n) {
        n > 0 && (c(e, t), setTimeout((function () {u(e, t);}), n));
    }

    function o (e) {return Math.max(Math.min(e, 100), 0);}

    function s (e) {return Array.isArray(e) ? e : [e];}

    function l (e) {
        var t = (e = String(e)).split('.');
        return t.length > 1 ? t[1].length : 0;
    }

    function c (e, t) {
        e.classList && !/\s/.test(t)
            ? e.classList.add(t)
            : e.className += ' ' + t;
    }

    function u (e, t) {
        e.classList && !/\s/.test(t)
            ? e.classList.remove(t)
            : e.className = e.className.replace(
            new RegExp('(^|\\b)' + t.split(' ').join('|') + '(\\b|$)', 'gi'),
            ' ');
    }

    function d (e) {
        var t = void 0 !== window.pageXOffset,
            n = 'CSS1Compat' === (e.compatMode || '');
        return {
            x: t ? window.pageXOffset : n
                ? e.documentElement.scrollLeft
                : e.body.scrollLeft,
            y: t ? window.pageYOffset : n
                ? e.documentElement.scrollTop
                : e.body.scrollTop,
        };
    }

    function h (e, t) {return 100 / (t - e);}

    function f (e, t, n) {return 100 * t / (e[n + 1] - e[n]);}

    function p (e, t) {
        for (var n = 1; e >= t[n];) n += 1;
        return n;
    }

    function m (e, t, n) {
        if (n >= e.slice(-1)[0]) return 100;
        var i = p(n, e), a = e[i - 1], r = e[i], o = t[i - 1], s = t[i];
        return o + function (e, t) {
            return f(e, e[0] < 0 ? t + Math.abs(e[0]) : t - e[0], 0);
        }([a, r], n) / h(o, s);
    }

    function g (e, t, n, i) {
        if (100 === i) return i;
        var a = p(i, e), r = e[a - 1], o = e[a];
        return n ? i - r > (o - r) / 2 ? o : r : t[a - 1] ? e[a - 1] +
            function (e, t) {return Math.round(e / t) * t;}(i - e[a - 1],
                t[a - 1]) : i;
    }

    function v (e, t, n) {
        var i;
        if ('number' == typeof t && (t = [t]), !Array.isArray(
            t)) throw new Error(
            'noUiSlider (14.7.0): \'range\' contains invalid value.');
        if (!a(i = 'min' === e ? 0 : 'max' === e ? 100 : parseFloat(e)) ||
            !a(t[0])) throw new Error(
            'noUiSlider (14.7.0): \'range\' value isn\'t numeric.');
        n.xPct.push(i), n.xVal.push(t[0]), i ? n.xSteps.push(
            !isNaN(t[1]) && t[1]) : isNaN(t[1]) ||
            (n.xSteps[0] = t[1]), n.xHighestCompleteStep.push(0);
    }

    function y (e, t, n) {
        if (t) if (n.xVal[e] !== n.xVal[e + 1]) {
            n.xSteps[e] = f([n.xVal[e], n.xVal[e + 1]], t, 0) /
                h(n.xPct[e], n.xPct[e + 1]);
            var i = (n.xVal[e + 1] - n.xVal[e]) / n.xNumSteps[e],
                a = Math.ceil(Number(i.toFixed(3)) - 1),
                r = n.xVal[e] + n.xNumSteps[e] * a;
            n.xHighestCompleteStep[e] = r;
        } else n.xSteps[e] = n.xHighestCompleteStep[e] = n.xVal[e];
    }

    function b (e, t, n) {
        var i;
        this.xPct = [], this.xVal = [], this.xSteps = [
            n ||
            !1], this.xNumSteps = [!1], this.xHighestCompleteStep = [], this.snap = t;
        var a = [];
        for (i in e) e.hasOwnProperty(i) && a.push([e[i], i]);
        for (a.length && 'object' == typeof a[0][0] ? a.sort(
            (function (e, t) {return e[0][0] - t[0][0];})) : a.sort(
            (function (e, t) {return e[0] - t[0];})), i = 0; i <
             a.length; i++) v(a[i][1], a[i][0], this);
        for (this.xNumSteps = this.xSteps.slice(0), i = 0; i <
        this.xNumSteps.length; i++) y(i, this.xNumSteps[i], this);
    }

    b.prototype.getDistance = function (e) {
        var t, n = [];
        for (t = 0; t < this.xNumSteps.length - 1; t++) {
            var i = this.xNumSteps[t];
            if (i && e / i % 1 != 0) throw new Error(
                'noUiSlider (14.7.0): \'limit\', \'margin\' and \'padding\' of ' +
                this.xPct[t] + '% range must be divisible by step.');
            n[t] = f(this.xVal, e, t);
        }
        return n;
    }, b.prototype.getAbsoluteDistance = function (e, t, n) {
        var i, a = 0;
        if (e < this.xPct[this.xPct.length - 1]) for (; e > this.xPct[a +
        1];) a++; else e === this.xPct[this.xPct.length - 1] &&
        (a = this.xPct.length - 2);
        n || e !== this.xPct[a + 1] || a++;
        var r = 1, o = t[a], s = 0, l = 0, c = 0, u = 0;
        for (i = n
            ? (e - this.xPct[a]) / (this.xPct[a + 1] - this.xPct[a])
            : (this.xPct[a + 1] - e) / (this.xPct[a + 1] - this.xPct[a]); o >
             0;) s = this.xPct[a + 1 + u] - this.xPct[a + u], t[a + u] * r +
        100 - 100 * i > 100
            ? (l = s * i, r = (o - 100 * i) / t[a + u], i = 1)
            : (l = t[a + u] * s / 100 * r, r = 0), n
            ? (c -= l, this.xPct.length + u >= 1 && u--)
            : (c += l, this.xPct.length - u >= 1 && u++), o = t[a + u] * r;
        return e + c;
    }, b.prototype.toStepping = function (e) {
        return e = m(this.xVal, this.xPct, e);
    }, b.prototype.fromStepping = function (e) {
        return function (
            e, t, n) {
            if (n >= 100) return e.slice(-1)[0];
            var i = p(n, t), a = e[i - 1], r = e[i], o = t[i - 1];
            return function (e, t) {return t * (e[1] - e[0]) / 100 + e[0];}(
                [a, r], (n - o) * h(o, t[i]));
        }(this.xVal, this.xPct, e);
    }, b.prototype.getStep = function (e) {
        return e = g(this.xPct, this.xSteps, this.snap, e);
    }, b.prototype.getDefaultStep = function (e, t, n) {
        var i = p(e, this.xPct);
        return (100 === e || t && e === this.xPct[i - 1]) &&
        (i = Math.max(i - 1, 1)), (this.xVal[i] - this.xVal[i - 1]) / n;
    }, b.prototype.getNearbySteps = function (e) {
        var t = p(e, this.xPct);
        return {
            stepBefore: {
                startValue: this.xVal[t - 2],
                step: this.xNumSteps[t - 2],
                highestStep: this.xHighestCompleteStep[t - 2],
            },
            thisStep: {
                startValue: this.xVal[t - 1],
                step: this.xNumSteps[t - 1],
                highestStep: this.xHighestCompleteStep[t - 1],
            },
            stepAfter: {
                startValue: this.xVal[t],
                step: this.xNumSteps[t],
                highestStep: this.xHighestCompleteStep[t],
            },
        };
    }, b.prototype.countStepDecimals = function () {
        var e = this.xNumSteps.map(l);
        return Math.max.apply(null, e);
    }, b.prototype.convert = function (e) {
        return this.getStep(this.toStepping(e));
    };
    var x = {
        to: function (e) {return void 0 !== e && e.toFixed(2);},
        from: Number,
    }, _ = {
        target: 'target',
        base: 'base',
        origin: 'origin',
        handle: 'handle',
        handleLower: 'handle-lower',
        handleUpper: 'handle-upper',
        touchArea: 'touch-area',
        horizontal: 'horizontal',
        vertical: 'vertical',
        background: 'background',
        connect: 'connect',
        connects: 'connects',
        ltr: 'ltr',
        rtl: 'rtl',
        textDirectionLtr: 'txt-dir-ltr',
        textDirectionRtl: 'txt-dir-rtl',
        draggable: 'draggable',
        drag: 'state-drag',
        tap: 'state-tap',
        active: 'active',
        tooltip: 'tooltip',
        pips: 'pips',
        pipsHorizontal: 'pips-horizontal',
        pipsVertical: 'pips-vertical',
        marker: 'marker',
        markerHorizontal: 'marker-horizontal',
        markerVertical: 'marker-vertical',
        markerNormal: 'marker-normal',
        markerLarge: 'marker-large',
        markerSub: 'marker-sub',
        value: 'value',
        valueHorizontal: 'value-horizontal',
        valueVertical: 'value-vertical',
        valueNormal: 'value-normal',
        valueLarge: 'value-large',
        valueSub: 'value-sub',
    }, w = '.__tooltips', k = '.__aria';

    function M (e) {
        if (function (e) {
            return 'object' == typeof e && 'function' == typeof e.to &&
                'function' == typeof e.from;
        }(e)) return !0;
        throw new Error(
            'noUiSlider (14.7.0): \'format\' requires \'to\' and \'from\' methods.');
    }

    function L (e, t) {
        if (!a(t)) throw new Error(
            'noUiSlider (14.7.0): \'step\' is not numeric.');
        e.singleStep = t;
    }

    function S (e, t) {
        if (!a(t)) throw new Error(
            'noUiSlider (14.7.0): \'keyboardPageMultiplier\' is not numeric.');
        e.keyboardPageMultiplier = t;
    }

    function T (e, t) {
        if (!a(t)) throw new Error(
            'noUiSlider (14.7.0): \'keyboardDefaultStep\' is not numeric.');
        e.keyboardDefaultStep = t;
    }

    function A (e, t) {
        if ('object' != typeof t || Array.isArray(t)) throw new Error(
            'noUiSlider (14.7.0): \'range\' is not an object.');
        if (void 0 === t.min || void 0 === t.max) throw new Error(
            'noUiSlider (14.7.0): Missing \'min\' or \'max\' in \'range\'.');
        if (t.min === t.max) throw new Error(
            'noUiSlider (14.7.0): \'range\' \'min\' and \'max\' cannot be equal.');
        e.spectrum = new b(t, e.snap, e.singleStep);
    }

    function D (e, t) {
        if (t = s(t), !Array.isArray(t) || !t.length) throw new Error(
            'noUiSlider (14.7.0): \'start\' option is incorrect.');
        e.handles = t.length, e.start = t;
    }

    function C (e, t) {
        if (e.snap = t, 'boolean' != typeof t) throw new Error(
            'noUiSlider (14.7.0): \'snap\' option must be a boolean.');
    }

    function E (e, t) {
        if (e.animate = t, 'boolean' != typeof t) throw new Error(
            'noUiSlider (14.7.0): \'animate\' option must be a boolean.');
    }

    function O (e, t) {
        if (e.animationDuration = t, 'number' != typeof t) throw new Error(
            'noUiSlider (14.7.0): \'animationDuration\' option must be a number.');
    }

    function Y (e, t) {
        var n, i = [!1];
        if ('lower' === t ? t = [!0, !1] : 'upper' === t &&
            (t = [!1, !0]), !0 === t || !1 === t) {
            for (n = 1; n < e.handles; n++) i.push(t);
            i.push(!1);
        } else {
            if (!Array.isArray(t) || !t.length || t.length !== e.handles +
                1) throw new Error(
                'noUiSlider (14.7.0): \'connect\' option doesn\'t match handle count.');
            i = t;
        }
        e.connect = i;
    }

    function P (e, t) {
        switch (t) {
            case'horizontal':
                e.ort = 0;
                break;
            case'vertical':
                e.ort = 1;
                break;
            default:
                throw new Error(
                    'noUiSlider (14.7.0): \'orientation\' option is invalid.');
        }
    }

    function I (e, t) {
        if (!a(t)) throw new Error(
            'noUiSlider (14.7.0): \'margin\' option must be numeric.');
        0 !== t && (e.margin = e.spectrum.getDistance(t));
    }

    function j (e, t) {
        if (!a(t)) throw new Error(
            'noUiSlider (14.7.0): \'limit\' option must be numeric.');
        if (e.limit = e.spectrum.getDistance(t), !e.limit || e.handles <
        2) throw new Error(
            'noUiSlider (14.7.0): \'limit\' option is only supported on linear sliders with 2 or more handles.');
    }

    function N (e, t) {
        var n;
        if (!a(t) && !Array.isArray(t)) throw new Error(
            'noUiSlider (14.7.0): \'padding\' option must be numeric or array of exactly 2 numbers.');
        if (Array.isArray(t) && 2 !== t.length && !a(t[0]) &&
            !a(t[1])) throw new Error(
            'noUiSlider (14.7.0): \'padding\' option must be numeric or array of exactly 2 numbers.');
        if (0 !== t) {
            for (Array.isArray(t) || (t = [t, t]), e.padding = [
                e.spectrum.getDistance(t[0]),
                e.spectrum.getDistance(t[1])], n = 0; n <
                 e.spectrum.xNumSteps.length - 1; n++) if (e.padding[0][n] <
                0 || e.padding[1][n] < 0) throw new Error(
                'noUiSlider (14.7.0): \'padding\' option must be a positive number(s).');
            var i = t[0] + t[1], r = e.spectrum.xVal[0];
            if (i / (e.spectrum.xVal[e.spectrum.xVal.length - 1] - r) >
                1) throw new Error(
                'noUiSlider (14.7.0): \'padding\' option must not exceed 100% of the range.');
        }
    }

    function H (e, t) {
        switch (t) {
            case'ltr':
                e.dir = 0;
                break;
            case'rtl':
                e.dir = 1;
                break;
            default:
                throw new Error(
                    'noUiSlider (14.7.0): \'direction\' option was not recognized.');
        }
    }

    function F (e, t) {
        if ('string' != typeof t) throw new Error(
            'noUiSlider (14.7.0): \'behaviour\' must be a string containing options.');
        var n = t.indexOf('tap') >= 0, i = t.indexOf('drag') >= 0,
            a = t.indexOf('fixed') >= 0, r = t.indexOf('snap') >= 0,
            o = t.indexOf('hover') >= 0, s = t.indexOf('unconstrained') >= 0;
        if (a) {
            if (2 !== e.handles) throw new Error(
                'noUiSlider (14.7.0): \'fixed\' behaviour must be used with 2 handles');
            I(e, e.start[1] - e.start[0]);
        }
        if (s && (e.margin || e.limit)) throw new Error(
            'noUiSlider (14.7.0): \'unconstrained\' behaviour cannot be used with margin or limit');
        e.events = {
            tap: n || r,
            drag: i,
            fixed: a,
            snap: r,
            hover: o,
            unconstrained: s,
        };
    }

    function R (e, t) {
        if (!1 !== t) if (!0 === t) {
            e.tooltips = [];
            for (var n = 0; n < e.handles; n++) e.tooltips.push(!0);
        } else {
            if (e.tooltips = s(t), e.tooltips.length !==
            e.handles) throw new Error(
                'noUiSlider (14.7.0): must pass a formatter for all handles.');
            e.tooltips.forEach((function (e) {
                if ('boolean' != typeof e &&
                    ('object' != typeof e || 'function' !=
                        typeof e.to)) throw new Error(
                    'noUiSlider (14.7.0): \'tooltips\' must be passed a formatter or \'false\'.');
            }));
        }
    }

    function z (e, t) {e.ariaFormat = t, M(t);}

    function B (e, t) {e.format = t, M(t);}

    function W (e, t) {
        if (e.keyboardSupport = t, 'boolean' != typeof t) throw new Error(
            'noUiSlider (14.7.0): \'keyboardSupport\' option must be a boolean.');
    }

    function V (e, t) {e.documentElement = t;}

    function q (e, t) {
        if ('string' != typeof t && !1 !== t) throw new Error(
            'noUiSlider (14.7.0): \'cssPrefix\' must be a string or `false`.');
        e.cssPrefix = t;
    }

    function U (e, t) {
        if ('object' != typeof t) throw new Error(
            'noUiSlider (14.7.0): \'cssClasses\' must be an object.');
        if ('string' ==
            typeof e.cssPrefix) for (var n in e.cssClasses = {}, t) t.hasOwnProperty(
            n) && (e.cssClasses[n] = e.cssPrefix + t[n]); else e.cssClasses = t;
    }

    function X (e) {
        var t = {
            margin: 0,
            limit: 0,
            padding: 0,
            animate: !0,
            animationDuration: 300,
            ariaFormat: x,
            format: x,
        }, i = {
            step: { r: !1, t: L },
            keyboardPageMultiplier: { r: !1, t: S },
            keyboardDefaultStep: { r: !1, t: T },
            start: { r: !0, t: D },
            connect: { r: !0, t: Y },
            direction: { r: !0, t: H },
            snap: { r: !1, t: C },
            animate: { r: !1, t: E },
            animationDuration: { r: !1, t: O },
            range: { r: !0, t: A },
            orientation: { r: !1, t: P },
            margin: { r: !1, t: I },
            limit: { r: !1, t: j },
            padding: { r: !1, t: N },
            behaviour: { r: !0, t: F },
            ariaFormat: { r: !1, t: z },
            format: { r: !1, t: B },
            tooltips: { r: !1, t: R },
            keyboardSupport: { r: !0, t: W },
            documentElement: { r: !1, t: V },
            cssPrefix: { r: !0, t: q },
            cssClasses: { r: !0, t: U },
        }, a = {
            connect: !1,
            direction: 'ltr',
            behaviour: 'tap',
            orientation: 'horizontal',
            keyboardSupport: !0,
            cssPrefix: 'noUi-',
            cssClasses: _,
            keyboardPageMultiplier: 5,
            keyboardDefaultStep: 10,
        };
        e.format && !e.ariaFormat && (e.ariaFormat = e.format), Object.keys(i).
            forEach((function (r) {
                if (!n(e[r]) && void 0 === a[r]) {
                    if (i[r].r) throw new Error(
                        'noUiSlider (14.7.0): \'' + r + '\' is required.');
                    return !0;
                }
                i[r].t(t, n(e[r]) ? e[r] : a[r]);
            })), t.pips = e.pips;
        var r = document.createElement('div'),
            o = void 0 !== r.style.msTransform,
            s = void 0 !== r.style.transform;
        t.transformRule = s ? 'transform' : o
            ? 'msTransform'
            : 'webkitTransform';
        return t.style = [
            ['left', 'top'],
            ['right', 'bottom']][t.dir][t.ort], t;
    }

    function $ (e, a, l) {
        var h, f, p, m, g, v, y, b, x = window.navigator.pointerEnabled ? {
                start: 'pointerdown',
                move: 'pointermove',
                end: 'pointerup',
            } : window.navigator.msPointerEnabled ? {
                start: 'MSPointerDown',
                move: 'MSPointerMove',
                end: 'MSPointerUp',
            } : {
                start: 'mousedown touchstart',
                move: 'mousemove touchmove',
                end: 'mouseup touchend',
            }, _ = window.CSS && CSS.supports &&
            CSS.supports('touch-action', 'none') && function () {
                var e = !1;
                try {
                    var t = Object.defineProperty({}, 'passive',
                        { get: function () {e = !0;} });
                    window.addEventListener('test', null, t);
                } catch (e) {}
                return e;
            }(), M = e, L = a.spectrum, S = [], T = [], A = [], D = 0, C = {},
            E = e.ownerDocument, O = a.documentElement || E.documentElement,
            Y = E.body, P = 'rtl' === E.dir || 1 === a.ort ? 0 : 100;

        function I (e, t) {
            var n = E.createElement('div');
            return t && c(n, t), e.appendChild(n), n;
        }

        function j (e, t) {
            var n = I(e, a.cssClasses.origin), i = I(n, a.cssClasses.handle);
            return I(i, a.cssClasses.touchArea), i.setAttribute('data-handle',
                t), a.keyboardSupport &&
            (i.setAttribute('tabindex', '0'), i.addEventListener('keydown',
                (function (e) {
                    return function (e, t) {
                        if (F() || R(t)) return !1;
                        var n = ['Left', 'Right'], i = ['Down', 'Up'],
                            r = ['PageDown', 'PageUp'], o = ['Home', 'End'];
                        a.dir && !a.ort ? n.reverse() : a.ort && !a.dir &&
                            (i.reverse(), r.reverse());
                        var s, l = e.key.replace('Arrow', ''), c = l === r[0],
                            u = l === r[1], d = l === i[0] || l === n[0] || c,
                            h = l === i[1] || l === n[1] || u, f = l === o[0],
                            p = l === o[1];
                        if (!(d || h || f || p)) return !0;
                        if (e.preventDefault(), h || d) {
                            var m = a.keyboardPageMultiplier, g = d ? 0 : 1,
                                v = me(t)[g];
                            if (null === v) return !1;
                            !1 === v && (v = L.getDefaultStep(T[t], d,
                                a.keyboardDefaultStep)), (u || c) &&
                            (v *= m), v = Math.max(v, 1e-7), v *= d
                                ? -1
                                : 1, s = S[t] + v;
                        } else s = p ? a.spectrum.xVal[a.spectrum.xVal.length -
                        1] : a.spectrum.xVal[0];
                        return ue(t, L.toStepping(s), !0, !0), ae('slide',
                            t), ae('update', t), ae('change', t), ae('set',
                            t), !1;
                    }(e, t);
                }))), i.setAttribute('role', 'slider'), i.setAttribute(
                'aria-orientation', a.ort ? 'vertical' : 'horizontal'), 0 === t
                ? c(i, a.cssClasses.handleLower)
                : t === a.handles - 1 && c(i, a.cssClasses.handleUpper), n;
        }

        function N (e, t) {return !!t && I(e, a.cssClasses.connect);}

        function H (e, t) {
            return !!a.tooltips[t] && I(e.firstChild, a.cssClasses.tooltip);
        }

        function F () {return M.hasAttribute('disabled');}

        function R (e) {return f[e].hasAttribute('disabled');}

        function z () {
            g &&
            (ie('update' + w), g.forEach(
                (function (e) {e && t(e);})), g = null);
        }

        function B () {
            z(), g = f.map(H), ne('update' + w, (function (e, t, n) {
                if (g[t]) {
                    var i = e[t];
                    !0 !== a.tooltips[t] &&
                    (i = a.tooltips[t].to(n[t])), g[t].innerHTML = i;
                }
            }));
        }

        function W (e, t, n) {
            var i = E.createElement('div'), r = [];
            r[0] = a.cssClasses.valueNormal, r[1] = a.cssClasses.valueLarge, r[2] = a.cssClasses.valueSub;
            var o = [];
            o[0] = a.cssClasses.markerNormal, o[1] = a.cssClasses.markerLarge, o[2] = a.cssClasses.markerSub;
            var s = [a.cssClasses.valueHorizontal, a.cssClasses.valueVertical],
                l = [
                    a.cssClasses.markerHorizontal,
                    a.cssClasses.markerVertical];

            function u (e, t) {
                var n = t === a.cssClasses.value, i = n ? r : o;
                return t + ' ' + (n ? s : l)[a.ort] + ' ' + i[e];
            }

            return c(i, a.cssClasses.pips), c(i, 0 === a.ort
                ? a.cssClasses.pipsHorizontal
                : a.cssClasses.pipsVertical), Object.keys(e).
                forEach((function (r) {
                    !function (e, r, o) {
                        if (-1 !== (o = t ? t(r, o) : o)) {
                            var s = I(i, !1);
                            s.className = u(o,
                                a.cssClasses.marker), s.style[a.style] = e +
                                '%', o > 0 && ((s = I(i, !1)).className = u(o,
                                a.cssClasses.value), s.setAttribute(
                                'data-value', r), s.style[a.style] = e +
                                '%', s.innerHTML = n.to(r));
                        }
                    }(r, e[r][0], e[r][1]);
                })), i;
        }

        function V () {m && (t(m), m = null);}

        function q (e) {
            V();
            var t = e.mode, n = e.density || 1, i = e.filter || !1,
                a = function (e, t, n) {
                    if ('range' === e || 'steps' === e) return L.xVal;
                    if ('count' === e) {
                        if (t < 2) throw new Error(
                            'noUiSlider (14.7.0): \'values\' (>= 2) required for mode \'count\'.');
                        var i = t - 1, a = 100 / i;
                        for (t = []; i--;) t[i] = i * a;
                        t.push(100), e = 'positions';
                    }
                    return 'positions' === e ? t.map((function (e) {
                        return L.fromStepping(n ? L.getStep(e) : e);
                    })) : 'values' === e ? n ? t.map((function (e) {
                        return L.fromStepping(L.getStep(L.toStepping(e)));
                    })) : t : void 0;
                }(t, e.values || !1, e.stepped || !1), r = function (e, t, n) {
                    var i, a = {}, r = L.xVal[0], o = L.xVal[L.xVal.length - 1],
                        s = !1, l = !1, c = 0;
                    return i = n.slice().
                        sort((function (e, t) {return e - t;})), (n = i.filter(
                        (function (e) {return !this[e] && (this[e] = !0);}),
                        {}))[0] !== r && (n.unshift(r), s = !0), n[n.length - 1] !==
                    o && (n.push(o), l = !0), n.forEach((function (i, r) {
                        var o, u, d, h, f, p, m, g, v, y, b = i, x = n[r + 1],
                            _ = 'steps' === t;
                        if (_ && (o = L.xNumSteps[r]), o || (o = x - b), !1 !==
                        b) for (void 0 === x && (x = b), o = Math.max(o,
                            1e-7), u = b; u <= x; u = (u + o).toFixed(7) / 1) {
                            for (g = (f = (h = L.toStepping(u)) - c) / e, y = f /
                                (v = Math.round(g)), d = 1; d <=
                                 v; d += 1) a[(p = c + d * y).toFixed(
                                5)] = [L.fromStepping(p), 0];
                            m = n.indexOf(u) > -1 ? 1 : _ ? 2 : 0, !r && s && u !==
                            x && (m = 0), u === x && l ||
                            (a[h.toFixed(5)] = [u, m]), c = h;
                        }
                    })), a;
                }(n, t, a), o = e.format || { to: Math.round };
            return m = M.appendChild(W(r, i, o));
        }

        function U () {
            var e = h.getBoundingClientRect(),
                t = 'offset' + ['Width', 'Height'][a.ort];
            return 0 === a.ort ? e.width || h[t] : e.height || h[t];
        }

        function $ (e, t, n, i) {
            var r = function (r) {
                return !!(r = function (e, t, n) {
                        var i, a, r = 0 === e.type.indexOf('touch'),
                            o = 0 === e.type.indexOf('mouse'),
                            s = 0 === e.type.indexOf('pointer');
                        0 === e.type.indexOf('MSPointer') && (s = !0);
                        if ('mousedown' === e.type && !e.buttons &&
                            !e.touches) return !1;
                        if (r) {
                            var l = function (e) {
                                return e.target === n || n.contains(e.target) ||
                                    e.target.shadowRoot &&
                                    e.target.shadowRoot.contains(n);
                            };
                            if ('touchstart' === e.type) {
                                var c = Array.prototype.filter.call(e.touches, l);
                                if (c.length > 1) return !1;
                                i = c[0].pageX, a = c[0].pageY;
                            } else {
                                var u = Array.prototype.find.call(e.changedTouches,
                                    l);
                                if (!u) return !1;
                                i = u.pageX, a = u.pageY;
                            }
                        }
                        t = t || d(E), (o || s) &&
                        (i = e.clientX + t.x, a = e.clientY + t.y);
                        return e.pageOffset = t, e.points = [i, a], e.cursor = o ||
                            s, e;
                    }(r, i.pageOffset, i.target || t)) &&
                    (!(F() && !i.doNotReject) &&
                        (o = M, s = a.cssClasses.tap, !((o.classList
                            ? o.classList.contains(s)
                            : new RegExp('\\b' + s + '\\b').test(
                                o.className)) && !i.doNotReject) &&
                        (!(e === x.start && void 0 !== r.buttons && r.buttons >
                            1) && ((!i.hover || !r.buttons) && (_ ||
                        r.preventDefault(), r.calcPoint = r.points[a.ort], void n(
                            r, i))))));
                var o, s;
            }, o = [];
            return e.split(' ').
                forEach((function (e) {
                    t.addEventListener(e, r, !!_ && { passive: !0 }), o.push(
                        [e, r]);
                })), o;
        }

        function G (e) {
            var t, n, i, r, s, l, c = 100 * (e -
                (t = h, n = a.ort, i = t.getBoundingClientRect(), r = t.ownerDocument, s = r.documentElement, l = d(
                    r), /webkit.*Chrome.*Mobile/i.test(navigator.userAgent) &&
                (l.x = 0), n ? i.top + l.y - s.clientTop : i.left + l.x -
                    s.clientLeft)) / U();
            return c = o(c), a.dir ? 100 - c : c;
        }

        function Z (e, t) {
            'mouseout' === e.type && 'HTML' === e.target.nodeName && null ===
            e.relatedTarget && J(e, t);
        }

        function K (e, t) {
            if (-1 === navigator.appVersion.indexOf('MSIE 9') && 0 ===
                e.buttons && 0 !== t.buttonsProperty) return J(e, t);
            var n = (a.dir ? -1 : 1) * (e.calcPoint - t.startCalcPoint);
            se(n > 0, 100 * n / t.baseSize, t.locations, t.handleNumbers);
        }

        function J (e, t) {
            t.handle &&
            (u(t.handle, a.cssClasses.active), D -= 1), t.listeners.forEach(
                (function (e) {O.removeEventListener(e[0], e[1]);})), 0 === D &&
            (u(M, a.cssClasses.drag), ce(), e.cursor &&
            (Y.style.cursor = '', Y.removeEventListener('selectstart',
                i))), t.handleNumbers.forEach(
                (function (e) {ae('change', e), ae('set', e), ae('end', e);}));
        }

        function Q (e, t) {
            if (t.handleNumbers.some(R)) return !1;
            var n;
            1 === t.handleNumbers.length &&
            (n = f[t.handleNumbers[0]].children[0], D += 1, c(n,
                a.cssClasses.active));
            e.stopPropagation();
            var r = [], o = $(x.move, O, K, {
                target: e.target,
                handle: n,
                listeners: r,
                startCalcPoint: e.calcPoint,
                baseSize: U(),
                pageOffset: e.pageOffset,
                handleNumbers: t.handleNumbers,
                buttonsProperty: e.buttons,
                locations: T.slice(),
            }), s = $(x.end, O, J, {
                target: e.target,
                handle: n,
                listeners: r,
                doNotReject: !0,
                handleNumbers: t.handleNumbers,
            }), l = $('mouseout', O, Z, {
                target: e.target,
                handle: n,
                listeners: r,
                doNotReject: !0,
                handleNumbers: t.handleNumbers,
            });
            r.push.apply(r, o.concat(s, l)), e.cursor &&
            (Y.style.cursor = getComputedStyle(e.target).cursor, f.length > 1 &&
            c(M, a.cssClasses.drag), Y.addEventListener('selectstart', i,
                !1)), t.handleNumbers.forEach((function (e) {ae('start', e);}));
        }

        function ee (e) {
            e.stopPropagation();
            var t = G(e.calcPoint), n = function (e) {
                var t = 100, n = !1;
                return f.forEach((function (i, a) {
                    if (!R(a)) {
                        var r = T[a], o = Math.abs(r - e);
                        (o < t || o <= t && e > r || 100 === o && 100 === t) &&
                        (n = a, t = o);
                    }
                })), n;
            }(t);
            if (!1 === n) return !1;
            a.events.snap || r(M, a.cssClasses.tap, a.animationDuration), ue(n,
                t, !0, !0), ce(), ae('slide', n, !0), ae('update', n, !0), ae(
                'change', n, !0), ae('set', n, !0), a.events.snap &&
            Q(e, { handleNumbers: [n] });
        }

        function te (e) {
            var t = G(e.calcPoint), n = L.getStep(t), i = L.fromStepping(n);
            Object.keys(C).
                forEach((function (e) {
                    'hover' === e.split('.')[0] &&
                    C[e].forEach((function (e) {e.call(v, i);}));
                }));
        }

        function ne (e, t) {
            C[e] = C[e] || [], C[e].push(t), 'update' === e.split('.')[0] &&
            f.forEach((function (e, t) {ae('update', t);}));
        }

        function ie (e) {
            var t = e && e.split('.')[0], n = t ? e.substring(t.length) : e;
            Object.keys(C).
                forEach((function (e) {
                    var i = e.split('.')[0], a = e.substring(i.length);
                    t && t !== i || n && n !== a ||
                    function (e) {return e === k || e === w;}(a) && n !== a ||
                    delete C[e];
                }));
        }

        function ae (e, t, n) {
            Object.keys(C).
                forEach((function (i) {
                    var r = i.split('.')[0];
                    e === r && C[i].forEach((function (e) {
                        e.call(v, S.map(a.format.to), t, S.slice(), n || !1,
                            T.slice(), v);
                    }));
                }));
        }

        function re (e, t, n, i, r, s) {
            var l;
            return f.length > 1 && !a.events.unconstrained && (i && t > 0 &&
            (l = L.getAbsoluteDistance(e[t - 1], a.margin, 0), n = Math.max(n,
                l)), r && t < f.length - 1 &&
            (l = L.getAbsoluteDistance(e[t + 1], a.margin, 1), n = Math.min(n,
                l))), f.length > 1 && a.limit && (i && t > 0 &&
            (l = L.getAbsoluteDistance(e[t - 1], a.limit, 0), n = Math.min(n,
                l)), r && t < f.length - 1 &&
            (l = L.getAbsoluteDistance(e[t + 1], a.limit, 1), n = Math.max(n,
                l))), a.padding && (0 === t &&
            (l = L.getAbsoluteDistance(0, a.padding[0], 0), n = Math.max(n,
                l)), t === f.length - 1 &&
            (l = L.getAbsoluteDistance(100, a.padding[1], 1), n = Math.min(n,
                l))), !((n = o(n = L.getStep(n))) === e[t] && !s) && n;
        }

        function oe (e, t) {
            var n = a.ort;
            return (n ? t : e) + ', ' + (n ? e : t);
        }

        function se (e, t, n, i) {
            var a = n.slice(), r = [!e, e], o = [e, !e];
            i = i.slice(), e && i.reverse(), i.length > 1 ? i.forEach(
                (function (e, n) {
                    var i = re(a, e, a[e] + t, r[n], o[n], !1);
                    !1 === i ? t = 0 : (t = i - a[e], a[e] = i);
                })) : r = o = [!0];
            var s = !1;
            i.forEach(
                (function (e, i) {s = ue(e, n[e] + t, r[i], o[i]) || s;})), s &&
            i.forEach((function (e) {ae('update', e), ae('slide', e);}));
        }

        function le (e, t) {return a.dir ? 100 - e - t : e;}

        function ce () {
            A.forEach((function (e) {
                var t = T[e] > 50 ? -1 : 1, n = 3 + (f.length + t * e);
                f[e].style.zIndex = n;
            }));
        }

        function ue (e, t, n, i, r) {
            return r || (t = re(T, e, t, n, i, !1)), !1 !== t &&
            (function (e, t) {
                T[e] = t, S[e] = L.fromStepping(t);
                var n = 'translate(' + oe(10 * (le(t, 0) - P) + '%', '0') + ')';
                f[e].style[a.transformRule] = n, de(e), de(e + 1);
            }(e, t), !0);
        }

        function de (e) {
            if (p[e]) {
                var t = 0, n = 100;
                0 !== e && (t = T[e - 1]), e !== p.length - 1 && (n = T[e]);
                var i = n - t, r = 'translate(' + oe(le(t, i) + '%', '0') + ')',
                    o = 'scale(' + oe(i / 100, '1') + ')';
                p[e].style[a.transformRule] = r + ' ' + o;
            }
        }

        function he (e, t) {
            return null === e || !1 === e || void 0 === e
                ? T[t]
                : ('number' == typeof e && (e = String(e)), e = a.format.from(
                    e), !1 === (e = L.toStepping(e)) || isNaN(e) ? T[t] : e);
        }

        function fe (e, t, n) {
            var i = s(e), o = void 0 === T[0];
            t = void 0 === t || !!t, a.animate && !o &&
            r(M, a.cssClasses.tap, a.animationDuration), A.forEach(
                (function (e) {ue(e, he(i[e], e), !0, !1, n);}));
            for (var l = 1 === A.length ? 0 : 1; l < A.length; ++l) A.forEach(
                (function (e) {ue(e, T[e], !0, !0, n);}));
            ce(), A.forEach((function (e) {
                ae('update', e), null !== i[e] && t && ae('set', e);
            }));
        }

        function pe () {
            var e = S.map(a.format.to);
            return 1 === e.length ? e[0] : e;
        }

        function me (e) {
            var t = T[e], n = L.getNearbySteps(t), i = S[e],
                r = n.thisStep.step, o = null;
            if (a.snap) return [
                i - n.stepBefore.startValue || null,
                n.stepAfter.startValue - i || null];
            !1 !== r && i + r > n.stepAfter.startValue &&
            (r = n.stepAfter.startValue - i), o = i > n.thisStep.startValue
                ? n.thisStep.step
                : !1 !== n.stepBefore.step && i -
                n.stepBefore.highestStep, 100 === t ? r = null : 0 === t &&
                (o = null);
            var s = L.countStepDecimals();
            return null !== r && !1 !== r &&
            (r = Number(r.toFixed(s))), null !== o && !1 !== o &&
            (o = Number(o.toFixed(s))), [o, r];
        }

        return c(y = M, a.cssClasses.target), 0 === a.dir ? c(y,
            a.cssClasses.ltr) : c(y, a.cssClasses.rtl), 0 === a.ort ? c(y,
            a.cssClasses.horizontal) : c(y, a.cssClasses.vertical), c(y,
            'rtl' === getComputedStyle(y).direction
                ? a.cssClasses.textDirectionRtl
                : a.cssClasses.textDirectionLtr), h = I(y,
            a.cssClasses.base), function (e, t) {
            var n = I(t, a.cssClasses.connects);
            f = [], (p = []).push(N(n, e[0]));
            for (var i = 0; i < a.handles; i++) f.push(
                j(t, i)), A[i] = i, p.push(N(n, e[i + 1]));
        }(a.connect, h), (b = a.events).fixed || f.forEach((function (e, t) {
            $(x.start, e.children[0], Q, { handleNumbers: [t] });
        })), b.tap && $(x.start, h, ee, {}), b.hover &&
        $(x.move, h, te, { hover: !0 }), b.drag && p.forEach((function (e, t) {
            if (!1 !== e && 0 !== t && t !== p.length - 1) {
                var n = f[t - 1], i = f[t], r = [e];
                c(e, a.cssClasses.draggable), b.fixed &&
                (r.push(n.children[0]), r.push(i.children[0])), r.forEach(
                    (function (e) {
                        $(x.start, e, Q,
                            { handles: [n, i], handleNumbers: [t - 1, t] });
                    }));
            }
        })), fe(a.start), a.pips && q(a.pips), a.tooltips && B(), ie(
            'update' + k), ne('update' + k, (function (e, t, n, i, r) {
            A.forEach((function (e) {
                var t = f[e], i = re(T, e, 0, !0, !0, !0),
                    o = re(T, e, 100, !0, !0, !0), s = r[e],
                    l = a.ariaFormat.to(n[e]);
                i = L.fromStepping(i).toFixed(1), o = L.fromStepping(o).
                    toFixed(1), s = L.fromStepping(s).
                    toFixed(1), t.children[0].setAttribute('aria-valuemin',
                    i), t.children[0].setAttribute('aria-valuemax',
                    o), t.children[0].setAttribute('aria-valuenow',
                    s), t.children[0].setAttribute('aria-valuetext', l);
            }));
        })), v = {
            destroy: function () {
                for (var e in ie(k), ie(
                    w), a.cssClasses) a.cssClasses.hasOwnProperty(e) &&
                u(M, a.cssClasses[e]);
                for (; M.firstChild;) M.removeChild(M.firstChild);
                delete M.noUiSlider;
            },
            steps: function () {return A.map(me);},
            on: ne,
            off: ie,
            get: pe,
            set: fe,
            setHandle: function (e, t, n, i) {
                if (!((e = Number(e)) >= 0 && e < A.length)) throw new Error(
                    'noUiSlider (14.7.0): invalid handle number, got: ' + e);
                ue(e, he(t, e), !0, !0, i), ae('update', e), n && ae('set', e);
            },
            reset: function (e) {fe(a.start, e);},
            __moveHandles: function (e, t, n) {se(e, t, T, n);},
            options: l,
            updateOptions: function (e, t) {
                var i = pe(), r = [
                    'margin',
                    'limit',
                    'padding',
                    'range',
                    'animate',
                    'snap',
                    'step',
                    'format',
                    'pips',
                    'tooltips'];
                r.forEach((function (t) {void 0 !== e[t] && (l[t] = e[t]);}));
                var o = X(l);
                r.forEach((function (t) {
                    void 0 !== e[t] && (a[t] = o[t]);
                })), L = o.spectrum, a.margin = o.margin, a.limit = o.limit, a.padding = o.padding, a.pips
                    ? q(a.pips)
                    : V(), a.tooltips ? B() : z(), T = [], fe(
                    n(e.start) ? e.start : i, t);
            },
            target: M,
            removePips: V,
            removeTooltips: z,
            getTooltips: function () {return g;},
            getOrigins: function () {return f;},
            pips: q,
        };
    }

    return {
        __spectrum: b,
        version: e,
        cssClasses: _,
        create: function (e, t) {
            if (!e || !e.nodeName) throw new Error(
                'noUiSlider (14.7.0): create requires a single element, got: ' +
                e);
            if (e.noUiSlider) throw new Error(
                'noUiSlider (14.7.0): Slider was already initialized.');
            var n = $(e, X(t), t);
            return e.noUiSlider = n, n;
        },
    };
})),
    /*!
	autosize 4.0.4
	license: MIT
	http://www.jacklmoore.com/autosize
*/
    function (e, t) {
        if ('function' == typeof define && define.amd) define(
            ['module', 'exports'], t); else if ('undefined' !=
            typeof exports) t(module, exports); else {
            var n = { exports: {} };
            t(n, n.exports), e.autosize = n.exports;
        }
    }(this, (function (e, t) {
        'use strict';
        var n, i, a = 'function' == typeof Map
            ? new Map
            : (n = [], i = [], {
                has: function (e) {return n.indexOf(e) > -1;},
                get: function (e) {return i[n.indexOf(e)];},
                set: function (e, t) {
                    -1 === n.indexOf(e) && (n.push(e), i.push(t));
                },
                delete: function (e) {
                    var t = n.indexOf(e);
                    t > -1 && (n.splice(t, 1), i.splice(t, 1));
                },
            }), r = function (e) {return new Event(e, { bubbles: !0 });};
        try {
            new Event('test');
        } catch (e) {
            r = function (e) {
                var t = document.createEvent('Event');
                return t.initEvent(e, !0, !1), t;
            };
        }

        function o (e) {
            if (e && e.nodeName && 'TEXTAREA' === e.nodeName && !a.has(e)) {
                var t, n = null, i = null, o = null,
                    s = function () {e.clientWidth !== i && d();},
                    l = function (t) {
                        window.removeEventListener('resize', s,
                            !1), e.removeEventListener('input', d,
                            !1), e.removeEventListener('keyup', d,
                            !1), e.removeEventListener('autosize:destroy', l,
                            !1), e.removeEventListener('autosize:update', d,
                            !1), Object.keys(t).
                            forEach(
                                (function (n) {e.style[n] = t[n];})), a.delete(
                            e);
                    }.bind(e, {
                        height: e.style.height,
                        resize: e.style.resize,
                        overflowY: e.style.overflowY,
                        overflowX: e.style.overflowX,
                        wordWrap: e.style.wordWrap,
                    });
                e.addEventListener('autosize:destroy', l,
                    !1), 'onpropertychange' in e && 'oninput' in e &&
                e.addEventListener('keyup', d, !1), window.addEventListener(
                    'resize', s, !1), e.addEventListener('input', d,
                    !1), e.addEventListener('autosize:update', d,
                    !1), e.style.overflowX = 'hidden', e.style.wordWrap = 'break-word', a.set(
                    e, { destroy: l, update: d }), 'vertical' ===
                (t = window.getComputedStyle(e, null)).resize
                    ? e.style.resize = 'none'
                    : 'both' === t.resize &&
                    (e.style.resize = 'horizontal'), n = 'content-box' ===
                t.boxSizing ? -(parseFloat(t.paddingTop) +
                    parseFloat(t.paddingBottom)) : parseFloat(
                    t.borderTopWidth) + parseFloat(t.borderBottomWidth), isNaN(
                    n) && (n = 0), d();
            }

            function c (t) {
                var n = e.style.width;
                e.style.width = '0px', e.offsetWidth, e.style.width = n, e.style.overflowY = t;
            }

            function u () {
                if (0 !== e.scrollHeight) {
                    var t = function (e) {
                        for (var t = []; e && e.parentNode &&
                        e.parentNode instanceof
                        Element;) e.parentNode.scrollTop && t.push({
                            node: e.parentNode,
                            scrollTop: e.parentNode.scrollTop,
                        }), e = e.parentNode;
                        return t;
                    }(e), a = document.documentElement &&
                        document.documentElement.scrollTop;
                    e.style.height = '', e.style.height = e.scrollHeight + n +
                        'px', i = e.clientWidth, t.forEach(
                        (function (e) {e.node.scrollTop = e.scrollTop;})), a &&
                    (document.documentElement.scrollTop = a);
                }
            }

            function d () {
                u();
                var t = Math.round(parseFloat(e.style.height)),
                    n = window.getComputedStyle(e, null),
                    i = 'content-box' === n.boxSizing ? Math.round(
                        parseFloat(n.height)) : e.offsetHeight;
                if (i < t ? 'hidden' === n.overflowY &&
                    (c('scroll'), u(), i = 'content-box' === n.boxSizing
                        ? Math.round(
                            parseFloat(window.getComputedStyle(e, null).height))
                        : e.offsetHeight) : 'hidden' !== n.overflowY &&
                    (c('hidden'), u(), i = 'content-box' === n.boxSizing
                        ? Math.round(
                            parseFloat(window.getComputedStyle(e, null).height))
                        : e.offsetHeight), o !== i) {
                    o = i;
                    var a = r('autosize:resized');
                    try {e.dispatchEvent(a);} catch (e) {}
                }
            }
        }

        function s (e) {
            var t = a.get(e);
            t && t.destroy();
        }

        function l (e) {
            var t = a.get(e);
            t && t.update();
        }

        var c = null;
        'undefined' == typeof window || 'function' !=
        typeof window.getComputedStyle
            ? ((c = function (e) {return e;}).destroy = function (e) {return e;}, c.update = function (e) {return e;})
            : ((c = function (e, t) {
                return e && Array.prototype.forEach.call(e.length ? e : [e],
                    (function (e) {return o(e);})), e;
            }).destroy = function (e) {
                return e && Array.prototype.forEach.call(e.length ? e : [e], s), e;
            }, c.update = function (e) {
                return e && Array.prototype.forEach.call(e.length ? e : [e], l), e;
            }), t.default = c, e.exports = t.default;
    })), function (e, t) {
    'object' == typeof exports && 'object' == typeof module
        ? module.exports = t()
        : 'function' == typeof define && define.amd
        ? define([], t)
        : 'object' == typeof exports
            ? exports.ClipboardJS = t()
            : e.ClipboardJS = t();
}(this, (function () {
    return t = {
        134: function (e, t, n) {
            'use strict';
            n.d(t, { default: function () {return p;} });
            t = n(279);
            var i = n.n(t), a = (t = n(370), n.n(t)), r = (t = n(817), n.n(t));

            function o (e) {
                return (o = 'function' == typeof Symbol && 'symbol' ==
                typeof Symbol.iterator
                    ? function (e) {return typeof e;}
                    : function (e) {
                        return e && 'function' == typeof Symbol &&
                        e.constructor === Symbol && e !== Symbol.prototype
                            ? 'symbol'
                            : typeof e;
                    })(e);
            }

            function s (e, t) {
                for (var n = 0; n < t.length; n++) {
                    var i = t[n];
                    i.enumerable = i.enumerable ||
                        !1, i.configurable = !0, 'value' in i &&
                    (i.writable = !0), Object.defineProperty(e, i.key, i);
                }
            }

            var l = function () {
                function e (t) {
                    !function (t) {
                        if (!(t instanceof e)) throw new TypeError(
                            'Cannot call a class as a function');
                    }(this), this.resolveOptions(t), this.initSelection();
                }

                var t, n;
                return t = e, (n = [
                    {
                        key: 'resolveOptions',
                        value: function () {
                            var e = 0 < arguments.length && void 0 !==
                            arguments[0] ? arguments[0] : {};
                            this.action = e.action, this.container = e.container, this.emitter = e.emitter, this.target = e.target, this.text = e.text, this.trigger = e.trigger, this.selectedText = '';
                        },
                    },
                    {
                        key: 'initSelection',
                        value: function () {
                            this.text
                                ? this.selectFake()
                                : this.target && this.selectTarget();
                        },
                    },
                    {
                        key: 'createFakeElement',
                        value: function () {
                            var e = 'rtl' ===
                                document.documentElement.getAttribute('dir');
                            return this.fakeElem = document.createElement(
                                'textarea'), this.fakeElem.style.fontSize = '12pt', this.fakeElem.style.border = '0', this.fakeElem.style.padding = '0', this.fakeElem.style.margin = '0', this.fakeElem.style.position = 'absolute', this.fakeElem.style[e
                                ? 'right'
                                : 'left'] = '-9999px', e = window.pageYOffset ||
                                document.documentElement.scrollTop, this.fakeElem.style.top = ''.concat(
                                e, 'px'), this.fakeElem.setAttribute('readonly',
                                ''), this.fakeElem.value = this.text, this.fakeElem;
                        },
                    },
                    {
                        key: 'selectFake',
                        value: function () {
                            var e = this, t = this.createFakeElement();
                            this.fakeHandlerCallback = function () {return e.removeFake();}, this.fakeHandler = this.container.addEventListener(
                                'click', this.fakeHandlerCallback) ||
                                !0, this.container.appendChild(
                                t), this.selectedText = r()(
                                t), this.copyText(), this.removeFake();
                        },
                    },
                    {
                        key: 'removeFake',
                        value: function () {
                            this.fakeHandler &&
                            (this.container.removeEventListener('click',
                                this.fakeHandlerCallback), this.fakeHandler = null, this.fakeHandlerCallback = null), this.fakeElem &&
                            (this.container.removeChild(
                                this.fakeElem), this.fakeElem = null);
                        },
                    },
                    {
                        key: 'selectTarget',
                        value: function () {
                            this.selectedText = r()(
                                this.target), this.copyText();
                        },
                    },
                    {
                        key: 'copyText', value: function () {
                            var e;
                            try {
                                e = document.execCommand(this.action);
                            } catch (t) {e = !1;}
                            this.handleResult(e);
                        },
                    },
                    {
                        key: 'handleResult',
                        value: function (e) {
                            this.emitter.emit(e ? 'success' : 'error', {
                                action: this.action,
                                text: this.selectedText,
                                trigger: this.trigger,
                                clearSelection: this.clearSelection.bind(this),
                            });
                        },
                    },
                    {
                        key: 'clearSelection',
                        value: function () {
                            this.trigger &&
                            this.trigger.focus(), document.activeElement.blur(), window.getSelection().
                                removeAllRanges();
                        },
                    },
                    { key: 'destroy', value: function () {this.removeFake();} },
                    {
                        key: 'action',
                        set: function () {
                            var e = 0 < arguments.length && void 0 !==
                            arguments[0] ? arguments[0] : 'copy';
                            if (this._action = e, 'copy' !== this._action &&
                            'cut' !== this._action) throw new Error(
                                'Invalid "action" value, use either "copy" or "cut"');
                        },
                        get: function () {return this._action;},
                    },
                    {
                        key: 'target',
                        set: function (e) {
                            if (void 0 !== e) {
                                if (!e || 'object' !== o(e) || 1 !==
                                    e.nodeType) throw new Error(
                                    'Invalid "target" value, use a valid Element');
                                if ('copy' === this.action &&
                                    e.hasAttribute('disabled')) throw new Error(
                                    'Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
                                if ('cut' === this.action &&
                                    (e.hasAttribute('readonly') ||
                                        e.hasAttribute(
                                            'disabled'))) throw new Error(
                                    'Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');
                                this._target = e;
                            }
                        },
                        get: function () {return this._target;},
                    }]) && s(t.prototype, n), e;
            }();

            function c (e) {
                return (c = 'function' == typeof Symbol && 'symbol' ==
                typeof Symbol.iterator
                    ? function (e) {return typeof e;}
                    : function (e) {
                        return e && 'function' == typeof Symbol &&
                        e.constructor === Symbol && e !== Symbol.prototype
                            ? 'symbol'
                            : typeof e;
                    })(e);
            }

            function u (e, t) {
                for (var n = 0; n < t.length; n++) {
                    var i = t[n];
                    i.enumerable = i.enumerable ||
                        !1, i.configurable = !0, 'value' in i &&
                    (i.writable = !0), Object.defineProperty(e, i.key, i);
                }
            }

            function d (e, t) {
                return (d = Object.setPrototypeOf ||
                    function (e, t) {return e.__proto__ = t, e;})(e, t);
            }

            function h (e) {
                return (h = Object.setPrototypeOf
                    ? Object.getPrototypeOf
                    : function (e) {
                        return e.__proto__ || Object.getPrototypeOf(e);
                    })(e);
            }

            function f (e, t) {
                if (e = 'data-clipboard-'.concat(e), t.hasAttribute(
                    e)) return t.getAttribute(e);
            }

            var p = function () {
                !function (e, t) {
                    if ('function' != typeof t && null !==
                        t) throw new TypeError(
                        'Super expression must either be null or a function');
                    e.prototype = Object.create(t && t.prototype, {
                        constructor: {
                            value: e,
                            writable: !0,
                            configurable: !0,
                        },
                    }), t && d(e, t);
                }(o, i());
                var e, t, n, r = function (e) {
                    var t = 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 (e) {return !1;}
                    }();
                    return function () {
                        var n, i = h(e);
                        return n = t ? (n = h(
                            this).constructor, Reflect.construct(i, arguments,
                            n)) : i.apply(this,
                            arguments), i = this, !(n = n) || 'object' !==
                        c(n) && 'function' != typeof n
                            ? function (e) {
                                if (void 0 !== e) return e;
                                throw new ReferenceError(
                                    'this hasn\'t been initialised - super() hasn\'t been called');
                            }(i)
                            : n;
                    };
                }(o);

                function o (e, t) {
                    var n;
                    return function (e) {
                        if (!(e instanceof o)) throw new TypeError(
                            'Cannot call a class as a function');
                    }(this), (n = r.call(this)).resolveOptions(
                        t), n.listenClick(e), n;
                }

                return e = o, n = [
                    {
                        key: 'isSupported',
                        value: function () {
                            var e = 'string' ==
                            typeof (e = 0 < arguments.length && void 0 !==
                            arguments[0] ? arguments[0] : ['copy', 'cut'])
                                ? [e]
                                : e, t = !!document.queryCommandSupported;
                            return e.forEach((function (e) {
                                t = t && !!document.queryCommandSupported(e);
                            })), t;
                        },
                    }], (t = [
                    {
                        key: 'resolveOptions',
                        value: function () {
                            var e = 0 < arguments.length && void 0 !==
                            arguments[0] ? arguments[0] : {};
                            this.action = 'function' == typeof e.action
                                ? e.action
                                : this.defaultAction, this.target = 'function' ==
                            typeof e.target
                                ? e.target
                                : this.defaultTarget, this.text = 'function' ==
                            typeof e.text
                                ? e.text
                                : this.defaultText, this.container = 'object' ===
                            c(e.container) ? e.container : document.body;
                        },
                    },
                    {
                        key: 'listenClick', value: function (e) {
                            var t = this;
                            this.listener = a()(e, 'click',
                                (function (e) {return t.onClick(e);}));
                        },
                    },
                    {
                        key: 'onClick',
                        value: function (e) {
                            e = e.delegateTarget ||
                                e.currentTarget, this.clipboardAction &&
                            (this.clipboardAction = null), this.clipboardAction = new l(
                                {
                                    action: this.action(e),
                                    target: this.target(e),
                                    text: this.text(e),
                                    container: this.container,
                                    trigger: e,
                                    emitter: this,
                                });
                        },
                    },
                    {
                        key: 'defaultAction',
                        value: function (e) {return f('action', e);},
                    },
                    {
                        key: 'defaultTarget',
                        value: function (e) {
                            if (e = f('target',
                                e)) return document.querySelector(e);
                        },
                    },
                    {
                        key: 'defaultText',
                        value: function (e) {return f('text', e);},
                    },
                    {
                        key: 'destroy',
                        value: function () {
                            this.listener.destroy(), this.clipboardAction &&
                            (this.clipboardAction.destroy(), this.clipboardAction = null);
                        },
                    }]) && u(e.prototype, t), n && u(e, n), o;
            }();
        },
        828: function (e) {
            var t;
            'undefined' == typeof Element || Element.prototype.matches ||
            ((t = Element.prototype).matches = t.matchesSelector ||
                t.mozMatchesSelector || t.msMatchesSelector ||
                t.oMatchesSelector ||
                t.webkitMatchesSelector), e.exports = function (
                e, t) {
                for (; e && 9 !== e.nodeType;) {
                    if ('function' == typeof e.matches &&
                        e.matches(t)) return e;
                    e = e.parentNode;
                }
            };
        },
        438: function (e, t, n) {
            var i = n(828);

            function a (e, t, n, a, r) {
                var o = function (
                    e, t, n, a) {
                    return function (n) {
                        n.delegateTarget = i(n.target, t), n.delegateTarget &&
                        a.call(e, n);
                    };
                }.apply(this, arguments);
                return e.addEventListener(n, o, r), {
                    destroy: function () {
                        e.removeEventListener(n, o, r);
                    },
                };
            }

            e.exports = function (e, t, n, i, r) {
                return 'function' == typeof e.addEventListener ? a.apply(null,
                    arguments) : 'function' == typeof n
                    ? a.bind(null, document).apply(null, arguments)
                    : ('string' == typeof e && (e = document.querySelectorAll(
                        e)), Array.prototype.map.call(e,
                        (function (e) {return a(e, t, n, i, r);})));
            };
        },
        879: function (e, t) {
            t.node = function (e) {
                return void 0 !== e && e instanceof HTMLElement && 1 ===
                    e.nodeType;
            }, t.nodeList = function (e) {
                var n = Object.prototype.toString.call(e);
                return void 0 !== e &&
                    ('[object NodeList]' === n || '[object HTMLCollection]' ===
                        n) && 'length' in e && (0 === e.length || t.node(e[0]));
            }, t.string = function (e) {
                return 'string' == typeof e || e instanceof String;
            }, t.fn = function (e) {
                return '[object Function]' ===
                    Object.prototype.toString.call(e);
            };
        },
        370: function (e, t, n) {
            var i = n(879), a = n(438);
            e.exports = function (e, t, n) {
                if (!e && !t && !n) throw new Error(
                    'Missing required arguments');
                if (!i.string(t)) throw new TypeError(
                    'Second argument must be a String');
                if (!i.fn(n)) throw new TypeError(
                    'Third argument must be a Function');
                if (i.node(e)) return c = t, u = n, (l = e).addEventListener(c,
                    u), { destroy: function () {l.removeEventListener(c, u);} };
                if (i.nodeList(
                    e)) return r = e, o = t, s = n, Array.prototype.forEach.call(
                    r, (function (e) {
                        e.addEventListener(o, s);
                    })), {
                    destroy: function () {
                        Array.prototype.forEach.call(r,
                            (function (e) {e.removeEventListener(o, s);}));
                    },
                };
                if (i.string(e)) return e = e, t = t, n = n, a(document.body, e,
                    t, n);
                throw new TypeError(
                    'First argument must be a String, HTMLElement, HTMLCollection, or NodeList');
                var r, o, s, l, c, u;
            };
        },
        817: function (e) {
            e.exports = function (e) {
                var t, n = 'SELECT' === e.nodeName
                    ? (e.focus(), e.value)
                    : 'INPUT' === e.nodeName || 'TEXTAREA' === e.nodeName
                        ? ((t = e.hasAttribute('readonly')) ||
                        e.setAttribute('readonly',
                            ''), e.select(), e.setSelectionRange(0,
                            e.value.length), t ||
                        e.removeAttribute('readonly'), e.value)
                        : (e.hasAttribute('contenteditable') &&
                        e.focus(), n = window.getSelection(), (t = document.createRange()).selectNodeContents(
                            e), n.removeAllRanges(), n.addRange(
                            t), n.toString());
                return n;
            };
        },
        279: function (e) {
            function t () {}

            t.prototype = {
                on: function (e, t, n) {
                    var i = this.e || (this.e = {});
                    return (i[e] || (i[e] = [])).push({ fn: t, ctx: n }), this;
                },
                once: function (e, t, n) {
                    var i = this;

                    function a () {i.off(e, a), t.apply(n, arguments);}

                    return a._ = t, this.on(e, a, n);
                },
                emit: function (e) {
                    for (var t = [].slice.call(arguments, 1), n = ((this.e ||
                        (this.e = {}))[e] ||
                        []).slice(), i = 0, a = n.length; i <
                         a; i++) n[i].fn.apply(n[i].ctx, t);
                    return this;
                },
                off: function (e, t) {
                    var n = this.e || (this.e = {}), i = n[e], a = [];
                    if (i && t) for (var r = 0, o = i.length; r <
                    o; r++) i[r].fn !== t && i[r].fn._ !== t && a.push(i[r]);
                    return a.length ? n[e] = a : delete n[e], this;
                },
            }, e.exports = t, e.exports.TinyEmitter = t;
        },
    }, n = {}, e.n = function (t) {
        var n = t && t.__esModule
            ? function () {return t.default;}
            : function () {return t;};
        return e.d(n, { a: n }), n;
    }, e.d = function (t, n) {
        for (var i in n) e.o(n, i) && !e.o(t, i) &&
        Object.defineProperty(t, i, { enumerable: !0, get: n[i] });
    }, e.o = function (e, t) {
        return Object.prototype.hasOwnProperty.call(e, t);
    }, e(134).default;

    function e (i) {
        if (n[i]) return n[i].exports;
        var a = n[i] = { exports: {} };
        return t[i](a, a.exports, e), a.exports;
    }

    var t, n;
})), function (e) {
    'use strict';
    var t = function (e, t) {this.init('multiselectsplitter', e, t);};
    t.DEFAULTS = {
        selectSize: null,
        maxSelectSize: null,
        clearOnFirstChange: !1,
        onlySameGroup: !1,
        groupCounter: !1,
        maximumSelected: null,
        afterInitialize: null,
        maximumAlert: function (e) {
            alert('Only ' + e + ' values can be selected');
        },
        createFirstSelect: function (e, t) {
            return '<option>' + e + '</option>';
        },
        createSecondSelect: function (e, t) {
            return '<option>' + e + '</option>';
        },
        template: '<div class="row" data-multiselectsplitter-wrapper-selector><div class="col-xs-6 col-sm-6"><select class="form-control" data-multiselectsplitter-firstselect-selector></select></div> \x3c!-- Add the extra clearfix for only the required viewport --\x3e<div class="col-xs-6 col-sm-6"><select class="form-control" data-multiselectsplitter-secondselect-selector></select></div></div>',
    }, t.prototype.init = function (n, i, a) {
        var r = this;
        r.type = n, r.last$ElementSelected = [], r.initialized = !1, r.$element = e(
            i), r.$element.hide(), r.options = e.extend({}, t.DEFAULTS,
            a), r.$element.after(
            r.options.template), r.$wrapper = r.$element.next(
            'div[data-multiselectsplitter-wrapper-selector]'), r.$firstSelect = e(
            'select[data-multiselectsplitter-firstselect-selector]',
            r.$wrapper), r.$secondSelect = e(
            'select[data-multiselectsplitter-secondselect-selector]',
            r.$wrapper);
        var o = 0, s = 0;
        if (0 != r.$element.find('optgroup').length) {
            r.$element.find('optgroup').
                each((function () {
                    var t = e(this).attr('label'),
                        n = e(r.options.createFirstSelect(t, r.$element));
                    n.val(t), n.attr('data-current-label',
                        n.text()), r.$firstSelect.append(n);
                    var i = e(this).find('option').length;
                    i > s && (s = i), o++;
                }));
            var l = Math.max(o, s);
            l = Math.min(l, 10), r.options.selectSize
                ? l = r.options.selectSize
                : r.options.maxSelectSize &&
                (l = Math.min(l, r.options.maxSelectSize)), r.$firstSelect.attr(
                'size', l), r.$secondSelect.attr('size', l), r.$element.attr(
                'multiple') &&
            r.$secondSelect.attr('multiple', 'multiple'), r.$element.is(
                ':disabled') && r.disable(), r.$firstSelect.on('change',
                e.proxy(r.updateParentCategory, r)), r.$secondSelect.on(
                'click change', e.proxy(r.updateChildCategory,
                    r)), r.update = function () {
                if (!(r.$element.find('option').length < 1)) {
                    var e, t = r.$element.find('option:selected:first');
                    e = t.length ? t.parent().attr('label') : r.$element.find(
                        'option:first').
                        parent().
                        attr('label'), r.$firstSelect.find(
                        'option[value="' + e + '"]').
                        prop('selected', !0), r.$firstSelect.trigger('change');
                }
            }, r.update(), r.initialized = !0, r.options.afterInitialize &&
            r.options.afterInitialize(r.$firstSelect, r.$secondSelect);
        }
    }, t.prototype.disable = function () {
        this.$secondSelect.prop('disabled', !0), this.$firstSelect.prop(
            'disabled', !0);
    }, t.prototype.enable = function () {
        this.$secondSelect.prop('disabled', !1), this.$firstSelect.prop(
            'disabled', !1);
    }, t.prototype.createSecondSelect = function () {
        var t = this;
        t.$secondSelect.empty(), e.each(t.$element.find(
            'optgroup[label="' + t.$firstSelect.val() + '"] option'),
            (function (n, i) {
                var a = e(this).val(), r = e(this).text(),
                    o = e(t.options.createSecondSelect(r, t.$firstSelect));
                o.val(a), e.each(t.$element.find('option:selected'),
                    (function (t, n) {
                        e(n).val() == a && o.prop('selected', !0);
                    })), t.$secondSelect.append(o);
            }));
    }, t.prototype.updateParentCategory = function () {
        var e = this;
        e.last$ElementSelected = e.$element.find(
            'option:selected'), e.options.clearOnFirstChange && e.initialized &&
        e.$element.find('option:selected').
            prop('selected',
                !1), e.createSecondSelect(), e.checkSelected(), e.updateCounter();
    }, t.prototype.updateCounter = function () {
        var t = this;
        t.$element.attr('multiple') && t.options.groupCounter &&
        e.each(t.$firstSelect.find('option'), (function (n, i) {
            var a = e(i).val(), r = e(i).data('currentLabel'),
                o = t.$element.find(
                    'optgroup[label="' + a + '"] option:selected').length;
            o > 0 && (r += ' (' + o + ')'), e(i).html(r);
        }));
    }, t.prototype.checkSelected = function () {
        var t = this;
        if (t.$element.attr('multiple') && t.options.maximumSelected) {
            var n = 0;
            if (!((n = 'function' == typeof t.options.maximumSelected
                ? t.options.maximumSelected(t.$firstSelect, t.$secondSelect)
                : t.options.maximumSelected) < 1)) if (t.$element.find(
                'option:selected').length > n) {
                t.$firstSelect.find('option:selected').
                    prop('selected', !1), t.$secondSelect.find(
                    'option:selected').prop('selected', !1), t.initialized
                    ? (t.$element.find('option:selected').
                        prop('selected', !1), t.last$ElementSelected.prop(
                        'selected', !0))
                    : e.each(t.$element.find('option:selected'),
                        (function (t, i) {
                            t > n - 1 && e(i).prop('selected', !1);
                        }));
                var i = t.last$ElementSelected.first().parent().attr('label');
                t.$firstSelect.find('option[value="' + i + '"]').
                    prop('selected',
                        !0), t.createSecondSelect(), t.options.maximumAlert(n);
            }
        }
    }, t.prototype.basicUpdateChildCategory = function (t, n) {
        var i = this;
        i.last$ElementSelected = i.$element.find('option:selected');
        var a = i.$secondSelect.val();
        e.isArray(a) || (a = [a]);
        var r = i.$firstSelect.val(), o = !1;
        i.$element.attr('multiple') ? i.options.onlySameGroup ? e.each(
            i.$element.find('option:selected'), (function (t, n) {
                if (e(n).parent().attr('label') != r) return o = !0, !1;
            })) : n || (o = !0) : o = !0, o ? i.$element.find(
            'option:selected').prop('selected', !1) : e.each(
            i.$element.find('option:selected'), (function (t, n) {
                r == e(n).parent().attr('label') && -1 ==
                e.inArray(e(n).val(), a) && e(n).prop('selected', !1);
            })), e.each(a, (function (e, t) {
            i.$element.find('option[value="' + t + '"]').
                prop('selected', !0);
        })), i.checkSelected(), i.updateCounter(), i.$element.trigger('change');
    }, t.prototype.updateChildCategory = function (t) {
        'change' == t.type
            ? this.timeOut = setTimeout(
            e.proxy(
                (function () {this.basicUpdateChildCategory(t, t.ctrlKey);}),
                this), 10)
            : 'click' == t.type &&
            (clearTimeout(this.timeOut), this.basicUpdateChildCategory(t,
                t.ctrlKey));
    }, t.prototype.destroy = function () {
        this.$wrapper.remove(), this.$element.removeData(
            this.type), this.$element.show();
    }, e.fn.multiselectsplitter = function (n) {
        return this.each((function () {
            var i = e(this), a = i.data('multiselectsplitter'),
                r = 'object' == typeof n && n;
            (a || 'destroy' != n) &&
            (a || i.data('multiselectsplitter', a = new t(this, r)), 'string' ==
            typeof n && a[n]());
        }));
    }, e.fn.multiselectsplitter.Constructor = t, e.fn.multiselectsplitter.VERSION = '1.0.1';
}(jQuery),
    /*!
 * smooth-scroll v16.1.3
 * Animate scrolling to anchor links
 * (c) 2020 Chris Ferdinandi
 * MIT License
 * http://github.com/cferdinandi/smooth-scroll
 */
    function (e, t) {
        'function' == typeof define && define.amd ? define([],
            (function () {return t(e);})) : 'object' == typeof exports
            ? module.exports = t(e)
            : e.SmoothScroll = t(e);
    }('undefined' != typeof global ? global : 'undefined' != typeof window
        ? window
        : this, (function (e) {
        'use strict';
        var t = {
            ignore: '[data-scroll-ignore]',
            header: null,
            topOnEmptyHash: !0,
            speed: 500,
            speedAsDuration: !1,
            durationMax: null,
            durationMin: null,
            clip: !0,
            offset: 0,
            easing: 'easeInOutCubic',
            customEasing: null,
            updateURL: !0,
            popstate: !0,
            emitEvents: !0,
        }, n = function () {
            var e = {};
            return Array.prototype.forEach.call(arguments, (function (t) {
                for (var n in t) {
                    if (!t.hasOwnProperty(n)) return;
                    e[n] = t[n];
                }
            })), e;
        }, i = function (e) {
            '#' === e.charAt(0) && (e = e.substr(1));
            for (var t, n = String(
                e), i = n.length, a = -1, r = '', o = n.charCodeAt(0); ++a <
                 i;) {
                if (0 ===
                    (t = n.charCodeAt(a))) throw new InvalidCharacterError(
                    'Invalid character: the input contains U+0000.');
                t >= 1 && t <= 31 || 127 == t || 0 === a && t >= 48 && t <=
                57 || 1 === a && t >= 48 && t <= 57 && 45 === o ? r += '\\' +
                    t.toString(16) + ' ' : r += t >= 128 || 45 === t || 95 ===
                t || t >= 48 && t <= 57 || t >= 65 && t <= 90 || t >= 97 && t <=
                122 ? n.charAt(a) : '\\' + n.charAt(a);
            }
            return '#' + r;
        }, a = function () {
            return Math.max(document.body.scrollHeight,
                document.documentElement.scrollHeight,
                document.body.offsetHeight,
                document.documentElement.offsetHeight,
                document.body.clientHeight,
                document.documentElement.clientHeight);
        }, r = function (t) {
            return t ? (n = t, parseInt(e.getComputedStyle(n).height, 10) +
            t.offsetTop) : 0;
            var n;
        }, o = function (t, n, i) {
            0 === t && document.body.focus(), i ||
            (t.focus(), document.activeElement !== t &&
            (t.setAttribute('tabindex',
                '-1'), t.focus(), t.style.outline = 'none'), e.scrollTo(0, n));
        }, s = function (t, n, i, a) {
            if (n.emitEvents && 'function' == typeof e.CustomEvent) {
                var r = new CustomEvent(t,
                    { bubbles: !0, detail: { anchor: i, toggle: a } });
                document.dispatchEvent(r);
            }
        };
        return function (l, c) {
            var u, d, h, f, p = {};
            p.cancelScroll = function (e) {
                cancelAnimationFrame(f), f = null, e || s('scrollCancel', u);
            }, p.animateScroll = function (i, l, c) {
                p.cancelScroll();
                var d = n(u || t, c || {}),
                    m = '[object Number]' === Object.prototype.toString.call(i),
                    g = m || !i.tagName ? null : i;
                if (m || g) {
                    var v = e.pageYOffset;
                    d.header && !h && (h = document.querySelector(d.header));
                    var y, b, x, _ = r(h), w = m ? i : function (t, n, i, r) {
                            var o = 0;
                            if (t.offsetParent) do {o += t.offsetTop, t = t.offsetParent;} while (t);
                            return o = Math.max(o - n - i, 0), r &&
                            (o = Math.min(o, a() - e.innerHeight)), o;
                        }(g, _, parseInt('function' == typeof d.offset
                        ? d.offset(i, l)
                        : d.offset, 10), d.clip), k = w - v, M = a(), L = 0,
                        S = function (e, t) {
                            var n = t.speedAsDuration
                                ? t.speed
                                : Math.abs(e / 1e3 * t.speed);
                            return t.durationMax && n > t.durationMax
                                ? t.durationMax
                                : t.durationMin && n < t.durationMin
                                    ? t.durationMin
                                    : parseInt(n, 10);
                        }(k, d), T = function (t) {
                            y || (y = t), L += t - y, x = v + k * function (e, t) {
                                var n;
                                return 'easeInQuad' === e.easing &&
                                (n = t * t), 'easeOutQuad' === e.easing &&
                                (n = t * (2 - t)), 'easeInOutQuad' === e.easing &&
                                (n = t < .5 ? 2 * t * t : (4 - 2 * t) * t -
                                    1), 'easeInCubic' === e.easing &&
                                (n = t * t * t), 'easeOutCubic' === e.easing &&
                                (n = --t * t * t + 1), 'easeInOutCubic' ===
                                e.easing && (n = t < .5 ? 4 * t * t * t : (t - 1) *
                                    (2 * t - 2) * (2 * t - 2) +
                                    1), 'easeInQuart' === e.easing &&
                                (n = t * t * t * t), 'easeOutQuart' === e.easing &&
                                (n = 1 - --t * t * t * t), 'easeInOutQuart' ===
                                e.easing &&
                                (n = t < .5 ? 8 * t * t * t * t : 1 - 8 * --t * t *
                                    t * t), 'easeInQuint' === e.easing &&
                                (n = t * t * t * t * t), 'easeOutQuint' ===
                                e.easing && (n = 1 + --t * t * t * t *
                                    t), 'easeInOutQuint' === e.easing &&
                                (n = t < .5 ? 16 * t * t * t * t * t : 1 + 16 *
                                    --t * t * t * t * t), e.customEasing &&
                                (n = e.customEasing(t)), n || t;
                            }(d, b = (b = 0 === S ? 0 : L / S) > 1
                                ? 1
                                : b), e.scrollTo(0, Math.floor(x)), function (
                                t, n) {
                                var a = e.pageYOffset;
                                if (t == n || a == n ||
                                    (v < n && e.innerHeight + a) >=
                                    M) return p.cancelScroll(!0), o(i, n, m), s(
                                    'scrollStop', d, i, l), y = null, f = null, !0;
                            }(x, w) || (f = e.requestAnimationFrame(T), y = t);
                        };
                    0 === e.pageYOffset && e.scrollTo(0, 0), function (
                        e, t, n) {
                        t || history.pushState && n.updateURL &&
                        history.pushState(
                            { smoothScroll: JSON.stringify(n), anchor: e.id },
                            document.title,
                            e === document.documentElement ? '#top' : '#' +
                                e.id);
                    }(i, m, d), 'matchMedia' in e &&
                    e.matchMedia('(prefers-reduced-motion)').matches ? o(i,
                        Math.floor(w), !1) : (s('scrollStart', d, i,
                        l), p.cancelScroll(!0), e.requestAnimationFrame(T));
                }
            };
            var m = function (t) {
                if (!t.defaultPrevented &&
                    !(0 !== t.button || t.metaKey || t.ctrlKey || t.shiftKey) &&
                    'closest' in t.target && (d = t.target.closest(l)) &&
                    'a' === d.tagName.toLowerCase() &&
                    !t.target.closest(u.ignore) && d.hostname ===
                    e.location.hostname && d.pathname === e.location.pathname &&
                    /#/.test(d.href)) {
                    var n, a;
                    try {n = i(decodeURIComponent(d.hash));} catch (e) {
                        n = i(d.hash);
                    }
                    if ('#' === n) {
                        if (!u.topOnEmptyHash) return;
                        a = document.documentElement;
                    } else a = document.querySelector(n);
                    (a = a || '#top' !== n ? a : document.documentElement) &&
                    (t.preventDefault(), function (t) {
                        if (history.replaceState && t.updateURL &&
                            !history.state) {
                            var n = e.location.hash;
                            n = n || '', history.replaceState({
                                smoothScroll: JSON.stringify(t),
                                anchor: n || e.pageYOffset,
                            }, document.title, n || e.location.href);
                        }
                    }(u), p.animateScroll(a, d));
                }
            }, g = function (e) {
                if (null !== history.state && history.state.smoothScroll &&
                    history.state.smoothScroll === JSON.stringify(u)) {
                    var t = history.state.anchor;
                    'string' == typeof t && t &&
                    !(t = document.querySelector(i(history.state.anchor))) ||
                    p.animateScroll(t, null, { updateURL: !1 });
                }
            };
            p.destroy = function () {
                u && (document.removeEventListener('click', m,
                    !1), e.removeEventListener('popstate', g,
                    !1), p.cancelScroll(), u = null, null, d = null, h = null, null, f = null);
            };
            return function () {
                if (!('querySelector' in document && 'addEventListener' in e &&
                    'requestAnimationFrame' in e && 'closest' in
                    e.Element.prototype)) throw'Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.';
                p.destroy(), u = n(t, c || {}), h = u.header
                    ? document.querySelector(u.header)
                    : null, document.addEventListener('click', m,
                    !1), u.updateURL && u.popstate &&
                e.addEventListener('popstate', g, !1);
            }(), p;
        };
    })), function (e, t) {
    if ('object' == typeof exports && 'object' ==
        typeof module) module.exports = t(); else if ('function' ==
        typeof define && define.amd) define([], t); else {
        var n = t();
        for (var i in n) ('object' == typeof exports ? exports : e)[i] = n[i];
    }
}(self, (function () {
    return function () {
        var e = {
            3099: function (e) {
                e.exports = function (e) {
                    if ('function' != typeof e) throw TypeError(
                        String(e) + ' is not a function');
                    return e;
                };
            },
            6077: function (e, t, n) {
                var i = n(111);
                e.exports = function (e) {
                    if (!i(e) && null !== e) throw TypeError(
                        'Can\'t set ' + String(e) + ' as a prototype');
                    return e;
                };
            },
            1223: function (e, t, n) {
                var i = n(5112), a = n(30), r = n(3070), o = i('unscopables'),
                    s = Array.prototype;
                null == s[o] && r.f(s, o, {
                    configurable: !0,
                    value: a(null),
                }), e.exports = function (e) {s[o][e] = !0;};
            },
            1530: function (e, t, n) {
                'use strict';
                var i = n(8710).charAt;
                e.exports = function (e, t, n) {
                    return t + (n ? i(e, t).length : 1);
                };
            },
            5787: function (e) {
                e.exports = function (e, t, n) {
                    if (!(e instanceof t)) throw TypeError(
                        'Incorrect ' + (n ? n + ' ' : '') + 'invocation');
                    return e;
                };
            },
            9670: function (e, t, n) {
                var i = n(111);
                e.exports = function (e) {
                    if (!i(e)) throw TypeError(String(e) + ' is not an object');
                    return e;
                };
            },
            4019: function (e) {
                e.exports = 'undefined' != typeof ArrayBuffer && 'undefined' !=
                    typeof DataView;
            },
            260: function (e, t, n) {
                'use strict';
                var i, a = n(4019), r = n(9781), o = n(7854), s = n(111),
                    l = n(6656), c = n(648), u = n(8880), d = n(1320),
                    h = n(3070).f, f = n(9518), p = n(7674), m = n(5112),
                    g = n(9711), v = o.Int8Array, y = v && v.prototype,
                    b = o.Uint8ClampedArray, x = b && b.prototype,
                    _ = v && f(v), w = y && f(y), k = Object.prototype,
                    M = k.isPrototypeOf, L = m('toStringTag'),
                    S = g('TYPED_ARRAY_TAG'),
                    T = a && !!p && 'Opera' !== c(o.opera), A = !1, D = {
                        Int8Array: 1,
                        Uint8Array: 1,
                        Uint8ClampedArray: 1,
                        Int16Array: 2,
                        Uint16Array: 2,
                        Int32Array: 4,
                        Uint32Array: 4,
                        Float32Array: 4,
                        Float64Array: 8,
                    }, C = { BigInt64Array: 8, BigUint64Array: 8 },
                    E = function (e) {
                        if (!s(e)) return !1;
                        var t = c(e);
                        return l(D, t) || l(C, t);
                    };
                for (i in D) o[i] || (T = !1);
                if ((!T || 'function' != typeof _ || _ ===
                    Function.prototype) && (_ = function () {
                    throw TypeError('Incorrect invocation');
                }, T)) for (i in D) o[i] && p(o[i], _);
                if ((!T || !w || w === k) &&
                    (w = _.prototype, T)) for (i in D) o[i] &&
                p(o[i].prototype, w);
                if (T && f(x) !== w && p(x, w), r &&
                !l(w, L)) for (i in A = !0, h(w, L, {
                    get: function () {
                        return s(this)
                            ? this[S]
                            : void 0;
                    },
                }), D) o[i] && u(o[i], S, i);
                e.exports = {
                    NATIVE_ARRAY_BUFFER_VIEWS: T,
                    TYPED_ARRAY_TAG: A && S,
                    aTypedArray: function (e) {
                        if (E(e)) return e;
                        throw TypeError('Target is not a typed array');
                    },
                    aTypedArrayConstructor: function (e) {
                        if (p) {
                            if (M.call(_, e)) return e;
                        } else for (var t in D) if (l(D, i)) {
                            var n = o[t];
                            if (n && (e === n || M.call(n, e))) return e;
                        }
                        throw TypeError(
                            'Target is not a typed array constructor');
                    },
                    exportTypedArrayMethod: function (e, t, n) {
                        if (r) {
                            if (n) for (var i in D) {
                                var a = o[i];
                                a && l(a.prototype, e) && delete a.prototype[e];
                            }
                            w[e] && !n || d(w, e, n ? t : T && y[e] || t);
                        }
                    },
                    exportTypedArrayStaticMethod: function (e, t, n) {
                        var i, a;
                        if (r) {
                            if (p) {
                                if (n) for (i in D) (a = o[i]) && l(a, e) &&
                                delete a[e];
                                if (_[e] && !n) return;
                                try {
                                    return d(_, e, n ? t : T && v[e] || t);
                                } catch (e) {}
                            }
                            for (i in D) !(a = o[i]) || a[e] && !n ||
                            d(a, e, t);
                        }
                    },
                    isView: function (e) {
                        if (!s(e)) return !1;
                        var t = c(e);
                        return 'DataView' === t || l(D, t) || l(C, t);
                    },
                    isTypedArray: E,
                    TypedArray: _,
                    TypedArrayPrototype: w,
                };
            },
            3331: function (e, t, n) {
                'use strict';
                var i = n(7854), a = n(9781), r = n(4019), o = n(8880),
                    s = n(2248), l = n(7293), c = n(5787), u = n(9958),
                    d = n(7466), h = n(7067), f = n(1179), p = n(9518),
                    m = n(7674), g = n(8006).f, v = n(3070).f, y = n(1285),
                    b = n(8003), x = n(9909), _ = x.get, w = x.set,
                    k = 'ArrayBuffer', M = 'DataView', L = 'Wrong index',
                    S = i.ArrayBuffer, T = S, A = i.DataView,
                    D = A && A.prototype, C = Object.prototype,
                    E = i.RangeError, O = f.pack, Y = f.unpack,
                    P = function (e) {return [255 & e];},
                    I = function (e) {return [255 & e, e >> 8 & 255];},
                    j = function (e) {
                        return [
                            255 & e,
                            e >> 8 & 255,
                            e >> 16 & 255,
                            e >> 24 & 255];
                    }, N = function (e) {
                        return e[3] << 24 | e[2] << 16 | e[1] << 8 | e[0];
                    }, H = function (e) {return O(e, 23, 4);},
                    F = function (e) {return O(e, 52, 8);},
                    R = function (e, t) {
                        v(e.prototype, t,
                            { get: function () {return _(this)[t];} });
                    }, z = function (e, t, n, i) {
                        var a = h(n), r = _(e);
                        if (a + t > r.byteLength) throw E(L);
                        var o = _(r.buffer).bytes, s = a + r.byteOffset,
                            l = o.slice(s, s + t);
                        return i ? l : l.reverse();
                    }, B = function (e, t, n, i, a, r) {
                        var o = h(n), s = _(e);
                        if (o + t > s.byteLength) throw E(L);
                        for (var l = _(s.buffer).bytes, c = o + s.byteOffset, u = i(
                            +a), d = 0; d < t; d++) l[c + d] = u[r ? d : t - d - 1];
                    };
                if (r) {
                    if (!l((function () {S(1);})) ||
                        !l((function () {new S(-1);})) || l((function () {
                            return new S, new S(1.5), new S(NaN), S.name != k;
                        }))) {
                        for (var W, V = (T = function (e) {
                            return c(this, T), new S(h(e));
                        }).prototype = S.prototype, q = g(S), U = 0; q.length >
                             U;) (W = q[U++]) in T || o(T, W, S[W]);
                        V.constructor = T;
                    }
                    m && p(D) !== C && m(D, C);
                    var X = new A(new T(2)), $ = D.setInt8;
                    X.setInt8(0, 2147483648), X.setInt8(1,
                        2147483649), !X.getInt8(0) && X.getInt8(1) || s(D, {
                        setInt8: function (e, t) {
                            $.call(this, e, t << 24 >> 24);
                        },
                        setUint8: function (e, t) {
                            $.call(this, e, t << 24 >> 24);
                        },
                    }, { unsafe: !0 });
                } else T = function (e) {
                    c(this, T, k);
                    var t = h(e);
                    w(this,
                        { bytes: y.call(new Array(t), 0), byteLength: t }), a ||
                    (this.byteLength = t);
                }, A = function (e, t, n) {
                    c(this, A, M), c(e, T, M);
                    var i = _(e).byteLength, r = u(t);
                    if (r < 0 || r > i) throw E('Wrong offset');
                    if (r + (n = void 0 === n ? i - r : d(n)) > i) throw E(
                        'Wrong length');
                    w(this, { buffer: e, byteLength: n, byteOffset: r }), a ||
                    (this.buffer = e, this.byteLength = n, this.byteOffset = r);
                }, a &&
                (R(T, 'byteLength'), R(A, 'buffer'), R(A, 'byteLength'), R(A,
                    'byteOffset')), s(A.prototype, {
                    getInt8: function (e) {
                        return z(this, 1, e)[0] << 24 >> 24;
                    },
                    getUint8: function (e) {return z(this, 1, e)[0];},
                    getInt16: function (e) {
                        var t = z(this, 2, e,
                            arguments.length > 1 ? arguments[1] : void 0);
                        return (t[1] << 8 | t[0]) << 16 >> 16;
                    },
                    getUint16: function (e) {
                        var t = z(this, 2, e,
                            arguments.length > 1 ? arguments[1] : void 0);
                        return t[1] << 8 | t[0];
                    },
                    getInt32: function (e) {
                        return N(z(this, 4, e,
                            arguments.length > 1 ? arguments[1] : void 0));
                    },
                    getUint32: function (e) {
                        return N(z(this, 4, e,
                            arguments.length > 1 ? arguments[1] : void 0)) >>>
                            0;
                    },
                    getFloat32: function (e) {
                        return Y(z(this, 4, e,
                            arguments.length > 1 ? arguments[1] : void 0), 23);
                    },
                    getFloat64: function (e) {
                        return Y(z(this, 8, e,
                            arguments.length > 1 ? arguments[1] : void 0), 52);
                    },
                    setInt8: function (e, t) {B(this, 1, e, P, t);},
                    setUint8: function (e, t) {B(this, 1, e, P, t);},
                    setInt16: function (e, t) {
                        B(this, 2, e, I, t,
                            arguments.length > 2 ? arguments[2] : void 0);
                    },
                    setUint16: function (e, t) {
                        B(this, 2, e, I, t,
                            arguments.length > 2 ? arguments[2] : void 0);
                    },
                    setInt32: function (e, t) {
                        B(this, 4, e, j, t,
                            arguments.length > 2 ? arguments[2] : void 0);
                    },
                    setUint32: function (e, t) {
                        B(this, 4, e, j, t,
                            arguments.length > 2 ? arguments[2] : void 0);
                    },
                    setFloat32: function (e, t) {
                        B(this, 4, e, H, t,
                            arguments.length > 2 ? arguments[2] : void 0);
                    },
                    setFloat64: function (e, t) {
                        B(this, 8, e, F, t,
                            arguments.length > 2 ? arguments[2] : void 0);
                    },
                });
                b(T, k), b(A, M), e.exports = { ArrayBuffer: T, DataView: A };
            },
            1048: function (e, t, n) {
                'use strict';
                var i = n(7908), a = n(1400), r = n(7466), o = Math.min;
                e.exports = [].copyWithin || function (e, t) {
                    var n = i(this), s = r(n.length), l = a(e, s), c = a(t, s),
                        u = arguments.length > 2 ? arguments[2] : void 0,
                        d = o((void 0 === u ? s : a(u, s)) - c, s - l), h = 1;
                    for (c < l && l < c + d &&
                         (h = -1, c += d - 1, l += d - 1); d-- > 0;) c in n
                        ? n[l] = n[c]
                        : delete n[l], l += h, c += h;
                    return n;
                };
            },
            1285: function (e, t, n) {
                'use strict';
                var i = n(7908), a = n(1400), r = n(7466);
                e.exports = function (e) {
                    for (var t = i(this), n = r(
                        t.length), o = arguments.length, s = a(
                        o > 1 ? arguments[1] : void 0, n), l = o > 2
                        ? arguments[2]
                        : void 0, c = void 0 === l ? n : a(l, n); c >
                         s;) t[s++] = e;
                    return t;
                };
            },
            8533: function (e, t, n) {
                'use strict';
                var i = n(2092).forEach, a = n(9341)('forEach');
                e.exports = a ? [].forEach : function (e) {
                    return i(this, e,
                        arguments.length > 1 ? arguments[1] : void 0);
                };
            },
            8457: function (e, t, n) {
                'use strict';
                var i = n(9974), a = n(7908), r = n(3411), o = n(7659),
                    s = n(7466), l = n(6135), c = n(1246);
                e.exports = function (e) {
                    var t, n, u, d, h, f, p = a(e),
                        m = 'function' == typeof this ? this : Array,
                        g = arguments.length, v = g > 1 ? arguments[1] : void 0,
                        y = void 0 !== v, b = c(p), x = 0;
                    if (y &&
                    (v = i(v, g > 2 ? arguments[2] : void 0, 2)), null == b ||
                    m == Array && o(b)) for (n = new m(t = s(p.length)); t >
                    x; x++) f = y ? v(p[x], x) : p[x], l(n, x,
                        f); else for (h = (d = b.call(
                        p)).next, n = new m; !(u = h.call(d)).done; x++) f = y
                        ? r(d, v, [u.value, x], !0)
                        : u.value, l(n, x, f);
                    return n.length = x, n;
                };
            },
            1318: function (e, t, n) {
                var i = n(5656), a = n(7466), r = n(1400), o = function (e) {
                    return function (t, n, o) {
                        var s, l = i(t), c = a(l.length), u = r(o, c);
                        if (e && n != n) {
                            for (; c > u;) if ((s = l[u++]) != s) return !0;
                        } else for (; c > u; u++) if ((e || u in l) && l[u] ===
                            n) return e || u || 0;
                        return !e && -1;
                    };
                };
                e.exports = { includes: o(!0), indexOf: o(!1) };
            },
            2092: function (e, t, n) {
                var i = n(9974), a = n(8361), r = n(7908), o = n(7466),
                    s = n(5417), l = [].push, c = function (e) {
                        var t = 1 == e, n = 2 == e, c = 3 == e, u = 4 == e,
                            d = 6 == e, h = 7 == e, f = 5 == e || d;
                        return function (p, m, g, v) {
                            for (var y, b, x = r(p), _ = a(x), w = i(m, g,
                                3), k = o(_.length), M = 0, L = v || s, S = t ? L(p,
                                k) : n || h
                                ? L(p, 0)
                                : void 0; k > M; M++) if ((f || M in _) &&
                                (b = w(y = _[M], M,
                                    x), e)) if (t) S[M] = b; else if (b) switch (e) {
                                case 3:
                                    return !0;
                                case 5:
                                    return y;
                                case 6:
                                    return M;
                                case 2:
                                    l.call(S, y);
                            } else switch (e) {
                                case 4:
                                    return !1;
                                case 7:
                                    l.call(S, y);
                            }
                            return d ? -1 : c || u ? u : S;
                        };
                    };
                e.exports = {
                    forEach: c(0),
                    map: c(1),
                    filter: c(2),
                    some: c(3),
                    every: c(4),
                    find: c(5),
                    findIndex: c(6),
                    filterOut: c(7),
                };
            },
            6583: function (e, t, n) {
                'use strict';
                var i = n(5656), a = n(9958), r = n(7466), o = n(9341),
                    s = Math.min, l = [].lastIndexOf,
                    c = !!l && 1 / [1].lastIndexOf(1, -0) < 0,
                    u = o('lastIndexOf'), d = c || !u;
                e.exports = d ? function (e) {
                    if (c) return l.apply(this, arguments) || 0;
                    var t = i(this), n = r(t.length), o = n - 1;
                    for (arguments.length > 1 &&
                         (o = s(o, a(arguments[1]))), o < 0 && (o = n + o); o >=
                         0; o--) if (o in t && t[o] === e) return o || 0;
                    return -1;
                } : l;
            },
            1194: function (e, t, n) {
                var i = n(7293), a = n(5112), r = n(7392), o = a('species');
                e.exports = function (e) {
                    return r >= 51 || !i((function () {
                        var t = [];
                        return (t.constructor = {})[o] = function () {return { foo: 1 };}, 1 !==
                        t[e](Boolean).foo;
                    }));
                };
            },
            9341: function (e, t, n) {
                'use strict';
                var i = n(7293);
                e.exports = function (e, t) {
                    var n = [][e];
                    return !!n && i((function () {
                        n.call(null, t || function () {throw 1;}, 1);
                    }));
                };
            },
            3671: function (e, t, n) {
                var i = n(3099), a = n(7908), r = n(8361), o = n(7466),
                    s = function (e) {
                        return function (t, n, s, l) {
                            i(n);
                            var c = a(t), u = r(c), d = o(c.length),
                                h = e ? d - 1 : 0, f = e ? -1 : 1;
                            if (s < 2) for (; ;) {
                                if (h in u) {
                                    l = u[h], h += f;
                                    break;
                                }
                                if (h += f, e ? h < 0 : d <= h) throw TypeError(
                                    'Reduce of empty array with no initial value');
                            }
                            for (; e ? h >= 0 : d > h; h += f) h in u &&
                            (l = n(l, u[h], h, c));
                            return l;
                        };
                    };
                e.exports = { left: s(!1), right: s(!0) };
            },
            5417: function (e, t, n) {
                var i = n(111), a = n(3157), r = n(5112)('species');
                e.exports = function (e, t) {
                    var n;
                    return a(e) &&
                    ('function' != typeof (n = e.constructor) || n !== Array &&
                    !a(n.prototype) ? i(n) && null === (n = n[r]) &&
                        (n = void 0) : n = void 0), new (void 0 === n
                        ? Array
                        : n)(0 === t ? 0 : t);
                };
            },
            3411: function (e, t, n) {
                var i = n(9670), a = n(9212);
                e.exports = function (e, t, n, r) {
                    try {
                        return r ? t(i(n)[0], n[1]) : t(n);
                    } catch (t) {throw a(e), t;}
                };
            },
            7072: function (e, t, n) {
                var i = n(5112)('iterator'), a = !1;
                try {
                    var r = 0, o = {
                        next: function () {return { done: !!r++ };},
                        return: function () {a = !0;},
                    };
                    o[i] = function () {return this;}, Array.from(o,
                        (function () {throw 2;}));
                } catch (e) {}
                e.exports = function (e, t) {
                    if (!t && !a) return !1;
                    var n = !1;
                    try {
                        var r = {};
                        r[i] = function () {return { next: function () {return { done: n = !0 };} };}, e(
                            r);
                    } catch (e) {}
                    return n;
                };
            },
            4326: function (e) {
                var t = {}.toString;
                e.exports = function (e) {return t.call(e).slice(8, -1);};
            },
            648: function (e, t, n) {
                var i = n(1694), a = n(4326), r = n(5112)('toStringTag'),
                    o = 'Arguments' == a(function () {return arguments;}());
                e.exports = i ? a : function (e) {
                    var t, n, i;
                    return void 0 === e ? 'Undefined' : null === e
                        ? 'Null'
                        : 'string' == typeof (n = function (
                            e,
                            t) {try {return e[t];} catch (e) {}}(
                            t = Object(e), r)) ? n : o ? a(t) : 'Object' ==
                        (i = a(t)) && 'function' == typeof t.callee
                            ? 'Arguments'
                            : i;
                };
            },
            9920: function (e, t, n) {
                var i = n(6656), a = n(3887), r = n(1236), o = n(3070);
                e.exports = function (e, t) {
                    for (var n = a(t), s = o.f, l = r.f, c = 0; c <
                    n.length; c++) {
                        var u = n[c];
                        i(e, u) || s(e, u, l(t, u));
                    }
                };
            },
            8544: function (e, t, n) {
                var i = n(7293);
                e.exports = !i((function () {
                    function e () {}

                    return e.prototype.constructor = null, Object.getPrototypeOf(
                        new e) !== e.prototype;
                }));
            },
            4994: function (e, t, n) {
                'use strict';
                var i = n(3383).IteratorPrototype, a = n(30), r = n(9114),
                    o = n(8003), s = n(7497), l = function () {return this;};
                e.exports = function (e, t, n) {
                    var c = t + ' Iterator';
                    return e.prototype = a(i, { next: r(1, n) }), o(e, c, !1,
                        !0), s[c] = l, e;
                };
            },
            8880: function (e, t, n) {
                var i = n(9781), a = n(3070), r = n(9114);
                e.exports = i
                    ? function (e, t, n) {return a.f(e, t, r(1, n));}
                    : function (e, t, n) {return e[t] = n, e;};
            },
            9114: function (e) {
                e.exports = function (e, t) {
                    return {
                        enumerable: !(1 & e),
                        configurable: !(2 & e),
                        writable: !(4 & e),
                        value: t,
                    };
                };
            },
            6135: function (e, t, n) {
                'use strict';
                var i = n(7593), a = n(3070), r = n(9114);
                e.exports = function (e, t, n) {
                    var o = i(t);
                    o in e ? a.f(e, o, r(0, n)) : e[o] = n;
                };
            },
            654: function (e, t, n) {
                'use strict';
                var i = n(2109), a = n(4994), r = n(9518), o = n(7674),
                    s = n(8003), l = n(8880), c = n(1320), u = n(5112),
                    d = n(1913), h = n(7497), f = n(3383),
                    p = f.IteratorPrototype, m = f.BUGGY_SAFARI_ITERATORS,
                    g = u('iterator'), v = 'keys', y = 'values', b = 'entries',
                    x = function () {return this;};
                e.exports = function (e, t, n, u, f, _, w) {
                    a(n, t, u);
                    var k, M, L, S = function (e) {
                            if (e === f && E) return E;
                            if (!m && e in D) return D[e];
                            switch (e) {
                                case v:
                                case y:
                                case b:
                                    return function () {return new n(this, e);};
                            }
                            return function () {return new n(this);};
                        }, T = t + ' Iterator', A = !1, D = e.prototype,
                        C = D[g] || D['@@iterator'] || f && D[f],
                        E = !m && C || S(f), O = 'Array' == t && D.entries || C;
                    if (O &&
                    (k = r(O.call(new e)), p !== Object.prototype && k.next &&
                    (d || r(k) === p ||
                    (o ? o(k, p) : 'function' != typeof k[g] && l(k, g, x)), s(
                        k, T, !0, !0), d && (h[T] = x))), f == y && C &&
                    C.name !== y &&
                    (A = !0, E = function () {return C.call(this);}), d && !w ||
                    D[g] === E || l(D, g, E), h[t] = E, f) if (M = {
                        values: S(y), keys: _ ? E : S(v), entries: S(b),
                    }, w) for (L in M) (m || A || !(L in D)) &&
                    c(D, L, M[L]); else i(
                        { target: t, proto: !0, forced: m || A }, M);
                    return M;
                };
            },
            9781: function (e, t, n) {
                var i = n(7293);
                e.exports = !i((function () {
                    return 7 != Object.defineProperty({}, 1,
                        { get: function () {return 7;} })[1];
                }));
            },
            317: function (e, t, n) {
                var i = n(7854), a = n(111), r = i.document,
                    o = a(r) && a(r.createElement);
                e.exports = function (e) {return o ? r.createElement(e) : {};};
            },
            8324: function (e) {
                e.exports = {
                    CSSRuleList: 0,
                    CSSStyleDeclaration: 0,
                    CSSValueList: 0,
                    ClientRectList: 0,
                    DOMRectList: 0,
                    DOMStringList: 0,
                    DOMTokenList: 1,
                    DataTransferItemList: 0,
                    FileList: 0,
                    HTMLAllCollection: 0,
                    HTMLCollection: 0,
                    HTMLFormElement: 0,
                    HTMLSelectElement: 0,
                    MediaList: 0,
                    MimeTypeArray: 0,
                    NamedNodeMap: 0,
                    NodeList: 1,
                    PaintRequestList: 0,
                    Plugin: 0,
                    PluginArray: 0,
                    SVGLengthList: 0,
                    SVGNumberList: 0,
                    SVGPathSegList: 0,
                    SVGPointList: 0,
                    SVGStringList: 0,
                    SVGTransformList: 0,
                    SourceBufferList: 0,
                    StyleSheetList: 0,
                    TextTrackCueList: 0,
                    TextTrackList: 0,
                    TouchList: 0,
                };
            },
            8113: function (e, t, n) {
                var i = n(5005);
                e.exports = i('navigator', 'userAgent') || '';
            },
            7392: function (e, t, n) {
                var i, a, r = n(7854), o = n(8113), s = r.process,
                    l = s && s.versions, c = l && l.v8;
                c ? a = (i = c.split('.'))[0] + i[1] : o &&
                    (!(i = o.match(/Edge\/(\d+)/)) || i[1] >= 74) &&
                    (i = o.match(/Chrome\/(\d+)/)) &&
                    (a = i[1]), e.exports = a && +a;
            },
            748: function (e) {
                e.exports = [
                    'constructor',
                    'hasOwnProperty',
                    'isPrototypeOf',
                    'propertyIsEnumerable',
                    'toLocaleString',
                    'toString',
                    'valueOf'];
            },
            2109: function (e, t, n) {
                var i = n(7854), a = n(1236).f, r = n(8880), o = n(1320),
                    s = n(3505), l = n(9920), c = n(4705);
                e.exports = function (e, t) {
                    var n, u, d, h, f, p = e.target, m = e.global, g = e.stat;
                    if (n = m ? i : g ? i[p] || s(p, {}) : (i[p] ||
                        {}).prototype) for (u in t) {
                        if (h = t[u], d = e.noTargetGet
                            ? (f = a(n, u)) && f.value
                            : n[u], !c(m ? u : p + (g ? '.' : '#') + u,
                            e.forced) && void 0 !== d) {
                            if (typeof h == typeof d) continue;
                            l(h, d);
                        }
                        (e.sham || d && d.sham) && r(h, 'sham', !0), o(n, u, h,
                            e);
                    }
                };
            },
            7293: function (e) {e.exports = function (e) {try {return !!e();} catch (e) {return !0;}};},
            7007: function (e, t, n) {
                'use strict';
                n(4916);
                var i = n(1320), a = n(7293), r = n(5112), o = n(2261),
                    s = n(8880), l = r('species'), c = !a((function () {
                        var e = /./;
                        return e.exec = function () {
                            var e = [];
                            return e.groups = { a: '7' }, e;
                        }, '7' !== ''.replace(e, '$<a>');
                    })), u = '$0' === 'a'.replace(/./, '$0'), d = r('replace'),
                    h = !!/./[d] && '' === /./[d]('a', '$0'),
                    f = !a((function () {
                        var e = /(?:)/, t = e.exec;
                        e.exec = function () {return t.apply(this, arguments);};
                        var n = 'ab'.split(e);
                        return 2 !== n.length || 'a' !== n[0] || 'b' !== n[1];
                    }));
                e.exports = function (e, t, n, d) {
                    var p = r(e), m = !a((function () {
                        var t = {};
                        return t[p] = function () {return 7;}, 7 != ''[e](t);
                    })), g = m && !a((function () {
                        var t = !1, n = /a/;
                        return 'split' === e &&
                        ((n = {}).constructor = {}, n.constructor[l] = function () {return n;}, n.flags = '', n[p] = /./[p]), n.exec = function () {return t = !0, null;}, n[p](
                            ''), !t;
                    }));
                    if (!m || !g || 'replace' === e && (!c || !u || h) ||
                        'split' === e && !f) {
                        var v = /./[p], y = n(p, ''[e],
                            (function (e, t, n, i, a) {
                                return t.exec === o
                                    ? m && !a
                                        ? { done: !0, value: v.call(t, n, i) }
                                        : { done: !0, value: e.call(n, t, i) }
                                    : { done: !1 };
                            }), {
                                REPLACE_KEEPS_$0: u,
                                REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: h,
                            }), b = y[0], x = y[1];
                        i(String.prototype, e, b), i(RegExp.prototype, p, 2 == t
                            ? function (e, t) {return x.call(e, this, t);}
                            : function (e) {return x.call(e, this);});
                    }
                    d && s(RegExp.prototype[p], 'sham', !0);
                };
            },
            9974: function (e, t, n) {
                var i = n(3099);
                e.exports = function (e, t, n) {
                    if (i(e), void 0 === t) return e;
                    switch (n) {
                        case 0:
                            return function () {return e.call(t);};
                        case 1:
                            return function (n) {return e.call(t, n);};
                        case 2:
                            return function (n, i) {return e.call(t, n, i);};
                        case 3:
                            return function (n, i, a) {
                                return e.call(t, n, i, a);
                            };
                    }
                    return function () {return e.apply(t, arguments);};
                };
            },
            5005: function (e, t, n) {
                var i = n(857), a = n(7854), r = function (e) {
                    return 'function' == typeof e
                        ? e
                        : void 0;
                };
                e.exports = function (e, t) {
                    return arguments.length < 2 ? r(i[e]) || r(a[e]) : i[e] &&
                        i[e][t] || a[e] && a[e][t];
                };
            },
            1246: function (e, t, n) {
                var i = n(648), a = n(7497), r = n(5112)('iterator');
                e.exports = function (e) {
                    if (null != e) return e[r] || e['@@iterator'] || a[i(e)];
                };
            },
            8554: function (e, t, n) {
                var i = n(9670), a = n(1246);
                e.exports = function (e) {
                    var t = a(e);
                    if ('function' != typeof t) throw TypeError(
                        String(e) + ' is not iterable');
                    return i(t.call(e));
                };
            },
            647: function (e, t, n) {
                var i = n(7908), a = Math.floor, r = ''.replace,
                    o = /\$([$&'`]|\d\d?|<[^>]*>)/g, s = /\$([$&'`]|\d\d?)/g;
                e.exports = function (e, t, n, l, c, u) {
                    var d = n + e.length, h = l.length, f = s;
                    return void 0 !== c && (c = i(c), f = o), r.call(u, f,
                        (function (i, r) {
                            var o;
                            switch (r.charAt(0)) {
                                case'$':
                                    return '$';
                                case'&':
                                    return e;
                                case'`':
                                    return t.slice(0, n);
                                case'\'':
                                    return t.slice(d);
                                case'<':
                                    o = c[r.slice(1, -1)];
                                    break;
                                default:
                                    var s = +r;
                                    if (0 === s) return i;
                                    if (s > h) {
                                        var u = a(s / 10);
                                        return 0 === u ? i : u <= h ? void 0 ===
                                        l[u - 1] ? r.charAt(1) : l[u - 1] +
                                            r.charAt(1) : i;
                                    }
                                    o = l[s - 1];
                            }
                            return void 0 === o ? '' : o;
                        }));
                };
            },
            7854: function (e, t, n) {
                var i = function (e) {
                    return e && e.Math == Math && e;
                };
                e.exports = i('object' == typeof globalThis && globalThis) ||
                    i('object' == typeof window && window) ||
                    i('object' == typeof self && self) ||
                    i('object' == typeof n.g && n.g) ||
                    function () {return this;}() || Function('return this')();
            },
            6656: function (e) {
                var t = {}.hasOwnProperty;
                e.exports = function (e, n) {return t.call(e, n);};
            },
            3501: function (e) {e.exports = {};},
            490: function (e, t, n) {
                var i = n(5005);
                e.exports = i('document', 'documentElement');
            },
            4664: function (e, t, n) {
                var i = n(9781), a = n(7293), r = n(317);
                e.exports = !i && !a((function () {
                    return 7 != Object.defineProperty(r('div'), 'a',
                        { get: function () {return 7;} }).a;
                }));
            },
            1179: function (e) {
                var t = Math.abs, n = Math.pow, i = Math.floor, a = Math.log,
                    r = Math.LN2;
                e.exports = {
                    pack: function (e, o, s) {
                        var l, c, u, d = new Array(s), h = 8 * s - o - 1,
                            f = (1 << h) - 1, p = f >> 1,
                            m = 23 === o ? n(2, -24) - n(2, -77) : 0,
                            g = e < 0 || 0 === e && 1 / e < 0 ? 1 : 0, v = 0;
                        for ((e = t(e)) != e || e === 1 / 0 ? (c = e != e
                            ? 1
                            : 0, l = f) : (l = i(a(e) / r), e * (u = n(2, -l)) <
                        1 && (l--, u *= 2), (e += l + p >= 1 ? m / u : m *
                            n(2, 1 - p)) * u >= 2 && (l++, u /= 2), l + p >= f
                            ? (c = 0, l = f)
                            : l + p >= 1
                                ? (c = (e * u - 1) * n(2, o), l += p)
                                : (c = e * n(2, p - 1) * n(2, o), l = 0)); o >=
                             8; d[v++] = 255 & c, c /= 256, o -= 8) ;
                        for (l = l << o | c, h += o; h > 0; d[v++] = 255 &
                            l, l /= 256, h -= 8) ;
                        return d[--v] |= 128 * g, d;
                    },
                    unpack: function (e, t) {
                        var i, a = e.length, r = 8 * a - t - 1,
                            o = (1 << r) - 1, s = o >> 1, l = r - 7, c = a - 1,
                            u = e[c--], d = 127 & u;
                        for (u >>= 7; l > 0; d = 256 * d + e[c], c--, l -= 8) ;
                        for (i = d & (1 << -l) - 1, d >>= -l, l += t; l >
                        0; i = 256 * i + e[c], c--, l -= 8) ;
                        if (0 === d) d = 1 - s; else {
                            if (d === o) return i
                                ? NaN
                                : u ? -1 / 0 : 1 / 0;
                            i += n(2, t), d -= s;
                        }
                        return (u ? -1 : 1) * i * n(2, d - t);
                    },
                };
            },
            8361: function (e, t, n) {
                var i = n(7293), a = n(4326), r = ''.split;
                e.exports = i(
                    (function () {
                        return !Object('z').
                            propertyIsEnumerable(0);
                    }))
                    ? function (e) {
                        return 'String' == a(e)
                            ? r.call(e, '')
                            : Object(e);
                    }
                    : Object;
            },
            9587: function (e, t, n) {
                var i = n(111), a = n(7674);
                e.exports = function (e, t, n) {
                    var r, o;
                    return a && 'function' == typeof (r = t.constructor) &&
                    r !== n && i(o = r.prototype) && o !== n.prototype &&
                    a(e, o), e;
                };
            },
            2788: function (e, t, n) {
                var i = n(5465), a = Function.toString;
                'function' != typeof i.inspectSource &&
                (i.inspectSource = function (e) {
                    return a.call(e);
                }), e.exports = i.inspectSource;
            },
            9909: function (e, t, n) {
                var i, a, r, o = n(8536), s = n(7854), l = n(111), c = n(8880),
                    u = n(6656), d = n(5465), h = n(6200), f = n(3501),
                    p = s.WeakMap;
                if (o) {
                    var m = d.state || (d.state = new p), g = m.get, v = m.has,
                        y = m.set;
                    i = function (e, t) {
                        return t.facade = e, y.call(m, e, t), t;
                    }, a = function (e) {
                        return g.call(m, e) || {};
                    }, r = function (e) {return v.call(m, e);};
                } else {
                    var b = h('state');
                    f[b] = !0, i = function (e, t) {
                        return t.facade = e, c(e, b, t), t;
                    }, a = function (e) {
                        return u(e, b)
                            ? e[b]
                            : {};
                    }, r = function (e) {return u(e, b);};
                }
                e.exports = {
                    set: i,
                    get: a,
                    has: r,
                    enforce: function (e) {return r(e) ? a(e) : i(e, {});},
                    getterFor: function (e) {
                        return function (t) {
                            var n;
                            if (!l(t) || (n = a(t)).type !== e) throw TypeError(
                                'Incompatible receiver, ' + e + ' required');
                            return n;
                        };
                    },
                };
            },
            7659: function (e, t, n) {
                var i = n(5112), a = n(7497), r = i('iterator'),
                    o = Array.prototype;
                e.exports = function (e) {
                    return void 0 !== e && (a.Array === e || o[r] === e);
                };
            },
            3157: function (e, t, n) {
                var i = n(4326);
                e.exports = Array.isArray ||
                    function (e) {return 'Array' == i(e);};
            },
            4705: function (e, t, n) {
                var i = n(7293), a = /#|\.prototype\./, r = function (e, t) {
                    var n = s[o(e)];
                    return n == c || n != l &&
                        ('function' == typeof t ? i(t) : !!t);
                }, o = r.normalize = function (e) {
                    return String(e).
                        replace(a, '.').
                        toLowerCase();
                }, s = r.data = {}, l = r.NATIVE = 'N', c = r.POLYFILL = 'P';
                e.exports = r;
            },
            111: function (e) {
                e.exports = function (e) {
                    return 'object' == typeof e ? null !== e : 'function' ==
                        typeof e;
                };
            },
            1913: function (e) {e.exports = !1;},
            7850: function (e, t, n) {
                var i = n(111), a = n(4326), r = n(5112)('match');
                e.exports = function (e) {
                    var t;
                    return i(e) &&
                        (void 0 !== (t = e[r]) ? !!t : 'RegExp' == a(e));
                };
            },
            9212: function (e, t, n) {
                var i = n(9670);
                e.exports = function (e) {
                    var t = e.return;
                    if (void 0 !== t) return i(t.call(e)).value;
                };
            },
            3383: function (e, t, n) {
                'use strict';
                var i, a, r, o = n(7293), s = n(9518), l = n(8880), c = n(6656),
                    u = n(5112), d = n(1913), h = u('iterator'), f = !1;
                [].keys && ('next' in (r = [].keys()) ? (a = s(s(r))) !==
                    Object.prototype && (i = a) : f = !0);
                var p = null == i || o((function () {
                    var e = {};
                    return i[h].call(e) !== e;
                }));
                p && (i = {}), d && !p || c(i, h) || l(i, h,
                    (function () {return this;})), e.exports = {
                    IteratorPrototype: i,
                    BUGGY_SAFARI_ITERATORS: f,
                };
            },
            7497: function (e) {e.exports = {};},
            133: function (e, t, n) {
                var i = n(7293);
                e.exports = !!Object.getOwnPropertySymbols &&
                    !i((function () {return !String(Symbol());}));
            },
            590: function (e, t, n) {
                var i = n(7293), a = n(5112), r = n(1913), o = a('iterator');
                e.exports = !i((function () {
                    var e = new URL('b?a=1&b=2&c=3', 'http://a'),
                        t = e.searchParams, n = '';
                    return e.pathname = 'c%20d', t.forEach(
                        (function (e, i) {t.delete('b'), n += i + e;})), r &&
                    !e.toJSON || !t.sort || 'http://a/c%20d?a=1&c=3' !==
                    e.href || '3' !== t.get('c') || 'a=1' !==
                    String(new URLSearchParams('?a=1')) || !t[o] || 'a' !==
                    new URL('https://a@b').username || 'b' !==
                    new URLSearchParams(new URLSearchParams('a=b')).get('a') ||
                    'xn--e1aybc' !== new URL('http://тест').host ||
                    '#%D0%B1' !== new URL('http://a#б').hash || 'a1c3' !== n ||
                    'x' !== new URL('http://x', void 0).host;
                }));
            },
            8536: function (e, t, n) {
                var i = n(7854), a = n(2788), r = i.WeakMap;
                e.exports = 'function' == typeof r && /native code/.test(a(r));
            },
            1574: function (e, t, n) {
                'use strict';
                var i = n(9781), a = n(7293), r = n(1956), o = n(5181),
                    s = n(5296), l = n(7908), c = n(8361), u = Object.assign,
                    d = Object.defineProperty;
                e.exports = !u || a((function () {
                    if (i && 1 !== u({ b: 1 }, u(d({}, 'a', {
                        enumerable: !0,
                        get: function () {
                            d(this, 'b', { value: 3, enumerable: !1 });
                        },
                    }), { b: 2 })).b) return !0;
                    var e = {}, t = {}, n = Symbol(),
                        a = 'abcdefghijklmnopqrst';
                    return e[n] = 7, a.split('').
                        forEach((function (e) {t[e] = e;})), 7 != u({}, e)[n] ||
                    r(u({}, t)).join('') != a;
                })) ? function (e, t) {
                    for (var n = l(
                        e), a = arguments.length, u = 1, d = o.f, h = s.f; a >
                         u;) for (var f, p = c(arguments[u++]), m = d ? r(p).
                        concat(d(p)) : r(p), g = m.length, v = 0; g >
                                  v;) f = m[v++], i && !h.call(p, f) ||
                    (n[f] = p[f]);
                    return n;
                } : u;
            },
            30: function (e, t, n) {
                var i, a = n(9670), r = n(6048), o = n(748), s = n(3501),
                    l = n(490), c = n(317), u = n(6200), d = u('IE_PROTO'),
                    h = function () {},
                    f = function (e) {
                        return '<script>' + e + '</' + 'script>';
                    },
                    p = function () {
                        try {
                            i = document.domain &&
                                new ActiveXObject('htmlfile');
                        } catch (e) {}
                        var e, t;
                        p = i ? function (e) {
                            e.write(f('')), e.close();
                            var t = e.parentWindow.Object;
                            return e = null, t;
                        }(i) : ((t = c(
                            'iframe')).style.display = 'none', l.appendChild(
                            t), t.src = String(
                            'javascript:'), (e = t.contentWindow.document).open(), e.write(
                            f('document.F=Object')), e.close(), e.F);
                        for (var n = o.length; n--;) delete p.prototype[o[n]];
                        return p();
                    };
                s[d] = !0, e.exports = Object.create || function (e, t) {
                    var n;
                    return null !== e
                        ? (h.prototype = a(
                            e), n = new h, h.prototype = null, n[d] = e)
                        : n = p(), void 0 === t ? n : r(n, t);
                };
            },
            6048: function (e, t, n) {
                var i = n(9781), a = n(3070), r = n(9670), o = n(1956);
                e.exports = i ? Object.defineProperties : function (e, t) {
                    r(e);
                    for (var n, i = o(t), s = i.length, l = 0; s > l;) a.f(e,
                        n = i[l++], t[n]);
                    return e;
                };
            },
            3070: function (e, t, n) {
                var i = n(9781), a = n(4664), r = n(9670), o = n(7593),
                    s = Object.defineProperty;
                t.f = i ? s : function (e, t, n) {
                    if (r(e), t = o(t, !0), r(n), a) try {
                        return s(e, t, n);
                    } catch (e) {}
                    if ('get' in n || 'set' in n) throw TypeError(
                        'Accessors not supported');
                    return 'value' in n && (e[t] = n.value), e;
                };
            },
            1236: function (e, t, n) {
                var i = n(9781), a = n(5296), r = n(9114), o = n(5656),
                    s = n(7593), l = n(6656), c = n(4664),
                    u = Object.getOwnPropertyDescriptor;
                t.f = i ? u : function (e, t) {
                    if (e = o(e), t = s(t, !0), c) try {
                        return u(e, t);
                    } catch (e) {}
                    if (l(e, t)) return r(!a.f.call(e, t), e[t]);
                };
            },
            8006: function (e, t, n) {
                var i = n(6324), a = n(748).concat('length', 'prototype');
                t.f = Object.getOwnPropertyNames ||
                    function (e) {return i(e, a);};
            },
            5181: function (e, t) {t.f = Object.getOwnPropertySymbols;},
            9518: function (e, t, n) {
                var i = n(6656), a = n(7908), r = n(6200), o = n(8544),
                    s = r('IE_PROTO'), l = Object.prototype;
                e.exports = o
                    ? Object.getPrototypeOf
                    : function (e) {
                        return e = a(e), i(e, s)
                            ? e[s]
                            : 'function' == typeof e.constructor && e instanceof
                            e.constructor
                                ? e.constructor.prototype
                                : e instanceof Object ? l : null;
                    };
            },
            6324: function (e, t, n) {
                var i = n(6656), a = n(5656), r = n(1318).indexOf, o = n(3501);
                e.exports = function (e, t) {
                    var n, s = a(e), l = 0, c = [];
                    for (n in s) !i(o, n) && i(s, n) && c.push(n);
                    for (; t.length > l;) i(s, n = t[l++]) &&
                    (~r(c, n) || c.push(n));
                    return c;
                };
            },
            1956: function (e, t, n) {
                var i = n(6324), a = n(748);
                e.exports = Object.keys || function (e) {return i(e, a);};
            },
            5296: function (e, t) {
                'use strict';
                var n = {}.propertyIsEnumerable,
                    i = Object.getOwnPropertyDescriptor,
                    a = i && !n.call({ 1: 2 }, 1);
                t.f = a ? function (e) {
                    var t = i(this, e);
                    return !!t && t.enumerable;
                } : n;
            },
            7674: function (e, t, n) {
                var i = n(9670), a = n(6077);
                e.exports = Object.setPrototypeOf ||
                    ('__proto__' in {} ? function () {
                        var e, t = !1, n = {};
                        try {
                            (e = Object.getOwnPropertyDescriptor(
                                Object.prototype, '__proto__').set).call(n,
                                []), t = n instanceof Array;
                        } catch (e) {}
                        return function (n, r) {
                            return i(n), a(r), t
                                ? e.call(n, r)
                                : n.__proto__ = r, n;
                        };
                    }() : void 0);
            },
            288: function (e, t, n) {
                'use strict';
                var i = n(1694), a = n(648);
                e.exports = i ? {}.toString : function () {
                    return '[object ' + a(this) + ']';
                };
            },
            3887: function (e, t, n) {
                var i = n(5005), a = n(8006), r = n(5181), o = n(9670);
                e.exports = i('Reflect', 'ownKeys') || function (e) {
                    var t = a.f(o(e)), n = r.f;
                    return n ? t.concat(n(e)) : t;
                };
            },
            857: function (e, t, n) {
                var i = n(7854);
                e.exports = i;
            },
            2248: function (e, t, n) {
                var i = n(1320);
                e.exports = function (e, t, n) {
                    for (var a in t) i(e, a, t[a], n);
                    return e;
                };
            },
            1320: function (e, t, n) {
                var i = n(7854), a = n(8880), r = n(6656), o = n(3505),
                    s = n(2788), l = n(9909), c = l.get, u = l.enforce,
                    d = String(String).split('String');
                (e.exports = function (e, t, n, s) {
                    var l, c = !!s && !!s.unsafe, h = !!s && !!s.enumerable,
                        f = !!s && !!s.noTargetGet;
                    'function' == typeof n &&
                    ('string' != typeof t || r(n, 'name') ||
                    a(n, 'name', t), (l = u(n)).source ||
                    (l.source = d.join('string' == typeof t ? t : ''))), e !== i
                        ? (c ? !f && e[t] && (h = !0) : delete e[t], h
                            ? e[t] = n
                            : a(e, t, n))
                        : h ? e[t] = n : o(t, n);
                })(Function.prototype, 'toString', (function () {
                    return 'function' == typeof this && c(this).source ||
                        s(this);
                }));
            },
            7651: function (e, t, n) {
                var i = n(4326), a = n(2261);
                e.exports = function (e, t) {
                    var n = e.exec;
                    if ('function' == typeof n) {
                        var r = n.call(e, t);
                        if ('object' != typeof r) throw TypeError(
                            'RegExp exec method returned something other than an Object or null');
                        return r;
                    }
                    if ('RegExp' !== i(e)) throw TypeError(
                        'RegExp#exec called on incompatible receiver');
                    return a.call(e, t);
                };
            },
            2261: function (e, t, n) {
                'use strict';
                var i, a, r = n(7066), o = n(2999), s = RegExp.prototype.exec,
                    l = String.prototype.replace, c = s,
                    u = (i = /a/, a = /b*/g, s.call(i, 'a'), s.call(a,
                        'a'), 0 !== i.lastIndex || 0 !== a.lastIndex),
                    d = o.UNSUPPORTED_Y || o.BROKEN_CARET,
                    h = void 0 !== /()??/.exec('')[1];
                (u || h || d) && (c = function (e) {
                    var t, n, i, a, o = this, c = d && o.sticky, f = r.call(o),
                        p = o.source, m = 0, g = e;
                    return c && (-1 === (f = f.replace('y', '')).indexOf('g') &&
                    (f += 'g'), g = String(e).slice(o.lastIndex), o.lastIndex >
                    0 && (!o.multiline || o.multiline && '\n' !==
                        e[o.lastIndex - 1]) &&
                    (p = '(?: ' + p + ')', g = ' ' + g, m++), n = new RegExp(
                        '^(?:' + p + ')', f)), h &&
                    (n = new RegExp('^' + p + '$(?!\\s)', f)), u &&
                    (t = o.lastIndex), i = s.call(c ? n : o, g), c ? i
                        ? (i.input = i.input.slice(m), i[0] = i[0].slice(
                            m), i.index = o.lastIndex, o.lastIndex += i[0].length)
                        : o.lastIndex = 0 : u && i && (o.lastIndex = o.global
                        ? i.index + i[0].length
                        : t), h && i && i.length > 1 && l.call(i[0], n,
                        (function () {
                            for (a = 1; a < arguments.length -
                            2; a++) void 0 === arguments[a] && (i[a] = void 0);
                        })), i;
                }), e.exports = c;
            },
            7066: function (e, t, n) {
                'use strict';
                var i = n(9670);
                e.exports = function () {
                    var e = i(this), t = '';
                    return e.global && (t += 'g'), e.ignoreCase &&
                    (t += 'i'), e.multiline && (t += 'm'), e.dotAll &&
                    (t += 's'), e.unicode && (t += 'u'), e.sticky &&
                    (t += 'y'), t;
                };
            },
            2999: function (e, t, n) {
                'use strict';
                var i = n(7293);

                function a (e, t) {return RegExp(e, t);}

                t.UNSUPPORTED_Y = i((function () {
                    var e = a('a', 'y');
                    return e.lastIndex = 2, null != e.exec('abcd');
                })), t.BROKEN_CARET = i((function () {
                    var e = a('^r', 'gy');
                    return e.lastIndex = 2, null != e.exec('str');
                }));
            },
            4488: function (e) {
                e.exports = function (e) {
                    if (null == e) throw TypeError(
                        'Can\'t call method on ' + e);
                    return e;
                };
            },
            3505: function (e, t, n) {
                var i = n(7854), a = n(8880);
                e.exports = function (e, t) {
                    try {
                        a(i, e, t);
                    } catch (n) {i[e] = t;}
                    return t;
                };
            },
            6340: function (e, t, n) {
                'use strict';
                var i = n(5005), a = n(3070), r = n(5112), o = n(9781),
                    s = r('species');
                e.exports = function (e) {
                    var t = i(e), n = a.f;
                    o && t && !t[s] && n(t, s,
                        { configurable: !0, get: function () {return this;} });
                };
            },
            8003: function (e, t, n) {
                var i = n(3070).f, a = n(6656), r = n(5112)('toStringTag');
                e.exports = function (e, t, n) {
                    e && !a(e = n ? e : e.prototype, r) &&
                    i(e, r, { configurable: !0, value: t });
                };
            },
            6200: function (e, t, n) {
                var i = n(2309), a = n(9711), r = i('keys');
                e.exports = function (e) {return r[e] || (r[e] = a(e));};
            },
            5465: function (e, t, n) {
                var i = n(7854), a = n(3505), r = '__core-js_shared__',
                    o = i[r] || a(r, {});
                e.exports = o;
            },
            2309: function (e, t, n) {
                var i = n(1913), a = n(5465);
                (e.exports = function (e, t) {
                    return a[e] || (a[e] = void 0 !== t ? t : {});
                })('versions', []).
                    push({
                        version: '3.9.0',
                        mode: i ? 'pure' : 'global',
                        copyright: '© 2021 Denis Pushkarev (zloirock.ru)',
                    });
            },
            6707: function (e, t, n) {
                var i = n(9670), a = n(3099), r = n(5112)('species');
                e.exports = function (e, t) {
                    var n, o = i(e).constructor;
                    return void 0 === o || null == (n = i(o)[r]) ? t : a(n);
                };
            },
            8710: function (e, t, n) {
                var i = n(9958), a = n(4488), r = function (e) {
                    return function (t, n) {
                        var r, o, s = String(a(t)), l = i(n), c = s.length;
                        return l < 0 || l >= c
                            ? e ? '' : void 0
                            : (r = s.charCodeAt(l)) < 55296 || r > 56319 || l +
                            1 === c || (o = s.charCodeAt(l + 1)) < 56320 || o >
                            57343 ? e ? s.charAt(l) : r : e
                                ? s.slice(l, l + 2)
                                : o - 56320 + (r - 55296 << 10) + 65536;
                    };
                };
                e.exports = { codeAt: r(!1), charAt: r(!0) };
            },
            3197: function (e) {
                'use strict';
                var t = 2147483647, n = /[^\0-\u007E]/,
                    i = /[.\u3002\uFF0E\uFF61]/g,
                    a = 'Overflow: input needs wider integers to process',
                    r = Math.floor, o = String.fromCharCode,
                    s = function (e) {return e + 22 + 75 * (e < 26);},
                    l = function (e, t, n) {
                        var i = 0;
                        for (e = n ? r(e / 700) : e >> 1, e += r(e / t); e >
                        455; i += 36) e = r(e / 35);
                        return r(i + 36 * e / (e + 38));
                    }, c = function (e) {
                        var n, i, c = [], u = (e = function (e) {
                            for (var t = [], n = 0, i = e.length; n < i;) {
                                var a = e.charCodeAt(n++);
                                if (a >= 55296 && a <= 56319 && n < i) {
                                    var r = e.charCodeAt(n++);
                                    56320 == (64512 & r)
                                        ? t.push(
                                        ((1023 & a) << 10) + (1023 & r) + 65536)
                                        : (t.push(a), n--);
                                } else t.push(a);
                            }
                            return t;
                        }(e)).length, d = 128, h = 0, f = 72;
                        for (n = 0; n < e.length; n++) (i = e[n]) < 128 &&
                        c.push(o(i));
                        var p = c.length, m = p;
                        for (p && c.push('-'); m < u;) {
                            var g = t;
                            for (n = 0; n < e.length; n++) (i = e[n]) >= d && i <
                            g && (g = i);
                            var v = m + 1;
                            if (g - d > r((t - h) / v)) throw RangeError(a);
                            for (h += (g - d) * v, d = g, n = 0; n <
                            e.length; n++) {
                                if ((i = e[n]) < d && ++h > t) throw RangeError(a);
                                if (i == d) {
                                    for (var y = h, b = 36; ; b += 36) {
                                        var x = b <= f ? 1 : b >= f + 26 ? 26 : b -
                                            f;
                                        if (y < x) break;
                                        var _ = y - x, w = 36 - x;
                                        c.push(o(s(x + _ % w))), y = r(_ / w);
                                    }
                                    c.push(o(s(y))), f = l(h, v,
                                        m == p), h = 0, ++m;
                                }
                            }
                            ++h, ++d;
                        }
                        return c.join('');
                    };
                e.exports = function (e) {
                    var t, a, r = [],
                        o = e.toLowerCase().replace(i, '.').split('.');
                    for (t = 0; t < o.length; t++) a = o[t], r.push(
                        n.test(a) ? 'xn--' + c(a) : a);
                    return r.join('.');
                };
            },
            6091: function (e, t, n) {
                var i = n(7293), a = n(1361);
                e.exports = function (e) {
                    return i((function () {
                        return !!a[e]() || '​…᠎' != '​…᠎'[e]() || a[e].name !==
                            e;
                    }));
                };
            },
            3111: function (e, t, n) {
                var i = n(4488), a = '[' + n(1361) + ']',
                    r = RegExp('^' + a + a + '*'), o = RegExp(a + a + '*$'),
                    s = function (e) {
                        return function (t) {
                            var n = String(i(t));
                            return 1 & e && (n = n.replace(r, '')), 2 & e &&
                            (n = n.replace(o, '')), n;
                        };
                    };
                e.exports = { start: s(1), end: s(2), trim: s(3) };
            },
            1400: function (e, t, n) {
                var i = n(9958), a = Math.max, r = Math.min;
                e.exports = function (e, t) {
                    var n = i(e);
                    return n < 0 ? a(n + t, 0) : r(n, t);
                };
            },
            7067: function (e, t, n) {
                var i = n(9958), a = n(7466);
                e.exports = function (e) {
                    if (void 0 === e) return 0;
                    var t = i(e), n = a(t);
                    if (t !== n) throw RangeError('Wrong length or index');
                    return n;
                };
            },
            5656: function (e, t, n) {
                var i = n(8361), a = n(4488);
                e.exports = function (e) {return i(a(e));};
            },
            9958: function (e) {
                var t = Math.ceil, n = Math.floor;
                e.exports = function (e) {
                    return isNaN(e = +e) ? 0 : (e > 0
                        ? n
                        : t)(e);
                };
            },
            7466: function (e, t, n) {
                var i = n(9958), a = Math.min;
                e.exports = function (e) {
                    return e > 0 ? a(i(e), 9007199254740991) : 0;
                };
            },
            7908: function (e, t, n) {
                var i = n(4488);
                e.exports = function (e) {return Object(i(e));};
            },
            4590: function (e, t, n) {
                var i = n(3002);
                e.exports = function (e, t) {
                    var n = i(e);
                    if (n % t) throw RangeError('Wrong offset');
                    return n;
                };
            },
            3002: function (e, t, n) {
                var i = n(9958);
                e.exports = function (e) {
                    var t = i(e);
                    if (t < 0) throw RangeError(
                        'The argument can\'t be less than 0');
                    return t;
                };
            },
            7593: function (e, t, n) {
                var i = n(111);
                e.exports = function (e, t) {
                    if (!i(e)) return e;
                    var n, a;
                    if (t && 'function' == typeof (n = e.toString) &&
                        !i(a = n.call(e))) return a;
                    if ('function' == typeof (n = e.valueOf) &&
                        !i(a = n.call(e))) return a;
                    if (!t && 'function' == typeof (n = e.toString) &&
                        !i(a = n.call(e))) return a;
                    throw TypeError('Can\'t convert object to primitive value');
                };
            },
            1694: function (e, t, n) {
                var i = {};
                i[n(5112)('toStringTag')] = 'z', e.exports = '[object z]' ===
                    String(i);
            },
            9843: function (e, t, n) {
                'use strict';
                var i = n(2109), a = n(7854), r = n(9781), o = n(3832),
                    s = n(260), l = n(3331), c = n(5787), u = n(9114),
                    d = n(8880), h = n(7466), f = n(7067), p = n(4590),
                    m = n(7593), g = n(6656), v = n(648), y = n(111), b = n(30),
                    x = n(7674), _ = n(8006).f, w = n(7321),
                    k = n(2092).forEach, M = n(6340), L = n(3070), S = n(1236),
                    T = n(9909), A = n(9587), D = T.get, C = T.set, E = L.f,
                    O = S.f, Y = Math.round, P = a.RangeError,
                    I = l.ArrayBuffer, j = l.DataView,
                    N = s.NATIVE_ARRAY_BUFFER_VIEWS, H = s.TYPED_ARRAY_TAG,
                    F = s.TypedArray, R = s.TypedArrayPrototype,
                    z = s.aTypedArrayConstructor, B = s.isTypedArray,
                    W = 'BYTES_PER_ELEMENT', V = 'Wrong length',
                    q = function (e, t) {
                        for (var n = 0, i = t.length, a = new (z(e))(i); i >
                        n;) a[n] = t[n++];
                        return a;
                    }, U = function (e, t) {
                        E(e, t, { get: function () {return D(this)[t];} });
                    }, X = function (e) {
                        var t;
                        return e instanceof I || 'ArrayBuffer' == (t = v(e)) ||
                            'SharedArrayBuffer' == t;
                    }, $ = function (e, t) {
                        return B(e) && 'symbol' != typeof t && t in e &&
                            String(+t) == String(t);
                    }, G = function (e, t) {
                        return $(e, t = m(t, !0))
                            ? u(2, e[t])
                            : O(e, t);
                    }, Z = function (e, t, n) {
                        return !($(e, t = m(t, !0)) && y(n) && g(n, 'value')) ||
                        g(n, 'get') || g(n, 'set') || n.configurable ||
                        g(n, 'writable') && !n.writable || g(n, 'enumerable') &&
                        !n.enumerable ? E(e, t, n) : (e[t] = n.value, e);
                    };
                r ? (N ||
                (S.f = G, L.f = Z, U(R, 'buffer'), U(R, 'byteOffset'), U(R,
                    'byteLength'), U(R, 'length')), i(
                    { target: 'Object', stat: !0, forced: !N }, {
                        getOwnPropertyDescriptor: G,
                        defineProperty: Z,
                    }), e.exports = function (e, t, n) {
                    var r = e.match(/\d+$/)[0] / 8,
                        s = e + (n ? 'Clamped' : '') + 'Array', l = 'get' + e,
                        u = 'set' + e, m = a[s], g = m, v = g && g.prototype,
                        L = {}, S = function (e, t) {
                            E(e, t, {
                                get: function () {
                                    return function (e, t) {
                                        var n = D(e);
                                        return n.view[l](t * r + n.byteOffset, !0);
                                    }(this, t);
                                },
                                set: function (e) {
                                    return function (e, t, i) {
                                        var a = D(e);
                                        n && (i = (i = Y(i)) < 0 ? 0 : i > 255
                                            ? 255
                                            : 255 & i), a.view[u](
                                            t * r + a.byteOffset, i, !0);
                                    }(this, t, e);
                                },
                                enumerable: !0,
                            });
                        };
                    N ? o && (g = t((function (e, t, n, i) {
                        return c(e, g, s), A(y(t) ? X(t) ? void 0 !== i
                            ? new m(t, p(n, r), i)
                            : void 0 !== n ? new m(t, p(n, r)) : new m(t) : B(t)
                            ? q(g, t)
                            : w.call(g, t) : new m(f(t)), e, g);
                    })), x && x(g, F), k(_(m), (function (e) {
                        e in g || d(g, e, m[e]);
                    })), g.prototype = v) : (g = t((function (e, t, n, i) {
                        c(e, g, s);
                        var a, o, l, u = 0, d = 0;
                        if (y(t)) {
                            if (!X(t)) return B(t)
                                ? q(g, t)
                                : w.call(g, t);
                            a = t, d = p(n, r);
                            var m = t.byteLength;
                            if (void 0 === i) {
                                if (m % r) throw P(V);
                                if ((o = m - d) < 0) throw P(V);
                            } else if ((o = h(i) * r) + d > m) throw P(V);
                            l = o / r;
                        } else l = f(t), a = new I(o = l * r);
                        for (C(e, {
                            buffer: a,
                            byteOffset: d,
                            byteLength: o,
                            length: l,
                            view: new j(a),
                        }); u < l;) S(e, u++);
                    })), x && x(g, F), v = g.prototype = b(
                        R)), v.constructor !== g && d(v, 'constructor', g), H &&
                    d(v, H, s), L[s] = g, i(
                        { global: !0, forced: g != m, sham: !N }, L), W in g ||
                    d(g, W, r), W in v || d(v, W, r), M(s);
                }) : e.exports = function () {};
            },
            3832: function (e, t, n) {
                var i = n(7854), a = n(7293), r = n(7072),
                    o = n(260).NATIVE_ARRAY_BUFFER_VIEWS, s = i.ArrayBuffer,
                    l = i.Int8Array;
                e.exports = !o || !a((function () {l(1);})) ||
                    !a((function () {new l(-1);})) || !r((function (e) {
                        new l, new l(null), new l(1.5), new l(e);
                    }), !0) || a((function () {
                        return 1 !== new l(new s(2), 1, void 0).length;
                    }));
            },
            3074: function (e, t, n) {
                var i = n(260).aTypedArrayConstructor, a = n(6707);
                e.exports = function (e, t) {
                    for (var n = a(e,
                        e.constructor), r = 0, o = t.length, s = new (i(n))(
                        o); o > r;) s[r] = t[r++];
                    return s;
                };
            },
            7321: function (e, t, n) {
                var i = n(7908), a = n(7466), r = n(1246), o = n(7659),
                    s = n(9974), l = n(260).aTypedArrayConstructor;
                e.exports = function (e) {
                    var t, n, c, u, d, h, f = i(e), p = arguments.length,
                        m = p > 1 ? arguments[1] : void 0, g = void 0 !== m,
                        v = r(f);
                    if (null != v && !o(v)) for (h = (d = v.call(
                        f)).next, f = []; !(u = h.call(d)).done;) f.push(
                        u.value);
                    for (g && p > 2 && (m = s(m, arguments[2], 2)), n = a(
                        f.length), c = new (l(this))(n), t = 0; n >
                         t; t++) c[t] = g ? m(f[t], t) : f[t];
                    return c;
                };
            },
            9711: function (e) {
                var t = 0, n = Math.random();
                e.exports = function (e) {
                    return 'Symbol(' + String(void 0 === e ? '' : e) + ')_' +
                        (++t + n).toString(36);
                };
            },
            3307: function (e, t, n) {
                var i = n(133);
                e.exports = i && !Symbol.sham && 'symbol' ==
                    typeof Symbol.iterator;
            },
            5112: function (e, t, n) {
                var i = n(7854), a = n(2309), r = n(6656), o = n(9711),
                    s = n(133), l = n(3307), c = a('wks'), u = i.Symbol,
                    d = l ? u : u && u.withoutSetter || o;
                e.exports = function (e) {
                    return r(c, e) ||
                    (s && r(u, e) ? c[e] = u[e] : c[e] = d(
                        'Symbol.' + e)), c[e];
                };
            },
            1361: function (e) {e.exports = '\t\n\v\f\r                 \u2028\u2029\ufeff';},
            8264: function (e, t, n) {
                'use strict';
                var i = n(2109), a = n(7854), r = n(3331), o = n(6340),
                    s = 'ArrayBuffer', l = r.ArrayBuffer;
                i({ global: !0, forced: a.ArrayBuffer !== l },
                    { ArrayBuffer: l }), o(s);
            },
            2222: function (e, t, n) {
                'use strict';
                var i = n(2109), a = n(7293), r = n(3157), o = n(111),
                    s = n(7908), l = n(7466), c = n(6135), u = n(5417),
                    d = n(1194), h = n(5112), f = n(7392),
                    p = h('isConcatSpreadable'), m = 9007199254740991,
                    g = 'Maximum allowed index exceeded',
                    v = f >= 51 || !a((function () {
                        var e = [];
                        return e[p] = !1, e.concat()[0] !== e;
                    })), y = d('concat'), b = function (e) {
                        if (!o(e)) return !1;
                        var t = e[p];
                        return void 0 !== t ? !!t : r(e);
                    };
                i({ target: 'Array', proto: !0, forced: !v || !y }, {
                    concat: function (e) {
                        var t, n, i, a, r, o = s(this), d = u(o, 0), h = 0;
                        for (t = -1, i = arguments.length; t < i; t++) if (b(
                            r = -1 === t ? o : arguments[t])) {
                            if (h + (a = l(r.length)) > m) throw TypeError(g);
                            for (n = 0; n < a; n++, h++) n in r &&
                            c(d, h, r[n]);
                        } else {
                            if (h >= m) throw TypeError(g);
                            c(d, h++, r);
                        }
                        return d.length = h, d;
                    },
                });
            },
            7327: function (e, t, n) {
                'use strict';
                var i = n(2109), a = n(2092).filter;
                i({ target: 'Array', proto: !0, forced: !n(1194)('filter') }, {
                    filter: function (e) {
                        return a(this, e,
                            arguments.length > 1 ? arguments[1] : void 0);
                    },
                });
            },
            2772: function (e, t, n) {
                'use strict';
                var i = n(2109), a = n(1318).indexOf, r = n(9341),
                    o = [].indexOf, s = !!o && 1 / [1].indexOf(1, -0) < 0,
                    l = r('indexOf');
                i({ target: 'Array', proto: !0, forced: s || !l }, {
                    indexOf: function (e) {
                        return s ? o.apply(this, arguments) || 0 : a(this, e,
                            arguments.length > 1 ? arguments[1] : void 0);
                    },
                });
            },
            6992: function (e, t, n) {
                'use strict';
                var i = n(5656), a = n(1223), r = n(7497), o = n(9909),
                    s = n(654), l = 'Array Iterator', c = o.set,
                    u = o.getterFor(l);
                e.exports = s(Array, 'Array', (function (e, t) {
                    c(this, { type: l, target: i(e), index: 0, kind: t });
                }), (function () {
                    var e = u(this), t = e.target, n = e.kind, i = e.index++;
                    return !t || i >= t.length
                        ? (e.target = void 0, { value: void 0, done: !0 })
                        : 'keys' == n ? { value: i, done: !1 } : 'values' == n
                            ? { value: t[i], done: !1 }
                            : { value: [i, t[i]], done: !1 };
                }), 'values'), r.Arguments = r.Array, a('keys'), a('values'), a(
                    'entries');
            },
            1249: function (e, t, n) {
                'use strict';
                var i = n(2109), a = n(2092).map;
                i({ target: 'Array', proto: !0, forced: !n(1194)('map') }, {
                    map: function (e) {
                        return a(this, e,
                            arguments.length > 1 ? arguments[1] : void 0);
                    },
                });
            },
            7042: function (e, t, n) {
                'use strict';
                var i = n(2109), a = n(111), r = n(3157), o = n(1400),
                    s = n(7466), l = n(5656), c = n(6135), u = n(5112),
                    d = n(1194)('slice'), h = u('species'), f = [].slice,
                    p = Math.max;
                i({ target: 'Array', proto: !0, forced: !d }, {
                    slice: function (e, t) {
                        var n, i, u, d = l(this), m = s(d.length), g = o(e, m),
                            v = o(void 0 === t ? m : t, m);
                        if (r(d) &&
                            ('function' != typeof (n = d.constructor) || n !==
                            Array && !r(n.prototype) ? a(n) && null ===
                                (n = n[h]) && (n = void 0) : n = void 0, n ===
                            Array || void 0 === n)) return f.call(d, g, v);
                        for (i = new (void 0 === n ? Array : n)(
                            p(v - g, 0)), u = 0; g < v; g++, u++) g in d &&
                        c(i, u, d[g]);
                        return i.length = u, i;
                    },
                });
            },
            561: function (e, t, n) {
                'use strict';
                var i = n(2109), a = n(1400), r = n(9958), o = n(7466),
                    s = n(7908), l = n(5417), c = n(6135),
                    u = n(1194)('splice'), d = Math.max, h = Math.min,
                    f = 9007199254740991, p = 'Maximum allowed length exceeded';
                i({ target: 'Array', proto: !0, forced: !u }, {
                    splice: function (e, t) {
                        var n, i, u, m, g, v, y = s(this), b = o(y.length),
                            x = a(e, b), _ = arguments.length;
                        if (0 === _ ? n = i = 0 : 1 === _
                            ? (n = 0, i = b - x)
                            : (n = _ - 2, i = h(d(r(t), 0), b - x)), b + n - i >
                        f) throw TypeError(p);
                        for (u = l(y, i), m = 0; m < i; m++) (g = x + m) in y &&
                        c(u, m, y[g]);
                        if (u.length = i, n < i) {
                            for (m = x; m < b - i; m++) v = m + n, (g = m +
                                i) in y
                                ? y[v] = y[g]
                                : delete y[v];
                            for (m = b; m > b - i + n; m--) delete y[m - 1];
                        } else if (n > i) for (m = b - i; m > x; m--) v = m +
                            n - 1, (g = m + i - 1) in y
                            ? y[v] = y[g]
                            : delete y[v];
                        for (m = 0; m < n; m++) y[m + x] = arguments[m + 2];
                        return y.length = b - i + n, u;
                    },
                });
            },
            8309: function (e, t, n) {
                var i = n(9781), a = n(3070).f, r = Function.prototype,
                    o = r.toString, s = /^\s*function ([^ (]*)/, l = 'name';
                i && !(l in r) && a(r, l, {
                    configurable: !0,
                    get: function () {
                        try {
                            return o.call(this).
                                match(s)[1];
                        } catch (e) {return '';}
                    },
                });
            },
            489: function (e, t, n) {
                var i = n(2109), a = n(7293), r = n(7908), o = n(9518),
                    s = n(8544);
                i({
                    target: 'Object',
                    stat: !0,
                    forced: a((function () {o(1);})),
                    sham: !s,
                }, { getPrototypeOf: function (e) {return o(r(e));} });
            },
            1539: function (e, t, n) {
                var i = n(1694), a = n(1320), r = n(288);
                i || a(Object.prototype, 'toString', r, { unsafe: !0 });
            },
            4916: function (e, t, n) {
                'use strict';
                var i = n(2109), a = n(2261);
                i({ target: 'RegExp', proto: !0, forced: /./.exec !== a },
                    { exec: a });
            },
            9714: function (e, t, n) {
                'use strict';
                var i = n(1320), a = n(9670), r = n(7293), o = n(7066),
                    s = 'toString', l = RegExp.prototype, c = l.toString, u = r(
                    (function () {
                        return '/a/b' != c.call({ source: 'a', flags: 'b' });
                    })), d = c.name != s;
                (u || d) && i(RegExp.prototype, s, (function () {
                    var e = a(this), t = String(e.source), n = e.flags;
                    return '/' + t + '/' + String(
                        void 0 === n && e instanceof RegExp && !('flags' in l)
                            ? o.call(e)
                            : n);
                }), { unsafe: !0 });
            },
            8783: function (e, t, n) {
                'use strict';
                var i = n(8710).charAt, a = n(9909), r = n(654),
                    o = 'String Iterator', s = a.set, l = a.getterFor(o);
                r(String, 'String', (function (e) {
                    s(this, { type: o, string: String(e), index: 0 });
                }), (function () {
                    var e, t = l(this), n = t.string, a = t.index;
                    return a >= n.length ? { value: void 0, done: !0 } : (e = i(
                        n, a), t.index += e.length, { value: e, done: !1 });
                }));
            },
            4723: function (e, t, n) {
                'use strict';
                var i = n(7007), a = n(9670), r = n(7466), o = n(4488),
                    s = n(1530), l = n(7651);
                i('match', 1, (function (e, t, n) {
                    return [
                        function (t) {
                            var n = o(this), i = null == t ? void 0 : t[e];
                            return void 0 !== i ? i.call(t, n) : new RegExp(
                                t)[e](String(n));
                        }, function (e) {
                            var i = n(t, e, this);
                            if (i.done) return i.value;
                            var o = a(e), c = String(this);
                            if (!o.global) return l(o, c);
                            var u = o.unicode;
                            o.lastIndex = 0;
                            for (var d, h = [], f = 0; null !==
                            (d = l(o, c));) {
                                var p = String(d[0]);
                                h[f] = p, '' === p &&
                                (o.lastIndex = s(c, r(o.lastIndex), u)), f++;
                            }
                            return 0 === f ? null : h;
                        }];
                }));
            },
            5306: function (e, t, n) {
                'use strict';
                var i = n(7007), a = n(9670), r = n(7466), o = n(9958),
                    s = n(4488), l = n(1530), c = n(647), u = n(7651),
                    d = Math.max, h = Math.min;
                i('replace', 2, (function (e, t, n, i) {
                    var f = i.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,
                        p = i.REPLACE_KEEPS_$0, m = f ? '$' : '$0';
                    return [
                        function (n, i) {
                            var a = s(this), r = null == n ? void 0 : n[e];
                            return void 0 !== r ? r.call(n, a, i) : t.call(
                                String(a), n, i);
                        },
                        function (e, i) {
                            if (!f && p || 'string' == typeof i && -1 ===
                                i.indexOf(m)) {
                                var s = n(t, e, this, i);
                                if (s.done) return s.value;
                            }
                            var g = a(e), v = String(this),
                                y = 'function' == typeof i;
                            y || (i = String(i));
                            var b = g.global;
                            if (b) {
                                var x = g.unicode;
                                g.lastIndex = 0;
                            }
                            for (var _ = []; ;) {
                                var w = u(g, v);
                                if (null === w) break;
                                if (_.push(w), !b) break;
                                '' === String(w[0]) &&
                                (g.lastIndex = l(v, r(g.lastIndex), x));
                            }
                            for (var k, M = '', L = 0, S = 0; S <
                            _.length; S++) {
                                w = _[S];
                                for (var T = String(w[0]), A = d(
                                    h(o(w.index), v.length),
                                    0), D = [], C = 1; C <
                                     w.length; C++) D.push(
                                    void 0 === (k = w[C]) ? k : String(k));
                                var E = w.groups;
                                if (y) {
                                    var O = [T].concat(D, A, v);
                                    void 0 !== E && O.push(E);
                                    var Y = String(i.apply(void 0, O));
                                } else Y = c(T, v, A, D, E, i);
                                A >= L &&
                                (M += v.slice(L, A) + Y, L = A + T.length);
                            }
                            return M + v.slice(L);
                        }];
                }));
            },
            3123: function (e, t, n) {
                'use strict';
                var i = n(7007), a = n(7850), r = n(9670), o = n(4488),
                    s = n(6707), l = n(1530), c = n(7466), u = n(7651),
                    d = n(2261), h = n(7293), f = [].push, p = Math.min,
                    m = 4294967295,
                    g = !h((function () {return !RegExp(m, 'y');}));
                i('split', 2, (function (e, t, n) {
                    var i;
                    return i = 'c' == 'abbc'.split(/(b)*/)[1] || 4 !=
                    'test'.split(/(?:)/, -1).length || 2 !=
                    'ab'.split(/(?:ab)*/).length || 4 !=
                    '.'.split(/(.?)(.?)/).length || '.'.split(/()()/).length >
                    1 || ''.split(/.?/).length ? function (
                        e, n) {
                        var i = String(o(this)), r = void 0 === n ? m : n >>> 0;
                        if (0 === r) return [];
                        if (void 0 === e) return [i];
                        if (!a(e)) return t.call(i, e, r);
                        for (var s, l, c, u = [], h = (e.ignoreCase
                            ? 'i'
                            : '') + (e.multiline ? 'm' : '') +
                            (e.unicode ? 'u' : '') +
                            (e.sticky ? 'y' : ''), p = 0, g = new RegExp(
                            e.source, h + 'g'); (s = d.call(g, i)) &&
                             !((l = g.lastIndex) > p &&
                                 (u.push(i.slice(p, s.index)), s.length > 1 &&
                                 s.index < i.length && f.apply(u, s.slice(
                                     1)), c = s[0].length, p = l, u.length >=
                                 r));) g.lastIndex === s.index && g.lastIndex++;
                        return p === i.length
                            ? !c && g.test('') || u.push('')
                            : u.push(i.slice(p)), u.length > r
                            ? u.slice(0, r)
                            : u;
                    } : '0'.split(void 0, 0).length ? function (
                        e, n) {
                        return void 0 === e && 0 === n ? [] : t.call(this, e,
                            n);
                    } : t, [
                        function (t, n) {
                            var a = o(this), r = null == t ? void 0 : t[e];
                            return void 0 !== r ? r.call(t, a, n) : i.call(
                                String(a), t, n);
                        }, function (e, a) {
                            var o = n(i, e, this, a, i !== t);
                            if (o.done) return o.value;
                            var d = r(e), h = String(this), f = s(d, RegExp),
                                v = d.unicode, y = (d.ignoreCase ? 'i' : '') +
                                (d.multiline ? 'm' : '') +
                                (d.unicode ? 'u' : '') + (g ? 'y' : 'g'),
                                b = new f(g ? d : '^(?:' + d.source + ')', y),
                                x = void 0 === a ? m : a >>> 0;
                            if (0 === x) return [];
                            if (0 === h.length) return null === u(b, h)
                                ? [h]
                                : [];
                            for (var _ = 0, w = 0, k = []; w < h.length;) {
                                b.lastIndex = g ? w : 0;
                                var M, L = u(b, g ? h : h.slice(w));
                                if (null === L ||
                                    (M = p(c(b.lastIndex + (g ? 0 : w)),
                                        h.length)) === _) w = l(h, w, v); else {
                                    if (k.push(h.slice(_, w)), k.length ===
                                    x) return k;
                                    for (var S = 1; S <= L.length -
                                    1; S++) if (k.push(L[S]), k.length ===
                                    x) return k;
                                    w = _ = M;
                                }
                            }
                            return k.push(h.slice(_)), k;
                        }];
                }), !g);
            },
            3210: function (e, t, n) {
                'use strict';
                var i = n(2109), a = n(3111).trim;
                i({ target: 'String', proto: !0, forced: n(6091)('trim') },
                    { trim: function () {return a(this);} });
            },
            2990: function (e, t, n) {
                'use strict';
                var i = n(260), a = n(1048), r = i.aTypedArray;
                (0, i.exportTypedArrayMethod)('copyWithin', (function (e, t) {
                    return a.call(r(this), e, t,
                        arguments.length > 2 ? arguments[2] : void 0);
                }));
            },
            8927: function (e, t, n) {
                'use strict';
                var i = n(260), a = n(2092).every, r = i.aTypedArray;
                (0, i.exportTypedArrayMethod)('every', (function (e) {
                    return a(r(this), e,
                        arguments.length > 1 ? arguments[1] : void 0);
                }));
            },
            3105: function (e, t, n) {
                'use strict';
                var i = n(260), a = n(1285), r = i.aTypedArray;
                (0, i.exportTypedArrayMethod)('fill',
                    (function (e) {return a.apply(r(this), arguments);}));
            },
            5035: function (e, t, n) {
                'use strict';
                var i = n(260), a = n(2092).filter, r = n(3074),
                    o = i.aTypedArray;
                (0, i.exportTypedArrayMethod)('filter', (function (e) {
                    var t = a(o(this), e,
                        arguments.length > 1 ? arguments[1] : void 0);
                    return r(this, t);
                }));
            },
            7174: function (e, t, n) {
                'use strict';
                var i = n(260), a = n(2092).findIndex, r = i.aTypedArray;
                (0, i.exportTypedArrayMethod)('findIndex', (function (e) {
                    return a(r(this), e,
                        arguments.length > 1 ? arguments[1] : void 0);
                }));
            },
            4345: function (e, t, n) {
                'use strict';
                var i = n(260), a = n(2092).find, r = i.aTypedArray;
                (0, i.exportTypedArrayMethod)('find', (function (e) {
                    return a(r(this), e,
                        arguments.length > 1 ? arguments[1] : void 0);
                }));
            },
            2846: function (e, t, n) {
                'use strict';
                var i = n(260), a = n(2092).forEach, r = i.aTypedArray;
                (0, i.exportTypedArrayMethod)('forEach', (function (e) {
                    a(r(this), e, arguments.length > 1 ? arguments[1] : void 0);
                }));
            },
            4731: function (e, t, n) {
                'use strict';
                var i = n(260), a = n(1318).includes, r = i.aTypedArray;
                (0, i.exportTypedArrayMethod)('includes', (function (e) {
                    return a(r(this), e,
                        arguments.length > 1 ? arguments[1] : void 0);
                }));
            },
            7209: function (e, t, n) {
                'use strict';
                var i = n(260), a = n(1318).indexOf, r = i.aTypedArray;
                (0, i.exportTypedArrayMethod)('indexOf', (function (e) {
                    return a(r(this), e,
                        arguments.length > 1 ? arguments[1] : void 0);
                }));
            },
            6319: function (e, t, n) {
                'use strict';
                var i = n(7854), a = n(260), r = n(6992),
                    o = n(5112)('iterator'), s = i.Uint8Array, l = r.values,
                    c = r.keys, u = r.entries, d = a.aTypedArray,
                    h = a.exportTypedArrayMethod, f = s && s.prototype[o],
                    p = !!f && ('values' == f.name || null == f.name),
                    m = function () {return l.call(d(this));};
                h('entries', (function () {return u.call(d(this));})), h('keys',
                    (function () {return c.call(d(this));})), h('values', m,
                    !p), h(o, m, !p);
            },
            8867: function (e, t, n) {
                'use strict';
                var i = n(260), a = i.aTypedArray, r = i.exportTypedArrayMethod,
                    o = [].join;
                r('join', (function (e) {return o.apply(a(this), arguments);}));
            },
            7789: function (e, t, n) {
                'use strict';
                var i = n(260), a = n(6583), r = i.aTypedArray;
                (0, i.exportTypedArrayMethod)('lastIndexOf',
                    (function (e) {return a.apply(r(this), arguments);}));
            },
            3739: function (e, t, n) {
                'use strict';
                var i = n(260), a = n(2092).map, r = n(6707), o = i.aTypedArray,
                    s = i.aTypedArrayConstructor;
                (0, i.exportTypedArrayMethod)('map', (function (e) {
                    return a(o(this), e,
                        arguments.length > 1 ? arguments[1] : void 0,
                        (function (e, t) {
                            return new (s(r(e, e.constructor)))(t);
                        }));
                }));
            },
            4483: function (e, t, n) {
                'use strict';
                var i = n(260), a = n(3671).right, r = i.aTypedArray;
                (0, i.exportTypedArrayMethod)('reduceRight', (function (e) {
                    return a(r(this), e, arguments.length,
                        arguments.length > 1 ? arguments[1] : void 0);
                }));
            },
            9368: function (e, t, n) {
                'use strict';
                var i = n(260), a = n(3671).left, r = i.aTypedArray;
                (0, i.exportTypedArrayMethod)('reduce', (function (e) {
                    return a(r(this), e, arguments.length,
                        arguments.length > 1 ? arguments[1] : void 0);
                }));
            },
            2056: function (e, t, n) {
                'use strict';
                var i = n(260), a = i.aTypedArray, r = i.exportTypedArrayMethod,
                    o = Math.floor;
                r('reverse', (function () {
                    for (var e, t = this, n = a(t).length, i = o(
                        n / 2), r = 0; r <
                         i;) e = t[r], t[r++] = t[--n], t[n] = e;
                    return t;
                }));
            },
            3462: function (e, t, n) {
                'use strict';
                var i = n(260), a = n(7466), r = n(4590), o = n(7908),
                    s = n(7293), l = i.aTypedArray;
                (0, i.exportTypedArrayMethod)('set', (function (e) {
                    l(this);
                    var t = r(arguments.length > 1 ? arguments[1] : void 0, 1),
                        n = this.length, i = o(e), s = a(i.length), c = 0;
                    if (s + t > n) throw RangeError('Wrong length');
                    for (; c < s;) this[t + c] = i[c++];
                }), s((function () {new Int8Array(1).set({});})));
            },
            678: function (e, t, n) {
                'use strict';
                var i = n(260), a = n(6707), r = n(7293), o = i.aTypedArray,
                    s = i.aTypedArrayConstructor, l = i.exportTypedArrayMethod,
                    c = [].slice;
                l('slice', (function (e, t) {
                    for (var n = c.call(o(this), e, t), i = a(this,
                        this.constructor), r = 0, l = n.length, u = new (s(i))(
                        l); l > r;) u[r] = n[r++];
                    return u;
                }), r((function () {new Int8Array(1).slice();})));
            },
            7462: function (e, t, n) {
                'use strict';
                var i = n(260), a = n(2092).some, r = i.aTypedArray;
                (0, i.exportTypedArrayMethod)('some', (function (e) {
                    return a(r(this), e,
                        arguments.length > 1 ? arguments[1] : void 0);
                }));
            },
            3824: function (e, t, n) {
                'use strict';
                var i = n(260), a = i.aTypedArray, r = i.exportTypedArrayMethod,
                    o = [].sort;
                r('sort', (function (e) {return o.call(a(this), e);}));
            },
            5021: function (e, t, n) {
                'use strict';
                var i = n(260), a = n(7466), r = n(1400), o = n(6707),
                    s = i.aTypedArray;
                (0, i.exportTypedArrayMethod)('subarray', (function (e, t) {
                    var n = s(this), i = n.length, l = r(e, i);
                    return new (o(n, n.constructor))(n.buffer,
                        n.byteOffset + l * n.BYTES_PER_ELEMENT,
                        a((void 0 === t ? i : r(t, i)) - l));
                }));
            },
            2974: function (e, t, n) {
                'use strict';
                var i = n(7854), a = n(260), r = n(7293), o = i.Int8Array,
                    s = a.aTypedArray, l = a.exportTypedArrayMethod,
                    c = [].toLocaleString, u = [].slice,
                    d = !!o && r((function () {c.call(new o(1));}));
                l('toLocaleString', (function () {
                    return c.apply(d ? u.call(s(this)) : s(this), arguments);
                }), r((function () {
                        return [1, 2].toLocaleString() !=
                            new o([1, 2]).toLocaleString();
                    })) ||
                    !r((function () {
                        o.prototype.toLocaleString.call([1, 2]);
                    })));
            },
            5016: function (e, t, n) {
                'use strict';
                var i = n(260).exportTypedArrayMethod, a = n(7293),
                    r = n(7854).Uint8Array, o = r && r.prototype || {},
                    s = [].toString, l = [].join;
                a((function () {s.call({});})) &&
                (s = function () {return l.call(this);});
                var c = o.toString != s;
                i('toString', s, c);
            },
            2472: function (e, t, n) {
                n(9843)('Uint8', (function (e) {
                    return function (t, n, i) {
                        return e(this, t, n, i);
                    };
                }));
            },
            4747: function (e, t, n) {
                var i = n(7854), a = n(8324), r = n(8533), o = n(8880);
                for (var s in a) {
                    var l = i[s], c = l && l.prototype;
                    if (c && c.forEach !== r) try {
                        o(c, 'forEach', r);
                    } catch (e) {c.forEach = r;}
                }
            },
            3948: function (e, t, n) {
                var i = n(7854), a = n(8324), r = n(6992), o = n(8880),
                    s = n(5112), l = s('iterator'), c = s('toStringTag'),
                    u = r.values;
                for (var d in a) {
                    var h = i[d], f = h && h.prototype;
                    if (f) {
                        if (f[l] !== u) try {
                            o(f, l, u);
                        } catch (e) {f[l] = u;}
                        if (f[c] ||
                        o(f, c, d), a[d]) for (var p in r) if (f[p] !==
                            r[p]) try {o(f, p, r[p]);} catch (e) {f[p] = r[p];}
                    }
                }
            },
            1637: function (e, t, n) {
                'use strict';
                n(6992);
                var i = n(2109), a = n(5005), r = n(590), o = n(1320),
                    s = n(2248), l = n(8003), c = n(4994), u = n(9909),
                    d = n(5787), h = n(6656), f = n(9974), p = n(648),
                    m = n(9670), g = n(111), v = n(30), y = n(9114),
                    b = n(8554), x = n(1246), _ = n(5112), w = a('fetch'),
                    k = a('Headers'), M = _('iterator'), L = 'URLSearchParams',
                    S = 'URLSearchParamsIterator', T = u.set,
                    A = u.getterFor(L), D = u.getterFor(S), C = /\+/g,
                    E = Array(4), O = function (e) {
                        return E[e - 1] ||
                            (E[e - 1] = RegExp('((?:%[\\da-f]{2}){' + e + '})',
                                'gi'));
                    }, Y = function (e) {
                        try {
                            return decodeURIComponent(e);
                        } catch (t) {return e;}
                    }, P = function (e) {
                        var t = e.replace(C, ' '), n = 4;
                        try {
                            return decodeURIComponent(t);
                        } catch (e) {
                            for (; n;) t = t.replace(O(n--), Y);
                            return t;
                        }
                    }, I = /[!'()~]|%20/g, j = {
                        '!': '%21',
                        '\'': '%27',
                        '(': '%28',
                        ')': '%29',
                        '~': '%7E',
                        '%20': '+',
                    }, N = function (e) {return j[e];}, H = function (e) {
                        return encodeURIComponent(e).
                            replace(I, N);
                    }, F = function (e, t) {
                        if (t) for (var n, i, a = t.split('&'), r = 0; r <
                        a.length;) (n = a[r++]).length && (i = n.split('='), e.push(
                            { key: P(i.shift()), value: P(i.join('=')) }));
                    }, R = function (e) {
                        this.entries.length = 0, F(this.entries, e);
                    }, z = function (e, t) {
                        if (e < t) throw TypeError('Not enough arguments');
                    }, B = c((function (e, t) {
                        T(this, { type: S, iterator: b(A(e).entries), kind: t });
                    }), 'Iterator', (function () {
                        var e = D(this), t = e.kind, n = e.iterator.next(),
                            i = n.value;
                        return n.done ||
                        (n.value = 'keys' === t ? i.key : 'values' === t
                            ? i.value
                            : [i.key, i.value]), n;
                    })), W = function () {
                        d(this, W, L);
                        var e, t, n, i, a, r, o, s, l,
                            c = arguments.length > 0 ? arguments[0] : void 0,
                            u = this, f = [];
                        if (T(u, {
                            type: L,
                            entries: f,
                            updateURL: function () {},
                            updateSearchParams: R,
                        }), void 0 !== c) if (g(c)) if ('function' ==
                            typeof (e = x(c))) for (n = (t = e.call(
                            c)).next; !(i = n.call(t)).done;) {
                            if ((o = (r = (a = b(m(i.value))).next).call(a)).done ||
                                (s = r.call(a)).done ||
                                !r.call(a).done) throw TypeError(
                                'Expected sequence with length 2');
                            f.push({ key: o.value + '', value: s.value + '' });
                        } else for (l in c) h(c, l) &&
                        f.push({ key: l, value: c[l] + '' }); else F(f,
                            'string' == typeof c ? '?' === c.charAt(0)
                                ? c.slice(1)
                                : c : c + '');
                    }, V = W.prototype;
                s(V, {
                    append: function (e, t) {
                        z(arguments.length, 2);
                        var n = A(this);
                        n.entries.push(
                            { key: e + '', value: t + '' }), n.updateURL();
                    },
                    delete: function (e) {
                        z(arguments.length, 1);
                        for (var t = A(this), n = t.entries, i = e +
                            '', a = 0; a < n.length;) n[a].key === i ? n.splice(
                            a, 1) : a++;
                        t.updateURL();
                    },
                    get: function (e) {
                        z(arguments.length, 1);
                        for (var t = A(this).entries, n = e + '', i = 0; i <
                        t.length; i++) if (t[i].key === n) return t[i].value;
                        return null;
                    },
                    getAll: function (e) {
                        z(arguments.length, 1);
                        for (var t = A(this).entries, n = e +
                            '', i = [], a = 0; a < t.length; a++) t[a].key ===
                        n && i.push(t[a].value);
                        return i;
                    },
                    has: function (e) {
                        z(arguments.length, 1);
                        for (var t = A(this).entries, n = e + '', i = 0; i <
                        t.length;) if (t[i++].key === n) return !0;
                        return !1;
                    },
                    set: function (e, t) {
                        z(arguments.length, 1);
                        for (var n, i = A(this), a = i.entries, r = !1, o = e +
                            '', s = t + '', l = 0; l <
                             a.length; l++) (n = a[l]).key === o &&
                        (r ? a.splice(l--, 1) : (r = !0, n.value = s));
                        r || a.push({ key: o, value: s }), i.updateURL();
                    },
                    sort: function () {
                        var e, t, n, i = A(this), a = i.entries, r = a.slice();
                        for (a.length = 0, n = 0; n < r.length; n++) {
                            for (e = r[n], t = 0; t < n; t++) if (a[t].key >
                                e.key) {
                                a.splice(t, 0, e);
                                break;
                            }
                            t === n && a.push(e);
                        }
                        i.updateURL();
                    },
                    forEach: function (e) {
                        for (var t, n = A(this).entries, i = f(e,
                            arguments.length > 1 ? arguments[1] : void 0,
                            3), a = 0; a < n.length;) i((t = n[a++]).value,
                            t.key, this);
                    },
                    keys: function () {return new B(this, 'keys');},
                    values: function () {return new B(this, 'values');},
                    entries: function () {return new B(this, 'entries');},
                }, { enumerable: !0 }), o(V, M, V.entries), o(V, 'toString',
                    (function () {
                        for (var e, t = A(this).entries, n = [], i = 0; i <
                        t.length;) e = t[i++], n.push(
                            H(e.key) + '=' + H(e.value));
                        return n.join('&');
                    }), { enumerable: !0 }), l(W, L), i(
                    { global: !0, forced: !r }, { URLSearchParams: W }), r ||
                'function' != typeof w || 'function' != typeof k ||
                i({ global: !0, enumerable: !0, forced: !0 }, {
                    fetch: function (e) {
                        var t, n, i, a = [e];
                        return arguments.length > 1 && (g(t = arguments[1]) &&
                        (n = t.body, p(n) === L &&
                        ((i = t.headers ? new k(t.headers) : new k).has(
                            'content-type') || i.set('content-type',
                            'application/x-www-form-urlencoded;charset=UTF-8'), t = v(
                            t, {
                                body: y(0, String(n)),
                                headers: y(0, i),
                            }))), a.push(t)), w.apply(this, a);
                    },
                }), e.exports = { URLSearchParams: W, getState: A };
            },
            285: function (e, t, n) {
                'use strict';
                n(8783);
                var i, a = n(2109), r = n(9781), o = n(590), s = n(7854),
                    l = n(6048), c = n(1320), u = n(5787), d = n(6656),
                    h = n(1574), f = n(8457), p = n(8710).codeAt, m = n(3197),
                    g = n(8003), v = n(1637), y = n(9909), b = s.URL,
                    x = v.URLSearchParams, _ = v.getState, w = y.set,
                    k = y.getterFor('URL'), M = Math.floor, L = Math.pow,
                    S = 'Invalid scheme', T = 'Invalid host',
                    A = 'Invalid port', D = /[A-Za-z]/, C = /[\d+-.A-Za-z]/,
                    E = /\d/, O = /^(0x|0X)/, Y = /^[0-7]+$/, P = /^\d+$/,
                    I = /^[\dA-Fa-f]+$/,
                    j = /[\u0000\t\u000A\u000D #%/:?@[\\]]/,
                    N = /[\u0000\t\u000A\u000D #/:?@[\\]]/,
                    H = /^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g,
                    F = /[\t\u000A\u000D]/g, R = function (e, t) {
                        var n, i, a;
                        if ('[' == t.charAt(0)) {
                            if (']' != t.charAt(t.length - 1)) return T;
                            if (!(n = B(t.slice(1, -1)))) return T;
                            e.host = n;
                        } else if (Z(e)) {
                            if (t = m(t), j.test(t)) return T;
                            if (null === (n = z(t))) return T;
                            e.host = n;
                        } else {
                            if (N.test(t)) return T;
                            for (n = '', i = f(t), a = 0; a < i.length; a++) n += $(
                                i[a], V);
                            e.host = n;
                        }
                    }, z = function (e) {
                        var t, n, i, a, r, o, s, l = e.split('.');
                        if (l.length && '' == l[l.length - 1] &&
                        l.pop(), (t = l.length) > 4) return e;
                        for (n = [], i = 0; i < t; i++) {
                            if ('' == (a = l[i])) return e;
                            if (r = 10, a.length > 1 && '0' == a.charAt(0) &&
                            (r = O.test(a) ? 16 : 8, a = a.slice(
                                8 == r ? 1 : 2)), '' === a) o = 0; else {
                                if (!(10 == r ? P : 8 == r ? Y : I).test(
                                    a)) return e;
                                o = parseInt(a, r);
                            }
                            n.push(o);
                        }
                        for (i = 0; i < t; i++) if (o = n[i], i == t - 1) {
                            if (o >= L(256, 5 - t)) return null;
                        } else if (o > 255) return null;
                        for (s = n.pop(), i = 0; i < n.length; i++) s += n[i] *
                            L(256, 3 - i);
                        return s;
                    }, B = function (e) {
                        var t, n, i, a, r, o, s, l = [0, 0, 0, 0, 0, 0, 0, 0],
                            c = 0, u = null, d = 0,
                            h = function () {return e.charAt(d);};
                        if (':' == h()) {
                            if (':' != e.charAt(1)) return;
                            d += 2, u = ++c;
                        }
                        for (; h();) {
                            if (8 == c) return;
                            if (':' != h()) {
                                for (t = n = 0; n < 4 && I.test(h());) t = 16 * t +
                                    parseInt(h(), 16), d++, n++;
                                if ('.' == h()) {
                                    if (0 == n) return;
                                    if (d -= n, c > 6) return;
                                    for (i = 0; h();) {
                                        if (a = null, i > 0) {
                                            if (!('.' == h() && i < 4)) return;
                                            d++;
                                        }
                                        if (!E.test(h())) return;
                                        for (; E.test(h());) {
                                            if (r = parseInt(h(), 10), null ===
                                            a) a = r; else {
                                                if (0 == a) return;
                                                a = 10 * a + r;
                                            }
                                            if (a > 255) return;
                                            d++;
                                        }
                                        l[c] = 256 * l[c] + a, 2 != ++i && 4 != i ||
                                        c++;
                                    }
                                    if (4 != i) return;
                                    break;
                                }
                                if (':' ==
                                    h()) {if (d++, !h()) return;} else if (h()) return;
                                l[c++] = t;
                            } else {
                                if (null !== u) return;
                                d++, u = ++c;
                            }
                        }
                        if (null !== u) for (o = c - u, c = 7; 0 != c && o >
                        0;) s = l[c], l[c--] = l[u + o - 1], l[u +
                        --o] = s; else if (8 != c) return;
                        return l;
                    }, W = function (e) {
                        var t, n, i, a;
                        if ('number' == typeof e) {
                            for (t = [], n = 0; n < 4; n++) t.unshift(
                                e % 256), e = M(e / 256);
                            return t.join('.');
                        }
                        if ('object' == typeof e) {
                            for (t = '', i = function (e) {
                                for (var t = null, n = 1, i = null, a = 0, r = 0; r <
                                8; r++) 0 !== e[r] ? (a > n &&
                                (t = i, n = a), i = null, a = 0) : (null === i &&
                                (i = r), ++a);
                                return a > n && (t = i, n = a), t;
                            }(e), n = 0; n < 8; n++) a && 0 === e[n] ||
                            (a && (a = !1), i === n
                                ? (t += n ? ':' : '::', a = !0)
                                : (t += e[n].toString(16), n < 7 && (t += ':')));
                            return '[' + t + ']';
                        }
                        return e;
                    }, V = {},
                    q = h({}, V, { ' ': 1, '"': 1, '<': 1, '>': 1, '`': 1 }),
                    U = h({}, q, { '#': 1, '?': 1, '{': 1, '}': 1 }),
                    X = h({}, U, {
                        '/': 1,
                        ':': 1,
                        ';': 1,
                        '=': 1,
                        '@': 1,
                        '[': 1,
                        '\\': 1,
                        ']': 1,
                        '^': 1,
                        '|': 1,
                    }), $ = function (e, t) {
                        var n = p(e, 0);
                        return n > 32 && n < 127 && !d(t, e)
                            ? e
                            : encodeURIComponent(e);
                    }, G = {
                        ftp: 21,
                        file: null,
                        http: 80,
                        https: 443,
                        ws: 80,
                        wss: 443,
                    }, Z = function (e) {return d(G, e.scheme);}, K = function (e) {
                        return '' != e.username || '' != e.password;
                    }, J = function (e) {
                        return !e.host || e.cannotBeABaseURL || 'file' == e.scheme;
                    }, Q = function (e, t) {
                        var n;
                        return 2 == e.length && D.test(e.charAt(0)) &&
                            (':' == (n = e.charAt(1)) || !t && '|' == n);
                    }, ee = function (e) {
                        var t;
                        return e.length > 1 && Q(e.slice(0, 2)) &&
                            (2 == e.length || '/' === (t = e.charAt(2)) || '\\' ===
                                t || '?' === t || '#' === t);
                    }, te = function (e) {
                        var t = e.path, n = t.length;
                        !n || 'file' == e.scheme && 1 == n && Q(t[0], !0) ||
                        t.pop();
                    }, ne = function (e) {
                        return '.' === e || '%2e' === e.toLowerCase();
                    }, ie = {}, ae = {}, re = {}, oe = {}, se = {}, le = {},
                    ce = {}, ue = {}, de = {}, he = {}, fe = {}, pe = {},
                    me = {}, ge = {}, ve = {}, ye = {}, be = {}, xe = {},
                    _e = {}, we = {}, ke = {}, Me = function (e, t, n, a) {
                        var r, o, s, l, c, u = n || ie, h = 0, p = '', m = !1,
                            g = !1, v = !1;
                        for (n ||
                             (e.scheme = '', e.username = '', e.password = '', e.host = null, e.port = null, e.path = [], e.query = null, e.fragment = null, e.cannotBeABaseURL = !1, t = t.replace(
                                 H, '')), t = t.replace(F, ''), r = f(t); h <=
                             r.length;) {
                            switch (o = r[h], u) {
                                case ie:
                                    if (!o || !D.test(o)) {
                                        if (n) return S;
                                        u = re;
                                        continue;
                                    }
                                    p += o.toLowerCase(), u = ae;
                                    break;
                                case ae:
                                    if (o &&
                                        (C.test(o) || '+' == o || '-' == o || '.' ==
                                            o)) p += o.toLowerCase(); else {
                                        if (':' != o) {
                                            if (n) return S;
                                            p = '', u = re, h = 0;
                                            continue;
                                        }
                                        if (n && (Z(e) != d(G, p) || 'file' == p &&
                                            (K(e) || null !== e.port) || 'file' ==
                                            e.scheme && !e.host)) return;
                                        if (e.scheme = p, n) return void (Z(e) &&
                                            G[e.scheme] == e.port &&
                                            (e.port = null));
                                        p = '', 'file' == e.scheme ? u = ge : Z(
                                            e) && a && a.scheme == e.scheme
                                            ? u = oe
                                            : Z(e) ? u = ue : '/' == r[h + 1]
                                                ? (u = se, h++)
                                                : (e.cannotBeABaseURL = !0, e.path.push(
                                                    ''), u = _e);
                                    }
                                    break;
                                case re:
                                    if (!a || a.cannotBeABaseURL && '#' !=
                                        o) return S;
                                    if (a.cannotBeABaseURL && '#' == o) {
                                        e.scheme = a.scheme, e.path = a.path.slice(), e.query = a.query, e.fragment = '', e.cannotBeABaseURL = !0, u = ke;
                                        break;
                                    }
                                    u = 'file' == a.scheme ? ge : le;
                                    continue;
                                case oe:
                                    if ('/' != o || '/' != r[h + 1]) {
                                        u = le;
                                        continue;
                                    }
                                    u = de, h++;
                                    break;
                                case se:
                                    if ('/' == o) {
                                        u = he;
                                        break;
                                    }
                                    u = xe;
                                    continue;
                                case le:
                                    if (e.scheme = a.scheme, o ==
                                    i) e.username = a.username, e.password = a.password, e.host = a.host, e.port = a.port, e.path = a.path.slice(), e.query = a.query; else if ('/' ==
                                        o || '\\' == o &&
                                        Z(e)) u = ce; else if ('?' ==
                                        o) e.username = a.username, e.password = a.password, e.host = a.host, e.port = a.port, e.path = a.path.slice(), e.query = '', u = we; else {
                                        if ('#' != o) {
                                            e.username = a.username, e.password = a.password, e.host = a.host, e.port = a.port, e.path = a.path.slice(), e.path.pop(), u = xe;
                                            continue;
                                        }
                                        e.username = a.username, e.password = a.password, e.host = a.host, e.port = a.port, e.path = a.path.slice(), e.query = a.query, e.fragment = '', u = ke;
                                    }
                                    break;
                                case ce:
                                    if (!Z(e) || '/' != o && '\\' != o) {
                                        if ('/' != o) {
                                            e.username = a.username, e.password = a.password, e.host = a.host, e.port = a.port, u = xe;
                                            continue;
                                        }
                                        u = he;
                                    } else u = de;
                                    break;
                                case ue:
                                    if (u = de, '/' != o || '/' !=
                                    p.charAt(h + 1)) continue;
                                    h++;
                                    break;
                                case de:
                                    if ('/' != o && '\\' != o) {
                                        u = he;
                                        continue;
                                    }
                                    break;
                                case he:
                                    if ('@' == o) {
                                        m && (p = '%40' + p), m = !0, s = f(p);
                                        for (var y = 0; y < s.length; y++) {
                                            var b = s[y];
                                            if (':' != b || v) {
                                                var x = $(b, X);
                                                v
                                                    ? e.password += x
                                                    : e.username += x;
                                            } else v = !0;
                                        }
                                        p = '';
                                    } else if (o == i || '/' == o || '?' == o ||
                                        '#' == o || '\\' == o && Z(e)) {
                                        if (m && '' ==
                                            p) return 'Invalid authority';
                                        h -= f(p).length + 1, p = '', u = fe;
                                    } else p += o;
                                    break;
                                case fe:
                                case pe:
                                    if (n && 'file' == e.scheme) {
                                        u = ye;
                                        continue;
                                    }
                                    if (':' != o || g) {
                                        if (o == i || '/' == o || '?' == o || '#' ==
                                            o || '\\' == o && Z(e)) {
                                            if (Z(e) && '' == p) return T;
                                            if (n && '' == p &&
                                                (K(e) || null !== e.port)) return;
                                            if (l = R(e, p)) return l;
                                            if (p = '', u = be, n) return;
                                            continue;
                                        }
                                        '[' == o ? g = !0 : ']' == o &&
                                            (g = !1), p += o;
                                    } else {
                                        if ('' == p) return T;
                                        if (l = R(e, p)) return l;
                                        if (p = '', u = me, n == pe) return;
                                    }
                                    break;
                                case me:
                                    if (!E.test(o)) {
                                        if (o == i || '/' == o || '?' == o || '#' ==
                                            o || '\\' == o && Z(e) || n) {
                                            if ('' != p) {
                                                var _ = parseInt(p, 10);
                                                if (_ > 65535) return A;
                                                e.port = Z(e) && _ === G[e.scheme]
                                                    ? null
                                                    : _, p = '';
                                            }
                                            if (n) return;
                                            u = be;
                                            continue;
                                        }
                                        return A;
                                    }
                                    p += o;
                                    break;
                                case ge:
                                    if (e.scheme = 'file', '/' == o || '\\' ==
                                    o) u = ve; else {
                                        if (!a || 'file' != a.scheme) {
                                            u = xe;
                                            continue;
                                        }
                                        if (o ==
                                            i) e.host = a.host, e.path = a.path.slice(), e.query = a.query; else if ('?' ==
                                            o) e.host = a.host, e.path = a.path.slice(), e.query = '', u = we; else {
                                            if ('#' != o) {
                                                ee(r.slice(h).join('')) ||
                                                (e.host = a.host, e.path = a.path.slice(), te(
                                                    e)), u = xe;
                                                continue;
                                            }
                                            e.host = a.host, e.path = a.path.slice(), e.query = a.query, e.fragment = '', u = ke;
                                        }
                                    }
                                    break;
                                case ve:
                                    if ('/' == o || '\\' == o) {
                                        u = ye;
                                        break;
                                    }
                                    a && 'file' == a.scheme &&
                                    !ee(r.slice(h).join('')) && (Q(a.path[0], !0)
                                        ? e.path.push(a.path[0])
                                        : e.host = a.host), u = xe;
                                    continue;
                                case ye:
                                    if (o == i || '/' == o || '\\' == o || '?' ==
                                        o || '#' == o) {
                                        if (!n && Q(p)) u = xe; else if ('' == p) {
                                            if (e.host = '', n) return;
                                            u = be;
                                        } else {
                                            if (l = R(e, p)) return l;
                                            if ('localhost' == e.host &&
                                            (e.host = ''), n) return;
                                            p = '', u = be;
                                        }
                                        continue;
                                    }
                                    p += o;
                                    break;
                                case be:
                                    if (Z(e)) {
                                        if (u = xe, '/' != o && '\\' != o) continue;
                                    } else if (n || '?' != o) if (n || '#' != o) {
                                        if (o != i && (u = xe, '/' != o)) continue;
                                    } else e.fragment = '', u = ke; else e.query = '', u = we;
                                    break;
                                case xe:
                                    if (o == i || '/' == o || '\\' == o && Z(e) ||
                                        !n && ('?' == o || '#' == o)) {
                                        if ('..' === (c = (c = p).toLowerCase()) ||
                                        '%2e.' === c || '.%2e' === c || '%2e%2e' ===
                                        c ? (te(e), '/' == o || '\\' == o && Z(e) ||
                                        e.path.push('')) : ne(p)
                                            ? '/' == o || '\\' == o && Z(e) ||
                                            e.path.push('')
                                            : ('file' == e.scheme &&
                                            !e.path.length && Q(p) &&
                                            (e.host && (e.host = ''), p = p.charAt(
                                                0) + ':'), e.path.push(
                                                p)), p = '', 'file' == e.scheme &&
                                        (o == i || '?' == o || '#' ==
                                            o)) for (; e.path.length > 1 && "" ===
                                                       e.path[0];) e.path.shift();
                                        '?' == o ? (e.query = '', u = we) : '#' ==
                                            o && (e.fragment = '', u = ke);
                                    } else p += $(o, U);
                                    break;
                                case _e:
                                    '?' == o ? (e.query = '', u = we) : '#' == o
                                        ? (e.fragment = '', u = ke)
                                        : o != i && (e.path[0] += $(o, V));
                                    break;
                                case we:
                                    n || '#' != o
                                        ? o != i && ('\'' == o && Z(e)
                                        ? e.query += '%27'
                                        : e.query += '#' == o ? '%23' : $(o, V))
                                        : (e.fragment = '', u = ke);
                                    break;
                                case ke:
                                    o != i && (e.fragment += $(o, q));
                            }
                            h++;
                        }
                    }, Le = function (e) {
                        var t, n, i = u(this, Le, 'URL'),
                            a = arguments.length > 1 ? arguments[1] : void 0,
                            o = String(e), s = w(i, { type: 'URL' });
                        if (void 0 !== a) if (a instanceof Le) t = k(
                            a); else if (n = Me(t = {}, String(a))) throw TypeError(
                            n);
                        if (n = Me(s, o, null, t)) throw TypeError(n);
                        var l = s.searchParams = new x, c = _(l);
                        c.updateSearchParams(s.query), c.updateURL = function () {
                            s.query = String(l) || null;
                        }, r || (i.href = Te.call(i), i.origin = Ae.call(
                            i), i.protocol = De.call(i), i.username = Ce.call(
                            i), i.password = Ee.call(i), i.host = Oe.call(
                            i), i.hostname = Ye.call(i), i.port = Pe.call(
                            i), i.pathname = Ie.call(i), i.search = je.call(
                            i), i.searchParams = Ne.call(i), i.hash = He.call(i));
                    }, Se = Le.prototype, Te = function () {
                        var e = k(this), t = e.scheme, n = e.username,
                            i = e.password, a = e.host, r = e.port, o = e.path,
                            s = e.query, l = e.fragment, c = t + ':';
                        return null !== a ? (c += '//', K(e) &&
                        (c += n + (i ? ':' + i : '') + '@'), c += W(a), null !==
                        r && (c += ':' + r)) : 'file' == t &&
                            (c += '//'), c += e.cannotBeABaseURL ? o[0] : o.length
                            ? '/' + o.join('/')
                            : '', null !== s && (c += '?' + s), null !== l &&
                        (c += '#' + l), c;
                    }, Ae = function () {
                        var e = k(this), t = e.scheme, n = e.port;
                        if ('blob' == t) try {
                            return new URL(t.path[0]).origin;
                        } catch (e) {return 'null';}
                        return 'file' != t && Z(e) ? t + '://' + W(e.host) +
                            (null !== n ? ':' + n : '') : 'null';
                    }, De = function () {return k(this).scheme + ':';},
                    Ce = function () {return k(this).username;},
                    Ee = function () {return k(this).password;},
                    Oe = function () {
                        var e = k(this), t = e.host, n = e.port;
                        return null === t ? '' : null === n ? W(t) : W(t) +
                            ':' + n;
                    }, Ye = function () {
                        var e = k(this).host;
                        return null === e ? '' : W(e);
                    }, Pe = function () {
                        var e = k(this).port;
                        return null === e ? '' : String(e);
                    }, Ie = function () {
                        var e = k(this), t = e.path;
                        return e.cannotBeABaseURL ? t[0] : t.length ? '/' +
                            t.join('/') : '';
                    }, je = function () {
                        var e = k(this).query;
                        return e ? '?' + e : '';
                    }, Ne = function () {return k(this).searchParams;},
                    He = function () {
                        var e = k(this).fragment;
                        return e ? '#' + e : '';
                    }, Fe = function (e, t) {
                        return {
                            get: e,
                            set: t,
                            configurable: !0,
                            enumerable: !0,
                        };
                    };
                if (r && l(Se, {
                    href: Fe(Te, (function (e) {
                        var t = k(this), n = String(e), i = Me(t, n);
                        if (i) throw TypeError(i);
                        _(t.searchParams).updateSearchParams(t.query);
                    })),
                    origin: Fe(Ae),
                    protocol: Fe(De, (function (e) {
                        var t = k(this);
                        Me(t, String(e) + ':', ie);
                    })),
                    username: Fe(Ce, (function (e) {
                        var t = k(this), n = f(String(e));
                        if (!J(t)) {
                            t.username = '';
                            for (var i = 0; i < n.length; i++) t.username += $(
                                n[i], X);
                        }
                    })),
                    password: Fe(Ee, (function (e) {
                        var t = k(this), n = f(String(e));
                        if (!J(t)) {
                            t.password = '';
                            for (var i = 0; i < n.length; i++) t.password += $(
                                n[i], X);
                        }
                    })),
                    host: Fe(Oe, (function (e) {
                        var t = k(this);
                        t.cannotBeABaseURL || Me(t, String(e), fe);
                    })),
                    hostname: Fe(Ye, (function (e) {
                        var t = k(this);
                        t.cannotBeABaseURL || Me(t, String(e), pe);
                    })),
                    port: Fe(Pe, (function (e) {
                        var t = k(this);
                        J(t) ||
                        ('' == (e = String(e)) ? t.port = null : Me(t, e, me));
                    })),
                    pathname: Fe(Ie, (function (e) {
                        var t = k(this);
                        t.cannotBeABaseURL || (t.path = [], Me(t, e + '', be));
                    })),
                    search: Fe(je, (function (e) {
                        var t = k(this);
                        '' == (e = String(e)) ? t.query = null : ('?' ==
                        e.charAt(0) && (e = e.slice(1)), t.query = '', Me(t, e,
                            we)), _(t.searchParams).updateSearchParams(t.query);
                    })),
                    searchParams: Fe(Ne),
                    hash: Fe(He, (function (e) {
                        var t = k(this);
                        '' != (e = String(e))
                            ? ('#' == e.charAt(0) &&
                            (e = e.slice(1)), t.fragment = '', Me(t, e, ke))
                            : t.fragment = null;
                    })),
                }), c(Se, 'toJSON', (function () {return Te.call(this);}),
                    { enumerable: !0 }), c(Se, 'toString',
                    (function () {return Te.call(this);}),
                    { enumerable: !0 }), b) {
                    var Re = b.createObjectURL, ze = b.revokeObjectURL;
                    Re && c(Le, 'createObjectURL',
                        (function (e) {return Re.apply(b, arguments);})), ze &&
                    c(Le, 'revokeObjectURL',
                        (function (e) {return ze.apply(b, arguments);}));
                }
                g(Le, 'URL'), a({ global: !0, forced: !o, sham: !r },
                    { URL: Le });
            },
        }, t = {};

        function n (i) {
            if (t[i]) return t[i].exports;
            var a = t[i] = { exports: {} };
            return e[i](a, a.exports, n), a.exports;
        }

        n.d = function (e, t) {
            for (var i in t) n.o(t, i) && !n.o(e, i) &&
            Object.defineProperty(e, i, { enumerable: !0, get: t[i] });
        }, n.g = function () {
            if ('object' == typeof globalThis) return globalThis;
            try {
                return this || new Function('return this')();
            } catch (e) {if ('object' == typeof window) return window;}
        }(), n.o = function (e, t) {
            return Object.prototype.hasOwnProperty.call(e, t);
        }, n.r = function (e) {
            'undefined' != typeof Symbol && Symbol.toStringTag &&
            Object.defineProperty(e, Symbol.toStringTag,
                { value: 'Module' }), Object.defineProperty(e, '__esModule',
                { value: !0 });
        };
        var i = {};
        return function () {
            'use strict';
            n.r(i), n.d(i, {
                Dropzone: function () {return x;},
                default: function () {return L;},
            });
            n(2222), n(7327), n(2772), n(6992), n(1249), n(7042), n(561), n(
                8264), n(8309), n(489), n(1539), n(4916), n(9714), n(8783), n(
                4723), n(5306), n(3123), n(3210), n(2472), n(2990), n(8927), n(
                3105), n(5035), n(4345), n(7174), n(2846), n(4731), n(7209), n(
                6319), n(8867), n(7789), n(3739), n(9368), n(4483), n(2056), n(
                3462), n(678), n(7462), n(3824), n(5021), n(2974), n(5016), n(
                4747), n(3948), n(285);

            function e (e, n) {
                var i;
                if ('undefined' == typeof Symbol || null ==
                    e[Symbol.iterator]) {
                    if (Array.isArray(e) || (i = function (e, n) {
                        if (!e) return;
                        if ('string' == typeof e) return t(e, n);
                        var i = Object.prototype.toString.call(e).slice(8, -1);
                        'Object' === i && e.constructor &&
                        (i = e.constructor.name);
                        if ('Map' === i || 'Set' === i) return Array.from(e);
                        if ('Arguments' === i ||
                            /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(
                                i)) return t(e, n);
                    }(e)) || n && e && 'number' == typeof e.length) {
                        i && (e = i);
                        var a = 0, r = function () {};
                        return {
                            s: r,
                            n: function () {
                                return a >= e.length
                                    ? { done: !0 }
                                    : { done: !1, value: e[a++] };
                            },
                            e: function (e) {throw e;},
                            f: r,
                        };
                    }
                    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 o, s = !0, l = !1;
                return {
                    s: function () {i = e[Symbol.iterator]();},
                    n: function () {
                        var e = i.next();
                        return s = e.done, e;
                    },
                    e: function (e) {l = !0, o = e;},
                    f: function () {
                        try {
                            s || null == i.return || i.return();
                        } finally {if (l) throw o;}
                    },
                };
            }

            function t (e, t) {
                (null == t || t > e.length) && (t = e.length);
                for (var n = 0, i = new Array(t); n < t; n++) i[n] = e[n];
                return i;
            }

            function a (e, t) {
                for (var n = 0; n < t.length; n++) {
                    var i = t[n];
                    i.enumerable = i.enumerable ||
                        !1, i.configurable = !0, 'value' in i &&
                    (i.writable = !0), Object.defineProperty(e, i.key, i);
                }
            }

            var r = function () {
                function t () {
                    !function (e, t) {
                        if (!(e instanceof t)) throw new TypeError(
                            'Cannot call a class as a function');
                    }(this, t);
                }

                var n, i, r;
                return n = t, (i = [
                    {
                        key: 'on',
                        value: function (e, t) {
                            return this._callbacks = this._callbacks ||
                                {}, this._callbacks[e] ||
                            (this._callbacks[e] = []), this._callbacks[e].push(
                                t), this;
                        },
                    },
                    {
                        key: 'emit',
                        value: function (t) {
                            this._callbacks = this._callbacks || {};
                            for (var n = this._callbacks[t], i = arguments.length, a = new Array(
                                i > 1 ? i - 1 : 0), r = 1; r < i; r++) a[r -
                            1] = arguments[r];
                            if (n) {
                                var o, s = e(n, !0);
                                try {
                                    for (s.s(); !(o = s.n()).done;) {
                                        var l = o.value;
                                        l.apply(this, a);
                                    }
                                } catch (e) {s.e(e);} finally {s.f();}
                            }
                            return this.element && this.element.dispatchEvent(
                                this.makeEvent('dropzone:' + t,
                                    { args: a })), this;
                        },
                    },
                    {
                        key: 'makeEvent',
                        value: function (e, t) {
                            var n = {
                                bubbles: !0,
                                cancelable: !0,
                                detail: t,
                            };
                            if ('function' ==
                                typeof window.CustomEvent) return new CustomEvent(
                                e, n);
                            var i = document.createEvent('CustomEvent');
                            return i.initCustomEvent(e, n.bubbles, n.cancelable,
                                n.detail), i;
                        },
                    },
                    {
                        key: 'off',
                        value: function (e, t) {
                            if (!this._callbacks || 0 ===
                                arguments.length) return this._callbacks = {}, this;
                            var n = this._callbacks[e];
                            if (!n) return this;
                            if (1 ===
                                arguments.length) return delete this._callbacks[e], this;
                            for (var i = 0; i < n.length; i++) {
                                var a = n[i];
                                if (a === t) {
                                    n.splice(i, 1);
                                    break;
                                }
                            }
                            return this;
                        },
                    }]) && a(n.prototype, i), r && a(n, r), t;
            }();

            function o (e, t) {
                var n;
                if ('undefined' == typeof Symbol || null ==
                    e[Symbol.iterator]) {
                    if (Array.isArray(e) || (n = function (e, t) {
                        if (!e) return;
                        if ('string' == typeof e) return s(e, t);
                        var n = Object.prototype.toString.call(e).slice(8, -1);
                        'Object' === n && e.constructor &&
                        (n = e.constructor.name);
                        if ('Map' === n || 'Set' === n) return Array.from(e);
                        if ('Arguments' === n ||
                            /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(
                                n)) return s(e, t);
                    }(e)) || t && e && 'number' == typeof e.length) {
                        n && (e = n);
                        var i = 0, a = function () {};
                        return {
                            s: a,
                            n: function () {
                                return i >= e.length
                                    ? { done: !0 }
                                    : { done: !1, value: e[i++] };
                            },
                            e: function (e) {throw e;},
                            f: a,
                        };
                    }
                    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 r, o = !0, l = !1;
                return {
                    s: function () {n = e[Symbol.iterator]();},
                    n: function () {
                        var e = n.next();
                        return o = e.done, e;
                    },
                    e: function (e) {l = !0, r = e;},
                    f: function () {
                        try {
                            o || null == n.return || n.return();
                        } finally {if (l) throw r;}
                    },
                };
            }

            function s (e, t) {
                (null == t || t > e.length) && (t = e.length);
                for (var n = 0, i = new Array(t); n < t; n++) i[n] = e[n];
                return i;
            }

            var l = {
                url: null,
                method: 'post',
                withCredentials: !1,
                timeout: null,
                parallelUploads: 2,
                uploadMultiple: !1,
                chunking: !1,
                forceChunking: !1,
                chunkSize: 2e6,
                parallelChunkUploads: !1,
                retryChunks: !1,
                retryChunksLimit: 3,
                maxFilesize: 256,
                paramName: 'file',
                createImageThumbnails: !0,
                maxThumbnailFilesize: 10,
                thumbnailWidth: 120,
                thumbnailHeight: 120,
                thumbnailMethod: 'crop',
                resizeWidth: null,
                resizeHeight: null,
                resizeMimeType: null,
                resizeQuality: .8,
                resizeMethod: 'contain',
                filesizeBase: 1e3,
                maxFiles: null,
                headers: null,
                clickable: !0,
                ignoreHiddenFiles: !0,
                acceptedFiles: null,
                acceptedMimeTypes: null,
                autoProcessQueue: !0,
                autoQueue: !0,
                addRemoveLinks: !1,
                previewsContainer: null,
                disablePreviews: !1,
                hiddenInputContainer: 'body',
                capture: null,
                renameFilename: null,
                renameFile: null,
                forceFallback: !1,
                dictDefaultMessage: 'Drop files here to upload',
                dictFallbackMessage: 'Your browser does not support drag\'n\'drop file uploads.',
                dictFallbackText: 'Please use the fallback form below to upload your files like in the olden days.',
                dictFileTooBig: 'File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.',
                dictInvalidFileType: 'You can\'t upload files of this type.',
                dictResponseError: 'Server responded with {{statusCode}} code.',
                dictCancelUpload: 'Cancel upload',
                dictUploadCanceled: 'Upload canceled.',
                dictCancelUploadConfirmation: 'Are you sure you want to cancel this upload?',
                dictRemoveFile: 'Remove file',
                dictRemoveFileConfirmation: null,
                dictMaxFilesExceeded: 'You can not upload any more files.',
                dictFileSizeUnits: {
                    tb: 'TB',
                    gb: 'GB',
                    mb: 'MB',
                    kb: 'KB',
                    b: 'b',
                },
                init: function () {},
                params: function (e, t, n) {
                    if (n) return {
                        dzuuid: n.file.upload.uuid,
                        dzchunkindex: n.index,
                        dztotalfilesize: n.file.size,
                        dzchunksize: this.options.chunkSize,
                        dztotalchunkcount: n.file.upload.totalChunkCount,
                        dzchunkbyteoffset: n.index * this.options.chunkSize,
                    };
                },
                accept: function (e, t) {return t();},
                chunksUploaded: function (e, t) {t();},
                fallback: function () {
                    var e;
                    this.element.className = ''.concat(this.element.className,
                        ' dz-browser-not-supported');
                    var t, n = o(this.element.getElementsByTagName('div'), !0);
                    try {
                        for (n.s(); !(t = n.n()).done;) {
                            var i = t.value;
                            if (/(^| )dz-message($| )/.test(i.className)) {
                                e = i, i.className = 'dz-message';
                                break;
                            }
                        }
                    } catch (e) {n.e(e);} finally {n.f();}
                    e || (e = x.createElement(
                        '<div class="dz-message"><span></span></div>'), this.element.appendChild(
                        e));
                    var a = e.getElementsByTagName('span')[0];
                    return a && (null != a.textContent
                        ? a.textContent = this.options.dictFallbackMessage
                        : null != a.innerText &&
                        (a.innerText = this.options.dictFallbackMessage)), this.element.appendChild(
                        this.getFallbackForm());
                },
                resize: function (e, t, n, i) {
                    var a = {
                        srcX: 0,
                        srcY: 0,
                        srcWidth: e.width,
                        srcHeight: e.height,
                    }, r = e.width / e.height;
                    null == t && null == n
                        ? (t = a.srcWidth, n = a.srcHeight)
                        : null == t ? t = n * r : null == n && (n = t / r);
                    var o = (t = Math.min(t, a.srcWidth)) /
                        (n = Math.min(n, a.srcHeight));
                    if (a.srcWidth > t || a.srcHeight > n) if ('crop' === i) r >
                    o
                        ? (a.srcHeight = e.height, a.srcWidth = a.srcHeight * o)
                        : (a.srcWidth = e.width, a.srcHeight = a.srcWidth /
                            o); else {
                        if ('contain' !== i) throw new Error(
                            'Unknown resizeMethod \''.concat(i, '\''));
                        r > o ? n = t / r : t = n * r;
                    }
                    return a.srcX = (e.width - a.srcWidth) /
                        2, a.srcY = (e.height - a.srcHeight) /
                        2, a.trgWidth = t, a.trgHeight = n, a;
                },
                transformFile: function (e, t) {
                    return (this.options.resizeWidth ||
                        this.options.resizeHeight) && e.type.match(/image.*/)
                        ? this.resizeImage(e, this.options.resizeWidth,
                            this.options.resizeHeight,
                            this.options.resizeMethod, t)
                        : t(e);
                },
                previewTemplate: '<div class="dz-preview dz-file-preview"> <div class="dz-image"><img data-dz-thumbnail/></div> <div class="dz-details"> <div class="dz-size"><span data-dz-size></span></div> <div class="dz-filename"><span data-dz-name></span></div> </div> <div class="dz-progress"> <span class="dz-upload" data-dz-uploadprogress></span> </div> <div class="dz-error-message"><span data-dz-errormessage></span></div> <div class="dz-success-mark"> <svg width="54px" height="54px" viewBox="0 0 54 54" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>Check</title> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <path d="M23.5,31.8431458 L17.5852419,25.9283877 C16.0248253,24.3679711 13.4910294,24.366835 11.9289322,25.9289322 C10.3700136,27.4878508 10.3665912,30.0234455 11.9283877,31.5852419 L20.4147581,40.0716123 C20.5133999,40.1702541 20.6159315,40.2626649 20.7218615,40.3488435 C22.2835669,41.8725651 24.794234,41.8626202 26.3461564,40.3106978 L43.3106978,23.3461564 C44.8771021,21.7797521 44.8758057,19.2483887 43.3137085,17.6862915 C41.7547899,16.1273729 39.2176035,16.1255422 37.6538436,17.6893022 L23.5,31.8431458 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z" stroke-opacity="0.198794158" stroke="#747474" fill-opacity="0.816519475" fill="#FFFFFF"></path> </g> </svg> </div> <div class="dz-error-mark"> <svg width="54px" height="54px" viewBox="0 0 54 54" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>Error</title> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g stroke="#747474" stroke-opacity="0.198794158" fill="#FFFFFF" fill-opacity="0.816519475"> <path d="M32.6568542,29 L38.3106978,23.3461564 C39.8771021,21.7797521 39.8758057,19.2483887 38.3137085,17.6862915 C36.7547899,16.1273729 34.2176035,16.1255422 32.6538436,17.6893022 L27,23.3431458 L21.3461564,17.6893022 C19.7823965,16.1255422 17.2452101,16.1273729 15.6862915,17.6862915 C14.1241943,19.2483887 14.1228979,21.7797521 15.6893022,23.3461564 L21.3431458,29 L15.6893022,34.6538436 C14.1228979,36.2202479 14.1241943,38.7516113 15.6862915,40.3137085 C17.2452101,41.8726271 19.7823965,41.8744578 21.3461564,40.3106978 L27,34.6568542 L32.6538436,40.3106978 C34.2176035,41.8744578 36.7547899,41.8726271 38.3137085,40.3137085 C39.8758057,38.7516113 39.8771021,36.2202479 38.3106978,34.6538436 L32.6568542,29 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z"></path> </g> </g> </svg> </div> </div> ',
                drop: function (e) {
                    return this.element.classList.remove('dz-drag-hover');
                },
                dragstart: function (e) {},
                dragend: function (e) {
                    return this.element.classList.remove('dz-drag-hover');
                },
                dragenter: function (e) {
                    return this.element.classList.add('dz-drag-hover');
                },
                dragover: function (e) {
                    return this.element.classList.add('dz-drag-hover');
                },
                dragleave: function (e) {
                    return this.element.classList.remove('dz-drag-hover');
                },
                paste: function (e) {},
                reset: function () {
                    return this.element.classList.remove('dz-started');
                },
                addedfile: function (e) {
                    var t = this;
                    if (this.element === this.previewsContainer &&
                    this.element.classList.add(
                        'dz-started'), this.previewsContainer &&
                    !this.options.disablePreviews) {
                        e.previewElement = x.createElement(
                            this.options.previewTemplate.trim()), e.previewTemplate = e.previewElement, this.previewsContainer.appendChild(
                            e.previewElement);
                        var n, i = o(
                            e.previewElement.querySelectorAll('[data-dz-name]'),
                            !0);
                        try {
                            for (i.s(); !(n = i.n()).done;) {
                                var a = n.value;
                                a.textContent = e.name;
                            }
                        } catch (e) {i.e(e);} finally {i.f();}
                        var r, s = o(
                            e.previewElement.querySelectorAll('[data-dz-size]'),
                            !0);
                        try {
                            for (s.s(); !(r = s.n()).done;) (a = r.value).innerHTML = this.filesize(
                                e.size);
                        } catch (e) {s.e(e);} finally {s.f();}
                        this.options.addRemoveLinks &&
                        (e._removeLink = x.createElement(
                            '<a class="dz-remove" href="javascript:undefined;" data-dz-remove>'.concat(
                                this.options.dictRemoveFile,
                                '</a>')), e.previewElement.appendChild(
                            e._removeLink));
                        var l, c = function (n) {
                            return n.preventDefault(), n.stopPropagation(), e.status ===
                            x.UPLOADING
                                ? x.confirm(
                                    t.options.dictCancelUploadConfirmation,
                                    (function () {return t.removeFile(e);}))
                                : t.options.dictRemoveFileConfirmation
                                    ? x.confirm(
                                        t.options.dictRemoveFileConfirmation,
                                        (function () {return t.removeFile(e);}))
                                    : t.removeFile(e);
                        }, u = o(e.previewElement.querySelectorAll(
                            '[data-dz-remove]'), !0);
                        try {
                            for (u.s(); !(l = u.n()).done;) {
                                l.value.addEventListener('click', c);
                            }
                        } catch (e) {u.e(e);} finally {u.f();}
                    }
                },
                removedfile: function (e) {
                    return null != e.previewElement && null !=
                    e.previewElement.parentNode &&
                    e.previewElement.parentNode.removeChild(
                        e.previewElement), this._updateMaxFilesReachedClass();
                },
                thumbnail: function (e, t) {
                    if (e.previewElement) {
                        e.previewElement.classList.remove('dz-file-preview');
                        var n, i = o(e.previewElement.querySelectorAll(
                            '[data-dz-thumbnail]'), !0);
                        try {
                            for (i.s(); !(n = i.n()).done;) {
                                var a = n.value;
                                a.alt = e.name, a.src = t;
                            }
                        } catch (e) {i.e(e);} finally {i.f();}
                        return setTimeout((function () {
                            return e.previewElement.classList.add(
                                'dz-image-preview');
                        }), 1);
                    }
                },
                error: function (e, t) {
                    if (e.previewElement) {
                        e.previewElement.classList.add('dz-error'), 'string' !=
                        typeof t && t.error && (t = t.error);
                        var n, i = o(e.previewElement.querySelectorAll(
                            '[data-dz-errormessage]'), !0);
                        try {for (i.s(); !(n = i.n()).done;) {n.value.textContent = t;}} catch (e) {
                            i.e(e);
                        } finally {i.f();}
                    }
                },
                errormultiple: function () {},
                processing: function (e) {
                    if (e.previewElement && (e.previewElement.classList.add(
                        'dz-processing'), e._removeLink)) return e._removeLink.innerHTML = this.options.dictCancelUpload;
                },
                processingmultiple: function () {},
                uploadprogress: function (e, t, n) {
                    if (e.previewElement) {
                        var i, a = o(e.previewElement.querySelectorAll(
                            '[data-dz-uploadprogress]'), !0);
                        try {
                            for (a.s(); !(i = a.n()).done;) {
                                var r = i.value;
                                'PROGRESS' === r.nodeName
                                    ? r.value = t
                                    : r.style.width = ''.concat(t, '%');
                            }
                        } catch (e) {a.e(e);} finally {a.f();}
                    }
                },
                totaluploadprogress: function () {},
                sending: function () {},
                sendingmultiple: function () {},
                success: function (e) {
                    if (e.previewElement) return e.previewElement.classList.add(
                        'dz-success');
                },
                successmultiple: function () {},
                canceled: function (e) {
                    return this.emit('error', e,
                        this.options.dictUploadCanceled);
                },
                canceledmultiple: function () {},
                complete: function (e) {
                    if (e._removeLink &&
                    (e._removeLink.innerHTML = this.options.dictRemoveFile), e.previewElement) return e.previewElement.classList.add(
                        'dz-complete');
                },
                completemultiple: function () {},
                maxfilesexceeded: function () {},
                maxfilesreached: function () {},
                queuecomplete: function () {},
                addedfiles: function () {},
            };

            function c (e) {
                return (c = 'function' == typeof Symbol && 'symbol' ==
                typeof Symbol.iterator
                    ? function (e) {return typeof e;}
                    : function (e) {
                        return e && 'function' == typeof Symbol &&
                        e.constructor === Symbol && e !== Symbol.prototype
                            ? 'symbol'
                            : typeof e;
                    })(e);
            }

            function u (e, t) {
                var n;
                if ('undefined' == typeof Symbol || null ==
                    e[Symbol.iterator]) {
                    if (Array.isArray(e) || (n = function (e, t) {
                        if (!e) return;
                        if ('string' == typeof e) return d(e, t);
                        var n = Object.prototype.toString.call(e).slice(8, -1);
                        'Object' === n && e.constructor &&
                        (n = e.constructor.name);
                        if ('Map' === n || 'Set' === n) return Array.from(e);
                        if ('Arguments' === n ||
                            /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(
                                n)) return d(e, t);
                    }(e)) || t && e && 'number' == typeof e.length) {
                        n && (e = n);
                        var i = 0, a = function () {};
                        return {
                            s: a,
                            n: function () {
                                return i >= e.length
                                    ? { done: !0 }
                                    : { done: !1, value: e[i++] };
                            },
                            e: function (e) {throw e;},
                            f: a,
                        };
                    }
                    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 r, o = !0, s = !1;
                return {
                    s: function () {n = e[Symbol.iterator]();},
                    n: function () {
                        var e = n.next();
                        return o = e.done, e;
                    },
                    e: function (e) {s = !0, r = e;},
                    f: function () {
                        try {
                            o || null == n.return || n.return();
                        } finally {if (s) throw r;}
                    },
                };
            }

            function d (e, t) {
                (null == t || t > e.length) && (t = e.length);
                for (var n = 0, i = new Array(t); n < t; n++) i[n] = e[n];
                return i;
            }

            function h (e, t) {
                if (!(e instanceof t)) throw new TypeError(
                    'Cannot call a class as a function');
            }

            function f (e, t) {
                for (var n = 0; n < t.length; n++) {
                    var i = t[n];
                    i.enumerable = i.enumerable ||
                        !1, i.configurable = !0, 'value' in i &&
                    (i.writable = !0), Object.defineProperty(e, i.key, i);
                }
            }

            function p (e, t, n) {
                return t && f(e.prototype, t), n && f(e, n), e;
            }

            function m (e, t) {
                return (m = Object.setPrototypeOf ||
                    function (e, t) {return e.__proto__ = t, e;})(e, t);
            }

            function g (e) {
                var t = 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 (e) {return !1;}
                }();
                return function () {
                    var n, i = b(e);
                    if (t) {
                        var a = b(this).constructor;
                        n = Reflect.construct(i, arguments, a);
                    } else n = i.apply(this, arguments);
                    return v(this, n);
                };
            }

            function v (e, t) {
                return !t || 'object' !== c(t) && 'function' != typeof t
                    ? y(e)
                    : t;
            }

            function y (e) {
                if (void 0 === e) throw new ReferenceError(
                    'this hasn\'t been initialised - super() hasn\'t been called');
                return e;
            }

            function b (e) {
                return (b = Object.setPrototypeOf
                    ? Object.getPrototypeOf
                    : function (e) {
                        return e.__proto__ || Object.getPrototypeOf(e);
                    })(e);
            }

            var x = function (e) {
                !function (e, t) {
                    if ('function' != typeof t && null !==
                        t) throw new TypeError(
                        'Super expression must either be null or a function');
                    e.prototype = Object.create(t && t.prototype, {
                        constructor: {
                            value: e,
                            writable: !0,
                            configurable: !0,
                        },
                    }), t && m(e, t);
                }(n, e);
                var t = g(n);

                function n (e, i) {
                    var a, r, o;
                    if (h(this, n), (a = t.call(
                        this)).element = e, a.version = n.version, a.clickableElements = [], a.listeners = [], a.files = [], 'string' ==
                    typeof a.element && (a.element = document.querySelector(
                        a.element)), !a.element || null ==
                    a.element.nodeType) throw new Error(
                        'Invalid dropzone element.');
                    if (a.element.dropzone) throw new Error(
                        'Dropzone already attached.');
                    n.instances.push(y(a)), a.element.dropzone = y(a);
                    var s = null != (o = n.optionsForElement(a.element))
                        ? o
                        : {};
                    if (a.options = n.extend({}, l, s, null != i
                        ? i
                        : {}), a.options.previewTemplate = a.options.previewTemplate.replace(
                        /\n*/g, ''), a.options.forceFallback ||
                    !n.isBrowserSupported()) return v(a,
                        a.options.fallback.call(y(a)));
                    if (null == a.options.url &&
                    (a.options.url = a.element.getAttribute(
                        'action')), !a.options.url) throw new Error(
                        'No URL provided.');
                    if (a.options.acceptedFiles &&
                        a.options.acceptedMimeTypes) throw new Error(
                        'You can\'t provide both \'acceptedFiles\' and \'acceptedMimeTypes\'. \'acceptedMimeTypes\' is deprecated.');
                    if (a.options.uploadMultiple &&
                        a.options.chunking) throw new Error(
                        'You cannot set both: uploadMultiple and chunking.');
                    return a.options.acceptedMimeTypes &&
                    (a.options.acceptedFiles = a.options.acceptedMimeTypes, delete a.options.acceptedMimeTypes), null !=
                    a.options.renameFilename &&
                    (a.options.renameFile = function (e) {
                        return a.options.renameFilename.call(y(a), e.name, e);
                    }), 'string' == typeof a.options.method &&
                    (a.options.method = a.options.method.toUpperCase()), (r = a.getExistingFallback()) &&
                    r.parentNode && r.parentNode.removeChild(r), !1 !==
                    a.options.previewsContainer && (a.options.previewsContainer
                        ? a.previewsContainer = n.getElement(
                            a.options.previewsContainer, 'previewsContainer')
                        : a.previewsContainer = a.element), a.options.clickable &&
                    (!0 === a.options.clickable
                        ? a.clickableElements = [a.element]
                        : a.clickableElements = n.getElements(
                            a.options.clickable, 'clickable')), a.init(), a;
                }

                return p(n, [
                    {
                        key: 'getAcceptedFiles',
                        value: function () {
                            return this.files.filter(
                                (function (e) {return e.accepted;})).
                                map((function (e) {return e;}));
                        },
                    },
                    {
                        key: 'getRejectedFiles',
                        value: function () {
                            return this.files.filter(
                                (function (e) {return !e.accepted;})).
                                map((function (e) {return e;}));
                        },
                    },
                    {
                        key: 'getFilesWithStatus',
                        value: function (e) {
                            return this.files.filter(
                                (function (t) {return t.status === e;})).
                                map((function (e) {return e;}));
                        },
                    },
                    {
                        key: 'getQueuedFiles',
                        value: function () {
                            return this.getFilesWithStatus(n.QUEUED);
                        },
                    },
                    {
                        key: 'getUploadingFiles',
                        value: function () {
                            return this.getFilesWithStatus(n.UPLOADING);
                        },
                    },
                    {
                        key: 'getAddedFiles',
                        value: function () {
                            return this.getFilesWithStatus(n.ADDED);
                        },
                    },
                    {
                        key: 'getActiveFiles',
                        value: function () {
                            return this.files.filter((function (e) {
                                return e.status === n.UPLOADING || e.status ===
                                    n.QUEUED;
                            })).map((function (e) {return e;}));
                        },
                    },
                    {
                        key: 'init', value: function () {
                            var e = this;
                            if ('form' === this.element.tagName &&
                            this.element.setAttribute('enctype',
                                'multipart/form-data'), this.element.classList.contains(
                                'dropzone') &&
                            !this.element.querySelector('.dz-message') &&
                            this.element.appendChild(n.createElement(
                                '<div class="dz-default dz-message"><button class="dz-button" type="button">'.concat(
                                    this.options.dictDefaultMessage,
                                    '</button></div>'))), this.clickableElements.length) {
                                !function t () {
                                    e.hiddenFileInput &&
                                    e.hiddenFileInput.parentNode.removeChild(
                                        e.hiddenFileInput), e.hiddenFileInput = document.createElement(
                                        'input'), e.hiddenFileInput.setAttribute(
                                        'type', 'file'), (null ===
                                        e.options.maxFiles ||
                                        e.options.maxFiles > 1) &&
                                    e.hiddenFileInput.setAttribute('multiple',
                                        'multiple'), e.hiddenFileInput.className = 'dz-hidden-input', null !==
                                    e.options.acceptedFiles &&
                                    e.hiddenFileInput.setAttribute('accept',
                                        e.options.acceptedFiles), null !==
                                    e.options.capture &&
                                    e.hiddenFileInput.setAttribute('capture',
                                        e.options.capture), e.hiddenFileInput.setAttribute(
                                        'tabindex',
                                        '-1'), e.hiddenFileInput.style.visibility = 'hidden', e.hiddenFileInput.style.position = 'absolute', e.hiddenFileInput.style.top = '0', e.hiddenFileInput.style.left = '0', e.hiddenFileInput.style.height = '0', e.hiddenFileInput.style.width = '0', n.getElement(
                                        e.options.hiddenInputContainer,
                                        'hiddenInputContainer').
                                        appendChild(
                                            e.hiddenFileInput), e.hiddenFileInput.addEventListener(
                                        'change', (function () {
                                            var n = e.hiddenFileInput.files;
                                            if (n.length) {
                                                var i, a = u(n, !0);
                                                try {
                                                    for (a.s(); !(i = a.n()).done;) {
                                                        var r = i.value;
                                                        e.addFile(r);
                                                    }
                                                } catch (e) {
                                                    a.e(e);
                                                } finally {a.f();}
                                            }
                                            e.emit('addedfiles', n), t();
                                        }));
                                }();
                            }
                            this.URL = null !== window.URL
                                ? window.URL
                                : window.webkitURL;
                            var t, i = u(this.events, !0);
                            try {
                                for (i.s(); !(t = i.n()).done;) {
                                    var a = t.value;
                                    this.on(a, this.options[a]);
                                }
                            } catch (e) {i.e(e);} finally {i.f();}
                            this.on('uploadprogress',
                                (function () {return e.updateTotalUploadProgress();})), this.on(
                                'removedfile',
                                (function () {return e.updateTotalUploadProgress();})), this.on(
                                'canceled', (function (t) {
                                    return e.emit('complete', t);
                                })), this.on('complete', (function (t) {
                                if (0 === e.getAddedFiles().length && 0 ===
                                    e.getUploadingFiles().length && 0 ===
                                    e.getQueuedFiles().length) return setTimeout(
                                    (function () {
                                        return e.emit('queuecomplete');
                                    }), 0);
                            }));
                            var r = function (e) {
                                if (function (e) {
                                    if (e.dataTransfer.types) for (var t = 0; t <
                                    e.dataTransfer.types.length; t++) if ('Files' ===
                                        e.dataTransfer.types[t]) return !0;
                                    return !1;
                                }(e)) return e.stopPropagation(), e.preventDefault
                                    ? e.preventDefault()
                                    : e.returnValue = !1;
                            };
                            return this.listeners = [
                                {
                                    element: this.element,
                                    events: {
                                        dragstart: function (t) {
                                            return e.emit('dragstart', t);
                                        },
                                        dragenter: function (t) {
                                            return r(t), e.emit('dragenter', t);
                                        },
                                        dragover: function (t) {
                                            var n;
                                            try {n = t.dataTransfer.effectAllowed;} catch (e) {}
                                            return t.dataTransfer.dropEffect = 'move' ===
                                            n || 'linkMove' === n
                                                ? 'move'
                                                : 'copy', r(t), e.emit(
                                                'dragover', t);
                                        },
                                        dragleave: function (t) {
                                            return e.emit('dragleave', t);
                                        },
                                        drop: function (t) {
                                            return r(t), e.drop(t);
                                        },
                                        dragend: function (t) {
                                            return e.emit('dragend', t);
                                        },
                                    },
                                }], this.clickableElements.forEach(
                                (function (t) {
                                    return e.listeners.push({
                                        element: t,
                                        events: {
                                            click: function (i) {
                                                return (t !== e.element ||
                                                    i.target === e.element ||
                                                    n.elementInside(i.target,
                                                        e.element.querySelector(
                                                            '.dz-message'))) &&
                                                e.hiddenFileInput.click(), !0;
                                            },
                                        },
                                    });
                                })), this.enable(), this.options.init.call(
                                this);
                        },
                    },
                    {
                        key: 'destroy',
                        value: function () {
                            return this.disable(), this.removeAllFiles(
                                !0), (null != this.hiddenFileInput
                                ? this.hiddenFileInput.parentNode
                                : void 0) &&
                            (this.hiddenFileInput.parentNode.removeChild(
                                this.hiddenFileInput), this.hiddenFileInput = null), delete this.element.dropzone, n.instances.splice(
                                n.instances.indexOf(this), 1);
                        },
                    },
                    {
                        key: 'updateTotalUploadProgress',
                        value: function () {
                            var e, t = 0, n = 0;
                            if (this.getActiveFiles().length) {
                                var i, a = u(this.getActiveFiles(), !0);
                                try {
                                    for (a.s(); !(i = a.n()).done;) {
                                        var r = i.value;
                                        t += r.upload.bytesSent, n += r.upload.total;
                                    }
                                } catch (e) {a.e(e);} finally {a.f();}
                                e = 100 * t / n;
                            } else e = 100;
                            return this.emit('totaluploadprogress', e, n, t);
                        },
                    },
                    {
                        key: '_getParamName',
                        value: function (e) {
                            return 'function' == typeof this.options.paramName
                                ? this.options.paramName(e)
                                : ''.concat(this.options.paramName).
                                    concat(this.options.uploadMultiple
                                        ? '['.concat(e, ']')
                                        : '');
                        },
                    },
                    {
                        key: '_renameFile',
                        value: function (e) {
                            return 'function' != typeof this.options.renameFile
                                ? e.name
                                : this.options.renameFile(e);
                        },
                    },
                    {
                        key: 'getFallbackForm', value: function () {
                            var e, t;
                            if (e = this.getExistingFallback()) return e;
                            var i = '<div class="dz-fallback">';
                            this.options.dictFallbackText &&
                            (i += '<p>'.concat(this.options.dictFallbackText,
                                '</p>')), i += '<input type="file" name="'.concat(
                                this._getParamName(0), '" ').
                                concat(this.options.uploadMultiple
                                    ? 'multiple="multiple"'
                                    : void 0,
                                    ' /><input type="submit" value="Upload!"></div>');
                            var a = n.createElement(i);
                            return 'FORM' !== this.element.tagName
                                ? (t = n.createElement(
                                    '<form action="'.concat(this.options.url,
                                        '" enctype="multipart/form-data" method="').
                                        concat(this.options.method,
                                            '"></form>'))).appendChild(a)
                                : (this.element.setAttribute('enctype',
                                    'multipart/form-data'), this.element.setAttribute(
                                    'method', this.options.method)), null != t
                                ? t
                                : a;
                        },
                    },
                    {
                        key: 'getExistingFallback',
                        value: function () {
                            for (var e = function (e) {
                                var t, n = u(e, !0);
                                try {
                                    for (n.s(); !(t = n.n()).done;) {
                                        var i = t.value;
                                        if (/(^| )fallback($| )/.test(
                                            i.className)) return i;
                                    }
                                } catch (e) {n.e(e);} finally {n.f();}
                            }, t = 0, n = ['div', 'form']; t < n.length; t++) {
                                var i, a = n[t];
                                if (i = e(this.element.getElementsByTagName(
                                    a))) return i;
                            }
                        },
                    },
                    {
                        key: 'setupEventListeners',
                        value: function () {
                            return this.listeners.map((function (e) {
                                return function () {
                                    var t = [];
                                    for (var n in e.events) {
                                        var i = e.events[n];
                                        t.push(e.element.addEventListener(n, i,
                                            !1));
                                    }
                                    return t;
                                }();
                            }));
                        },
                    },
                    {
                        key: 'removeEventListeners',
                        value: function () {
                            return this.listeners.map((function (e) {
                                return function () {
                                    var t = [];
                                    for (var n in e.events) {
                                        var i = e.events[n];
                                        t.push(
                                            e.element.removeEventListener(n, i,
                                                !1));
                                    }
                                    return t;
                                }();
                            }));
                        },
                    },
                    {
                        key: 'disable', value: function () {
                            var e = this;
                            return this.clickableElements.forEach(
                                (function (e) {
                                    return e.classList.remove('dz-clickable');
                                })), this.removeEventListeners(), this.disabled = !0, this.files.map(
                                (function (t) {return e.cancelUpload(t);}));
                        },
                    },
                    {
                        key: 'enable',
                        value: function () {
                            return delete this.disabled, this.clickableElements.forEach(
                                (function (e) {
                                    return e.classList.add('dz-clickable');
                                })), this.setupEventListeners();
                        },
                    },
                    {
                        key: 'filesize', value: function (e) {
                            var t = 0, n = 'b';
                            if (e > 0) {
                                for (var i = [
                                    'tb',
                                    'gb',
                                    'mb',
                                    'kb',
                                    'b'], a = 0; a < i.length; a++) {
                                    var r = i[a];
                                    if (e >= Math.pow(this.options.filesizeBase,
                                        4 - a) / 10) {
                                        t = e /
                                            Math.pow(this.options.filesizeBase,
                                                4 - a), n = r;
                                        break;
                                    }
                                }
                                t = Math.round(10 * t) / 10;
                            }
                            return '<strong>'.concat(t, '</strong> ').
                                concat(this.options.dictFileSizeUnits[n]);
                        },
                    },
                    {
                        key: '_updateMaxFilesReachedClass',
                        value: function () {
                            return null != this.options.maxFiles &&
                            this.getAcceptedFiles().length >=
                            this.options.maxFiles
                                ? (this.getAcceptedFiles().length ===
                                this.options.maxFiles &&
                                this.emit('maxfilesreached',
                                    this.files), this.element.classList.add(
                                    'dz-max-files-reached'))
                                : this.element.classList.remove(
                                    'dz-max-files-reached');
                        },
                    },
                    {
                        key: 'drop',
                        value: function (e) {
                            if (e.dataTransfer) {
                                this.emit('drop', e);
                                for (var t = [], n = 0; n <
                                e.dataTransfer.files.length; n++) t[n] = e.dataTransfer.files[n];
                                if (t.length) {
                                    var i = e.dataTransfer.items;
                                    i && i.length && null !=
                                    i[0].webkitGetAsEntry
                                        ? this._addFilesFromItems(i)
                                        : this.handleFiles(t);
                                }
                                this.emit('addedfiles', t);
                            }
                        },
                    },
                    {
                        key: 'paste',
                        value: function (e) {
                            if (null != (t = null != e
                                ? e.clipboardData
                                : void 0, n = function (e) {return e.items;}, null !=
                            t ? n(t) : void 0)) {
                                var t, n;
                                this.emit('paste', e);
                                var i = e.clipboardData.items;
                                return i.length
                                    ? this._addFilesFromItems(i)
                                    : void 0;
                            }
                        },
                    },
                    {
                        key: 'handleFiles',
                        value: function (e) {
                            var t, n = u(e, !0);
                            try {
                                for (n.s(); !(t = n.n()).done;) {
                                    var i = t.value;
                                    this.addFile(i);
                                }
                            } catch (e) {n.e(e);} finally {n.f();}
                        },
                    },
                    {
                        key: '_addFilesFromItems',
                        value: function (e) {
                            var t = this;
                            return function () {
                                var n, i = [], a = u(e, !0);
                                try {
                                    for (a.s(); !(n = a.n()).done;) {
                                        var r, o = n.value;
                                        null != o.webkitGetAsEntry &&
                                        (r = o.webkitGetAsEntry()) ? r.isFile
                                            ? i.push(t.addFile(o.getAsFile()))
                                            : r.isDirectory
                                                ? i.push(
                                                    t._addFilesFromDirectory(r,
                                                        r.name))
                                                : i.push(void 0) : null !=
                                        o.getAsFile &&
                                        (null == o.kind || 'file' === o.kind)
                                            ? i.push(t.addFile(o.getAsFile()))
                                            : i.push(void 0);
                                    }
                                } catch (e) {a.e(e);} finally {a.f();}
                                return i;
                            }();
                        },
                    },
                    {
                        key: '_addFilesFromDirectory',
                        value: function (e, t) {
                            var n = this, i = e.createReader(),
                                a = function (e) {
                                    return t = console, n = 'log', i = function (t) {
                                        return t.log(e);
                                    }, null != t && 'function' == typeof t[n]
                                        ? i(t, n)
                                        : void 0;
                                    var t, n, i;
                                };
                            return function e () {
                                return i.readEntries((function (i) {
                                    if (i.length > 0) {
                                        var a, r = u(i, !0);
                                        try {
                                            for (r.s(); !(a = r.n()).done;) {
                                                var o = a.value;
                                                o.isFile ? o.file(
                                                    (function (e) {
                                                        if (!n.options.ignoreHiddenFiles ||
                                                            '.' !==
                                                            e.name.substring(0,
                                                                1)) return e.fullPath = ''.concat(
                                                            t, '/').
                                                            concat(
                                                                e.name), n.addFile(
                                                            e);
                                                    })) : o.isDirectory &&
                                                    n._addFilesFromDirectory(o,
                                                        ''.concat(t, '/').
                                                            concat(o.name));
                                            }
                                        } catch (e) {r.e(e);} finally {r.f();}
                                        e();
                                    }
                                    return null;
                                }), a);
                            }();
                        },
                    },
                    {
                        key: 'accept',
                        value: function (e, t) {
                            this.options.maxFilesize && e.size > 1024 *
                            this.options.maxFilesize * 1024
                                ? t(this.options.dictFileTooBig.replace(
                                '{{filesize}}',
                                Math.round(e.size / 1024 / 10.24) / 100).
                                    replace('{{maxFilesize}}',
                                        this.options.maxFilesize))
                                : n.isValidFile(e, this.options.acceptedFiles)
                                ? null != this.options.maxFiles &&
                                this.getAcceptedFiles().length >=
                                this.options.maxFiles
                                    ? (t(
                                        this.options.dictMaxFilesExceeded.replace(
                                            '{{maxFiles}}',
                                            this.options.maxFiles)), this.emit(
                                        'maxfilesexceeded', e))
                                    : this.options.accept.call(this, e, t)
                                : t(this.options.dictInvalidFileType);
                        },
                    },
                    {
                        key: 'addFile', value: function (e) {
                            var t = this;
                            e.upload = {
                                uuid: n.uuidv4(),
                                progress: 0,
                                total: e.size,
                                bytesSent: 0,
                                filename: this._renameFile(e),
                            }, this.files.push(
                                e), e.status = n.ADDED, this.emit('addedfile',
                                e), this._enqueueThumbnail(e), this.accept(e,
                                (function (n) {
                                    n
                                        ? (e.accepted = !1, t._errorProcessing(
                                        [e], n))
                                        : (e.accepted = !0, t.options.autoQueue &&
                                        t.enqueueFile(
                                            e)), t._updateMaxFilesReachedClass();
                                }));
                        },
                    },
                    {
                        key: 'enqueueFiles',
                        value: function (e) {
                            var t, n = u(e, !0);
                            try {
                                for (n.s(); !(t = n.n()).done;) {
                                    var i = t.value;
                                    this.enqueueFile(i);
                                }
                            } catch (e) {n.e(e);} finally {n.f();}
                            return null;
                        },
                    },
                    {
                        key: 'enqueueFile', value: function (e) {
                            var t = this;
                            if (e.status !== n.ADDED || !0 !==
                                e.accepted) throw new Error(
                                'This file can\'t be queued because it has already been processed or was rejected.');
                            if (e.status = n.QUEUED, this.options.autoProcessQueue) return setTimeout(
                                (function () {return t.processQueue();}), 0);
                        },
                    },
                    {
                        key: '_enqueueThumbnail',
                        value: function (e) {
                            var t = this;
                            if (this.options.createImageThumbnails &&
                                e.type.match(/image.*/) && e.size <= 1024 *
                                this.options.maxThumbnailFilesize *
                                1024) return this._thumbnailQueue.push(
                                e), setTimeout(
                                (function () {return t._processThumbnailQueue();}),
                                0);
                        },
                    },
                    {
                        key: '_processThumbnailQueue',
                        value: function () {
                            var e = this;
                            if (!this._processingThumbnail && 0 !==
                                this._thumbnailQueue.length) {
                                this._processingThumbnail = !0;
                                var t = this._thumbnailQueue.shift();
                                return this.createThumbnail(t,
                                    this.options.thumbnailWidth,
                                    this.options.thumbnailHeight,
                                    this.options.thumbnailMethod, !0,
                                    (function (n) {
                                        return e.emit('thumbnail', t,
                                            n), e._processingThumbnail = !1, e._processThumbnailQueue();
                                    }));
                            }
                        },
                    },
                    {
                        key: 'removeFile',
                        value: function (e) {
                            if (e.status === n.UPLOADING &&
                            this.cancelUpload(e), this.files = _(this.files,
                                e), this.emit('removedfile', e), 0 ===
                            this.files.length) return this.emit('reset');
                        },
                    },
                    {
                        key: 'removeAllFiles',
                        value: function (e) {
                            null == e && (e = !1);
                            var t, i = u(this.files.slice(), !0);
                            try {
                                for (i.s(); !(t = i.n()).done;) {
                                    var a = t.value;
                                    (a.status !== n.UPLOADING || e) &&
                                    this.removeFile(a);
                                }
                            } catch (e) {i.e(e);} finally {i.f();}
                            return null;
                        },
                    },
                    {
                        key: 'resizeImage',
                        value: function (e, t, i, a, r) {
                            var o = this;
                            return this.createThumbnail(e, t, i, a, !0,
                                (function (t, i) {
                                    if (null == i) return r(e);
                                    var a = o.options.resizeMimeType;
                                    null == a && (a = e.type);
                                    var s = i.toDataURL(a,
                                        o.options.resizeQuality);
                                    return 'image/jpeg' !== a && 'image/jpg' !==
                                    a || (s = M.restore(e.dataURL, s)), r(
                                        n.dataURItoBlob(s));
                                }));
                        },
                    },
                    {
                        key: 'createThumbnail',
                        value: function (e, t, n, i, a, r) {
                            var o = this, s = new FileReader;
                            s.onload = function () {
                                e.dataURL = s.result, 'image/svg+xml' !== e.type
                                    ? o.createThumbnailFromUrl(e, t, n, i, a, r)
                                    : null != r && r(s.result);
                            }, s.readAsDataURL(e);
                        },
                    },
                    {
                        key: 'displayExistingFile',
                        value: function (e, t, n, i) {
                            var a = this,
                                r = !(arguments.length > 4 && void 0 !==
                                    arguments[4]) || arguments[4];
                            if (this.emit('addedfile', e), this.emit('complete',
                                e), r) {
                                var o = function (t) {
                                    a.emit('thumbnail', e, t), n && n();
                                };
                                e.dataURL = t, this.createThumbnailFromUrl(e,
                                    this.options.thumbnailWidth,
                                    this.options.thumbnailHeight,
                                    this.options.resizeMethod,
                                    this.options.fixOrientation, o, i);
                            } else this.emit('thumbnail', e, t), n && n();
                        },
                    },
                    {
                        key: 'createThumbnailFromUrl',
                        value: function (e, t, n, i, a, r, o) {
                            var s = this, l = document.createElement('img');
                            return o && (l.crossOrigin = o), a = 'from-image' !=
                                getComputedStyle(
                                    document.body).imageOrientation &&
                                a, l.onload = function () {
                                var o = function (e) {return e(1);};
                                return 'undefined' != typeof EXIF && null !==
                                EXIF && a && (o = function (e) {
                                    return EXIF.getData(l, (function () {
                                        return e(
                                            EXIF.getTag(this, 'Orientation'));
                                    }));
                                }), o((function (a) {
                                    e.width = l.width, e.height = l.height;
                                    var o = s.options.resize.call(s, e, t, n,
                                        i), c = document.createElement(
                                        'canvas'), u = c.getContext('2d');
                                    switch (c.width = o.trgWidth, c.height = o.trgHeight, a >
                                    4 &&
                                    (c.width = o.trgHeight, c.height = o.trgWidth), a) {
                                        case 2:
                                            u.translate(c.width, 0), u.scale(-1,
                                                1);
                                            break;
                                        case 3:
                                            u.translate(c.width,
                                                c.height), u.rotate(Math.PI);
                                            break;
                                        case 4:
                                            u.translate(0, c.height), u.scale(1,
                                                -1);
                                            break;
                                        case 5:
                                            u.rotate(.5 * Math.PI), u.scale(1,
                                                -1);
                                            break;
                                        case 6:
                                            u.rotate(.5 * Math.PI), u.translate(
                                                0, -c.width);
                                            break;
                                        case 7:
                                            u.rotate(.5 * Math.PI), u.translate(
                                                c.height, -c.width), u.scale(-1,
                                                1);
                                            break;
                                        case 8:
                                            u.rotate(
                                                -.5 * Math.PI), u.translate(
                                                -c.height, 0);
                                    }
                                    k(u, l, null != o.srcX ? o.srcX : 0,
                                        null != o.srcY ? o.srcY : 0, o.srcWidth,
                                        o.srcHeight,
                                        null != o.trgX ? o.trgX : 0,
                                        null != o.trgY ? o.trgY : 0, o.trgWidth,
                                        o.trgHeight);
                                    var d = c.toDataURL('image/png');
                                    if (null != r) return r(d, c);
                                }));
                            }, null != r && (l.onerror = r), l.src = e.dataURL;
                        },
                    },
                    {
                        key: 'processQueue',
                        value: function () {
                            var e = this.options.parallelUploads,
                                t = this.getUploadingFiles().length, n = t;
                            if (!(t >= e)) {
                                var i = this.getQueuedFiles();
                                if (i.length > 0) {
                                    if (this.options.uploadMultiple) return this.processFiles(
                                        i.slice(0, e - t));
                                    for (; n < e;) {
                                        if (!i.length) return;
                                        this.processFile(i.shift()), n++;
                                    }
                                }
                            }
                        },
                    },
                    {
                        key: 'processFile',
                        value: function (e) {return this.processFiles([e]);},
                    },
                    {
                        key: 'processFiles',
                        value: function (e) {
                            var t, i = u(e, !0);
                            try {
                                for (i.s(); !(t = i.n()).done;) {
                                    var a = t.value;
                                    a.processing = !0, a.status = n.UPLOADING, this.emit(
                                        'processing', a);
                                }
                            } catch (e) {i.e(e);} finally {i.f();}
                            return this.options.uploadMultiple &&
                            this.emit('processingmultiple',
                                e), this.uploadFiles(e);
                        },
                    },
                    {
                        key: '_getFilesWithXhr',
                        value: function (e) {
                            return this.files.filter(
                                (function (t) {return t.xhr === e;})).
                                map((function (e) {return e;}));
                        },
                    },
                    {
                        key: 'cancelUpload',
                        value: function (e) {
                            if (e.status === n.UPLOADING) {
                                var t, i = this._getFilesWithXhr(e.xhr),
                                    a = u(i, !0);
                                try {for (a.s(); !(t = a.n()).done;) {t.value.status = n.CANCELED;}} catch (e) {
                                    a.e(e);
                                } finally {a.f();}
                                void 0 !== e.xhr && e.xhr.abort();
                                var r, o = u(i, !0);
                                try {
                                    for (o.s(); !(r = o.n()).done;) {
                                        var s = r.value;
                                        this.emit('canceled', s);
                                    }
                                } catch (e) {o.e(e);} finally {o.f();}
                                this.options.uploadMultiple &&
                                this.emit('canceledmultiple', i);
                            } else e.status !== n.ADDED && e.status !==
                            n.QUEUED ||
                            (e.status = n.CANCELED, this.emit('canceled',
                                e), this.options.uploadMultiple &&
                            this.emit('canceledmultiple', [e]));
                            if (this.options.autoProcessQueue) return this.processQueue();
                        },
                    },
                    {
                        key: 'resolveOption',
                        value: function (e) {
                            if ('function' == typeof e) {
                                for (var t = arguments.length, n = new Array(
                                    t > 1 ? t - 1 : 0), i = 1; i < t; i++) n[i -
                                1] = arguments[i];
                                return e.apply(this, n);
                            }
                            return e;
                        },
                    },
                    {
                        key: 'uploadFile',
                        value: function (e) {return this.uploadFiles([e]);},
                    },
                    {
                        key: 'uploadFiles', value: function (e) {
                            var t = this;
                            this._transformFiles(e, (function (i) {
                                if (t.options.chunking) {
                                    var a = i[0];
                                    e[0].upload.chunked = t.options.chunking &&
                                        (t.options.forceChunking || a.size >
                                            t.options.chunkSize), e[0].upload.totalChunkCount = Math.ceil(
                                        a.size / t.options.chunkSize);
                                }
                                if (e[0].upload.chunked) {
                                    var r = e[0], o = i[0];
                                    r.upload.chunks = [];
                                    var s = function () {
                                        for (var i = 0; void 0 !==
                                        r.upload.chunks[i];) i++;
                                        if (!(i >= r.upload.totalChunkCount)) {
                                            0;
                                            var a = i * t.options.chunkSize,
                                                s = Math.min(
                                                    a + t.options.chunkSize,
                                                    o.size), l = {
                                                    name: t._getParamName(0),
                                                    data: o.webkitSlice
                                                        ? o.webkitSlice(a, s)
                                                        : o.slice(a, s),
                                                    filename: r.upload.filename,
                                                    chunkIndex: i,
                                                };
                                            r.upload.chunks[i] = {
                                                file: r,
                                                index: i,
                                                dataBlock: l,
                                                status: n.UPLOADING,
                                                progress: 0,
                                                retries: 0,
                                            }, t._uploadData(e, [l]);
                                        }
                                    };
                                    if (r.upload.finishedChunkUpload = function (
                                        i, a) {
                                        var o = !0;
                                        i.status = n.SUCCESS, i.dataBlock = null, i.xhr = null;
                                        for (var l = 0; l <
                                        r.upload.totalChunkCount; l++) {
                                            if (void 0 ===
                                                r.upload.chunks[l]) return s();
                                            r.upload.chunks[l].status !==
                                            n.SUCCESS && (o = !1);
                                        }
                                        o && t.options.chunksUploaded(r,
                                            (function () {
                                                t._finished(e, a, null);
                                            }));
                                    }, t.options.parallelChunkUploads) for (var l = 0; l <
                                    r.upload.totalChunkCount; l++) s(); else s();
                                } else {
                                    for (var c = [], u = 0; u <
                                    e.length; u++) c[u] = {
                                        name: t._getParamName(u),
                                        data: i[u],
                                        filename: e[u].upload.filename,
                                    };
                                    t._uploadData(e, c);
                                }
                            }));
                        },
                    },
                    {
                        key: '_getChunk',
                        value: function (e, t) {
                            for (var n = 0; n <
                            e.upload.totalChunkCount; n++) if (void 0 !==
                                e.upload.chunks[n] && e.upload.chunks[n].xhr ===
                                t) return e.upload.chunks[n];
                        },
                    },
                    {
                        key: '_uploadData', value: function (e, t) {
                            var i, a = this, r = new XMLHttpRequest,
                                o = u(e, !0);
                            try {for (o.s(); !(i = o.n()).done;) {i.value.xhr = r;}} catch (e) {
                                o.e(e);
                            } finally {o.f();}
                            e[0].upload.chunked &&
                            (e[0].upload.chunks[t[0].chunkIndex].xhr = r);
                            var s = this.resolveOption(this.options.method, e),
                                l = this.resolveOption(this.options.url, e);
                            r.open(s, l, !0), this.resolveOption(
                                this.options.timeout, e) &&
                            (r.timeout = this.resolveOption(
                                this.options.timeout,
                                e)), r.withCredentials = !!this.options.withCredentials, r.onload = function (t) {
                                a._finishedUploading(e, r, t);
                            }, r.ontimeout = function () {
                                a._handleUploadError(e, r,
                                    'Request timedout after '.concat(
                                        a.options.timeout / 1e3, ' seconds'));
                            }, r.onerror = function () {
                                a._handleUploadError(e, r);
                            }, (null != r.upload
                                ? r.upload
                                : r).onprogress = function (t) {
                                return a._updateFilesUploadProgress(e, r, t);
                            };
                            var c = {
                                Accept: 'application/json',
                                'Cache-Control': 'no-cache',
                                'X-Requested-With': 'XMLHttpRequest',
                            };
                            for (var d in this.options.headers &&
                            n.extend(c, this.options.headers), c) {
                                var h = c[d];
                                h && r.setRequestHeader(d, h);
                            }
                            var f = new FormData;
                            if (this.options.params) {
                                var p = this.options.params;
                                for (var m in 'function' == typeof p &&
                                (p = p.call(this, e, r,
                                    e[0].upload.chunked ? this._getChunk(e[0],
                                        r) : null)), p) {
                                    var g = p[m];
                                    if (Array.isArray(g)) for (var v = 0; v <
                                    g.length; v++) f.append(m,
                                        g[v]); else f.append(m, g);
                                }
                            }
                            var y, b = u(e, !0);
                            try {
                                for (b.s(); !(y = b.n()).done;) {
                                    var x = y.value;
                                    this.emit('sending', x, r, f);
                                }
                            } catch (e) {b.e(e);} finally {b.f();}
                            this.options.uploadMultiple &&
                            this.emit('sendingmultiple', e, r,
                                f), this._addFormElementData(f);
                            for (var _ = 0; _ < t.length; _++) {
                                var w = t[_];
                                f.append(w.name, w.data, w.filename);
                            }
                            this.submitRequest(r, f, e);
                        },
                    },
                    {
                        key: '_transformFiles',
                        value: function (
                            e, t) {
                            for (var n = this, i = [], a = 0, r = function (r) {
                                n.options.transformFile.call(n, e[r],
                                    (function (n) {
                                        i[r] = n, ++a === e.length && t(i);
                                    }));
                            }, o = 0; o < e.length; o++) r(o);
                        },
                    },
                    {
                        key: '_addFormElementData',
                        value: function (e) {
                            if ('FORM' === this.element.tagName) {
                                var t, n = u(this.element.querySelectorAll(
                                    'input, textarea, select, button'), !0);
                                try {
                                    for (n.s(); !(t = n.n()).done;) {
                                        var i = t.value,
                                            a = i.getAttribute('name'),
                                            r = i.getAttribute('type');
                                        if (r && (r = r.toLowerCase()), null !=
                                        a) if ('SELECT' === i.tagName &&
                                            i.hasAttribute('multiple')) {
                                            var o, s = u(i.options, !0);
                                            try {
                                                for (s.s(); !(o = s.n()).done;) {
                                                    var l = o.value;
                                                    l.selected &&
                                                    e.append(a, l.value);
                                                }
                                            } catch (e) {
                                                s.e(e);
                                            } finally {s.f();}
                                        } else (!r || 'checkbox' !== r &&
                                            'radio' !== r || i.checked) &&
                                        e.append(a, i.value);
                                    }
                                } catch (e) {n.e(e);} finally {n.f();}
                            }
                        },
                    },
                    {
                        key: '_updateFilesUploadProgress',
                        value: function (e, t, n) {
                            if (e[0].upload.chunked) {
                                var i = e[0], a = this._getChunk(i, t);
                                n
                                    ? (a.progress = 100 * n.loaded /
                                    n.total, a.total = n.total, a.bytesSent = n.loaded)
                                    : (a.progress = 100, a.bytesSent = a.total), i.upload.progress = 0, i.upload.total = 0, i.upload.bytesSent = 0;
                                for (var r = 0; r <
                                i.upload.totalChunkCount; r++) i.upload.chunks[r] &&
                                void 0 !== i.upload.chunks[r].progress &&
                                (i.upload.progress += i.upload.chunks[r].progress, i.upload.total += i.upload.chunks[r].total, i.upload.bytesSent += i.upload.chunks[r].bytesSent);
                                i.upload.progress = i.upload.progress /
                                    i.upload.totalChunkCount, this.emit(
                                    'uploadprogress', i, i.upload.progress,
                                    i.upload.bytesSent);
                            } else {
                                var o, s = u(e, !0);
                                try {
                                    for (s.s(); !(o = s.n()).done;) {
                                        var l = o.value;
                                        l.upload.total && l.upload.bytesSent &&
                                        l.upload.bytesSent == l.upload.total ||
                                        (n
                                            ? (l.upload.progress = 100 *
                                                n.loaded /
                                                n.total, l.upload.total = n.total, l.upload.bytesSent = n.loaded)
                                            : (l.upload.progress = 100, l.upload.bytesSent = l.upload.total), this.emit(
                                            'uploadprogress', l,
                                            l.upload.progress,
                                            l.upload.bytesSent));
                                    }
                                } catch (e) {s.e(e);} finally {s.f();}
                            }
                        },
                    },
                    {
                        key: '_finishedUploading',
                        value: function (e, t, i) {
                            var a;
                            if (e[0].status !== n.CANCELED && 4 ===
                                t.readyState) {
                                if ('arraybuffer' !== t.responseType &&
                                    'blob' !== t.responseType &&
                                    (a = t.responseText, t.getResponseHeader(
                                        'content-type') &&
                                    ~t.getResponseHeader('content-type').
                                        indexOf('application/json'))) try {
                                    a = JSON.parse(a);
                                } catch (e) {i = e, a = 'Invalid JSON response from server.';}
                                this._updateFilesUploadProgress(e, t), 200 <=
                                t.status && t.status < 300
                                    ? e[0].upload.chunked
                                        ? e[0].upload.finishedChunkUpload(
                                            this._getChunk(e[0], t), a)
                                        : this._finished(e, a, i)
                                    : this._handleUploadError(e, t, a);
                            }
                        },
                    },
                    {
                        key: '_handleUploadError',
                        value: function (e, t, i) {
                            if (e[0].status !== n.CANCELED) {
                                if (e[0].upload.chunked &&
                                    this.options.retryChunks) {
                                    var a = this._getChunk(e[0], t);
                                    if (a.retries++ <
                                        this.options.retryChunksLimit) return void this._uploadData(
                                        e, [a.dataBlock]);
                                    console.warn(
                                        'Retried this chunk too often. Giving up.');
                                }
                                this._errorProcessing(e, i ||
                                    this.options.dictResponseError.replace(
                                        '{{statusCode}}', t.status), t);
                            }
                        },
                    },
                    {
                        key: 'submitRequest',
                        value: function (e, t, n) {
                            1 == e.readyState
                                ? e.send(t)
                                : console.warn(
                                'Cannot send this request because the XMLHttpRequest.readyState is not OPENED.');
                        },
                    },
                    {
                        key: '_finished',
                        value: function (e, t, i) {
                            var a, r = u(e, !0);
                            try {
                                for (r.s(); !(a = r.n()).done;) {
                                    var o = a.value;
                                    o.status = n.SUCCESS, this.emit('success',
                                        o, t, i), this.emit('complete', o);
                                }
                            } catch (e) {r.e(e);} finally {r.f();}
                            if (this.options.uploadMultiple &&
                            (this.emit('successmultiple', e, t, i), this.emit(
                                'completemultiple',
                                e)), this.options.autoProcessQueue) return this.processQueue();
                        },
                    },
                    {
                        key: '_errorProcessing',
                        value: function (e, t, i) {
                            var a, r = u(e, !0);
                            try {
                                for (r.s(); !(a = r.n()).done;) {
                                    var o = a.value;
                                    o.status = n.ERROR, this.emit('error', o, t,
                                        i), this.emit('complete', o);
                                }
                            } catch (e) {r.e(e);} finally {r.f();}
                            if (this.options.uploadMultiple &&
                            (this.emit('errormultiple', e, t, i), this.emit(
                                'completemultiple',
                                e)), this.options.autoProcessQueue) return this.processQueue();
                        },
                    }], [
                    {
                        key: 'initClass',
                        value: function () {
                            this.prototype.Emitter = r, this.prototype.events = [
                                'drop',
                                'dragstart',
                                'dragend',
                                'dragenter',
                                'dragover',
                                'dragleave',
                                'addedfile',
                                'addedfiles',
                                'removedfile',
                                'thumbnail',
                                'error',
                                'errormultiple',
                                'processing',
                                'processingmultiple',
                                'uploadprogress',
                                'totaluploadprogress',
                                'sending',
                                'sendingmultiple',
                                'success',
                                'successmultiple',
                                'canceled',
                                'canceledmultiple',
                                'complete',
                                'completemultiple',
                                'reset',
                                'maxfilesexceeded',
                                'maxfilesreached',
                                'queuecomplete'], this.prototype._thumbnailQueue = [], this.prototype._processingThumbnail = !1;
                        },
                    },
                    {
                        key: 'extend',
                        value: function (e) {
                            for (var t = arguments.length, n = new Array(
                                t > 1 ? t - 1 : 0), i = 1; i < t; i++) n[i -
                            1] = arguments[i];
                            for (var a = 0, r = n; a < r.length; a++) {
                                var o = r[a];
                                for (var s in o) {
                                    var l = o[s];
                                    e[s] = l;
                                }
                            }
                            return e;
                        },
                    },
                    {
                        key: 'uuidv4',
                        value: function () {
                            return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(
                                /[xy]/g, (function (e) {
                                    var t = 16 * Math.random() | 0;
                                    return ('x' === e ? t : 3 & t | 8).toString(
                                        16);
                                }));
                        },
                    }]), n;
            }(r);
            x.initClass(), x.version = '5.9.2', x.options = {}, x.optionsForElement = function (e) {
                return e.getAttribute('id')
                    ? x.options[w(e.getAttribute('id'))]
                    : void 0;
            }, x.instances = [], x.forElement = function (e) {
                if ('string' == typeof e &&
                (e = document.querySelector(e)), null ==
                (null != e ? e.dropzone : void 0)) throw new Error(
                    'No Dropzone found for given element. This is probably because you\'re trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.');
                return e.dropzone;
            }, x.autoDiscover = !0, x.discover = function () {
                var e;
                if (document.querySelectorAll) e = document.querySelectorAll(
                    '.dropzone'); else {
                    e = [];
                    var t = function (t) {
                        return function () {
                            var n, i = [], a = u(t, !0);
                            try {
                                for (a.s(); !(n = a.n()).done;) {
                                    var r = n.value;
                                    /(^| )dropzone($| )/.test(r.className)
                                        ? i.push(e.push(r))
                                        : i.push(void 0);
                                }
                            } catch (e) {a.e(e);} finally {a.f();}
                            return i;
                        }();
                    };
                    t(document.getElementsByTagName('div')), t(
                        document.getElementsByTagName('form'));
                }
                return function () {
                    var t, n = [], i = u(e, !0);
                    try {
                        for (i.s(); !(t = i.n()).done;) {
                            var a = t.value;
                            !1 !== x.optionsForElement(a)
                                ? n.push(new x(a))
                                : n.push(void 0);
                        }
                    } catch (e) {i.e(e);} finally {i.f();}
                    return n;
                }();
            }, x.blockedBrowsers = [/opera.*(Macintosh|Windows Phone).*version\/12/i], x.isBrowserSupported = function () {
                var e = !0;
                if (window.File && window.FileReader && window.FileList &&
                    window.Blob && window.FormData &&
                    document.querySelector) if ('classList' in
                    document.createElement('a')) {
                    void 0 !== x.blacklistedBrowsers &&
                    (x.blockedBrowsers = x.blacklistedBrowsers);
                    var t, n = u(x.blockedBrowsers, !0);
                    try {
                        for (n.s(); !(t = n.n()).done;) {
                            t.value.test(navigator.userAgent) && (e = !1);
                        }
                    } catch (e) {n.e(e);} finally {n.f();}
                } else e = !1; else e = !1;
                return e;
            }, x.dataURItoBlob = function (e) {
                for (var t = atob(e.split(',')[1]), n = e.split(',')[0].split(
                    ':')[1].split(';')[0], i = new ArrayBuffer(
                    t.length), a = new Uint8Array(
                    i), r = 0, o = t.length, s = 0 <= o; s ? r <= o : r >= o; s
                         ? r++
                         : r--) a[r] = t.charCodeAt(r);
                return new Blob([i], { type: n });
            };
            var _ = function (e, t) {
                return e.filter((function (e) {return e !== t;})).
                    map((function (e) {return e;}));
            }, w = function (e) {
                return e.replace(/[\-_](\w)/g,
                    (function (e) {return e.charAt(1).toUpperCase();}));
            };
            x.createElement = function (e) {
                var t = document.createElement('div');
                return t.innerHTML = e, t.childNodes[0];
            }, x.elementInside = function (e, t) {
                if (e === t) return !0;
                for (; e = e.parentNode;) if (e === t) return !0;
                return !1;
            }, x.getElement = function (e, t) {
                var n;
                if ('string' == typeof e
                    ? n = document.querySelector(e)
                    : null != e.nodeType && (n = e), null == n) throw new Error(
                    'Invalid `'.concat(t,
                        '` option provided. Please provide a CSS selector or a plain HTML element.'));
                return n;
            }, x.getElements = function (e, t) {
                var n, i;
                if (e instanceof Array) {
                    i = [];
                    try {
                        var a, r = u(e, !0);
                        try {
                            for (r.s(); !(a = r.n()).done;) n = a.value, i.push(
                                this.getElement(n, t));
                        } catch (e) {r.e(e);} finally {r.f();}
                    } catch (e) {i = null;}
                } else if ('string' == typeof e) {
                    i = [];
                    var o, s = u(document.querySelectorAll(e), !0);
                    try {
                        for (s.s(); !(o = s.n()).done;) n = o.value, i.push(n);
                    } catch (e) {s.e(e);} finally {s.f();}
                } else null != e.nodeType && (i = [e]);
                if (null == i || !i.length) throw new Error(
                    'Invalid `'.concat(t,
                        '` option provided. Please provide a CSS selector, a plain HTML element or a list of those.'));
                return i;
            }, x.confirm = function (e, t, n) {
                return window.confirm(e)
                    ? t()
                    : null != n ? n() : void 0;
            }, x.isValidFile = function (e, t) {
                if (!t) return !0;
                t = t.split(',');
                var n, i = e.type, a = i.replace(/\/.*$/, ''), r = u(t, !0);
                try {
                    for (r.s(); !(n = r.n()).done;) {
                        var o = n.value;
                        if ('.' === (o = o.trim()).charAt(0)) {
                            if (-1 !== e.name.toLowerCase().
                                indexOf(o.toLowerCase(),
                                    e.name.length - o.length)) return !0;
                        } else if (/\/\*$/.test(o)) {
                            if (a === o.replace(/\/.*$/, '')) return !0;
                        } else if (i === o) return !0;
                    }
                } catch (e) {r.e(e);} finally {r.f();}
                return !1;
            }, 'undefined' != typeof jQuery && null !== jQuery &&
            (jQuery.fn.dropzone = function (e) {
                return this.each((function () {return new x(this, e);}));
            }), x.ADDED = 'added', x.QUEUED = 'queued', x.ACCEPTED = x.QUEUED, x.UPLOADING = 'uploading', x.PROCESSING = x.UPLOADING, x.CANCELED = 'canceled', x.ERROR = 'error', x.SUCCESS = 'success';
            var k = function (
                e, t, n, i, a, r, o, s, l, c) {
                var u = function (e) {
                    e.naturalWidth;
                    var t = e.naturalHeight,
                        n = document.createElement('canvas');
                    n.width = 1, n.height = t;
                    var i = n.getContext('2d');
                    i.drawImage(e, 0, 0);
                    for (var a = i.getImageData(1, 0, 1,
                        t).data, r = 0, o = t, s = t; s > r;) 0 ===
                    a[4 * (s - 1) + 3] ? o = s : r = s, s = o + r >> 1;
                    var l = s / t;
                    return 0 === l ? 1 : l;
                }(t);
                return e.drawImage(t, n, i, a, r, o, s, l, c / u);
            }, M = function () {
                function e () {h(this, e);}

                return p(e, null, [
                    {
                        key: 'initClass',
                        value: function () {this.KEY_STR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';},
                    },
                    {
                        key: 'encode64',
                        value: function (e) {
                            for (var t = '', n = void 0, i = void 0, a = '', r = void 0, o = void 0, s = void 0, l = '', c = 0; r = (n = e[c++]) >>
                                2, o = (3 & n) << 4 | (i = e[c++]) >>
                                4, s = (15 & i) << 2 | (a = e[c++]) >>
                                6, l = 63 & a, isNaN(i)
                                ? s = l = 64
                                : isNaN(a) && (l = 64), t = t +
                                this.KEY_STR.charAt(r) +
                                this.KEY_STR.charAt(o) +
                                this.KEY_STR.charAt(s) + this.KEY_STR.charAt(
                                    l), n = i = a = "", r = o = s = l = "", c <
                            e.length;) ;
                            return t;
                        },
                    },
                    {
                        key: 'restore',
                        value: function (e, t) {
                            if (!e.match('data:image/jpeg;base64,')) return t;
                            var n = this.decode64(
                                e.replace('data:image/jpeg;base64,', '')),
                                i = this.slice2Segments(n),
                                a = this.exifManipulation(t, i);
                            return 'data:image/jpeg;base64,'.concat(
                                this.encode64(a));
                        },
                    },
                    {
                        key: 'exifManipulation',
                        value: function (e, t) {
                            var n = this.getExifArray(t),
                                i = this.insertExif(e, n);
                            return new Uint8Array(i);
                        },
                    },
                    {
                        key: 'getExifArray',
                        value: function (e) {
                            for (var t = void 0, n = 0; n < e.length;) {
                                if (255 === (t = e[n])[0] & 225 ===
                                    t[1]) return t;
                                n++;
                            }
                            return [];
                        },
                    },
                    {
                        key: 'insertExif',
                        value: function (e, t) {
                            var n = e.replace('data:image/jpeg;base64,', ''),
                                i = this.decode64(n), a = i.indexOf(255, 3),
                                r = i.slice(0, a), o = i.slice(a), s = r;
                            return s = (s = s.concat(t)).concat(o);
                        },
                    },
                    {
                        key: 'slice2Segments',
                        value: function (e) {
                            for (var t = 0, n = []; ;) {
                                if (255 === e[t] & 218 === e[t + 1]) break;
                                if (255 === e[t] & 216 ===
                                    e[t + 1]) t += 2; else {
                                    var i = t + (256 * e[t + 2] + e[t + 3]) + 2,
                                        a = e.slice(t, i);
                                    n.push(a), t = i;
                                }
                                if (t > e.length) break;
                            }
                            return n;
                        },
                    },
                    {
                        key: 'decode64',
                        value: function (e) {
                            var t = void 0, n = void 0, i = '', a = void 0,
                                r = void 0, o = '', s = 0, l = [];
                            for (/[^A-Za-z0-9\+\/\=]/g.exec(e) && console.warn(
                                'There were invalid base64 characters in the input text.\nValid base64 characters are A-Z, a-z, 0-9, \'+\', \'/\',and \'=\'\nExpect errors in decoding.'), e = e.replace(
                                /[^A-Za-z0-9\+\/\=]/g,
                                ''); t = this.KEY_STR.indexOf(e.charAt(s++)) <<
                                2 | (a = this.KEY_STR.indexOf(e.charAt(s++))) >>
                                4, n = (15 & a) << 4 |
                                (r = this.KEY_STR.indexOf(e.charAt(s++))) >>
                                2, i = (3 & r) << 6 | (o = this.KEY_STR.indexOf(
                                e.charAt(s++))), l.push(t), 64 !== r &&
                            l.push(n), 64 !== o &&
                            l.push(i), t = n = i = "", a = r = o = "", s <
                            e.length;) ;
                            return l;
                        },
                    }]), e;
            }();
            M.initClass();
            x._autoDiscoverFunction = function () {if (x.autoDiscover) return x.discover();}, function (
                e, t) {
                var n = !1, i = !0, a = e.document, r = a.documentElement,
                    o = a.addEventListener ? 'addEventListener' : 'attachEvent',
                    s = a.addEventListener
                        ? 'removeEventListener'
                        : 'detachEvent', l = a.addEventListener ? '' : 'on',
                    c = function i (r) {
                        if ('readystatechange' !== r.type || 'complete' ===
                            a.readyState) return ('load' === r.type ? e : a)[s](
                            l + r.type, i, !1), !n && (n = !0) ? t.call(e,
                            r.type || r) : void 0;
                    };
                if ('complete' !== a.readyState) {
                    if (a.createEventObject && r.doScroll) {
                        try {i = !e.frameElement;} catch (e) {}
                        i && function e () {
                            try {
                                r.doScroll('left');
                            } catch (t) {return void setTimeout(e, 50);}
                            return c('poll');
                        }();
                    }
                    a[o](l + 'DOMContentLoaded', c, !1), a[o](
                        l + 'readystatechange', c, !1), e[o](l + 'load', c, !1);
                }
            }(window, x._autoDiscoverFunction), window.Dropzone = x;
            var L = x;
        }(), i;
    }();
})), Dropzone.autoDiscover = !1, Dropzone.prototype.previewTemplate = '    <div class="dz-preview dz-file-preview">\n        <div class="dz-image"><img data-dz-thumbnail /></div>\n        \n        <div class="dz-details">\n            <div class="dz-size"><span data-dz-size></span></div>\n            <div class="dz-filename"><span data-dz-name></span></div>\n        </div>\n\n        <div class="dz-progress"><span class="dz-upload" data-dz-uploadprogress></span></div>\n\n        <div class="dz-error-message"><span data-dz-errormessage></span></div>\n        \n        <div class="dz-success-mark">\n            <svg width="54px" height="54px" viewBox="0 0 54 54" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n                <title>Check</title>\n                <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n                    <path d="M23.5,31.8431458 L17.5852419,25.9283877 C16.0248253,24.3679711 13.4910294,24.366835 11.9289322,25.9289322 C10.3700136,27.4878508 10.3665912,30.0234455 11.9283877,31.5852419 L20.4147581,40.0716123 C20.5133999,40.1702541 20.6159315,40.2626649 20.7218615,40.3488435 C22.2835669,41.8725651 24.794234,41.8626202 26.3461564,40.3106978 L43.3106978,23.3461564 C44.8771021,21.7797521 44.8758057,19.2483887 43.3137085,17.6862915 C41.7547899,16.1273729 39.2176035,16.1255422 37.6538436,17.6893022 L23.5,31.8431458 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z" stroke-opacity="0.198794158" stroke="#747474" fill-opacity="0.816519475" fill="#FFFFFF"></path>\n                </g>\n            </svg>\n        </div>\n\n        <div class="dz-error-mark">\n            <svg width="54px" height="54px" viewBox="0 0 54 54" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n                <title>Error</title>\n                <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n                    <g stroke="#747474" stroke-opacity="0.198794158" fill="#FFFFFF" fill-opacity="0.816519475">\n                    <path d="M32.6568542,29 L38.3106978,23.3461564 C39.8771021,21.7797521 39.8758057,19.2483887 38.3137085,17.6862915 C36.7547899,16.1273729 34.2176035,16.1255422 32.6538436,17.6893022 L27,23.3431458 L21.3461564,17.6893022 C19.7823965,16.1255422 17.2452101,16.1273729 15.6862915,17.6862915 C14.1241943,19.2483887 14.1228979,21.7797521 15.6893022,23.3461564 L21.3431458,29 L15.6893022,34.6538436 C14.1228979,36.2202479 14.1241943,38.7516113 15.6862915,40.3137085 C17.2452101,41.8726271 19.7823965,41.8744578 21.3461564,40.3106978 L27,34.6568542 L32.6538436,40.3106978 C34.2176035,41.8744578 36.7547899,41.8726271 38.3137085,40.3137085 C39.8758057,38.7516113 39.8771021,36.2202479 38.3106978,34.6538436 L32.6568542,29 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z"></path>\n                    </g>\n                </g>\n            </svg>\n        </div>\n    </div>',
    /*!
 * Quill Editor v1.3.7
 * https://quilljs.com/
 * Copyright (c) 2014, Jason Chen
 * Copyright (c) 2013, salesforce.com
 */
    function (e, t) {
        'object' == typeof exports && 'object' == typeof module
            ? module.exports = t()
            : 'function' == typeof define && define.amd
            ? define([], t)
            : 'object' == typeof exports ? exports.Quill = t() : e.Quill = t();
    }('undefined' != typeof self ? self : this, (function () {
        return function (e) {
            var t = {};

            function n (i) {
                if (t[i]) return t[i].exports;
                var a = t[i] = { i: i, l: !1, exports: {} };
                return e[i].call(a.exports, a, a.exports,
                    n), a.l = !0, a.exports;
            }

            return n.m = e, n.c = t, n.d = function (e, t, i) {
                n.o(e, t) || Object.defineProperty(e, t,
                    { configurable: !1, enumerable: !0, get: i });
            }, n.n = function (e) {
                var t = e && e.__esModule
                    ? function () {return e.default;}
                    : function () {return e;};
                return n.d(t, 'a', t), t;
            }, n.o = function (
                e, t) {
                return Object.prototype.hasOwnProperty.call(e, t);
            }, n.p = '', n(n.s = 109);
        }([
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i = n(17), a = n(18), r = n(19), o = n(45), s = n(46),
                    l = n(47), c = n(48), u = n(49), d = n(12), h = n(32),
                    f = n(33), p = n(31), m = n(1), g = {
                        Scope: m.Scope,
                        create: m.create,
                        find: m.find,
                        query: m.query,
                        register: m.register,
                        Container: i.default,
                        Format: a.default,
                        Leaf: r.default,
                        Embed: c.default,
                        Scroll: o.default,
                        Block: l.default,
                        Inline: s.default,
                        Text: u.default,
                        Attributor: {
                            Attribute: d.default,
                            Class: h.default,
                            Style: f.default,
                            Store: p.default,
                        },
                    };
                t.default = g;
            },
            function (e, t, n) {
                'use strict';
                var i, a = this && this.__extends ||
                    (i = Object.setPrototypeOf || { __proto__: [] } instanceof
                        Array && function (e, t) {e.__proto__ = t;} ||
                        function (e, t) {
                            for (var n in t) t.hasOwnProperty(n) &&
                            (e[n] = t[n]);
                        }, function (e, t) {
                        function n () {this.constructor = e;}

                        i(e, t), e.prototype = null === t
                            ? Object.create(t)
                            : (n.prototype = t.prototype, new n);
                    });
                Object.defineProperty(t, '__esModule', { value: !0 });
                var r = function (e) {
                    function t (t) {
                        var n = this;
                        return t = '[Parchment] ' + t, (n = e.call(this, t) ||
                            this).message = t, n.name = n.constructor.name, n;
                    }

                    return a(t, e), t;
                }(Error);
                t.ParchmentError = r;
                var o, s = {}, l = {}, c = {}, u = {};

                function d (e, t) {
                    var n;
                    if (void 0 === t && (t = o.ANY), 'string' ==
                    typeof e) n = u[e] || s[e]; else if (e instanceof Text ||
                        e.nodeType ===
                        Node.TEXT_NODE) n = u.text; else if ('number' ==
                        typeof e) e & o.LEVEL & o.BLOCK ? n = u.block : e &
                        o.LEVEL & o.INLINE &&
                        (n = u.inline); else if (e instanceof HTMLElement) {
                        var i = (e.getAttribute('class') || '').split(/\s+/);
                        for (var a in i) if (n = l[i[a]]) break;
                        n = n || c[e.tagName];
                    }
                    return null == n ? null : t & o.LEVEL & n.scope && t &
                    o.TYPE & n.scope ? n : null;
                }

                t.DATA_KEY = '__blot', function (e) {e[e.TYPE = 3] = 'TYPE', e[e.LEVEL = 12] = 'LEVEL', e[e.ATTRIBUTE = 13] = 'ATTRIBUTE', e[e.BLOT = 14] = 'BLOT', e[e.INLINE = 7] = 'INLINE', e[e.BLOCK = 11] = 'BLOCK', e[e.BLOCK_BLOT = 10] = 'BLOCK_BLOT', e[e.INLINE_BLOT = 6] = 'INLINE_BLOT', e[e.BLOCK_ATTRIBUTE = 9] = 'BLOCK_ATTRIBUTE', e[e.INLINE_ATTRIBUTE = 5] = 'INLINE_ATTRIBUTE', e[e.ANY = 15] = 'ANY';}(
                    o = t.Scope || (t.Scope = {})), t.create = function (
                    e, t) {
                    var n = d(e);
                    if (null == n) throw new r(
                        'Unable to create ' + e + ' blot');
                    var i = n,
                        a = e instanceof Node || e.nodeType === Node.TEXT_NODE
                            ? e
                            : i.create(t);
                    return new i(a, t);
                }, t.find = function e (n, i) {
                    return void 0 === i && (i = !1), null == n ? null : null !=
                    n[t.DATA_KEY]
                        ? n[t.DATA_KEY].blot
                        : i ? e(n.parentNode, i) : null;
                }, t.query = d, t.register = function e () {
                    for (var t = [], n = 0; n <
                    arguments.length; n++) t[n] = arguments[n];
                    if (t.length > 1) return t.map(
                        (function (t) {return e(t);}));
                    var i = t[0];
                    if ('string' != typeof i.blotName && 'string' !=
                        typeof i.attrName) throw new r('Invalid definition');
                    if ('abstract' === i.blotName) throw new r(
                        'Cannot register abstract class');
                    if (u[i.blotName || i.attrName] = i, 'string' ==
                    typeof i.keyName) s[i.keyName] = i; else if (null !=
                    i.className && (l[i.className] = i), null != i.tagName) {
                        Array.isArray(i.tagName)
                            ? i.tagName = i.tagName.map(
                            (function (e) {return e.toUpperCase();}))
                            : i.tagName = i.tagName.toUpperCase();
                        var a = Array.isArray(i.tagName)
                            ? i.tagName
                            : [i.tagName];
                        a.forEach((function (e) {
                            null != c[e] && null != i.className || (c[e] = i);
                        }));
                    }
                    return i;
                };
            },
            function (e, t, n) {
                var i = n(51), a = n(11), r = n(3), o = n(20),
                    s = String.fromCharCode(0), l = function (e) {
                        Array.isArray(e) ? this.ops = e : null != e &&
                        Array.isArray(e.ops) ? this.ops = e.ops : this.ops = [];
                    };
                l.prototype.insert = function (e, t) {
                    var n = {};
                    return 0 === e.length ? this : (n.insert = e, null != t &&
                    'object' == typeof t && Object.keys(t).length > 0 &&
                    (n.attributes = t), this.push(n));
                }, l.prototype.delete = function (e) {
                    return e <= 0
                        ? this
                        : this.push({ delete: e });
                }, l.prototype.retain = function (e, t) {
                    if (e <= 0) return this;
                    var n = { retain: e };
                    return null != t && 'object' == typeof t &&
                    Object.keys(t).length > 0 && (n.attributes = t), this.push(
                        n);
                }, l.prototype.push = function (e) {
                    var t = this.ops.length, n = this.ops[t - 1];
                    if (e = r(!0, {}, e), 'object' == typeof n) {
                        if ('number' == typeof e.delete && 'number' ==
                            typeof n.delete) return this.ops[t -
                        1] = { delete: n.delete + e.delete }, this;
                        if ('number' == typeof n.delete && null != e.insert &&
                            (t -= 1, 'object' != typeof (n = this.ops[t -
                            1]))) return this.ops.unshift(e), this;
                        if (a(e.attributes, n.attributes)) {
                            if ('string' == typeof e.insert && 'string' ==
                                typeof n.insert) return this.ops[t -
                            1] = { insert: n.insert + e.insert }, 'object' ==
                            typeof e.attributes &&
                            (this.ops[t - 1].attributes = e.attributes), this;
                            if ('number' == typeof e.retain && 'number' ==
                                typeof n.retain) return this.ops[t -
                            1] = { retain: n.retain + e.retain }, 'object' ==
                            typeof e.attributes &&
                            (this.ops[t - 1].attributes = e.attributes), this;
                        }
                    }
                    return t === this.ops.length
                        ? this.ops.push(e)
                        : this.ops.splice(t, 0, e), this;
                }, l.prototype.chop = function () {
                    var e = this.ops[this.ops.length - 1];
                    return e && e.retain && !e.attributes &&
                    this.ops.pop(), this;
                }, l.prototype.filter = function (e) {
                    return this.ops.filter(e);
                }, l.prototype.forEach = function (e) {
                    this.ops.forEach(e);
                }, l.prototype.map = function (e) {
                    return this.ops.map(e);
                }, l.prototype.partition = function (e) {
                    var t = [], n = [];
                    return this.forEach(
                        (function (i) {(e(i) ? t : n).push(i);})), [t, n];
                }, l.prototype.reduce = function (e, t) {
                    return this.ops.reduce(e, t);
                }, l.prototype.changeLength = function () {
                    return this.reduce((function (e, t) {
                        return t.insert
                            ? e + o.length(t)
                            : t.delete ? e - t.delete : e;
                    }), 0);
                }, l.prototype.length = function () {
                    return this.reduce(
                        (function (e, t) {return e + o.length(t);}), 0);
                }, l.prototype.slice = function (e, t) {
                    e = e || 0, 'number' != typeof t && (t = 1 / 0);
                    for (var n = [], i = o.iterator(this.ops), a = 0; a < t &&
                    i.hasNext();) {
                        var r;
                        a < e ? r = i.next(e - a) : (r = i.next(t - a), n.push(
                            r)), a += o.length(r);
                    }
                    return new l(n);
                }, l.prototype.compose = function (e) {
                    var t = o.iterator(this.ops), n = o.iterator(e.ops), i = [],
                        r = n.peek();
                    if (null != r && 'number' == typeof r.retain && null ==
                        r.attributes) {
                        for (var s = r.retain; "insert" === t.peekType() &&
                        t.peekLength() <= s;) s -= t.peekLength(), i.push(
                            t.next());
                        r.retain - s > 0 && n.next(r.retain - s);
                    }
                    for (var c = new l(i); t.hasNext() ||
                    n.hasNext();) if ('insert' === n.peekType()) c.push(
                        n.next()); else if ('delete' === t.peekType()) c.push(
                        t.next()); else {
                        var u = Math.min(t.peekLength(), n.peekLength()),
                            d = t.next(u), h = n.next(u);
                        if ('number' == typeof h.retain) {
                            var f = {};
                            'number' == typeof d.retain
                                ? f.retain = u
                                : f.insert = d.insert;
                            var p = o.attributes.compose(d.attributes,
                                h.attributes, 'number' == typeof d.retain);
                            if (p && (f.attributes = p), c.push(
                                f), !n.hasNext() &&
                            a(c.ops[c.ops.length - 1], f)) {
                                var m = new l(t.rest());
                                return c.concat(m).chop();
                            }
                        } else 'number' == typeof h.delete && 'number' ==
                        typeof d.retain && c.push(h);
                    }
                    return c.chop();
                }, l.prototype.concat = function (e) {
                    var t = new l(this.ops.slice());
                    return e.ops.length > 0 &&
                    (t.push(e.ops[0]), t.ops = t.ops.concat(e.ops.slice(1))), t;
                }, l.prototype.diff = function (e, t) {
                    if (this.ops === e.ops) return new l;
                    var n = [this, e].map((function (t) {
                            return t.map((function (n) {
                                if (null != n.insert) return 'string' ==
                                typeof n.insert ? n.insert : s;
                                throw new Error(
                                    'diff() called ' + (t === e ? 'on' : 'with') +
                                    ' non-document');
                            })).join('');
                        })), r = new l, c = i(n[0], n[1], t),
                        u = o.iterator(this.ops), d = o.iterator(e.ops);
                    return c.forEach((function (e) {
                        for (var t = e[1].length; t > 0;) {
                            var n = 0;
                            switch (e[0]) {
                                case i.INSERT:
                                    n = Math.min(d.peekLength(), t), r.push(
                                        d.next(n));
                                    break;
                                case i.DELETE:
                                    n = Math.min(t, u.peekLength()), u.next(
                                        n), r.delete(n);
                                    break;
                                case i.EQUAL:
                                    n = Math.min(u.peekLength(), d.peekLength(),
                                        t);
                                    var s = u.next(n), l = d.next(n);
                                    a(s.insert, l.insert) ? r.retain(n,
                                        o.attributes.diff(s.attributes,
                                            l.attributes)) : r.push(l).
                                        delete(n);
                            }
                            t -= n;
                        }
                    })), r.chop();
                }, l.prototype.eachLine = function (e, t) {
                    t = t || '\n';
                    for (var n = o.iterator(
                        this.ops), i = new l, a = 0; n.hasNext();) {
                        if ('insert' !== n.peekType()) return;
                        var r = n.peek(), s = o.length(r) - n.peekLength(),
                            c = 'string' == typeof r.insert ? r.insert.indexOf(
                                t, s) - s : -1;
                        if (c < 0) i.push(n.next()); else if (c > 0) i.push(
                            n.next(c)); else {
                            if (!1 ===
                                e(i, n.next(1).attributes || {}, a)) return;
                            a += 1, i = new l;
                        }
                    }
                    i.length() > 0 && e(i, {}, a);
                }, l.prototype.transform = function (
                    e, t) {
                    if (t = !!t, 'number' ==
                    typeof e) return this.transformPosition(e, t);
                    for (var n = o.iterator(this.ops), i = o.iterator(
                        e.ops), a = new l; n.hasNext() ||
                         i.hasNext();) if ('insert' !== n.peekType() || !t &&
                        'insert' === i.peekType()) if ('insert' ===
                        i.peekType()) a.push(i.next()); else {
                        var r = Math.min(n.peekLength(), i.peekLength()),
                            s = n.next(r), c = i.next(r);
                        if (s.delete) continue;
                        c.delete ? a.push(c) : a.retain(r,
                            o.attributes.transform(s.attributes, c.attributes,
                                t));
                    } else a.retain(o.length(n.next()));
                    return a.chop();
                }, l.prototype.transformPosition = function (e, t) {
                    t = !!t;
                    for (var n = o.iterator(this.ops), i = 0; n.hasNext() &&
                    i <= e;) {
                        var a = n.peekLength(), r = n.peekType();
                        n.next(), 'delete' !== r ? ('insert' === r &&
                        (i < e || !t) && (e += a), i += a) : e -= Math.min(a,
                            e - i);
                    }
                    return e;
                }, e.exports = l;
            },
            function (e, t) {
                'use strict';
                var n = Object.prototype.hasOwnProperty,
                    i = Object.prototype.toString, a = Object.defineProperty,
                    r = Object.getOwnPropertyDescriptor, o = function (e) {
                        return 'function' == typeof Array.isArray
                            ? Array.isArray(e)
                            : '[object Array]' === i.call(e);
                    }, s = function (e) {
                        if (!e || '[object Object]' !== i.call(e)) return !1;
                        var t, a = n.call(e, 'constructor'),
                            r = e.constructor && e.constructor.prototype &&
                                n.call(e.constructor.prototype, 'isPrototypeOf');
                        if (e.constructor && !a && !r) return !1;
                        for (t in e) ;
                        return void 0 === t || n.call(e, t);
                    }, l = function (e, t) {
                        a && '__proto__' === t.name ? a(e, t.name, {
                            enumerable: !0,
                            configurable: !0,
                            value: t.newValue,
                            writable: !0,
                        }) : e[t.name] = t.newValue;
                    }, c = function (e, t) {
                        if ('__proto__' === t) {
                            if (!n.call(e, t)) return;
                            if (r) return r(e, t).value;
                        }
                        return e[t];
                    };
                e.exports = function e () {
                    var t, n, i, a, r, u, d = arguments[0], h = 1,
                        f = arguments.length, p = !1;
                    for ('boolean' == typeof d &&
                         (p = d, d = arguments[1] || {}, h = 2), (null == d ||
                        'object' != typeof d && 'function' != typeof d) &&
                    (d = {}); h < f; ++h) if (null !=
                        (t = arguments[h])) for (n in t) i = c(d, n), d !==
                    (a = c(t, n)) &&
                    (p && a && (s(a) || (r = o(a))) ? (r ? (r = !1, u = i &&
                    o(i) ? i : []) : u = i && s(i) ? i : {}, l(d,
                        { name: n, newValue: e(p, u, a) })) : void 0 !== a &&
                        l(d, { name: n, newValue: a }));
                    return d;
                };
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.default = t.BlockEmbed = t.bubbleFormats = void 0;
                var i = function () {
                        function e (e, t) {
                            for (var n = 0; n < t.length; n++) {
                                var i = t[n];
                                i.enumerable = i.enumerable ||
                                    !1, i.configurable = !0, 'value' in i &&
                                (i.writable = !0), Object.defineProperty(e, i.key,
                                    i);
                            }
                        }

                        return function (t, n, i) {
                            return n && e(t.prototype, n), i && e(t, i), t;
                        };
                    }(), a = function e (t, n, i) {
                        null === t && (t = Function.prototype);
                        var a = Object.getOwnPropertyDescriptor(t, n);
                        if (void 0 === a) {
                            var r = Object.getPrototypeOf(t);
                            return null === r ? void 0 : e(r, n, i);
                        }
                        if ('value' in a) return a.value;
                        var o = a.get;
                        return void 0 !== o ? o.call(i) : void 0;
                    }, r = d(n(3)), o = d(n(2)), s = d(n(0)), l = d(n(16)),
                    c = d(n(6)), u = d(n(7));

                function d (e) {return e && e.__esModule ? e : { default: e };}

                function h (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function f (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                function p (e, t) {
                    if ('function' != typeof t && null !==
                        t) throw new TypeError(
                        'Super expression must either be null or a function, not ' +
                        typeof t);
                    e.prototype = Object.create(t && t.prototype, {
                        constructor: {
                            value: e,
                            enumerable: !1,
                            writable: !0,
                            configurable: !0,
                        },
                    }), t && (Object.setPrototypeOf
                        ? Object.setPrototypeOf(e, t)
                        : e.__proto__ = t);
                }

                var m = function (e) {
                    function t () {
                        return h(this, t), f(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return p(t, e), i(t, [
                        {
                            key: 'attach',
                            value: function () {
                                a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'attach', this).
                                    call(
                                        this), this.attributes = new s.default.Attributor.Store(
                                    this.domNode);
                            },
                        },
                        {
                            key: 'delta',
                            value: function () {
                                return (new o.default).insert(this.value(),
                                    (0, r.default)(this.formats(),
                                        this.attributes.values()));
                            },
                        },
                        {
                            key: 'format',
                            value: function (e, t) {
                                var n = s.default.query(e,
                                    s.default.Scope.BLOCK_ATTRIBUTE);
                                null != n && this.attributes.attribute(n, t);
                            },
                        },
                        {
                            key: 'formatAt',
                            value: function (e, t, n, i) {this.format(n, i);},
                        },
                        {
                            key: 'insertAt',
                            value: function (e, n, i) {
                                if ('string' == typeof n && n.endsWith('\n')) {
                                    var r = s.default.create(g.blotName);
                                    this.parent.insertBefore(r,
                                        0 === e ? this : this.next), r.insertAt(
                                        0, n.slice(0, -1));
                                } else a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'insertAt', this).call(this, e, n, i);
                            },
                        }]), t;
                }(s.default.Embed);
                m.scope = s.default.Scope.BLOCK_BLOT;
                var g = function (e) {
                    function t (e) {
                        h(this, t);
                        var n = f(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).call(this,
                                e));
                        return n.cache = {}, n;
                    }

                    return p(t, e), i(t, [
                        {
                            key: 'delta',
                            value: function () {
                                return null == this.cache.delta &&
                                (this.cache.delta = this.descendants(
                                    s.default.Leaf).
                                    reduce((function (e, t) {
                                        return 0 === t.length() ? e : e.insert(
                                            t.value(), v(t));
                                    }), new o.default).
                                    insert('\n', v(this))), this.cache.delta;
                            },
                        },
                        {
                            key: 'deleteAt',
                            value: function (e, n) {
                                a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'deleteAt', this).
                                    call(this, e, n), this.cache = {};
                            },
                        },
                        {
                            key: 'formatAt',
                            value: function (e, n, i, r) {
                                n <= 0 ||
                                (s.default.query(i, s.default.Scope.BLOCK)
                                    ? e + n === this.length() &&
                                    this.format(i, r)
                                    : a(t.prototype.__proto__ ||
                                        Object.getPrototypeOf(t.prototype),
                                        'formatAt', this).
                                        call(this, e,
                                            Math.min(n, this.length() - e - 1),
                                            i, r), this.cache = {});
                            },
                        },
                        {
                            key: 'insertAt',
                            value: function (e, n, i) {
                                if (null != i) return a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'insertAt', this).call(this, e, n, i);
                                if (0 !== n.length) {
                                    var r = n.split('\n'), o = r.shift();
                                    o.length > 0 &&
                                    (e < this.length() - 1 || null ==
                                    this.children.tail
                                        ? a(t.prototype.__proto__ ||
                                            Object.getPrototypeOf(t.prototype),
                                            'insertAt', this).
                                            call(this,
                                                Math.min(e, this.length() - 1),
                                                o)
                                        : this.children.tail.insertAt(
                                            this.children.tail.length(),
                                            o), this.cache = {});
                                    var s = this;
                                    r.reduce((function (e, t) {
                                        return (s = s.split(e, !0)).insertAt(0,
                                            t), t.length;
                                    }), e + o.length);
                                }
                            },
                        },
                        {
                            key: 'insertBefore',
                            value: function (e, n) {
                                var i = this.children.head;
                                a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'insertBefore', this).
                                    call(this, e, n), i instanceof l.default &&
                                i.remove(), this.cache = {};
                            },
                        },
                        {
                            key: 'length',
                            value: function () {
                                return null == this.cache.length &&
                                (this.cache.length = a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'length', this).call(this) +
                                    1), this.cache.length;
                            },
                        },
                        {
                            key: 'moveChildren',
                            value: function (e, n) {
                                a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'moveChildren', this).
                                    call(this, e, n), this.cache = {};
                            },
                        },
                        {
                            key: 'optimize',
                            value: function (e) {
                                a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'optimize', this).
                                    call(this, e), this.cache = {};
                            },
                        },
                        {
                            key: 'path',
                            value: function (e) {
                                return a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype), 'path',
                                    this).call(this, e, !0);
                            },
                        },
                        {
                            key: 'removeChild',
                            value: function (e) {
                                a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'removeChild', this).
                                    call(this, e), this.cache = {};
                            },
                        },
                        {
                            key: 'split',
                            value: function (e) {
                                var n = arguments.length > 1 && void 0 !==
                                    arguments[1] && arguments[1];
                                if (n && (0 === e || e >= this.length() - 1)) {
                                    var i = this.clone();
                                    return 0 === e
                                        ? (this.parent.insertBefore(i,
                                            this), this)
                                        : (this.parent.insertBefore(i,
                                            this.next), i);
                                }
                                var r = a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype), 'split',
                                    this).call(this, e, n);
                                return this.cache = {}, r;
                            },
                        }]), t;
                }(s.default.Block);

                function v (e) {
                    var t = arguments.length > 1 && void 0 !== arguments[1]
                        ? arguments[1]
                        : {};
                    return null == e ? t : ('function' == typeof e.formats &&
                    (t = (0, r.default)(t, e.formats())), null == e.parent ||
                    'scroll' == e.parent.blotName || e.parent.statics.scope !==
                    e.statics.scope ? t : v(e.parent, t));
                }

                g.blotName = 'block', g.tagName = 'P', g.defaultChild = 'break', g.allowedChildren = [
                    c.default,
                    s.default.Embed,
                    u.default], t.bubbleFormats = v, t.BlockEmbed = m, t.default = g;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.default = t.overload = t.expandConfig = void 0;
                var i = 'function' == typeof Symbol && 'symbol' ==
                typeof Symbol.iterator
                    ? function (e) {return typeof e;}
                    : function (e) {
                        return e && 'function' == typeof Symbol &&
                        e.constructor === Symbol && e !== Symbol.prototype
                            ? 'symbol'
                            : typeof e;
                    }, a = function (e, t) {
                    if (Array.isArray(e)) return e;
                    if (Symbol.iterator in Object(e)) return function (
                        e, t) {
                        var n = [], i = !0, a = !1, r = void 0;
                        try {
                            for (var o, s = e[Symbol.iterator](); !(i = (o = s.next()).done) &&
                            (n.push(o.value), !t || n.length !== t); i = !0) ;
                        } catch (e) {a = !0, r = e;} finally {
                            try {
                                !i && s.return && s.return();
                            } finally {if (a) throw r;}
                        }
                        return n;
                    }(e, t);
                    throw new TypeError(
                        'Invalid attempt to destructure non-iterable instance');
                }, r = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }();
                n(50);
                var o = g(n(2)), s = g(n(14)), l = g(n(8)), c = g(n(9)),
                    u = g(n(0)), d = n(15), h = g(d), f = g(n(3)), p = g(n(10)),
                    m = g(n(34));

                function g (e) {return e && e.__esModule ? e : { default: e };}

                function v (e, t, n) {
                    return t in e ? Object.defineProperty(e, t, {
                        value: n,
                        enumerable: !0,
                        configurable: !0,
                        writable: !0,
                    }) : e[t] = n, e;
                }

                function y (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                var b = (0, p.default)('quill'), x = function () {
                    function e (t) {
                        var n = this,
                            i = arguments.length > 1 && void 0 !== arguments[1]
                                ? arguments[1]
                                : {};
                        if (y(this, e), this.options = _(t,
                            i), this.container = this.options.container, null ==
                        this.container) return b.error(
                            'Invalid Quill container', t);
                        this.options.debug && e.debug(this.options.debug);
                        var a = this.container.innerHTML.trim();
                        this.container.classList.add(
                            'ql-container'), this.container.innerHTML = '', this.container.__quill = this, this.root = this.addContainer(
                            'ql-editor'), this.root.classList.add(
                            'ql-blank'), this.root.setAttribute('data-gramm',
                            !1), this.scrollingContainer = this.options.scrollingContainer ||
                            this.root, this.emitter = new l.default, this.scroll = u.default.create(
                            this.root, {
                                emitter: this.emitter,
                                whitelist: this.options.formats,
                            }), this.editor = new s.default(
                            this.scroll), this.selection = new h.default(
                            this.scroll,
                            this.emitter), this.theme = new this.options.theme(
                            this,
                            this.options), this.keyboard = this.theme.addModule(
                            'keyboard'), this.clipboard = this.theme.addModule(
                            'clipboard'), this.history = this.theme.addModule(
                            'history'), this.theme.init(), this.emitter.on(
                            l.default.events.EDITOR_CHANGE, (function (e) {
                                e === l.default.events.TEXT_CHANGE &&
                                n.root.classList.toggle('ql-blank',
                                    n.editor.isBlank());
                            })), this.emitter.on(l.default.events.SCROLL_UPDATE,
                            (function (e, t) {
                                var i = n.selection.lastRange,
                                    a = i && 0 === i.length ? i.index : void 0;
                                w.call(n, (function () {
                                    return n.editor.update(null, t, a);
                                }), e);
                            }));
                        var r = this.clipboard.convert(
                            '<div class=\'ql-editor\' style="white-space: normal;">' +
                            a + '<p><br></p></div>');
                        this.setContents(
                            r), this.history.clear(), this.options.placeholder &&
                        this.root.setAttribute('data-placeholder',
                            this.options.placeholder), this.options.readOnly &&
                        this.disable();
                    }

                    return r(e, null, [
                        {
                            key: 'debug',
                            value: function (e) {
                                !0 === e && (e = 'log'), p.default.level(e);
                            },
                        },
                        {
                            key: 'find',
                            value: function (e) {
                                return e.__quill || u.default.find(e);
                            },
                        },
                        {
                            key: 'import',
                            value: function (e) {
                                return null == this.imports[e] && b.error(
                                    'Cannot import ' + e +
                                    '. Are you sure it was registered?'), this.imports[e];
                            },
                        },
                        {
                            key: 'register',
                            value: function (e, t) {
                                var n = this,
                                    i = arguments.length > 2 && void 0 !==
                                        arguments[2] && arguments[2];
                                if ('string' != typeof e) {
                                    var a = e.attrName || e.blotName;
                                    'string' == typeof a ? this.register(
                                        'formats/' + a, e, t) : Object.keys(e).
                                        forEach((function (i) {
                                            n.register(i, e[i], t);
                                        }));
                                } else null == this.imports[e] || i ||
                                b.warn('Overwriting ' + e + ' with',
                                    t), this.imports[e] = t, (e.startsWith(
                                    'blots/') || e.startsWith('formats/')) &&
                                'abstract' !== t.blotName ? u.default.register(
                                    t) : e.startsWith('modules') &&
                                    'function' == typeof t.register &&
                                    t.register();
                            },
                        }]), r(e, [
                        {
                            key: 'addContainer',
                            value: function (e) {
                                var t = arguments.length > 1 && void 0 !==
                                arguments[1] ? arguments[1] : null;
                                if ('string' == typeof e) {
                                    var n = e;
                                    (e = document.createElement(
                                        'div')).classList.add(n);
                                }
                                return this.container.insertBefore(e, t), e;
                            },
                        },
                        {
                            key: 'blur',
                            value: function () {this.selection.setRange(null);},
                        },
                        {
                            key: 'deleteText',
                            value: function (e, t, n) {
                                var i = this, r = k(e, t, n), o = a(r, 4);
                                return e = o[0], t = o[1], n = o[3], w.call(
                                    this, (function () {
                                        return i.editor.deleteText(e, t);
                                    }), n, e, -1 * t);
                            },
                        },
                        {
                            key: 'disable',
                            value: function () {this.enable(!1);},
                        },
                        {
                            key: 'enable',
                            value: function () {
                                var e = !(arguments.length > 0 && void 0 !==
                                    arguments[0]) || arguments[0];
                                this.scroll.enable(
                                    e), this.container.classList.toggle(
                                    'ql-disabled', !e);
                            },
                        },
                        {
                            key: 'focus',
                            value: function () {
                                var e = this.scrollingContainer.scrollTop;
                                this.selection.focus(), this.scrollingContainer.scrollTop = e, this.scrollIntoView();
                            },
                        },
                        {
                            key: 'format',
                            value: function (e, t) {
                                var n = this,
                                    i = arguments.length > 2 && void 0 !==
                                    arguments[2]
                                        ? arguments[2]
                                        : l.default.sources.API;
                                return w.call(this, (function () {
                                    var i = n.getSelection(!0),
                                        a = new o.default;
                                    if (null == i) return a;
                                    if (u.default.query(e,
                                        u.default.Scope.BLOCK)) a = n.editor.formatLine(
                                        i.index, i.length, v({}, e, t)); else {
                                        if (0 ===
                                            i.length) return n.selection.format(
                                            e, t), a;
                                        a = n.editor.formatText(i.index,
                                            i.length, v({}, e, t));
                                    }
                                    return n.setSelection(i,
                                        l.default.sources.SILENT), a;
                                }), i);
                            },
                        },
                        {
                            key: 'formatLine',
                            value: function (e, t, n, i, r) {
                                var o, s = this, l = k(e, t, n, i, r),
                                    c = a(l, 4);
                                return e = c[0], t = c[1], o = c[2], r = c[3], w.call(
                                    this, (function () {
                                        return s.editor.formatLine(e, t, o);
                                    }), r, e, 0);
                            },
                        },
                        {
                            key: 'formatText',
                            value: function (e, t, n, i, r) {
                                var o, s = this, l = k(e, t, n, i, r),
                                    c = a(l, 4);
                                return e = c[0], t = c[1], o = c[2], r = c[3], w.call(
                                    this, (function () {
                                        return s.editor.formatText(e, t, o);
                                    }), r, e, 0);
                            },
                        },
                        {
                            key: 'getBounds',
                            value: function (e) {
                                var t = arguments.length > 1 && void 0 !==
                                arguments[1] ? arguments[1] : 0, n = void 0;
                                n = 'number' == typeof e
                                    ? this.selection.getBounds(e, t)
                                    : this.selection.getBounds(e.index,
                                        e.length);
                                var i = this.container.getBoundingClientRect();
                                return {
                                    bottom: n.bottom - i.top,
                                    height: n.height,
                                    left: n.left - i.left,
                                    right: n.right - i.left,
                                    top: n.top - i.top,
                                    width: n.width,
                                };
                            },
                        },
                        {
                            key: 'getContents',
                            value: function () {
                                var e = arguments.length > 0 && void 0 !==
                                    arguments[0] ? arguments[0] : 0,
                                    t = arguments.length > 1 && void 0 !==
                                    arguments[1]
                                        ? arguments[1]
                                        : this.getLength() - e, n = k(e, t),
                                    i = a(n, 2);
                                return e = i[0], t = i[1], this.editor.getContents(
                                    e, t);
                            },
                        },
                        {
                            key: 'getFormat',
                            value: function () {
                                var e = arguments.length > 0 && void 0 !==
                                    arguments[0]
                                    ? arguments[0]
                                    : this.getSelection(!0),
                                    t = arguments.length > 1 && void 0 !==
                                    arguments[1] ? arguments[1] : 0;
                                return 'number' == typeof e
                                    ? this.editor.getFormat(e, t)
                                    : this.editor.getFormat(e.index, e.length);
                            },
                        },
                        {
                            key: 'getIndex',
                            value: function (e) {return e.offset(this.scroll);},
                        },
                        {
                            key: 'getLength',
                            value: function () {return this.scroll.length();},
                        },
                        {
                            key: 'getLeaf',
                            value: function (e) {return this.scroll.leaf(e);},
                        },
                        {
                            key: 'getLine',
                            value: function (e) {return this.scroll.line(e);},
                        },
                        {
                            key: 'getLines',
                            value: function () {
                                var e = arguments.length > 0 && void 0 !==
                                    arguments[0] ? arguments[0] : 0,
                                    t = arguments.length > 1 && void 0 !==
                                    arguments[1]
                                        ? arguments[1]
                                        : Number.MAX_VALUE;
                                return 'number' != typeof e ? this.scroll.lines(
                                    e.index, e.length) : this.scroll.lines(e,
                                    t);
                            },
                        },
                        {
                            key: 'getModule',
                            value: function (e) {return this.theme.modules[e];},
                        },
                        {
                            key: 'getSelection',
                            value: function () {
                                var e = arguments.length > 0 && void 0 !==
                                    arguments[0] && arguments[0];
                                return e &&
                                this.focus(), this.update(), this.selection.getRange()[0];
                            },
                        },
                        {
                            key: 'getText',
                            value: function () {
                                var e = arguments.length > 0 && void 0 !==
                                    arguments[0] ? arguments[0] : 0,
                                    t = arguments.length > 1 && void 0 !==
                                    arguments[1]
                                        ? arguments[1]
                                        : this.getLength() - e, n = k(e, t),
                                    i = a(n, 2);
                                return e = i[0], t = i[1], this.editor.getText(
                                    e, t);
                            },
                        },
                        {
                            key: 'hasFocus',
                            value: function () {return this.selection.hasFocus();},
                        },
                        {
                            key: 'insertEmbed',
                            value: function (t, n, i) {
                                var a = this,
                                    r = arguments.length > 3 && void 0 !==
                                    arguments[3] ? arguments[3] : e.sources.API;
                                return w.call(this, (function () {
                                    return a.editor.insertEmbed(t, n, i);
                                }), r, t);
                            },
                        },
                        {
                            key: 'insertText',
                            value: function (e, t, n, i, r) {
                                var o, s = this, l = k(e, 0, n, i, r),
                                    c = a(l, 4);
                                return e = c[0], o = c[2], r = c[3], w.call(
                                    this, (function () {
                                        return s.editor.insertText(e, t, o);
                                    }), r, e, t.length);
                            },
                        },
                        {
                            key: 'isEnabled',
                            value: function () {
                                return !this.container.classList.contains(
                                    'ql-disabled');
                            },
                        },
                        {
                            key: 'off',
                            value: function () {
                                return this.emitter.off.apply(this.emitter,
                                    arguments);
                            },
                        },
                        {
                            key: 'on',
                            value: function () {
                                return this.emitter.on.apply(this.emitter,
                                    arguments);
                            },
                        },
                        {
                            key: 'once',
                            value: function () {
                                return this.emitter.once.apply(this.emitter,
                                    arguments);
                            },
                        },
                        {
                            key: 'pasteHTML',
                            value: function (
                                e, t, n) {
                                this.clipboard.dangerouslyPasteHTML(e, t, n);
                            },
                        },
                        {
                            key: 'removeFormat',
                            value: function (e, t, n) {
                                var i = this, r = k(e, t, n), o = a(r, 4);
                                return e = o[0], t = o[1], n = o[3], w.call(
                                    this, (function () {
                                        return i.editor.removeFormat(e, t);
                                    }), n, e);
                            },
                        },
                        {
                            key: 'scrollIntoView',
                            value: function () {
                                this.selection.scrollIntoView(
                                    this.scrollingContainer);
                            },
                        },
                        {
                            key: 'setContents',
                            value: function (e) {
                                var t = this,
                                    n = arguments.length > 1 && void 0 !==
                                    arguments[1]
                                        ? arguments[1]
                                        : l.default.sources.API;
                                return w.call(this, (function () {
                                    e = new o.default(e);
                                    var n = t.getLength(),
                                        i = t.editor.deleteText(0, n),
                                        a = t.editor.applyDelta(e),
                                        r = a.ops[a.ops.length - 1];
                                    return null != r && 'string' ==
                                    typeof r.insert && '\n' ===
                                    r.insert[r.insert.length - 1] &&
                                    (t.editor.deleteText(t.getLength() - 1,
                                        1), a.delete(1)), i.compose(a);
                                }), n);
                            },
                        },
                        {
                            key: 'setSelection',
                            value: function (t, n, i) {
                                if (null == t) this.selection.setRange(null,
                                    n || e.sources.API); else {
                                    var r = k(t, n, i), o = a(r, 4);
                                    t = o[0], n = o[1], i = o[3], this.selection.setRange(
                                        new d.Range(t, n), i), i !==
                                    l.default.sources.SILENT &&
                                    this.selection.scrollIntoView(
                                        this.scrollingContainer);
                                }
                            },
                        },
                        {
                            key: 'setText',
                            value: function (e) {
                                var t = arguments.length > 1 && void 0 !==
                                    arguments[1]
                                    ? arguments[1]
                                    : l.default.sources.API,
                                    n = (new o.default).insert(e);
                                return this.setContents(n, t);
                            },
                        },
                        {
                            key: 'update',
                            value: function () {
                                var e = arguments.length > 0 && void 0 !==
                                    arguments[0]
                                    ? arguments[0]
                                    : l.default.sources.USER,
                                    t = this.scroll.update(e);
                                return this.selection.update(e), t;
                            },
                        },
                        {
                            key: 'updateContents',
                            value: function (e) {
                                var t = this,
                                    n = arguments.length > 1 && void 0 !==
                                    arguments[1]
                                        ? arguments[1]
                                        : l.default.sources.API;
                                return w.call(this, (function () {
                                    return e = new o.default(
                                        e), t.editor.applyDelta(e, n);
                                }), n, !0);
                            },
                        }]), e;
                }();

                function _ (e, t) {
                    if ((t = (0, f.default)(!0, {
                        container: e,
                        modules: { clipboard: !0, keyboard: !0, history: !0 },
                    }, t)).theme && t.theme !== x.DEFAULTS.theme) {
                        if (t.theme = x.import('themes/' + t.theme), null ==
                        t.theme) throw new Error('Invalid theme ' + t.theme +
                            '. Did you register it?');
                    } else t.theme = m.default;
                    var n = (0, f.default)(!0, {}, t.theme.DEFAULTS);
                    [n, t].forEach((function (e) {
                        e.modules = e.modules || {}, Object.keys(e.modules).
                            forEach((function (t) {
                                !0 === e.modules[t] && (e.modules[t] = {});
                            }));
                    }));
                    var i = Object.keys(n.modules).
                        concat(Object.keys(t.modules)).
                        reduce((function (e, t) {
                            var n = x.import('modules/' + t);
                            return null == n
                                ? b.error('Cannot load ' + t +
                                    ' module. Are you sure you registered it?')
                                : e[t] = n.DEFAULTS || {}, e;
                        }), {});
                    return null != t.modules && t.modules.toolbar &&
                    t.modules.toolbar.constructor !== Object &&
                    (t.modules.toolbar = { container: t.modules.toolbar }), t = (0, f.default)(
                        !0, {}, x.DEFAULTS, { modules: i }, n, t), [
                        'bounds',
                        'container',
                        'scrollingContainer'].forEach((function (e) {
                        'string' == typeof t[e] &&
                        (t[e] = document.querySelector(t[e]));
                    })), t.modules = Object.keys(t.modules).
                        reduce((function (e, n) {
                            return t.modules[n] && (e[n] = t.modules[n]), e;
                        }), {}), t;
                }

                function w (e, t, n, i) {
                    if (this.options.strict && !this.isEnabled() && t ===
                        l.default.sources.USER) return new o.default;
                    var a = null == n ? null : this.getSelection(),
                        r = this.editor.delta, s = e();
                    if (null != a && (!0 === n && (n = a.index), null == i
                        ? a = M(a, s, t)
                        : 0 !== i && (a = M(a, n, i, t)), this.setSelection(a,
                        l.default.sources.SILENT)), s.length() > 0) {
                        var c, u, d = [l.default.events.TEXT_CHANGE, s, r, t];
                        if ((c = this.emitter).emit.apply(c,
                            [l.default.events.EDITOR_CHANGE].concat(d)), t !==
                        l.default.sources.SILENT) (u = this.emitter).emit.apply(
                            u, d);
                    }
                    return s;
                }

                function k (e, t, n, a, r) {
                    var o = {};
                    return 'number' == typeof e.index && 'number' ==
                    typeof e.length ? 'number' != typeof t
                        ? (r = a, a = n, n = t, t = e.length, e = e.index)
                        : (t = e.length, e = e.index) : 'number' != typeof t &&
                        (r = a, a = n, n = t, t = 0), 'object' ===
                    (void 0 === n ? 'undefined' : i(n))
                        ? (o = n, r = a)
                        : 'string' == typeof n &&
                        (null != a ? o[n] = a : r = n), [
                        e,
                        t,
                        o,
                        r = r || l.default.sources.API];
                }

                function M (e, t, n, i) {
                    if (null == e) return null;
                    var r = void 0, s = void 0;
                    if (t instanceof o.default) {
                        var c = [
                            e.index,
                            e.index + e.length].map((function (e) {
                            return t.transformPosition(e,
                                i !== l.default.sources.USER);
                        })), u = a(c, 2);
                        r = u[0], s = u[1];
                    } else {
                        var h = [e.index, e.index + e.length].map(
                            (function (e) {
                                return e < t || e === t && i ===
                                l.default.sources.USER ? e : n >= 0
                                    ? e + n
                                    : Math.max(t, e + n);
                            })), f = a(h, 2);
                        r = f[0], s = f[1];
                    }
                    return new d.Range(r, s - r);
                }

                x.DEFAULTS = {
                    bounds: null,
                    formats: null,
                    modules: {},
                    placeholder: '',
                    readOnly: !1,
                    scrollingContainer: null,
                    strict: !0,
                    theme: 'default',
                }, x.events = l.default.events, x.sources = l.default.sources, x.version = '1.3.7', x.imports = {
                    delta: o.default,
                    parchment: u.default,
                    'core/module': c.default,
                    'core/theme': m.default,
                }, t.expandConfig = _, t.overload = k, t.default = x;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }(), a = function e (t, n, i) {
                    null === t && (t = Function.prototype);
                    var a = Object.getOwnPropertyDescriptor(t, n);
                    if (void 0 === a) {
                        var r = Object.getPrototypeOf(t);
                        return null === r ? void 0 : e(r, n, i);
                    }
                    if ('value' in a) return a.value;
                    var o = a.get;
                    return void 0 !== o ? o.call(i) : void 0;
                }, r = s(n(7)), o = s(n(0));

                function s (e) {return e && e.__esModule ? e : { default: e };}

                function l (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function c (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                var u = function (e) {
                    function t () {
                        return l(this, t), c(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), i(t, [
                        {
                            key: 'formatAt',
                            value: function (e, n, i, r) {
                                if (t.compare(this.statics.blotName, i) < 0 &&
                                    o.default.query(i, o.default.Scope.BLOT)) {
                                    var s = this.isolate(e, n);
                                    r && s.wrap(i, r);
                                } else a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'formatAt', this).call(this, e, n, i, r);
                            },
                        },
                        {
                            key: 'optimize',
                            value: function (e) {
                                if (a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'optimize', this).
                                    call(this, e), this.parent instanceof t &&
                                t.compare(this.statics.blotName,
                                    this.parent.statics.blotName) > 0) {
                                    var n = this.parent.isolate(this.offset(),
                                        this.length());
                                    this.moveChildren(n), n.wrap(this);
                                }
                            },
                        }], [
                        {
                            key: 'compare',
                            value: function (e, n) {
                                var i = t.order.indexOf(e),
                                    a = t.order.indexOf(n);
                                return i >= 0 || a >= 0 ? i - a : e === n
                                    ? 0
                                    : e < n ? -1 : 1;
                            },
                        }]), t;
                }(o.default.Inline);
                u.allowedChildren = [
                    u,
                    o.default.Embed,
                    r.default], u.order = [
                    'cursor',
                    'inline',
                    'underline',
                    'strike',
                    'italic',
                    'bold',
                    'script',
                    'link',
                    'code'], t.default = u;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i, a = n(0);

                function r (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function o (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                var s = function (e) {
                    function t () {
                        return r(this, t), o(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), t;
                }(((i = a) && i.__esModule ? i : { default: i }).default.Text);
                t.default = s;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }(), a = function e (t, n, i) {
                    null === t && (t = Function.prototype);
                    var a = Object.getOwnPropertyDescriptor(t, n);
                    if (void 0 === a) {
                        var r = Object.getPrototypeOf(t);
                        return null === r ? void 0 : e(r, n, i);
                    }
                    if ('value' in a) return a.value;
                    var o = a.get;
                    return void 0 !== o ? o.call(i) : void 0;
                }, r = o(n(54));

                function o (e) {return e && e.__esModule ? e : { default: e };}

                var s = (0, o(n(10)).default)('quill:events');
                ['selectionchange', 'mousedown', 'mouseup', 'click'].forEach(
                    (function (e) {
                        document.addEventListener(e, (function () {
                            for (var e = arguments.length, t = Array(
                                e), n = 0; n < e; n++) t[n] = arguments[n];
                            [].slice.call(
                                document.querySelectorAll('.ql-container')).
                                forEach((function (e) {
                                    var n;
                                    e.__quill && e.__quill.emitter &&
                                    (n = e.__quill.emitter).handleDOM.apply(n,
                                        t);
                                }));
                        }));
                    }));
                var l = function (e) {
                    function t () {
                        !function (e, t) {
                            if (!(e instanceof t)) throw new TypeError(
                                'Cannot call a class as a function');
                        }(this, t);
                        var e = function (
                            e, t) {
                            if (!e) throw new ReferenceError(
                                'this hasn\'t been initialised - super() hasn\'t been called');
                            return !t || 'object' != typeof t && 'function' !=
                            typeof t ? e : t;
                        }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(
                            this));
                        return e.listeners = {}, e.on('error', s.error), e;
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), i(t, [
                        {
                            key: 'emit',
                            value: function () {
                                s.log.apply(s, arguments), a(
                                    t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype), 'emit',
                                    this).apply(this, arguments);
                            },
                        },
                        {
                            key: 'handleDOM',
                            value: function (e) {
                                for (var t = arguments.length, n = Array(
                                    t > 1 ? t - 1 : 0), i = 1; i < t; i++) n[i -
                                1] = arguments[i];
                                (this.listeners[e.type] || []).forEach(
                                    (function (t) {
                                        var i = t.node, a = t.handler;
                                        (e.target === i ||
                                            i.contains(e.target)) &&
                                        a.apply(void 0, [e].concat(n));
                                    }));
                            },
                        },
                        {
                            key: 'listenDOM',
                            value: function (e, t, n) {
                                this.listeners[e] ||
                                (this.listeners[e] = []), this.listeners[e].push(
                                    { node: t, handler: n });
                            },
                        }]), t;
                }(r.default);
                l.events = {
                    EDITOR_CHANGE: 'editor-change',
                    SCROLL_BEFORE_UPDATE: 'scroll-before-update',
                    SCROLL_OPTIMIZE: 'scroll-optimize',
                    SCROLL_UPDATE: 'scroll-update',
                    SELECTION_CHANGE: 'selection-change',
                    TEXT_CHANGE: 'text-change',
                }, l.sources = {
                    API: 'api',
                    SILENT: 'silent',
                    USER: 'user',
                }, t.default = l;
            },
            function (e, t, n) {
                'use strict';

                function i (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                Object.defineProperty(t, '__esModule', { value: !0 });
                var a = function e (t) {
                    var n = arguments.length > 1 && void 0 !== arguments[1]
                        ? arguments[1]
                        : {};
                    i(this, e), this.quill = t, this.options = n;
                };
                a.DEFAULTS = {}, t.default = a;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i = ['error', 'warn', 'log', 'info'], a = 'warn';

                function r (e) {
                    if (i.indexOf(e) <= i.indexOf(a)) {
                        for (var t, n = arguments.length, r = Array(
                            n > 1 ? n - 1 : 0), o = 1; o < n; o++) r[o -
                        1] = arguments[o];
                        (t = console)[e].apply(t, r);
                    }
                }

                function o (e) {
                    return i.reduce((function (t, n) {
                        return t[n] = r.bind(console, n, e), t;
                    }), {});
                }

                r.level = o.level = function (e) {a = e;}, t.default = o;
            },
            function (e, t, n) {
                var i = Array.prototype.slice, a = n(52), r = n(53),
                    o = e.exports = function (e, t, n) {
                        return n || (n = {}), e === t ||
                        (e instanceof Date && t instanceof Date
                            ? e.getTime() === t.getTime()
                            : !e || !t || 'object' != typeof e && 'object' !=
                            typeof t
                                ? n.strict ? e === t : e == t
                                : function (e, t, n) {
                                    var c, u;
                                    if (s(e) || s(t)) return !1;
                                    if (e.prototype !== t.prototype) return !1;
                                    if (r(e)) return !!r(t) &&
                                        (e = i.call(e), t = i.call(t), o(e, t,
                                            n));
                                    if (l(e)) {
                                        if (!l(t)) return !1;
                                        if (e.length !== t.length) return !1;
                                        for (c = 0; c <
                                        e.length; c++) if (e[c] !==
                                            t[c]) return !1;
                                        return !0;
                                    }
                                    try {
                                        var d = a(e), h = a(t);
                                    } catch (e) {return !1;}
                                    if (d.length != h.length) return !1;
                                    for (d.sort(), h.sort(), c = d.length -
                                        1; c >= 0; c--) if (d[c] !=
                                        h[c]) return !1;
                                    for (c = d.length - 1; c >=
                                    0; c--) if (u = d[c], !o(e[u], t[u],
                                        n)) return !1;
                                    return typeof e == typeof t;
                                }(e, t, n));
                    };

                function s (e) {return null == e;}

                function l (e) {
                    return !(!e || 'object' != typeof e || 'number' !=
                        typeof e.length) &&
                        ('function' == typeof e.copy && 'function' ==
                            typeof e.slice &&
                            !(e.length > 0 && 'number' != typeof e[0]));
                }
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i = n(1), a = function () {
                    function e (e, t, n) {
                        void 0 === n &&
                        (n = {}), this.attrName = e, this.keyName = t;
                        var a = i.Scope.TYPE & i.Scope.ATTRIBUTE;
                        null != n.scope ? this.scope = n.scope & i.Scope.LEVEL |
                            a : this.scope = i.Scope.ATTRIBUTE, null !=
                        n.whitelist && (this.whitelist = n.whitelist);
                    }

                    return e.keys = function (e) {
                        return [].map.call(e.attributes,
                            (function (e) {return e.name;}));
                    }, e.prototype.add = function (e, t) {
                        return !!this.canAdd(e, t) &&
                            (e.setAttribute(this.keyName, t), !0);
                    }, e.prototype.canAdd = function (e, t) {
                        return null != i.query(e,
                            i.Scope.BLOT & (this.scope | i.Scope.TYPE)) &&
                            (null == this.whitelist || ('string' == typeof t
                                ? this.whitelist.indexOf(
                                t.replace(/["']/g, '')) > -1
                                : this.whitelist.indexOf(t) > -1));
                    }, e.prototype.remove = function (e) {
                        e.removeAttribute(this.keyName);
                    }, e.prototype.value = function (e) {
                        var t = e.getAttribute(this.keyName);
                        return this.canAdd(e, t) && t ? t : '';
                    }, e;
                }();
                t.default = a;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.default = t.Code = void 0;
                var i = function (e, t) {
                        if (Array.isArray(e)) return e;
                        if (Symbol.iterator in Object(e)) return function (
                            e, t) {
                            var n = [], i = !0, a = !1, r = void 0;
                            try {
                                for (var o, s = e[Symbol.iterator](); !(i = (o = s.next()).done) &&
                                (n.push(o.value), !t || n.length !== t); i = !0) ;
                            } catch (e) {a = !0, r = e;} finally {
                                try {
                                    !i && s.return && s.return();
                                } finally {if (a) throw r;}
                            }
                            return n;
                        }(e, t);
                        throw new TypeError(
                            'Invalid attempt to destructure non-iterable instance');
                    }, a = function () {
                        function e (e, t) {
                            for (var n = 0; n < t.length; n++) {
                                var i = t[n];
                                i.enumerable = i.enumerable ||
                                    !1, i.configurable = !0, 'value' in i &&
                                (i.writable = !0), Object.defineProperty(e, i.key,
                                    i);
                            }
                        }

                        return function (t, n, i) {
                            return n && e(t.prototype, n), i && e(t, i), t;
                        };
                    }(), r = function e (t, n, i) {
                        null === t && (t = Function.prototype);
                        var a = Object.getOwnPropertyDescriptor(t, n);
                        if (void 0 === a) {
                            var r = Object.getPrototypeOf(t);
                            return null === r ? void 0 : e(r, n, i);
                        }
                        if ('value' in a) return a.value;
                        var o = a.get;
                        return void 0 !== o ? o.call(i) : void 0;
                    }, o = d(n(2)), s = d(n(0)), l = d(n(4)), c = d(n(6)),
                    u = d(n(7));

                function d (e) {return e && e.__esModule ? e : { default: e };}

                function h (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function f (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                function p (e, t) {
                    if ('function' != typeof t && null !==
                        t) throw new TypeError(
                        'Super expression must either be null or a function, not ' +
                        typeof t);
                    e.prototype = Object.create(t && t.prototype, {
                        constructor: {
                            value: e,
                            enumerable: !1,
                            writable: !0,
                            configurable: !0,
                        },
                    }), t && (Object.setPrototypeOf
                        ? Object.setPrototypeOf(e, t)
                        : e.__proto__ = t);
                }

                var m = function (e) {
                    function t () {
                        return h(this, t), f(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return p(t, e), t;
                }(c.default);
                m.blotName = 'code', m.tagName = 'CODE';
                var g = function (e) {
                    function t () {
                        return h(this, t), f(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return p(t, e), a(t, [
                        {
                            key: 'delta',
                            value: function () {
                                var e = this, t = this.domNode.textContent;
                                return t.endsWith('\n') &&
                                (t = t.slice(0, -1)), t.split('\n').
                                    reduce((function (t, n) {
                                        return t.insert(n).
                                            insert('\n', e.formats());
                                    }), new o.default);
                            },
                        },
                        {
                            key: 'format',
                            value: function (e, n) {
                                if (e !== this.statics.blotName || !n) {
                                    var a = this.descendant(u.default,
                                        this.length() - 1), o = i(a, 1)[0];
                                    null != o &&
                                    o.deleteAt(o.length() - 1, 1), r(
                                        t.prototype.__proto__ ||
                                        Object.getPrototypeOf(t.prototype),
                                        'format', this).call(this, e, n);
                                }
                            },
                        },
                        {
                            key: 'formatAt',
                            value: function (e, n, i, a) {
                                if (0 !== n && null !=
                                    s.default.query(i, s.default.Scope.BLOCK) &&
                                    (i !== this.statics.blotName || a !==
                                        this.statics.formats(this.domNode))) {
                                    var r = this.newlineIndex(e);
                                    if (!(r < 0 || r >= e + n)) {
                                        var o = this.newlineIndex(e, !0) + 1,
                                            l = r - o + 1,
                                            c = this.isolate(o, l), u = c.next;
                                        c.format(i, a), u instanceof t &&
                                        u.formatAt(0, e - o + n - l, i, a);
                                    }
                                }
                            },
                        },
                        {
                            key: 'insertAt',
                            value: function (e, t, n) {
                                if (null == n) {
                                    var a = this.descendant(u.default, e),
                                        r = i(a, 2), o = r[0], s = r[1];
                                    o.insertAt(s, t);
                                }
                            },
                        },
                        {
                            key: 'length',
                            value: function () {
                                var e = this.domNode.textContent.length;
                                return this.domNode.textContent.endsWith('\n')
                                    ? e
                                    : e + 1;
                            },
                        },
                        {
                            key: 'newlineIndex',
                            value: function (e) {
                                var t = arguments.length > 1 && void 0 !==
                                    arguments[1] && arguments[1];
                                if (t) return this.domNode.textContent.slice(0,
                                    e).lastIndexOf('\n');
                                var n = this.domNode.textContent.slice(e).
                                    indexOf('\n');
                                return n > -1 ? e + n : -1;
                            },
                        },
                        {
                            key: 'optimize',
                            value: function (e) {
                                this.domNode.textContent.endsWith('\n') ||
                                this.appendChild(
                                    s.default.create('text', '\n')), r(
                                    t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'optimize', this).call(this, e);
                                var n = this.next;
                                null != n && n.prev === this &&
                                n.statics.blotName === this.statics.blotName &&
                                this.statics.formats(this.domNode) ===
                                n.statics.formats(n.domNode) &&
                                (n.optimize(e), n.moveChildren(
                                    this), n.remove());
                            },
                        },
                        {
                            key: 'replace',
                            value: function (e) {
                                r(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'replace', this).
                                    call(this, e), [].slice.call(
                                    this.domNode.querySelectorAll('*')).
                                    forEach((function (e) {
                                        var t = s.default.find(e);
                                        null == t
                                            ? e.parentNode.removeChild(e)
                                            : t instanceof s.default.Embed
                                            ? t.remove()
                                            : t.unwrap();
                                    }));
                            },
                        }], [
                        {
                            key: 'create',
                            value: function (e) {
                                var n = r(
                                    t.__proto__ || Object.getPrototypeOf(t),
                                    'create', this).call(this, e);
                                return n.setAttribute('spellcheck', !1), n;
                            },
                        },
                        {
                            key: 'formats',
                            value: function () {return !0;},
                        }]), t;
                }(l.default);
                g.blotName = 'code-block', g.tagName = 'PRE', g.TAB = '  ', t.Code = m, t.default = g;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i = 'function' == typeof Symbol && 'symbol' ==
                    typeof Symbol.iterator
                    ? function (e) {return typeof e;}
                    : function (e) {
                        return e && 'function' == typeof Symbol &&
                        e.constructor === Symbol && e !== Symbol.prototype
                            ? 'symbol'
                            : typeof e;
                    }, a = function (e, t) {
                        if (Array.isArray(e)) return e;
                        if (Symbol.iterator in Object(e)) return function (
                            e, t) {
                            var n = [], i = !0, a = !1, r = void 0;
                            try {
                                for (var o, s = e[Symbol.iterator](); !(i = (o = s.next()).done) &&
                                (n.push(o.value), !t || n.length !== t); i = !0) ;
                            } catch (e) {a = !0, r = e;} finally {
                                try {
                                    !i && s.return && s.return();
                                } finally {if (a) throw r;}
                            }
                            return n;
                        }(e, t);
                        throw new TypeError(
                            'Invalid attempt to destructure non-iterable instance');
                    }, r = function () {
                        function e (e, t) {
                            for (var n = 0; n < t.length; n++) {
                                var i = t[n];
                                i.enumerable = i.enumerable ||
                                    !1, i.configurable = !0, 'value' in i &&
                                (i.writable = !0), Object.defineProperty(e, i.key,
                                    i);
                            }
                        }

                        return function (t, n, i) {
                            return n && e(t.prototype, n), i && e(t, i), t;
                        };
                    }(), o = v(n(2)), s = v(n(20)), l = v(n(0)), c = v(n(13)),
                    u = v(n(24)), d = n(4), h = v(d), f = v(n(16)),
                    p = v(n(21)), m = v(n(11)), g = v(n(3));

                function v (e) {return e && e.__esModule ? e : { default: e };}

                var y = /^[ -~]*$/, b = function () {
                    function e (t) {
                        !function (e, t) {
                            if (!(e instanceof t)) throw new TypeError(
                                'Cannot call a class as a function');
                        }(this,
                            e), this.scroll = t, this.delta = this.getDelta();
                    }

                    return r(e, [
                        {
                            key: 'applyDelta', value: function (e) {
                                var t = this, n = !1;
                                this.scroll.update();
                                var r = this.scroll.length();
                                return this.scroll.batchStart(), (e = function (e) {
                                    return e.reduce((function (e, t) {
                                        if (1 === t.insert) {
                                            var n = (0, p.default)(
                                                t.attributes);
                                            return delete n.image, e.insert(
                                                { image: t.attributes.image },
                                                n);
                                        }
                                        if (null == t.attributes || !0 !==
                                        t.attributes.list && !0 !==
                                        t.attributes.bullet ||
                                        ((t = (0, p.default)(t)).attributes.list
                                            ? t.attributes.list = 'ordered'
                                            : (t.attributes.list = 'bullet', delete t.attributes.bullet)), 'string' ==
                                        typeof t.insert) {
                                            var i = t.insert.replace(/\r\n/g,
                                                '\n').replace(/\r/g, '\n');
                                            return e.insert(i, t.attributes);
                                        }
                                        return e.push(t);
                                    }), new o.default);
                                }(e)).reduce((function (e, o) {
                                    var c = o.retain || o.delete ||
                                        o.insert.length || 1,
                                        u = o.attributes || {};
                                    if (null != o.insert) {
                                        if ('string' == typeof o.insert) {
                                            var f = o.insert;
                                            f.endsWith('\n') && n &&
                                            (n = !1, f = f.slice(0, -1)), e >=
                                            r && !f.endsWith('\n') &&
                                            (n = !0), t.scroll.insertAt(e, f);
                                            var p = t.scroll.line(e),
                                                m = a(p, 2), v = m[0], y = m[1],
                                                b = (0, g.default)({},
                                                    (0, d.bubbleFormats)(v));
                                            if (v instanceof h.default) {
                                                var x = v.descendant(
                                                    l.default.Leaf, y),
                                                    _ = a(x, 1)[0];
                                                b = (0, g.default)(b,
                                                    (0, d.bubbleFormats)(_));
                                            }
                                            u = s.default.attributes.diff(b,
                                                u) || {};
                                        } else if ('object' === i(o.insert)) {
                                            var w = Object.keys(o.insert)[0];
                                            if (null == w) return e;
                                            t.scroll.insertAt(e, w,
                                                o.insert[w]);
                                        }
                                        r += c;
                                    }
                                    return Object.keys(u).
                                        forEach((function (n) {
                                            t.scroll.formatAt(e, c, n, u[n]);
                                        })), e + c;
                                }), 0), e.reduce((function (e, n) {
                                    return 'number' == typeof n.delete
                                        ? (t.scroll.deleteAt(e, n.delete), e)
                                        : e +
                                        (n.retain || n.insert.length || 1);
                                }), 0), this.scroll.batchEnd(), this.update(e);
                            },
                        },
                        {
                            key: 'deleteText',
                            value: function (e, t) {
                                return this.scroll.deleteAt(e, t), this.update(
                                    (new o.default).retain(e).delete(t));
                            },
                        },
                        {
                            key: 'formatLine',
                            value: function (e, t) {
                                var n = this,
                                    i = arguments.length > 2 && void 0 !==
                                    arguments[2] ? arguments[2] : {};
                                return this.scroll.update(), Object.keys(i).
                                    forEach((function (a) {
                                        if (null == n.scroll.whitelist ||
                                            n.scroll.whitelist[a]) {
                                            var r = n.scroll.lines(e,
                                                Math.max(t, 1)), o = t;
                                            r.forEach((function (t) {
                                                var r = t.length();
                                                if (t instanceof c.default) {
                                                    var s = e -
                                                        t.offset(n.scroll),
                                                        l = t.newlineIndex(
                                                            s + o) - s + 1;
                                                    t.formatAt(s, l, a, i[a]);
                                                } else t.format(a, i[a]);
                                                o -= r;
                                            }));
                                        }
                                    })), this.scroll.optimize(), this.update(
                                    (new o.default).retain(e).
                                        retain(t, (0, p.default)(i)));
                            },
                        },
                        {
                            key: 'formatText',
                            value: function (e, t) {
                                var n = this,
                                    i = arguments.length > 2 && void 0 !==
                                    arguments[2] ? arguments[2] : {};
                                return Object.keys(i).
                                    forEach((function (a) {
                                        n.scroll.formatAt(e, t, a, i[a]);
                                    })), this.update((new o.default).retain(e).
                                    retain(t, (0, p.default)(i)));
                            },
                        },
                        {
                            key: 'getContents',
                            value: function (e, t) {
                                return this.delta.slice(e, e + t);
                            },
                        },
                        {
                            key: 'getDelta',
                            value: function () {
                                return this.scroll.lines().
                                    reduce((function (e, t) {
                                        return e.concat(t.delta());
                                    }), new o.default);
                            },
                        },
                        {
                            key: 'getFormat',
                            value: function (e) {
                                var t = arguments.length > 1 && void 0 !==
                                arguments[1] ? arguments[1] : 0, n = [], i = [];
                                0 === t ? this.scroll.path(e).
                                    forEach((function (e) {
                                        var t = a(e, 1)[0];
                                        t instanceof h.default
                                            ? n.push(t)
                                            : t instanceof l.default.Leaf &&
                                            i.push(t);
                                    })) : (n = this.scroll.lines(e,
                                    t), i = this.scroll.descendants(
                                    l.default.Leaf, e, t));
                                var r = [n, i].map((function (e) {
                                    if (0 === e.length) return {};
                                    for (var t = (0, d.bubbleFormats)(
                                        e.shift()); Object.keys(t).length >
                                         0;) {
                                        var n = e.shift();
                                        if (null == n) return t;
                                        t = x((0, d.bubbleFormats)(n), t);
                                    }
                                    return t;
                                }));
                                return g.default.apply(g.default, r);
                            },
                        },
                        {
                            key: 'getText',
                            value: function (e, t) {
                                return this.getContents(e, t).
                                    filter((function (e) {
                                        return 'string' == typeof e.insert;
                                    })).
                                    map((function (e) {return e.insert;})).
                                    join('');
                            },
                        },
                        {
                            key: 'insertEmbed',
                            value: function (
                                e, t, n) {
                                return this.scroll.insertAt(e, t,
                                    n), this.update((new o.default).retain(e).
                                    insert(function (e, t, n) {
                                        return t in e
                                            ? Object.defineProperty(e, t, {
                                                value: n,
                                                enumerable: !0,
                                                configurable: !0,
                                                writable: !0,
                                            })
                                            : e[t] = n, e;
                                    }({}, t, n)));
                            },
                        },
                        {
                            key: 'insertText',
                            value: function (e, t) {
                                var n = this,
                                    i = arguments.length > 2 && void 0 !==
                                    arguments[2] ? arguments[2] : {};
                                return t = t.replace(/\r\n/g, '\n').
                                    replace(/\r/g, '\n'), this.scroll.insertAt(
                                    e, t), Object.keys(i).
                                    forEach((function (a) {
                                        n.scroll.formatAt(e, t.length, a, i[a]);
                                    })), this.update((new o.default).retain(e).
                                    insert(t, (0, p.default)(i)));
                            },
                        },
                        {
                            key: 'isBlank',
                            value: function () {
                                if (0 == this.scroll.children.length) return !0;
                                if (this.scroll.children.length > 1) return !1;
                                var e = this.scroll.children.head;
                                return e.statics.blotName ===
                                    h.default.blotName &&
                                    (!(e.children.length > 1) &&
                                        e.children.head instanceof f.default);
                            },
                        },
                        {
                            key: 'removeFormat',
                            value: function (e, t) {
                                var n = this.getText(e, t),
                                    i = this.scroll.line(e + t), r = a(i, 2),
                                    s = r[0], l = r[1], u = 0,
                                    d = new o.default;
                                null != s &&
                                (u = s instanceof c.default ? s.newlineIndex(
                                    l) - l + 1 : s.length() - l, d = s.delta().
                                    slice(l, l + u - 1).
                                    insert('\n'));
                                var h = this.getContents(e, t + u).
                                        diff((new o.default).insert(n).concat(d)),
                                    f = (new o.default).retain(e).concat(h);
                                return this.applyDelta(f);
                            },
                        },
                        {
                            key: 'update',
                            value: function (e) {
                                var t = arguments.length > 1 && void 0 !==
                                    arguments[1] ? arguments[1] : [],
                                    n = arguments.length > 2 && void 0 !==
                                    arguments[2] ? arguments[2] : void 0,
                                    i = this.delta;
                                if (1 === t.length && 'characterData' ===
                                    t[0].type && t[0].target.data.match(y) &&
                                    l.default.find(t[0].target)) {
                                    var a = l.default.find(t[0].target),
                                        r = (0, d.bubbleFormats)(a),
                                        s = a.offset(this.scroll),
                                        c = t[0].oldValue.replace(
                                            u.default.CONTENTS, ''),
                                        h = (new o.default).insert(c),
                                        f = (new o.default).insert(a.value()),
                                        p = (new o.default).retain(s).
                                            concat(h.diff(f, n));
                                    e = p.reduce((function (e, t) {
                                        return t.insert
                                            ? e.insert(t.insert, r)
                                            : e.push(t);
                                    }), new o.default), this.delta = i.compose(
                                        e);
                                } else this.delta = this.getDelta(), e &&
                                (0, m.default)(i.compose(e), this.delta) ||
                                (e = i.diff(this.delta, n));
                                return e;
                            },
                        }]), e;
                }();

                function x (e, t) {
                    return Object.keys(t).
                        reduce((function (n, i) {
                            return null == e[i] ||
                            (t[i] === e[i] ? n[i] = t[i] : Array.isArray(t[i])
                                ? t[i].indexOf(e[i]) < 0 &&
                                (n[i] = t[i].concat([e[i]]))
                                : n[i] = [t[i], e[i]]), n;
                        }), {});
                }

                t.default = b;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.default = t.Range = void 0;
                var i = function (e, t) {
                    if (Array.isArray(e)) return e;
                    if (Symbol.iterator in Object(e)) return function (
                        e, t) {
                        var n = [], i = !0, a = !1, r = void 0;
                        try {
                            for (var o, s = e[Symbol.iterator](); !(i = (o = s.next()).done) &&
                            (n.push(o.value), !t || n.length !== t); i = !0) ;
                        } catch (e) {a = !0, r = e;} finally {
                            try {
                                !i && s.return && s.return();
                            } finally {if (a) throw r;}
                        }
                        return n;
                    }(e, t);
                    throw new TypeError(
                        'Invalid attempt to destructure non-iterable instance');
                }, a = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }(), r = c(n(0)), o = c(n(21)), s = c(n(11)), l = c(n(8));

                function c (e) {return e && e.__esModule ? e : { default: e };}

                function u (e) {
                    if (Array.isArray(e)) {
                        for (var t = 0, n = Array(e.length); t <
                        e.length; t++) n[t] = e[t];
                        return n;
                    }
                    return Array.from(e);
                }

                function d (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                var h = (0, c(n(10)).default)('quill:selection'),
                    f = function e (t) {
                        var n = arguments.length > 1 && void 0 !== arguments[1]
                            ? arguments[1]
                            : 0;
                        d(this, e), this.index = t, this.length = n;
                    }, p = function () {
                        function e (t, n) {
                            var i = this;
                            d(this,
                                e), this.emitter = n, this.scroll = t, this.composing = !1, this.mouseDown = !1, this.root = this.scroll.domNode, this.cursor = r.default.create(
                                'cursor',
                                this), this.lastRange = this.savedRange = new f(0,
                                0), this.handleComposition(), this.handleDragging(), this.emitter.listenDOM(
                                'selectionchange', document, (function () {
                                    i.mouseDown || setTimeout(
                                        i.update.bind(i, l.default.sources.USER),
                                        1);
                                })), this.emitter.on(l.default.events.EDITOR_CHANGE,
                                (function (e, t) {
                                    e === l.default.events.TEXT_CHANGE &&
                                    t.length() > 0 &&
                                    i.update(l.default.sources.SILENT);
                                })), this.emitter.on(
                                l.default.events.SCROLL_BEFORE_UPDATE,
                                (function () {
                                    if (i.hasFocus()) {
                                        var e = i.getNativeRange();
                                        null != e && e.start.node !==
                                        i.cursor.textNode && i.emitter.once(
                                            l.default.events.SCROLL_UPDATE,
                                            (function () {
                                                try {
                                                    i.setNativeRange(e.start.node,
                                                        e.start.offset, e.end.node,
                                                        e.end.offset);
                                                } catch (e) {}
                                            }));
                                    }
                                })), this.emitter.on(
                                l.default.events.SCROLL_OPTIMIZE, (function (e, t) {
                                    if (t.range) {
                                        var n = t.range, a = n.startNode,
                                            r = n.startOffset, o = n.endNode,
                                            s = n.endOffset;
                                        i.setNativeRange(a, r, o, s);
                                    }
                                })), this.update(l.default.sources.SILENT);
                        }

                        return a(e, [
                            {
                                key: 'handleComposition',
                                value: function () {
                                    var e = this;
                                    this.root.addEventListener('compositionstart',
                                        (function () {e.composing = !0;})), this.root.addEventListener(
                                        'compositionend', (function () {
                                            if (e.composing = !1, e.cursor.parent) {
                                                var t = e.cursor.restore();
                                                if (!t) return;
                                                setTimeout((function () {
                                                    e.setNativeRange(t.startNode,
                                                        t.startOffset, t.endNode,
                                                        t.endOffset);
                                                }), 1);
                                            }
                                        }));
                                },
                            },
                            {
                                key: 'handleDragging',
                                value: function () {
                                    var e = this;
                                    this.emitter.listenDOM('mousedown',
                                        document.body,
                                        (function () {e.mouseDown = !0;})), this.emitter.listenDOM(
                                        'mouseup', document.body, (function () {
                                            e.mouseDown = !1, e.update(
                                                l.default.sources.USER);
                                        }));
                                },
                            },
                            {
                                key: 'focus',
                                value: function () {
                                    this.hasFocus() ||
                                    (this.root.focus(), this.setRange(
                                        this.savedRange));
                                },
                            },
                            {
                                key: 'format',
                                value: function (e, t) {
                                    if (null == this.scroll.whitelist ||
                                        this.scroll.whitelist[e]) {
                                        this.scroll.update();
                                        var n = this.getNativeRange();
                                        if (null != n && n.native.collapsed &&
                                            !r.default.query(e,
                                                r.default.Scope.BLOCK)) {
                                            if (n.start.node !==
                                                this.cursor.textNode) {
                                                var i = r.default.find(n.start.node,
                                                    !1);
                                                if (null == i) return;
                                                if (i instanceof r.default.Leaf) {
                                                    var a = i.split(n.start.offset);
                                                    i.parent.insertBefore(
                                                        this.cursor, a);
                                                } else i.insertBefore(this.cursor,
                                                    n.start.node);
                                                this.cursor.attach();
                                            }
                                            this.cursor.format(e,
                                                t), this.scroll.optimize(), this.setNativeRange(
                                                this.cursor.textNode,
                                                this.cursor.textNode.data.length), this.update();
                                        }
                                    }
                                },
                            },
                            {
                                key: 'getBounds',
                                value: function (e) {
                                    var t = arguments.length > 1 && void 0 !==
                                        arguments[1] ? arguments[1] : 0,
                                        n = this.scroll.length();
                                    e = Math.min(e, n - 1), t = Math.min(e + t,
                                        n - 1) - e;
                                    var a = void 0, r = this.scroll.leaf(e),
                                        o = i(r, 2), s = o[0], l = o[1];
                                    if (null == s) return null;
                                    var c = s.position(l, !0), u = i(c, 2);
                                    a = u[0], l = u[1];
                                    var d = document.createRange();
                                    if (t > 0) {
                                        d.setStart(a, l);
                                        var h = this.scroll.leaf(e + t),
                                            f = i(h, 2);
                                        if (s = f[0], l = f[1], null ==
                                        s) return null;
                                        var p = s.position(l, !0), m = i(p, 2);
                                        return a = m[0], l = m[1], d.setEnd(a,
                                            l), d.getBoundingClientRect();
                                    }
                                    var g = 'left', v = void 0;
                                    return a instanceof Text
                                        ? (l < a.data.length
                                            ? (d.setStart(a, l), d.setEnd(a, l + 1))
                                            : (d.setStart(a, l - 1), d.setEnd(a,
                                                l), g = 'right'), v = d.getBoundingClientRect())
                                        : (v = s.domNode.getBoundingClientRect(), l >
                                        0 && (g = 'right')), {
                                        bottom: v.top + v.height,
                                        height: v.height,
                                        left: v[g],
                                        right: v[g],
                                        top: v.top,
                                        width: 0,
                                    };
                                },
                            },
                            {
                                key: 'getNativeRange',
                                value: function () {
                                    var e = document.getSelection();
                                    if (null == e || e.rangeCount <= 0) return null;
                                    var t = e.getRangeAt(0);
                                    if (null == t) return null;
                                    var n = this.normalizeNative(t);
                                    return h.info('getNativeRange', n), n;
                                },
                            },
                            {
                                key: 'getRange',
                                value: function () {
                                    var e = this.getNativeRange();
                                    return null == e
                                        ? [null, null]
                                        : [this.normalizedToRange(e), e];
                                },
                            },
                            {
                                key: 'hasFocus',
                                value: function () {
                                    return document.activeElement === this.root;
                                },
                            },
                            {
                                key: 'normalizedToRange',
                                value: function (e) {
                                    var t = this,
                                        n = [[e.start.node, e.start.offset]];
                                    e.native.collapsed ||
                                    n.push([e.end.node, e.end.offset]);
                                    var a = n.map((function (e) {
                                            var n = i(e, 2), a = n[0], o = n[1],
                                                s = r.default.find(a, !0),
                                                l = s.offset(t.scroll);
                                            return 0 === o ? l : s instanceof
                                            r.default.Container ? l + s.length() : l +
                                                s.index(a, o);
                                        })), o = Math.min(Math.max.apply(Math, u(a)),
                                        this.scroll.length() - 1),
                                        s = Math.min.apply(Math, [o].concat(u(a)));
                                    return new f(s, o - s);
                                },
                            },
                            {
                                key: 'normalizeNative',
                                value: function (e) {
                                    if (!m(this.root, e.startContainer) ||
                                        !e.collapsed &&
                                        !m(this.root, e.endContainer)) return null;
                                    var t = {
                                        start: {
                                            node: e.startContainer,
                                            offset: e.startOffset,
                                        },
                                        end: {
                                            node: e.endContainer,
                                            offset: e.endOffset,
                                        },
                                        native: e,
                                    };
                                    return [t.start, t.end].forEach((function (e) {
                                        for (var t = e.node, n = e.offset; !(t instanceof
                                            Text) && t.childNodes.length >
                                        0;) if (t.childNodes.length >
                                            n) t = t.childNodes[n], n = 0; else {
                                            if (t.childNodes.length !== n) break;
                                            n = (t = t.lastChild) instanceof Text
                                                ? t.data.length
                                                : t.childNodes.length + 1;
                                        }
                                        e.node = t, e.offset = n;
                                    })), t;
                                },
                            },
                            {
                                key: 'rangeToNative',
                                value: function (e) {
                                    var t = this, n = e.collapsed ? [e.index] : [
                                            e.index,
                                            e.index + e.length], a = [],
                                        r = this.scroll.length();
                                    return n.forEach((function (e, n) {
                                        e = Math.min(r - 1, e);
                                        var o, s = t.scroll.leaf(e), l = i(s, 2),
                                            c = l[0], u = l[1],
                                            d = c.position(u, 0 !== n), h = i(d, 2);
                                        o = h[0], u = h[1], a.push(o, u);
                                    })), a.length < 2 && (a = a.concat(a)), a;
                                },
                            },
                            {
                                key: 'scrollIntoView',
                                value: function (e) {
                                    var t = this.lastRange;
                                    if (null != t) {
                                        var n = this.getBounds(t.index, t.length);
                                        if (null != n) {
                                            var a = this.scroll.length() - 1,
                                                r = this.scroll.line(
                                                    Math.min(t.index, a)),
                                                o = i(r, 1)[0], s = o;
                                            if (t.length > 0) {
                                                var l = this.scroll.line(
                                                    Math.min(t.index + t.length,
                                                        a));
                                                s = i(l, 1)[0];
                                            }
                                            if (null != o && null != s) {
                                                var c = e.getBoundingClientRect();
                                                n.top < c.top
                                                    ? e.scrollTop -= c.top - n.top
                                                    : n.bottom > c.bottom &&
                                                    (e.scrollTop += n.bottom -
                                                        c.bottom);
                                            }
                                        }
                                    }
                                },
                            },
                            {
                                key: 'setNativeRange',
                                value: function (e, t) {
                                    var n = arguments.length > 2 && void 0 !==
                                        arguments[2] ? arguments[2] : e,
                                        i = arguments.length > 3 && void 0 !==
                                        arguments[3] ? arguments[3] : t,
                                        a = arguments.length > 4 && void 0 !==
                                            arguments[4] && arguments[4];
                                    if (h.info('setNativeRange', e, t, n,
                                        i), null == e || null !=
                                    this.root.parentNode && null != e.parentNode &&
                                    null != n.parentNode) {
                                        var r = document.getSelection();
                                        if (null != r) if (null != e) {
                                            this.hasFocus() || this.root.focus();
                                            var o = (this.getNativeRange() ||
                                                {}).native;
                                            if (null == o || a || e !==
                                                o.startContainer || t !==
                                                o.startOffset || n !==
                                                o.endContainer || i !==
                                                o.endOffset) {
                                                'BR' == e.tagName &&
                                                (t = [].indexOf.call(
                                                    e.parentNode.childNodes,
                                                    e), e = e.parentNode), 'BR' ==
                                                n.tagName && (i = [].indexOf.call(
                                                    n.parentNode.childNodes,
                                                    n), n = n.parentNode);
                                                var s = document.createRange();
                                                s.setStart(e, t), s.setEnd(n,
                                                    i), r.removeAllRanges(), r.addRange(
                                                    s);
                                            }
                                        } else r.removeAllRanges(), this.root.blur(), document.body.focus();
                                    }
                                },
                            },
                            {
                                key: 'setRange',
                                value: function (e) {
                                    var t = arguments.length > 1 && void 0 !==
                                        arguments[1] && arguments[1],
                                        n = arguments.length > 2 && void 0 !==
                                        arguments[2]
                                            ? arguments[2]
                                            : l.default.sources.API;
                                    if ('string' == typeof t &&
                                    (n = t, t = !1), h.info('setRange', e), null !=
                                    e) {
                                        var i = this.rangeToNative(e);
                                        this.setNativeRange.apply(this,
                                            u(i).concat([t]));
                                    } else this.setNativeRange(null);
                                    this.update(n);
                                },
                            },
                            {
                                key: 'update',
                                value: function () {
                                    var e = arguments.length > 0 && void 0 !==
                                        arguments[0]
                                        ? arguments[0]
                                        : l.default.sources.USER,
                                        t = this.lastRange, n = this.getRange(),
                                        a = i(n, 2), r = a[0], c = a[1];
                                    if (this.lastRange = r, null !=
                                    this.lastRange &&
                                    (this.savedRange = this.lastRange), !(0, s.default)(
                                        t, this.lastRange)) {
                                        var u;
                                        !this.composing && null != c &&
                                        c.native.collapsed && c.start.node !==
                                        this.cursor.textNode &&
                                        this.cursor.restore();
                                        var d, h = [
                                            l.default.events.SELECTION_CHANGE,
                                            (0, o.default)(this.lastRange),
                                            (0, o.default)(t),
                                            e];
                                        if ((u = this.emitter).emit.apply(u,
                                            [l.default.events.EDITOR_CHANGE].concat(
                                                h)), e !==
                                        l.default.sources.SILENT) (d = this.emitter).emit.apply(
                                            d, h);
                                    }
                                },
                            }]), e;
                    }();

                function m (e, t) {
                    try {t.parentNode;} catch (e) {return !1;}
                    return t instanceof Text && (t = t.parentNode), e.contains(
                        t);
                }

                t.Range = f, t.default = p;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i, a = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }(), r = function e (t, n, i) {
                    null === t && (t = Function.prototype);
                    var a = Object.getOwnPropertyDescriptor(t, n);
                    if (void 0 === a) {
                        var r = Object.getPrototypeOf(t);
                        return null === r ? void 0 : e(r, n, i);
                    }
                    if ('value' in a) return a.value;
                    var o = a.get;
                    return void 0 !== o ? o.call(i) : void 0;
                }, o = n(0);

                function s (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function l (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                var c = function (e) {
                    function t () {
                        return s(this, t), l(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), a(t, [
                            {
                                key: 'insertInto',
                                value: function (e, n) {
                                    0 === e.children.length
                                        ? r(t.prototype.__proto__ ||
                                        Object.getPrototypeOf(t.prototype),
                                        'insertInto', this).call(this, e, n)
                                        : this.remove();
                                },
                            },
                            { key: 'length', value: function () {return 0;} },
                            { key: 'value', value: function () {return '';} }],
                        [{ key: 'value', value: function () {} }]), t;
                }(((i = o) && i.__esModule ? i : { default: i }).default.Embed);
                c.blotName = 'break', c.tagName = 'BR', t.default = c;
            },
            function (e, t, n) {
                'use strict';
                var i, a = this && this.__extends ||
                    (i = Object.setPrototypeOf || { __proto__: [] } instanceof
                        Array && function (e, t) {e.__proto__ = t;} ||
                        function (e, t) {
                            for (var n in t) t.hasOwnProperty(n) &&
                            (e[n] = t[n]);
                        }, function (e, t) {
                        function n () {this.constructor = e;}

                        i(e, t), e.prototype = null === t
                            ? Object.create(t)
                            : (n.prototype = t.prototype, new n);
                    });
                Object.defineProperty(t, '__esModule', { value: !0 });
                var r = n(44), o = n(30), s = n(1), l = function (e) {
                    function t (t) {
                        var n = e.call(this, t) || this;
                        return n.build(), n;
                    }

                    return a(t, e), t.prototype.appendChild = function (e) {
                        this.insertBefore(e);
                    }, t.prototype.attach = function () {
                        e.prototype.attach.call(this), this.children.forEach(
                            (function (e) {e.attach();}));
                    }, t.prototype.build = function () {
                        var e = this;
                        this.children = new r.default, [].slice.call(
                            this.domNode.childNodes).
                            reverse().
                            forEach((function (t) {
                                try {
                                    var n = c(t);
                                    e.insertBefore(n,
                                        e.children.head || void 0);
                                } catch (e) {
                                    if (e instanceof s.ParchmentError) return;
                                    throw e;
                                }
                            }));
                    }, t.prototype.deleteAt = function (e, t) {
                        if (0 === e && t ===
                            this.length()) return this.remove();
                        this.children.forEachAt(e, t,
                            (function (e, t, n) {e.deleteAt(t, n);}));
                    }, t.prototype.descendant = function (
                        e, n) {
                        var i = this.children.find(n), a = i[0], r = i[1];
                        return null == e.blotName && e(a) || null !=
                        e.blotName && a instanceof e ? [a, r] : a instanceof t
                            ? a.descendant(e, r)
                            : [null, -1];
                    }, t.prototype.descendants = function (e, n, i) {
                        void 0 === n && (n = 0), void 0 === i &&
                        (i = Number.MAX_VALUE);
                        var a = [], r = i;
                        return this.children.forEachAt(n, i,
                            (function (n, i, o) {
                                (null == e.blotName && e(n) || null !=
                                    e.blotName && n instanceof e) &&
                                a.push(n), n instanceof t &&
                                (a = a.concat(n.descendants(e, i, r))), r -= o;
                            })), a;
                    }, t.prototype.detach = function () {
                        this.children.forEach(
                            (function (e) {e.detach();})), e.prototype.detach.call(
                            this);
                    }, t.prototype.formatAt = function (
                        e, t, n, i) {
                        this.children.forEachAt(e, t,
                            (function (e, t, a) {e.formatAt(t, a, n, i);}));
                    }, t.prototype.insertAt = function (
                        e, t, n) {
                        var i = this.children.find(e), a = i[0], r = i[1];
                        if (a) a.insertAt(r, t, n); else {
                            var o = null == n
                                ? s.create('text', t)
                                : s.create(t, n);
                            this.appendChild(o);
                        }
                    }, t.prototype.insertBefore = function (e, t) {
                        if (null != this.statics.allowedChildren &&
                            !this.statics.allowedChildren.some((function (t) {
                                return e instanceof t;
                            }))) throw new s.ParchmentError(
                            'Cannot insert ' + e.statics.blotName + ' into ' +
                            this.statics.blotName);
                        e.insertInto(this, t);
                    }, t.prototype.length = function () {
                        return this.children.reduce(
                            (function (e, t) {return e + t.length();}), 0);
                    }, t.prototype.moveChildren = function (
                        e, t) {
                        this.children.forEach(
                            (function (n) {e.insertBefore(n, t);}));
                    }, t.prototype.optimize = function (t) {
                        if (e.prototype.optimize.call(this, t), 0 ===
                        this.children.length) if (null !=
                            this.statics.defaultChild) {
                            var n = s.create(this.statics.defaultChild);
                            this.appendChild(n), n.optimize(t);
                        } else this.remove();
                    }, t.prototype.path = function (e, n) {
                        void 0 === n && (n = !1);
                        var i = this.children.find(e, n), a = i[0], r = i[1],
                            o = [[this, e]];
                        return a instanceof t
                            ? o.concat(a.path(r, n))
                            : (null != a && o.push([a, r]), o);
                    }, t.prototype.removeChild = function (e) {
                        this.children.remove(e);
                    }, t.prototype.replace = function (n) {
                        n instanceof t &&
                        n.moveChildren(this), e.prototype.replace.call(this, n);
                    }, t.prototype.split = function (e, t) {
                        if (void 0 === t && (t = !1), !t) {
                            if (0 === e) return this;
                            if (e === this.length()) return this.next;
                        }
                        var n = this.clone();
                        return this.parent.insertBefore(n,
                            this.next), this.children.forEachAt(e,
                            this.length(), (function (e, i, a) {
                                e = e.split(i, t), n.appendChild(e);
                            })), n;
                    }, t.prototype.unwrap = function () {
                        this.moveChildren(this.parent,
                            this.next), this.remove();
                    }, t.prototype.update = function (e, t) {
                        var n = this, i = [], a = [];
                        e.forEach((function (e) {
                            e.target === n.domNode && 'childList' === e.type &&
                            (i.push.apply(i, e.addedNodes), a.push.apply(a,
                                e.removedNodes));
                        })), a.forEach((function (e) {
                            if (!(null != e.parentNode && 'IFRAME' !==
                                e.tagName &&
                                document.body.compareDocumentPosition(e) &
                                Node.DOCUMENT_POSITION_CONTAINED_BY)) {
                                var t = s.find(e);
                                null != t && (null != t.domNode.parentNode &&
                                    t.domNode.parentNode !== n.domNode ||
                                    t.detach());
                            }
                        })), i.filter(
                            (function (e) {return e.parentNode == n.domNode;})).
                            sort((function (e, t) {
                                return e === t
                                    ? 0
                                    : e.compareDocumentPosition(t) &
                                    Node.DOCUMENT_POSITION_FOLLOWING ? 1 : -1;
                            })).
                            forEach((function (e) {
                                var t = null;
                                null != e.nextSibling &&
                                (t = s.find(e.nextSibling));
                                var i = c(e);
                                i.next == t && null != i.next ||
                                (null != i.parent &&
                                i.parent.removeChild(n), n.insertBefore(i,
                                    t || void 0));
                            }));
                    }, t;
                }(o.default);

                function c (e) {
                    var t = s.find(e);
                    if (null == t) try {
                        t = s.create(e);
                    } catch (n) {
                        t = s.create(s.Scope.INLINE), [].slice.call(
                            e.childNodes).
                            forEach((function (e) {
                                t.domNode.appendChild(e);
                            })), e.parentNode &&
                        e.parentNode.replaceChild(t.domNode, e), t.attach();
                    }
                    return t;
                }

                t.default = l;
            },
            function (e, t, n) {
                'use strict';
                var i, a = this && this.__extends ||
                    (i = Object.setPrototypeOf || { __proto__: [] } instanceof
                        Array && function (e, t) {e.__proto__ = t;} ||
                        function (e, t) {
                            for (var n in t) t.hasOwnProperty(n) &&
                            (e[n] = t[n]);
                        }, function (e, t) {
                        function n () {this.constructor = e;}

                        i(e, t), e.prototype = null === t
                            ? Object.create(t)
                            : (n.prototype = t.prototype, new n);
                    });
                Object.defineProperty(t, '__esModule', { value: !0 });
                var r = n(12), o = n(31), s = n(17), l = n(1),
                    c = function (e) {
                        function t (t) {
                            var n = e.call(this, t) || this;
                            return n.attributes = new o.default(n.domNode), n;
                        }

                        return a(t, e), t.formats = function (e) {
                            return 'string' == typeof this.tagName ||
                                (Array.isArray(this.tagName)
                                    ? e.tagName.toLowerCase()
                                    : void 0);
                        }, t.prototype.format = function (
                            e, t) {
                            var n = l.query(e);
                            n instanceof r.default ? this.attributes.attribute(
                                n, t) : t &&
                                (null == n || e === this.statics.blotName &&
                                    this.formats()[e] === t ||
                                    this.replaceWith(e, t));
                        }, t.prototype.formats = function () {
                            var e = this.attributes.values(),
                                t = this.statics.formats(this.domNode);
                            return null != t &&
                            (e[this.statics.blotName] = t), e;
                        }, t.prototype.replaceWith = function (
                            t, n) {
                            var i = e.prototype.replaceWith.call(this, t, n);
                            return this.attributes.copy(i), i;
                        }, t.prototype.update = function (t, n) {
                            var i = this;
                            e.prototype.update.call(this, t, n), t.some(
                                (function (e) {
                                    return e.target === i.domNode &&
                                        'attributes' === e.type;
                                })) && this.attributes.build();
                        }, t.prototype.wrap = function (
                            n, i) {
                            var a = e.prototype.wrap.call(this, n, i);
                            return a instanceof t && a.statics.scope ===
                            this.statics.scope && this.attributes.move(a), a;
                        }, t;
                    }(s.default);
                t.default = c;
            },
            function (e, t, n) {
                'use strict';
                var i, a = this && this.__extends ||
                    (i = Object.setPrototypeOf || { __proto__: [] } instanceof
                        Array && function (e, t) {e.__proto__ = t;} ||
                        function (e, t) {
                            for (var n in t) t.hasOwnProperty(n) &&
                            (e[n] = t[n]);
                        }, function (e, t) {
                        function n () {this.constructor = e;}

                        i(e, t), e.prototype = null === t
                            ? Object.create(t)
                            : (n.prototype = t.prototype, new n);
                    });
                Object.defineProperty(t, '__esModule', { value: !0 });
                var r = n(30), o = n(1), s = function (e) {
                    function t () {
                        return null !== e && e.apply(this, arguments) || this;
                    }

                    return a(t,
                        e), t.value = function (e) {return !0;}, t.prototype.index = function (
                        e, t) {
                        return this.domNode === e ||
                        this.domNode.compareDocumentPosition(e) &
                        Node.DOCUMENT_POSITION_CONTAINED_BY
                            ? Math.min(t, 1)
                            : -1;
                    }, t.prototype.position = function (
                        e, t) {
                        var n = [].indexOf.call(this.parent.domNode.childNodes,
                            this.domNode);
                        return e > 0 && (n += 1), [this.parent.domNode, n];
                    }, t.prototype.value = function () {
                        var e;
                        return (e = {})[this.statics.blotName] = this.statics.value(
                            this.domNode) || !0, e;
                    }, t.scope = o.Scope.INLINE_BLOT, t;
                }(r.default);
                t.default = s;
            },
            function (e, t, n) {
                var i = n(11), a = n(3), r = {
                    attributes: {
                        compose: function (e, t, n) {
                            'object' != typeof e && (e = {}), 'object' !=
                            typeof t && (t = {});
                            var i = a(!0, {}, t);
                            for (var r in n || (i = Object.keys(i).
                                reduce((function (e, t) {
                                    return null != i[t] && (e[t] = i[t]), e;
                                }), {})), e) void 0 !== e[r] && void 0 ===
                            t[r] && (i[r] = e[r]);
                            return Object.keys(i).length > 0 ? i : void 0;
                        },
                        diff: function (e, t) {
                            'object' != typeof e && (e = {}), 'object' !=
                            typeof t && (t = {});
                            var n = Object.keys(e).
                                concat(Object.keys(t)).
                                reduce((function (n, a) {
                                    return i(e[a], t[a]) ||
                                    (n[a] = void 0 === t[a] ? null : t[a]), n;
                                }), {});
                            return Object.keys(n).length > 0 ? n : void 0;
                        },
                        transform: function (e, t, n) {
                            if ('object' != typeof e) return t;
                            if ('object' == typeof t) {
                                if (!n) return t;
                                var i = Object.keys(t).
                                    reduce((function (n, i) {
                                        return void 0 === e[i] &&
                                        (n[i] = t[i]), n;
                                    }), {});
                                return Object.keys(i).length > 0 ? i : void 0;
                            }
                        },
                    },
                    iterator: function (e) {return new o(e);},
                    length: function (e) {
                        return 'number' == typeof e.delete
                            ? e.delete
                            : 'number' == typeof e.retain
                                ? e.retain
                                : 'string' == typeof e.insert
                                    ? e.insert.length
                                    : 1;
                    },
                };

                function o (e) {this.ops = e, this.index = 0, this.offset = 0;}

                o.prototype.hasNext = function () {
                    return this.peekLength() < 1 / 0;
                }, o.prototype.next = function (e) {
                    e || (e = 1 / 0);
                    var t = this.ops[this.index];
                    if (t) {
                        var n = this.offset, i = r.length(t);
                        if (e >= i - n
                            ? (e = i - n, this.index += 1, this.offset = 0)
                            : this.offset += e, 'number' ==
                        typeof t.delete) return { delete: e };
                        var a = {};
                        return t.attributes &&
                        (a.attributes = t.attributes), 'number' ==
                        typeof t.retain ? a.retain = e : 'string' ==
                        typeof t.insert
                            ? a.insert = t.insert.substr(n, e)
                            : a.insert = t.insert, a;
                    }
                    return { retain: 1 / 0 };
                }, o.prototype.peek = function () {return this.ops[this.index];}, o.prototype.peekLength = function () {
                    return this.ops[this.index]
                        ? r.length(this.ops[this.index]) - this.offset
                        : 1 / 0;
                }, o.prototype.peekType = function () {
                    return this.ops[this.index]
                        ? 'number' == typeof this.ops[this.index].delete
                            ? 'delete'
                            : 'number' == typeof this.ops[this.index].retain
                                ? 'retain'
                                : 'insert'
                        : 'retain';
                }, o.prototype.rest = function () {
                    if (this.hasNext()) {
                        if (0 === this.offset) return this.ops.slice(
                            this.index);
                        var e = this.offset, t = this.index, n = this.next(),
                            i = this.ops.slice(this.index);
                        return this.offset = e, this.index = t, [n].concat(i);
                    }
                    return [];
                }, e.exports = r;
            },
            function (e, t) {
                var n = function () {
                    'use strict';

                    function e (e, t) {return null != t && e instanceof t;}

                    var t, n, i;
                    try {t = Map;} catch (e) {t = function () {};}
                    try {n = Set;} catch (e) {n = function () {};}
                    try {i = Promise;} catch (e) {i = function () {};}

                    function a (r, s, l, c, u) {
                        'object' == typeof s &&
                        (l = s.depth, c = s.prototype, u = s.includeNonEnumerable, s = s.circular);
                        var d = [], h = [], f = 'undefined' != typeof Buffer;
                        return void 0 === s && (s = !0), void 0 === l &&
                        (l = 1 / 0), function r (l, p) {
                            if (null === l) return null;
                            if (0 === p) return l;
                            var m, g;
                            if ('object' != typeof l) return l;
                            if (e(l, t)) m = new t; else if (e(l,
                                n)) m = new n; else if (e(l, i)) m = new i(
                                (function (e, t) {
                                    l.then((function (t) {e(r(t, p - 1));}),
                                        (function (e) {t(r(e, p - 1));}));
                                })); else if (a.__isArray(
                                l)) m = []; else if (a.__isRegExp(
                                l)) m = new RegExp(l.source,
                                o(l)), l.lastIndex &&
                            (m.lastIndex = l.lastIndex); else if (a.__isDate(
                                l)) m = new Date(l.getTime()); else {
                                if (f && Buffer.isBuffer(
                                    l)) return m = Buffer.allocUnsafe
                                    ? Buffer.allocUnsafe(l.length)
                                    : new Buffer(l.length), l.copy(m), m;
                                e(l, Error) ? m = Object.create(l) : void 0 ===
                                c
                                    ? (g = Object.getPrototypeOf(
                                        l), m = Object.create(g))
                                    : (m = Object.create(c), g = c);
                            }
                            if (s) {
                                var v = d.indexOf(l);
                                if (-1 != v) return h[v];
                                d.push(l), h.push(m);
                            }
                            for (var y in e(l, t) && l.forEach(
                                (function (e, t) {
                                    var n = r(t, p - 1), i = r(e, p - 1);
                                    m.set(n, i);
                                })), e(l, n) && l.forEach((function (e) {
                                var t = r(e, p - 1);
                                m.add(t);
                            })), l) {
                                var b;
                                g && (b = Object.getOwnPropertyDescriptor(g,
                                    y)), b && null == b.set ||
                                (m[y] = r(l[y], p - 1));
                            }
                            if (Object.getOwnPropertySymbols) {
                                var x = Object.getOwnPropertySymbols(l);
                                for (y = 0; y < x.length; y++) {
                                    var _ = x[y];
                                    (!(k = Object.getOwnPropertyDescriptor(l,
                                        _)) || k.enumerable || u) &&
                                    (m[_] = r(l[_], p - 1), k.enumerable ||
                                    Object.defineProperty(m, _,
                                        { enumerable: !1 }));
                                }
                            }
                            if (u) {
                                var w = Object.getOwnPropertyNames(l);
                                for (y = 0; y < w.length; y++) {
                                    var k, M = w[y];
                                    (k = Object.getOwnPropertyDescriptor(l,
                                        M)) && k.enumerable || (m[M] = r(l[M],
                                        p - 1), Object.defineProperty(m, M,
                                        { enumerable: !1 }));
                                }
                            }
                            return m;
                        }(r, l);
                    }

                    function r (e) {return Object.prototype.toString.call(e);}

                    function o (e) {
                        var t = '';
                        return e.global && (t += 'g'), e.ignoreCase &&
                        (t += 'i'), e.multiline && (t += 'm'), t;
                    }

                    return a.clonePrototype = function (e) {
                        if (null === e) return null;
                        var t = function () {};
                        return t.prototype = e, new t;
                    }, a.__objToStr = r, a.__isDate = function (e) {
                        return 'object' == typeof e && '[object Date]' === r(e);
                    }, a.__isArray = function (e) {
                        return 'object' == typeof e && '[object Array]' ===
                            r(e);
                    }, a.__isRegExp = function (e) {
                        return 'object' == typeof e && '[object RegExp]' ===
                            r(e);
                    }, a.__getRegExpFlags = o, a;
                }();
                'object' == typeof e && e.exports && (e.exports = n);
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i = function (e, t) {
                        if (Array.isArray(e)) return e;
                        if (Symbol.iterator in Object(e)) return function (
                            e, t) {
                            var n = [], i = !0, a = !1, r = void 0;
                            try {
                                for (var o, s = e[Symbol.iterator](); !(i = (o = s.next()).done) &&
                                (n.push(o.value), !t || n.length !== t); i = !0) ;
                            } catch (e) {a = !0, r = e;} finally {
                                try {
                                    !i && s.return && s.return();
                                } finally {if (a) throw r;}
                            }
                            return n;
                        }(e, t);
                        throw new TypeError(
                            'Invalid attempt to destructure non-iterable instance');
                    }, a = function () {
                        function e (e, t) {
                            for (var n = 0; n < t.length; n++) {
                                var i = t[n];
                                i.enumerable = i.enumerable ||
                                    !1, i.configurable = !0, 'value' in i &&
                                (i.writable = !0), Object.defineProperty(e, i.key,
                                    i);
                            }
                        }

                        return function (t, n, i) {
                            return n && e(t.prototype, n), i && e(t, i), t;
                        };
                    }(), r = function e (t, n, i) {
                        null === t && (t = Function.prototype);
                        var a = Object.getOwnPropertyDescriptor(t, n);
                        if (void 0 === a) {
                            var r = Object.getPrototypeOf(t);
                            return null === r ? void 0 : e(r, n, i);
                        }
                        if ('value' in a) return a.value;
                        var o = a.get;
                        return void 0 !== o ? o.call(i) : void 0;
                    }, o = f(n(0)), s = f(n(8)), l = n(4), c = f(l), u = f(n(16)),
                    d = f(n(13)), h = f(n(25));

                function f (e) {return e && e.__esModule ? e : { default: e };}

                function p (e) {
                    return e instanceof c.default || e instanceof l.BlockEmbed;
                }

                var m = function (e) {
                    function t (e, n) {
                        !function (e, t) {
                            if (!(e instanceof t)) throw new TypeError(
                                'Cannot call a class as a function');
                        }(this, t);
                        var i = function (
                            e, t) {
                            if (!e) throw new ReferenceError(
                                'this hasn\'t been initialised - super() hasn\'t been called');
                            return !t || 'object' != typeof t && 'function' !=
                            typeof t ? e : t;
                        }(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).call(this,
                                e));
                        return i.emitter = n.emitter, Array.isArray(
                            n.whitelist) && (i.whitelist = n.whitelist.reduce(
                            (function (e, t) {return e[t] = !0, e;}),
                            {})), i.domNode.addEventListener('DOMNodeInserted',
                            (function () {})), i.optimize(), i.enable(), i;
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), a(t, [
                        {
                            key: 'batchStart',
                            value: function () {this.batch = !0;},
                        },
                        {
                            key: 'batchEnd',
                            value: function () {this.batch = !1, this.optimize();},
                        },
                        {
                            key: 'deleteAt',
                            value: function (e, n) {
                                var a = this.line(e), o = i(a, 2), s = o[0],
                                    c = o[1], h = this.line(e + n),
                                    f = i(h, 1)[0];
                                if (r(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'deleteAt', this).call(this, e, n), null !=
                                f && s !== f && c > 0) {
                                    if (s instanceof l.BlockEmbed ||
                                        f instanceof
                                        l.BlockEmbed) return void this.optimize();
                                    if (s instanceof d.default) {
                                        var p = s.newlineIndex(s.length(), !0);
                                        if (p > -1 && (s = s.split(p + 1)) ===
                                            f) return void this.optimize();
                                    } else if (f instanceof d.default) {
                                        var m = f.newlineIndex(0);
                                        m > -1 && f.split(m + 1);
                                    }
                                    var g = f.children.head instanceof u.default
                                        ? null
                                        : f.children.head;
                                    s.moveChildren(f, g), s.remove();
                                }
                                this.optimize();
                            },
                        },
                        {
                            key: 'enable',
                            value: function () {
                                var e = !(arguments.length > 0 && void 0 !==
                                    arguments[0]) || arguments[0];
                                this.domNode.setAttribute('contenteditable', e);
                            },
                        },
                        {
                            key: 'formatAt',
                            value: function (e, n, i, a) {
                                (null == this.whitelist || this.whitelist[i]) &&
                                (r(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'formatAt', this).
                                    call(this, e, n, i, a), this.optimize());
                            },
                        },
                        {
                            key: 'insertAt',
                            value: function (e, n, i) {
                                if (null == i || null == this.whitelist ||
                                    this.whitelist[n]) {
                                    if (e >= this.length()) if (null == i ||
                                        null == o.default.query(n,
                                            o.default.Scope.BLOCK)) {
                                        var a = o.default.create(
                                            this.statics.defaultChild);
                                        this.appendChild(a), null == i &&
                                        n.endsWith('\n') &&
                                        (n = n.slice(0, -1)), a.insertAt(0, n,
                                            i);
                                    } else {
                                        var s = o.default.create(n, i);
                                        this.appendChild(s);
                                    } else r(t.prototype.__proto__ ||
                                        Object.getPrototypeOf(t.prototype),
                                        'insertAt', this).call(this, e, n, i);
                                    this.optimize();
                                }
                            },
                        },
                        {
                            key: 'insertBefore',
                            value: function (e, n) {
                                if (e.statics.scope ===
                                    o.default.Scope.INLINE_BLOT) {
                                    var i = o.default.create(
                                        this.statics.defaultChild);
                                    i.appendChild(e), e = i;
                                }
                                r(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'insertBefore', this).call(this, e, n);
                            },
                        },
                        {
                            key: 'leaf',
                            value: function (e) {
                                return this.path(e).pop() || [null, -1];
                            },
                        },
                        {
                            key: 'line',
                            value: function (e) {
                                return e === this.length()
                                    ? this.line(e - 1)
                                    : this.descendant(p, e);
                            },
                        },
                        {
                            key: 'lines',
                            value: function () {
                                var e = arguments.length > 0 && void 0 !==
                                    arguments[0] ? arguments[0] : 0,
                                    t = arguments.length > 1 && void 0 !==
                                    arguments[1]
                                        ? arguments[1]
                                        : Number.MAX_VALUE,
                                    n = function e (t, n, i) {
                                        var a = [], r = i;
                                        return t.children.forEachAt(n, i,
                                            (function (t, n, i) {
                                                p(t)
                                                    ? a.push(t)
                                                    : t instanceof
                                                    o.default.Container &&
                                                    (a = a.concat(
                                                        e(t, n, r))), r -= i;
                                            })), a;
                                    };
                                return n(this, e, t);
                            },
                        },
                        {
                            key: 'optimize',
                            value: function () {
                                var e = arguments.length > 0 && void 0 !==
                                    arguments[0] ? arguments[0] : [],
                                    n = arguments.length > 1 && void 0 !==
                                    arguments[1] ? arguments[1] : {};
                                !0 !== this.batch && (r(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'optimize', this).
                                    call(this, e, n), e.length > 0 &&
                                this.emitter.emit(
                                    s.default.events.SCROLL_OPTIMIZE, e, n));
                            },
                        },
                        {
                            key: 'path',
                            value: function (e) {
                                return r(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype), 'path',
                                    this).call(this, e).slice(1);
                            },
                        },
                        {
                            key: 'update',
                            value: function (e) {
                                if (!0 !== this.batch) {
                                    var n = s.default.sources.USER;
                                    'string' == typeof e &&
                                    (n = e), Array.isArray(e) ||
                                    (e = this.observer.takeRecords()), e.length >
                                    0 && this.emitter.emit(
                                        s.default.events.SCROLL_BEFORE_UPDATE,
                                        n, e), r(t.prototype.__proto__ ||
                                        Object.getPrototypeOf(t.prototype),
                                        'update', this).
                                        call(this, e.concat([])), e.length >
                                    0 && this.emitter.emit(
                                        s.default.events.SCROLL_UPDATE, n, e);
                                }
                            },
                        }]), t;
                }(o.default.Scroll);
                m.blotName = 'scroll', m.className = 'ql-editor', m.tagName = 'DIV', m.defaultChild = 'block', m.allowedChildren = [
                    c.default,
                    l.BlockEmbed,
                    h.default], t.default = m;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.SHORTKEY = t.default = void 0;
                var i = 'function' == typeof Symbol && 'symbol' ==
                    typeof Symbol.iterator
                    ? function (e) {return typeof e;}
                    : function (e) {
                        return e && 'function' == typeof Symbol &&
                        e.constructor === Symbol && e !== Symbol.prototype
                            ? 'symbol'
                            : typeof e;
                    }, a = function (e, t) {
                        if (Array.isArray(e)) return e;
                        if (Symbol.iterator in Object(e)) return function (
                            e, t) {
                            var n = [], i = !0, a = !1, r = void 0;
                            try {
                                for (var o, s = e[Symbol.iterator](); !(i = (o = s.next()).done) &&
                                (n.push(o.value), !t || n.length !== t); i = !0) ;
                            } catch (e) {a = !0, r = e;} finally {
                                try {
                                    !i && s.return && s.return();
                                } finally {if (a) throw r;}
                            }
                            return n;
                        }(e, t);
                        throw new TypeError(
                            'Invalid attempt to destructure non-iterable instance');
                    }, r = function () {
                        function e (e, t) {
                            for (var n = 0; n < t.length; n++) {
                                var i = t[n];
                                i.enumerable = i.enumerable ||
                                    !1, i.configurable = !0, 'value' in i &&
                                (i.writable = !0), Object.defineProperty(e, i.key,
                                    i);
                            }
                        }

                        return function (t, n, i) {
                            return n && e(t.prototype, n), i && e(t, i), t;
                        };
                    }(), o = m(n(21)), s = m(n(11)), l = m(n(3)), c = m(n(2)),
                    u = m(n(20)), d = m(n(0)), h = m(n(5)), f = m(n(10)),
                    p = m(n(9));

                function m (e) {return e && e.__esModule ? e : { default: e };}

                function g (e, t, n) {
                    return t in e ? Object.defineProperty(e, t, {
                        value: n,
                        enumerable: !0,
                        configurable: !0,
                        writable: !0,
                    }) : e[t] = n, e;
                }

                var v = (0, f.default)('quill:keyboard'),
                    y = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey',
                    b = function (e) {
                        function t (e, n) {
                            !function (e, t) {
                                if (!(e instanceof t)) throw new TypeError(
                                    'Cannot call a class as a function');
                            }(this, t);
                            var i = function (
                                e, t) {
                                if (!e) throw new ReferenceError(
                                    'this hasn\'t been initialised - super() hasn\'t been called');
                                return !t || 'object' != typeof t &&
                                'function' != typeof t ? e : t;
                            }(this,
                                (t.__proto__ || Object.getPrototypeOf(t)).call(
                                    this, e, n));
                            return i.bindings = {}, Object.keys(
                                i.options.bindings).
                                forEach((function (t) {
                                    ('list autofill' !== t || null ==
                                        e.scroll.whitelist ||
                                        e.scroll.whitelist.list) &&
                                    i.options.bindings[t] &&
                                    i.addBinding(i.options.bindings[t]);
                                })), i.addBinding(
                                { key: t.keys.ENTER, shiftKey: null },
                                M), i.addBinding({
                                key: t.keys.ENTER,
                                metaKey: null,
                                ctrlKey: null,
                                altKey: null,
                            }, (function () {})), /Firefox/i.test(
                                navigator.userAgent) ? (i.addBinding(
                                { key: t.keys.BACKSPACE }, { collapsed: !0 },
                                _), i.addBinding({ key: t.keys.DELETE },
                                { collapsed: !0 }, w)) : (i.addBinding(
                                { key: t.keys.BACKSPACE },
                                { collapsed: !0, prefix: /^.?$/ },
                                _), i.addBinding({ key: t.keys.DELETE },
                                { collapsed: !0, suffix: /^.?$/ },
                                w)), i.addBinding({ key: t.keys.BACKSPACE },
                                { collapsed: !1 }, k), i.addBinding(
                                { key: t.keys.DELETE }, { collapsed: !1 },
                                k), i.addBinding({
                                key: t.keys.BACKSPACE,
                                altKey: null,
                                ctrlKey: null,
                                metaKey: null,
                                shiftKey: null,
                            }, { collapsed: !0, offset: 0 }, _), i.listen(), i;
                        }

                        return function (e, t) {
                            if ('function' != typeof t && null !==
                                t) throw new TypeError(
                                'Super expression must either be null or a function, not ' +
                                typeof t);
                            e.prototype = Object.create(t && t.prototype, {
                                constructor: {
                                    value: e,
                                    enumerable: !1,
                                    writable: !0,
                                    configurable: !0,
                                },
                            }), t && (Object.setPrototypeOf
                                ? Object.setPrototypeOf(e, t)
                                : e.__proto__ = t);
                        }(t, e), r(t, null, [
                            {
                                key: 'match',
                                value: function (e, t) {
                                    return t = T(t), ![
                                        'altKey',
                                        'ctrlKey',
                                        'metaKey',
                                        'shiftKey'].some((function (n) {
                                        return !!t[n] !== e[n] && null !== t[n];
                                    })) && t.key === (e.which || e.keyCode);
                                },
                            }]), r(t, [
                            {
                                key: 'addBinding',
                                value: function (e) {
                                    var t = arguments.length > 1 && void 0 !==
                                        arguments[1] ? arguments[1] : {},
                                        n = arguments.length > 2 && void 0 !==
                                        arguments[2] ? arguments[2] : {},
                                        i = T(e);
                                    if (null == i || null ==
                                        i.key) return v.warn(
                                        'Attempted to add invalid keyboard binding',
                                        i);
                                    'function' == typeof t &&
                                    (t = { handler: t }), 'function' ==
                                    typeof n &&
                                    (n = { handler: n }), i = (0, l.default)(i,
                                        t,
                                        n), this.bindings[i.key] = this.bindings[i.key] ||
                                        [], this.bindings[i.key].push(i);
                                },
                            }, {
                                key: 'listen', value: function () {
                                    var e = this;
                                    this.quill.root.addEventListener('keydown',
                                        (function (n) {
                                            if (!n.defaultPrevented) {
                                                var r = n.which || n.keyCode,
                                                    o = (e.bindings[r] ||
                                                        []).filter(
                                                        (function (e) {
                                                            return t.match(n,
                                                                e);
                                                        }));
                                                if (0 !== o.length) {
                                                    var l = e.quill.getSelection();
                                                    if (null != l &&
                                                        e.quill.hasFocus()) {
                                                        var c = e.quill.getLine(
                                                            l.index),
                                                            u = a(c, 2),
                                                            h = u[0], f = u[1],
                                                            p = e.quill.getLeaf(
                                                                l.index),
                                                            m = a(p, 2),
                                                            g = m[0], v = m[1],
                                                            y = 0 === l.length
                                                                ? [g, v]
                                                                : e.quill.getLeaf(
                                                                    l.index +
                                                                    l.length),
                                                            b = a(y, 2),
                                                            x = b[0], _ = b[1],
                                                            w = g instanceof
                                                            d.default.Text
                                                                ? g.value().
                                                                    slice(0, v)
                                                                : '',
                                                            k = x instanceof
                                                            d.default.Text
                                                                ? x.value().
                                                                    slice(_)
                                                                : '', M = {
                                                                collapsed: 0 ===
                                                                    l.length,
                                                                empty: 0 ===
                                                                    l.length &&
                                                                    h.length() <= 1,
                                                                format: e.quill.getFormat(
                                                                    l),
                                                                offset: f,
                                                                prefix: w,
                                                                suffix: k,
                                                            };
                                                        o.some((function (t) {
                                                            if (null !=
                                                                t.collapsed &&
                                                                t.collapsed !==
                                                                M.collapsed) return !1;
                                                            if (null !=
                                                                t.empty &&
                                                                t.empty !==
                                                                M.empty) return !1;
                                                            if (null !=
                                                                t.offset &&
                                                                t.offset !==
                                                                M.offset) return !1;
                                                            if (Array.isArray(
                                                                t.format)) {
                                                                if (t.format.every(
                                                                    (function (e) {
                                                                        return null ==
                                                                            M.format[e];
                                                                    }))) return !1;
                                                            } else if ('object' ===
                                                                i(t.format) &&
                                                                !Object.keys(
                                                                    t.format).
                                                                    every(
                                                                        (function (e) {
                                                                            return !0 ===
                                                                            t.format[e]
                                                                                ? null !=
                                                                                M.format[e]
                                                                                : !1 ===
                                                                                t.format[e]
                                                                                    ? null ==
                                                                                    M.format[e]
                                                                                    : (0, s.default)(
                                                                                        t.format[e],
                                                                                        M.format[e]);
                                                                        }))) return !1;
                                                            return !(null !=
                                                                t.prefix &&
                                                                !t.prefix.test(
                                                                    M.prefix)) &&
                                                                (!(null !=
                                                                    t.suffix &&
                                                                    !t.suffix.test(
                                                                        M.suffix)) &&
                                                                    !0 !==
                                                                    t.handler.call(
                                                                        e, l,
                                                                        M));
                                                        })) &&
                                                        n.preventDefault();
                                                    }
                                                }
                                            }
                                        }));
                                },
                            }]), t;
                    }(p.default);

                function x (e, t) {
                    var n, i = e === b.keys.LEFT ? 'prefix' : 'suffix';
                    return g(n = { key: e, shiftKey: t, altKey: null }, i,
                        /^$/), g(n, 'handler', (function (n) {
                        var i = n.index;
                        e === b.keys.RIGHT && (i += n.length + 1);
                        var r = this.quill.getLeaf(i);
                        return !(a(r, 1)[0] instanceof d.default.Embed) ||
                            (e === b.keys.LEFT ? t
                                ? this.quill.setSelection(n.index - 1,
                                    n.length + 1, h.default.sources.USER)
                                : this.quill.setSelection(n.index - 1,
                                    h.default.sources.USER) : t
                                ? this.quill.setSelection(n.index, n.length + 1,
                                    h.default.sources.USER)
                                : this.quill.setSelection(
                                    n.index + n.length + 1,
                                    h.default.sources.USER), !1);
                    })), n;
                }

                function _ (e, t) {
                    if (!(0 === e.index || this.quill.getLength() <= 1)) {
                        var n = this.quill.getLine(e.index), i = a(n, 1)[0],
                            r = {};
                        if (0 === t.offset) {
                            var o = this.quill.getLine(e.index - 1),
                                s = a(o, 1)[0];
                            if (null != s && s.length() > 1) {
                                var l = i.formats(),
                                    c = this.quill.getFormat(e.index - 1, 1);
                                r = u.default.attributes.diff(l, c) || {};
                            }
                        }
                        var d = /[\uD800-\uDBFF][\uDC00-\uDFFF]$/.test(t.prefix)
                            ? 2
                            : 1;
                        this.quill.deleteText(e.index - d, d,
                            h.default.sources.USER), Object.keys(r).length >
                        0 && this.quill.formatLine(e.index - d, d, r,
                            h.default.sources.USER), this.quill.focus();
                    }
                }

                function w (
                    e, t) {
                    var n = /^[\uD800-\uDBFF][\uDC00-\uDFFF]/.test(t.suffix)
                        ? 2
                        : 1;
                    if (!(e.index >= this.quill.getLength() - n)) {
                        var i = {}, r = 0, o = this.quill.getLine(e.index),
                            s = a(o, 1)[0];
                        if (t.offset >= s.length() - 1) {
                            var l = this.quill.getLine(e.index + 1),
                                c = a(l, 1)[0];
                            if (c) {
                                var d = s.formats(),
                                    f = this.quill.getFormat(e.index, 1);
                                i = u.default.attributes.diff(d, f) ||
                                    {}, r = c.length();
                            }
                        }
                        this.quill.deleteText(e.index, n,
                            h.default.sources.USER), Object.keys(i).length >
                        0 && this.quill.formatLine(e.index + r - 1, n, i,
                            h.default.sources.USER);
                    }
                }

                function k (e) {
                    var t = this.quill.getLines(e), n = {};
                    if (t.length > 1) {
                        var i = t[0].formats(), a = t[t.length - 1].formats();
                        n = u.default.attributes.diff(a, i) || {};
                    }
                    this.quill.deleteText(e,
                        h.default.sources.USER), Object.keys(n).length > 0 &&
                    this.quill.formatLine(e.index, 1, n,
                        h.default.sources.USER), this.quill.setSelection(
                        e.index, h.default.sources.SILENT), this.quill.focus();
                }

                function M (e, t) {
                    var n = this;
                    e.length > 0 &&
                    this.quill.scroll.deleteAt(e.index, e.length);
                    var i = Object.keys(t.format).
                        reduce((function (e, n) {
                            return d.default.query(n, d.default.Scope.BLOCK) &&
                            !Array.isArray(t.format[n]) &&
                            (e[n] = t.format[n]), e;
                        }), {});
                    this.quill.insertText(e.index, '\n', i,
                        h.default.sources.USER), this.quill.setSelection(
                        e.index + 1,
                        h.default.sources.SILENT), this.quill.focus(), Object.keys(
                        t.format).
                        forEach((function (e) {
                            null == i[e] &&
                            (Array.isArray(t.format[e]) || 'link' !== e &&
                                n.quill.format(e, t.format[e],
                                    h.default.sources.USER));
                        }));
                }

                function L (e) {
                    return {
                        key: b.keys.TAB,
                        shiftKey: !e,
                        format: { 'code-block': !0 },
                        handler: function (t) {
                            var n = d.default.query('code-block'), i = t.index,
                                r = t.length,
                                o = this.quill.scroll.descendant(n, i),
                                s = a(o, 2), l = s[0], c = s[1];
                            if (null != l) {
                                var u = this.quill.getIndex(l),
                                    f = l.newlineIndex(c, !0) + 1,
                                    p = l.newlineIndex(u + c + r),
                                    m = l.domNode.textContent.slice(f, p).
                                        split('\n');
                                c = 0, m.forEach((function (t, a) {
                                    e ? (l.insertAt(f + c,
                                        n.TAB), c += n.TAB.length, 0 === a
                                        ? i += n.TAB.length
                                        : r += n.TAB.length) : t.startsWith(
                                        n.TAB) && (l.deleteAt(f + c,
                                        n.TAB.length), c -= n.TAB.length, 0 ===
                                    a
                                        ? i -= n.TAB.length
                                        : r -= n.TAB.length), c += t.length + 1;
                                })), this.quill.update(
                                    h.default.sources.USER), this.quill.setSelection(
                                    i, r, h.default.sources.SILENT);
                            }
                        },
                    };
                }

                function S (e) {
                    return {
                        key: e[0].toUpperCase(),
                        shortKey: !0,
                        handler: function (t, n) {
                            this.quill.format(e, !n.format[e],
                                h.default.sources.USER);
                        },
                    };
                }

                function T (e) {
                    if ('string' == typeof e || 'number' == typeof e) return T(
                        { key: e });
                    if ('object' === (void 0 === e ? 'undefined' : i(e)) &&
                    (e = (0, o.default)(e, !1)), 'string' ==
                    typeof e.key) if (null !=
                        b.keys[e.key.toUpperCase()]) e.key = b.keys[e.key.toUpperCase()]; else {
                        if (1 !== e.key.length) return null;
                        e.key = e.key.toUpperCase().charCodeAt(0);
                    }
                    return e.shortKey &&
                    (e[y] = e.shortKey, delete e.shortKey), e;
                }

                b.keys = {
                    BACKSPACE: 8,
                    TAB: 9,
                    ENTER: 13,
                    ESCAPE: 27,
                    LEFT: 37,
                    UP: 38,
                    RIGHT: 39,
                    DOWN: 40,
                    DELETE: 46,
                }, b.DEFAULTS = {
                    bindings: {
                        bold: S('bold'),
                        italic: S('italic'),
                        underline: S('underline'),
                        indent: {
                            key: b.keys.TAB,
                            format: ['blockquote', 'indent', 'list'],
                            handler: function (e, t) {
                                if (t.collapsed && 0 !== t.offset) return !0;
                                this.quill.format('indent', '+1',
                                    h.default.sources.USER);
                            },
                        },
                        outdent: {
                            key: b.keys.TAB,
                            shiftKey: !0,
                            format: ['blockquote', 'indent', 'list'],
                            handler: function (e, t) {
                                if (t.collapsed && 0 !== t.offset) return !0;
                                this.quill.format('indent', '-1',
                                    h.default.sources.USER);
                            },
                        },
                        'outdent backspace': {
                            key: b.keys.BACKSPACE,
                            collapsed: !0,
                            shiftKey: null,
                            metaKey: null,
                            ctrlKey: null,
                            altKey: null,
                            format: ['indent', 'list'],
                            offset: 0,
                            handler: function (e, t) {
                                null != t.format.indent
                                    ? this.quill.format('indent', '-1',
                                    h.default.sources.USER)
                                    : null != t.format.list &&
                                    this.quill.format('list', !1,
                                        h.default.sources.USER);
                            },
                        },
                        'indent code-block': L(!0),
                        'outdent code-block': L(!1),
                        'remove tab': {
                            key: b.keys.TAB,
                            shiftKey: !0,
                            collapsed: !0,
                            prefix: /\t$/,
                            handler: function (e) {
                                this.quill.deleteText(e.index - 1, 1,
                                    h.default.sources.USER);
                            },
                        },
                        tab: {
                            key: b.keys.TAB,
                            handler: function (e) {
                                this.quill.history.cutoff();
                                var t = (new c.default).retain(e.index).
                                    delete(e.length).
                                    insert('\t');
                                this.quill.updateContents(t,
                                    h.default.sources.USER), this.quill.history.cutoff(), this.quill.setSelection(
                                    e.index + 1, h.default.sources.SILENT);
                            },
                        },
                        'list empty enter': {
                            key: b.keys.ENTER,
                            collapsed: !0,
                            format: ['list'],
                            empty: !0,
                            handler: function (e, t) {
                                this.quill.format('list', !1,
                                    h.default.sources.USER), t.format.indent &&
                                this.quill.format('indent', !1,
                                    h.default.sources.USER);
                            },
                        },
                        'checklist enter': {
                            key: b.keys.ENTER,
                            collapsed: !0,
                            format: { list: 'checked' },
                            handler: function (e) {
                                var t = this.quill.getLine(e.index),
                                    n = a(t, 2), i = n[0], r = n[1],
                                    o = (0, l.default)({}, i.formats(),
                                        { list: 'checked' }),
                                    s = (new c.default).retain(e.index).
                                        insert('\n', o).
                                        retain(i.length() - r - 1).
                                        retain(1, { list: 'unchecked' });
                                this.quill.updateContents(s,
                                    h.default.sources.USER), this.quill.setSelection(
                                    e.index + 1,
                                    h.default.sources.SILENT), this.quill.scrollIntoView();
                            },
                        },
                        'header enter': {
                            key: b.keys.ENTER,
                            collapsed: !0,
                            format: ['header'],
                            suffix: /^$/,
                            handler: function (e, t) {
                                var n = this.quill.getLine(e.index),
                                    i = a(n, 2), r = i[0], o = i[1],
                                    s = (new c.default).retain(e.index).
                                        insert('\n', t.format).
                                        retain(r.length() - o - 1).
                                        retain(1, { header: null });
                                this.quill.updateContents(s,
                                    h.default.sources.USER), this.quill.setSelection(
                                    e.index + 1,
                                    h.default.sources.SILENT), this.quill.scrollIntoView();
                            },
                        },
                        'list autofill': {
                            key: ' ',
                            collapsed: !0,
                            format: { list: !1 },
                            prefix: /^\s*?(\d+\.|-|\*|\[ ?\]|\[x\])$/,
                            handler: function (e, t) {
                                var n = t.prefix.length,
                                    i = this.quill.getLine(e.index),
                                    r = a(i, 2), o = r[0], s = r[1];
                                if (s > n) return !0;
                                var l = void 0;
                                switch (t.prefix.trim()) {
                                    case'[]':
                                    case'[ ]':
                                        l = 'unchecked';
                                        break;
                                    case'[x]':
                                        l = 'checked';
                                        break;
                                    case'-':
                                    case'*':
                                        l = 'bullet';
                                        break;
                                    default:
                                        l = 'ordered';
                                }
                                this.quill.insertText(e.index, ' ',
                                    h.default.sources.USER), this.quill.history.cutoff();
                                var u = (new c.default).retain(e.index - s).
                                    delete(n + 1).
                                    retain(o.length() - 2 - s).
                                    retain(1, { list: l });
                                this.quill.updateContents(u,
                                    h.default.sources.USER), this.quill.history.cutoff(), this.quill.setSelection(
                                    e.index - n, h.default.sources.SILENT);
                            },
                        },
                        'code exit': {
                            key: b.keys.ENTER,
                            collapsed: !0,
                            format: ['code-block'],
                            prefix: /\n\n$/,
                            suffix: /^\s+$/,
                            handler: function (e) {
                                var t = this.quill.getLine(e.index),
                                    n = a(t, 2), i = n[0], r = n[1],
                                    o = (new c.default).retain(
                                        e.index + i.length() - r - 2).
                                        retain(1, { 'code-block': null }).
                                        delete(1);
                                this.quill.updateContents(o,
                                    h.default.sources.USER);
                            },
                        },
                        'embed left': x(b.keys.LEFT, !1),
                        'embed left shift': x(b.keys.LEFT, !0),
                        'embed right': x(b.keys.RIGHT, !1),
                        'embed right shift': x(b.keys.RIGHT, !0),
                    },
                }, t.default = b, t.SHORTKEY = y;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i = function (e, t) {
                    if (Array.isArray(e)) return e;
                    if (Symbol.iterator in Object(e)) return function (
                        e, t) {
                        var n = [], i = !0, a = !1, r = void 0;
                        try {
                            for (var o, s = e[Symbol.iterator](); !(i = (o = s.next()).done) &&
                            (n.push(o.value), !t || n.length !== t); i = !0) ;
                        } catch (e) {a = !0, r = e;} finally {
                            try {
                                !i && s.return && s.return();
                            } finally {if (a) throw r;}
                        }
                        return n;
                    }(e, t);
                    throw new TypeError(
                        'Invalid attempt to destructure non-iterable instance');
                }, a = function e (t, n, i) {
                    null === t && (t = Function.prototype);
                    var a = Object.getOwnPropertyDescriptor(t, n);
                    if (void 0 === a) {
                        var r = Object.getPrototypeOf(t);
                        return null === r ? void 0 : e(r, n, i);
                    }
                    if ('value' in a) return a.value;
                    var o = a.get;
                    return void 0 !== o ? o.call(i) : void 0;
                }, r = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }(), o = l(n(0)), s = l(n(7));

                function l (e) {return e && e.__esModule ? e : { default: e };}

                var c = function (e) {
                    function t (e, n) {
                        !function (e, t) {
                            if (!(e instanceof t)) throw new TypeError(
                                'Cannot call a class as a function');
                        }(this, t);
                        var i = function (
                            e, t) {
                            if (!e) throw new ReferenceError(
                                'this hasn\'t been initialised - super() hasn\'t been called');
                            return !t || 'object' != typeof t && 'function' !=
                            typeof t ? e : t;
                        }(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).call(this,
                                e));
                        return i.selection = n, i.textNode = document.createTextNode(
                            t.CONTENTS), i.domNode.appendChild(
                            i.textNode), i._length = 0, i;
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), r(t, null,
                        [{ key: 'value', value: function () {} }]), r(t, [
                        {
                            key: 'detach',
                            value: function () {
                                null != this.parent &&
                                this.parent.removeChild(this);
                            },
                        },
                        {
                            key: 'format',
                            value: function (e, n) {
                                if (0 !== this._length) return a(
                                    t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'format', this).call(this, e, n);
                                for (var i = this, r = 0; null != i &&
                                i.statics.scope !==
                                o.default.Scope.BLOCK_BLOT;) r += i.offset(
                                    i.parent), i = i.parent;
                                null != i &&
                                (this._length = t.CONTENTS.length, i.optimize(), i.formatAt(
                                    r, t.CONTENTS.length, e,
                                    n), this._length = 0);
                            },
                        },
                        {
                            key: 'index',
                            value: function (e, n) {
                                return e === this.textNode
                                    ? 0
                                    : a(t.prototype.__proto__ ||
                                        Object.getPrototypeOf(t.prototype),
                                        'index', this).call(this, e, n);
                            },
                        },
                        {
                            key: 'length',
                            value: function () {return this._length;},
                        },
                        {
                            key: 'position',
                            value: function () {
                                return [
                                    this.textNode,
                                    this.textNode.data.length];
                            },
                        },
                        {
                            key: 'remove',
                            value: function () {
                                a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'remove', this).
                                    call(this), this.parent = null;
                            },
                        },
                        {
                            key: 'restore',
                            value: function () {
                                if (!this.selection.composing && null !=
                                    this.parent) {
                                    var e = this.textNode,
                                        n = this.selection.getNativeRange(),
                                        a = void 0, r = void 0, l = void 0;
                                    if (null != n && n.start.node === e &&
                                        n.end.node === e) {
                                        var c = [
                                            e,
                                            n.start.offset,
                                            n.end.offset];
                                        a = c[0], r = c[1], l = c[2];
                                    }
                                    for (; null != this.domNode.lastChild &&
                                           this.domNode.lastChild !==
                                           this.textNode;) this.domNode.parentNode.insertBefore(
                                        this.domNode.lastChild, this.domNode);
                                    if (this.textNode.data !== t.CONTENTS) {
                                        var u = this.textNode.data.split(
                                            t.CONTENTS).join('');
                                        this.next instanceof s.default
                                            ? (a = this.next.domNode, this.next.insertAt(
                                            0,
                                            u), this.textNode.data = t.CONTENTS)
                                            : (this.textNode.data = u, this.parent.insertBefore(
                                            o.default.create(this.textNode),
                                            this), this.textNode = document.createTextNode(
                                            t.CONTENTS), this.domNode.appendChild(
                                            this.textNode));
                                    }
                                    if (this.remove(), null != r) {
                                        var d = [
                                            r,
                                            l].map((function (e) {
                                            return Math.max(0,
                                                Math.min(a.data.length, e - 1));
                                        })), h = i(d, 2);
                                        return r = h[0], l = h[1], {
                                            startNode: a,
                                            startOffset: r,
                                            endNode: a,
                                            endOffset: l,
                                        };
                                    }
                                }
                            },
                        },
                        {
                            key: 'update', value: function (e, t) {
                                var n = this;
                                if (e.some((function (e) {
                                    return 'characterData' === e.type &&
                                        e.target === n.textNode;
                                }))) {
                                    var i = this.restore();
                                    i && (t.range = i);
                                }
                            },
                        },
                        { key: 'value', value: function () {return '';} }]), t;
                }(o.default.Embed);
                c.blotName = 'cursor', c.className = 'ql-cursor', c.tagName = 'span', c.CONTENTS = '\ufeff', t.default = c;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i = o(n(0)), a = n(4), r = o(a);

                function o (e) {return e && e.__esModule ? e : { default: e };}

                function s (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function l (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                var c = function (e) {
                    function t () {
                        return s(this, t), l(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), t;
                }(i.default.Container);
                c.allowedChildren = [r.default, a.BlockEmbed, c], t.default = c;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.ColorStyle = t.ColorClass = t.ColorAttributor = void 0;
                var i, a = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }(), r = function e (t, n, i) {
                    null === t && (t = Function.prototype);
                    var a = Object.getOwnPropertyDescriptor(t, n);
                    if (void 0 === a) {
                        var r = Object.getPrototypeOf(t);
                        return null === r ? void 0 : e(r, n, i);
                    }
                    if ('value' in a) return a.value;
                    var o = a.get;
                    return void 0 !== o ? o.call(i) : void 0;
                }, o = n(0), s = (i = o) && i.__esModule ? i : { default: i };

                function l (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function c (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                var u = function (e) {
                        function t () {
                            return l(this, t), c(this,
                                (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                    this, arguments));
                        }

                        return function (e, t) {
                            if ('function' != typeof t && null !==
                                t) throw new TypeError(
                                'Super expression must either be null or a function, not ' +
                                typeof t);
                            e.prototype = Object.create(t && t.prototype, {
                                constructor: {
                                    value: e,
                                    enumerable: !1,
                                    writable: !0,
                                    configurable: !0,
                                },
                            }), t && (Object.setPrototypeOf
                                ? Object.setPrototypeOf(e, t)
                                : e.__proto__ = t);
                        }(t, e), a(t, [
                            {
                                key: 'value',
                                value: function (e) {
                                    var n = r(t.prototype.__proto__ ||
                                        Object.getPrototypeOf(t.prototype), 'value',
                                        this).call(this, e);
                                    return n.startsWith('rgb(') ? (n = n.replace(
                                        /^[^\d]+/, '').replace(/[^\d]+$/, ''), '#' +
                                    n.split(',').
                                        map((function (e) {
                                            return ('00' +
                                                parseInt(e).toString(16)).slice(-2);
                                        })).
                                        join('')) : n;
                                },
                            }]), t;
                    }(s.default.Attributor.Style),
                    d = new s.default.Attributor.Class('color', 'ql-color',
                        { scope: s.default.Scope.INLINE }),
                    h = new u('color', 'color',
                        { scope: s.default.Scope.INLINE });
                t.ColorAttributor = u, t.ColorClass = d, t.ColorStyle = h;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.sanitize = t.default = void 0;
                var i, a = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }(), r = function e (t, n, i) {
                    null === t && (t = Function.prototype);
                    var a = Object.getOwnPropertyDescriptor(t, n);
                    if (void 0 === a) {
                        var r = Object.getPrototypeOf(t);
                        return null === r ? void 0 : e(r, n, i);
                    }
                    if ('value' in a) return a.value;
                    var o = a.get;
                    return void 0 !== o ? o.call(i) : void 0;
                }, o = n(6);

                function s (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function l (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                var c = function (e) {
                    function t () {
                        return s(this, t), l(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), a(t, [
                        {
                            key: 'format',
                            value: function (e, n) {
                                if (e !== this.statics.blotName || !n) return r(
                                    t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'format', this).call(this, e, n);
                                n = this.constructor.sanitize(
                                    n), this.domNode.setAttribute('href', n);
                            },
                        }], [
                        {
                            key: 'create',
                            value: function (e) {
                                var n = r(
                                    t.__proto__ || Object.getPrototypeOf(t),
                                    'create', this).call(this, e);
                                return e = this.sanitize(e), n.setAttribute(
                                    'href', e), n.setAttribute('rel',
                                    'noopener noreferrer'), n.setAttribute(
                                    'target', '_blank'), n;
                            },
                        },
                        {
                            key: 'formats',
                            value: function (e) {
                                return e.getAttribute('href');
                            },
                        },
                        {
                            key: 'sanitize',
                            value: function (e) {
                                return u(e, this.PROTOCOL_WHITELIST)
                                    ? e
                                    : this.SANITIZED_URL;
                            },
                        }]), t;
                }(((i = o) && i.__esModule ? i : { default: i }).default);

                function u (e, t) {
                    var n = document.createElement('a');
                    n.href = e;
                    var i = n.href.slice(0, n.href.indexOf(':'));
                    return t.indexOf(i) > -1;
                }

                c.blotName = 'link', c.tagName = 'A', c.SANITIZED_URL = 'about:blank', c.PROTOCOL_WHITELIST = [
                    'http',
                    'https',
                    'mailto',
                    'tel'], t.default = c, t.sanitize = u;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i = 'function' == typeof Symbol && 'symbol' ==
                typeof Symbol.iterator
                    ? function (e) {return typeof e;}
                    : function (e) {
                        return e && 'function' == typeof Symbol &&
                        e.constructor === Symbol && e !== Symbol.prototype
                            ? 'symbol'
                            : typeof e;
                    }, a = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }(), r = s(n(23)), o = s(n(107));

                function s (e) {return e && e.__esModule ? e : { default: e };}

                var l = 0;

                function c (e, t) {
                    e.setAttribute(t, !('true' === e.getAttribute(t)));
                }

                var u = function () {
                    function e (t) {
                        var n = this;
                        !function (e, t) {
                            if (!(e instanceof t)) throw new TypeError(
                                'Cannot call a class as a function');
                        }(this,
                            e), this.select = t, this.container = document.createElement(
                            'span'), this.buildPicker(), this.select.style.display = 'none', this.select.parentNode.insertBefore(
                            this.container,
                            this.select), this.label.addEventListener(
                            'mousedown',
                            (function () {n.togglePicker();})), this.label.addEventListener(
                            'keydown', (function (e) {
                                switch (e.keyCode) {
                                    case r.default.keys.ENTER:
                                        n.togglePicker();
                                        break;
                                    case r.default.keys.ESCAPE:
                                        n.escape(), e.preventDefault();
                                }
                            })), this.select.addEventListener('change',
                            this.update.bind(this));
                    }

                    return a(e, [
                        {
                            key: 'togglePicker',
                            value: function () {
                                this.container.classList.toggle(
                                    'ql-expanded'), c(this.label,
                                    'aria-expanded'), c(this.options,
                                    'aria-hidden');
                            },
                        },
                        {
                            key: 'buildItem',
                            value: function (e) {
                                var t = this,
                                    n = document.createElement('span');
                                return n.tabIndex = '0', n.setAttribute('role',
                                    'button'), n.classList.add(
                                    'ql-picker-item'), e.hasAttribute(
                                    'value') && n.setAttribute('data-value',
                                    e.getAttribute('value')), e.textContent &&
                                n.setAttribute('data-label',
                                    e.textContent), n.addEventListener('click',
                                    (function () {
                                        t.selectItem(n, !0);
                                    })), n.addEventListener('keydown',
                                    (function (e) {
                                        switch (e.keyCode) {
                                            case r.default.keys.ENTER:
                                                t.selectItem(n,
                                                    !0), e.preventDefault();
                                                break;
                                            case r.default.keys.ESCAPE:
                                                t.escape(), e.preventDefault();
                                        }
                                    })), n;
                            },
                        },
                        {
                            key: 'buildLabel',
                            value: function () {
                                var e = document.createElement('span');
                                return e.classList.add(
                                    'ql-picker-label'), e.innerHTML = o.default, e.tabIndex = '0', e.setAttribute(
                                    'role', 'button'), e.setAttribute(
                                    'aria-expanded',
                                    'false'), this.container.appendChild(e), e;
                            },
                        },
                        {
                            key: 'buildOptions',
                            value: function () {
                                var e = this,
                                    t = document.createElement('span');
                                t.classList.add(
                                    'ql-picker-options'), t.setAttribute(
                                    'aria-hidden',
                                    'true'), t.tabIndex = '-1', t.id = 'ql-picker-options-' +
                                    l, l += 1, this.label.setAttribute(
                                    'aria-controls',
                                    t.id), this.options = t, [].slice.call(
                                    this.select.options).
                                    forEach((function (n) {
                                        var i = e.buildItem(n);
                                        t.appendChild(i), !0 === n.selected &&
                                        e.selectItem(i);
                                    })), this.container.appendChild(t);
                            },
                        },
                        {
                            key: 'buildPicker', value: function () {
                                var e = this;
                                [].slice.call(this.select.attributes).
                                    forEach((function (t) {
                                        e.container.setAttribute(t.name,
                                            t.value);
                                    })), this.container.classList.add(
                                    'ql-picker'), this.label = this.buildLabel(), this.buildOptions();
                            },
                        },
                        {
                            key: 'escape', value: function () {
                                var e = this;
                                this.close(), setTimeout(
                                    (function () {return e.label.focus();}), 1);
                            },
                        },
                        {
                            key: 'close',
                            value: function () {
                                this.container.classList.remove(
                                    'ql-expanded'), this.label.setAttribute(
                                    'aria-expanded',
                                    'false'), this.options.setAttribute(
                                    'aria-hidden', 'true');
                            },
                        },
                        {
                            key: 'selectItem',
                            value: function (e) {
                                var t = arguments.length > 1 && void 0 !==
                                    arguments[1] && arguments[1],
                                    n = this.container.querySelector(
                                        '.ql-selected');
                                if (e !== n && (null != n &&
                                n.classList.remove('ql-selected'), null != e &&
                                (e.classList.add(
                                    'ql-selected'), this.select.selectedIndex = [].indexOf.call(
                                    e.parentNode.children, e), e.hasAttribute(
                                    'data-value')
                                    ? this.label.setAttribute('data-value',
                                        e.getAttribute('data-value'))
                                    : this.label.removeAttribute(
                                        'data-value'), e.hasAttribute(
                                    'data-label')
                                    ? this.label.setAttribute('data-label',
                                        e.getAttribute('data-label'))
                                    : this.label.removeAttribute(
                                        'data-label'), t))) {
                                    if ('function' ==
                                        typeof Event) this.select.dispatchEvent(
                                        new Event(
                                            'change')); else if ('object' ===
                                        ('undefined' == typeof Event
                                            ? 'undefined'
                                            : i(Event))) {
                                        var a = document.createEvent('Event');
                                        a.initEvent('change', !0,
                                            !0), this.select.dispatchEvent(a);
                                    }
                                    this.close();
                                }
                            },
                        },
                        {
                            key: 'update', value: function () {
                                var e = void 0;
                                if (this.select.selectedIndex > -1) {
                                    var t = this.container.querySelector(
                                        '.ql-picker-options').children[this.select.selectedIndex];
                                    e = this.select.options[this.select.selectedIndex], this.selectItem(
                                        t);
                                } else this.selectItem(null);
                                var n = null != e && e !==
                                    this.select.querySelector(
                                        'option[selected]');
                                this.label.classList.toggle('ql-active', n);
                            },
                        }]), e;
                }();
                t.default = u;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i = v(n(0)), a = v(n(5)), r = n(4), o = v(r), s = v(n(16)),
                    l = v(n(25)), c = v(n(24)), u = v(n(35)), d = v(n(6)),
                    h = v(n(22)), f = v(n(7)), p = v(n(55)), m = v(n(42)),
                    g = v(n(23));

                function v (e) {return e && e.__esModule ? e : { default: e };}

                a.default.register({
                    'blots/block': o.default,
                    'blots/block/embed': r.BlockEmbed,
                    'blots/break': s.default,
                    'blots/container': l.default,
                    'blots/cursor': c.default,
                    'blots/embed': u.default,
                    'blots/inline': d.default,
                    'blots/scroll': h.default,
                    'blots/text': f.default,
                    'modules/clipboard': p.default,
                    'modules/history': m.default,
                    'modules/keyboard': g.default,
                }), i.default.register(o.default, s.default, c.default,
                    d.default, h.default, f.default), t.default = a.default;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i = n(1), a = function () {
                    function e (e) {this.domNode = e, this.domNode[i.DATA_KEY] = { blot: this };}

                    return Object.defineProperty(e.prototype, 'statics', {
                        get: function () {return this.constructor;},
                        enumerable: !0,
                        configurable: !0,
                    }), e.create = function (e) {
                        if (null == this.tagName) throw new i.ParchmentError(
                            'Blot definition missing tagName');
                        var t;
                        return Array.isArray(this.tagName)
                            ? ('string' == typeof e &&
                            (e = e.toUpperCase(), parseInt(e).toString() ===
                            e && (e = parseInt(e))), t = 'number' == typeof e
                                ? document.createElement(this.tagName[e - 1])
                                : this.tagName.indexOf(e) > -1
                                    ? document.createElement(e)
                                    : document.createElement(this.tagName[0]))
                            : t = document.createElement(
                                this.tagName), this.className &&
                        t.classList.add(this.className), t;
                    }, e.prototype.attach = function () {
                        null != this.parent &&
                        (this.scroll = this.parent.scroll);
                    }, e.prototype.clone = function () {
                        var e = this.domNode.cloneNode(!1);
                        return i.create(e);
                    }, e.prototype.detach = function () {
                        null != this.parent && this.parent.removeChild(
                            this), delete this.domNode[i.DATA_KEY];
                    }, e.prototype.deleteAt = function (e, t) {
                        this.isolate(e, t).remove();
                    }, e.prototype.formatAt = function (
                        e, t, n, a) {
                        var r = this.isolate(e, t);
                        if (null != i.query(n, i.Scope.BLOT) && a) r.wrap(n,
                            a); else if (null !=
                            i.query(n, i.Scope.ATTRIBUTE)) {
                            var o = i.create(this.statics.scope);
                            r.wrap(o), o.format(n, a);
                        }
                    }, e.prototype.insertAt = function (
                        e, t, n) {
                        var a = null == n
                            ? i.create('text', t)
                            : i.create(t, n), r = this.split(e);
                        this.parent.insertBefore(a, r);
                    }, e.prototype.insertInto = function (e, t) {
                        void 0 === t && (t = null), null != this.parent &&
                        this.parent.children.remove(this);
                        var n = null;
                        e.children.insertBefore(this, t), null != t &&
                        (n = t.domNode), this.domNode.parentNode == e.domNode &&
                        this.domNode.nextSibling == n ||
                        e.domNode.insertBefore(this.domNode,
                            n), this.parent = e, this.attach();
                    }, e.prototype.isolate = function (
                        e, t) {
                        var n = this.split(e);
                        return n.split(t), n;
                    }, e.prototype.length = function () {return 1;}, e.prototype.offset = function (e) {
                        return void 0 === e && (e = this.parent), null ==
                        this.parent || this == e
                            ? 0
                            : this.parent.children.offset(this) +
                            this.parent.offset(e);
                    }, e.prototype.optimize = function (e) {
                        null != this.domNode[i.DATA_KEY] &&
                        delete this.domNode[i.DATA_KEY].mutations;
                    }, e.prototype.remove = function () {
                        null != this.domNode.parentNode &&
                        this.domNode.parentNode.removeChild(
                            this.domNode), this.detach();
                    }, e.prototype.replace = function (e) {
                        null != e.parent &&
                        (e.parent.insertBefore(this, e.next), e.remove());
                    }, e.prototype.replaceWith = function (
                        e, t) {
                        var n = 'string' == typeof e ? i.create(e, t) : e;
                        return n.replace(this), n;
                    }, e.prototype.split = function (e, t) {
                        return 0 === e
                            ? this
                            : this.next;
                    }, e.prototype.update = function (
                        e, t) {}, e.prototype.wrap = function (
                        e, t) {
                        var n = 'string' == typeof e ? i.create(e, t) : e;
                        return null != this.parent &&
                        this.parent.insertBefore(n, this.next), n.appendChild(
                            this), n;
                    }, e.blotName = 'abstract', e;
                }();
                t.default = a;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i = n(12), a = n(32), r = n(33), o = n(1), s = function () {
                    function e (e) {this.attributes = {}, this.domNode = e, this.build();}

                    return e.prototype.attribute = function (e, t) {
                        t
                            ? e.add(this.domNode, t) &&
                            (null != e.value(this.domNode)
                                ? this.attributes[e.attrName] = e
                                : delete this.attributes[e.attrName])
                            : (e.remove(
                            this.domNode), delete this.attributes[e.attrName]);
                    }, e.prototype.build = function () {
                        var e = this;
                        this.attributes = {};
                        var t = i.default.keys(this.domNode),
                            n = a.default.keys(this.domNode),
                            s = r.default.keys(this.domNode);
                        t.concat(n).
                            concat(s).
                            forEach((function (t) {
                                var n = o.query(t, o.Scope.ATTRIBUTE);
                                n instanceof i.default &&
                                (e.attributes[n.attrName] = n);
                            }));
                    }, e.prototype.copy = function (e) {
                        var t = this;
                        Object.keys(this.attributes).
                            forEach((function (n) {
                                var i = t.attributes[n].value(t.domNode);
                                e.format(n, i);
                            }));
                    }, e.prototype.move = function (e) {
                        var t = this;
                        this.copy(e), Object.keys(this.attributes).
                            forEach((function (e) {
                                t.attributes[e].remove(t.domNode);
                            })), this.attributes = {};
                    }, e.prototype.values = function () {
                        var e = this;
                        return Object.keys(this.attributes).
                            reduce((function (t, n) {
                                return t[n] = e.attributes[n].value(
                                    e.domNode), t;
                            }), {});
                    }, e;
                }();
                t.default = s;
            },
            function (e, t, n) {
                'use strict';
                var i, a = this && this.__extends ||
                    (i = Object.setPrototypeOf || { __proto__: [] } instanceof
                        Array && function (e, t) {e.__proto__ = t;} ||
                        function (e, t) {
                            for (var n in t) t.hasOwnProperty(n) &&
                            (e[n] = t[n]);
                        }, function (e, t) {
                        function n () {this.constructor = e;}

                        i(e, t), e.prototype = null === t
                            ? Object.create(t)
                            : (n.prototype = t.prototype, new n);
                    });

                function r (e, t) {
                    return (e.getAttribute('class') || '').split(/\s+/).
                        filter(
                            (function (e) {return 0 === e.indexOf(t + '-');}));
                }

                Object.defineProperty(t, '__esModule', { value: !0 });
                var o = function (e) {
                    function t () {
                        return null !== e && e.apply(this, arguments) || this;
                    }

                    return a(t, e), t.keys = function (e) {
                        return (e.getAttribute('class') || '').split(/\s+/).
                            map((function (e) {
                                return e.split('-').
                                    slice(0, -1).
                                    join('-');
                            }));
                    }, t.prototype.add = function (e, t) {
                        return !!this.canAdd(e, t) &&
                            (this.remove(e), e.classList.add(
                                this.keyName + '-' + t), !0);
                    }, t.prototype.remove = function (e) {
                        r(e, this.keyName).
                            forEach(
                                (function (t) {e.classList.remove(t);})), 0 ===
                        e.classList.length && e.removeAttribute('class');
                    }, t.prototype.value = function (e) {
                        var t = (r(e, this.keyName)[0] || '').slice(
                            this.keyName.length + 1);
                        return this.canAdd(e, t) ? t : '';
                    }, t;
                }(n(12).default);
                t.default = o;
            },
            function (e, t, n) {
                'use strict';
                var i, a = this && this.__extends ||
                    (i = Object.setPrototypeOf || { __proto__: [] } instanceof
                        Array && function (e, t) {e.__proto__ = t;} ||
                        function (e, t) {
                            for (var n in t) t.hasOwnProperty(n) &&
                            (e[n] = t[n]);
                        }, function (e, t) {
                        function n () {this.constructor = e;}

                        i(e, t), e.prototype = null === t
                            ? Object.create(t)
                            : (n.prototype = t.prototype, new n);
                    });

                function r (e) {
                    var t = e.split('-'), n = t.slice(1).
                        map((function (e) {
                            return e[0].toUpperCase() + e.slice(1);
                        })).
                        join('');
                    return t[0] + n;
                }

                Object.defineProperty(t, '__esModule', { value: !0 });
                var o = function (e) {
                    function t () {
                        return null !== e && e.apply(this, arguments) || this;
                    }

                    return a(t, e), t.keys = function (e) {
                        return (e.getAttribute('style') || '').split(';').
                            map((function (e) {
                                return e.split(':')[0].trim();
                            }));
                    }, t.prototype.add = function (e, t) {
                        return !!this.canAdd(e, t) &&
                            (e.style[r(this.keyName)] = t, !0);
                    }, t.prototype.remove = function (e) {
                        e.style[r(this.keyName)] = '', e.getAttribute(
                            'style') || e.removeAttribute('style');
                    }, t.prototype.value = function (e) {
                        var t = e.style[r(this.keyName)];
                        return this.canAdd(e, t) ? t : '';
                    }, t;
                }(n(12).default);
                t.default = o;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }();
                var a = function () {
                    function e (t, n) {
                        !function (
                            e, t) {
                            if (!(e instanceof t)) throw new TypeError(
                                'Cannot call a class as a function');
                        }(this,
                            e), this.quill = t, this.options = n, this.modules = {};
                    }

                    return i(e, [
                        {
                            key: 'init', value: function () {
                                var e = this;
                                Object.keys(this.options.modules).
                                    forEach((function (t) {
                                        null == e.modules[t] && e.addModule(t);
                                    }));
                            },
                        },
                        {
                            key: 'addModule',
                            value: function (e) {
                                var t = this.quill.constructor.import(
                                    'modules/' + e);
                                return this.modules[e] = new t(this.quill,
                                    this.options.modules[e] ||
                                    {}), this.modules[e];
                            },
                        }]), e;
                }();
                a.DEFAULTS = { modules: {} }, a.themes = { default: a }, t.default = a;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }(), a = function e (t, n, i) {
                    null === t && (t = Function.prototype);
                    var a = Object.getOwnPropertyDescriptor(t, n);
                    if (void 0 === a) {
                        var r = Object.getPrototypeOf(t);
                        return null === r ? void 0 : e(r, n, i);
                    }
                    if ('value' in a) return a.value;
                    var o = a.get;
                    return void 0 !== o ? o.call(i) : void 0;
                }, r = s(n(0)), o = s(n(7));

                function s (e) {return e && e.__esModule ? e : { default: e };}

                var l = '\ufeff', c = function (e) {
                    function t (e) {
                        !function (e, t) {
                            if (!(e instanceof t)) throw new TypeError(
                                'Cannot call a class as a function');
                        }(this, t);
                        var n = function (
                            e, t) {
                            if (!e) throw new ReferenceError(
                                'this hasn\'t been initialised - super() hasn\'t been called');
                            return !t || 'object' != typeof t && 'function' !=
                            typeof t ? e : t;
                        }(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).call(this,
                                e));
                        return n.contentNode = document.createElement(
                            'span'), n.contentNode.setAttribute(
                            'contenteditable', !1), [].slice.call(
                            n.domNode.childNodes).
                            forEach((function (e) {
                                n.contentNode.appendChild(e);
                            })), n.leftGuard = document.createTextNode(
                            l), n.rightGuard = document.createTextNode(
                            l), n.domNode.appendChild(
                            n.leftGuard), n.domNode.appendChild(
                            n.contentNode), n.domNode.appendChild(
                            n.rightGuard), n;
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), i(t, [
                        {
                            key: 'index',
                            value: function (e, n) {
                                return e === this.leftGuard
                                    ? 0
                                    : e === this.rightGuard ? 1 : a(
                                        t.prototype.__proto__ ||
                                        Object.getPrototypeOf(t.prototype),
                                        'index', this).call(this, e, n);
                            },
                        },
                        {
                            key: 'restore',
                            value: function (e) {
                                var t = void 0, n = void 0,
                                    i = e.data.split(l).join('');
                                if (e ===
                                    this.leftGuard) if (this.prev instanceof
                                    o.default) {
                                    var a = this.prev.length();
                                    this.prev.insertAt(a, i), t = {
                                        startNode: this.prev.domNode,
                                        startOffset: a + i.length,
                                    };
                                } else n = document.createTextNode(
                                    i), this.parent.insertBefore(
                                    r.default.create(n), this), t = {
                                    startNode: n,
                                    startOffset: i.length,
                                }; else e === this.rightGuard &&
                                (this.next instanceof o.default
                                    ? (this.next.insertAt(0, i), t = {
                                        startNode: this.next.domNode,
                                        startOffset: i.length,
                                    })
                                    : (n = document.createTextNode(
                                        i), this.parent.insertBefore(
                                        r.default.create(n), this.next), t = {
                                        startNode: n,
                                        startOffset: i.length,
                                    }));
                                return e.data = l, t;
                            },
                        },
                        {
                            key: 'update', value: function (e, t) {
                                var n = this;
                                e.forEach((function (e) {
                                    if ('characterData' === e.type &&
                                        (e.target === n.leftGuard ||
                                            e.target === n.rightGuard)) {
                                        var i = n.restore(e.target);
                                        i && (t.range = i);
                                    }
                                }));
                            },
                        }]), t;
                }(r.default.Embed);
                t.default = c;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.AlignStyle = t.AlignClass = t.AlignAttribute = void 0;
                var i, a = n(0),
                    r = (i = a) && i.__esModule ? i : { default: i };
                var o = {
                        scope: r.default.Scope.BLOCK,
                        whitelist: ['right', 'center', 'justify'],
                    }, s = new r.default.Attributor.Attribute('align', 'align', o),
                    l = new r.default.Attributor.Class('align', 'ql-align', o),
                    c = new r.default.Attributor.Style('align', 'text-align',
                        o);
                t.AlignAttribute = s, t.AlignClass = l, t.AlignStyle = c;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.BackgroundStyle = t.BackgroundClass = void 0;
                var i, a = n(0),
                    r = (i = a) && i.__esModule ? i : { default: i }, o = n(26);
                var s = new r.default.Attributor.Class('background', 'ql-bg',
                    { scope: r.default.Scope.INLINE }),
                    l = new o.ColorAttributor('background', 'background-color',
                        { scope: r.default.Scope.INLINE });
                t.BackgroundClass = s, t.BackgroundStyle = l;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.DirectionStyle = t.DirectionClass = t.DirectionAttribute = void 0;
                var i, a = n(0),
                    r = (i = a) && i.__esModule ? i : { default: i };
                var o = { scope: r.default.Scope.BLOCK, whitelist: ['rtl'] },
                    s = new r.default.Attributor.Attribute('direction', 'dir',
                        o), l = new r.default.Attributor.Class('direction',
                    'ql-direction', o),
                    c = new r.default.Attributor.Style('direction', 'direction',
                        o);
                t.DirectionAttribute = s, t.DirectionClass = l, t.DirectionStyle = c;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.FontClass = t.FontStyle = void 0;
                var i, a = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }(), r = function e (t, n, i) {
                    null === t && (t = Function.prototype);
                    var a = Object.getOwnPropertyDescriptor(t, n);
                    if (void 0 === a) {
                        var r = Object.getPrototypeOf(t);
                        return null === r ? void 0 : e(r, n, i);
                    }
                    if ('value' in a) return a.value;
                    var o = a.get;
                    return void 0 !== o ? o.call(i) : void 0;
                }, o = n(0), s = (i = o) && i.__esModule ? i : { default: i };

                function l (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function c (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                var u = {
                        scope: s.default.Scope.INLINE,
                        whitelist: ['serif', 'monospace'],
                    }, d = new s.default.Attributor.Class('font', 'ql-font', u),
                    h = new (function (e) {
                        function t () {
                            return l(this, t), c(this,
                                (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                    this, arguments));
                        }

                        return function (e, t) {
                            if ('function' != typeof t && null !==
                                t) throw new TypeError(
                                'Super expression must either be null or a function, not ' +
                                typeof t);
                            e.prototype = Object.create(t && t.prototype, {
                                constructor: {
                                    value: e,
                                    enumerable: !1,
                                    writable: !0,
                                    configurable: !0,
                                },
                            }), t && (Object.setPrototypeOf
                                ? Object.setPrototypeOf(e, t)
                                : e.__proto__ = t);
                        }(t, e), a(t, [
                            {
                                key: 'value',
                                value: function (e) {
                                    return r(t.prototype.__proto__ ||
                                        Object.getPrototypeOf(t.prototype),
                                        'value', this).
                                        call(this, e).
                                        replace(/["']/g, '');
                                },
                            }]), t;
                    }(s.default.Attributor.Style))('font', 'font-family', u);
                t.FontStyle = h, t.FontClass = d;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.SizeStyle = t.SizeClass = void 0;
                var i, a = n(0),
                    r = (i = a) && i.__esModule ? i : { default: i };
                var o = new r.default.Attributor.Class('size', 'ql-size', {
                    scope: r.default.Scope.INLINE,
                    whitelist: ['small', 'large', 'huge'],
                }), s = new r.default.Attributor.Style('size', 'font-size', {
                    scope: r.default.Scope.INLINE,
                    whitelist: ['10px', '18px', '32px'],
                });
                t.SizeClass = o, t.SizeStyle = s;
            },
            function (e, t, n) {
                'use strict';
                e.exports = {
                    align: {
                        '': n(76),
                        center: n(77),
                        right: n(78),
                        justify: n(79),
                    },
                    background: n(80),
                    blockquote: n(81),
                    bold: n(82),
                    clean: n(83),
                    code: n(58),
                    'code-block': n(58),
                    color: n(84),
                    direction: { '': n(85), rtl: n(86) },
                    float: {
                        center: n(87),
                        full: n(88),
                        left: n(89),
                        right: n(90),
                    },
                    formula: n(91),
                    header: { 1: n(92), 2: n(93) },
                    italic: n(94),
                    image: n(95),
                    indent: { '+1': n(96), '-1': n(97) },
                    link: n(98),
                    list: { ordered: n(99), bullet: n(100), check: n(101) },
                    script: { sub: n(102), super: n(103) },
                    strike: n(104),
                    underline: n(105),
                    video: n(106),
                };
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.getLastChangeIndex = t.default = void 0;
                var i = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }(), a = o(n(0)), r = o(n(5));

                function o (e) {return e && e.__esModule ? e : { default: e };}

                var s = function (e) {
                    function t (e, n) {
                        !function (e, t) {
                            if (!(e instanceof t)) throw new TypeError(
                                'Cannot call a class as a function');
                        }(this, t);
                        var i = function (
                            e, t) {
                            if (!e) throw new ReferenceError(
                                'this hasn\'t been initialised - super() hasn\'t been called');
                            return !t || 'object' != typeof t && 'function' !=
                            typeof t ? e : t;
                        }(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).call(this,
                                e, n));
                        return i.lastRecorded = 0, i.ignoreChange = !1, i.clear(), i.quill.on(
                            r.default.events.EDITOR_CHANGE,
                            (function (e, t, n, a) {
                                e !== r.default.events.TEXT_CHANGE ||
                                i.ignoreChange || (i.options.userOnly && a !==
                                r.default.sources.USER
                                    ? i.transform(t)
                                    : i.record(t, n));
                            })), i.quill.keyboard.addBinding(
                            { key: 'Z', shortKey: !0 },
                            i.undo.bind(i)), i.quill.keyboard.addBinding(
                            { key: 'Z', shortKey: !0, shiftKey: !0 },
                            i.redo.bind(i)), /Win/i.test(navigator.platform) &&
                        i.quill.keyboard.addBinding({ key: 'Y', shortKey: !0 },
                            i.redo.bind(i)), i;
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), i(t, [
                        {
                            key: 'change',
                            value: function (e, t) {
                                if (0 !== this.stack[e].length) {
                                    var n = this.stack[e].pop();
                                    this.stack[t].push(
                                        n), this.lastRecorded = 0, this.ignoreChange = !0, this.quill.updateContents(
                                        n[e],
                                        r.default.sources.USER), this.ignoreChange = !1;
                                    var i = l(n[e]);
                                    this.quill.setSelection(i);
                                }
                            },
                        },
                        {
                            key: 'clear',
                            value: function () {
                                this.stack = {
                                    undo: [],
                                    redo: [],
                                };
                            },
                        },
                        {
                            key: 'cutoff',
                            value: function () {this.lastRecorded = 0;},
                        },
                        {
                            key: 'record',
                            value: function (e, t) {
                                if (0 !== e.ops.length) {
                                    this.stack.redo = [];
                                    var n = this.quill.getContents().diff(t),
                                        i = Date.now();
                                    if (this.lastRecorded + this.options.delay >
                                        i && this.stack.undo.length > 0) {
                                        var a = this.stack.undo.pop();
                                        n = n.compose(
                                            a.undo), e = a.redo.compose(e);
                                    } else this.lastRecorded = i;
                                    this.stack.undo.push({
                                        redo: e,
                                        undo: n,
                                    }), this.stack.undo.length >
                                    this.options.maxStack &&
                                    this.stack.undo.shift();
                                }
                            },
                        },
                        {
                            key: 'redo',
                            value: function () {this.change('redo', 'undo');},
                        },
                        {
                            key: 'transform',
                            value: function (e) {
                                this.stack.undo.forEach((function (t) {
                                    t.undo = e.transform(t.undo,
                                        !0), t.redo = e.transform(t.redo, !0);
                                })), this.stack.redo.forEach((function (t) {
                                    t.undo = e.transform(t.undo,
                                        !0), t.redo = e.transform(t.redo, !0);
                                }));
                            },
                        },
                        {
                            key: 'undo',
                            value: function () {this.change('undo', 'redo');},
                        }]), t;
                }(o(n(9)).default);

                function l (e) {
                    var t = e.reduce(
                        (function (e, t) {return e += t.delete || 0;}), 0),
                        n = e.length() - t;
                    return function (e) {
                        var t = e.ops[e.ops.length - 1];
                        return null != t &&
                            (null != t.insert ? 'string' == typeof t.insert &&
                                t.insert.endsWith('\n') : null !=
                                t.attributes && Object.keys(t.attributes).
                                    some((function (e) {
                                        return null != a.default.query(e,
                                            a.default.Scope.BLOCK);
                                    })));
                    }(e) && (n -= 1), n;
                }

                s.DEFAULTS = {
                    delay: 1e3,
                    maxStack: 100,
                    userOnly: !1,
                }, t.default = s, t.getLastChangeIndex = l;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.default = t.BaseTooltip = void 0;
                var i = function () {
                        function e (e, t) {
                            for (var n = 0; n < t.length; n++) {
                                var i = t[n];
                                i.enumerable = i.enumerable ||
                                    !1, i.configurable = !0, 'value' in i &&
                                (i.writable = !0), Object.defineProperty(e, i.key,
                                    i);
                            }
                        }

                        return function (t, n, i) {
                            return n && e(t.prototype, n), i && e(t, i), t;
                        };
                    }(), a = function e (t, n, i) {
                        null === t && (t = Function.prototype);
                        var a = Object.getOwnPropertyDescriptor(t, n);
                        if (void 0 === a) {
                            var r = Object.getPrototypeOf(t);
                            return null === r ? void 0 : e(r, n, i);
                        }
                        if ('value' in a) return a.value;
                        var o = a.get;
                        return void 0 !== o ? o.call(i) : void 0;
                    }, r = p(n(3)), o = p(n(2)), s = p(n(8)), l = p(n(23)),
                    c = p(n(34)), u = p(n(59)), d = p(n(60)), h = p(n(28)),
                    f = p(n(61));

                function p (e) {return e && e.__esModule ? e : { default: e };}

                function m (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function g (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                function v (e, t) {
                    if ('function' != typeof t && null !==
                        t) throw new TypeError(
                        'Super expression must either be null or a function, not ' +
                        typeof t);
                    e.prototype = Object.create(t && t.prototype, {
                        constructor: {
                            value: e,
                            enumerable: !1,
                            writable: !0,
                            configurable: !0,
                        },
                    }), t && (Object.setPrototypeOf
                        ? Object.setPrototypeOf(e, t)
                        : e.__proto__ = t);
                }

                var y = [!1, 'center', 'right', 'justify'], b = [
                        '#000000',
                        '#e60000',
                        '#ff9900',
                        '#ffff00',
                        '#008a00',
                        '#0066cc',
                        '#9933ff',
                        '#ffffff',
                        '#facccc',
                        '#ffebcc',
                        '#ffffcc',
                        '#cce8cc',
                        '#cce0f5',
                        '#ebd6ff',
                        '#bbbbbb',
                        '#f06666',
                        '#ffc266',
                        '#ffff66',
                        '#66b966',
                        '#66a3e0',
                        '#c285ff',
                        '#888888',
                        '#a10000',
                        '#b26b00',
                        '#b2b200',
                        '#006100',
                        '#0047b2',
                        '#6b24b2',
                        '#444444',
                        '#5c0000',
                        '#663d00',
                        '#666600',
                        '#003700',
                        '#002966',
                        '#3d1466'], x = [!1, 'serif', 'monospace'],
                    _ = ['1', '2', '3', !1], w = ['small', !1, 'large', 'huge'],
                    k = function (e) {
                        function t (e, n) {
                            m(this, t);
                            var i = g(this,
                                (t.__proto__ || Object.getPrototypeOf(t)).call(
                                    this, e, n));
                            return e.emitter.listenDOM('click', document.body,
                                (function t (n) {
                                    if (!document.body.contains(
                                        e.root)) return document.body.removeEventListener(
                                        'click', t);
                                    null == i.tooltip ||
                                    i.tooltip.root.contains(n.target) ||
                                    document.activeElement ===
                                    i.tooltip.textbox || i.quill.hasFocus() ||
                                    i.tooltip.hide(), null != i.pickers &&
                                    i.pickers.forEach((function (e) {
                                        e.container.contains(n.target) ||
                                        e.close();
                                    }));
                                })), i;
                        }

                        return v(t, e), i(t, [
                            {
                                key: 'addModule',
                                value: function (e) {
                                    var n = a(t.prototype.__proto__ ||
                                        Object.getPrototypeOf(t.prototype),
                                        'addModule', this).call(this, e);
                                    return 'toolbar' === e &&
                                    this.extendToolbar(n), n;
                                },
                            },
                            {
                                key: 'buildButtons',
                                value: function (e, t) {
                                    e.forEach((function (e) {
                                        (e.getAttribute('class') || '').split(
                                            /\s+/).
                                            forEach((function (n) {
                                                if (n.startsWith('ql-') &&
                                                    (n = n.slice(
                                                        'ql-'.length), null !=
                                                    t[n])) if ('direction' ===
                                                    n) e.innerHTML = t[n][''] +
                                                    t[n].rtl; else if ('string' ==
                                                    typeof t[n]) e.innerHTML = t[n]; else {
                                                    var i = e.value || '';
                                                    null != i && t[n][i] &&
                                                    (e.innerHTML = t[n][i]);
                                                }
                                            }));
                                    }));
                                },
                            },
                            {
                                key: 'buildPickers',
                                value: function (e, t) {
                                    var n = this;
                                    this.pickers = e.map((function (e) {
                                        if (e.classList.contains(
                                            'ql-align')) return null ==
                                        e.querySelector('option') &&
                                        L(e, y), new d.default(e, t.align);
                                        if (e.classList.contains(
                                            'ql-background') ||
                                            e.classList.contains('ql-color')) {
                                            var n = e.classList.contains(
                                                'ql-background')
                                                ? 'background'
                                                : 'color';
                                            return null ==
                                            e.querySelector('option') && L(e, b,
                                                'background' === n
                                                    ? '#ffffff'
                                                    : '#000000'), new u.default(
                                                e, t[n]);
                                        }
                                        return null ==
                                        e.querySelector('option') &&
                                        (e.classList.contains('ql-font') ? L(e,
                                            x) : e.classList.contains(
                                            'ql-header')
                                            ? L(e, _)
                                            : e.classList.contains('ql-size') &&
                                            L(e, w)), new h.default(e);
                                    }));
                                    this.quill.on(
                                        s.default.events.EDITOR_CHANGE,
                                        (function () {
                                            n.pickers.forEach(
                                                (function (e) {e.update();}));
                                        }));
                                },
                            }]), t;
                    }(c.default);
                k.DEFAULTS = (0, r.default)(!0, {}, c.default.DEFAULTS, {
                    modules: {
                        toolbar: {
                            handlers: {
                                formula: function () {
                                    this.quill.theme.tooltip.edit('formula');
                                },
                                image: function () {
                                    var e = this,
                                        t = this.container.querySelector(
                                            'input.ql-image[type=file]');
                                    null == t && ((t = document.createElement(
                                        'input')).setAttribute('type',
                                        'file'), t.setAttribute('accept',
                                        'image/png, image/gif, image/jpeg, image/bmp, image/x-icon'), t.classList.add(
                                        'ql-image'), t.addEventListener(
                                        'change', (function () {
                                            if (null != t.files && null !=
                                                t.files[0]) {
                                                var n = new FileReader;
                                                n.onload = function (n) {
                                                    var i = e.quill.getSelection(
                                                        !0);
                                                    e.quill.updateContents(
                                                        (new o.default).retain(
                                                            i.index).
                                                            delete(i.length).
                                                            insert(
                                                                { image: n.target.result }),
                                                        s.default.sources.USER), e.quill.setSelection(
                                                        i.index + 1,
                                                        s.default.sources.SILENT), t.value = '';
                                                }, n.readAsDataURL(t.files[0]);
                                            }
                                        })), this.container.appendChild(
                                        t)), t.click();
                                },
                                video: function () {
                                    this.quill.theme.tooltip.edit('video');
                                },
                            },
                        },
                    },
                });
                var M = function (e) {
                    function t (e, n) {
                        m(this, t);
                        var i = g(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).call(this,
                                e, n));
                        return i.textbox = i.root.querySelector(
                            'input[type="text"]'), i.listen(), i;
                    }

                    return v(t, e), i(t, [
                        {
                            key: 'listen', value: function () {
                                var e = this;
                                this.textbox.addEventListener('keydown',
                                    (function (t) {
                                        l.default.match(t, 'enter')
                                            ? (e.save(), t.preventDefault())
                                            : l.default.match(t, 'escape') &&
                                            (e.cancel(), t.preventDefault());
                                    }));
                            },
                        },
                        { key: 'cancel', value: function () {this.hide();} },
                        {
                            key: 'edit',
                            value: function () {
                                var e = arguments.length > 0 && void 0 !==
                                    arguments[0] ? arguments[0] : 'link',
                                    t = arguments.length > 1 && void 0 !==
                                    arguments[1] ? arguments[1] : null;
                                this.root.classList.remove(
                                    'ql-hidden'), this.root.classList.add(
                                    'ql-editing'), null != t
                                    ? this.textbox.value = t
                                    : e !==
                                    this.root.getAttribute('data-mode') &&
                                    (this.textbox.value = ''), this.position(
                                    this.quill.getBounds(
                                        this.quill.selection.savedRange)), this.textbox.select(), this.textbox.setAttribute(
                                    'placeholder',
                                    this.textbox.getAttribute('data-' + e) ||
                                    ''), this.root.setAttribute('data-mode', e);
                            },
                        },
                        {
                            key: 'restoreFocus',
                            value: function () {
                                var e = this.quill.scrollingContainer.scrollTop;
                                this.quill.focus(), this.quill.scrollingContainer.scrollTop = e;
                            },
                        },
                        {
                            key: 'save', value: function () {
                                var e = this.textbox.value;
                                switch (this.root.getAttribute('data-mode')) {
                                    case'link':
                                        var t = this.quill.root.scrollTop;
                                        this.linkRange
                                            ? (this.quill.formatText(
                                            this.linkRange, 'link', e,
                                            s.default.sources.USER), delete this.linkRange)
                                            : (this.restoreFocus(), this.quill.format(
                                            'link', e,
                                            s.default.sources.USER)), this.quill.root.scrollTop = t;
                                        break;
                                    case'video':
                                        e = function (e) {
                                            var t = e.match(
                                                /^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtube\.com\/watch.*v=([a-zA-Z0-9_-]+)/) ||
                                                e.match(
                                                    /^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtu\.be\/([a-zA-Z0-9_-]+)/);
                                            if (t) return (t[1] || 'https') +
                                                '://www.youtube.com/embed/' +
                                                t[2] + '?showinfo=0';
                                            if (t = e.match(
                                                /^(?:(https?):\/\/)?(?:www\.)?vimeo\.com\/(\d+)/)) return (t[1] ||
                                                'https') +
                                                '://player.vimeo.com/video/' +
                                                t[2] + '/';
                                            return e;
                                        }(e);
                                    case'formula':
                                        if (!e) break;
                                        var n = this.quill.getSelection(!0);
                                        if (null != n) {
                                            var i = n.index + n.length;
                                            this.quill.insertEmbed(i,
                                                this.root.getAttribute(
                                                    'data-mode'), e,
                                                s.default.sources.USER), 'formula' ===
                                            this.root.getAttribute(
                                                'data-mode') &&
                                            this.quill.insertText(i + 1, ' ',
                                                s.default.sources.USER), this.quill.setSelection(
                                                i + 2, s.default.sources.USER);
                                        }
                                }
                                this.textbox.value = '', this.hide();
                            },
                        }]), t;
                }(f.default);

                function L (e, t) {
                    var n = arguments.length > 2 && void 0 !== arguments[2] &&
                        arguments[2];
                    t.forEach((function (t) {
                        var i = document.createElement('option');
                        t === n
                            ? i.setAttribute('selected', 'selected')
                            : i.setAttribute('value', t), e.appendChild(i);
                    }));
                }

                t.BaseTooltip = M, t.default = k;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i = function () {
                    function e () {this.head = this.tail = null, this.length = 0;}

                    return e.prototype.append = function () {
                        for (var e = [], t = 0; t <
                        arguments.length; t++) e[t] = arguments[t];
                        this.insertBefore(e[0], null), e.length > 1 &&
                        this.append.apply(this, e.slice(1));
                    }, e.prototype.contains = function (e) {
                        for (var t, n = this.iterator(); t = n();) if (t ===
                            e) return !0;
                        return !1;
                    }, e.prototype.insertBefore = function (e, t) {
                        e && (e.next = t, null != t ? (e.prev = t.prev, null !=
                        t.prev && (t.prev.next = e), t.prev = e, t ===
                        this.head && (this.head = e)) : null != this.tail
                            ? (this.tail.next = e, e.prev = this.tail, this.tail = e)
                            : (e.prev = null, this.head = this.tail = e), this.length += 1);
                    }, e.prototype.offset = function (e) {
                        for (var t = 0, n = this.head; null != n;) {
                            if (n === e) return t;
                            t += n.length(), n = n.next;
                        }
                        return -1;
                    }, e.prototype.remove = function (e) {
                        this.contains(e) &&
                        (null != e.prev && (e.prev.next = e.next), null !=
                        e.next && (e.next.prev = e.prev), e === this.head &&
                        (this.head = e.next), e === this.tail &&
                        (this.tail = e.prev), this.length -= 1);
                    }, e.prototype.iterator = function (e) {
                        return void 0 === e && (e = this.head), function () {
                            var t = e;
                            return null != e && (e = e.next), t;
                        };
                    }, e.prototype.find = function (e, t) {
                        void 0 === t && (t = !1);
                        for (var n, i = this.iterator(); n = i();) {
                            var a = n.length();
                            if (e < a || t && e === a &&
                                (null == n.next || 0 !==
                                    n.next.length())) return [n, e];
                            e -= a;
                        }
                        return [null, 0];
                    }, e.prototype.forEach = function (e) {
                        for (var t, n = this.iterator(); t = n();) e(t);
                    }, e.prototype.forEachAt = function (e, t, n) {
                        if (!(t <= 0)) for (var i, a = this.find(
                            e), r = a[0], o = e - a[1], s = this.iterator(
                            r); (i = s()) && o < e + t;) {
                            var l = i.length();
                            e > o ? n(i, e - o, Math.min(t, o + l - e)) : n(i,
                                0, Math.min(l, e + t - o)), o += l;
                        }
                    }, e.prototype.map = function (e) {
                        return this.reduce(
                            (function (t, n) {return t.push(e(n)), t;}), []);
                    }, e.prototype.reduce = function (
                        e, t) {
                        for (var n, i = this.iterator(); n = i();) t = e(t, n);
                        return t;
                    }, e;
                }();
                t.default = i;
            },
            function (e, t, n) {
                'use strict';
                var i, a = this && this.__extends ||
                    (i = Object.setPrototypeOf || { __proto__: [] } instanceof
                        Array && function (e, t) {e.__proto__ = t;} ||
                        function (e, t) {
                            for (var n in t) t.hasOwnProperty(n) &&
                            (e[n] = t[n]);
                        }, function (e, t) {
                        function n () {this.constructor = e;}

                        i(e, t), e.prototype = null === t
                            ? Object.create(t)
                            : (n.prototype = t.prototype, new n);
                    });
                Object.defineProperty(t, '__esModule', { value: !0 });
                var r = n(17), o = n(1), s = {
                    attributes: !0,
                    characterData: !0,
                    characterDataOldValue: !0,
                    childList: !0,
                    subtree: !0,
                }, l = function (e) {
                    function t (t) {
                        var n = e.call(this, t) || this;
                        return n.scroll = n, n.observer = new MutationObserver(
                            (function (e) {n.update(e);})), n.observer.observe(
                            n.domNode, s), n.attach(), n;
                    }

                    return a(t, e), t.prototype.detach = function () {
                        e.prototype.detach.call(
                            this), this.observer.disconnect();
                    }, t.prototype.deleteAt = function (
                        t, n) {
                        this.update(), 0 === t && n === this.length()
                            ? this.children.forEach(
                                (function (e) {e.remove();}))
                            : e.prototype.deleteAt.call(this, t, n);
                    }, t.prototype.formatAt = function (
                        t, n, i, a) {
                        this.update(), e.prototype.formatAt.call(this, t, n, i,
                            a);
                    }, t.prototype.insertAt = function (
                        t, n, i) {
                        this.update(), e.prototype.insertAt.call(this, t, n, i);
                    }, t.prototype.optimize = function (t, n) {
                        var i = this;
                        void 0 === t && (t = []), void 0 === n &&
                        (n = {}), e.prototype.optimize.call(this, n);
                        for (var a = [].slice.call(
                            this.observer.takeRecords()); a.length > 0;) t.push(
                            a.pop());
                        for (var s = function (e, t) {
                            void 0 === t && (t = !0), null != e && e !== i &&
                            null != e.domNode.parentNode &&
                            (null == e.domNode[o.DATA_KEY].mutations &&
                            (e.domNode[o.DATA_KEY].mutations = []), t &&
                            s(e.parent));
                        }, l = function (e) {
                            null != e.domNode[o.DATA_KEY] && null !=
                            e.domNode[o.DATA_KEY].mutations &&
                            (e instanceof r.default &&
                            e.children.forEach(l), e.optimize(n));
                        }, c = t, u = 0; c.length > 0; u += 1) {
                            if (u >= 100) throw new Error(
                                '[Parchment] Maximum optimize iterations reached');
                            for (c.forEach((function (e) {
                                var t = o.find(e.target, !0);
                                null != t && (t.domNode === e.target &&
                                ('childList' === e.type ? (s(
                                    o.find(e.previousSibling,
                                        !1)), [].forEach.call(e.addedNodes,
                                    (function (e) {
                                        var t = o.find(e, !1);
                                        s(t, !1), t instanceof r.default &&
                                        t.children.forEach(
                                            (function (e) {s(e, !1);}));
                                    }))) : 'attributes' === e.type &&
                                    s(t.prev)), s(t));
                            })), this.children.forEach(
                                l), a = (c = [].slice.call(
                                this.observer.takeRecords())).slice(); a.length >
                                 0;) t.push(a.pop());
                        }
                    }, t.prototype.update = function (t, n) {
                        var i = this;
                        void 0 === n && (n = {}), (t = t ||
                            this.observer.takeRecords()).map((function (e) {
                            var t = o.find(e.target, !0);
                            return null == t ? null : null ==
                            t.domNode[o.DATA_KEY].mutations
                                ? (t.domNode[o.DATA_KEY].mutations = [e], t)
                                : (t.domNode[o.DATA_KEY].mutations.push(
                                    e), null);
                        })).
                            forEach((function (e) {
                                null != e && e !== i && null !=
                                e.domNode[o.DATA_KEY] &&
                                e.update(e.domNode[o.DATA_KEY].mutations || [],
                                    n);
                            })), null != this.domNode[o.DATA_KEY].mutations &&
                        e.prototype.update.call(this,
                            this.domNode[o.DATA_KEY].mutations,
                            n), this.optimize(t, n);
                    }, t.blotName = 'scroll', t.defaultChild = 'block', t.scope = o.Scope.BLOCK_BLOT, t.tagName = 'DIV', t;
                }(r.default);
                t.default = l;
            },
            function (e, t, n) {
                'use strict';
                var i, a = this && this.__extends ||
                    (i = Object.setPrototypeOf || { __proto__: [] } instanceof
                        Array && function (e, t) {e.__proto__ = t;} ||
                        function (e, t) {
                            for (var n in t) t.hasOwnProperty(n) &&
                            (e[n] = t[n]);
                        }, function (e, t) {
                        function n () {this.constructor = e;}

                        i(e, t), e.prototype = null === t
                            ? Object.create(t)
                            : (n.prototype = t.prototype, new n);
                    });
                Object.defineProperty(t, '__esModule', { value: !0 });
                var r = n(18), o = n(1);
                var s = function (e) {
                    function t () {
                        return null !== e && e.apply(this, arguments) || this;
                    }

                    return a(t, e), t.formats = function (n) {
                        if (n.tagName !== t.tagName) return e.formats.call(this,
                            n);
                    }, t.prototype.format = function (n, i) {
                        var a = this;
                        n !== this.statics.blotName || i
                            ? e.prototype.format.call(this, n, i)
                            : (this.children.forEach((function (e) {
                                e instanceof r.default ||
                                (e = e.wrap(t.blotName, !0)), a.attributes.copy(e);
                            })), this.unwrap());
                    }, t.prototype.formatAt = function (t, n, i, a) {
                        null != this.formats()[i] ||
                        o.query(i, o.Scope.ATTRIBUTE)
                            ? this.isolate(t, n).format(i, a)
                            : e.prototype.formatAt.call(this, t, n, i, a);
                    }, t.prototype.optimize = function (n) {
                        e.prototype.optimize.call(this, n);
                        var i = this.formats();
                        if (0 === Object.keys(i).length) return this.unwrap();
                        var a = this.next;
                        a instanceof t && a.prev === this && function (e, t) {
                            if (Object.keys(e).length !==
                                Object.keys(t).length) return !1;
                            for (var n in e) if (e[n] !== t[n]) return !1;
                            return !0;
                        }(i, a.formats()) && (a.moveChildren(this), a.remove());
                    }, t.blotName = 'inline', t.scope = o.Scope.INLINE_BLOT, t.tagName = 'SPAN', t;
                }(r.default);
                t.default = s;
            },
            function (e, t, n) {
                'use strict';
                var i, a = this && this.__extends ||
                    (i = Object.setPrototypeOf || { __proto__: [] } instanceof
                        Array && function (e, t) {e.__proto__ = t;} ||
                        function (e, t) {
                            for (var n in t) t.hasOwnProperty(n) &&
                            (e[n] = t[n]);
                        }, function (e, t) {
                        function n () {this.constructor = e;}

                        i(e, t), e.prototype = null === t
                            ? Object.create(t)
                            : (n.prototype = t.prototype, new n);
                    });
                Object.defineProperty(t, '__esModule', { value: !0 });
                var r = n(18), o = n(1), s = function (e) {
                    function t () {
                        return null !== e && e.apply(this, arguments) || this;
                    }

                    return a(t, e), t.formats = function (n) {
                        var i = o.query(t.blotName).tagName;
                        if (n.tagName !== i) return e.formats.call(this, n);
                    }, t.prototype.format = function (n, i) {
                        null != o.query(n, o.Scope.BLOCK) &&
                        (n !== this.statics.blotName || i
                            ? e.prototype.format.call(this, n, i)
                            : this.replaceWith(t.blotName));
                    }, t.prototype.formatAt = function (t, n, i, a) {
                        null != o.query(i, o.Scope.BLOCK)
                            ? this.format(i, a)
                            : e.prototype.formatAt.call(this, t, n, i, a);
                    }, t.prototype.insertAt = function (t, n, i) {
                        if (null == i || null != o.query(n,
                            o.Scope.INLINE)) e.prototype.insertAt.call(this, t,
                            n, i); else {
                            var a = this.split(t), r = o.create(n, i);
                            a.parent.insertBefore(r, a);
                        }
                    }, t.prototype.update = function (
                        t, n) {
                        navigator.userAgent.match(/Trident/)
                            ? this.build()
                            : e.prototype.update.call(this, t, n);
                    }, t.blotName = 'block', t.scope = o.Scope.BLOCK_BLOT, t.tagName = 'P', t;
                }(r.default);
                t.default = s;
            },
            function (e, t, n) {
                'use strict';
                var i, a = this && this.__extends ||
                    (i = Object.setPrototypeOf || { __proto__: [] } instanceof
                        Array && function (e, t) {e.__proto__ = t;} ||
                        function (e, t) {
                            for (var n in t) t.hasOwnProperty(n) &&
                            (e[n] = t[n]);
                        }, function (e, t) {
                        function n () {this.constructor = e;}

                        i(e, t), e.prototype = null === t
                            ? Object.create(t)
                            : (n.prototype = t.prototype, new n);
                    });
                Object.defineProperty(t, '__esModule', { value: !0 });
                var r = function (e) {
                    function t () {
                        return null !== e && e.apply(this, arguments) || this;
                    }

                    return a(t,
                        e), t.formats = function (e) {}, t.prototype.format = function (
                        t, n) {
                        e.prototype.formatAt.call(this, 0, this.length(), t, n);
                    }, t.prototype.formatAt = function (t, n, i, a) {
                        0 === t && n === this.length()
                            ? this.format(i, a)
                            : e.prototype.formatAt.call(this, t, n, i, a);
                    }, t.prototype.formats = function () {
                        return this.statics.formats(this.domNode);
                    }, t;
                }(n(19).default);
                t.default = r;
            },
            function (e, t, n) {
                'use strict';
                var i, a = this && this.__extends ||
                    (i = Object.setPrototypeOf || { __proto__: [] } instanceof
                        Array && function (e, t) {e.__proto__ = t;} ||
                        function (e, t) {
                            for (var n in t) t.hasOwnProperty(n) &&
                            (e[n] = t[n]);
                        }, function (e, t) {
                        function n () {this.constructor = e;}

                        i(e, t), e.prototype = null === t
                            ? Object.create(t)
                            : (n.prototype = t.prototype, new n);
                    });
                Object.defineProperty(t, '__esModule', { value: !0 });
                var r = n(19), o = n(1), s = function (e) {
                    function t (t) {
                        var n = e.call(this, t) || this;
                        return n.text = n.statics.value(n.domNode), n;
                    }

                    return a(t, e), t.create = function (e) {
                        return document.createTextNode(e);
                    }, t.value = function (e) {
                        var t = e.data;
                        return t.normalize && (t = t.normalize()), t;
                    }, t.prototype.deleteAt = function (
                        e, t) {
                        this.domNode.data = this.text = this.text.slice(0, e) +
                            this.text.slice(e + t);
                    }, t.prototype.index = function (
                        e, t) {
                        return this.domNode === e ? t : -1;
                    }, t.prototype.insertAt = function (t, n, i) {
                        null == i
                            ? (this.text = this.text.slice(0, t) + n +
                            this.text.slice(t), this.domNode.data = this.text)
                            : e.prototype.insertAt.call(this, t, n, i);
                    }, t.prototype.length = function () {return this.text.length;}, t.prototype.optimize = function (n) {
                        e.prototype.optimize.call(this,
                            n), this.text = this.statics.value(
                            this.domNode), 0 === this.text.length
                            ? this.remove()
                            : this.next instanceof t && this.next.prev ===
                            this && (this.insertAt(this.length(),
                                this.next.value()), this.next.remove());
                    }, t.prototype.position = function (e, t) {
                        return void 0 === t && (t = !1), [this.domNode, e];
                    }, t.prototype.split = function (e, t) {
                        if (void 0 === t && (t = !1), !t) {
                            if (0 === e) return this;
                            if (e === this.length()) return this.next;
                        }
                        var n = o.create(this.domNode.splitText(e));
                        return this.parent.insertBefore(n,
                            this.next), this.text = this.statics.value(
                            this.domNode), n;
                    }, t.prototype.update = function (e, t) {
                        var n = this;
                        e.some((function (e) {
                            return 'characterData' === e.type && e.target ===
                                n.domNode;
                        })) && (this.text = this.statics.value(this.domNode));
                    }, t.prototype.value = function () {return this.text;}, t.blotName = 'text', t.scope = o.Scope.INLINE_BLOT, t;
                }(r.default);
                t.default = s;
            },
            function (e, t, n) {
                'use strict';
                var i = document.createElement('div');
                if (i.classList.toggle('test-class', !1), i.classList.contains(
                    'test-class')) {
                    var a = DOMTokenList.prototype.toggle;
                    DOMTokenList.prototype.toggle = function (
                        e, t) {
                        return arguments.length > 1 && !this.contains(e) == !t
                            ? t
                            : a.call(this, e);
                    };
                }
                String.prototype.startsWith ||
                (String.prototype.startsWith = function (e, t) {
                    return t = t || 0, this.substr(t, e.length) === e;
                }), String.prototype.endsWith ||
                (String.prototype.endsWith = function (e, t) {
                    var n = this.toString();
                    ('number' != typeof t || !isFinite(t) || Math.floor(t) !==
                        t || t > n.length) && (t = n.length), t -= e.length;
                    var i = n.indexOf(e, t);
                    return -1 !== i && i === t;
                }), Array.prototype.find ||
                Object.defineProperty(Array.prototype, 'find', {
                    value: function (e) {
                        if (null === this) throw new TypeError(
                            'Array.prototype.find called on null or undefined');
                        if ('function' != typeof e) throw new TypeError(
                            'predicate must be a function');
                        for (var t, n = Object(this), i = n.length >>>
                            0, a = arguments[1], r = 0; r <
                             i; r++) if (t = n[r], e.call(a, t, r, n)) return t;
                    },
                }), document.addEventListener('DOMContentLoaded', (function () {
                    document.execCommand('enableObjectResizing', !1,
                        !1), document.execCommand('autoUrlDetect', !1, !1);
                }));
            },
            function (e, t) {
                var n = -1;

                function i (e, t, l) {
                    if (e == t) return e ? [[0, e]] : [];
                    (l < 0 || e.length < l) && (l = null);
                    var u = r(e, t), d = e.substring(0, u);
                    u = o(e = e.substring(u), t = t.substring(u));
                    var h = e.substring(e.length - u), f = function (e, t) {
                        var s;
                        if (!e) return [[1, t]];
                        if (!t) return [[n, e]];
                        var l = e.length > t.length ? e : t,
                            c = e.length > t.length ? t : e, u = l.indexOf(c);
                        if (-1 != u) return s = [
                            [1, l.substring(0, u)],
                            [0, c],
                            [1, l.substring(u + c.length)]], e.length >
                        t.length && (s[0][0] = s[2][0] = n), s;
                        if (1 == c.length) return [[n, e], [1, t]];
                        var d = function (e, t) {
                            var n = e.length > t.length
                                ? e
                                : t, i = e.length > t.length ? t : e;
                            if (n.length < 4 || 2 * i.length <
                                n.length) return null;

                            function a (
                                e, t, n) {
                                for (var i, a, s, l, c = e.substring(n, n +
                                    Math.floor(
                                        e.length / 4)), u = -1, d = ''; -1 !=
                                     (u = t.indexOf(c, u + 1));) {
                                    var h = r(e.substring(n), t.substring(u)),
                                        f = o(e.substring(0, n),
                                            t.substring(0, u));
                                    d.length < f + h &&
                                    (d = t.substring(u - f, u) +
                                        t.substring(u, u + h), i = e.substring(
                                        0, n - f), a = e.substring(
                                        n + h), s = t.substring(0,
                                        u - f), l = t.substring(u + h));
                                }
                                return 2 * d.length >= e.length ? [
                                    i,
                                    a,
                                    s,
                                    l,
                                    d] : null;
                            }

                            var s, l, c, u, d,
                                h = a(n, i, Math.ceil(n.length / 4)),
                                f = a(n, i, Math.ceil(n.length / 2));
                            if (!h && !f) return null;
                            s = f ? h && h[4].length > f[4].length ? h : f : h;
                            e.length > t.length
                                ? (l = s[0], c = s[1], u = s[2], d = s[3])
                                : (u = s[0], d = s[1], l = s[2], c = s[3]);
                            var p = s[4];
                            return [l, c, u, d, p];
                        }(e, t);
                        if (d) {
                            var h = d[0], f = d[1], p = d[2], m = d[3],
                                g = d[4], v = i(h, p), y = i(f, m);
                            return v.concat([[0, g]], y);
                        }
                        return function (
                            e, t) {
                            for (var i = e.length, r = t.length, o = Math.ceil(
                                (i + r) / 2), s = o, l = 2 * o, c = new Array(
                                l), u = new Array(l), d = 0; d <
                                 l; d++) c[d] = -1, u[d] = -1;
                            c[s + 1] = 0, u[s + 1] = 0;
                            for (var h = i - r, f = h % 2 !=
                                0, p = 0, m = 0, g = 0, v = 0, y = 0; y <
                                 o; y++) {
                                for (var b = -y + p; b <= y - m; b += 2) {
                                    for (var x = s + b, _ = (S = b == -y || b !=
                                    y && c[x - 1] < c[x + 1] ? c[x + 1] : c[x -
                                    1] + 1) - b; S < i && _ < r &&
                                         e.charAt(S) == t.charAt(_);) S++, _++;
                                    if (c[x] = S, S > i) m += 2; else if (_ >
                                        r) p += 2; else if (f) {
                                        if ((M = s + h - b) >= 0 && M < l &&
                                            -1 != u[M]) if (S >=
                                            (k = i - u[M])) return a(e, t, S,
                                            _);
                                    }
                                }
                                for (var w = -y + g; w <= y - v; w += 2) {
                                    for (var k, M = s + w, L = (k = w == -y ||
                                    w != y && u[M - 1] < u[M + 1]
                                        ? u[M + 1]
                                        : u[M - 1] + 1) - w; k < i && L < r &&
                                         e.charAt(i - k - 1) ==
                                         t.charAt(r - L - 1);) k++, L++;
                                    if (u[M] = k, k > i) v += 2; else if (L >
                                        r) g += 2; else if (!f) {
                                        if ((x = s + h - w) >= 0 && x < l &&
                                            -1 != c[x]) {
                                            var S;
                                            _ = s + (S = c[x]) - x;
                                            if (S >= (k = i - k)) return a(e, t,
                                                S, _);
                                        }
                                    }
                                }
                            }
                            return [[n, e], [1, t]];
                        }(e, t);
                    }(e = e.substring(0, e.length - u),
                        t = t.substring(0, t.length - u));
                    return d && f.unshift([0, d]), h && f.push([0, h]), s(
                        f), null != l && (f = function (e, t) {
                        var i = function (e, t) {
                            if (0 === t) return [0, e];
                            for (var i = 0, a = 0; a < e.length; a++) {
                                var r = e[a];
                                if (r[0] === n || 0 === r[0]) {
                                    var o = i + r[1].length;
                                    if (t === o) return [a + 1, e];
                                    if (t < o) {
                                        e = e.slice();
                                        var s = t - i,
                                            l = [r[0], r[1].slice(0, s)],
                                            c = [r[0], r[1].slice(s)];
                                        return e.splice(a, 1, l, c), [a + 1, e];
                                    }
                                    i = o;
                                }
                            }
                            throw new Error('cursor_pos is out of bounds!');
                        }(e, t), a = i[1], r = i[0], o = a[r], s = a[r + 1];
                        if (null == o) return e;
                        if (0 !== o[0]) return e;
                        if (null != s && o[1] + s[1] === s[1] +
                            o[1]) return a.splice(r, 2, s, o), c(a, r, 2);
                        if (null != s && 0 === s[1].indexOf(o[1])) {
                            a.splice(r, 2, [s[0], o[1]], [0, o[1]]);
                            var l = s[1].slice(o[1].length);
                            return l.length > 0 &&
                            a.splice(r + 2, 0, [s[0], l]), c(a, r, 3);
                        }
                        return e;
                    }(f, l)), f = function (e) {
                        for (var t = !1, i = function (e) {
                            return e.charCodeAt(0) >= 56320 &&
                                e.charCodeAt(0) <= 57343;
                        }, a = function (e) {
                            return e.charCodeAt(e.length - 1) >= 55296 &&
                                e.charCodeAt(e.length - 1) <= 56319;
                        }, r = 2; r < e.length; r += 1) 0 === e[r - 2][0] &&
                        a(e[r - 2][1]) && e[r - 1][0] === n && i(e[r - 1][1]) &&
                        1 === e[r][0] && i(e[r][1]) &&
                        (t = !0, e[r - 1][1] = e[r - 2][1].slice(-1) +
                            e[r - 1][1], e[r][1] = e[r - 2][1].slice(-1) +
                            e[r][1], e[r - 2][1] = e[r - 2][1].slice(0, -1));
                        if (!t) return e;
                        var o = [];
                        for (r = 0; r < e.length; r += 1) e[r][1].length > 0 &&
                        o.push(e[r]);
                        return o;
                    }(f);
                }

                function a (e, t, n, a) {
                    var r = e.substring(0, n), o = t.substring(0, a),
                        s = e.substring(n), l = t.substring(a), c = i(r, o),
                        u = i(s, l);
                    return c.concat(u);
                }

                function r (e, t) {
                    if (!e || !t || e.charAt(0) != t.charAt(0)) return 0;
                    for (var n = 0, i = Math.min(e.length,
                        t.length), a = i, r = 0; n < a;) e.substring(r, a) ==
                    t.substring(r, a) ? r = n = a : i = a, a = Math.floor(
                        (i - n) / 2 + n);
                    return a;
                }

                function o (e, t) {
                    if (!e || !t || e.charAt(e.length - 1) !=
                        t.charAt(t.length - 1)) return 0;
                    for (var n = 0, i = Math.min(e.length,
                        t.length), a = i, r = 0; n < a;) e.substring(
                        e.length - a, e.length - r) ==
                    t.substring(t.length - a, t.length - r)
                        ? r = n = a
                        : i = a, a = Math.floor((i - n) / 2 + n);
                    return a;
                }

                function s (e) {
                    e.push([0, '']);
                    for (var t, i = 0, a = 0, l = 0, c = '', u = ''; i <
                    e.length;) switch (e[i][0]) {
                        case 1:
                            l++, u += e[i][1], i++;
                            break;
                        case n:
                            a++, c += e[i][1], i++;
                            break;
                        case 0:
                            a + l > 1 ? (0 !== a && 0 !== l &&
                            (0 !== (t = r(u, c)) &&
                            (i - a - l > 0 && 0 == e[i - a - l - 1][0] ? e[i -
                            a - l - 1][1] += u.substring(0, t) : (e.splice(0, 0,
                                [0, u.substring(0, t)]), i++), u = u.substring(
                                t), c = c.substring(t)), 0 !== (t = o(u, c)) &&
                            (e[i][1] = u.substring(u.length - t) +
                                e[i][1], u = u.substring(0,
                                u.length - t), c = c.substring(0,
                                c.length - t))), 0 === a ? e.splice(i - l,
                                a + l, [1, u]) : 0 === l ? e.splice(i - a,
                                a + l, [n, c]) : e.splice(i - a - l, a + l,
                                [n, c], [1, u]), i = i - a - l + (a ? 1 : 0) +
                                (l ? 1 : 0) + 1) : 0 !== i && 0 == e[i - 1][0]
                                ? (e[i - 1][1] += e[i][1], e.splice(i, 1))
                                : i++, l = 0, a = 0, c = '', u = '';
                    }
                    '' === e[e.length - 1][1] && e.pop();
                    var d = !1;
                    for (i = 1; i < e.length - 1;) 0 == e[i - 1][0] && 0 ==
                    e[i + 1][0] &&
                    (e[i][1].substring(e[i][1].length - e[i - 1][1].length) ==
                    e[i - 1][1] ? (e[i][1] = e[i - 1][1] + e[i][1].substring(0,
                        e[i][1].length - e[i - 1][1].length), e[i +
                    1][1] = e[i - 1][1] + e[i + 1][1], e.splice(i - 1,
                        1), d = !0) : e[i][1].substring(0,
                        e[i + 1][1].length) == e[i + 1][1] &&
                        (e[i - 1][1] += e[i +
                        1][1], e[i][1] = e[i][1].substring(e[i + 1][1].length) +
                            e[i + 1][1], e.splice(i + 1, 1), d = !0)), i++;
                    d && s(e);
                }

                var l = i;

                function c (e, t, n) {
                    for (var i = t + n - 1; i >= 0 && i >= t - 1; i--) if (i +
                        1 < e.length) {
                        var a = e[i], r = e[i + 1];
                        a[0] === r[1] && e.splice(i, 2, [a[0], a[1] + r[1]]);
                    }
                    return e;
                }

                l.INSERT = 1, l.DELETE = n, l.EQUAL = 0, e.exports = l;
            },
            function (e, t) {
                function n (e) {
                    var t = [];
                    for (var n in e) t.push(n);
                    return t;
                }

                (e.exports = 'function' == typeof Object.keys
                    ? Object.keys
                    : n).shim = n;
            },
            function (e, t) {
                var n = '[object Arguments]' == function () {
                    return Object.prototype.toString.call(arguments);
                }();

                function i (e) {
                    return '[object Arguments]' ==
                        Object.prototype.toString.call(e);
                }

                function a (e) {
                    return e && 'object' == typeof e && 'number' ==
                        typeof e.length &&
                        Object.prototype.hasOwnProperty.call(e, 'callee') &&
                        !Object.prototype.propertyIsEnumerable.call(e,
                            'callee') || !1;
                }

                (t = e.exports = n ? i : a).supported = i, t.unsupported = a;
            },
            function (e, t) {
                'use strict';
                var n = Object.prototype.hasOwnProperty, i = '~';

                function a () {}

                function r (
                    e, t, n) {
                    this.fn = e, this.context = t, this.once = n || !1;
                }

                function o () {this._events = new a, this._eventsCount = 0;}

                Object.create &&
                (a.prototype = Object.create(null), (new a).__proto__ ||
                (i = !1)), o.prototype.eventNames = function () {
                    var e, t, a = [];
                    if (0 === this._eventsCount) return a;
                    for (t in e = this._events) n.call(e, t) &&
                    a.push(i ? t.slice(1) : t);
                    return Object.getOwnPropertySymbols ? a.concat(
                        Object.getOwnPropertySymbols(e)) : a;
                }, o.prototype.listeners = function (e, t) {
                    var n = i
                        ? i + e
                        : e, a = this._events[n];
                    if (t) return !!a;
                    if (!a) return [];
                    if (a.fn) return [a.fn];
                    for (var r = 0, o = a.length, s = new Array(o); r <
                    o; r++) s[r] = a[r].fn;
                    return s;
                }, o.prototype.emit = function (e, t, n, a, r, o) {
                    var s = i
                        ? i + e
                        : e;
                    if (!this._events[s]) return !1;
                    var l, c, u = this._events[s], d = arguments.length;
                    if (u.fn) {
                        switch (u.once &&
                        this.removeListener(e, u.fn, void 0, !0), d) {
                            case 1:
                                return u.fn.call(u.context), !0;
                            case 2:
                                return u.fn.call(u.context, t), !0;
                            case 3:
                                return u.fn.call(u.context, t, n), !0;
                            case 4:
                                return u.fn.call(u.context, t, n, a), !0;
                            case 5:
                                return u.fn.call(u.context, t, n, a, r), !0;
                            case 6:
                                return u.fn.call(u.context, t, n, a, r, o), !0;
                        }
                        for (c = 1, l = new Array(d - 1); c < d; c++) l[c -
                        1] = arguments[c];
                        u.fn.apply(u.context, l);
                    } else {
                        var h, f = u.length;
                        for (c = 0; c < f; c++) switch (u[c].once &&
                        this.removeListener(e, u[c].fn, void 0, !0), d) {
                            case 1:
                                u[c].fn.call(u[c].context);
                                break;
                            case 2:
                                u[c].fn.call(u[c].context, t);
                                break;
                            case 3:
                                u[c].fn.call(u[c].context, t, n);
                                break;
                            case 4:
                                u[c].fn.call(u[c].context, t, n, a);
                                break;
                            default:
                                if (!l) for (h = 1, l = new Array(d - 1); h <
                                d; h++) l[h - 1] = arguments[h];
                                u[c].fn.apply(u[c].context, l);
                        }
                    }
                    return !0;
                }, o.prototype.on = function (e, t, n) {
                    var a = new r(t, n || this), o = i ? i + e : e;
                    return this._events[o]
                        ? this._events[o].fn
                            ? this._events[o] = [this._events[o], a]
                            : this._events[o].push(a)
                        : (this._events[o] = a, this._eventsCount++), this;
                }, o.prototype.once = function (e, t, n) {
                    var a = new r(t, n || this, !0), o = i ? i + e : e;
                    return this._events[o]
                        ? this._events[o].fn
                            ? this._events[o] = [this._events[o], a]
                            : this._events[o].push(a)
                        : (this._events[o] = a, this._eventsCount++), this;
                }, o.prototype.removeListener = function (e, t, n, r) {
                    var o = i
                        ? i + e
                        : e;
                    if (!this._events[o]) return this;
                    if (!t) return 0 == --this._eventsCount
                        ? this._events = new a
                        : delete this._events[o], this;
                    var s = this._events[o];
                    if (s.fn) s.fn !== t || r && !s.once || n && s.context !==
                    n || (0 == --this._eventsCount
                        ? this._events = new a
                        : delete this._events[o]); else {
                        for (var l = 0, c = [], u = s.length; l <
                        u; l++) (s[l].fn !== t || r && !s[l].once || n &&
                            s[l].context !== n) && c.push(s[l]);
                        c.length
                            ? this._events[o] = 1 === c.length ? c[0] : c
                            : 0 == --this._eventsCount
                            ? this._events = new a
                            : delete this._events[o];
                    }
                    return this;
                }, o.prototype.removeAllListeners = function (e) {
                    var t;
                    return e
                        ? (t = i ? i + e : e, this._events[t] &&
                        (0 == --this._eventsCount
                            ? this._events = new a
                            : delete this._events[t]))
                        : (this._events = new a, this._eventsCount = 0), this;
                }, o.prototype.off = o.prototype.removeListener, o.prototype.addListener = o.prototype.on, o.prototype.setMaxListeners = function () {return this;}, o.prefixed = i, o.EventEmitter = o, void 0 !==
                e && (e.exports = o);
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.matchText = t.matchSpacing = t.matchNewline = t.matchBlot = t.matchAttributor = t.default = void 0;
                var i = 'function' == typeof Symbol && 'symbol' ==
                    typeof Symbol.iterator
                    ? function (e) {return typeof e;}
                    : function (e) {
                        return e && 'function' == typeof Symbol &&
                        e.constructor === Symbol && e !== Symbol.prototype
                            ? 'symbol'
                            : typeof e;
                    }, a = function (e, t) {
                        if (Array.isArray(e)) return e;
                        if (Symbol.iterator in Object(e)) return function (
                            e, t) {
                            var n = [], i = !0, a = !1, r = void 0;
                            try {
                                for (var o, s = e[Symbol.iterator](); !(i = (o = s.next()).done) &&
                                (n.push(o.value), !t || n.length !== t); i = !0) ;
                            } catch (e) {a = !0, r = e;} finally {
                                try {
                                    !i && s.return && s.return();
                                } finally {if (a) throw r;}
                            }
                            return n;
                        }(e, t);
                        throw new TypeError(
                            'Invalid attempt to destructure non-iterable instance');
                    }, r = function () {
                        function e (e, t) {
                            for (var n = 0; n < t.length; n++) {
                                var i = t[n];
                                i.enumerable = i.enumerable ||
                                    !1, i.configurable = !0, 'value' in i &&
                                (i.writable = !0), Object.defineProperty(e, i.key,
                                    i);
                            }
                        }

                        return function (t, n, i) {
                            return n && e(t.prototype, n), i && e(t, i), t;
                        };
                    }(), o = b(n(3)), s = b(n(2)), l = b(n(0)), c = b(n(5)),
                    u = b(n(10)), d = b(n(9)), h = n(36), f = n(37),
                    p = b(n(13)), m = n(26), g = n(38), v = n(39), y = n(40);

                function b (e) {return e && e.__esModule ? e : { default: e };}

                function x (e, t, n) {
                    return t in e ? Object.defineProperty(e, t, {
                        value: n,
                        enumerable: !0,
                        configurable: !0,
                        writable: !0,
                    }) : e[t] = n, e;
                }

                var _ = (0, u.default)('quill:clipboard'), w = '__ql-matcher',
                    k = [
                        [Node.TEXT_NODE, N],
                        [Node.TEXT_NODE, I],
                        [
                            'br', function (e, t) {
                            D(t, '\n') || t.insert('\n');
                            return t;
                        }],
                        [Node.ELEMENT_NODE, I],
                        [Node.ELEMENT_NODE, P],
                        [Node.ELEMENT_NODE, j],
                        [Node.ELEMENT_NODE, Y],
                        [
                            Node.ELEMENT_NODE,
                            function (e, t) {
                                var n = {}, i = e.style || {};
                                i.fontStyle && 'italic' === A(e).fontStyle &&
                                (n.italic = !0);
                                i.fontWeight &&
                                (A(e).fontWeight.startsWith('bold') ||
                                    parseInt(A(e).fontWeight) >= 700) &&
                                (n.bold = !0);
                                Object.keys(n).length > 0 && (t = T(t, n));
                                parseFloat(i.textIndent || 0) > 0 &&
                                (t = (new s.default).insert('\t').concat(t));
                                return t;
                            }],
                        [
                            'li', function (e, t) {
                            var n = l.default.query(e);
                            if (null == n || 'list-item' !== n.blotName ||
                                !D(t, '\n')) return t;
                            var i = -1, a = e.parentNode;
                            for (; !a.classList.contains(
                                "ql-clipboard");) 'list' ===
                            (l.default.query(a) || {}).blotName &&
                            (i += 1), a = a.parentNode;
                            return i <= 0 ? t : t.compose(
                                (new s.default).retain(t.length() - 1).
                                    retain(1, { indent: i }));
                        }],
                        ['b', O.bind(O, 'bold')],
                        ['i', O.bind(O, 'italic')],
                        ['style', function () {return new s.default;}]],
                    M = [h.AlignAttribute, g.DirectionAttribute].reduce(
                        (function (e, t) {return e[t.keyName] = t, e;}), {}),
                    L = [
                        h.AlignStyle,
                        f.BackgroundStyle,
                        m.ColorStyle,
                        g.DirectionStyle,
                        v.FontStyle,
                        y.SizeStyle].reduce(
                        (function (e, t) {return e[t.keyName] = t, e;}), {}),
                    S = function (e) {
                        function t (e, n) {
                            !function (e, t) {
                                if (!(e instanceof t)) throw new TypeError(
                                    'Cannot call a class as a function');
                            }(this, t);
                            var i = function (
                                e, t) {
                                if (!e) throw new ReferenceError(
                                    'this hasn\'t been initialised - super() hasn\'t been called');
                                return !t || 'object' != typeof t &&
                                'function' != typeof t ? e : t;
                            }(this,
                                (t.__proto__ || Object.getPrototypeOf(t)).call(
                                    this, e, n));
                            return i.quill.root.addEventListener('paste',
                                i.onPaste.bind(
                                    i)), i.container = i.quill.addContainer(
                                'ql-clipboard'), i.container.setAttribute(
                                'contenteditable',
                                !0), i.container.setAttribute('tabindex',
                                -1), i.matchers = [], k.concat(
                                i.options.matchers).
                                forEach((function (e) {
                                    var t = a(e, 2), r = t[0], o = t[1];
                                    (n.matchVisual || o !== j) &&
                                    i.addMatcher(r, o);
                                })), i;
                        }

                        return function (e, t) {
                            if ('function' != typeof t && null !==
                                t) throw new TypeError(
                                'Super expression must either be null or a function, not ' +
                                typeof t);
                            e.prototype = Object.create(t && t.prototype, {
                                constructor: {
                                    value: e,
                                    enumerable: !1,
                                    writable: !0,
                                    configurable: !0,
                                },
                            }), t && (Object.setPrototypeOf
                                ? Object.setPrototypeOf(e, t)
                                : e.__proto__ = t);
                        }(t, e), r(t, [
                            {
                                key: 'addMatcher',
                                value: function (e, t) {
                                    this.matchers.push([e, t]);
                                },
                            },
                            {
                                key: 'convert',
                                value: function (e) {
                                    if ('string' ==
                                        typeof e) return this.container.innerHTML = e.replace(
                                        /\>\r?\n +\</g, '><'), this.convert();
                                    var t = this.quill.getFormat(
                                        this.quill.selection.savedRange.index);
                                    if (t[p.default.blotName]) {
                                        var n = this.container.innerText;
                                        return this.container.innerHTML = '', (new s.default).insert(
                                            n, x({}, p.default.blotName,
                                                t[p.default.blotName]));
                                    }
                                    var i = this.prepareMatching(), r = a(i, 2),
                                        o = r[0], l = r[1],
                                        c = E(this.container, o, l);
                                    return D(c, '\n') && null ==
                                    c.ops[c.ops.length - 1].attributes &&
                                    (c = c.compose(
                                        (new s.default).retain(c.length() - 1).
                                            delete(1))), _.log('convert',
                                        this.container.innerHTML,
                                        c), this.container.innerHTML = '', c;
                                },
                            },
                            {
                                key: 'dangerouslyPasteHTML',
                                value: function (
                                    e, t) {
                                    var n = arguments.length > 2 && void 0 !==
                                    arguments[2]
                                        ? arguments[2]
                                        : c.default.sources.API;
                                    if ('string' ==
                                        typeof e) this.quill.setContents(
                                        this.convert(e),
                                        t), this.quill.setSelection(0,
                                        c.default.sources.SILENT); else {
                                        var i = this.convert(t);
                                        this.quill.updateContents(
                                            (new s.default).retain(e).concat(i),
                                            n), this.quill.setSelection(
                                            e + i.length(),
                                            c.default.sources.SILENT);
                                    }
                                },
                            },
                            {
                                key: 'onPaste', value: function (e) {
                                    var t = this;
                                    if (!e.defaultPrevented &&
                                        this.quill.isEnabled()) {
                                        var n = this.quill.getSelection(),
                                            i = (new s.default).retain(n.index),
                                            a = this.quill.scrollingContainer.scrollTop;
                                        this.container.focus(), this.quill.selection.update(
                                            c.default.sources.SILENT), setTimeout(
                                            (function () {
                                                i = i.concat(t.convert()).
                                                    delete(
                                                        n.length), t.quill.updateContents(
                                                    i,
                                                    c.default.sources.USER), t.quill.setSelection(
                                                    i.length() - n.length,
                                                    c.default.sources.SILENT), t.quill.scrollingContainer.scrollTop = a, t.quill.focus();
                                            }), 1);
                                    }
                                },
                            },
                            {
                                key: 'prepareMatching',
                                value: function () {
                                    var e = this, t = [], n = [];
                                    return this.matchers.forEach((function (i) {
                                        var r = a(i, 2), o = r[0], s = r[1];
                                        switch (o) {
                                            case Node.TEXT_NODE:
                                                n.push(s);
                                                break;
                                            case Node.ELEMENT_NODE:
                                                t.push(s);
                                                break;
                                            default:
                                                [].forEach.call(
                                                    e.container.querySelectorAll(
                                                        o), (function (e) {
                                                        e[w] = e[w] ||
                                                            [], e[w].push(s);
                                                    }));
                                        }
                                    })), [t, n];
                                },
                            }]), t;
                    }(d.default);

                function T (e, t, n) {
                    return 'object' === (void 0 === t ? 'undefined' : i(t))
                        ? Object.keys(t).
                            reduce((function (e, n) {return T(e, n, t[n]);}), e)
                        : e.reduce((function (e, i) {
                            return i.attributes && i.attributes[t]
                                ? e.push(i)
                                : e.insert(i.insert,
                                    (0, o.default)({}, x({}, t, n),
                                        i.attributes));
                        }), new s.default);
                }

                function A (e) {
                    if (e.nodeType !== Node.ELEMENT_NODE) return {};
                    var t = '__ql-computed-style';
                    return e[t] || (e[t] = window.getComputedStyle(e));
                }

                function D (e, t) {
                    for (var n = '', i = e.ops.length - 1; i >= 0 && n.length <
                    t.length; --i) {
                        var a = e.ops[i];
                        if ('string' != typeof a.insert) break;
                        n = a.insert + n;
                    }
                    return n.slice(-1 * t.length) === t;
                }

                function C (e) {
                    if (0 === e.childNodes.length) return !1;
                    var t = A(e);
                    return ['block', 'list-item'].indexOf(t.display) > -1;
                }

                function E (e, t, n) {
                    return e.nodeType === e.TEXT_NODE
                        ? n.reduce((function (t, n) {return n(e, t);}),
                            new s.default)
                        : e.nodeType === e.ELEMENT_NODE ? [].reduce.call(
                            e.childNodes || [], (function (i, a) {
                                var r = E(a, t, n);
                                return a.nodeType === e.ELEMENT_NODE &&
                                (r = t.reduce(
                                    (function (e, t) {return t(a, e);}),
                                    r), r = (a[w] || []).reduce(
                                    (function (e, t) {return t(a, e);}),
                                    r)), i.concat(r);
                            }), new s.default) : new s.default;
                }

                function O (e, t, n) {return T(n, e, !0);}

                function Y (e, t) {
                    var n = l.default.Attributor.Attribute.keys(e),
                        i = l.default.Attributor.Class.keys(e),
                        a = l.default.Attributor.Style.keys(e), r = {};
                    return n.concat(i).
                        concat(a).
                        forEach((function (t) {
                            var n = l.default.query(t,
                                l.default.Scope.ATTRIBUTE);
                            null != n &&
                            (r[n.attrName] = n.value(e), r[n.attrName]) ||
                            (null == (n = M[t]) || n.attrName !== t &&
                            n.keyName !== t ||
                            (r[n.attrName] = n.value(e) || void 0), null ==
                            (n = L[t]) || n.attrName !== t && n.keyName !== t ||
                            (n = L[t], r[n.attrName] = n.value(e) || void 0));
                        })), Object.keys(r).length > 0 && (t = T(t, r)), t;
                }

                function P (e, t) {
                    var n = l.default.query(e);
                    if (null == n) return t;
                    if (n.prototype instanceof l.default.Embed) {
                        var i = {}, a = n.value(e);
                        null != a &&
                        (i[n.blotName] = a, t = (new s.default).insert(i,
                            n.formats(e)));
                    } else 'function' == typeof n.formats &&
                    (t = T(t, n.blotName, n.formats(e)));
                    return t;
                }

                function I (e, t) {
                    return D(t, '\n') ||
                    (C(e) || t.length() > 0 && e.nextSibling &&
                        C(e.nextSibling)) && t.insert('\n'), t;
                }

                function j (e, t) {
                    if (C(e) && null != e.nextElementSibling && !D(t, '\n\n')) {
                        var n = e.offsetHeight + parseFloat(A(e).marginTop) +
                            parseFloat(A(e).marginBottom);
                        e.nextElementSibling.offsetTop > e.offsetTop + 1.5 *
                        n && t.insert('\n');
                    }
                    return t;
                }

                function N (e, t) {
                    var n = e.data;
                    if ('O:P' === e.parentNode.tagName) return t.insert(
                        n.trim());
                    if (0 === n.trim().length &&
                        e.parentNode.classList.contains(
                            'ql-clipboard')) return t;
                    if (!A(e.parentNode).
                        whiteSpace.
                        startsWith('pre')) {
                        var i = function (
                            e, t) {
                            return (t = t.replace(/[^\u00a0]/g, '')).length <
                            1 && e ? ' ' : t;
                        };
                        n = (n = n.replace(/\r\n/g, ' ').
                            replace(/\n/g, ' ')).replace(/\s\s+/g,
                            i.bind(i, !0)), (null == e.previousSibling &&
                            C(e.parentNode) || null != e.previousSibling &&
                            C(e.previousSibling)) &&
                        (n = n.replace(/^\s+/, i.bind(i, !1))), (null ==
                            e.nextSibling && C(e.parentNode) || null !=
                            e.nextSibling && C(e.nextSibling)) &&
                        (n = n.replace(/\s+$/, i.bind(i, !1)));
                    }
                    return t.insert(n);
                }

                S.DEFAULTS = {
                    matchers: [],
                    matchVisual: !0,
                }, t.default = S, t.matchAttributor = Y, t.matchBlot = P, t.matchNewline = I, t.matchSpacing = j, t.matchText = N;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i, a = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }(), r = function e (t, n, i) {
                    null === t && (t = Function.prototype);
                    var a = Object.getOwnPropertyDescriptor(t, n);
                    if (void 0 === a) {
                        var r = Object.getPrototypeOf(t);
                        return null === r ? void 0 : e(r, n, i);
                    }
                    if ('value' in a) return a.value;
                    var o = a.get;
                    return void 0 !== o ? o.call(i) : void 0;
                }, o = n(6);

                function s (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function l (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                var c = function (e) {
                    function t () {
                        return s(this, t), l(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), a(t, [
                        {
                            key: 'optimize',
                            value: function (e) {
                                r(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'optimize', this).
                                    call(this, e), this.domNode.tagName !==
                                this.statics.tagName[0] &&
                                this.replaceWith(this.statics.blotName);
                            },
                        }], [
                        {
                            key: 'create',
                            value: function () {
                                return r(
                                    t.__proto__ || Object.getPrototypeOf(t),
                                    'create', this).call(this);
                            },
                        },
                        {
                            key: 'formats',
                            value: function () {return !0;},
                        }]), t;
                }(((i = o) && i.__esModule ? i : { default: i }).default);
                c.blotName = 'bold', c.tagName = ['STRONG', 'B'], t.default = c;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.addControls = t.default = void 0;
                var i = function (e, t) {
                        if (Array.isArray(e)) return e;
                        if (Symbol.iterator in Object(e)) return function (
                            e, t) {
                            var n = [], i = !0, a = !1, r = void 0;
                            try {
                                for (var o, s = e[Symbol.iterator](); !(i = (o = s.next()).done) &&
                                (n.push(o.value), !t || n.length !== t); i = !0) ;
                            } catch (e) {a = !0, r = e;} finally {
                                try {
                                    !i && s.return && s.return();
                                } finally {if (a) throw r;}
                            }
                            return n;
                        }(e, t);
                        throw new TypeError(
                            'Invalid attempt to destructure non-iterable instance');
                    }, a = function () {
                        function e (e, t) {
                            for (var n = 0; n < t.length; n++) {
                                var i = t[n];
                                i.enumerable = i.enumerable ||
                                    !1, i.configurable = !0, 'value' in i &&
                                (i.writable = !0), Object.defineProperty(e, i.key,
                                    i);
                            }
                        }

                        return function (t, n, i) {
                            return n && e(t.prototype, n), i && e(t, i), t;
                        };
                    }(), r = u(n(2)), o = u(n(0)), s = u(n(5)), l = u(n(10)),
                    c = u(n(9));

                function u (e) {return e && e.__esModule ? e : { default: e };}

                function d (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                var h = (0, l.default)('quill:toolbar'), f = function (e) {
                    function t (e, n) {
                        !function (e, t) {
                            if (!(e instanceof t)) throw new TypeError(
                                'Cannot call a class as a function');
                        }(this, t);
                        var a, r = d(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).call(this,
                                e, n));
                        if (Array.isArray(r.options.container)) {
                            var o = document.createElement('div');
                            m(o,
                                r.options.container), e.container.parentNode.insertBefore(
                                o, e.container), r.container = o;
                        } else 'string' == typeof r.options.container
                            ? r.container = document.querySelector(
                                r.options.container)
                            : r.container = r.options.container;
                        return r.container instanceof HTMLElement
                            ? (r.container.classList.add(
                                'ql-toolbar'), r.controls = [], r.handlers = {}, Object.keys(
                                r.options.handlers).
                                forEach((function (e) {
                                    r.addHandler(e, r.options.handlers[e]);
                                })), [].forEach.call(
                                r.container.querySelectorAll('button, select'),
                                (function (e) {r.attach(e);})), r.quill.on(
                                s.default.events.EDITOR_CHANGE,
                                (function (e, t) {
                                    e === s.default.events.SELECTION_CHANGE &&
                                    r.update(t);
                                })), r.quill.on(
                                s.default.events.SCROLL_OPTIMIZE, (function () {
                                    var e = r.quill.selection.getRange(),
                                        t = i(e, 1)[0];
                                    r.update(t);
                                })), r)
                            : (a = h.error('Container required for toolbar',
                                r.options), d(r, a));
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), a(t, [
                        {
                            key: 'addHandler',
                            value: function (e, t) {this.handlers[e] = t;},
                        },
                        {
                            key: 'attach', value: function (e) {
                                var t = this, n = [].find.call(e.classList,
                                    (function (e) {
                                        return 0 === e.indexOf('ql-');
                                    }));
                                if (n) {
                                    if (n = n.slice('ql-'.length), 'BUTTON' ===
                                    e.tagName &&
                                    e.setAttribute('type', 'button'), null ==
                                    this.handlers[n]) {
                                        if (null !=
                                            this.quill.scroll.whitelist &&
                                            null ==
                                            this.quill.scroll.whitelist[n]) return void h.warn(
                                            'ignoring attaching to disabled format',
                                            n, e);
                                        if (null == o.default.query(
                                            n)) return void h.warn(
                                            'ignoring attaching to nonexistent format',
                                            n, e);
                                    }
                                    var a = 'SELECT' === e.tagName
                                        ? 'change'
                                        : 'click';
                                    e.addEventListener(a, (function (a) {
                                        var l = void 0;
                                        if ('SELECT' === e.tagName) {
                                            if (e.selectedIndex < 0) return;
                                            var c = e.options[e.selectedIndex];
                                            l = !c.hasAttribute('selected') &&
                                                (c.value || !1);
                                        } else l = !e.classList.contains(
                                            'ql-active') && (e.value ||
                                            !e.hasAttribute(
                                                'value')), a.preventDefault();
                                        t.quill.focus();
                                        var u = t.quill.selection.getRange(),
                                            d = i(u, 1)[0];
                                        if (null !=
                                            t.handlers[n]) t.handlers[n].call(t,
                                            l); else if (o.default.query(
                                            n).prototype instanceof
                                            o.default.Embed) {
                                            if (!(l = prompt(
                                                'Enter ' + n))) return;
                                            t.quill.updateContents(
                                                (new r.default).retain(d.index).
                                                    delete(d.length).
                                                    insert(function (e, t, n) {
                                                        return t in e
                                                            ? Object.defineProperty(
                                                                e, t, {
                                                                    value: n,
                                                                    enumerable: !0,
                                                                    configurable: !0,
                                                                    writable: !0,
                                                                })
                                                            : e[t] = n, e;
                                                    }({}, n, l)),
                                                s.default.sources.USER);
                                        } else t.quill.format(n, l,
                                            s.default.sources.USER);
                                        t.update(d);
                                    })), this.controls.push([n, e]);
                                }
                            },
                        },
                        {
                            key: 'update',
                            value: function (e) {
                                var t = null == e
                                    ? {}
                                    : this.quill.getFormat(e);
                                this.controls.forEach((function (n) {
                                    var a = i(n, 2), r = a[0], o = a[1];
                                    if ('SELECT' === o.tagName) {
                                        var s = void 0;
                                        if (null ==
                                            e) s = null; else if (null ==
                                            t[r]) s = o.querySelector(
                                            'option[selected]'); else if (!Array.isArray(
                                            t[r])) {
                                            var l = t[r];
                                            'string' == typeof l &&
                                            (l = l.replace(/\"/g,
                                                '\\"')), s = o.querySelector(
                                                'option[value="' + l + '"]');
                                        }
                                        null == s
                                            ? (o.value = '', o.selectedIndex = -1)
                                            : s.selected = !0;
                                    } else if (null == e) o.classList.remove(
                                        'ql-active'); else if (o.hasAttribute(
                                        'value')) {
                                        var c = t[r] ===
                                            o.getAttribute('value') || null !=
                                            t[r] && t[r].toString() ===
                                            o.getAttribute('value') || null ==
                                            t[r] && !o.getAttribute('value');
                                        o.classList.toggle('ql-active', c);
                                    } else o.classList.toggle('ql-active',
                                        null != t[r]);
                                }));
                            },
                        }]), t;
                }(c.default);

                function p (e, t, n) {
                    var i = document.createElement('button');
                    i.setAttribute('type', 'button'), i.classList.add(
                        'ql-' + t), null != n && (i.value = n), e.appendChild(
                        i);
                }

                function m (e, t) {
                    Array.isArray(t[0]) || (t = [t]), t.forEach((function (t) {
                        var n = document.createElement('span');
                        n.classList.add('ql-formats'), t.forEach((function (e) {
                            if ('string' == typeof e) p(n, e); else {
                                var t = Object.keys(e)[0], i = e[t];
                                Array.isArray(i) ? function (
                                    e, t, n) {
                                    var i = document.createElement('select');
                                    i.classList.add('ql-' + t), n.forEach(
                                        (function (e) {
                                            var t = document.createElement(
                                                'option');
                                            !1 !== e ? t.setAttribute('value',
                                                e) : t.setAttribute('selected',
                                                'selected'), i.appendChild(t);
                                        })), e.appendChild(i);
                                }(n, t, i) : p(n, t, i);
                            }
                        })), e.appendChild(n);
                    }));
                }

                f.DEFAULTS = {}, f.DEFAULTS = {
                    container: null, handlers: {
                        clean: function () {
                            var e = this, t = this.quill.getSelection();
                            if (null != t) if (0 == t.length) {
                                var n = this.quill.getFormat();
                                Object.keys(n).
                                    forEach((function (t) {
                                        null != o.default.query(t,
                                            o.default.Scope.INLINE) &&
                                        e.quill.format(t, !1);
                                    }));
                            } else this.quill.removeFormat(t,
                                s.default.sources.USER);
                        },
                        direction: function (e) {
                            var t = this.quill.getFormat().align;
                            'rtl' === e && null == t ? this.quill.format(
                                'align', 'right', s.default.sources.USER) : e ||
                                'right' !== t || this.quill.format('align', !1,
                                    s.default.sources.USER), this.quill.format(
                                'direction', e, s.default.sources.USER);
                        },
                        indent: function (e) {
                            var t = this.quill.getSelection(),
                                n = this.quill.getFormat(t),
                                i = parseInt(n.indent || 0);
                            if ('+1' === e || '-1' === e) {
                                var a = '+1' === e
                                    ? 1
                                    : -1;
                                'rtl' === n.direction &&
                                (a *= -1), this.quill.format('indent', i + a,
                                    s.default.sources.USER);
                            }
                        },
                        link: function (e) {
                            !0 === e &&
                            (e = prompt('Enter link URL:')), this.quill.format(
                                'link', e, s.default.sources.USER);
                        },
                        list: function (e) {
                            var t = this.quill.getSelection(),
                                n = this.quill.getFormat(t);
                            'check' === e
                                ? 'checked' === n.list || 'unchecked' === n.list
                                ? this.quill.format('list', !1,
                                    s.default.sources.USER)
                                : this.quill.format('list', 'unchecked',
                                    s.default.sources.USER)
                                : this.quill.format('list', e,
                                s.default.sources.USER);
                        },
                    },
                }, t.default = f, t.addControls = m;
            },
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <polyline class="ql-even ql-stroke" points="5 7 3 9 5 11"></polyline> <polyline class="ql-even ql-stroke" points="13 7 15 9 13 11"></polyline> <line class=ql-stroke x1=10 x2=8 y1=5 y2=13></line> </svg>';},
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i, a = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }(), r = function e (t, n, i) {
                    null === t && (t = Function.prototype);
                    var a = Object.getOwnPropertyDescriptor(t, n);
                    if (void 0 === a) {
                        var r = Object.getPrototypeOf(t);
                        return null === r ? void 0 : e(r, n, i);
                    }
                    if ('value' in a) return a.value;
                    var o = a.get;
                    return void 0 !== o ? o.call(i) : void 0;
                }, o = n(28);
                var s = function (e) {
                    function t (e, n) {
                        !function (e, t) {
                            if (!(e instanceof t)) throw new TypeError(
                                'Cannot call a class as a function');
                        }(this, t);
                        var i = function (
                            e, t) {
                            if (!e) throw new ReferenceError(
                                'this hasn\'t been initialised - super() hasn\'t been called');
                            return !t || 'object' != typeof t && 'function' !=
                            typeof t ? e : t;
                        }(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).call(this,
                                e));
                        return i.label.innerHTML = n, i.container.classList.add(
                            'ql-color-picker'), [].slice.call(
                            i.container.querySelectorAll('.ql-picker-item'), 0,
                            7).
                            forEach((function (e) {
                                e.classList.add('ql-primary');
                            })), i;
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), a(t, [
                        {
                            key: 'buildItem',
                            value: function (e) {
                                var n = r(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'buildItem', this).call(this, e);
                                return n.style.backgroundColor = e.getAttribute(
                                    'value') || '', n;
                            },
                        },
                        {
                            key: 'selectItem',
                            value: function (e, n) {
                                r(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'selectItem', this).call(this, e, n);
                                var i = this.label.querySelector(
                                    '.ql-color-label'),
                                    a = e && e.getAttribute('data-value') || '';
                                i && ('line' === i.tagName
                                    ? i.style.stroke = a
                                    : i.style.fill = a);
                            },
                        }]), t;
                }(((i = o) && i.__esModule ? i : { default: i }).default);
                t.default = s;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i, a = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }(), r = function e (t, n, i) {
                    null === t && (t = Function.prototype);
                    var a = Object.getOwnPropertyDescriptor(t, n);
                    if (void 0 === a) {
                        var r = Object.getPrototypeOf(t);
                        return null === r ? void 0 : e(r, n, i);
                    }
                    if ('value' in a) return a.value;
                    var o = a.get;
                    return void 0 !== o ? o.call(i) : void 0;
                }, o = n(28);
                var s = function (e) {
                    function t (e, n) {
                        !function (e, t) {
                            if (!(e instanceof t)) throw new TypeError(
                                'Cannot call a class as a function');
                        }(this, t);
                        var i = function (
                            e, t) {
                            if (!e) throw new ReferenceError(
                                'this hasn\'t been initialised - super() hasn\'t been called');
                            return !t || 'object' != typeof t && 'function' !=
                            typeof t ? e : t;
                        }(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).call(this,
                                e));
                        return i.container.classList.add(
                            'ql-icon-picker'), [].forEach.call(
                            i.container.querySelectorAll('.ql-picker-item'),
                            (function (e) {
                                e.innerHTML = n[e.getAttribute('data-value') ||
                                ''];
                            })), i.defaultItem = i.container.querySelector(
                            '.ql-selected'), i.selectItem(i.defaultItem), i;
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), a(t, [
                        {
                            key: 'selectItem',
                            value: function (e, n) {
                                r(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'selectItem', this).
                                    call(this, e, n), e = e ||
                                    this.defaultItem, this.label.innerHTML = e.innerHTML;
                            },
                        }]), t;
                }(((i = o) && i.__esModule ? i : { default: i }).default);
                t.default = s;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }();
                var a = function () {
                    function e (t, n) {
                        var i = this;
                        !function (e, t) {
                            if (!(e instanceof t)) throw new TypeError(
                                'Cannot call a class as a function');
                        }(this, e), this.quill = t, this.boundsContainer = n ||
                            document.body, this.root = t.addContainer(
                            'ql-tooltip'), this.root.innerHTML = this.constructor.TEMPLATE, this.quill.root ===
                        this.quill.scrollingContainer &&
                        this.quill.root.addEventListener('scroll',
                            (function () {
                                i.root.style.marginTop = -1 *
                                    i.quill.root.scrollTop + 'px';
                            })), this.hide();
                    }

                    return i(e, [
                        {
                            key: 'hide',
                            value: function () {
                                this.root.classList.add('ql-hidden');
                            },
                        },
                        {
                            key: 'position',
                            value: function (e) {
                                var t = e.left + e.width / 2 -
                                    this.root.offsetWidth / 2,
                                    n = e.bottom + this.quill.root.scrollTop;
                                this.root.style.left = t +
                                    'px', this.root.style.top = n +
                                    'px', this.root.classList.remove('ql-flip');
                                var i = this.boundsContainer.getBoundingClientRect(),
                                    a = this.root.getBoundingClientRect(),
                                    r = 0;
                                if (a.right > i.right && (r = i.right -
                                    a.right, this.root.style.left = t + r +
                                    'px'), a.left < i.left &&
                                (r = i.left - a.left, this.root.style.left = t +
                                    r + 'px'), a.bottom > i.bottom) {
                                    var o = a.bottom - a.top,
                                        s = e.bottom - e.top + o;
                                    this.root.style.top = n - s +
                                        'px', this.root.classList.add(
                                        'ql-flip');
                                }
                                return r;
                            },
                        },
                        {
                            key: 'show',
                            value: function () {
                                this.root.classList.remove(
                                    'ql-editing'), this.root.classList.remove(
                                    'ql-hidden');
                            },
                        }]), e;
                }();
                t.default = a;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i = function (e, t) {
                        if (Array.isArray(e)) return e;
                        if (Symbol.iterator in Object(e)) return function (
                            e, t) {
                            var n = [], i = !0, a = !1, r = void 0;
                            try {
                                for (var o, s = e[Symbol.iterator](); !(i = (o = s.next()).done) &&
                                (n.push(o.value), !t || n.length !== t); i = !0) ;
                            } catch (e) {a = !0, r = e;} finally {
                                try {
                                    !i && s.return && s.return();
                                } finally {if (a) throw r;}
                            }
                            return n;
                        }(e, t);
                        throw new TypeError(
                            'Invalid attempt to destructure non-iterable instance');
                    }, a = function e (t, n, i) {
                        null === t && (t = Function.prototype);
                        var a = Object.getOwnPropertyDescriptor(t, n);
                        if (void 0 === a) {
                            var r = Object.getPrototypeOf(t);
                            return null === r ? void 0 : e(r, n, i);
                        }
                        if ('value' in a) return a.value;
                        var o = a.get;
                        return void 0 !== o ? o.call(i) : void 0;
                    }, r = function () {
                        function e (e, t) {
                            for (var n = 0; n < t.length; n++) {
                                var i = t[n];
                                i.enumerable = i.enumerable ||
                                    !1, i.configurable = !0, 'value' in i &&
                                (i.writable = !0), Object.defineProperty(e, i.key,
                                    i);
                            }
                        }

                        return function (t, n, i) {
                            return n && e(t.prototype, n), i && e(t, i), t;
                        };
                    }(), o = f(n(3)), s = f(n(8)), l = n(43), c = f(l),
                    u = f(n(27)), d = n(15), h = f(n(41));

                function f (e) {return e && e.__esModule ? e : { default: e };}

                function p (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function m (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                function g (e, t) {
                    if ('function' != typeof t && null !==
                        t) throw new TypeError(
                        'Super expression must either be null or a function, not ' +
                        typeof t);
                    e.prototype = Object.create(t && t.prototype, {
                        constructor: {
                            value: e,
                            enumerable: !1,
                            writable: !0,
                            configurable: !0,
                        },
                    }), t && (Object.setPrototypeOf
                        ? Object.setPrototypeOf(e, t)
                        : e.__proto__ = t);
                }

                var v = [
                    [{ header: ['1', '2', '3', !1] }],
                    ['bold', 'italic', 'underline', 'link'],
                    [{ list: 'ordered' }, { list: 'bullet' }],
                    ['clean']], y = function (e) {
                    function t (e, n) {
                        p(this, t), null != n.modules.toolbar && null ==
                        n.modules.toolbar.container &&
                        (n.modules.toolbar.container = v);
                        var i = m(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).call(this,
                                e, n));
                        return i.quill.container.classList.add('ql-snow'), i;
                    }

                    return g(t, e), r(t, [
                        {
                            key: 'extendToolbar',
                            value: function (e) {
                                e.container.classList.add(
                                    'ql-snow'), this.buildButtons([].slice.call(
                                    e.container.querySelectorAll('button')),
                                    h.default), this.buildPickers([].slice.call(
                                    e.container.querySelectorAll('select')),
                                    h.default), this.tooltip = new b(this.quill,
                                    this.options.bounds), e.container.querySelector(
                                    '.ql-link') &&
                                this.quill.keyboard.addBinding(
                                    { key: 'K', shortKey: !0 },
                                    (function (t, n) {
                                        e.handlers.link.call(e, !n.format.link);
                                    }));
                            },
                        }]), t;
                }(c.default);
                y.DEFAULTS = (0, o.default)(!0, {}, c.default.DEFAULTS, {
                    modules: {
                        toolbar: {
                            handlers: {
                                link: function (e) {
                                    if (e) {
                                        var t = this.quill.getSelection();
                                        if (null == t || 0 == t.length) return;
                                        var n = this.quill.getText(t);
                                        /^\S+@\S+\.\S+$/.test(n) && 0 !==
                                        n.indexOf('mailto:') && (n = 'mailto:' +
                                            n), this.quill.theme.tooltip.edit(
                                            'link', n);
                                    } else this.quill.format('link', !1);
                                },
                            },
                        },
                    },
                });
                var b = function (e) {
                    function t (e, n) {
                        p(this, t);
                        var i = m(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).call(this,
                                e, n));
                        return i.preview = i.root.querySelector(
                            'a.ql-preview'), i;
                    }

                    return g(t, e), r(t, [
                        {
                            key: 'listen', value: function () {
                                var e = this;
                                a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'listen', this).
                                    call(this), this.root.querySelector(
                                    'a.ql-action').
                                    addEventListener('click', (function (t) {
                                        e.root.classList.contains('ql-editing')
                                            ? e.save()
                                            : e.edit('link',
                                            e.preview.textContent), t.preventDefault();
                                    })), this.root.querySelector('a.ql-remove').
                                    addEventListener('click', (function (t) {
                                        if (null != e.linkRange) {
                                            var n = e.linkRange;
                                            e.restoreFocus(), e.quill.formatText(
                                                n, 'link', !1,
                                                s.default.sources.USER), delete e.linkRange;
                                        }
                                        t.preventDefault(), e.hide();
                                    })), this.quill.on(
                                    s.default.events.SELECTION_CHANGE,
                                    (function (t, n, a) {
                                        if (null != t) {
                                            if (0 === t.length && a ===
                                                s.default.sources.USER) {
                                                var r = e.quill.scroll.descendant(
                                                    u.default, t.index),
                                                    o = i(r, 2), l = o[0],
                                                    c = o[1];
                                                if (null != l) {
                                                    e.linkRange = new d.Range(
                                                        t.index - c,
                                                        l.length());
                                                    var h = u.default.formats(
                                                        l.domNode);
                                                    return e.preview.textContent = h, e.preview.setAttribute(
                                                        'href',
                                                        h), e.show(), void e.position(
                                                        e.quill.getBounds(
                                                            e.linkRange));
                                                }
                                            } else delete e.linkRange;
                                            e.hide();
                                        }
                                    }));
                            },
                        },
                        {
                            key: 'show',
                            value: function () {
                                a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype), 'show',
                                    this).call(this), this.root.removeAttribute(
                                    'data-mode');
                            },
                        }]), t;
                }(l.BaseTooltip);
                b.TEMPLATE = [
                    '<a class="ql-preview" rel="noopener noreferrer" target="_blank" href="about:blank"></a>',
                    '<input type="text" data-formula="e=mc^2" data-link="https://quilljs.com" data-video="Embed URL">',
                    '<a class="ql-action"></a>',
                    '<a class="ql-remove"></a>'].join(''), t.default = y;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i = I(n(29)), a = n(36), r = n(38), o = n(64), s = I(n(65)),
                    l = I(n(66)), c = n(67), u = I(c), d = n(37), h = n(26),
                    f = n(39), p = n(40), m = I(n(56)), g = I(n(68)),
                    v = I(n(27)), y = I(n(69)), b = I(n(70)), x = I(n(71)),
                    _ = I(n(72)), w = I(n(73)), k = n(13), M = I(k),
                    L = I(n(74)), S = I(n(75)), T = I(n(57)), A = I(n(41)),
                    D = I(n(28)), C = I(n(59)), E = I(n(60)), O = I(n(61)),
                    Y = I(n(108)), P = I(n(62));

                function I (e) {return e && e.__esModule ? e : { default: e };}

                i.default.register({
                    'attributors/attribute/direction': r.DirectionAttribute,
                    'attributors/class/align': a.AlignClass,
                    'attributors/class/background': d.BackgroundClass,
                    'attributors/class/color': h.ColorClass,
                    'attributors/class/direction': r.DirectionClass,
                    'attributors/class/font': f.FontClass,
                    'attributors/class/size': p.SizeClass,
                    'attributors/style/align': a.AlignStyle,
                    'attributors/style/background': d.BackgroundStyle,
                    'attributors/style/color': h.ColorStyle,
                    'attributors/style/direction': r.DirectionStyle,
                    'attributors/style/font': f.FontStyle,
                    'attributors/style/size': p.SizeStyle,
                }, !0), i.default.register({
                    'formats/align': a.AlignClass,
                    'formats/direction': r.DirectionClass,
                    'formats/indent': o.IndentClass,
                    'formats/background': d.BackgroundStyle,
                    'formats/color': h.ColorStyle,
                    'formats/font': f.FontClass,
                    'formats/size': p.SizeClass,
                    'formats/blockquote': s.default,
                    'formats/code-block': M.default,
                    'formats/header': l.default,
                    'formats/list': u.default,
                    'formats/bold': m.default,
                    'formats/code': k.Code,
                    'formats/italic': g.default,
                    'formats/link': v.default,
                    'formats/script': y.default,
                    'formats/strike': b.default,
                    'formats/underline': x.default,
                    'formats/image': _.default,
                    'formats/video': w.default,
                    'formats/list/item': c.ListItem,
                    'modules/formula': L.default,
                    'modules/syntax': S.default,
                    'modules/toolbar': T.default,
                    'themes/bubble': Y.default,
                    'themes/snow': P.default,
                    'ui/icons': A.default,
                    'ui/picker': D.default,
                    'ui/icon-picker': E.default,
                    'ui/color-picker': C.default,
                    'ui/tooltip': O.default,
                }, !0), t.default = i.default;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.IndentClass = void 0;
                var i, a = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }(), r = function e (t, n, i) {
                    null === t && (t = Function.prototype);
                    var a = Object.getOwnPropertyDescriptor(t, n);
                    if (void 0 === a) {
                        var r = Object.getPrototypeOf(t);
                        return null === r ? void 0 : e(r, n, i);
                    }
                    if ('value' in a) return a.value;
                    var o = a.get;
                    return void 0 !== o ? o.call(i) : void 0;
                }, o = n(0), s = (i = o) && i.__esModule ? i : { default: i };

                function l (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function c (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                var u = new (function (e) {
                    function t () {
                        return l(this, t), c(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), a(t, [
                        {
                            key: 'add',
                            value: function (e, n) {
                                if ('+1' === n || '-1' === n) {
                                    var i = this.value(e) || 0;
                                    n = '+1' === n ? i + 1 : i - 1;
                                }
                                return 0 === n ? (this.remove(e), !0) : r(
                                    t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype), 'add',
                                    this).call(this, e, n);
                            },
                        },
                        {
                            key: 'canAdd',
                            value: function (e, n) {
                                return r(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'canAdd', this).call(this, e, n) ||
                                    r(t.prototype.__proto__ ||
                                        Object.getPrototypeOf(t.prototype),
                                        'canAdd', this).
                                        call(this, e, parseInt(n));
                            },
                        },
                        {
                            key: 'value',
                            value: function (e) {
                                return parseInt(r(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype), 'value',
                                    this).call(this, e)) || void 0;
                            },
                        }]), t;
                }(s.default.Attributor.Class))('indent', 'ql-indent', {
                    scope: s.default.Scope.BLOCK,
                    whitelist: [1, 2, 3, 4, 5, 6, 7, 8],
                });
                t.IndentClass = u;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i, a = n(4);

                function r (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function o (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                var s = function (e) {
                    function t () {
                        return r(this, t), o(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), t;
                }(((i = a) && i.__esModule ? i : { default: i }).default);
                s.blotName = 'blockquote', s.tagName = 'blockquote', t.default = s;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i, a = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }(), r = n(4);

                function o (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function s (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                var l = function (e) {
                    function t () {
                        return o(this, t), s(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), a(t, null, [
                        {
                            key: 'formats',
                            value: function (e) {
                                return this.tagName.indexOf(e.tagName) + 1;
                            },
                        }]), t;
                }(((i = r) && i.__esModule ? i : { default: i }).default);
                l.blotName = 'header', l.tagName = [
                    'H1',
                    'H2',
                    'H3',
                    'H4',
                    'H5',
                    'H6'], t.default = l;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.default = t.ListItem = void 0;
                var i = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }(), a = function e (t, n, i) {
                    null === t && (t = Function.prototype);
                    var a = Object.getOwnPropertyDescriptor(t, n);
                    if (void 0 === a) {
                        var r = Object.getPrototypeOf(t);
                        return null === r ? void 0 : e(r, n, i);
                    }
                    if ('value' in a) return a.value;
                    var o = a.get;
                    return void 0 !== o ? o.call(i) : void 0;
                }, r = l(n(0)), o = l(n(4)), s = l(n(25));

                function l (e) {return e && e.__esModule ? e : { default: e };}

                function c (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function u (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                function d (e, t) {
                    if ('function' != typeof t && null !==
                        t) throw new TypeError(
                        'Super expression must either be null or a function, not ' +
                        typeof t);
                    e.prototype = Object.create(t && t.prototype, {
                        constructor: {
                            value: e,
                            enumerable: !1,
                            writable: !0,
                            configurable: !0,
                        },
                    }), t && (Object.setPrototypeOf
                        ? Object.setPrototypeOf(e, t)
                        : e.__proto__ = t);
                }

                var h = function (e) {
                    function t () {
                        return c(this, t), u(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return d(t, e), i(t, [
                        {
                            key: 'format',
                            value: function (e, n) {
                                e !== f.blotName || n
                                    ? a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'format', this).call(this, e, n)
                                    : this.replaceWith(
                                    r.default.create(this.statics.scope));
                            },
                        },
                        {
                            key: 'remove',
                            value: function () {
                                null == this.prev && null == this.next
                                    ? this.parent.remove()
                                    : a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'remove', this).call(this);
                            },
                        },
                        {
                            key: 'replaceWith',
                            value: function (e, n) {
                                return this.parent.isolate(
                                    this.offset(this.parent),
                                    this.length()), e ===
                                this.parent.statics.blotName
                                    ? (this.parent.replaceWith(e, n), this)
                                    : (this.parent.unwrap(), a(
                                        t.prototype.__proto__ ||
                                        Object.getPrototypeOf(t.prototype),
                                        'replaceWith', this).call(this, e, n));
                            },
                        }], [
                        {
                            key: 'formats',
                            value: function (e) {
                                return e.tagName === this.tagName ? void 0 : a(
                                    t.__proto__ || Object.getPrototypeOf(t),
                                    'formats', this).call(this, e);
                            },
                        }]), t;
                }(o.default);
                h.blotName = 'list-item', h.tagName = 'LI';
                var f = function (e) {
                    function t (e) {
                        c(this, t);
                        var n = u(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).call(this,
                                e)), i = function (t) {
                            if (t.target.parentNode === e) {
                                var i = n.statics.formats(e),
                                    a = r.default.find(t.target);
                                'checked' === i
                                    ? a.format('list', 'unchecked')
                                    : 'unchecked' === i &&
                                    a.format('list', 'checked');
                            }
                        };
                        return e.addEventListener('touchstart',
                            i), e.addEventListener('mousedown', i), n;
                    }

                    return d(t, e), i(t, null, [
                        {
                            key: 'create',
                            value: function (e) {
                                var n = 'ordered' === e
                                    ? 'OL'
                                    : 'UL', i = a(
                                    t.__proto__ || Object.getPrototypeOf(t),
                                    'create', this).call(this, n);
                                return 'checked' !== e && 'unchecked' !== e ||
                                i.setAttribute('data-checked',
                                    'checked' === e), i;
                            },
                        },
                        {
                            key: 'formats',
                            value: function (e) {
                                return 'OL' === e.tagName
                                    ? 'ordered'
                                    : 'UL' === e.tagName ? e.hasAttribute(
                                        'data-checked') ? 'true' ===
                                    e.getAttribute('data-checked')
                                        ? 'checked'
                                        : 'unchecked' : 'bullet' : void 0;
                            },
                        }]), i(t, [
                        {
                            key: 'format',
                            value: function (e, t) {
                                this.children.length > 0 &&
                                this.children.tail.format(e, t);
                            },
                        },
                        {
                            key: 'formats',
                            value: function () {
                                return e = {}, t = this.statics.blotName, n = this.statics.formats(
                                    this.domNode), t in e
                                    ? Object.defineProperty(e, t, {
                                        value: n,
                                        enumerable: !0,
                                        configurable: !0,
                                        writable: !0,
                                    })
                                    : e[t] = n, e;
                                var e, t, n;
                            },
                        },
                        {
                            key: 'insertBefore',
                            value: function (e, n) {
                                if (e instanceof h) a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'insertBefore', this).
                                    call(this, e, n); else {
                                    var i = null == n
                                        ? this.length()
                                        : n.offset(this), r = this.split(i);
                                    r.parent.insertBefore(e, r);
                                }
                            },
                        },
                        {
                            key: 'optimize',
                            value: function (e) {
                                a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'optimize', this).call(this, e);
                                var n = this.next;
                                null != n && n.prev === this &&
                                n.statics.blotName === this.statics.blotName &&
                                n.domNode.tagName === this.domNode.tagName &&
                                n.domNode.getAttribute('data-checked') ===
                                this.domNode.getAttribute('data-checked') &&
                                (n.moveChildren(this), n.remove());
                            },
                        },
                        {
                            key: 'replace',
                            value: function (e) {
                                if (e.statics.blotName !==
                                    this.statics.blotName) {
                                    var n = r.default.create(
                                        this.statics.defaultChild);
                                    e.moveChildren(n), this.appendChild(n);
                                }
                                a(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'replace', this).call(this, e);
                            },
                        }]), t;
                }(s.default);
                f.blotName = 'list', f.scope = r.default.Scope.BLOCK_BLOT, f.tagName = [
                    'OL',
                    'UL'], f.defaultChild = 'list-item', f.allowedChildren = [h], t.ListItem = h, t.default = f;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i, a = n(56);

                function r (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function o (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                var s = function (e) {
                    function t () {
                        return r(this, t), o(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), t;
                }(((i = a) && i.__esModule ? i : { default: i }).default);
                s.blotName = 'italic', s.tagName = ['EM', 'I'], t.default = s;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i, a = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }(), r = function e (t, n, i) {
                    null === t && (t = Function.prototype);
                    var a = Object.getOwnPropertyDescriptor(t, n);
                    if (void 0 === a) {
                        var r = Object.getPrototypeOf(t);
                        return null === r ? void 0 : e(r, n, i);
                    }
                    if ('value' in a) return a.value;
                    var o = a.get;
                    return void 0 !== o ? o.call(i) : void 0;
                }, o = n(6);

                function s (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function l (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                var c = function (e) {
                    function t () {
                        return s(this, t), l(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), a(t, null, [
                        {
                            key: 'create',
                            value: function (e) {
                                return 'super' === e
                                    ? document.createElement('sup')
                                    : 'sub' === e
                                        ? document.createElement('sub')
                                        : r(t.__proto__ ||
                                            Object.getPrototypeOf(t), 'create',
                                            this).call(this, e);
                            },
                        },
                        {
                            key: 'formats',
                            value: function (e) {
                                return 'SUB' === e.tagName
                                    ? 'sub'
                                    : 'SUP' === e.tagName ? 'super' : void 0;
                            },
                        }]), t;
                }(((i = o) && i.__esModule ? i : { default: i }).default);
                c.blotName = 'script', c.tagName = [
                    'SUB',
                    'SUP'], t.default = c;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i, a = n(6);

                function r (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function o (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                var s = function (e) {
                    function t () {
                        return r(this, t), o(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), t;
                }(((i = a) && i.__esModule ? i : { default: i }).default);
                s.blotName = 'strike', s.tagName = 'S', t.default = s;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i, a = n(6);

                function r (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function o (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                var s = function (e) {
                    function t () {
                        return r(this, t), o(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), t;
                }(((i = a) && i.__esModule ? i : { default: i }).default);
                s.blotName = 'underline', s.tagName = 'U', t.default = s;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i, a = function () {
                        function e (e, t) {
                            for (var n = 0; n < t.length; n++) {
                                var i = t[n];
                                i.enumerable = i.enumerable ||
                                    !1, i.configurable = !0, 'value' in i &&
                                (i.writable = !0), Object.defineProperty(e, i.key,
                                    i);
                            }
                        }

                        return function (t, n, i) {
                            return n && e(t.prototype, n), i && e(t, i), t;
                        };
                    }(), r = function e (t, n, i) {
                        null === t && (t = Function.prototype);
                        var a = Object.getOwnPropertyDescriptor(t, n);
                        if (void 0 === a) {
                            var r = Object.getPrototypeOf(t);
                            return null === r ? void 0 : e(r, n, i);
                        }
                        if ('value' in a) return a.value;
                        var o = a.get;
                        return void 0 !== o ? o.call(i) : void 0;
                    }, o = n(0), s = (i = o) && i.__esModule ? i : { default: i },
                    l = n(27);

                function c (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function u (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                var d = ['alt', 'height', 'width'], h = function (e) {
                    function t () {
                        return c(this, t), u(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), a(t, [
                        {
                            key: 'format',
                            value: function (e, n) {
                                d.indexOf(e) > -1 ? n
                                    ? this.domNode.setAttribute(e, n)
                                    : this.domNode.removeAttribute(e) : r(
                                    t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'format', this).call(this, e, n);
                            },
                        }], [
                        {
                            key: 'create',
                            value: function (e) {
                                var n = r(
                                    t.__proto__ || Object.getPrototypeOf(t),
                                    'create', this).call(this, e);
                                return 'string' == typeof e &&
                                n.setAttribute('src', this.sanitize(e)), n;
                            },
                        },
                        {
                            key: 'formats',
                            value: function (e) {
                                return d.reduce((function (t, n) {
                                    return e.hasAttribute(n) &&
                                    (t[n] = e.getAttribute(n)), t;
                                }), {});
                            },
                        },
                        {
                            key: 'match',
                            value: function (e) {
                                return /\.(jpe?g|gif|png)$/.test(e) ||
                                    /^data:image\/.+;base64/.test(e);
                            },
                        },
                        {
                            key: 'sanitize',
                            value: function (e) {
                                return (0, l.sanitize)(e,
                                    ['http', 'https', 'data']) ? e : '//:0';
                            },
                        },
                        {
                            key: 'value',
                            value: function (e) {return e.getAttribute('src');},
                        }]), t;
                }(s.default.Embed);
                h.blotName = 'image', h.tagName = 'IMG', t.default = h;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule', { value: !0 });
                var i, a = function () {
                        function e (e, t) {
                            for (var n = 0; n < t.length; n++) {
                                var i = t[n];
                                i.enumerable = i.enumerable ||
                                    !1, i.configurable = !0, 'value' in i &&
                                (i.writable = !0), Object.defineProperty(e, i.key,
                                    i);
                            }
                        }

                        return function (t, n, i) {
                            return n && e(t.prototype, n), i && e(t, i), t;
                        };
                    }(), r = function e (t, n, i) {
                        null === t && (t = Function.prototype);
                        var a = Object.getOwnPropertyDescriptor(t, n);
                        if (void 0 === a) {
                            var r = Object.getPrototypeOf(t);
                            return null === r ? void 0 : e(r, n, i);
                        }
                        if ('value' in a) return a.value;
                        var o = a.get;
                        return void 0 !== o ? o.call(i) : void 0;
                    }, o = n(4), s = n(27),
                    l = (i = s) && i.__esModule ? i : { default: i };

                function c (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function u (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                var d = ['height', 'width'], h = function (e) {
                    function t () {
                        return c(this, t), u(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return function (e, t) {
                        if ('function' != typeof t && null !==
                            t) throw new TypeError(
                            'Super expression must either be null or a function, not ' +
                            typeof t);
                        e.prototype = Object.create(t && t.prototype, {
                            constructor: {
                                value: e,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0,
                            },
                        }), t && (Object.setPrototypeOf
                            ? Object.setPrototypeOf(e, t)
                            : e.__proto__ = t);
                    }(t, e), a(t, [
                        {
                            key: 'format',
                            value: function (e, n) {
                                d.indexOf(e) > -1 ? n
                                    ? this.domNode.setAttribute(e, n)
                                    : this.domNode.removeAttribute(e) : r(
                                    t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'format', this).call(this, e, n);
                            },
                        }], [
                        {
                            key: 'create',
                            value: function (e) {
                                var n = r(
                                    t.__proto__ || Object.getPrototypeOf(t),
                                    'create', this).call(this, e);
                                return n.setAttribute('frameborder',
                                    '0'), n.setAttribute('allowfullscreen',
                                    !0), n.setAttribute('src',
                                    this.sanitize(e)), n;
                            },
                        },
                        {
                            key: 'formats',
                            value: function (e) {
                                return d.reduce((function (t, n) {
                                    return e.hasAttribute(n) &&
                                    (t[n] = e.getAttribute(n)), t;
                                }), {});
                            },
                        },
                        {
                            key: 'sanitize',
                            value: function (e) {return l.default.sanitize(e);},
                        },
                        {
                            key: 'value',
                            value: function (e) {return e.getAttribute('src');},
                        }]), t;
                }(o.BlockEmbed);
                h.blotName = 'video', h.className = 'ql-video', h.tagName = 'IFRAME', t.default = h;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.default = t.FormulaBlot = void 0;
                var i = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }(), a = function e (t, n, i) {
                    null === t && (t = Function.prototype);
                    var a = Object.getOwnPropertyDescriptor(t, n);
                    if (void 0 === a) {
                        var r = Object.getPrototypeOf(t);
                        return null === r ? void 0 : e(r, n, i);
                    }
                    if ('value' in a) return a.value;
                    var o = a.get;
                    return void 0 !== o ? o.call(i) : void 0;
                }, r = l(n(35)), o = l(n(5)), s = l(n(9));

                function l (e) {return e && e.__esModule ? e : { default: e };}

                function c (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function u (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                function d (e, t) {
                    if ('function' != typeof t && null !==
                        t) throw new TypeError(
                        'Super expression must either be null or a function, not ' +
                        typeof t);
                    e.prototype = Object.create(t && t.prototype, {
                        constructor: {
                            value: e,
                            enumerable: !1,
                            writable: !0,
                            configurable: !0,
                        },
                    }), t && (Object.setPrototypeOf
                        ? Object.setPrototypeOf(e, t)
                        : e.__proto__ = t);
                }

                var h = function (e) {
                    function t () {
                        return c(this, t), u(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return d(t, e), i(t, null, [
                        {
                            key: 'create',
                            value: function (e) {
                                var n = a(
                                    t.__proto__ || Object.getPrototypeOf(t),
                                    'create', this).call(this, e);
                                return 'string' == typeof e &&
                                (window.katex.render(e, n, {
                                    throwOnError: !1,
                                    errorColor: '#f00',
                                }), n.setAttribute('data-value', e)), n;
                            },
                        },
                        {
                            key: 'value',
                            value: function (e) {
                                return e.getAttribute('data-value');
                            },
                        }]), t;
                }(r.default);
                h.blotName = 'formula', h.className = 'ql-formula', h.tagName = 'SPAN';
                var f = function (e) {
                    function t () {
                        c(this, t);
                        var e = u(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).call(
                                this));
                        if (null == window.katex) throw new Error(
                            'Formula module requires KaTeX.');
                        return e;
                    }

                    return d(t, e), i(t, null, [
                        {
                            key: 'register',
                            value: function () {o.default.register(h, !0);},
                        }]), t;
                }(s.default);
                t.FormulaBlot = h, t.default = f;
            },
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.default = t.CodeToken = t.CodeBlock = void 0;
                var i = function () {
                    function e (e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable ||
                                !1, i.configurable = !0, 'value' in i &&
                            (i.writable = !0), Object.defineProperty(e, i.key,
                                i);
                        }
                    }

                    return function (t, n, i) {
                        return n && e(t.prototype, n), i && e(t, i), t;
                    };
                }(), a = function e (t, n, i) {
                    null === t && (t = Function.prototype);
                    var a = Object.getOwnPropertyDescriptor(t, n);
                    if (void 0 === a) {
                        var r = Object.getPrototypeOf(t);
                        return null === r ? void 0 : e(r, n, i);
                    }
                    if ('value' in a) return a.value;
                    var o = a.get;
                    return void 0 !== o ? o.call(i) : void 0;
                }, r = l(n(0)), o = l(n(5)), s = l(n(9));

                function l (e) {return e && e.__esModule ? e : { default: e };}

                function c (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function u (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                function d (e, t) {
                    if ('function' != typeof t && null !==
                        t) throw new TypeError(
                        'Super expression must either be null or a function, not ' +
                        typeof t);
                    e.prototype = Object.create(t && t.prototype, {
                        constructor: {
                            value: e,
                            enumerable: !1,
                            writable: !0,
                            configurable: !0,
                        },
                    }), t && (Object.setPrototypeOf
                        ? Object.setPrototypeOf(e, t)
                        : e.__proto__ = t);
                }

                var h = function (e) {
                    function t () {
                        return c(this, t), u(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).apply(
                                this, arguments));
                    }

                    return d(t, e), i(t, [
                        {
                            key: 'replaceWith',
                            value: function (e) {
                                this.domNode.textContent = this.domNode.textContent, this.attach(), a(
                                    t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'replaceWith', this).call(this, e);
                            },
                        },
                        {
                            key: 'highlight',
                            value: function (e) {
                                var t = this.domNode.textContent;
                                this.cachedText !== t &&
                                ((t.trim().length > 0 || null ==
                                    this.cachedText) &&
                                (this.domNode.innerHTML = e(
                                    t), this.domNode.normalize(), this.attach()), this.cachedText = t);
                            },
                        }]), t;
                }(l(n(13)).default);
                h.className = 'ql-syntax';
                var f = new r.default.Attributor.Class('token', 'hljs',
                    { scope: r.default.Scope.INLINE }), p = function (e) {
                    function t (e, n) {
                        c(this, t);
                        var i = u(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).call(this,
                                e, n));
                        if ('function' !=
                            typeof i.options.highlight) throw new Error(
                            'Syntax module requires highlight.js. Please include the library on the page before Quill.');
                        var a = null;
                        return i.quill.on(o.default.events.SCROLL_OPTIMIZE,
                            (function () {
                                clearTimeout(a), a = setTimeout(
                                    (function () {i.highlight(), a = null;}),
                                    i.options.interval);
                            })), i.highlight(), i;
                    }

                    return d(t, e), i(t, null, [
                        {
                            key: 'register',
                            value: function () {
                                o.default.register(f, !0), o.default.register(h,
                                    !0);
                            },
                        }]), i(t, [
                        {
                            key: 'highlight',
                            value: function () {
                                var e = this;
                                if (!this.quill.selection.composing) {
                                    this.quill.update(o.default.sources.USER);
                                    var t = this.quill.getSelection();
                                    this.quill.scroll.descendants(h).
                                        forEach((function (t) {
                                            t.highlight(e.options.highlight);
                                        })), this.quill.update(
                                        o.default.sources.SILENT), null != t &&
                                    this.quill.setSelection(t,
                                        o.default.sources.SILENT);
                                }
                            },
                        }]), t;
                }(s.default);
                p.DEFAULTS = {
                    highlight: null == window.hljs
                        ? null
                        : function (e) {
                            return window.hljs.highlightAuto(e).value;
                        }, interval: 1e3,
                }, t.CodeBlock = h, t.CodeToken = f, t.default = p;
            },
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=3 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=13 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=9 y1=4 y2=4></line> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=14 x2=4 y1=14 y2=14></line> <line class=ql-stroke x1=12 x2=6 y1=4 y2=4></line> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=5 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=9 y1=4 y2=4></line> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=3 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=3 y1=4 y2=4></line> </svg>';},
            function (
                e,
                t) {
                e.exports = '<svg viewbox="0 0 18 18"> <g class="ql-fill ql-color-label"> <polygon points="6 6.868 6 6 5 6 5 7 5.942 7 6 6.868"></polygon> <rect height=1 width=1 x=4 y=4></rect> <polygon points="6.817 5 6 5 6 6 6.38 6 6.817 5"></polygon> <rect height=1 width=1 x=2 y=6></rect> <rect height=1 width=1 x=3 y=5></rect> <rect height=1 width=1 x=4 y=7></rect> <polygon points="4 11.439 4 11 3 11 3 12 3.755 12 4 11.439"></polygon> <rect height=1 width=1 x=2 y=12></rect> <rect height=1 width=1 x=2 y=9></rect> <rect height=1 width=1 x=2 y=15></rect> <polygon points="4.63 10 4 10 4 11 4.192 11 4.63 10"></polygon> <rect height=1 width=1 x=3 y=8></rect> <path d=M10.832,4.2L11,4.582V4H10.708A1.948,1.948,0,0,1,10.832,4.2Z></path> <path d=M7,4.582L7.168,4.2A1.929,1.929,0,0,1,7.292,4H7V4.582Z></path> <path d=M8,13H7.683l-0.351.8a1.933,1.933,0,0,1-.124.2H8V13Z></path> <rect height=1 width=1 x=12 y=2></rect> <rect height=1 width=1 x=11 y=3></rect> <path d=M9,3H8V3.282A1.985,1.985,0,0,1,9,3Z></path> <rect height=1 width=1 x=2 y=3></rect> <rect height=1 width=1 x=6 y=2></rect> <rect height=1 width=1 x=3 y=2></rect> <rect height=1 width=1 x=5 y=3></rect> <rect height=1 width=1 x=9 y=2></rect> <rect height=1 width=1 x=15 y=14></rect> <polygon points="13.447 10.174 13.469 10.225 13.472 10.232 13.808 11 14 11 14 10 13.37 10 13.447 10.174"></polygon> <rect height=1 width=1 x=13 y=7></rect> <rect height=1 width=1 x=15 y=5></rect> <rect height=1 width=1 x=14 y=6></rect> <rect height=1 width=1 x=15 y=8></rect> <rect height=1 width=1 x=14 y=9></rect> <path d=M3.775,14H3v1H4V14.314A1.97,1.97,0,0,1,3.775,14Z></path> <rect height=1 width=1 x=14 y=3></rect> <polygon points="12 6.868 12 6 11.62 6 12 6.868"></polygon> <rect height=1 width=1 x=15 y=2></rect> <rect height=1 width=1 x=12 y=5></rect> <rect height=1 width=1 x=13 y=4></rect> <polygon points="12.933 9 13 9 13 8 12.495 8 12.933 9"></polygon> <rect height=1 width=1 x=9 y=14></rect> <rect height=1 width=1 x=8 y=15></rect> <path d=M6,14.926V15H7V14.316A1.993,1.993,0,0,1,6,14.926Z></path> <rect height=1 width=1 x=5 y=15></rect> <path d=M10.668,13.8L10.317,13H10v1h0.792A1.947,1.947,0,0,1,10.668,13.8Z></path> <rect height=1 width=1 x=11 y=15></rect> <path d=M14.332,12.2a1.99,1.99,0,0,1,.166.8H15V12H14.245Z></path> <rect height=1 width=1 x=14 y=15></rect> <rect height=1 width=1 x=15 y=11></rect> </g> <polyline class=ql-stroke points="5.5 13 9 5 12.5 13"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=11 y2=11></line> </svg>';
            },
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <rect class="ql-fill ql-stroke" height=3 width=3 x=4 y=5></rect> <rect class="ql-fill ql-stroke" height=3 width=3 x=11 y=5></rect> <path class="ql-even ql-fill ql-stroke" d=M7,8c0,4.031-3,5-3,5></path> <path class="ql-even ql-fill ql-stroke" d=M14,8c0,4.031-3,5-3,5></path> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <path class=ql-stroke d=M5,4H9.5A2.5,2.5,0,0,1,12,6.5v0A2.5,2.5,0,0,1,9.5,9H5A0,0,0,0,1,5,9V4A0,0,0,0,1,5,4Z></path> <path class=ql-stroke d=M5,9h5.5A2.5,2.5,0,0,1,13,11.5v0A2.5,2.5,0,0,1,10.5,14H5a0,0,0,0,1,0,0V9A0,0,0,0,1,5,9Z></path> </svg>';},
            function (
                e,
                t) {e.exports = '<svg class="" viewbox="0 0 18 18"> <line class=ql-stroke x1=5 x2=13 y1=3 y2=3></line> <line class=ql-stroke x1=6 x2=9.35 y1=12 y2=3></line> <line class=ql-stroke x1=11 x2=15 y1=11 y2=15></line> <line class=ql-stroke x1=15 x2=11 y1=11 y2=15></line> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=7 x=2 y=14></rect> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <line class="ql-color-label ql-stroke ql-transparent" x1=3 x2=15 y1=15 y2=15></line> <polyline class=ql-stroke points="5.5 11 9 3 12.5 11"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=9 y2=9></line> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <polygon class="ql-stroke ql-fill" points="3 11 5 9 3 7 3 11"></polygon> <line class="ql-stroke ql-fill" x1=15 x2=11 y1=4 y2=4></line> <path class=ql-fill d=M11,3a3,3,0,0,0,0,6h1V3H11Z></path> <rect class=ql-fill height=11 width=1 x=11 y=4></rect> <rect class=ql-fill height=11 width=1 x=13 y=4></rect> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <polygon class="ql-stroke ql-fill" points="15 12 13 10 15 8 15 12"></polygon> <line class="ql-stroke ql-fill" x1=9 x2=5 y1=4 y2=4></line> <path class=ql-fill d=M5,3A3,3,0,0,0,5,9H6V3H5Z></path> <rect class=ql-fill height=11 width=1 x=5 y=4></rect> <rect class=ql-fill height=11 width=1 x=7 y=4></rect> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <path class=ql-fill d=M14,16H4a1,1,0,0,1,0-2H14A1,1,0,0,1,14,16Z /> <path class=ql-fill d=M14,4H4A1,1,0,0,1,4,2H14A1,1,0,0,1,14,4Z /> <rect class=ql-fill x=3 y=6 width=12 height=6 rx=1 ry=1 /> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <path class=ql-fill d=M13,16H5a1,1,0,0,1,0-2h8A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H5A1,1,0,0,1,5,2h8A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=2 y=6 width=14 height=6 rx=1 ry=1 /> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <path class=ql-fill d=M15,8H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,8Z /> <path class=ql-fill d=M15,12H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,12Z /> <path class=ql-fill d=M15,16H5a1,1,0,0,1,0-2H15A1,1,0,0,1,15,16Z /> <path class=ql-fill d=M15,4H5A1,1,0,0,1,5,2H15A1,1,0,0,1,15,4Z /> <rect class=ql-fill x=2 y=6 width=8 height=6 rx=1 ry=1 /> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <path class=ql-fill d=M5,8H3A1,1,0,0,1,3,6H5A1,1,0,0,1,5,8Z /> <path class=ql-fill d=M5,12H3a1,1,0,0,1,0-2H5A1,1,0,0,1,5,12Z /> <path class=ql-fill d=M13,16H3a1,1,0,0,1,0-2H13A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H3A1,1,0,0,1,3,2H13A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=8 y=6 width=8 height=6 rx=1 ry=1 transform="translate(24 18) rotate(-180)"/> </svg>';},
            function (
                e,
                t) {
                e.exports = '<svg viewbox="0 0 18 18"> <path class=ql-fill d=M11.759,2.482a2.561,2.561,0,0,0-3.53.607A7.656,7.656,0,0,0,6.8,6.2C6.109,9.188,5.275,14.677,4.15,14.927a1.545,1.545,0,0,0-1.3-.933A0.922,0.922,0,0,0,2,15.036S1.954,16,4.119,16s3.091-2.691,3.7-5.553c0.177-.826.36-1.726,0.554-2.6L8.775,6.2c0.381-1.421.807-2.521,1.306-2.676a1.014,1.014,0,0,0,1.02.56A0.966,0.966,0,0,0,11.759,2.482Z></path> <rect class=ql-fill height=1.6 rx=0.8 ry=0.8 width=5 x=5.15 y=6.2></rect> <path class=ql-fill d=M13.663,12.027a1.662,1.662,0,0,1,.266-0.276q0.193,0.069.456,0.138a2.1,2.1,0,0,0,.535.069,1.075,1.075,0,0,0,.767-0.3,1.044,1.044,0,0,0,.314-0.8,0.84,0.84,0,0,0-.238-0.619,0.8,0.8,0,0,0-.594-0.239,1.154,1.154,0,0,0-.781.3,4.607,4.607,0,0,0-.781,1q-0.091.15-.218,0.346l-0.246.38c-0.068-.288-0.137-0.582-0.212-0.885-0.459-1.847-2.494-.984-2.941-0.8-0.482.2-.353,0.647-0.094,0.529a0.869,0.869,0,0,1,1.281.585c0.217,0.751.377,1.436,0.527,2.038a5.688,5.688,0,0,1-.362.467,2.69,2.69,0,0,1-.264.271q-0.221-.08-0.471-0.147a2.029,2.029,0,0,0-.522-0.066,1.079,1.079,0,0,0-.768.3A1.058,1.058,0,0,0,9,15.131a0.82,0.82,0,0,0,.832.852,1.134,1.134,0,0,0,.787-0.3,5.11,5.11,0,0,0,.776-0.993q0.141-.219.215-0.34c0.046-.076.122-0.194,0.223-0.346a2.786,2.786,0,0,0,.918,1.726,2.582,2.582,0,0,0,2.376-.185c0.317-.181.212-0.565,0-0.494A0.807,0.807,0,0,1,14.176,15a5.159,5.159,0,0,1-.913-2.446l0,0Q13.487,12.24,13.663,12.027Z></path> </svg>';
            },
            function (
                e,
                t) {e.exports = '<svg viewBox="0 0 18 18"> <path class=ql-fill d=M10,4V14a1,1,0,0,1-2,0V10H3v4a1,1,0,0,1-2,0V4A1,1,0,0,1,3,4V8H8V4a1,1,0,0,1,2,0Zm6.06787,9.209H14.98975V7.59863a.54085.54085,0,0,0-.605-.60547h-.62744a1.01119,1.01119,0,0,0-.748.29688L11.645,8.56641a.5435.5435,0,0,0-.022.8584l.28613.30762a.53861.53861,0,0,0,.84717.0332l.09912-.08789a1.2137,1.2137,0,0,0,.2417-.35254h.02246s-.01123.30859-.01123.60547V13.209H12.041a.54085.54085,0,0,0-.605.60547v.43945a.54085.54085,0,0,0,.605.60547h4.02686a.54085.54085,0,0,0,.605-.60547v-.43945A.54085.54085,0,0,0,16.06787,13.209Z /> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewBox="0 0 18 18"> <path class=ql-fill d=M16.73975,13.81445v.43945a.54085.54085,0,0,1-.605.60547H11.855a.58392.58392,0,0,1-.64893-.60547V14.0127c0-2.90527,3.39941-3.42187,3.39941-4.55469a.77675.77675,0,0,0-.84717-.78125,1.17684,1.17684,0,0,0-.83594.38477c-.2749.26367-.561.374-.85791.13184l-.4292-.34082c-.30811-.24219-.38525-.51758-.1543-.81445a2.97155,2.97155,0,0,1,2.45361-1.17676,2.45393,2.45393,0,0,1,2.68408,2.40918c0,2.45312-3.1792,2.92676-3.27832,3.93848h2.79443A.54085.54085,0,0,1,16.73975,13.81445ZM9,3A.99974.99974,0,0,0,8,4V8H3V4A1,1,0,0,0,1,4V14a1,1,0,0,0,2,0V10H8v4a1,1,0,0,0,2,0V4A.99974.99974,0,0,0,9,3Z /> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=7 x2=13 y1=4 y2=4></line> <line class=ql-stroke x1=5 x2=11 y1=14 y2=14></line> <line class=ql-stroke x1=8 x2=10 y1=14 y2=4></line> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <rect class=ql-stroke height=10 width=12 x=3 y=4></rect> <circle class=ql-fill cx=6 cy=7 r=1></circle> <polyline class="ql-even ql-fill" points="5 12 5 11 7 9 8 10 11 7 13 9 13 12 5 12"></polyline> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class="ql-fill ql-stroke" points="3 7 3 11 5 9 3 7"></polyline> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points="5 7 5 11 3 9 5 7"></polyline> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=7 x2=11 y1=7 y2=11></line> <path class="ql-even ql-stroke" d=M8.9,4.577a3.476,3.476,0,0,1,.36,4.679A3.476,3.476,0,0,1,4.577,8.9C3.185,7.5,2.035,6.4,4.217,4.217S7.5,3.185,8.9,4.577Z></path> <path class="ql-even ql-stroke" d=M13.423,9.1a3.476,3.476,0,0,0-4.679-.36,3.476,3.476,0,0,0,.36,4.679c1.392,1.392,2.5,2.542,4.679.36S14.815,10.5,13.423,9.1Z></path> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=7 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=7 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=7 x2=15 y1=14 y2=14></line> <line class="ql-stroke ql-thin" x1=2.5 x2=4.5 y1=5.5 y2=5.5></line> <path class=ql-fill d=M3.5,6A0.5,0.5,0,0,1,3,5.5V3.085l-0.276.138A0.5,0.5,0,0,1,2.053,3c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,4,2.5v3A0.5,0.5,0,0,1,3.5,6Z></path> <path class="ql-stroke ql-thin" d=M4.5,10.5h-2c0-.234,1.85-1.076,1.85-2.234A0.959,0.959,0,0,0,2.5,8.156></path> <path class="ql-stroke ql-thin" d=M2.5,14.846a0.959,0.959,0,0,0,1.85-.109A0.7,0.7,0,0,0,3.75,14a0.688,0.688,0,0,0,.6-0.736,0.959,0.959,0,0,0-1.85-.109></path> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <line class=ql-stroke x1=6 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=6 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=6 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=3 y1=4 y2=4></line> <line class=ql-stroke x1=3 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=3 y1=14 y2=14></line> </svg>';},
            function (
                e,
                t) {e.exports = '<svg class="" viewbox="0 0 18 18"> <line class=ql-stroke x1=9 x2=15 y1=4 y2=4></line> <polyline class=ql-stroke points="3 4 4 5 6 3"></polyline> <line class=ql-stroke x1=9 x2=15 y1=14 y2=14></line> <polyline class=ql-stroke points="3 14 4 15 6 13"></polyline> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points="3 9 4 10 6 8"></polyline> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <path class=ql-fill d=M15.5,15H13.861a3.858,3.858,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.921,1.921,0,0,0,12.021,11.7a0.50013,0.50013,0,1,0,.957.291h0a0.914,0.914,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.076-1.16971,1.86982-1.93971,2.43082A1.45639,1.45639,0,0,0,12,15.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,15Z /> <path class=ql-fill d=M9.65,5.241a1,1,0,0,0-1.409.108L6,7.964,3.759,5.349A1,1,0,0,0,2.192,6.59178Q2.21541,6.6213,2.241,6.649L4.684,9.5,2.241,12.35A1,1,0,0,0,3.71,13.70722q0.02557-.02768.049-0.05722L6,11.036,8.241,13.65a1,1,0,1,0,1.567-1.24277Q9.78459,12.3777,9.759,12.35L7.316,9.5,9.759,6.651A1,1,0,0,0,9.65,5.241Z /> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <path class=ql-fill d=M15.5,7H13.861a4.015,4.015,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.922,1.922,0,0,0,12.021,3.7a0.5,0.5,0,1,0,.957.291,0.917,0.917,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.077-1.164,1.925-1.934,2.486A1.423,1.423,0,0,0,12,7.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,7Z /> <path class=ql-fill d=M9.651,5.241a1,1,0,0,0-1.41.108L6,7.964,3.759,5.349a1,1,0,1,0-1.519,1.3L4.683,9.5,2.241,12.35a1,1,0,1,0,1.519,1.3L6,11.036,8.241,13.65a1,1,0,0,0,1.519-1.3L7.317,9.5,9.759,6.651A1,1,0,0,0,9.651,5.241Z /> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <line class="ql-stroke ql-thin" x1=15.5 x2=2.5 y1=8.5 y2=9.5></line> <path class=ql-fill d=M9.007,8C6.542,7.791,6,7.519,6,6.5,6,5.792,7.283,5,9,5c1.571,0,2.765.679,2.969,1.309a1,1,0,0,0,1.9-.617C13.356,4.106,11.354,3,9,3,6.2,3,4,4.538,4,6.5a3.2,3.2,0,0,0,.5,1.843Z></path> <path class=ql-fill d=M8.984,10C11.457,10.208,12,10.479,12,11.5c0,0.708-1.283,1.5-3,1.5-1.571,0-2.765-.679-2.969-1.309a1,1,0,1,0-1.9.617C4.644,13.894,6.646,15,9,15c2.8,0,5-1.538,5-3.5a3.2,3.2,0,0,0-.5-1.843Z></path> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <path class=ql-stroke d=M5,3V9a4.012,4.012,0,0,0,4,4H9a4.012,4.012,0,0,0,4-4V3></path> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=12 x=3 y=15></rect> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <rect class=ql-stroke height=12 width=12 x=3 y=3></rect> <rect class=ql-fill height=12 width=1 x=5 y=3></rect> <rect class=ql-fill height=12 width=1 x=12 y=3></rect> <rect class=ql-fill height=2 width=8 x=5 y=8></rect> <rect class=ql-fill height=1 width=3 x=3 y=5></rect> <rect class=ql-fill height=1 width=3 x=3 y=7></rect> <rect class=ql-fill height=1 width=3 x=3 y=10></rect> <rect class=ql-fill height=1 width=3 x=3 y=12></rect> <rect class=ql-fill height=1 width=3 x=12 y=5></rect> <rect class=ql-fill height=1 width=3 x=12 y=7></rect> <rect class=ql-fill height=1 width=3 x=12 y=10></rect> <rect class=ql-fill height=1 width=3 x=12 y=12></rect> </svg>';},
            function (
                e,
                t) {e.exports = '<svg viewbox="0 0 18 18"> <polygon class=ql-stroke points="7 11 9 13 11 11 7 11"></polygon> <polygon class=ql-stroke points="7 7 9 5 11 7 7 7"></polygon> </svg>';},
            function (e, t, n) {
                'use strict';
                Object.defineProperty(t, '__esModule',
                    { value: !0 }), t.default = t.BubbleTooltip = void 0;
                var i = function e (t, n, i) {
                        null === t && (t = Function.prototype);
                        var a = Object.getOwnPropertyDescriptor(t, n);
                        if (void 0 === a) {
                            var r = Object.getPrototypeOf(t);
                            return null === r ? void 0 : e(r, n, i);
                        }
                        if ('value' in a) return a.value;
                        var o = a.get;
                        return void 0 !== o ? o.call(i) : void 0;
                    }, a = function () {
                        function e (e, t) {
                            for (var n = 0; n < t.length; n++) {
                                var i = t[n];
                                i.enumerable = i.enumerable ||
                                    !1, i.configurable = !0, 'value' in i &&
                                (i.writable = !0), Object.defineProperty(e, i.key,
                                    i);
                            }
                        }

                        return function (t, n, i) {
                            return n && e(t.prototype, n), i && e(t, i), t;
                        };
                    }(), r = d(n(3)), o = d(n(8)), s = n(43), l = d(s), c = n(15),
                    u = d(n(41));

                function d (e) {return e && e.__esModule ? e : { default: e };}

                function h (e, t) {
                    if (!(e instanceof t)) throw new TypeError(
                        'Cannot call a class as a function');
                }

                function f (e, t) {
                    if (!e) throw new ReferenceError(
                        'this hasn\'t been initialised - super() hasn\'t been called');
                    return !t || 'object' != typeof t && 'function' != typeof t
                        ? e
                        : t;
                }

                function p (e, t) {
                    if ('function' != typeof t && null !==
                        t) throw new TypeError(
                        'Super expression must either be null or a function, not ' +
                        typeof t);
                    e.prototype = Object.create(t && t.prototype, {
                        constructor: {
                            value: e,
                            enumerable: !1,
                            writable: !0,
                            configurable: !0,
                        },
                    }), t && (Object.setPrototypeOf
                        ? Object.setPrototypeOf(e, t)
                        : e.__proto__ = t);
                }

                var m = [
                        ['bold', 'italic', 'link'],
                        [{ header: 1 }, { header: 2 }, 'blockquote']],
                    g = function (e) {
                        function t (e, n) {
                            h(this, t), null != n.modules.toolbar && null ==
                            n.modules.toolbar.container &&
                            (n.modules.toolbar.container = m);
                            var i = f(this,
                                (t.__proto__ || Object.getPrototypeOf(t)).call(
                                    this, e, n));
                            return i.quill.container.classList.add(
                                'ql-bubble'), i;
                        }

                        return p(t, e), a(t, [
                            {
                                key: 'extendToolbar',
                                value: function (e) {
                                    this.tooltip = new v(this.quill,
                                        this.options.bounds), this.tooltip.root.appendChild(
                                        e.container), this.buildButtons(
                                        [].slice.call(
                                            e.container.querySelectorAll(
                                                'button')),
                                        u.default), this.buildPickers(
                                        [].slice.call(
                                            e.container.querySelectorAll(
                                                'select')), u.default);
                                },
                            }]), t;
                    }(l.default);
                g.DEFAULTS = (0, r.default)(!0, {}, l.default.DEFAULTS, {
                    modules: {
                        toolbar: {
                            handlers: {
                                link: function (e) {
                                    e
                                        ? this.quill.theme.tooltip.edit()
                                        : this.quill.format('link', !1);
                                },
                            },
                        },
                    },
                });
                var v = function (e) {
                    function t (e, n) {
                        h(this, t);
                        var i = f(this,
                            (t.__proto__ || Object.getPrototypeOf(t)).call(this,
                                e, n));
                        return i.quill.on(o.default.events.EDITOR_CHANGE,
                            (function (e, t, n, a) {
                                if (e ===
                                    o.default.events.SELECTION_CHANGE) if (null !=
                                    t && t.length > 0 && a ===
                                    o.default.sources.USER) {
                                    i.show(), i.root.style.left = '0px', i.root.style.width = '', i.root.style.width = i.root.offsetWidth +
                                        'px';
                                    var r = i.quill.getLines(t.index, t.length);
                                    if (1 === r.length) i.position(
                                        i.quill.getBounds(t)); else {
                                        var s = r[r.length - 1],
                                            l = i.quill.getIndex(s),
                                            u = Math.min(s.length() - 1,
                                                t.index + t.length - l),
                                            d = i.quill.getBounds(
                                                new c.Range(l, u));
                                        i.position(d);
                                    }
                                } else document.activeElement !== i.textbox &&
                                i.quill.hasFocus() && i.hide();
                            })), i;
                    }

                    return p(t, e), a(t, [
                        {
                            key: 'listen', value: function () {
                                var e = this;
                                i(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'listen', this).
                                    call(this), this.root.querySelector(
                                    '.ql-close').
                                    addEventListener('click', (function () {
                                        e.root.classList.remove('ql-editing');
                                    })), this.quill.on(
                                    o.default.events.SCROLL_OPTIMIZE,
                                    (function () {
                                        setTimeout((function () {
                                            if (!e.root.classList.contains(
                                                'ql-hidden')) {
                                                var t = e.quill.getSelection();
                                                null != t &&
                                                e.position(
                                                    e.quill.getBounds(t));
                                            }
                                        }), 1);
                                    }));
                            },
                        },
                        { key: 'cancel', value: function () {this.show();} },
                        {
                            key: 'position',
                            value: function (e) {
                                var n = i(t.prototype.__proto__ ||
                                    Object.getPrototypeOf(t.prototype),
                                    'position', this).call(this, e),
                                    a = this.root.querySelector(
                                        '.ql-tooltip-arrow');
                                if (a.style.marginLeft = '', 0 === n) return n;
                                a.style.marginLeft = -1 * n - a.offsetWidth /
                                    2 + 'px';
                            },
                        }]), t;
                }(s.BaseTooltip);
                v.TEMPLATE = [
                    '<span class="ql-tooltip-arrow"></span>',
                    '<div class="ql-tooltip-editor">',
                    '<input type="text" data-formula="e=mc^2" data-link="https://quilljs.com" data-video="Embed URL">',
                    '<a class="ql-close"></a>',
                    '</div>'].join(''), t.BubbleTooltip = v, t.default = g;
            },
            function (e, t, n) {e.exports = n(63);}]).default;
    })), function (e) {
    'function' == typeof define && define.amd
        ? define(e)
        : e();
}((function () {
    'use strict';

    function e (e, t) {
        t = t || { bubbles: !1, cancelable: !1, detail: void 0 };
        var n = document.createEvent('CustomEvent');
        return n.initCustomEvent(e, t.bubbles, t.cancelable, t.detail), n;
    }

    var t;
    ''.trim || (String.prototype.trim = function () {
        return this.replace(/^[\s]+|[\s]+$/g, '');
    }), window.NodeList && !NodeList.prototype.forEach &&
    (NodeList.prototype.forEach = Array.prototype.forEach), Array.prototype.findIndex ||
    Object.defineProperty(Array.prototype, 'findIndex', {
        value: function (e) {
            if (null == this) throw new TypeError(
                '"this" is null or not defined');
            var t = Object(this), n = t.length >>> 0;
            if ('function' != typeof e) throw new TypeError(
                'predicate must be a function');
            for (var i = arguments[1], a = 0; a < n;) {
                var r = t[a];
                if (e.call(i, r, a, t)) return a;
                a++;
            }
            return -1;
        }, configurable: !0, writable: !0,
    }), Array.prototype.includes || (Array.prototype.includes = function (e) {
        return !!~this.indexOf(e);
    }), Array.prototype.some || (Array.prototype.some = function (e, t) {
        if (null == this) throw new TypeError(
            'Array.prototype.some called on null or undefined');
        if ('function' != typeof e) throw new TypeError;
        for (var n = Object(this), i = n.length >>> 0, a = 0; a <
        i; a++) if (a in n && e.call(t, n[a], a, n)) return !0;
        return !1;
    }), String.prototype.includes ||
    (String.prototype.includes = function (e, t) {
        return 'number' != typeof t && (t = 0), !(t + e.length > this.length) &&
        -1 !== this.indexOf(e, t);
    }), 'function' != typeof Object.assign &&
    Object.defineProperty(Object, 'assign', {
        value: function (e, t) {
            if (null == e) throw new TypeError(
                'Cannot convert undefined or null to object');
            for (var n = Object(e), i = 1; i < arguments.length; i++) {
                var a = arguments[i];
                if (null !=
                    a) for (var r in a) Object.prototype.hasOwnProperty.call(a,
                    r) && (n[r] = a[r]);
            }
            return n;
        }, writable: !0, configurable: !0,
    }), e.prototype = window.Event.prototype, 'function' !=
    typeof window.CustomEvent &&
    (window.CustomEvent = e), Element.prototype.matches ||
    (Element.prototype.matches = Element.prototype.msMatchesSelector ||
        Element.prototype.webkitMatchesSelector), Element.prototype.closest ||
    (Element.prototype.closest = function (e) {
        var t = this;
        if (!document.documentElement.contains(t)) return null;
        do {
            if (t.matches(e)) return t;
            t = t.parentElement || t.parentNode;
        } while (null !== t && 1 === t.nodeType);
        return null;
    }), document.execCommand('AutoUrlDetect', !1, !1),
        /*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */
    'document' in self && ((!('classList' in document.createElement('_')) ||
        document.createElementNS && !('classList' in
            document.createElementNS('http://www.w3.org/2000/svg', 'g'))) &&
    function (e) {
        if ('Element' in e) {
            var t = 'classList', n = e.Element.prototype, i = Object,
                a = String.prototype.trim ||
                    function () {return this.replace(/^\s+|\s+$/g, '');},
                r = Array.prototype.indexOf || function (e) {
                    for (var t = 0, n = this.length; t < n; t++) if (t in
                        this && this[t] === e) return t;
                    return -1;
                }, o = function (
                e,
                t) {this.name = e, this.code = DOMException[e], this.message = t;},
                s = function (e, t) {
                    if ('' === t) throw new o('SYNTAX_ERR',
                        'The token must not be empty.');
                    if (/\s/.test(t)) throw new o('INVALID_CHARACTER_ERR',
                        'The token must not contain space characters.');
                    return r.call(e, t);
                }, l = function (e) {
                    for (var t = a.call(e.getAttribute('class') || ''), n = t
                        ? t.split(/\s+/)
                        : [], i = 0, r = n.length; i < r; i++) this.push(n[i]);
                    this._updateClassName = function () {
                        e.setAttribute('class', this.toString());
                    };
                }, c = l.prototype = [], u = function () {return new l(this);};
            if (o.prototype = Error.prototype, c.item = function (e) {
                return this[e] || null;
            }, c.contains = function (e) {
                return ~s(this, e + '');
            }, c.add = function () {
                var e, t = arguments, n = 0, i = t.length, a = !1;
                do {
                    e = t[n] + '', ~s(this, e) || (this.push(e), a = !0);
                } while (++n < i);
                a && this._updateClassName();
            }, c.remove = function () {
                var e, t, n = arguments, i = 0, a = n.length, r = !1;
                do {
                    for (e = n[i] + '', t = s(this, e); ~t;) this.splice(t,
                        1), r = !0, t = s(this, e);
                } while (++i < a);
                r && this._updateClassName();
            }, c.toggle = function (e, t) {
                var n = this.contains(e),
                    i = n ? !0 !== t && 'remove' : !1 !== t && 'add';
                return i && this[i](e), !0 === t || !1 === t ? t : !n;
            }, c.replace = function (e, t) {
                var n = s(e + '');
                ~n && (this.splice(n, 1, t), this._updateClassName());
            }, c.toString = function () {
                return this.join(' ');
            }, i.defineProperty) {
                var d = {
                    get: u,
                    enumerable: !0,
                    configurable: !0,
                };
                try {i.defineProperty(n, t, d);} catch (e) {
                    void 0 !== e.number && -2146823252 !== e.number ||
                    (d.enumerable = !1, i.defineProperty(n, t, d));
                }
            } else i.prototype.__defineGetter__ && n.__defineGetter__(t, u);
        }
    }(self), function () {
        var e = document.createElement('_');
        if (e.classList.add('c1', 'c2'), !e.classList.contains('c2')) {
            var t = function (e) {
                var t = DOMTokenList.prototype[e];
                DOMTokenList.prototype[e] = function (e) {
                    var n, i = arguments.length;
                    for (n = 0; n < i; n++) e = arguments[n], t.call(this, e);
                };
            };
            t('add'), t('remove');
        }
        if (e.classList.toggle('c3', !1), e.classList.contains('c3')) {
            var n = DOMTokenList.prototype.toggle;
            DOMTokenList.prototype.toggle = function (e, t) {
                return 1 in arguments && !this.contains(e) == !t ? t : n.call(
                    this, e);
            };
        }
        'replace' in document.createElement('_').classList ||
        (DOMTokenList.prototype.replace = function (e, t) {
            var n = this.toString().split(' '), i = n.indexOf(e + '');
            ~i && (n = n.slice(i), this.remove.apply(this, n), this.add(
                t), this.add.apply(this, n.slice(1)));
        }), e = null;
    }()), t = function () {
        function e (e) {
            var t = this.constructor;
            return this.then((function (n) {
                return t.resolve(e()).
                    then((function () {return n;}));
            }), (function (n) {
                return t.resolve(e()).
                    then((function () {return t.reject(n);}));
            }));
        }

        function t (e) {
            return new this((function (t, n) {
                if (!e || void 0 === e.length) return n(new TypeError(
                    typeof e + ' ' + e +
                    ' is not iterable(cannot read property Symbol(Symbol.iterator))'));
                var i = Array.prototype.slice.call(e);
                if (0 === i.length) return t([]);
                var a = i.length;

                function r (e, n) {
                    if (n && ('object' == typeof n || 'function' == typeof n)) {
                        var o = n.then;
                        if ('function' == typeof o) return void o.call(n,
                            (function (t) {r(e, t);}), (function (n) {
                                i[e] = {
                                    status: 'rejected',
                                    reason: n,
                                }, 0 == --a && t(i);
                            }));
                    }
                    i[e] = { status: 'fulfilled', value: n }, 0 == --a && t(i);
                }

                for (var o = 0; o < i.length; o++) r(o, i[o]);
            }));
        }

        var n = setTimeout;

        function i (e) {return Boolean(e && void 0 !== e.length);}

        function a () {}

        function r (e) {
            if (!(this instanceof r)) throw new TypeError(
                'Promises must be constructed via new');
            if ('function' != typeof e) throw new TypeError('not a function');
            this._state = 0, this._handled = !1, this._value = void 0, this._deferreds = [], d(
                e, this);
        }

        function o (e, t) {
            for (; 3 === e._state;) e = e._value;
            0 !== e._state ? (e._handled = !0, r._immediateFn((function () {
                var n = 1 === e._state
                    ? t.onFulfilled
                    : t.onRejected;
                if (null !== n) {
                    var i;
                    try {i = n(e._value);} catch (e) {
                        return void l(t.promise, e);
                    }
                    s(t.promise, i);
                } else (1 === e._state ? s : l)(t.promise, e._value);
            }))) : e._deferreds.push(t);
        }

        function s (e, t) {
            try {
                if (t === e) throw new TypeError(
                    'A promise cannot be resolved with itself.');
                if (t && ('object' == typeof t || 'function' == typeof t)) {
                    var n = t.then;
                    if (t instanceof
                        r) return e._state = 3, e._value = t, void c(e);
                    if ('function' == typeof n) return void d(
                        (i = n, a = t, function () {i.apply(a, arguments);}),
                        e);
                }
                e._state = 1, e._value = t, c(e);
            } catch (t) {l(e, t);}
            var i, a;
        }

        function l (e, t) {e._state = 2, e._value = t, c(e);}

        function c (e) {
            2 === e._state && 0 === e._deferreds.length && r._immediateFn(
                (function () {
                    e._handled || r._unhandledRejectionFn(e._value);
                }));
            for (var t = 0, n = e._deferreds.length; t < n; t++) o(e,
                e._deferreds[t]);
            e._deferreds = null;
        }

        function u (e, t, n) {
            this.onFulfilled = 'function' == typeof e
                ? e
                : null, this.onRejected = 'function' == typeof t
                ? t
                : null, this.promise = n;
        }

        function d (e, t) {
            var n = !1;
            try {
                e((function (e) {n || (n = !0, s(t, e));}),
                    (function (e) {n || (n = !0, l(t, e));}));
            } catch (e) {
                if (n) return;
                n = !0, l(t, e);
            }
        }

        r.prototype.catch = function (e) {
            return this.then(null, e);
        }, r.prototype.then = function (e, t) {
            var n = new this.constructor(a);
            return o(this, new u(e, t, n)), n;
        }, r.prototype.finally = e, r.all = function (e) {
            return new r((function (t, n) {
                if (!i(e)) return n(
                    new TypeError('Promise.all accepts an array'));
                var a = Array.prototype.slice.call(e);
                if (0 === a.length) return t([]);
                var r = a.length;

                function o (e, i) {
                    try {
                        if (i && ('object' == typeof i || 'function' ==
                            typeof i)) {
                            var s = i.then;
                            if ('function' == typeof s) return void s.call(i,
                                (function (t) {o(e, t);}), n);
                        }
                        a[e] = i, 0 == --r && t(a);
                    } catch (e) {n(e);}
                }

                for (var s = 0; s < a.length; s++) o(s, a[s]);
            }));
        }, r.allSettled = t, r.resolve = function (e) {
            return e && 'object' == typeof e && e.constructor === r ? e : new r(
                (function (t) {t(e);}));
        }, r.reject = function (e) {
            return new r((function (t, n) {n(e);}));
        }, r.race = function (e) {
            return new r((function (t, n) {
                if (!i(e)) return n(
                    new TypeError('Promise.race accepts an array'));
                for (var a = 0, o = e.length; a < o; a++) r.resolve(e[a]).
                    then(t, n);
            }));
        }, r._immediateFn = 'function' == typeof setImmediate &&
            function (e) {setImmediate(e);} || function (e) {
                n(e, 0);
            }, r._unhandledRejectionFn = function (e) {
            'undefined' != typeof console && console &&
            console.warn('Possible Unhandled Promise Rejection:', e);
        };
        var h = function () {
            if ('undefined' != typeof self) return self;
            if ('undefined' != typeof window) return window;
            if ('undefined' != typeof global) return global;
            throw new Error('unable to locate global object');
        }();
        'function' != typeof h.Promise
            ? h.Promise = r
            : h.Promise.prototype.finally ? h.Promise.allSettled ||
            (h.Promise.allSettled = t) : h.Promise.prototype.finally = e;
    }, 'object' == typeof exports && 'undefined' != typeof module
        ? t()
        : 'function' == typeof define && define.amd ? define(t) : t();
})), 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).Tagify = t();
}(this, (function () {
    'use strict';
    const e = (e, t, n, i) => (e = '' + e, t = '' + t, i &&
    (e = e.trim(), t = t.trim()), n ? e == t : e.toLowerCase() ==
        t.toLowerCase());

    function t (e) {
        var t = document.createElement('div');
        return e.replace(/\&#?[0-9a-z]+;/gi,
            (function (e) {return t.innerHTML = e, t.innerText;}));
    }

    function n (e, t) {
        for (t = t || 'previous'; e = e[t + "Sibling"];) if (3 ==
            e.nodeType) return e;
    }

    function i (e) {
        return e.replace(/&/g, '&amp;').
            replace(/</g, '&lt;').
            replace(/>/g, '&gt;').
            replace(/"/g, '&quot;').
            replace(/`|'/g, '&#039;');
    }

    function a (e) {return e instanceof Array;}

    function r (e) {
        var t = Object.prototype.toString.call(e).
            split(' ')[1].slice(0, -1);
        return e === Object(e) && 'Array' != t && 'Function' != t && 'RegExp' !=
            t && 'HTMLUnknownElement' != t;
    }

    function o (e, t, n) {
        function i (
            e, t) {
            for (var n in t) if (t.hasOwnProperty(n)) {
                if (r(t[n])) {
                    r(e[n]) ? i(e[n], t[n]) : e[n] = Object.assign({}, t[n]);
                    continue;
                }
                if (a(t[n])) {
                    e[n] = Object.assign([], t[n]);
                    continue;
                }
                e[n] = t[n];
            }
        }

        return e instanceof Object || (e = {}), i(e, t), n && i(e, n), e;
    }

    function s (e) {
        return String.prototype.normalize ? 'string' == typeof e
            ? e.normalize('NFD').replace(/[\u0300-\u036f]/g, '')
            : void 0 : e;
    }

    var l, c = () => /(?=.*chrome)(?=.*android)/i.test(navigator.userAgent),
        u = {
            init () {
                this.DOM.dropdown = this.parseTemplate('dropdown',
                    [this.settings]), this.DOM.dropdown.content = this.DOM.dropdown.querySelector(
                    this.settings.classNames.dropdownWrapperSelector);
            },
            show (t) {
                var n, i, a, o = this.settings,
                    s = 'mix' == o.mode && !o.enforceWhitelist,
                    l = !o.whitelist || !o.whitelist.length,
                    c = 'manual' == o.dropdown.position;
                if (t = void 0 === t ? this.state.inputText : t, (!l || s ||
                    o.templates.dropdownItemNoMatch) && !1 !==
                o.dropdown.enable && !this.state.isLoading) {
                    if (clearTimeout(
                        this.dropdownHide__bindEventsTimeout), this.suggestedListItems = this.dropdown.filterListItems.call(
                        this, t), t && !this.suggestedListItems.length &&
                    (this.trigger('dropdown:noMatch',
                        t), o.templates.dropdownItemNoMatch &&
                    (a = o.templates.dropdownItemNoMatch.call(this,
                        { value: t }))), !a) {
                        if (this.suggestedListItems.length) t && s &&
                        !this.state.editing.scope &&
                        !e(this.suggestedListItems[0].value, t) &&
                        this.suggestedListItems.unshift({ value: t }); else {
                            if (!t || !s ||
                                this.state.editing.scope) return this.input.autocomplete.suggest.call(
                                this), void this.dropdown.hide.call(this);
                            this.suggestedListItems = [{ value: t }];
                        }
                        i = '' + (r(n = this.suggestedListItems[0])
                            ? n.value
                            : n), o.autoComplete && i && 0 == i.indexOf(t) &&
                        this.input.autocomplete.suggest.call(this, n);
                    }
                    this.dropdown.fill.call(this,
                        a), o.dropdown.highlightFirst &&
                    this.dropdown.highlightOption.call(this,
                        this.DOM.dropdown.content.children[0]), this.state.dropdown.visible ||
                    setTimeout(this.dropdown.events.binding.bind(
                        this)), this.state.dropdown.visible = t ||
                        !0, this.state.dropdown.query = t, this.setStateSelection(), c ||
                    setTimeout((() => {
                        this.dropdown.position.call(
                            this), this.dropdown.render.call(this);
                    })), setTimeout((() => {
                        this.trigger('dropdown:show', this.DOM.dropdown);
                    }));
                }
            },
            hide (e) {
                var t = this.DOM, n = t.scope, i = t.dropdown,
                    a = 'manual' == this.settings.dropdown.position && !e;
                if (i && document.body.contains(i) &&
                    !a) return window.removeEventListener('resize',
                    this.dropdown.position), this.dropdown.events.binding.call(
                    this, !1), n.setAttribute('aria-expanded',
                    !1), i.parentNode.removeChild(i), setTimeout(
                    (() => {this.state.dropdown.visible = !1;}),
                    100), this.state.dropdown.query = this.state.ddItemData = this.state.ddItemElm = this.state.selection = null, this.state.tag &&
                this.state.tag.value.length &&
                (this.state.flaggedTags[this.state.tag.baseOffset] = this.state.tag), this.trigger(
                    'dropdown:hide', i), this;
            },
            render () {
                var e, t, n = ((t = this.DOM.dropdown.cloneNode(
                    !0)).style.cssText = 'position:fixed; top:-9999px; opacity:0', document.body.appendChild(
                    t), e = t.clientHeight, t.parentNode.removeChild(t), e),
                    i = this.settings;
                return this.DOM.scope.setAttribute('aria-expanded',
                    !0), document.body.contains(this.DOM.dropdown) ||
                (this.DOM.dropdown.classList.add(
                    i.classNames.dropdownInital), this.dropdown.position.call(
                    this, n), i.dropdown.appendTarget.appendChild(
                    this.DOM.dropdown), setTimeout(
                    (() => this.DOM.dropdown.classList.remove(
                        i.classNames.dropdownInital)))), this;
            },
            fill (e) {
                var t;
                e = 'string' == typeof e
                    ? e
                    : this.dropdown.createListHTML.call(this, e ||
                        this.suggestedListItems), this.DOM.dropdown.content.innerHTML = (t = e)
                    ? t.replace(/\>[\r\n ]+\</g, '><').
                        replace(/(<.*?>)|\s+/g, ((e, t) => t || ' '))
                    : '';
            },
            refilter (e) {
                e = e || this.state.dropdown.query ||
                    '', this.suggestedListItems = this.dropdown.filterListItems.call(
                    this, e), this.dropdown.fill.call(
                    this), this.suggestedListItems.length ||
                this.dropdown.hide.call(this), this.trigger('dropdown:updated',
                    this.DOM.dropdown);
            },
            position (e) {
                var t = this.settings.dropdown;
                if ('manual' != t.position) {
                    var n, i, a, r, o, s, l = this.DOM.dropdown,
                        c = t.placeAbove,
                        u = document.documentElement.clientHeight,
                        d = Math.max(document.documentElement.clientWidth || 0,
                            window.innerWidth || 0) > 480 ? t.position : 'all',
                        h = this.DOM['input' == d ? 'input' : 'scope'];
                    e = e || l.clientHeight, this.state.dropdown.visible &&
                    ('text' == d
                        ? (a = (n = this.getCaretGlobalPosition()).bottom, i = n.top, r = n.left, o = 'auto')
                        : (s = function (e) {
                            for (var t = 0, n = 0; e;) t += e.offsetLeft ||
                                0, n += e.offsetTop || 0, e = e.parentNode;
                            return { left: t, top: n };
                        }(this.settings.dropdown.appendTarget), i = (n = h.getBoundingClientRect()).top -
                            s.top, a = n.bottom - 1 - s.top, r = n.left -
                            s.left, o = n.width + 'px'), i = Math.floor(
                        i), a = Math.ceil(a), c = void 0 === c ? u - n.bottom <
                        e : c, l.style.cssText = 'left:' +
                        (r + window.pageXOffset) + 'px; width:' + o + ';' + (c
                            ? 'top: ' + (i + window.pageYOffset) + 'px'
                            : 'top: ' + (a + window.pageYOffset) +
                            'px'), l.setAttribute('placement',
                        c ? 'top' : 'bottom'), l.setAttribute('position', d));
                }
            },
            events: {
                binding (e = !0) {
                    var t = this.dropdown.events.callbacks,
                        n = this.listeners.dropdown = this.listeners.dropdown ||
                            {
                                position: this.dropdown.position.bind(this),
                                onKeyDown: t.onKeyDown.bind(this),
                                onMouseOver: t.onMouseOver.bind(this),
                                onMouseLeave: t.onMouseLeave.bind(this),
                                onClick: t.onClick.bind(this),
                                onScroll: t.onScroll.bind(this),
                            },
                        i = e ? 'addEventListener' : 'removeEventListener';
                    'manual' != this.settings.dropdown.position &&
                    (window[i]('resize', n.position), window[i]('keydown',
                        n.onKeyDown)), this.DOM.dropdown[i]('mouseover',
                        n.onMouseOver), this.DOM.dropdown[i]('mouseleave',
                        n.onMouseLeave), this.DOM.dropdown[i]('mousedown',
                        n.onClick), this.DOM.dropdown.content[i]('scroll',
                        n.onScroll);
                }, callbacks: {
                    onKeyDown (e) {
                        var t = this.DOM.dropdown.querySelector(
                            this.settings.classNames.dropdownItemActiveSelector),
                            n = this.dropdown.getSuggestionDataByNode.call(this,
                                t);
                        switch (e.key) {
                            case'ArrowDown':
                            case'ArrowUp':
                            case'Down':
                            case'Up':
                                var i;
                                e.preventDefault(), t &&
                                (t = t[('ArrowUp' == e.key || 'Up' == e.key
                                    ? 'previous'
                                    : 'next') + 'ElementSibling']), t ||
                                (i = this.DOM.dropdown.content.children, t = i['ArrowUp' ==
                                e.key || 'Up' == e.key
                                    ? i.length - 1
                                    : 0]), n = this.dropdown.getSuggestionDataByNode.call(
                                    this,
                                    t), this.dropdown.highlightOption.call(this,
                                    t, !0);
                                break;
                            case'Escape':
                            case'Esc':
                                this.dropdown.hide.call(this);
                                break;
                            case'ArrowRight':
                                if (this.state.actions.ArrowLeft) return;
                            case'Tab':
                                if ('mix' != this.settings.mode && t &&
                                    !this.settings.autoComplete.rightKey &&
                                    !this.state.editing) {
                                    e.preventDefault();
                                    var a = this.dropdown.getMappedValue.call(
                                        this, n);
                                    return this.input.autocomplete.set.call(
                                        this, a), !1;
                                }
                                return !0;
                            case'Enter':
                                e.preventDefault(), this.settings.hooks.suggestionClick(
                                    e, {
                                        tagify: this,
                                        tagData: n,
                                        suggestionElm: t,
                                    }).
                                    then((() => {
                                        t
                                            ? this.dropdown.selectOption.call(
                                            this, t)
                                            : this.dropdown.hide.call(this);
                                    })).
                                    catch((e => e));
                                break;
                            case'Backspace': {
                                if ('mix' == this.settings.mode ||
                                    this.state.editing.scope) return;
                                let e = this.state.inputText.trim();
                                '' != e && 8203 != e.charCodeAt(0) ||
                                (!0 === this.settings.backspace
                                    ? this.removeTags()
                                    : 'edit' == this.settings.backspace &&
                                    setTimeout(this.editTag.bind(this), 0));
                            }
                        }
                    },
                    onMouseOver (e) {
                        var t = e.target.closest(
                            this.settings.classNames.dropdownItemSelector);
                        t && this.dropdown.highlightOption.call(this, t);
                    },
                    onMouseLeave (e) {
                        this.dropdown.highlightOption.call(this);
                    },
                    onClick (e) {
                        if (0 == e.button && e.target != this.DOM.dropdown &&
                            e.target != this.DOM.dropdown.content) {
                            var t = e.target.closest(
                                this.settings.classNames.dropdownItemSelector),
                                n = this.dropdown.getSuggestionDataByNode.call(
                                    this, t);
                            this.state.actions.selectOption = !0, setTimeout(
                                (() => this.state.actions.selectOption = !1),
                                50), this.settings.hooks.suggestionClick(e,
                                { tagify: this, tagData: n, suggestionElm: t }).
                                then((() => {
                                    t
                                        ? this.dropdown.selectOption.call(this,
                                        t)
                                        : this.dropdown.hide.call(this);
                                })).
                                catch((e => e));
                        }
                    },
                    onScroll (e) {
                        var t = e.target, n = t.scrollTop /
                            (t.scrollHeight - t.parentNode.clientHeight) * 100;
                        this.trigger('dropdown:scroll',
                            { percentage: Math.round(n) });
                    },
                },
            },
            getSuggestionDataByNode (e) {
                var t = e ? +e.getAttribute('tagifySuggestionIdx') : -1;
                return this.suggestedListItems[t] || null;
            },
            highlightOption (e, t) {
                var n, i = this.settings.classNames.dropdownItemActive;
                if (this.state.ddItemElm &&
                (this.state.ddItemElm.classList.remove(
                    i), this.state.ddItemElm.removeAttribute(
                    'aria-selected')), !e) return this.state.ddItemData = null, this.state.ddItemElm = null, void this.input.autocomplete.suggest.call(
                    this);
                n = this.suggestedListItems[this.getNodeIndex(
                    e)], this.state.ddItemData = n, this.state.ddItemElm = e, e.classList.add(
                    i), e.setAttribute('aria-selected', !0), t &&
                (e.parentNode.scrollTop = e.clientHeight + e.offsetTop -
                    e.parentNode.clientHeight), this.settings.autoComplete &&
                (this.input.autocomplete.suggest.call(this,
                    n), this.dropdown.position.call(this));
            },
            selectOption (e) {
                var t = this.settings.dropdown, n = t.clearOnSelect,
                    i = t.closeOnSelect;
                if (!e) return this.addTags(this.state.inputText,
                    !0), void (i && this.dropdown.hide.call(this));
                var a = e.getAttribute('tagifySuggestionIdx'),
                    r = this.suggestedListItems[+a];
                if (this.trigger('dropdown:select', { data: r, elm: e }), a &&
                r) {
                    if (this.state.editing ? this.onEditTagDone(null,
                        o({ __isValid: !0 }, r)) : this['mix' ==
                    this.settings.mode
                        ? 'addMixTags'
                        : 'addTags']([r], n), setTimeout((() => {
                        this.DOM.input.focus(), this.toggleFocusClass(!0);
                    })), i) return this.dropdown.hide.call(this);
                    this.dropdown.refilter.call(this);
                } else this.dropdown.hide.call(this);
            },
            selectAll () {
                return this.suggestedListItems.length = 0, this.dropdown.hide.call(
                    this), this.addTags(
                    this.dropdown.filterListItems.call(this, ''), !0), this;
            },
            filterListItems (e, t) {
                var n, i, a, o, l, c = this.settings, u = c.dropdown,
                    d = (t = t || {}, []), h = c.whitelist,
                    f = u.maxItems || 1 / 0, p = u.searchKeys, m = 0;
                if (!e || !p.length || 'select' == c.mode) return (c.duplicates
                    ? h
                    : h.filter(
                        (e => !this.isTagDuplicate(r(e) ? e.value : e)))).slice(
                    0, f);

                function g (e, t) {
                    return t.toLowerCase().
                        split(' ').
                        every((t => e.includes(t.toLowerCase())));
                }

                for (l = u.caseSensitive ? '' + e : ('' + e).toLowerCase(); m <
                h.length; m++) {
                    n = h[m] instanceof Object
                        ? h[m]
                        : { value: h[m] };
                    let e = Object.keys(n).some((e => p.includes(e)))
                        ? p
                        : ['value'];
                    if (u.fuzzySearch && !t.exact ? (a = e.reduce(
                        ((e, t) => e + ' ' + (n[t] || '')), '').
                        toLowerCase(), u.accentedSearch &&
                    (a = s(a), l = s(l)), i = g(a, l)) : i = e.some((e => {
                        var i = '' + (n[e] || '');
                        return u.accentedSearch &&
                        (i = s(i), l = s(l)), u.caseSensitive ||
                        (i = i.toLowerCase()), t.exact ? i == l : 0 ==
                            i.indexOf(l);
                    })), o = !c.duplicates &&
                        this.isTagDuplicate(r(n) ? n.value : n), i && !o &&
                    f-- && d.push(n), 0 == f) break;
                }
                return d;
            },
            getMappedValue (e) {
                var t = this.settings.dropdown.mapValueTo;
                return t
                    ? 'function' == typeof t ? t(e) : e[t] || e.value
                    : e.value;
            },
            createListHTML (e) {
                return o([], e).
                    map(((e, t) => {
                        'string' != typeof e && 'number' != typeof e ||
                        (e = { value: e });
                        var n = this.dropdown.getMappedValue.call(this, e);
                        e.value = n && 'string' == typeof n ? i(n) : n;
                        var a = this.settings.templates.dropdownItem.call(this,
                            e);
                        return a.replace(
                            /\s*tagifySuggestionIdx=(["'])(.*?)\1/gim, '').
                            replace('>', ` tagifySuggestionIdx="${t}">`);
                    })).
                    join('');
            },
        }, d = {
            delimiters: ',',
            pattern: null,
            tagTextProp: 'value',
            maxTags: 1 / 0,
            callbacks: {},
            addTagOnBlur: !0,
            duplicates: !1,
            whitelist: [],
            blacklist: [],
            enforceWhitelist: !1,
            keepInvalidTags: !1,
            mixTagsAllowedAfter: /,|\.|\:|\s/,
            mixTagsInterpolator: ['[[', ']]'],
            backspace: !0,
            skipInvalid: !1,
            editTags: { clicks: 2, keepInvalid: !0 },
            transformTag: () => {},
            trim: !0,
            mixMode: { insertAfterTag: ' ' },
            autoComplete: { enabled: !0, rightKey: !1 },
            classNames: {
                namespace: 'tagify',
                mixMode: 'tagify--mix',
                selectMode: 'tagify--select',
                input: 'tagify__input',
                focus: 'tagify--focus',
                tag: 'tagify__tag',
                tagNoAnimation: 'tagify--noAnim',
                tagInvalid: 'tagify--invalid',
                tagNotAllowed: 'tagify--notAllowed',
                inputInvalid: 'tagify__input--invalid',
                tagX: 'tagify__tag__removeBtn',
                tagText: 'tagify__tag-text',
                dropdown: 'tagify__dropdown',
                dropdownWrapper: 'tagify__dropdown__wrapper',
                dropdownItem: 'tagify__dropdown__item',
                dropdownItemActive: 'tagify__dropdown__item--active',
                dropdownInital: 'tagify__dropdown--initial',
                scopeLoading: 'tagify--loading',
                tagLoading: 'tagify__tag--loading',
                tagEditing: 'tagify__tag--editable',
                tagFlash: 'tagify__tag--flash',
                tagHide: 'tagify__tag--hide',
                hasMaxTags: 'tagify--hasMaxTags',
                hasNoTags: 'tagify--noTags',
                empty: 'tagify--empty',
            },
            dropdown: {
                classname: '',
                enabled: 2,
                maxItems: 10,
                searchKeys: ['value', 'searchBy'],
                fuzzySearch: !0,
                caseSensitive: !1,
                accentedSearch: !0,
                highlightFirst: !1,
                closeOnSelect: !0,
                clearOnSelect: !0,
                position: 'all',
                appendTarget: null,
            },
            hooks: {
                beforeRemoveTag: () => Promise.resolve(),
                suggestionClick: () => Promise.resolve(),
            },
        }, h = {
            wrapper: (e, t) => `<tags class="${t.classNames.namespace} ${t.mode
                ? `${t.classNames[t.mode + 'Mode']}`
                : ''} ${e.className}"\n                    ${t.readonly
                ? 'readonly'
                : ''}\n                    ${t.required
                ? 'required'
                : ''}\n                    tabIndex="-1">\n            <span ${t.readonly &&
            'mix' == t.mode
                ? ''
                : 'contenteditable'} data-placeholder="${t.placeholder ||
            '&#8203;'}" aria-placeholder="${t.placeholder ||
            ''}"\n                class="${t.classNames.input}"\n                role="textbox"\n                aria-autocomplete="both"\n                aria-multiline="${'mix' ==
            t.mode}"></span>\n        </tags>`,
            tag (e) {
                return `<tag title="${e.title ||
                e.value}"\n                    contenteditable='false'\n                    spellcheck='false'\n                    tabIndex="-1"\n                    class="${this.settings.classNames.tag} ${e.class
                    ? e.class
                    : ''}"\n                    ${this.getAttributes(
                    e)}>\n            <x title='' class="${this.settings.classNames.tagX}" role='button' aria-label='remove tag'></x>\n            <div>\n                <span class="${this.settings.classNames.tagText}">${e[this.settings.tagTextProp] ||
                e.value}</span>\n            </div>\n        </tag>`;
            },
            dropdown (e) {
                var t = e.dropdown, n = 'manual' == t.position,
                    i = `${e.classNames.dropdown}`;
                return `<div class="${n
                    ? ''
                    : i} ${t.classname}" role="listbox" aria-labelledby="dropdown">\n                    <div class="${e.classNames.dropdownWrapper}"></div>\n                </div>`;
            },
            dropdownItem (e) {
                return `<div ${this.getAttributes(
                    e)}\n                    class='${this.settings.classNames.dropdownItem} ${e.class
                    ? e.class
                    : ''}'\n                    tabindex="0"\n                    role="option">${e.value}</div>`;
            },
            dropdownItemNoMatch: null,
        }, f = {
            customBinding () {
                this.customEventsList.forEach(
                    (e => {this.on(e, this.settings.callbacks[e]);}));
            },
            binding (e = !0) {
                var t, n = this.events.callbacks,
                    i = e ? 'addEventListener' : 'removeEventListener';
                if (!this.state.mainEvents ||
                    !e) for (var a in this.state.mainEvents = e, e &&
                !this.listeners.main &&
                (this.DOM.input.addEventListener(this.isIE ? 'keydown' : 'input',
                    n[this.isIE ? 'onInputIE' : 'onInput'].bind(
                        this)), this.settings.isJQueryPlugin &&
                jQuery(this.DOM.originalInput).
                    on('tagify.removeAllTags', this.removeAllTags.bind(
                        this))), t = this.listeners.main = this.listeners.main || {
                    focus: ['input', n.onFocusBlur.bind(this)],
                    blur: ['input', n.onFocusBlur.bind(this)],
                    keydown: ['input', n.onKeydown.bind(this)],
                    click: ['scope', n.onClickScope.bind(this)],
                    dblclick: ['scope', n.onDoubleClickScope.bind(this)],
                    paste: ['input', n.onPaste.bind(this)],
                }) ('blur' != a || e) && this.DOM[t[a][0]][i](a, t[a][1]);
            },
            callbacks: {
                onFocusBlur (e) {
                    var t = e.target ? this.trim(e.target.textContent) : '',
                        n = this.settings, i = e.type, a = n.dropdown.enabled >= 0,
                        r = { relatedTarget: e.relatedTarget },
                        o = this.state.actions.selectOption &&
                            (a || !n.dropdown.closeOnSelect),
                        s = this.state.actions.addNew && a;
                    if ('blur' == i) {
                        if (e.relatedTarget ===
                            this.DOM.scope) return this.dropdown.hide.call(
                            this), void this.DOM.input.focus();
                        this.postUpdate(), this.triggerChangeEvent();
                    }
                    if (!o && !s) if (this.state.hasFocus = 'focus' == i &&
                        +new Date, this.toggleFocusClass(
                        this.state.hasFocus), 'mix' != n.mode) {
                        if ('focus' == i) return this.trigger('focus',
                            r), void (0 === n.dropdown.enabled &&
                            this.dropdown.show.call(this));
                        'blur' == i &&
                        (this.trigger('blur', r), this.loading(!1), ('select' ==
                        this.settings.mode ? !this.value.length ||
                            this.value[0].value != t : t &&
                            !this.state.actions.selectOption && n.addTagOnBlur) &&
                        this.addTags(t, !0)), this.DOM.input.removeAttribute(
                            'style'), this.dropdown.hide.call(this);
                    } else 'focus' == i ? this.trigger('focus', r) : 'blur' ==
                        e.type && (this.trigger('blur', r), this.loading(
                            !1), this.dropdown.hide.call(
                            this), this.state.dropdown.visible = void 0, this.setStateSelection());
                },
                onKeydown (e) {
                    var i = this.trim(e.target.textContent);
                    if (this.trigger('keydown',
                        { originalEvent: this.cloneEvent(e) }), 'mix' ==
                    this.settings.mode) {
                        switch (e.key) {
                            case'Left':
                            case'ArrowLeft':
                                this.state.actions.ArrowLeft = !0;
                                break;
                            case'Delete':
                            case'Backspace':
                                if (this.state.editing) return;
                                var a, r, o = document.getSelection(),
                                    s = 'Delete' == e.key && o.anchorOffset ==
                                        (o.anchorNode.length || 0),
                                    u = 1 == o.anchorNode.nodeType ||
                                        !o.anchorOffset &&
                                        o.anchorNode.previousElementSibling,
                                    d = t(this.DOM.input.innerHTML),
                                    h = this.getTagElms();
                                if (c() && u) return r = n(u), u.hasAttribute(
                                    'readonly') ||
                                u.remove(), this.DOM.input.focus(), void setTimeout(
                                    (() => {
                                        this.placeCaretAfterNode(
                                            r), this.DOM.input.click();
                                    }));
                                if ('BR' == o.anchorNode.nodeName) return;
                                if ((s || u) && 1 == o.anchorNode.nodeType
                                    ? a = 0 == o.anchorOffset
                                        ? s ? h[0] : null
                                        : h[o.anchorOffset - 1]
                                    : s ? a = o.anchorNode.nextElementSibling : u &&
                                        (a = u), 3 == o.anchorNode.nodeType &&
                                !o.anchorNode.nodeValue &&
                                o.anchorNode.previousElementSibling &&
                                e.preventDefault(), (u || s) &&
                                !this.settings.backspace) return void e.preventDefault();
                                if ('Range' != o.type && !o.anchorOffset &&
                                    o.anchorNode == this.DOM.input && 'Delete' !=
                                    e.key) return void e.preventDefault();
                                if ('Range' != o.type && a && a.hasAttribute(
                                    'readonly')) return void this.placeCaretAfterNode(
                                    n(a));
                                clearTimeout(l), l = setTimeout((() => {
                                    console.log(111);
                                    var e = document.getSelection(),
                                        n = t(this.DOM.input.innerHTML),
                                        i = e.anchorNode.previousElementSibling;
                                    if (!c() && n.length >= d.length && i &&
                                        !i.hasAttribute('readonly') &&
                                        (this.removeTags(
                                            i), this.fixFirefoxLastTagNoCaret(), 2 ==
                                        this.DOM.input.children.length && 'BR' ==
                                        this.DOM.input.children[1].tagName)) return this.DOM.input.innerHTML = '', this.value.length = 0, !0;
                                    this.value = [].map.call(h, ((e, t) => {
                                        var n = this.tagData(e);
                                        if (e.parentNode || n.readonly) return n;
                                        this.trigger('remove',
                                            { tag: e, index: t, data: n });
                                    })).filter((e => e));
                                }), 20);
                        }
                        return !0;
                    }
                    switch (e.key) {
                        case'Backspace':
                            this.state.dropdown.visible && 'manual' !=
                            this.settings.dropdown.position || '' != i && 8203 !=
                            i.charCodeAt(0) || (!0 === this.settings.backspace
                                ? this.removeTags()
                                : 'edit' == this.settings.backspace &&
                                setTimeout(this.editTag.bind(this), 0));
                            break;
                        case'Esc':
                        case'Escape':
                            if (this.state.dropdown.visible) return;
                            e.target.blur();
                            break;
                        case'Down':
                        case'ArrowDown':
                            this.state.dropdown.visible ||
                            this.dropdown.show.call(this);
                            break;
                        case'ArrowRight': {
                            let e = this.state.inputSuggestion ||
                                this.state.ddItemData;
                            if (e &&
                                this.settings.autoComplete.rightKey) return void this.addTags(
                                [e], !0);
                            break;
                        }
                        case'Tab': {
                            let t = 'select' == this.settings.mode;
                            if (!i || t) return !0;
                            e.preventDefault();
                        }
                        case'Enter':
                            if (this.state.dropdown.visible || 229 ==
                                e.keyCode) return;
                            e.preventDefault(), setTimeout((() => {
                                this.state.actions.selectOption ||
                                this.addTags(i, !0);
                            }));
                    }
                },
                onInput (e) {
                    if ('mix' ==
                        this.settings.mode) return this.events.callbacks.onMixTagsInput.call(
                        this, e);
                    var t = this.input.normalize.call(this),
                        n = t.length >= this.settings.dropdown.enabled,
                        i = { value: t, inputElm: this.DOM.input };
                    i.isValid = this.validateTag({ value: t }), this.trigger(
                        'input', i), this.state.inputText != t &&
                    (this.input.set.call(this, t, !1), -1 !=
                    t.search(this.settings.delimiters)
                        ? this.addTags(t) && this.input.set.call(this)
                        : this.settings.dropdown.enabled >= 0 &&
                        this.dropdown[n ? 'show' : 'hide'].call(this, t));
                },
                onMixTagsInput (e) {
                    var t, n, i, a, r, s, l, u, d = this.settings,
                        h = this.value.length, f = this.getTagElms(),
                        p = document.createDocumentFragment(),
                        m = window.getSelection().getRangeAt(0),
                        g = [].map.call(f, (e => this.tagData(e).value));
                    if ('deleteContentBackward' == e.inputType && c() &&
                    this.events.callbacks.onKeydown.call(this,
                        { target: e.target, key: 'Backspace' }), this.value.slice().
                        forEach((e => {
                            e.readonly && !g.includes(e.value) &&
                            p.appendChild(this.createTagElem(e));
                        })), p.childNodes.length &&
                    (m.insertNode(p), this.setRangeAtStartEnd(!1,
                        p.lastChild)), f.length !=
                    h) return this.value = [].map.call(this.getTagElms(),
                        (e => this.tagData(e))), void this.update(
                        { withoutChangeEvent: !0 });
                    if (this.hasMaxTags()) return !0;
                    if (window.getSelection &&
                        (s = window.getSelection()).rangeCount > 0 && 3 ==
                        s.anchorNode.nodeType) {
                        if ((m = s.getRangeAt(0).cloneRange()).collapse(
                            !0), m.setStart(s.focusNode, 0), i = (t = m.toString().
                                slice(0, m.endOffset)).split(d.pattern).length -
                            1, (n = t.match(d.pattern)) && (a = t.slice(
                            t.lastIndexOf(n[n.length - 1]))), a) {
                            if (this.state.actions.ArrowLeft = !1, this.state.tag = {
                                prefix: a.match(d.pattern)[0],
                                value: a.replace(d.pattern, ''),
                            }, this.state.tag.baseOffset = s.baseOffset -
                                this.state.tag.value.length, u = this.state.tag.value.match(
                                d.delimiters)) return this.state.tag.value = this.state.tag.value.replace(
                                d.delimiters,
                                ''), this.state.tag.delimiters = u[0], this.addTags(
                                this.state.tag.value,
                                d.dropdown.clearOnSelect), void this.dropdown.hide.call(
                                this);
                            r = this.state.tag.value.length >= d.dropdown.enabled;
                            try {
                                l = (l = this.state.flaggedTags[this.state.tag.baseOffset]).prefix ==
                                    this.state.tag.prefix && l.value[0] ==
                                    this.state.tag.value[0], this.state.flaggedTags[this.state.tag.baseOffset] &&
                                !this.state.tag.value &&
                                delete this.state.flaggedTags[this.state.tag.baseOffset];
                            } catch (e) {}
                            (l || i < this.state.mixMode.matchedPatternCount) &&
                            (r = !1);
                        } else this.state.flaggedTags = {};
                        this.state.mixMode.matchedPatternCount = i;
                    }
                    setTimeout((() => {
                        this.update({ withoutChangeEvent: !0 }), this.trigger(
                            'input', o({}, this.state.tag,
                                { textContent: this.DOM.input.textContent })), this.state.tag &&
                        this.dropdown[r ? 'show' : 'hide'].call(this,
                            this.state.tag.value);
                    }), 10);
                },
                onInputIE (e) {
                    var t = this;
                    setTimeout(
                        (function () {t.events.callbacks.onInput.call(t, e);}));
                },
                onClickScope (e) {
                    var t = this.settings,
                        n = e.target.closest('.' + t.classNames.tag),
                        i = +new Date - this.state.hasFocus;
                    if (e.target != this.DOM.scope) {
                        if (!e.target.classList.contains(
                            t.classNames.tagX)) return n
                            ? (this.trigger('click', {
                                tag: n,
                                index: this.getNodeIndex(n),
                                data: this.tagData(n),
                                originalEvent: this.cloneEvent(e),
                            }), void (1 !== t.editTags && 1 !== t.editTags.clicks ||
                                this.events.callbacks.onDoubleClickScope.call(this,
                                    e)))
                            : void (e.target == this.DOM.input &&
                            ('mix' == t.mode && this.fixFirefoxLastTagNoCaret(), i >
                            500) ? this.state.dropdown.visible
                                ? this.dropdown.hide.call(this)
                                : 0 === t.dropdown.enabled && 'mix' != t.mode &&
                                this.dropdown.show.call(this) : 'select' ==
                                t.mode && !this.state.dropdown.visible &&
                                this.dropdown.show.call(this));
                        this.removeTags(e.target.parentNode);
                    } else this.state.hasFocus || this.DOM.input.focus();
                },
                onPaste (e) {
                    var t;
                    e.preventDefault(), this.settings.readonly ||
                    (t = (e.clipboardData || window.clipboardData).getData(
                        'Text'), this.injectAtCaret(t,
                        window.getSelection().getRangeAt(0)), 'mix' !=
                    this.settings.mode &&
                    this.addTags(this.DOM.input.textContent, !0));
                },
                onEditTagInput (e, t) {
                    var n = e.closest('.' + this.settings.classNames.tag),
                        i = this.getNodeIndex(n), a = this.tagData(n),
                        r = this.input.normalize.call(this, e),
                        s = n.innerHTML != n.__tagifyTagData.__originalHTML,
                        l = this.validateTag({ [this.settings.tagTextProp]: r });
                    s || !0 !== e.originalIsValid || (l = !0), n.classList.toggle(
                        this.settings.classNames.tagInvalid,
                        !0 !== l), a.__isValid = l, n.title = !0 === l ? a.title ||
                        a.value : l, r.length >= this.settings.dropdown.enabled &&
                    (this.state.editing &&
                    (this.state.editing.value = r), this.dropdown.show.call(this,
                        r)), this.trigger('edit:input', {
                        tag: n,
                        index: i,
                        data: o({}, this.value[i], { newValue: r }),
                        originalEvent: this.cloneEvent(t),
                    });
                },
                onEditTagFocus (e) {
                    this.state.editing = {
                        scope: e,
                        input: e.querySelector('[contenteditable]'),
                    };
                },
                onEditTagBlur (e) {
                    if (this.state.hasFocus ||
                    this.toggleFocusClass(), this.DOM.scope.contains(e)) {
                        var t, n = this.settings,
                            i = e.closest('.' + n.classNames.tag),
                            a = this.input.normalize.call(this, e),
                            r = this.tagData(i).__originalData,
                            s = i.innerHTML != i.__tagifyTagData.__originalHTML,
                            l = this.validateTag({ [n.tagTextProp]: a });
                        if (a) if (s) {
                            if (t = this.getWhitelistItem(a) || o({}, r, {
                                [n.tagTextProp]: a,
                                value: a,
                            }), n.transformTag.call(this, t, r), !0 !==
                            (l = this.validateTag(
                                { [n.tagTextProp]: t[n.tagTextProp] }))) {
                                if (this.trigger('invalid', {
                                    data: t,
                                    tag: i,
                                    message: l,
                                }), n.editTags.keepInvalid) return;
                                n.keepInvalidTags ? t.__isValid = l : t = r;
                            }
                            this.onEditTagDone(i, t);
                        } else this.onEditTagDone(i, r); else this.onEditTagDone(i);
                    }
                },
                onEditTagkeydown (e, t) {
                    switch (this.trigger('edit:keydown',
                        { originalEvent: this.cloneEvent(e) }), e.key) {
                        case'Esc':
                        case'Escape':
                            t.innerHTML = t.__tagifyTagData.__originalHTML;
                        case'Enter':
                        case'Tab':
                            e.preventDefault(), e.target.blur();
                    }
                },
                onDoubleClickScope (e) {
                    var t, n,
                        i = e.target.closest('.' + this.settings.classNames.tag),
                        a = this.settings;
                    i && (t = i.classList.contains(
                        this.settings.classNames.tagEditing), n = i.hasAttribute(
                        'readonly'), 'select' == a.mode || a.readonly || t || n ||
                    !this.settings.editTags ||
                    this.editTag(i), this.toggleFocusClass(!0), this.trigger(
                        'dblclick', {
                            tag: i,
                            index: this.getNodeIndex(i),
                            data: this.tagData(i),
                        }));
                },
            },
        };

    function p (e, t) {
        return e ? e.previousElementSibling &&
        e.previousElementSibling.classList.contains('tagify') ? (console.warn(
            'Tagify: ', 'input element is already Tagified', e), this) : (o(
            this, function (e) {
                var t = document.createTextNode('');

                function n (e, n, i) {
                    i && n.split(/\s+/g).
                        forEach((n => t[e + 'EventListener'].call(t, n, i)));
                }

                return {
                    off (e, t) {return n('remove', e, t), this;},
                    on (e, t) {
                        return t && 'function' == typeof t &&
                        n('add', e, t), this;
                    },
                    trigger (n, i, a) {
                        var r;
                        if (a = a ||
                            { cloneData: !0 }, n) if (e.settings.isJQueryPlugin) 'remove' ==
                        n && (n = 'removeTag'), jQuery(e.DOM.originalInput).
                            triggerHandler(n, [i]); else {
                            try {
                                var s = 'object' == typeof i
                                    ? i
                                    : { value: i };
                                if ((s = a.cloneData
                                    ? o({}, s)
                                    : s).tagify = this, i instanceof
                                Object) for (var l in i) i[l] instanceof
                                HTMLElement && (s[l] = i[l]);
                                r = new CustomEvent(n, { detail: s });
                            } catch (e) {console.warn(e);}
                            t.dispatchEvent(r);
                        }
                    },
                };
            }(this)), this.isFirefox = 'undefined' !=
            typeof InstallTrigger, this.isIE = window.document.documentMode, this.applySettings(
            e, t || {}), this.state = {
            inputText: '',
            editing: !1,
            actions: {},
            mixMode: {},
            dropdown: {},
            flaggedTags: {},
        }, this.value = [], this.listeners = {}, this.DOM = {}, this.build(
            e), this.getCSSVars(), this.loadOriginalValues(), this.events.customBinding.call(
            this), this.events.binding.call(this), void (e.autofocus &&
            this.DOM.input.focus())) : (console.warn('Tagify: ',
            'input element not found', e), this);
    }

    return p.prototype = {
        dropdown: u,
        TEXTS: {
            empty: 'empty',
            exceed: 'number of tags exceeded',
            pattern: 'pattern mismatch',
            duplicate: 'already exists',
            notAllowed: 'not allowed',
        },
        customEventsList: [
            'change',
            'add',
            'remove',
            'invalid',
            'input',
            'click',
            'keydown',
            'focus',
            'blur',
            'edit:input',
            'edit:beforeUpdate',
            'edit:updated',
            'edit:start',
            'edit:keydown',
            'dropdown:show',
            'dropdown:hide',
            'dropdown:select',
            'dropdown:updated',
            'dropdown:noMatch'],
        trim (e) {
            return this.settings.trim && e && 'string' == typeof e
                ? e.trim()
                : e;
        },
        parseHTML: function (e) {
            return (new DOMParser).parseFromString(e.trim(),
                'text/html').body.firstElementChild;
        },
        templates: h,
        parseTemplate (e, t) {
            return e = this.settings.templates[e] || e, this.parseHTML(
                e.apply(this, t));
        },
        applySettings (e, t) {
            d.templates = this.templates;
            var n = this.settings = o({}, d, t);
            n.readonly = e.hasAttribute(
                'readonly'), n.placeholder = e.getAttribute('placeholder') ||
                n.placeholder || '', n.required = e.hasAttribute('required');
            for (let e in n.classNames) Object.defineProperty(n.classNames,
                e + 'Selector',
                { get () {return '.' + this[e].split(' ').join('.');} });
            if (this.isIE && (n.autoComplete = !1), [
                'whitelist',
                'blacklist'].forEach((t => {
                var i = e.getAttribute('data-' + t);
                i && (i = i.split(n.delimiters)) instanceof Array && (n[t] = i);
            })), 'autoComplete' in t && !r(t.autoComplete) &&
            (n.autoComplete = d.autoComplete, n.autoComplete.enabled = t.autoComplete), 'mix' ==
            n.mode &&
            (n.autoComplete.rightKey = !0, n.delimiters = t.delimiters ||
                null, n.tagTextProp &&
            !n.dropdown.searchKeys.includes(n.tagTextProp) &&
            n.dropdown.searchKeys.push(n.tagTextProp)), e.pattern) try {
                n.pattern = new RegExp(e.pattern);
            } catch (e) {}
            if (this.settings.delimiters) try {
                n.delimiters = new RegExp(this.settings.delimiters, 'g');
            } catch (e) {}
            'select' == n.mode &&
            (n.dropdown.enabled = 0), n.dropdown.appendTarget = t.dropdown &&
            t.dropdown.appendTarget ? t.dropdown.appendTarget : document.body;
        },
        getAttributes (e) {
            if ('[object Object]' !=
                Object.prototype.toString.call(e)) return '';
            var t, n, i = Object.keys(e), a = '';
            for (n = i.length; n--;) 'class' != (t = i[n]) &&
            e.hasOwnProperty(t) && void 0 !== e[t] &&
            (a += ' ' + t + (void 0 !== e[t] ? `="${e[t]}"` : ''));
            return a;
        },
        setStateSelection () {
            var e = window.getSelection(), t = {
                anchorOffset: e.anchorOffset,
                anchorNode: e.anchorNode,
                range: e.getRangeAt && e.rangeCount && e.getRangeAt(0),
            };
            return this.state.selection = t, t;
        },
        getCaretGlobalPosition () {
            const e = document.getSelection();
            if (e.rangeCount) {
                const t = e.getRangeAt(0), n = t.startContainer,
                    i = t.startOffset;
                let a, r;
                if (i > 0) return r = document.createRange(), r.setStart(n,
                    i - 1), r.setEnd(n, i), a = r.getBoundingClientRect(), {
                    left: a.right,
                    top: a.top,
                    bottom: a.bottom,
                };
                if (n.getBoundingClientRect) return n.getBoundingClientRect();
            }
            return { left: -9999, top: -9999 };
        },
        getCSSVars () {
            var e = getComputedStyle(this.DOM.scope, null);
            this.CSSVars = {
                tagHideTransition: (({
                                         value: e,
                                         unit: t,
                                     }) => 's' == t ? 1e3 * e : e)(
                    function (e) {
                        if (!e) return {};
                        var t = (e = e.trim().split(' ')[0]).split(/\d+/g).
                            filter((e => e)).
                            pop().
                            trim();
                        return {
                            value: +e.split(t).filter((e => e))[0].trim(),
                            unit: t,
                        };
                    }(('tag-hide-transition', e.getPropertyValue(
                        '--tag-hide-transition')))),
            };
        },
        build (e) {
            var t = this.DOM;
            this.settings.mixMode.integrated
                ? (t.originalInput = null, t.scope = e, t.input = e)
                : (t.originalInput = e, t.scope = this.parseTemplate('wrapper',
                [e, this.settings]), t.input = t.scope.querySelector(
                this.settings.classNames.inputSelector), e.parentNode.insertBefore(
                t.scope, e)), this.settings.dropdown.enabled >= 0 &&
            this.dropdown.init.call(this);
        },
        destroy () {
            this.DOM.scope.parentNode.removeChild(
                this.DOM.scope), this.dropdown.hide.call(this,
                !0), clearTimeout(this.dropdownHide__bindEventsTimeout);
        },
        loadOriginalValues (e) {
            var t, n = this.settings;
            if (e = e || (n.mixMode.integrated
                ? this.DOM.input.textContent
                : this.DOM.originalInput.value)) if (this.removeAllTags(
                { withoutChangeEvent: !0 }), 'mix' == n.mode) this.parseMixTags(
                e.trim()), (t = this.DOM.input.lastChild) && 'BR' ==
            t.tagName || this.DOM.input.insertAdjacentHTML('beforeend',
                '<br>'); else {
                try {
                    JSON.parse(e) instanceof Array && (e = JSON.parse(e));
                } catch (e) {}
                this.addTags(e).
                    forEach((e => e &&
                        e.classList.add(n.classNames.tagNoAnimation)));
            } else this.postUpdate();
            this.state.lastOriginalValueReported = n.mixMode.integrated
                ? ''
                : this.DOM.originalInput.value, this.state.loadedOriginalValues = !0;
        },
        cloneEvent (e) {
            var t = {};
            for (var n in e) t[n] = e[n];
            return t;
        },
        loading (e) {
            return this.state.isLoading = e, this.DOM.scope.classList[e
                ? 'add'
                : 'remove'](this.settings.classNames.scopeLoading), this;
        },
        tagLoading (e, t) {
            return e && e.classList[t ? 'add' : 'remove'](
                this.settings.classNames.tagLoading), this;
        },
        toggleClass (e, t) {
            'string' == typeof e && this.DOM.scope.classList.toggle(e, t);
        },
        toggleFocusClass (e) {
            this.toggleClass(this.settings.classNames.focus, !!e);
        },
        triggerChangeEvent: function () {
            if (!this.settings.mixMode.integrated) {
                var e = this.DOM.originalInput,
                    t = this.state.lastOriginalValueReported !== e.value,
                    n = new CustomEvent('change', { bubbles: !0 });
                t &&
                (this.state.lastOriginalValueReported = e.value, n.simulated = !0, e._valueTracker &&
                e._valueTracker.setValue(Math.random()), e.dispatchEvent(
                    n), this.trigger('change',
                    this.state.lastOriginalValueReported), e.value = this.state.lastOriginalValueReported);
            }
        },
        events: f,
        fixFirefoxLastTagNoCaret () {},
        placeCaretAfterNode (e) {
            if (e && e.parentNode) {
                var t = e.nextSibling, n = window.getSelection(),
                    i = n.getRangeAt(0);
                n.rangeCount && (i.setStartBefore(t || e), i.setEndBefore(
                    t || e), n.removeAllRanges(), n.addRange(i));
            }
        },
        insertAfterTag (e, t) {
            if (t = t || this.settings.mixMode.insertAfterTag, e &&
            e.parentNode && t) return t = 'string' == typeof t
                ? document.createTextNode(t)
                : t, e.parentNode.insertBefore(t, e.nextSibling), t;
        },
        editTag (e, t) {
            e = e || this.getLastTag(), t = t || {}, this.dropdown.hide.call(
                this);
            var n = this.settings;

            function i () {
                return e.querySelector(n.classNames.tagTextSelector);
            }

            var a = i(), r = this.getNodeIndex(e), s = this.tagData(e),
                l = this.events.callbacks, c = this, u = !0;
            if (a) {
                if (!(s instanceof Object && 'editable' in s) ||
                    s.editable) return a.setAttribute('contenteditable',
                    !0), e.classList.add(n.classNames.tagEditing), this.tagData(
                    e, {
                        __originalData: o({}, s),
                        __originalHTML: e.innerHTML,
                    }), a.addEventListener('focus',
                    l.onEditTagFocus.bind(this, e)), a.addEventListener('blur',
                    (function () {
                        setTimeout((() => l.onEditTagBlur.call(c, i())));
                    })), a.addEventListener('input',
                    l.onEditTagInput.bind(this, a)), a.addEventListener(
                    'keydown', (t => l.onEditTagkeydown.call(this, t,
                        e))), a.focus(), this.setRangeAtStartEnd(!1,
                    a), t.skipValidation || (u = this.editTagToggleValidity(e,
                    s.value)), a.originalIsValid = u, this.trigger('edit:start',
                    { tag: e, index: r, data: s, isValid: u }), this;
            } else console.warn('Cannot find element in Tag template: .',
                n.classNames.tagTextSelector);
        },
        editTagToggleValidity (e, t) {
            var n, i = this.tagData(e);
            if (i) return n = !(!i.__isValid || 1 ==
                i.__isValid), e.classList.toggle(
                this.settings.classNames.tagInvalid, n), i.__isValid;
            console.warn('tag has no data: ', e, i);
        },
        onEditTagDone (e, t) {
            t = t || {};
            var n = {
                tag: e = e || this.state.editing.scope,
                index: this.getNodeIndex(e),
                previousData: this.tagData(e),
                data: t,
            };
            this.trigger('edit:beforeUpdate', n,
                { cloneData: !1 }), this.state.editing = !1, delete t.__originalData, delete t.__originalHTML, e &&
            t[this.settings.tagTextProp] ? (this.editTagToggleValidity(
                e), this.replaceTag(e, t)) : e &&
                this.removeTags(e), this.trigger('edit:updated',
                n), this.dropdown.hide.call(
                this), this.settings.keepInvalidTags &&
            this.reCheckInvalidTags();
        },
        replaceTag (e, t) {
            t && t.value || (t = e.__tagifyTagData), t.__isValid && 1 !=
            t.__isValid && o(t, this.getInvalidTagAttrs(t, t.__isValid));
            var n = this.createTagElem(t);
            e.parentNode.replaceChild(n, e), this.updateValueByDOMTags();
        },
        updateValueByDOMTags () {
            this.value.length = 0, [].forEach.call(this.getTagElms(), (e => {
                e.classList.contains(
                    this.settings.classNames.tagNotAllowed.split(' ')[0]) ||
                this.value.push(this.tagData(e));
            })), this.update();
        },
        setRangeAtStartEnd (e, t) {
            e = 'number' == typeof e
                ? e
                : !!e, t = (t = t || this.DOM.input).lastChild || t;
            var n = document.getSelection();
            try {
                n.rangeCount >= 1 && ['Start', 'End'].forEach(
                    (i => n.getRangeAt(0)['set' + i](t, e || t.length)));
            } catch (e) {console.warn('Tagify: ', e);}
        },
        injectAtCaret (e, t) {
            if (t = t || this.state.selection.range) return 'string' ==
            typeof e &&
            (e = document.createTextNode(e)), t.deleteContents(), t.insertNode(
                e), this.setRangeAtStartEnd(!1,
                e), this.updateValueByDOMTags(), this.update(), this;
        },
        input: {
            set (e = '', t = !0) {
                var n = this.settings.dropdown.closeOnSelect;
                this.state.inputText = e, t &&
                (this.DOM.input.innerHTML = i('' + e)), !e && n &&
                this.dropdown.hide.bind(
                    this), this.input.autocomplete.suggest.call(
                    this), this.input.validate.call(this);
            },
            validate () {
                var e = !this.state.inputText || !0 ===
                    this.validateTag({ value: this.state.inputText });
                return this.DOM.input.classList.toggle(
                    this.settings.classNames.inputInvalid, !e), e;
            },
            normalize (e) {
                var t = e || this.DOM.input, n = [];
                t.childNodes.forEach(
                    (e => 3 == e.nodeType && n.push(e.nodeValue))), n = n.join(
                    '\n');
                try {
                    n = n.replace(/(?:\r\n|\r|\n)/g,
                        this.settings.delimiters.source.charAt(0));
                } catch (e) {}
                return n = n.replace(/\s/g, ' '), this.settings.trim &&
                (n = n.replace(/^\s+/, '')), n;
            },
            autocomplete: {
                suggest (e) {
                    if (this.settings.autoComplete.enabled) {
                        'string' == typeof (e = e || {}) && (e = { value: e });
                        var t = e.value ? '' + e.value : '',
                            n = t.substr(0, this.state.inputText.length).
                                toLowerCase(),
                            i = t.substring(this.state.inputText.length);
                        t && this.state.inputText && n ==
                        this.state.inputText.toLowerCase()
                            ? (this.DOM.input.setAttribute('data-suggest',
                            i), this.state.inputSuggestion = e)
                            : (this.DOM.input.removeAttribute(
                            'data-suggest'), delete this.state.inputSuggestion);
                    }
                },
                set (e) {
                    var t = this.DOM.input.getAttribute('data-suggest'),
                        n = e || (t ? this.state.inputText + t : null);
                    return !!n && ('mix' == this.settings.mode
                        ? this.replaceTextWithNode(document.createTextNode(
                            this.state.tag.prefix + n))
                        : (this.input.set.call(this,
                            n), this.setRangeAtStartEnd()), this.input.autocomplete.suggest.call(
                        this), this.dropdown.hide.call(this), !0);
                },
            },
        },
        getTagIdx (e) {
            return this.value.findIndex((t => t.value == (e || {}).value));
        },
        getNodeIndex (e) {
            var t = 0;
            if (e) for (; e = e.previousElementSibling;) t++;
            return t;
        },
        getTagElms (...e) {
            var t = '.' +
                [...this.settings.classNames.tag.split(' '), ...e].join('.');
            return [].slice.call(this.DOM.scope.querySelectorAll(t));
        },
        getLastTag () {
            var e = this.DOM.scope.querySelectorAll(
                `${this.settings.classNames.tagSelector}:not(.${this.settings.classNames.tagHide}):not([readonly])`);
            return e[e.length - 1];
        },
        tagData: (e, t, n) => e ? (t &&
        (e.__tagifyTagData = n ? t : o({}, e.__tagifyTagData || {},
            t)), e.__tagifyTagData) : (console.warn('tag elment doesn\'t exist',
            e, t), t),
        isTagDuplicate (t, n) {
            var i = this.settings;
            return 'select' != i.mode && this.value.reduce(
                ((a, r) => e(this.trim('' + t), r.value,
                    n || i.dropdown.caseSensitive) ? a + 1 : a), 0);
        },
        getTagIndexByValue (t) {
            var n = [];
            return this.getTagElms().
                forEach(((i, a) => {
                    e(this.trim(i.textContent), t,
                        this.settings.dropdown.caseSensitive) && n.push(a);
                })), n;
        },
        getTagElmByValue (e) {
            var t = this.getTagIndexByValue(e)[0];
            return this.getTagElms()[t];
        },
        flashTag (e) {
            e &&
            (e.classList.add(this.settings.classNames.tagFlash), setTimeout(
                (() => {
                    e.classList.remove(this.settings.classNames.tagFlash);
                }),
                100));
        },
        isTagBlacklisted (e) {
            return e = this.trim(
                e.toLowerCase()), this.settings.blacklist.filter(
                (t => ('' + t).toLowerCase() == e)).length;
        },
        isTagWhitelisted (e) {return !!this.getWhitelistItem(e);},
        getWhitelistItem (t, n, i) {
            n = n || 'value';
            var a, r = this.settings;
            return (i = i || r.whitelist).some((i => {
                var o = 'string' == typeof i ? i : i[n] || i.value;
                if (e(o, t, r.dropdown.caseSensitive,
                    r.trim)) return a = 'string' == typeof i
                    ? { value: i }
                    : i, !0;
            })), a || 'value' != n || 'value' == r.tagTextProp ||
            (a = this.getWhitelistItem(t, r.tagTextProp, i)), a;
        },
        validateTag (e) {
            var t = this.settings, n = 'value' in e ? 'value' : t.tagTextProp,
                i = this.trim(e[n] + '');
            return (e[n] + '').trim() ? t.pattern && t.pattern instanceof
            RegExp && !t.pattern.test(i) ? this.TEXTS.pattern : !t.duplicates &&
            this.isTagDuplicate(i, this.state.editing)
                ? this.TEXTS.duplicate
                : this.isTagBlacklisted(i) || t.enforceWhitelist &&
                !this.isTagWhitelisted(i)
                    ? this.TEXTS.notAllowed
                    : !t.validate || t.validate(e) : this.TEXTS.empty;
        },
        getInvalidTagAttrs (e, t) {
            return {
                'aria-invalid': !0,
                class: `${e.class ||
                ''} ${this.settings.classNames.tagNotAllowed}`.trim(),
                title: t,
            };
        },
        hasMaxTags () {
            return this.value.length >= this.settings.maxTags &&
                this.TEXTS.exceed;
        },
        setReadonly (e) {
            var t = this.settings;
            document.activeElement.blur(), t.readonly = e, this.DOM.scope[(e
                ? 'set'
                : 'remove') + 'Attribute']('readonly', !0), 'mix' == t.mode &&
            (this.DOM.input.contentEditable = !e);
        },
        normalizeTags (e) {
            var t = this.settings, n = t.whitelist, i = t.delimiters,
                a = t.mode, r = t.tagTextProp;
            t.enforceWhitelist;
            var o = [], s = !!n && n[0] instanceof Object,
                l = e instanceof Array, c = e => (e + '').split(i).
                    filter((e => e)).
                    map((e => ({ [r]: this.trim(e), value: this.trim(e) })));
            if ('number' == typeof e && (e = e.toString()), 'string' ==
            typeof e) {
                if (!e.trim()) return [];
                e = c(e);
            } else l && (e = [].concat(...e.map((e => e.value ? e : c(e)))));
            return s && (e.forEach((e => {
                var t = o.map((e => e.value)),
                    n = this.dropdown.filterListItems.call(this, e[r],
                        { exact: !0 }).filter((e => !t.includes(e.value))),
                    i = n.length > 1 ? this.getWhitelistItem(e[r], r, n) : n[0];
                i && i instanceof Object ? o.push(i) : 'mix' != a &&
                    (null == e.value && (e.value = e[r]), o.push(e));
            })), e = o), e;
        },
        parseMixTags (e) {
            var t = this.settings, n = t.mixTagsInterpolator, i = t.duplicates,
                a = t.transformTag, r = t.enforceWhitelist, o = t.maxTags,
                s = t.tagTextProp, l = [];
            return e = e.split(n[0]).
                map(((e, t) => {
                    var c, u, d, h = e.split(n[1]), f = h[0], p = l.length == o;
                    try {
                        if (f == +f) throw Error;
                        u = JSON.parse(f);
                    } catch (e) {u = this.normalizeTags(f)[0] || { value: f };}
                    if (p || !(h.length > 1) || r &&
                        !this.isTagWhitelisted(u.value) || !i &&
                        this.isTagDuplicate(u.value)) {
                        if (e) return t ? n[0] + e : e;
                    } else a.call(this, u), u[c = u[s]
                        ? s
                        : 'value'] = this.trim(u[c]), d = this.createTagElem(
                        u), l.push(u), d.classList.add(
                        this.settings.classNames.tagNoAnimation), h[0] = d.outerHTML, this.value.push(
                        u);
                    return h.join('');
                })).
                join(
                    ''), this.DOM.input.innerHTML = e, this.DOM.input.appendChild(
                document.createTextNode(
                    '')), this.DOM.input.normalize(), this.getTagElms().
                forEach(((e, t) => this.tagData(e, l[t]))), this.update(
                { withoutChangeEvent: !0 }), e;
        },
        replaceTextWithNode (e, t) {
            if (this.state.tag || t) {
                t = t || this.state.tag.prefix + this.state.tag.value;
                var n, i, a = window.getSelection(), r = a.anchorNode,
                    o = this.state.tag.delimiters
                        ? this.state.tag.delimiters.length
                        : 0;
                return r.splitText(
                    a.anchorOffset - o), n = r.nodeValue.lastIndexOf(
                    t), i = r.splitText(n), e &&
                r.parentNode.replaceChild(e, i), !0;
            }
        },
        selectTag (e, t) {
            if (!this.settings.enforceWhitelist ||
                this.isTagWhitelisted(t.value)) return this.input.set.call(this,
                t.value, !0), this.state.actions.selectOption &&
            setTimeout(this.setRangeAtStartEnd.bind(this)), this.getLastTag()
                ? this.replaceTag(this.getLastTag(), t)
                : this.appendTag(e), this.value[0] = t, this.trigger('add',
                { tag: e, data: t }), this.update(), [e];
        },
        addEmptyTag (e) {
            var t = o({ value: '' }, e || {}), n = this.createTagElem(t);
            this.tagData(n, t), this.appendTag(n), this.editTag(n,
                { skipValidation: !0 });
        },
        addTags (e, t, n = this.settings.skipInvalid) {
            var i = [], a = this.settings;
            return e && 0 != e.length
                ? (e = this.normalizeTags(e), 'mix' == a.mode ? this.addMixTags(
                    e) : ('select' == a.mode &&
                (t = !1), this.DOM.input.removeAttribute('style'), e.forEach(
                    (e => {
                        var t, r = {},
                            s = Object.assign({}, e, { value: e.value + '' });
                        if ((e = Object.assign({},
                            s)).__isValid = this.hasMaxTags() ||
                            this.validateTag(e), a.transformTag.call(this,
                            e), !0 !== e.__isValid) {
                            if (n) return;
                            o(r, this.getInvalidTagAttrs(e, e.__isValid),
                                { __preInvalidData: s }), e.__isValid ==
                            this.TEXTS.duplicate &&
                            this.flashTag(this.getTagElmByValue(e.value));
                        }
                        if (e.readonly &&
                        (r['aria-readonly'] = !0), t = this.createTagElem(
                            o({}, e, r)), i.push(t), 'select' ==
                        a.mode) return this.selectTag(t, e);
                        this.appendTag(t), e.__isValid && !0 === e.__isValid
                            ? (this.value.push(e), this.update(), this.trigger(
                                'add', {
                                    tag: t,
                                    index: this.value.length - 1,
                                    data: e,
                                }))
                            : (this.trigger('invalid', {
                                data: e,
                                index: this.value.length,
                                tag: t,
                                message: e.__isValid,
                            }), a.keepInvalidTags ||
                            setTimeout((() => this.removeTags(t, !0)),
                                1e3)), this.dropdown.position.call(this);
                    })), e.length && t &&
                this.input.set.call(this), this.dropdown.refilter.call(
                    this), i))
                : ('select' == a.mode && this.removeAllTags(), i);
        },
        addMixTags (e) {
            if (e[0].prefix || this.state.tag) this.prefixedTextToTag(
                e[0]); else {
                'string' == typeof e && (e = [{ value: e }]);
                var t = !!this.state.selection,
                    n = document.createDocumentFragment();
                e.forEach((e => {
                    var t = this.createTagElem(e);
                    n.appendChild(t), this.insertAfterTag(t);
                })), t
                    ? this.injectAtCaret(n)
                    : (this.DOM.input.focus(), (t = this.setStateSelection()).range.setStart(
                        this.DOM.input, t.range.endOffset), t.range.setEnd(
                        this.DOM.input,
                        t.range.endOffset), this.DOM.input.appendChild(
                        n), this.updateValueByDOMTags(), this.update());
            }
        },
        prefixedTextToTag (e) {
            var t, n = this.settings, i = this.state.tag.delimiters;
            if (n.transformTag.call(this, e), e.prefix = e.prefix ||
            this.state.tag ? this.state.tag.prefix : (n.pattern.source ||
                n.pattern)[0], t = this.createTagElem(
                e), this.replaceTextWithNode(t) ||
            this.DOM.input.appendChild(t), setTimeout((() => t.classList.add(
                this.settings.classNames.tagNoAnimation)),
                300), this.value.push(e), this.update(), !i) {
                var a = this.insertAfterTag(t) || t;
                this.placeCaretAfterNode(a);
            }
            return this.state.tag = null, this.trigger('add',
                o({}, { tag: t }, { data: e })), t;
        },
        appendTag (e) {
            var t = this.DOM.scope.lastElementChild;
            t === this.DOM.input
                ? this.DOM.scope.insertBefore(e, t)
                : this.DOM.scope.appendChild(e);
        },
        createTagElem (e) {
            var t, n = o({}, e, { value: i(e.value + '') });
            return function (e) {
                for (var t, n = document.createNodeIterator(e,
                    NodeFilter.SHOW_TEXT, null,
                    !1); t = n.nextNode();) t.textContent.trim() ||
                t.parentNode.removeChild(t);
            }(t = this.parseTemplate('tag', [n])), this.tagData(t, e), t;
        },
        reCheckInvalidTags () {
            var e = this.settings,
                t = `${e.classNames.tagSelector}${e.classNames.tagNotAllowedSelector}`,
                n = this.DOM.scope.querySelectorAll(t);
            [].forEach.call(n, (e => {
                var t = this.tagData(e),
                    n = e.getAttribute('title') == this.TEXTS.duplicate,
                    i = !0 === this.validateTag(t);
                n && i && (t = t.__preInvalidData
                    ? t.__preInvalidData
                    : { value: t.value }, this.replaceTag(e, t));
            }));
        },
        removeTags (e, t, n) {
            var i;
            e = e && e instanceof HTMLElement ? [e] : e instanceof Array ? e : e
                ? [e]
                : [this.getLastTag()], i = e.reduce(
                ((e, t) => (t && 'string' == typeof t &&
                (t = this.getTagElmByValue(t)), t && e.push({
                    node: t,
                    idx: this.getTagIdx(this.tagData(t)),
                    data: this.tagData(t, { __removed: !0 }),
                }), e)), []), n = 'number' == typeof n
                ? n
                : this.CSSVars.tagHideTransition, 'select' ==
            this.settings.mode && (n = 0, this.input.set.call(this)), 1 ==
            i.length && i[0].node.classList.contains(
                this.settings.classNames.tagNotAllowed) && (t = !0), i.length &&
            this.settings.hooks.beforeRemoveTag(i, { tagify: this }).
                then((() => {
                    function e (e) {
                        e.node.parentNode &&
                        (e.node.parentNode.removeChild(e.node), t
                            ? this.settings.keepInvalidTags &&
                            this.trigger('remove',
                                { tag: e.node, index: e.idx })
                            : (this.trigger('remove', {
                                tag: e.node,
                                index: e.idx,
                                data: e.data,
                            }), this.dropdown.refilter.call(
                                this), this.dropdown.position.call(
                                this), this.DOM.input.normalize(), this.settings.keepInvalidTags &&
                            this.reCheckInvalidTags()));
                    }

                    n && n > 10 && 1 == i.length
                        ? function (t) {
                            t.node.style.width = parseFloat(
                                window.getComputedStyle(t.node).width) +
                                'px', document.body.clientTop, t.node.classList.add(
                                this.settings.classNames.tagHide), setTimeout(
                                e.bind(this), n, t);
                        }.call(this, i[0])
                        : i.forEach(e.bind(this)), t || (i.forEach((e => {
                        var t = Object.assign({}, e.data);
                        delete t.__removed;
                        var n = this.getTagIdx(t);
                        n > -1 && this.value.splice(n, 1);
                    })), this.update());
                })).
                catch((e => {}));
        },
        removeAllTags (e) {
            e = e || {}, this.value = [], 'mix' == this.settings.mode
                ? this.DOM.input.innerHTML = ''
                : Array.prototype.slice.call(this.getTagElms()).
                    forEach((e => e.parentNode.removeChild(
                        e))), this.dropdown.position.call(this), 'select' ==
            this.settings.mode && this.input.set.call(this), this.update(e);
        },
        postUpdate () {
            var e = this.settings.classNames, t = 'mix' == this.settings.mode
                ? this.settings.mixMode.integrated
                    ? this.DOM.input.textContent
                    : this.DOM.originalInput.value
                : this.value.length;
            this.toggleClass(e.hasMaxTags,
                this.value.length >= this.settings.maxTags), this.toggleClass(
                e.hasNoTags, !this.value.length), this.toggleClass(e.empty, !t);
        },
        update (e) {
            var t, n, i = this.DOM.originalInput,
                a = (e || {}).withoutChangeEvent,
                r = (t = this.value, n = ['__isValid', '__removed'], t.map(
                    (e => {
                        var t = {};
                        for (var i in e) n.indexOf(i) < 0 && (t[i] = e[i]);
                        return t;
                    })));
            this.settings.mixMode.integrated ||
            (i.value = 'mix' == this.settings.mode ? this.getMixedTagsAsString(
                r) : r.length ? this.settings.originalInputValueFormat
                ? this.settings.originalInputValueFormat(r)
                : JSON.stringify(r) : ''), this.postUpdate(), !a &&
            this.state.loadedOriginalValues && this.triggerChangeEvent();
        },
        getMixedTagsAsString () {
            var e = '', t = this, n = this.settings.mixTagsInterpolator;
            return function i (a) {
                a.childNodes.forEach((a => {
                    if (1 == a.nodeType) {
                        if (a.classList.contains(t.settings.classNames.tag) &&
                            t.tagData(a)) {
                            if (t.tagData(a).__removed) return;
                            return void (e += n[0] +
                                JSON.stringify(a.__tagifyTagData) + n[1]);
                        }
                        'BR' != a.tagName || a.parentNode != t.DOM.input && 1 !=
                        a.parentNode.childNodes.length
                            ? 'DIV' != a.tagName && 'P' != a.tagName ||
                            (e += '\r\n', i(a))
                            : e += '\r\n';
                    } else e += a.textContent;
                }));
            }(this.DOM.input), e;
        },
    }, p.prototype.removeTag = p.prototype.removeTags, p;
})), function (e) {
    e(['jquery'], (function (e) {
        return function () {
            var t, n, i, a = 0, r = 'error', o = 'info', s = 'success',
                l = 'warning', c = {
                    clear: function (n, i) {
                        var a = p();
                        t || u(a);
                        d(n, a, i) || function (n) {
                            for (var i = t.children(), a = i.length - 1; a >=
                            0; a--) d(e(i[a]), n);
                        }(a);
                    },
                    remove: function (n) {
                        var i = p();
                        t || u(i);
                        if (n && 0 === e(':focus', n).length) return void m(n);
                        t.children().length && t.remove();
                    },
                    error: function (e, t, n) {
                        return f({
                            type: r,
                            iconClass: p().iconClasses.error,
                            message: e,
                            optionsOverride: n,
                            title: t,
                        });
                    },
                    getContainer: u,
                    info: function (e, t, n) {
                        return f({
                            type: o,
                            iconClass: p().iconClasses.info,
                            message: e,
                            optionsOverride: n,
                            title: t,
                        });
                    },
                    options: {},
                    subscribe: function (e) {n = e;},
                    success: function (e, t, n) {
                        return f({
                            type: s,
                            iconClass: p().iconClasses.success,
                            message: e,
                            optionsOverride: n,
                            title: t,
                        });
                    },
                    version: '2.1.4',
                    warning: function (e, t, n) {
                        return f({
                            type: l,
                            iconClass: p().iconClasses.warning,
                            message: e,
                            optionsOverride: n,
                            title: t,
                        });
                    },
                };
            return c;

            function u (n, i) {
                return n || (n = p()), (t = e('#' + n.containerId)).length ||
                i && (t = function (n) {
                    return (t = e('<div/>').
                        attr('id', n.containerId).
                        addClass(n.positionClass)).appendTo(e(n.target)), t;
                }(n)), t;
            }

            function d (t, n, i) {
                var a = !(!i || !i.force) && i.force;
                return !(!t || !a && 0 !== e(':focus', t).length) &&
                    (t[n.hideMethod]({
                        duration: n.hideDuration,
                        easing: n.hideEasing,
                        complete: function () {m(t);},
                    }), !0);
            }

            function h (e) {n && n(e);}

            function f (n) {
                var r = p(), o = n.iconClass || r.iconClass;
                if (void 0 !== n.optionsOverride && (r = e.extend(r,
                    n.optionsOverride), o = n.optionsOverride.iconClass ||
                    o), !function (
                    e, t) {
                    if (e.preventDuplicates) {
                        if (t.message === i) return !0;
                        i = t.message;
                    }
                    return !1;
                }(r, n)) {
                    a++, t = u(r, !0);
                    var s = null, l = e('<div/>'), c = e('<div/>'),
                        d = e('<div/>'), f = e('<div/>'), g = e(r.closeHtml),
                        v = {
                            intervalId: null,
                            hideEta: null,
                            maxHideTime: null,
                        }, y = {
                            toastId: a,
                            state: 'visible',
                            startTime: new Date,
                            options: r,
                            map: n,
                        };
                    return n.iconClass && l.addClass(r.toastClass).
                        addClass(o), function () {
                        if (n.title) {
                            var e = n.title;
                            r.escapeHtml && (e = b(n.title)), c.append(e).
                                addClass(r.titleClass), l.append(c);
                        }
                    }(), function () {
                        if (n.message) {
                            var e = n.message;
                            r.escapeHtml && (e = b(n.message)), d.append(e).
                                addClass(r.messageClass), l.append(d);
                        }
                    }(), r.closeButton &&
                    (g.addClass(r.closeClass).attr('role', 'button'), l.prepend(
                        g)), r.progressBar &&
                    (f.addClass(r.progressClass), l.prepend(f)), r.rtl &&
                    l.addClass('rtl'), r.newestOnTop ? t.prepend(l) : t.append(
                        l), function () {
                        var e = '';
                        switch (n.iconClass) {
                            case'toast-success':
                            case'toast-info':
                                e = 'polite';
                                break;
                            default:
                                e = 'assertive';
                        }
                        l.attr('aria-live', e);
                    }(), l.hide(), l[r.showMethod]({
                        duration: r.showDuration,
                        easing: r.showEasing,
                        complete: r.onShown,
                    }), r.timeOut > 0 &&
                    (s = setTimeout(x, r.timeOut), v.maxHideTime = parseFloat(
                        r.timeOut), v.hideEta = (new Date).getTime() +
                        v.maxHideTime, r.progressBar &&
                    (v.intervalId = setInterval(k, 10))), function () {
                        r.closeOnHover && l.hover(w, _);
                        !r.onclick && r.tapToDismiss && l.click(x);
                        r.closeButton && g && g.click((function (e) {
                            e.stopPropagation
                                ? e.stopPropagation()
                                : void 0 !== e.cancelBubble && !0 !==
                                e.cancelBubble &&
                                (e.cancelBubble = !0), r.onCloseClick &&
                            r.onCloseClick(e), x(!0);
                        }));
                        r.onclick &&
                        l.click((function (e) {r.onclick(e), x();}));
                    }(), h(y), r.debug && console && console.log(y), l;
                }

                function b (e) {
                    return null == e && (e = ''), e.replace(/&/g, '&amp;').
                        replace(/"/g, '&quot;').
                        replace(/'/g, '&#39;').
                        replace(/</g, '&lt;').
                        replace(/>/g, '&gt;');
                }

                function x (t) {
                    var n = t && !1 !== r.closeMethod
                        ? r.closeMethod
                        : r.hideMethod, i = t && !1 !== r.closeDuration
                        ? r.closeDuration
                        : r.hideDuration, a = t && !1 !== r.closeEasing
                        ? r.closeEasing
                        : r.hideEasing;
                    if (!e(':focus', l).length || t) return clearTimeout(
                        v.intervalId), l[n]({
                        duration: i,
                        easing: a,
                        complete: function () {
                            m(l), clearTimeout(s), r.onHidden && 'hidden' !==
                            y.state &&
                            r.onHidden(), y.state = 'hidden', y.endTime = new Date, h(
                                y);
                        },
                    });
                }

                function _ () {
                    (r.timeOut > 0 || r.extendedTimeOut > 0) &&
                    (s = setTimeout(x,
                        r.extendedTimeOut), v.maxHideTime = parseFloat(
                        r.extendedTimeOut), v.hideEta = (new Date).getTime() +
                        v.maxHideTime);
                }

                function w () {
                    clearTimeout(s), v.hideEta = 0, l.stop(!0,
                        !0)[r.showMethod](
                        { duration: r.showDuration, easing: r.showEasing });
                }

                function k () {
                    var e = (v.hideEta - (new Date).getTime()) / v.maxHideTime *
                        100;
                    f.width(e + '%');
                }
            }

            function p () {
                return e.extend({}, {
                    tapToDismiss: !0,
                    toastClass: 'toast',
                    containerId: 'toast-container',
                    debug: !1,
                    showMethod: 'fadeIn',
                    showDuration: 300,
                    showEasing: 'swing',
                    onShown: void 0,
                    hideMethod: 'fadeOut',
                    hideDuration: 1e3,
                    hideEasing: 'swing',
                    onHidden: void 0,
                    closeMethod: !1,
                    closeDuration: !1,
                    closeEasing: !1,
                    closeOnHover: !0,
                    extendedTimeOut: 1e3,
                    iconClasses: {
                        error: 'toast-error',
                        info: 'toast-info',
                        success: 'toast-success',
                        warning: 'toast-warning',
                    },
                    iconClass: 'toast-info',
                    positionClass: 'toast-top-right',
                    timeOut: 5e3,
                    titleClass: 'toast-title',
                    messageClass: 'toast-message',
                    escapeHtml: !1,
                    target: 'body',
                    closeHtml: '<button type="button">&times;</button>',
                    closeClass: 'toast-close-button',
                    newestOnTop: !0,
                    preventDuplicates: !1,
                    progressBar: !1,
                    progressClass: 'toast-progress',
                    rtl: !1,
                }, c.options);
            }

            function m (e) {
                t || (t = u()), e.is(':visible') ||
                (e.remove(), e = null, 0 === t.children().length &&
                (t.remove(), i = void 0));
            }
        }();
    }));
}('function' == typeof define && define.amd ? define : function (
    e, t) {
    'undefined' != typeof module && module.exports
        ? module.exports = t(require('jquery'))
        : window.toastr = t(window.jQuery);
}), 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).ApexCharts = t();
}(this, (function () {
    'use strict';

    function e (t) {
        return (e = 'function' == typeof Symbol && 'symbol' ==
        typeof Symbol.iterator
            ? function (e) {return typeof e;}
            : function (e) {
                return e && 'function' == typeof Symbol && e.constructor ===
                Symbol && e !== Symbol.prototype ? 'symbol' : typeof e;
            })(t);
    }

    function t (e, t) {
        if (!(e instanceof t)) throw new TypeError(
            'Cannot call a class as a function');
    }

    function n (e, t) {
        for (var n = 0; n < t.length; n++) {
            var i = t[n];
            i.enumerable = i.enumerable || !1, i.configurable = !0, 'value' in
            i && (i.writable = !0), Object.defineProperty(e, i.key, i);
        }
    }

    function i (e, t, i) {return t && n(e.prototype, t), i && n(e, i), e;}

    function a (e, t, n) {
        return t in e
            ? Object.defineProperty(e, t,
                { value: n, enumerable: !0, configurable: !0, writable: !0 })
            : e[t] = n, e;
    }

    function r (e, t) {
        var n = Object.keys(e);
        if (Object.getOwnPropertySymbols) {
            var i = Object.getOwnPropertySymbols(e);
            t && (i = i.filter((function (t) {
                return Object.getOwnPropertyDescriptor(e, t).enumerable;
            }))), n.push.apply(n, i);
        }
        return n;
    }

    function o (e) {
        for (var t = 1; t < arguments.length; t++) {
            var n = null != arguments[t] ? arguments[t] : {};
            t % 2
                ? r(Object(n), !0).forEach((function (t) {a(e, t, n[t]);}))
                : Object.getOwnPropertyDescriptors ? Object.defineProperties(e,
                Object.getOwnPropertyDescriptors(n)) : r(Object(n)).
                    forEach((function (t) {
                        Object.defineProperty(e, t,
                            Object.getOwnPropertyDescriptor(n, t));
                    }));
        }
        return e;
    }

    function s (e, t) {
        if ('function' != typeof t && null !== t) throw new TypeError(
            'Super expression must either be null or a function');
        e.prototype = Object.create(t && t.prototype,
            { constructor: { value: e, writable: !0, configurable: !0 } }), t &&
        c(e, t);
    }

    function l (e) {
        return (l = Object.setPrototypeOf
            ? Object.getPrototypeOf
            : function (e) {return e.__proto__ || Object.getPrototypeOf(e);})(
            e);
    }

    function c (e, t) {
        return (c = Object.setPrototypeOf ||
            function (e, t) {return e.__proto__ = t, e;})(e, t);
    }

    function u (e, t) {
        return !t || 'object' != typeof t && 'function' != typeof t
            ? function (e) {
                if (void 0 === e) throw new ReferenceError(
                    'this hasn\'t been initialised - super() hasn\'t been called');
                return e;
            }(e)
            : t;
    }

    function d (e) {
        var t = 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 (e) {return !1;}
        }();
        return function () {
            var n, i = l(e);
            if (t) {
                var a = l(this).constructor;
                n = Reflect.construct(i, arguments, a);
            } else n = i.apply(this, arguments);
            return u(this, n);
        };
    }

    function h (e) {
        return function (e) {if (Array.isArray(e)) return f(e);}(e) ||
            function (e) {
                if ('undefined' != typeof Symbol && Symbol.iterator in
                    Object(e)) return Array.from(e);
            }(e) || function (e, t) {
                if (e) {
                    if ('string' == typeof e) return f(e, t);
                    var n = Object.prototype.toString.call(e).slice(8, -1);
                    return 'Object' === n && e.constructor &&
                    (n = e.constructor.name), 'Map' === n || 'Set' === n
                        ? Array.from(e)
                        : 'Arguments' === n ||
                        /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)
                            ? f(e, t)
                            : void 0;
                }
            }(e) || 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 f (e, t) {
        (null == t || t > e.length) && (t = e.length);
        for (var n = 0, i = new Array(t); n < t; n++) i[n] = e[n];
        return i;
    }

    var p = function () {
        function n () {t(this, n);}

        return i(n, [
            {
                key: 'shadeRGBColor',
                value: function (e, t) {
                    var n = t.split(','), i = e < 0 ? 0 : 255,
                        a = e < 0 ? -1 * e : e, r = parseInt(n[0].slice(4), 10),
                        o = parseInt(n[1], 10), s = parseInt(n[2], 10);
                    return 'rgb(' + (Math.round((i - r) * a) + r) + ',' +
                        (Math.round((i - o) * a) + o) + ',' +
                        (Math.round((i - s) * a) + s) + ')';
                },
            },
            {
                key: 'shadeHexColor',
                value: function (e, t) {
                    var n = parseInt(t.slice(1), 16), i = e < 0 ? 0 : 255,
                        a = e < 0 ? -1 * e : e, r = n >> 16, o = n >> 8 & 255,
                        s = 255 & n;
                    return '#' +
                        (16777216 + 65536 * (Math.round((i - r) * a) + r) +
                            256 * (Math.round((i - o) * a) + o) +
                            (Math.round((i - s) * a) + s)).toString(16).
                            slice(1);
                },
            },
            {
                key: 'shadeColor',
                value: function (e, t) {
                    return n.isColorHex(t)
                        ? this.shadeHexColor(e, t)
                        : this.shadeRGBColor(e, t);
                },
            }], [
            {
                key: 'bind',
                value: function (e, t) {
                    return function () {
                        return e.apply(t, arguments);
                    };
                },
            },
            {
                key: 'isObject',
                value: function (t) {
                    return t && 'object' === e(t) && !Array.isArray(t) &&
                        null != t;
                },
            },
            {
                key: 'listToArray', value: function (e) {
                    var t, n = [];
                    for (t = 0; t < e.length; t++) n[t] = e[t];
                    return n;
                },
            },
            {
                key: 'extend', value: function (e, t) {
                    var n = this;
                    'function' != typeof Object.assign &&
                    (Object.assign = function (e) {
                        if (null == e) throw new TypeError(
                            'Cannot convert undefined or null to object');
                        for (var t = Object(e), n = 1; n <
                        arguments.length; n++) {
                            var i = arguments[n];
                            if (null != i) for (var a in i) i.hasOwnProperty(
                                a) && (t[a] = i[a]);
                        }
                        return t;
                    });
                    var i = Object.assign({}, e);
                    return this.isObject(e) && this.isObject(t) &&
                    Object.keys(t).
                        forEach((function (r) {
                            n.isObject(t[r]) && r in e
                                ? i[r] = n.extend(e[r], t[r])
                                : Object.assign(i, a({}, r, t[r]));
                        })), i;
                },
            },
            {
                key: 'extendArray', value: function (e, t) {
                    var i = [];
                    return e.map((function (e) {i.push(n.extend(t, e));})), i;
                },
            },
            { key: 'monthMod', value: function (e) {return e % 12;} },
            {
                key: 'clone',
                value: function (t) {
                    if ('[object Array]' === Object.prototype.toString.call(
                        t)) {
                        for (var n = [], i = 0; i <
                        t.length; i++) n[i] = this.clone(t[i]);
                        return n;
                    }
                    if ('[object Null]' ===
                        Object.prototype.toString.call(t)) return null;
                    if ('[object Date]' ===
                        Object.prototype.toString.call(t)) return t;
                    if ('object' === e(t)) {
                        var a = {};
                        for (var r in t) t.hasOwnProperty(r) &&
                        (a[r] = this.clone(t[r]));
                        return a;
                    }
                    return t;
                },
            },
            {
                key: 'log10',
                value: function (e) {return Math.log(e) / Math.LN10;},
            },
            {
                key: 'roundToBase10',
                value: function (e) {
                    return Math.pow(10, Math.floor(Math.log10(e)));
                },
            },
            {
                key: 'roundToBase',
                value: function (e, t) {
                    return Math.pow(t, Math.floor(Math.log(e) / Math.log(t)));
                },
            },
            {
                key: 'parseNumber',
                value: function (e) {return null === e ? e : parseFloat(e);},
            },
            {
                key: 'randomId',
                value: function () {
                    return (Math.random() + 1).toString(36).
                        substring(4);
                },
            },
            {
                key: 'noExponents',
                value: function (e) {
                    var t = String(e).split(/[eE]/);
                    if (1 === t.length) return t[0];
                    var n = '', i = e < 0 ? '-' : '', a = t[0].replace('.', ''),
                        r = Number(t[1]) + 1;
                    if (r < 0) {
                        for (n = i + '0.'; r++;) n += '0';
                        return n + a.replace(/^-/, '');
                    }
                    for (r -= a.length; r--;) n += '0';
                    return a + n;
                },
            },
            {
                key: 'getDimensions',
                value: function (e) {
                    var t = getComputedStyle(e, null), n = e.clientHeight,
                        i = e.clientWidth;
                    return n -= parseFloat(t.paddingTop) +
                        parseFloat(t.paddingBottom), [
                        i -= parseFloat(t.paddingLeft) +
                            parseFloat(t.paddingRight), n];
                },
            },
            {
                key: 'getBoundingClientRect',
                value: function (e) {
                    var t = e.getBoundingClientRect();
                    return {
                        top: t.top,
                        right: t.right,
                        bottom: t.bottom,
                        left: t.left,
                        width: e.clientWidth,
                        height: e.clientHeight,
                        x: t.left,
                        y: t.top,
                    };
                },
            },
            {
                key: 'getLargestStringFromArr',
                value: function (e) {
                    return e.reduce((function (e, t) {
                        return Array.isArray(t) && (t = t.reduce(
                            (function (e, t) {
                                return e.length > t.length
                                    ? e
                                    : t;
                            }))), e.length > t.length ? e : t;
                    }), 0);
                },
            },
            {
                key: 'hexToRgba',
                value: function () {
                    var e = arguments.length > 0 && void 0 !== arguments[0]
                        ? arguments[0]
                        : '#999999',
                        t = arguments.length > 1 && void 0 !== arguments[1]
                            ? arguments[1]
                            : .6;
                    '#' !== e.substring(0, 1) && (e = '#999999');
                    var n = e.replace('#', '');
                    n = n.match(new RegExp('(.{' + n.length / 3 + '})', 'g'));
                    for (var i = 0; i < n.length; i++) n[i] = parseInt(
                        1 === n[i].length ? n[i] + n[i] : n[i], 16);
                    return void 0 !== t && n.push(t), 'rgba(' + n.join(',') +
                    ')';
                },
            },
            {
                key: 'getOpacityFromRGBA',
                value: function (e) {
                    return parseFloat(e.replace(/^.*,(.+)\)/, '$1'));
                },
            },
            {
                key: 'rgb2hex',
                value: function (e) {
                    return (e = e.match(
                        /^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i)) &&
                    4 === e.length ? '#' +
                        ('0' + parseInt(e[1], 10).toString(16)).slice(-2) +
                        ('0' + parseInt(e[2], 10).toString(16)).slice(-2) +
                        ('0' + parseInt(e[3], 10).toString(16)).slice(-2) : '';
                },
            },
            {
                key: 'isColorHex',
                value: function (e) {
                    return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)|(^#[0-9A-F]{8}$)/i.test(
                        e);
                },
            },
            {
                key: 'polarToCartesian',
                value: function (e, t, n, i) {
                    var a = (i - 90) * Math.PI / 180;
                    return { x: e + n * Math.cos(a), y: t + n * Math.sin(a) };
                },
            },
            {
                key: 'escapeString',
                value: function (e) {
                    var t = arguments.length > 1 && void 0 !== arguments[1]
                        ? arguments[1]
                        : 'x', n = e.toString().slice();
                    return n.replace(/[` ~!@#$%^&*()_|+\-=?;:'",.<>{}[\]\\/]/gi,
                        t);
                },
            },
            { key: 'negToZero', value: function (e) {return e < 0 ? 0 : e;} },
            {
                key: 'moveIndexInArray',
                value: function (e, t, n) {
                    if (n >= e.length) for (var i = n - e.length +
                        1; i--;) e.push(void 0);
                    return e.splice(n, 0, e.splice(t, 1)[0]), e;
                },
            },
            {
                key: 'extractNumber',
                value: function (e) {
                    return parseFloat(e.replace(/[^\d.]*/g, ''));
                },
            },
            {
                key: 'findAncestor',
                value: function (e, t) {
                    for (; (e = e.parentElement) && !e.classList.contains(t);) ;
                    return e;
                },
            },
            {
                key: 'setELstyles',
                value: function (e, t) {
                    for (var n in t) t.hasOwnProperty(n) &&
                    (e.style.key = t[n]);
                },
            },
            {
                key: 'isNumber',
                value: function (e) {
                    return !isNaN(e) && parseFloat(Number(e)) === e &&
                        !isNaN(parseInt(e, 10));
                },
            },
            {
                key: 'isFloat',
                value: function (e) {return Number(e) === e && e % 1 != 0;},
            },
            {
                key: 'isSafari',
                value: function () {
                    return /^((?!chrome|android).)*safari/i.test(
                        navigator.userAgent);
                },
            },
            {
                key: 'isFirefox',
                value: function () {
                    return navigator.userAgent.toLowerCase().
                        indexOf('firefox') > -1;
                },
            },
            {
                key: 'isIE11',
                value: function () {
                    if (-1 !== window.navigator.userAgent.indexOf('MSIE') ||
                        window.navigator.appVersion.indexOf('Trident/') >
                        -1) return !0;
                },
            },
            {
                key: 'isIE',
                value: function () {
                    var e = window.navigator.userAgent, t = e.indexOf('MSIE ');
                    if (t > 0) return parseInt(
                        e.substring(t + 5, e.indexOf('.', t)), 10);
                    if (e.indexOf('Trident/') > 0) {
                        var n = e.indexOf('rv:');
                        return parseInt(e.substring(n + 3, e.indexOf('.', n)),
                            10);
                    }
                    var i = e.indexOf('Edge/');
                    return i > 0 &&
                        parseInt(e.substring(i + 5, e.indexOf('.', i)), 10);
                },
            }]), n;
    }(), m = function () {
        function e (n) {t(this, e), this.ctx = n, this.w = n.w;}

        return i(e, [
            {
                key: 'getDefaultFilter', value: function (e, t) {
                    var n = this.w;
                    e.unfilter(!0), (new window.SVG.Filter).size('120%', '180%',
                        '-5%', '-40%'), 'none' !== n.config.states.normal.filter
                        ? this.applyFilter(e, t,
                            n.config.states.normal.filter.type,
                            n.config.states.normal.filter.value)
                        : n.config.chart.dropShadow.enabled &&
                        this.dropShadow(e, n.config.chart.dropShadow, t);
                },
            },
            {
                key: 'addNormalFilter', value: function (e, t) {
                    var n = this.w;
                    n.config.chart.dropShadow.enabled &&
                    !e.node.classList.contains('apexcharts-marker') &&
                    this.dropShadow(e, n.config.chart.dropShadow, t);
                },
            },
            {
                key: 'addLightenFilter',
                value: function (e, t, n) {
                    var i = this, a = this.w, r = n.intensity;
                    e.unfilter(!0), new window.SVG.Filter, e.filter(
                        (function (e) {
                            var n = a.config.chart.dropShadow;
                            (n.enabled
                                ? i.addShadow(e, t, n)
                                : e).componentTransfer({
                                rgb: {
                                    type: 'linear',
                                    slope: 1.5,
                                    intercept: r,
                                },
                            });
                        })), e.filterer.node.setAttribute('filterUnits',
                        'userSpaceOnUse'), this._scaleFilterSize(
                        e.filterer.node);
                },
            },
            {
                key: 'addDarkenFilter',
                value: function (e, t, n) {
                    var i = this, a = this.w, r = n.intensity;
                    e.unfilter(!0), new window.SVG.Filter, e.filter(
                        (function (e) {
                            var n = a.config.chart.dropShadow;
                            (n.enabled
                                ? i.addShadow(e, t, n)
                                : e).componentTransfer(
                                { rgb: { type: 'linear', slope: r } });
                        })), e.filterer.node.setAttribute('filterUnits',
                        'userSpaceOnUse'), this._scaleFilterSize(
                        e.filterer.node);
                },
            },
            {
                key: 'applyFilter',
                value: function (e, t, n) {
                    var i = arguments.length > 3 && void 0 !== arguments[3]
                        ? arguments[3]
                        : .5;
                    switch (n) {
                        case'none':
                            this.addNormalFilter(e, t);
                            break;
                        case'lighten':
                            this.addLightenFilter(e, t, { intensity: i });
                            break;
                        case'darken':
                            this.addDarkenFilter(e, t, { intensity: i });
                    }
                },
            },
            {
                key: 'addShadow',
                value: function (e, t, n) {
                    var i = n.blur, a = n.top, r = n.left, o = n.color,
                        s = n.opacity,
                        l = e.flood(Array.isArray(o) ? o[t] : o, s).
                            composite(e.sourceAlpha, 'in').
                            offset(r, a).
                            gaussianBlur(i).
                            merge(e.source);
                    return e.blend(e.source, l);
                },
            },
            {
                key: 'dropShadow',
                value: function (e, t) {
                    var n = arguments.length > 2 && void 0 !== arguments[2]
                        ? arguments[2]
                        : 0, i = t.top, a = t.left, r = t.blur, o = t.color,
                        s = t.opacity, l = t.noUserSpaceOnUse, c = this.w;
                    return e.unfilter(!0), p.isIE() && 'radialBar' ===
                    c.config.chart.type ||
                    (o = Array.isArray(o) ? o[n] : o, e.filter((function (e) {
                        var t;
                        t = p.isSafari() || p.isFirefox() || p.isIE()
                            ? e.flood(o, s).
                                composite(e.sourceAlpha, 'in').
                                offset(a, i).
                                gaussianBlur(r)
                            : e.flood(o, s).
                                composite(e.sourceAlpha, 'in').
                                offset(a, i).
                                gaussianBlur(r).
                                merge(e.source), e.blend(e.source, t);
                    })), l || e.filterer.node.setAttribute('filterUnits',
                        'userSpaceOnUse'), this._scaleFilterSize(
                        e.filterer.node)), e;
                },
            },
            {
                key: 'setSelectionFilter',
                value: function (e, t, n) {
                    var i = this.w;
                    if (void 0 !== i.globals.selectedDataPoints[t] &&
                        i.globals.selectedDataPoints[t].indexOf(n) > -1) {
                        e.node.setAttribute('selected', !0);
                        var a = i.config.states.active.filter;
                        'none' !== a && this.applyFilter(e, t, a.type, a.value);
                    }
                },
            },
            {
                key: '_scaleFilterSize',
                value: function (e) {
                    !function (t) {
                        for (var n in t) t.hasOwnProperty(n) &&
                        e.setAttribute(n, t[n]);
                    }({ width: '200%', height: '200%', x: '-50%', y: '-50%' });
                },
            }]), e;
    }(), g = function () {
        function e (n) {
            t(this, e), this.ctx = n, this.w = n.w, this.setEasingFunctions();
        }

        return i(e, [
            {
                key: 'setEasingFunctions', value: function () {
                    var e;
                    if (!this.w.globals.easing) {
                        switch (this.w.config.chart.animations.easing) {
                            case'linear':
                                e = '-';
                                break;
                            case'easein':
                                e = '<';
                                break;
                            case'easeout':
                                e = '>';
                                break;
                            case'easeinout':
                                e = '<>';
                                break;
                            case'swing':
                                e = function (e) {
                                    var t = 1.70158;
                                    return (e -= 1) * e * ((t + 1) * e + t) + 1;
                                };
                                break;
                            case'bounce':
                                e = function (e) {
                                    return e < 1 / 2.75 ? 7.5625 * e * e : e <
                                    2 / 2.75 ? 7.5625 * (e -= 1.5 / 2.75) * e +
                                        .75 : e < 2.5 / 2.75
                                        ? 7.5625 * (e -= 2.25 / 2.75) * e +
                                        .9375
                                        : 7.5625 * (e -= 2.625 / 2.75) * e +
                                        .984375;
                                };
                                break;
                            case'elastic':
                                e = function (e) {
                                    return e === !!e ? e : Math.pow(2,
                                        -10 * e) * Math.sin(
                                        (e - .075) * (2 * Math.PI) / .3) + 1;
                                };
                                break;
                            default:
                                e = '<>';
                        }
                        this.w.globals.easing = e;
                    }
                },
            },
            {
                key: 'animateLine',
                value: function (e, t, n, i) {e.attr(t).animate(i).attr(n);},
            },
            {
                key: 'animateCircleRadius',
                value: function (e, t, n, i, a, r) {
                    t || (t = 0), e.attr({ r: t }).
                        animate(i, a).
                        attr({ r: n }).
                        afterAll((function () {r();}));
                },
            },
            {
                key: 'animateCircle',
                value: function (e, t, n, i, a) {
                    e.attr({ r: t.r, cx: t.cx, cy: t.cy }).
                        animate(i, a).
                        attr({ r: n.r, cx: n.cx, cy: n.cy });
                },
            },
            {
                key: 'animateRect',
                value: function (e, t, n, i, a) {
                    e.attr(t).
                        animate(i).
                        attr(n).
                        afterAll((function () {return a();}));
                },
            },
            {
                key: 'animatePathsGradually',
                value: function (e) {
                    var t = e.el, n = e.realIndex, i = e.j, a = e.fill,
                        r = e.pathFrom, o = e.pathTo, s = e.speed, l = e.delay,
                        c = this.w, u = 0;
                    c.config.chart.animations.animateGradually.enabled &&
                    (u = c.config.chart.animations.animateGradually.delay), c.config.chart.animations.dynamicAnimation.enabled &&
                    c.globals.dataChanged && 'bar' !== c.config.chart.type &&
                    (u = 0), this.morphSVG(t, n, i,
                        'line' !== c.config.chart.type || c.globals.comboCharts
                            ? a
                            : 'stroke', r, o, s, l * u);
                },
            },
            {
                key: 'showDelayedElements',
                value: function () {
                    this.w.globals.delayedElements.forEach((function (e) {
                        e.el.classList.remove('apexcharts-element-hidden');
                    }));
                },
            },
            {
                key: 'animationCompleted', value: function (e) {
                    var t = this.w;
                    t.globals.animationEnded ||
                    (t.globals.animationEnded = !0, this.showDelayedElements(), 'function' ==
                    typeof t.config.chart.events.animationEnd &&
                    t.config.chart.events.animationEnd(this.ctx,
                        { el: e, w: t }));
                },
            },
            {
                key: 'morphSVG',
                value: function (e, t, n, i, a, r, o, s) {
                    var l = this, c = this.w;
                    a || (a = e.attr('pathFrom')), r || (r = e.attr('pathTo'));
                    var u = function (e) {
                        return 'radar' === c.config.chart.type &&
                        (o = 1), 'M 0 '.concat(c.globals.gridHeight);
                    };
                    (!a || a.indexOf('undefined') > -1 || a.indexOf('NaN') >
                        -1) && (a = u()), (!r || r.indexOf('undefined') > -1 ||
                        r.indexOf('NaN') > -1) &&
                    (r = u()), c.globals.shouldAnimate || (o = 1), e.plot(a).
                        animate(1, c.globals.easing, s).
                        plot(a).
                        animate(o, c.globals.easing, s).
                        plot(r).
                        afterAll((function () {
                            p.isNumber(n) ? n ===
                                c.globals.series[c.globals.maxValsInArrayIndex].length -
                                2 && c.globals.shouldAnimate &&
                                l.animationCompleted(e) : 'none' !== i &&
                                c.globals.shouldAnimate &&
                                (!c.globals.comboCharts && t ===
                                    c.globals.series.length - 1 ||
                                    c.globals.comboCharts) &&
                                l.animationCompleted(
                                    e), l.showDelayedElements();
                        }));
                },
            }]), e;
    }(), v = function () {
        function e (n) {t(this, e), this.ctx = n, this.w = n.w;}

        return i(e, [
            {
                key: 'drawLine',
                value: function (e, t, n, i) {
                    var a = arguments.length > 4 && void 0 !== arguments[4]
                        ? arguments[4]
                        : '#a8a8a8',
                        r = arguments.length > 5 && void 0 !== arguments[5]
                            ? arguments[5]
                            : 0,
                        o = arguments.length > 6 && void 0 !== arguments[6]
                            ? arguments[6]
                            : null, s = this.w, l = s.globals.dom.Paper.line().
                            attr({
                                x1: e,
                                y1: t,
                                x2: n,
                                y2: i,
                                stroke: a,
                                'stroke-dasharray': r,
                                'stroke-width': o,
                            });
                    return l;
                },
            },
            {
                key: 'drawRect',
                value: function () {
                    var e = arguments.length > 0 && void 0 !== arguments[0]
                        ? arguments[0]
                        : 0, t = arguments.length > 1 && void 0 !== arguments[1]
                        ? arguments[1]
                        : 0, n = arguments.length > 2 && void 0 !== arguments[2]
                        ? arguments[2]
                        : 0, i = arguments.length > 3 && void 0 !== arguments[3]
                        ? arguments[3]
                        : 0, a = arguments.length > 4 && void 0 !== arguments[4]
                        ? arguments[4]
                        : 0, r = arguments.length > 5 && void 0 !== arguments[5]
                        ? arguments[5]
                        : '#fefefe',
                        o = arguments.length > 6 && void 0 !== arguments[6]
                            ? arguments[6]
                            : 1,
                        s = arguments.length > 7 && void 0 !== arguments[7]
                            ? arguments[7]
                            : null,
                        l = arguments.length > 8 && void 0 !== arguments[8]
                            ? arguments[8]
                            : null,
                        c = arguments.length > 9 && void 0 !== arguments[9]
                            ? arguments[9]
                            : 0, u = this.w, d = u.globals.dom.Paper.rect();
                    return d.attr({
                        x: e,
                        y: t,
                        width: n > 0 ? n : 0,
                        height: i > 0 ? i : 0,
                        rx: a,
                        ry: a,
                        opacity: o,
                        'stroke-width': null !== s ? s : 0,
                        stroke: null !== l ? l : 'none',
                        'stroke-dasharray': c,
                    }), d.node.setAttribute('fill', r), d;
                },
            },
            {
                key: 'drawPolygon',
                value: function (e) {
                    var t = arguments.length > 1 && void 0 !== arguments[1]
                        ? arguments[1]
                        : '#e1e1e1',
                        n = arguments.length > 2 && void 0 !== arguments[2]
                            ? arguments[2]
                            : 1,
                        i = arguments.length > 3 && void 0 !== arguments[3]
                            ? arguments[3]
                            : 'none', a = this.w,
                        r = a.globals.dom.Paper.polygon(e).
                            attr({ fill: i, stroke: t, 'stroke-width': n });
                    return r;
                },
            },
            {
                key: 'drawCircle',
                value: function (e) {
                    var t = arguments.length > 1 && void 0 !== arguments[1]
                        ? arguments[1]
                        : null, n = this.w,
                        i = n.globals.dom.Paper.circle(2 * e);
                    return null !== t && i.attr(t), i;
                },
            },
            {
                key: 'drawPath',
                value: function (e) {
                    var t = e.d, n = void 0 === t ? '' : t, i = e.stroke,
                        a = void 0 === i ? '#a8a8a8' : i, r = e.strokeWidth,
                        o = void 0 === r ? 1 : r, s = e.fill, l = e.fillOpacity,
                        c = void 0 === l ? 1 : l, u = e.strokeOpacity,
                        d = void 0 === u ? 1 : u, h = e.classes,
                        f = e.strokeLinecap, p = void 0 === f ? null : f,
                        m = e.strokeDashArray, g = void 0 === m ? 0 : m,
                        v = this.w;
                    return null === p &&
                    (p = v.config.stroke.lineCap), (n.indexOf('undefined') >
                        -1 || n.indexOf('NaN') > -1) && (n = 'M 0 '.concat(
                        v.globals.gridHeight)), v.globals.dom.Paper.path(n).
                        attr({
                            fill: s,
                            'fill-opacity': c,
                            stroke: a,
                            'stroke-opacity': d,
                            'stroke-linecap': p,
                            'stroke-width': o,
                            'stroke-dasharray': g,
                            class: h,
                        });
                },
            },
            {
                key: 'group',
                value: function () {
                    var e = arguments.length > 0 && void 0 !== arguments[0]
                        ? arguments[0]
                        : null, t = this.w, n = t.globals.dom.Paper.group();
                    return null !== e && n.attr(e), n;
                },
            },
            {
                key: 'move',
                value: function (e, t) {return ['M', e, t].join(' ');},
            },
            {
                key: 'line',
                value: function (e, t) {
                    var n = arguments.length > 2 && void 0 !== arguments[2]
                        ? arguments[2]
                        : null, i = null;
                    return null === n ? i = ['L', e, t].join(' ') : 'H' === n
                        ? i = ['H', e].join(' ')
                        : 'V' === n && (i = ['V', t].join(' ')), i;
                },
            },
            {
                key: 'curve',
                value: function (e, t, n, i, a, r) {
                    return [
                        'C',
                        e,
                        t,
                        n,
                        i,
                        a,
                        r].join(' ');
                },
            },
            {
                key: 'quadraticCurve',
                value: function (e, t, n, i) {
                    return ['Q', e, t, n, i].join(' ');
                },
            },
            {
                key: 'arc',
                value: function (
                    e, t, n, i, a, r, o) {
                    var s = arguments.length > 7 && void 0 !== arguments[7] &&
                        arguments[7], l = 'A';
                    s && (l = 'a');
                    var c = [l, e, t, n, i, a, r, o].join(' ');
                    return c;
                },
            },
            {
                key: 'renderPaths', value: function (e) {
                    var t, n = e.j, i = e.realIndex, a = e.pathFrom,
                        r = e.pathTo, s = e.stroke, l = e.strokeWidth,
                        c = e.strokeLinecap, u = e.fill, d = e.animationDelay,
                        h = e.initialSpeed, f = e.dataChangeSpeed,
                        p = e.className, v = e.shouldClipToGrid,
                        y = void 0 === v || v, b = e.bindEventsOnPaths,
                        x = void 0 === b || b, _ = e.drawShadow,
                        w = void 0 === _ || _, k = this.w, M = new m(this.ctx),
                        L = new g(this.ctx),
                        S = this.w.config.chart.animations.enabled, T = S &&
                        this.w.config.chart.animations.dynamicAnimation.enabled,
                        A = !!(S && !k.globals.resized || T &&
                            k.globals.dataChanged && k.globals.shouldAnimate);
                    A ? t = a : (t = r, k.globals.animationEnded = !0);
                    var D, C = k.config.stroke.dashArray;
                    D = Array.isArray(C) ? C[i] : k.config.stroke.dashArray;
                    var E = this.drawPath({
                        d: t,
                        stroke: s,
                        strokeWidth: l,
                        fill: u,
                        fillOpacity: 1,
                        classes: p,
                        strokeLinecap: c,
                        strokeDashArray: D,
                    });
                    if (E.attr('index', i), y && E.attr({
                        'clip-path': 'url(#gridRectMask'.concat(k.globals.cuid,
                            ')'),
                    }), 'none' !==
                    k.config.states.normal.filter.type) M.getDefaultFilter(E,
                        i); else if (k.config.chart.dropShadow.enabled && w &&
                        (!k.config.chart.dropShadow.enabledOnSeries ||
                            k.config.chart.dropShadow.enabledOnSeries && -1 !==
                            k.config.chart.dropShadow.enabledOnSeries.indexOf(
                                i))) {
                        var O = k.config.chart.dropShadow;
                        M.dropShadow(E, O, i);
                    }
                    x && (E.node.addEventListener('mouseenter',
                        this.pathMouseEnter.bind(this,
                            E)), E.node.addEventListener('mouseleave',
                        this.pathMouseLeave.bind(this,
                            E)), E.node.addEventListener('mousedown',
                        this.pathMouseDown.bind(this, E))), E.attr(
                        { pathTo: r, pathFrom: a });
                    var Y = {
                        el: E,
                        j: n,
                        realIndex: i,
                        pathFrom: a,
                        pathTo: r,
                        fill: u,
                        strokeWidth: l,
                        delay: d,
                    };
                    return !S || k.globals.resized || k.globals.dataChanged
                        ? !k.globals.resized && k.globals.dataChanged ||
                        L.showDelayedElements()
                        : L.animatePathsGradually(o(o({}, Y), {},
                            { speed: h })), k.globals.dataChanged && T && A &&
                    L.animatePathsGradually(o(o({}, Y), {}, { speed: f })), E;
                },
            },
            {
                key: 'drawPattern',
                value: function (e, t, n) {
                    var i = arguments.length > 3 && void 0 !== arguments[3]
                        ? arguments[3]
                        : '#a8a8a8',
                        a = arguments.length > 4 && void 0 !== arguments[4]
                            ? arguments[4]
                            : 0, r = this.w,
                        o = r.globals.dom.Paper.pattern(t, n, (function (r) {
                            'horizontalLines' === e
                                ? r.line(0, 0, n, 0).
                                    stroke({ color: i, width: a + 1 })
                                : 'verticalLines' === e
                                ? r.line(0, 0, 0, t).
                                    stroke({ color: i, width: a + 1 })
                                : 'slantedLines' === e
                                    ? r.line(0, 0, t, n).
                                        stroke({ color: i, width: a })
                                    : 'squares' === e
                                        ? r.rect(t, n).
                                            fill('none').
                                            stroke({ color: i, width: a })
                                        : 'circles' === e && r.circle(t).
                                        fill('none').
                                        stroke({ color: i, width: a });
                        }));
                    return o;
                },
            },
            {
                key: 'drawGradient', value: function (e, t, n, i, a) {
                    var r, o = arguments.length > 5 && void 0 !== arguments[5]
                        ? arguments[5]
                        : null,
                        s = arguments.length > 6 && void 0 !== arguments[6]
                            ? arguments[6]
                            : null,
                        l = arguments.length > 7 && void 0 !== arguments[7]
                            ? arguments[7]
                            : null,
                        c = arguments.length > 8 && void 0 !== arguments[8]
                            ? arguments[8]
                            : 0, u = this.w;
                    t.length < 9 && 0 === t.indexOf('#') &&
                    (t = p.hexToRgba(t, i)), n.length < 9 && 0 ===
                    n.indexOf('#') && (n = p.hexToRgba(n, a));
                    var d = 0, h = 1, f = 1, m = null;
                    null !== s &&
                    (d = void 0 !== s[0] ? s[0] / 100 : 0, h = void 0 !== s[1]
                        ? s[1] / 100
                        : 1, f = void 0 !== s[2]
                        ? s[2] / 100
                        : 1, m = void 0 !== s[3] ? s[3] / 100 : null);
                    var g = !('donut' !== u.config.chart.type && 'pie' !==
                        u.config.chart.type && 'polarArea' !==
                        u.config.chart.type && 'bubble' !==
                        u.config.chart.type);
                    if (r = null === l || 0 === l.length
                        ? u.globals.dom.Paper.gradient(g ? 'radial' : 'linear',
                            (function (e) {
                                e.at(d, t, i), e.at(h, n, a), e.at(f, n,
                                    a), null !== m && e.at(m, t, i);
                            }))
                        : u.globals.dom.Paper.gradient(g ? 'radial' : 'linear',
                            (function (e) {
                                (Array.isArray(l[c])
                                    ? l[c]
                                    : l).forEach((function (t) {
                                    e.at(t.offset / 100, t.color, t.opacity);
                                }));
                            })), g) {
                        var v = u.globals.gridWidth / 2,
                            y = u.globals.gridHeight / 2;
                        'bubble' !== u.config.chart.type ? r.attr({
                            gradientUnits: 'userSpaceOnUse',
                            cx: v,
                            cy: y,
                            r: o,
                        }) : r.attr({ cx: .5, cy: .5, r: .8, fx: .2, fy: .2 });
                    } else 'vertical' === e
                        ? r.from(0, 0).to(0, 1)
                        : 'diagonal' === e
                            ? r.from(0, 0).to(1, 1)
                            : 'horizontal' === e
                                ? r.from(0, 1).to(1, 1)
                                : 'diagonal2' === e && r.from(1, 0).to(0, 1);
                    return r;
                },
            },
            {
                key: 'drawText',
                value: function (e) {
                    var t, n = e.x, i = e.y, a = e.text, r = e.textAnchor,
                        o = e.fontSize, s = e.fontFamily, l = e.fontWeight,
                        c = e.foreColor, u = e.opacity, d = e.cssClass,
                        h = void 0 === d ? '' : d, f = e.isPlainText,
                        p = void 0 === f || f, m = this.w;
                    return void 0 === a && (a = ''), r || (r = 'start'), c &&
                    c.length || (c = m.config.chart.foreColor), s = s ||
                        m.config.chart.fontFamily, l = l ||
                        'regular', (t = Array.isArray(a)
                        ? m.globals.dom.Paper.text((function (e) {
                            for (var t = 0; t < a.length; t++) 0 === t
                                ? e.tspan(a[t])
                                : e.tspan(a[t]).newLine();
                        }))
                        : p
                            ? m.globals.dom.Paper.plain(a)
                            : m.globals.dom.Paper.text(
                                (function (e) {return e.tspan(a);}))).attr({
                        x: n,
                        y: i,
                        'text-anchor': r,
                        'dominant-baseline': 'auto',
                        'font-size': o,
                        'font-family': s,
                        'font-weight': l,
                        fill: c,
                        class: 'apexcharts-text ' + h,
                    }), t.node.style.fontFamily = s, t.node.style.opacity = u, t;
                },
            },
            {
                key: 'drawMarker', value: function (e, t, n) {
                    e = e || 0;
                    var i = n.pSize || 0, a = null;
                    if ('square' === n.shape) {
                        var r = void 0 === n.pRadius
                            ? i / 2
                            : n.pRadius;
                        null !== t && i || (i = 0, r = 0);
                        var o = 1.2 * i + r, s = this.drawRect(o, o, o, o, r);
                        s.attr({
                            x: e - o / 2,
                            y: t - o / 2,
                            cx: e,
                            cy: t,
                            class: n.class ? n.class : '',
                            fill: n.pointFillColor,
                            'fill-opacity': n.pointFillOpacity
                                ? n.pointFillOpacity
                                : 1,
                            stroke: n.pointStrokeColor,
                            'stroke-width': n.pWidth ? n.pWidth : 0,
                            'stroke-opacity': n.pointStrokeOpacity
                                ? n.pointStrokeOpacity
                                : 1,
                        }), a = s;
                    } else 'circle' !== n.shape && n.shape ||
                    (p.isNumber(t) || (i = 0, t = 0), a = this.drawCircle(i, {
                        cx: e,
                        cy: t,
                        class: n.class ? n.class : '',
                        stroke: n.pointStrokeColor,
                        fill: n.pointFillColor,
                        'fill-opacity': n.pointFillOpacity
                            ? n.pointFillOpacity
                            : 1,
                        'stroke-width': n.pWidth ? n.pWidth : 0,
                        'stroke-opacity': n.pointStrokeOpacity
                            ? n.pointStrokeOpacity
                            : 1,
                    }));
                    return a;
                },
            },
            {
                key: 'pathMouseEnter',
                value: function (e, t) {
                    var n = this.w, i = new m(this.ctx),
                        a = parseInt(e.node.getAttribute('index'), 10),
                        r = parseInt(e.node.getAttribute('j'), 10);
                    if ('function' ==
                    typeof n.config.chart.events.dataPointMouseEnter &&
                    n.config.chart.events.dataPointMouseEnter(t, this.ctx, {
                        seriesIndex: a,
                        dataPointIndex: r,
                        w: n,
                    }), this.ctx.events.fireEvent('dataPointMouseEnter', [
                        t,
                        this.ctx,
                        {
                            seriesIndex: a,
                            dataPointIndex: r,
                            w: n,
                        }]), ('none' === n.config.states.active.filter.type ||
                        'true' !== e.node.getAttribute('selected')) &&
                    'none' !== n.config.states.hover.filter.type && 'none' !==
                    n.config.states.active.filter.type &&
                    !n.globals.isTouchDevice) {
                        var o = n.config.states.hover.filter;
                        i.applyFilter(e, a, o.type, o.value);
                    }
                },
            },
            {
                key: 'pathMouseLeave',
                value: function (e, t) {
                    var n = this.w, i = new m(this.ctx),
                        a = parseInt(e.node.getAttribute('index'), 10),
                        r = parseInt(e.node.getAttribute('j'), 10);
                    'function' ==
                    typeof n.config.chart.events.dataPointMouseLeave &&
                    n.config.chart.events.dataPointMouseLeave(t, this.ctx, {
                        seriesIndex: a,
                        dataPointIndex: r,
                        w: n,
                    }), this.ctx.events.fireEvent('dataPointMouseLeave', [
                        t,
                        this.ctx,
                        {
                            seriesIndex: a,
                            dataPointIndex: r,
                            w: n,
                        }]), 'none' !== n.config.states.active.filter.type &&
                    'true' === e.node.getAttribute('selected') || 'none' !==
                    n.config.states.hover.filter.type &&
                    i.getDefaultFilter(e, a);
                },
            },
            {
                key: 'pathMouseDown', value: function (e, t) {
                    var n = this.w, i = new m(this.ctx),
                        a = parseInt(e.node.getAttribute('index'), 10),
                        r = parseInt(e.node.getAttribute('j'), 10), o = 'false';
                    if ('true' === e.node.getAttribute('selected')) {
                        if (e.node.setAttribute('selected',
                            'false'), n.globals.selectedDataPoints[a].indexOf(
                            r) > -1) {
                            var s = n.globals.selectedDataPoints[a].indexOf(r);
                            n.globals.selectedDataPoints[a].splice(s, 1);
                        }
                    } else {
                        if (!n.config.states.active.allowMultipleDataPointsSelection &&
                            n.globals.selectedDataPoints.length > 0) {
                            n.globals.selectedDataPoints = [];
                            var l = n.globals.dom.Paper.select(
                                '.apexcharts-series path').members,
                                c = n.globals.dom.Paper.select(
                                    '.apexcharts-series circle, .apexcharts-series rect').members,
                                u = function (e) {
                                    Array.prototype.forEach.call(e,
                                        (function (e) {
                                            e.node.setAttribute('selected',
                                                'false'), i.getDefaultFilter(e,
                                                a);
                                        }));
                                };
                            u(l), u(c);
                        }
                        e.node.setAttribute('selected',
                            'true'), o = 'true', void 0 ===
                        n.globals.selectedDataPoints[a] &&
                        (n.globals.selectedDataPoints[a] = []), n.globals.selectedDataPoints[a].push(
                            r);
                    }
                    if ('true' === o) {
                        var d = n.config.states.active.filter;
                        'none' !== d && i.applyFilter(e, a, d.type, d.value);
                    } else 'none' !== n.config.states.active.filter.type &&
                    i.getDefaultFilter(e, a);
                    'function' ==
                    typeof n.config.chart.events.dataPointSelection &&
                    n.config.chart.events.dataPointSelection(t, this.ctx, {
                        selectedDataPoints: n.globals.selectedDataPoints,
                        seriesIndex: a,
                        dataPointIndex: r,
                        w: n,
                    }), t && this.ctx.events.fireEvent('dataPointSelection', [
                        t,
                        this.ctx,
                        {
                            selectedDataPoints: n.globals.selectedDataPoints,
                            seriesIndex: a,
                            dataPointIndex: r,
                            w: n,
                        }]);
                },
            },
            {
                key: 'rotateAroundCenter',
                value: function (e) {
                    var t = e.getBBox();
                    return { x: t.x + t.width / 2, y: t.y + t.height / 2 };
                },
            },
            {
                key: 'getTextRects',
                value: function (e, t, n, i) {
                    var a = !(arguments.length > 4 && void 0 !==
                        arguments[4]) || arguments[4], r = this.w,
                        o = this.drawText({
                            x: -200,
                            y: -200,
                            text: e,
                            textAnchor: 'start',
                            fontSize: t,
                            fontFamily: n,
                            foreColor: '#fff',
                            opacity: 0,
                        });
                    i && o.attr('transform', i), r.globals.dom.Paper.add(o);
                    var s = o.bbox();
                    return a ||
                    (s = o.node.getBoundingClientRect()), o.remove(), {
                        width: s.width,
                        height: s.height,
                    };
                },
            },
            {
                key: 'placeTextWithEllipsis',
                value: function (e, t, n) {
                    if ('function' == typeof e.getComputedTextLength &&
                        (e.textContent = t, t.length > 0 &&
                        e.getComputedTextLength() >= n / .8)) {
                        for (var i = t.length - 3; i >
                        0; i -= 3) if (e.getSubStringLength(0, i) <= n /
                            .8) return void (e.textContent = t.substring(0, i) +
                            '...');
                        e.textContent = '.';
                    }
                },
            }], [
            {
                key: 'setAttrs',
                value: function (e, t) {
                    for (var n in t) t.hasOwnProperty(n) &&
                    e.setAttribute(n, t[n]);
                },
            }]), e;
    }(), y = function () {
        function e (n) {t(this, e), this.w = n.w, this.annoCtx = n;}

        return i(e, [
            {
                key: 'setOrientations',
                value: function (e) {
                    var t = arguments.length > 1 && void 0 !== arguments[1]
                        ? arguments[1]
                        : null, n = this.w;
                    if ('vertical' === e.label.orientation) {
                        var i = null !== t
                            ? t
                            : 0, a = n.globals.dom.baseEl.querySelector(
                            '.apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel=\''.concat(
                                i, '\']'));
                        if (null !== a) {
                            var r = a.getBoundingClientRect();
                            a.setAttribute('x',
                                parseFloat(a.getAttribute('x')) - r.height +
                                4), 'top' === e.label.position
                                ? a.setAttribute('y',
                                    parseFloat(a.getAttribute('y')) + r.width)
                                : a.setAttribute('y',
                                    parseFloat(a.getAttribute('y')) - r.width);
                            var o = this.annoCtx.graphics.rotateAroundCenter(a),
                                s = o.x, l = o.y;
                            a.setAttribute('transform',
                                'rotate(-90 '.concat(s, ' ').concat(l, ')'));
                        }
                    }
                },
            },
            {
                key: 'addBackgroundToAnno',
                value: function (e, t) {
                    var n = this.w;
                    if (!e || !t.label.text || t.label.text &&
                        !t.label.text.trim()) return null;
                    var i = n.globals.dom.baseEl.querySelector(
                        '.apexcharts-grid').getBoundingClientRect(),
                        a = e.getBoundingClientRect(),
                        r = t.label.style.padding.left,
                        o = t.label.style.padding.right,
                        s = t.label.style.padding.top,
                        l = t.label.style.padding.bottom;
                    'vertical' === t.label.orientation &&
                    (s = t.label.style.padding.left, l = t.label.style.padding.right, r = t.label.style.padding.top, o = t.label.style.padding.bottom);
                    var c = a.left - i.left - r, u = a.top - i.top - s,
                        d = this.annoCtx.graphics.drawRect(
                            c - n.globals.barPadForNumericAxis, u,
                            a.width + r + o, a.height + s + l,
                            t.label.borderRadius, t.label.style.background, 1,
                            t.label.borderWidth, t.label.borderColor, 0);
                    return t.id && d.node.classList.add(t.id), d;
                },
            },
            {
                key: 'annotationsBackground',
                value: function () {
                    var e = this, t = this.w, n = function (n, i, a) {
                        var r = t.globals.dom.baseEl.querySelector(
                            '.apexcharts-'.concat(a,
                                '-annotations .apexcharts-').
                                concat(a, '-annotation-label[rel=\'').
                                concat(i, '\']'));
                        if (r) {
                            var o = r.parentNode,
                                s = e.addBackgroundToAnno(r, n);
                            s && o.insertBefore(s.node, r);
                        }
                    };
                    t.config.annotations.xaxis.map((function (e, t) {
                        n(e, t, 'xaxis');
                    })), t.config.annotations.yaxis.map((function (e, t) {
                        n(e, t, 'yaxis');
                    })), t.config.annotations.points.map(
                        (function (e, t) {n(e, t, 'point');}));
                },
            },
            {
                key: 'getStringX', value: function (e) {
                    var t = this.w, n = e;
                    t.config.xaxis.convertedCatToNumeric &&
                    t.globals.categoryLabels.length &&
                    (e = t.globals.categoryLabels.indexOf(e) + 1);
                    var i = t.globals.labels.indexOf(e),
                        a = t.globals.dom.baseEl.querySelector(
                            '.apexcharts-xaxis-texts-g text:nth-child(' +
                            (i + 1) + ')');
                    return a && (n = parseFloat(a.getAttribute('x'))), n;
                },
            }]), e;
    }(), b = function () {
        function e (n) {
            t(this,
                e), this.w = n.w, this.annoCtx = n, this.invertAxis = this.annoCtx.invertAxis;
        }

        return i(e, [
            {
                key: 'addXaxisAnnotation', value: function (e, t, n) {
                    var i = this.w,
                        a = this.invertAxis ? i.globals.minY : i.globals.minX,
                        r = this.invertAxis ? i.globals.maxY : i.globals.maxX,
                        o = this.invertAxis
                            ? i.globals.yRange[0]
                            : i.globals.xRange,
                        s = (e.x - a) / (o / i.globals.gridWidth);
                    this.annoCtx.inversedReversedAxis &&
                    (s = (r - e.x) / (o / i.globals.gridWidth));
                    var l = e.label.text;
                    'category' !== i.config.xaxis.type &&
                    !i.config.xaxis.convertedCatToNumeric || this.invertAxis ||
                    i.globals.dataFormatXNumeric ||
                    (s = this.annoCtx.helpers.getStringX(e.x));
                    var c = e.strokeDashArray;
                    if (p.isNumber(s)) {
                        if (null === e.x2 || void 0 === e.x2) {
                            var u = this.annoCtx.graphics.drawLine(
                                s + e.offsetX, 0 + e.offsetY, s + e.offsetX,
                                i.globals.gridHeight + e.offsetY, e.borderColor,
                                c, e.borderWidth);
                            t.appendChild(u.node), e.id &&
                            u.node.classList.add(e.id);
                        } else {
                            var d = (e.x2 - a) / (o / i.globals.gridWidth);
                            if (this.annoCtx.inversedReversedAxis &&
                            (d = (r - e.x2) /
                                (o / i.globals.gridWidth)), 'category' !==
                            i.config.xaxis.type &&
                            !i.config.xaxis.convertedCatToNumeric ||
                            this.invertAxis || i.globals.dataFormatXNumeric ||
                            (d = this.annoCtx.helpers.getStringX(e.x2)), d <
                            s) {
                                var h = s;
                                s = d, d = h;
                            }
                            var f = this.annoCtx.graphics.drawRect(
                                s + e.offsetX, 0 + e.offsetY, d - s,
                                i.globals.gridHeight + e.offsetY, 0,
                                e.fillColor, e.opacity, 1, e.borderColor, c);
                            f.node.classList.add(
                                'apexcharts-annotation-rect'), f.attr(
                                'clip-path',
                                'url(#gridRectMask'.concat(i.globals.cuid,
                                    ')')), t.appendChild(f.node), e.id &&
                            f.node.classList.add(e.id);
                        }
                        var m = 'top' === e.label.position
                            ? 4
                            : i.globals.gridHeight,
                            g = this.annoCtx.graphics.getTextRects(l,
                                parseFloat(e.label.style.fontSize)),
                            v = this.annoCtx.graphics.drawText({
                                x: s + e.label.offsetX,
                                y: m + e.label.offsetY -
                                    ('vertical' === e.label.orientation
                                        ? 'top' === e.label.position ? g.width /
                                            2 - 12 : -g.width / 2
                                        : 0),
                                text: l,
                                textAnchor: e.label.textAnchor,
                                fontSize: e.label.style.fontSize,
                                fontFamily: e.label.style.fontFamily,
                                fontWeight: e.label.style.fontWeight,
                                foreColor: e.label.style.color,
                                cssClass: 'apexcharts-xaxis-annotation-label '.concat(
                                    e.label.style.cssClass, ' ').
                                    concat(e.id ? e.id : ''),
                            });
                        v.attr({ rel: n }), t.appendChild(
                            v.node), this.annoCtx.helpers.setOrientations(e, n);
                    }
                },
            },
            {
                key: 'drawXAxisAnnotations',
                value: function () {
                    var e = this, t = this.w, n = this.annoCtx.graphics.group(
                        { class: 'apexcharts-xaxis-annotations' });
                    return t.config.annotations.xaxis.map((function (t, i) {
                        e.addXaxisAnnotation(t, n.node, i);
                    })), n;
                },
            }]), e;
    }(), x = function () {
        function e (n) {t(this, e), this.ctx = n, this.w = n.w;}

        return i(e, [
            {
                key: 'getStackedSeriesTotals',
                value: function () {
                    var e = this.w, t = [];
                    if (0 === e.globals.series.length) return t;
                    for (var n = 0; n <
                    e.globals.series[e.globals.maxValsInArrayIndex].length; n++) {
                        for (var i = 0, a = 0; a <
                        e.globals.series.length; a++) void 0 !==
                        e.globals.series[a][n] && (i += e.globals.series[a][n]);
                        t.push(i);
                    }
                    return e.globals.stackedSeriesTotals = t, t;
                },
            },
            {
                key: 'getSeriesTotalByIndex',
                value: function () {
                    var e = arguments.length > 0 && void 0 !== arguments[0]
                        ? arguments[0]
                        : null;
                    return null === e
                        ? this.w.config.series.reduce(
                            (function (e, t) {return e + t;}), 0)
                        : this.w.globals.series[e].reduce(
                            (function (e, t) {return e + t;}), 0);
                },
            },
            {
                key: 'isSeriesNull',
                value: function () {
                    var e = arguments.length > 0 && void 0 !== arguments[0]
                        ? arguments[0]
                        : null;
                    return 0 === (null === e
                        ? this.w.config.series.filter(
                            (function (e) {return null !== e;}))
                        : this.w.config.series[e].data.filter(
                            (function (e) {return null !== e;}))).length;
                },
            },
            {
                key: 'seriesHaveSameValues',
                value: function (e) {
                    return this.w.globals.series[e].every(
                        (function (e, t, n) {return e === n[0];}));
                },
            },
            {
                key: 'getCategoryLabels',
                value: function (e) {
                    var t = this.w, n = e.slice();
                    return t.config.xaxis.convertedCatToNumeric && (n = e.map(
                        (function (e, n) {
                            return t.config.xaxis.labels.formatter(
                                e - t.globals.minX + 1);
                        }))), n;
                },
            },
            {
                key: 'getLargestSeries', value: function () {
                    var e = this.w;
                    e.globals.maxValsInArrayIndex = e.globals.series.map(
                        (function (e) {return e.length;})).
                        indexOf(Math.max.apply(Math, e.globals.series.map(
                            (function (e) {return e.length;}))));
                },
            },
            {
                key: 'getLargestMarkerSize',
                value: function () {
                    var e = this.w, t = 0;
                    return e.globals.markers.size.forEach((function (e) {
                        t = Math.max(t, e);
                    })), e.globals.markers.largestSize = t, t;
                },
            },
            {
                key: 'getSeriesTotals', value: function () {
                    var e = this.w;
                    e.globals.seriesTotals = e.globals.series.map(
                        (function (e, t) {
                            var n = 0;
                            if (Array.isArray(e)) for (var i = 0; i <
                            e.length; i++) n += e[i]; else n += e;
                            return n;
                        }));
                },
            },
            {
                key: 'getSeriesTotalsXRange',
                value: function (e, t) {
                    var n = this.w;
                    return n.globals.series.map((function (i, a) {
                        for (var r = 0, o = 0; o <
                        i.length; o++) n.globals.seriesX[a][o] > e &&
                        n.globals.seriesX[a][o] < t && (r += i[o]);
                        return r;
                    }));
                },
            },
            {
                key: 'getPercentSeries', value: function () {
                    var e = this.w;
                    e.globals.seriesPercent = e.globals.series.map(
                        (function (t, n) {
                            var i = [];
                            if (Array.isArray(t)) for (var a = 0; a <
                            t.length; a++) {
                                var r = e.globals.stackedSeriesTotals[a], o = 0;
                                r && (o = 100 * t[a] / r), i.push(o);
                            } else {
                                var s = 100 * t / e.globals.seriesTotals.reduce(
                                    (function (e, t) {return e + t;}), 0);
                                i.push(s);
                            }
                            return i;
                        }));
                },
            },
            {
                key: 'getCalculatedRatios',
                value: function () {
                    var e, t, n, i, a = this.w.globals, r = [], o = 0, s = [],
                        l = .1, c = 0;
                    if (a.yRange = [], a.isMultipleYAxis) for (var u = 0; u <
                    a.minYArr.length; u++) a.yRange.push(
                        Math.abs(a.minYArr[u] - a.maxYArr[u])), s.push(
                        0); else a.yRange.push(Math.abs(a.minY - a.maxY));
                    a.xRange = Math.abs(a.maxX - a.minX), a.zRange = Math.abs(
                        a.maxZ - a.minZ);
                    for (var d = 0; d < a.yRange.length; d++) r.push(
                        a.yRange[d] / a.gridHeight);
                    if (t = a.xRange / a.gridWidth, n = Math.abs(
                        a.initialMaxX - a.initialMinX) /
                        a.gridWidth, e = a.yRange / a.gridWidth, i = a.xRange /
                        a.gridHeight, (o = a.zRange / a.gridHeight * 16) ||
                    (o = 1), a.minY !== Number.MIN_VALUE && 0 !==
                    Math.abs(a.minY) && (a.hasNegs = !0), a.isMultipleYAxis) {
                        s = [];
                        for (var h = 0; h < r.length; h++) s.push(
                            -a.minYArr[h] / r[h]);
                    } else s.push(-a.minY / r[0]), a.minY !==
                    Number.MIN_VALUE && 0 !== Math.abs(a.minY) &&
                    (l = -a.minY / e, c = a.minX / t);
                    return {
                        yRatio: r,
                        invertedYRatio: e,
                        zRatio: o,
                        xRatio: t,
                        initialXRatio: n,
                        invertedXRatio: i,
                        baseLineInvertedY: l,
                        baseLineY: s,
                        baseLineX: c,
                    };
                },
            },
            {
                key: 'getLogSeries',
                value: function (e) {
                    var t = this, n = this.w;
                    return n.globals.seriesLog = e.map((function (e, i) {
                        return n.config.yaxis[i] &&
                        n.config.yaxis[i].logarithmic ? e.map((function (e) {
                            return null === e
                                ? null
                                : t.getLogVal(e, i);
                        })) : e;
                    })), n.globals.invalidLogScale ? e : n.globals.seriesLog;
                },
            },
            {
                key: 'getLogVal', value: function (e, t) {
                    var n = this.w;
                    return (Math.log(e) - Math.log(n.globals.minYArr[t])) /
                        (Math.log(n.globals.maxYArr[t]) -
                            Math.log(n.globals.minYArr[t]));
                },
            },
            {
                key: 'getLogYRatios',
                value: function (e) {
                    var t = this, n = this.w, i = this.w.globals;
                    return i.yLogRatio = e.slice(), i.logYRange = i.yRange.map(
                        (function (e, a) {
                            if (n.config.yaxis[a] &&
                                t.w.config.yaxis[a].logarithmic) {
                                var r, o = -Number.MAX_VALUE,
                                    s = Number.MIN_VALUE;
                                return i.seriesLog.forEach((function (e, t) {
                                    e.forEach((function (e) {
                                        n.config.yaxis[t] &&
                                        n.config.yaxis[t].logarithmic &&
                                        (o = Math.max(e, o), s = Math.min(e,
                                            s));
                                    }));
                                })), r = Math.pow(i.yRange[a], Math.abs(s - o) /
                                    i.yRange[a]), i.yLogRatio[a] = r /
                                    i.gridHeight, r;
                            }
                        })), i.invalidLogScale ? e.slice() : i.yLogRatio;
                },
            }], [
            {
                key: 'checkComboSeries', value: function (e) {
                    var t = !1, n = 0;
                    return e.length && void 0 !== e[0].type &&
                    (t = !0, e.forEach((function (e) {
                        'bar' !== e.type && 'column' !== e.type &&
                        'candlestick' !== e.type || n++;
                    }))), { comboBarCount: n, comboCharts: t };
                },
            },
            {
                key: 'extendArrayProps',
                value: function (e, t, n) {
                    return t.yaxis &&
                    (t = e.extendYAxis(t, n)), t.annotations &&
                    (t.annotations.yaxis &&
                    (t = e.extendYAxisAnnotations(t)), t.annotations.xaxis &&
                    (t = e.extendXAxisAnnotations(t)), t.annotations.points &&
                    (t = e.extendPointAnnotations(t))), t;
                },
            }]), e;
    }(), _ = function () {
        function e (n) {t(this, e), this.w = n.w, this.annoCtx = n;}

        return i(e, [
            {
                key: 'addYaxisAnnotation', value: function (e, t, n) {
                    var i, a = this.w, r = e.strokeDashArray,
                        o = this._getY1Y2('y1', e), s = e.label.text;
                    if (null === e.y2 || void 0 === e.y2) {
                        var l = this.annoCtx.graphics.drawLine(0 + e.offsetX,
                            o + e.offsetY, this._getYAxisAnnotationWidth(e),
                            o + e.offsetY, e.borderColor, r, e.borderWidth);
                        t.appendChild(l.node), e.id &&
                        l.node.classList.add(e.id);
                    } else {
                        if ((i = this._getY1Y2('y2', e)) > o) {
                            var c = o;
                            o = i, i = c;
                        }
                        var u = this.annoCtx.graphics.drawRect(0 + e.offsetX,
                            i + e.offsetY, this._getYAxisAnnotationWidth(e),
                            o - i, 0, e.fillColor, e.opacity, 1, e.borderColor,
                            r);
                        u.node.classList.add(
                            'apexcharts-annotation-rect'), u.attr('clip-path',
                            'url(#gridRectMask'.concat(a.globals.cuid,
                                ')')), t.appendChild(u.node), e.id &&
                        u.node.classList.add(e.id);
                    }
                    var d = 'right' === e.label.position
                        ? a.globals.gridWidth
                        : 0, h = this.annoCtx.graphics.drawText({
                        x: d + e.label.offsetX,
                        y: (i || o) + e.label.offsetY - 3,
                        text: s,
                        textAnchor: e.label.textAnchor,
                        fontSize: e.label.style.fontSize,
                        fontFamily: e.label.style.fontFamily,
                        fontWeight: e.label.style.fontWeight,
                        foreColor: e.label.style.color,
                        cssClass: 'apexcharts-yaxis-annotation-label '.concat(
                            e.label.style.cssClass, ' ').
                            concat(e.id ? e.id : ''),
                    });
                    h.attr({ rel: n }), t.appendChild(h.node);
                },
            },
            {
                key: '_getY1Y2',
                value: function (e, t) {
                    var n, i = 'y1' === e ? t.y : t.y2, a = this.w;
                    if (this.annoCtx.invertAxis) {
                        var r = a.globals.labels.indexOf(i);
                        a.config.xaxis.convertedCatToNumeric &&
                        (r = a.globals.categoryLabels.indexOf(i));
                        var o = a.globals.dom.baseEl.querySelector(
                            '.apexcharts-yaxis-texts-g text:nth-child(' +
                            (r + 1) + ')');
                        o && (n = parseFloat(o.getAttribute('y')));
                    } else {
                        var s;
                        s = a.config.yaxis[t.yAxisIndex].logarithmic
                            ? (i = new x(this.annoCtx.ctx).getLogVal(i,
                            t.yAxisIndex)) / a.globals.yLogRatio[t.yAxisIndex]
                            : (i - a.globals.minYArr[t.yAxisIndex]) /
                            (a.globals.yRange[t.yAxisIndex] /
                                a.globals.gridHeight), n = a.globals.gridHeight -
                            s, a.config.yaxis[t.yAxisIndex] &&
                        a.config.yaxis[t.yAxisIndex].reversed && (n = s);
                    }
                    return n;
                },
            },
            {
                key: '_getYAxisAnnotationWidth',
                value: function (e) {
                    var t = this.w;
                    return t.globals.gridWidth, (e.width.indexOf('%') > -1
                        ? t.globals.gridWidth * parseInt(e.width, 10) / 100
                        : parseInt(e.width, 10)) + e.offsetX;
                },
            },
            {
                key: 'drawYAxisAnnotations',
                value: function () {
                    var e = this, t = this.w, n = this.annoCtx.graphics.group(
                        { class: 'apexcharts-yaxis-annotations' });
                    return t.config.annotations.yaxis.map((function (t, i) {
                        e.addYaxisAnnotation(t, n.node, i);
                    })), n;
                },
            }]), e;
    }(), w = function () {
        function e (n) {t(this, e), this.w = n.w, this.annoCtx = n;}

        return i(e, [
            {
                key: 'addPointAnnotation', value: function (e, t, n) {
                    var i = this.w, a = 0, r = 0, o = 0;
                    this.annoCtx.invertAxis && console.warn(
                        'Point annotation is not supported in horizontal bar charts.');
                    var s, l = parseFloat(e.y);
                    if ('string' == typeof e.x) {
                        var c = i.globals.labels.indexOf(e.x);
                        i.config.xaxis.convertedCatToNumeric &&
                        (c = i.globals.categoryLabels.indexOf(
                            e.x)), a = this.annoCtx.helpers.getStringX(
                            e.x), null === e.y &&
                        (l = i.globals.series[e.seriesIndex][c]);
                    } else a = (e.x - i.globals.minX) /
                        (i.globals.xRange / i.globals.gridWidth);
                    if (s = i.config.yaxis[e.yAxisIndex].logarithmic
                        ? (l = new x(this.annoCtx.ctx).getLogVal(l,
                        e.yAxisIndex)) / i.globals.yLogRatio[e.yAxisIndex]
                        : (l - i.globals.minYArr[e.yAxisIndex]) /
                        (i.globals.yRange[e.yAxisIndex] /
                            i.globals.gridHeight), r = i.globals.gridHeight -
                        s - parseFloat(e.label.style.fontSize) -
                        e.marker.size, o = i.globals.gridHeight -
                        s, i.config.yaxis[e.yAxisIndex] &&
                    i.config.yaxis[e.yAxisIndex].reversed &&
                    (r = s + parseFloat(e.label.style.fontSize) +
                        e.marker.size, o = s), p.isNumber(a)) {
                        var u = {
                            pSize: e.marker.size,
                            pWidth: e.marker.strokeWidth,
                            pointFillColor: e.marker.fillColor,
                            pointStrokeColor: e.marker.strokeColor,
                            shape: e.marker.shape,
                            pRadius: e.marker.radius,
                            class: 'apexcharts-point-annotation-marker '.concat(
                                e.marker.cssClass, ' ').
                                concat(e.id ? e.id : ''),
                        }, d = this.annoCtx.graphics.drawMarker(
                            a + e.marker.offsetX, o + e.marker.offsetY, u);
                        t.appendChild(d.node);
                        var h = e.label.text ? e.label.text : '',
                            f = this.annoCtx.graphics.drawText({
                                x: a + e.label.offsetX,
                                y: r + e.label.offsetY,
                                text: h,
                                textAnchor: e.label.textAnchor,
                                fontSize: e.label.style.fontSize,
                                fontFamily: e.label.style.fontFamily,
                                fontWeight: e.label.style.fontWeight,
                                foreColor: e.label.style.color,
                                cssClass: 'apexcharts-point-annotation-label '.concat(
                                    e.label.style.cssClass, ' ').
                                    concat(e.id ? e.id : ''),
                            });
                        if (f.attr({ rel: n }), t.appendChild(
                            f.node), e.customSVG.SVG) {
                            var m = this.annoCtx.graphics.group({
                                class: 'apexcharts-point-annotations-custom-svg ' +
                                    e.customSVG.cssClass,
                            });
                            m.attr({
                                transform: 'translate('.concat(
                                    a + e.customSVG.offsetX, ', ').
                                    concat(r + e.customSVG.offsetY, ')'),
                            }), m.node.innerHTML = e.customSVG.SVG, t.appendChild(
                                m.node);
                        }
                        if (e.image.path) {
                            var g = e.image.width
                                ? e.image.width
                                : 20, v = e.image.height ? e.image.height : 20;
                            this.annoCtx.addImage({
                                x: a + e.image.offsetX - g / 2,
                                y: r + e.image.offsetY - v / 2,
                                width: g,
                                height: v,
                                path: e.image.path,
                                appendTo: '.apexcharts-point-annotations',
                            });
                        }
                    }
                },
            },
            {
                key: 'drawPointAnnotations',
                value: function () {
                    var e = this, t = this.w, n = this.annoCtx.graphics.group(
                        { class: 'apexcharts-point-annotations' });
                    return t.config.annotations.points.map((function (t, i) {
                        e.addPointAnnotation(t, n.node, i);
                    })), n;
                },
            }]), e;
    }(), k = {
        name: 'en',
        options: {
            months: [
                'January',
                'February',
                'March',
                'April',
                'May',
                'June',
                'July',
                'August',
                'September',
                'October',
                'November',
                'December'],
            shortMonths: [
                'Jan',
                'Feb',
                'Mar',
                'Apr',
                'May',
                'Jun',
                'Jul',
                'Aug',
                'Sep',
                'Oct',
                'Nov',
                'Dec'],
            days: [
                'Sunday',
                'Monday',
                'Tuesday',
                'Wednesday',
                'Thursday',
                'Friday',
                'Saturday'],
            shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
            toolbar: {
                exportToSVG: 'Download SVG',
                exportToPNG: 'Download PNG',
                exportToCSV: 'Download CSV',
                menu: 'Menu',
                selection: 'Selection',
                selectionZoom: 'Selection Zoom',
                zoomIn: 'Zoom In',
                zoomOut: 'Zoom Out',
                pan: 'Panning',
                reset: 'Reset Zoom',
            },
        },
    }, M = function () {
        function e () {
            t(this, e), this.yAxis = {
                show: !0,
                showAlways: !1,
                showForNullSeries: !0,
                seriesName: void 0,
                opposite: !1,
                reversed: !1,
                logarithmic: !1,
                tickAmount: void 0,
                forceNiceScale: !1,
                max: void 0,
                min: void 0,
                floating: !1,
                decimalsInFloat: void 0,
                labels: {
                    show: !0,
                    minWidth: 0,
                    maxWidth: 160,
                    offsetX: 0,
                    offsetY: 0,
                    align: void 0,
                    rotate: 0,
                    padding: 20,
                    style: {
                        colors: [],
                        fontSize: '11px',
                        fontWeight: 400,
                        fontFamily: void 0,
                        cssClass: '',
                    },
                    formatter: void 0,
                },
                axisBorder: {
                    show: !1,
                    color: '#e0e0e0',
                    width: 1,
                    offsetX: 0,
                    offsetY: 0,
                },
                axisTicks: {
                    show: !1,
                    color: '#e0e0e0',
                    width: 6,
                    offsetX: 0,
                    offsetY: 0,
                },
                title: {
                    text: void 0,
                    rotate: -90,
                    offsetY: 0,
                    offsetX: 0,
                    style: {
                        color: void 0,
                        fontSize: '11px',
                        fontWeight: 900,
                        fontFamily: void 0,
                        cssClass: '',
                    },
                },
                tooltip: { enabled: !1, offsetX: 0 },
                crosshairs: {
                    show: !0,
                    position: 'front',
                    stroke: { color: '#b6b6b6', width: 1, dashArray: 0 },
                },
            }, this.pointAnnotation = {
                x: 0,
                y: null,
                yAxisIndex: 0,
                seriesIndex: 0,
                marker: {
                    size: 4,
                    fillColor: '#fff',
                    strokeWidth: 2,
                    strokeColor: '#333',
                    shape: 'circle',
                    offsetX: 0,
                    offsetY: 0,
                    radius: 2,
                    cssClass: '',
                },
                label: {
                    borderColor: '#c2c2c2',
                    borderWidth: 1,
                    borderRadius: 2,
                    text: void 0,
                    textAnchor: 'middle',
                    offsetX: 0,
                    offsetY: 0,
                    style: {
                        background: '#fff',
                        color: void 0,
                        fontSize: '11px',
                        fontFamily: void 0,
                        fontWeight: 400,
                        cssClass: '',
                        padding: { left: 5, right: 5, top: 2, bottom: 2 },
                    },
                },
                customSVG: {
                    SVG: void 0,
                    cssClass: void 0,
                    offsetX: 0,
                    offsetY: 0,
                },
                image: {
                    path: void 0,
                    width: 20,
                    height: 20,
                    offsetX: 0,
                    offsetY: 0,
                },
            }, this.yAxisAnnotation = {
                y: 0,
                y2: null,
                strokeDashArray: 1,
                fillColor: '#c2c2c2',
                borderColor: '#c2c2c2',
                borderWidth: 1,
                opacity: .3,
                offsetX: 0,
                offsetY: 0,
                width: '100%',
                yAxisIndex: 0,
                label: {
                    borderColor: '#c2c2c2',
                    borderWidth: 1,
                    borderRadius: 2,
                    text: void 0,
                    textAnchor: 'end',
                    position: 'right',
                    offsetX: 0,
                    offsetY: -3,
                    style: {
                        background: '#fff',
                        color: void 0,
                        fontSize: '11px',
                        fontFamily: void 0,
                        fontWeight: 400,
                        cssClass: '',
                        padding: { left: 5, right: 5, top: 2, bottom: 2 },
                    },
                },
            }, this.xAxisAnnotation = {
                x: 0,
                x2: null,
                strokeDashArray: 1,
                fillColor: '#c2c2c2',
                borderColor: '#c2c2c2',
                borderWidth: 1,
                opacity: .3,
                offsetX: 0,
                offsetY: 0,
                label: {
                    borderColor: '#c2c2c2',
                    borderWidth: 1,
                    borderRadius: 2,
                    text: void 0,
                    textAnchor: 'middle',
                    orientation: 'vertical',
                    position: 'top',
                    offsetX: 0,
                    offsetY: 0,
                    style: {
                        background: '#fff',
                        color: void 0,
                        fontSize: '11px',
                        fontFamily: void 0,
                        fontWeight: 400,
                        cssClass: '',
                        padding: { left: 5, right: 5, top: 2, bottom: 2 },
                    },
                },
            }, this.text = {
                x: 0,
                y: 0,
                text: '',
                textAnchor: 'start',
                foreColor: void 0,
                fontSize: '13px',
                fontFamily: void 0,
                fontWeight: 400,
                appendTo: '.apexcharts-annotations',
                backgroundColor: 'transparent',
                borderColor: '#c2c2c2',
                borderRadius: 0,
                borderWidth: 0,
                paddingLeft: 4,
                paddingRight: 4,
                paddingTop: 2,
                paddingBottom: 2,
            };
        }

        return i(e, [
            {
                key: 'init', value: function () {
                    return {
                        annotations: {
                            position: 'front',
                            yaxis: [this.yAxisAnnotation],
                            xaxis: [this.xAxisAnnotation],
                            points: [this.pointAnnotation],
                            texts: [],
                            images: [],
                            shapes: [],
                        },
                        chart: {
                            animations: {
                                enabled: !0,
                                easing: 'easeinout',
                                speed: 800,
                                animateGradually: { delay: 150, enabled: !0 },
                                dynamicAnimation: { enabled: !0, speed: 350 },
                            },
                            background: 'transparent',
                            locales: [k],
                            defaultLocale: 'en',
                            dropShadow: {
                                enabled: !1,
                                enabledOnSeries: void 0,
                                top: 2,
                                left: 2,
                                blur: 4,
                                color: '#000',
                                opacity: .35,
                            },
                            events: {
                                animationEnd: void 0,
                                beforeMount: void 0,
                                mounted: void 0,
                                updated: void 0,
                                click: void 0,
                                mouseMove: void 0,
                                legendClick: void 0,
                                markerClick: void 0,
                                selection: void 0,
                                dataPointSelection: void 0,
                                dataPointMouseEnter: void 0,
                                dataPointMouseLeave: void 0,
                                beforeZoom: void 0,
                                beforeResetZoom: void 0,
                                zoomed: void 0,
                                scrolled: void 0,
                                brushScrolled: void 0,
                            },
                            foreColor: '#373d3f',
                            fontFamily: 'Helvetica, Arial, sans-serif',
                            height: 'auto',
                            parentHeightOffset: 15,
                            redrawOnParentResize: !0,
                            redrawOnWindowResize: !0,
                            id: void 0,
                            group: void 0,
                            offsetX: 0,
                            offsetY: 0,
                            selection: {
                                enabled: !1,
                                type: 'x',
                                fill: { color: '#24292e', opacity: .1 },
                                stroke: {
                                    width: 1,
                                    color: '#24292e',
                                    opacity: .4,
                                    dashArray: 3,
                                },
                                xaxis: { min: void 0, max: void 0 },
                                yaxis: { min: void 0, max: void 0 },
                            },
                            sparkline: { enabled: !1 },
                            brush: {
                                enabled: !1,
                                autoScaleYaxis: !0,
                                target: void 0,
                            },
                            stacked: !1,
                            stackType: 'normal',
                            toolbar: {
                                show: !0,
                                offsetX: 0,
                                offsetY: 0,
                                tools: {
                                    download: !0,
                                    selection: !0,
                                    zoom: !0,
                                    zoomin: !0,
                                    zoomout: !0,
                                    pan: !0,
                                    reset: !0,
                                    customIcons: [],
                                },
                                export: {
                                    csv: {
                                        filename: void 0,
                                        columnDelimiter: ',',
                                        headerCategory: 'category',
                                        headerValue: 'value',
                                        dateFormatter: function (e) {
                                            return new Date(e).toDateString();
                                        },
                                    },
                                    png: { filename: void 0 },
                                    svg: { filename: void 0 },
                                },
                                autoSelected: 'zoom',
                            },
                            type: 'line',
                            width: '100%',
                            zoom: {
                                enabled: !0,
                                type: 'x',
                                autoScaleYaxis: !1,
                                zoomedArea: {
                                    fill: {
                                        color: '#90CAF9',
                                        opacity: .4,
                                    },
                                    stroke: {
                                        color: '#0D47A1',
                                        opacity: .4,
                                        width: 1,
                                    },
                                },
                            },
                        },
                        plotOptions: {
                            area: { fillTo: 'origin' },
                            bar: {
                                horizontal: !1,
                                columnWidth: '70%',
                                barHeight: '70%',
                                distributed: !1,
                                startingShape: 'flat',
                                endingShape: 'flat',
                                rangeBarOverlap: !0,
                                rangeBarGroupRows: !1,
                                colors: {
                                    ranges: [],
                                    backgroundBarColors: [],
                                    backgroundBarOpacity: 1,
                                    backgroundBarRadius: 0,
                                },
                                dataLabels: {
                                    position: 'top',
                                    maxItems: 100,
                                    hideOverflowingLabels: !0,
                                    orientation: 'horizontal',
                                },
                            },
                            bubble: {
                                minBubbleRadius: void 0,
                                maxBubbleRadius: void 0,
                            },
                            candlestick: {
                                colors: {
                                    upward: '#00B746',
                                    downward: '#EF403C',
                                }, wick: { useFillColor: !0 },
                            },
                            heatmap: {
                                radius: 2,
                                enableShades: !0,
                                shadeIntensity: .5,
                                reverseNegativeShade: !1,
                                distributed: !1,
                                useFillColorAsStroke: !1,
                                colorScale: {
                                    inverse: !1,
                                    ranges: [],
                                    min: void 0,
                                    max: void 0,
                                },
                            },
                            treemap: {
                                enableShades: !0,
                                shadeIntensity: .5,
                                distributed: !1,
                                reverseNegativeShade: !1,
                                useFillColorAsStroke: !1,
                                colorScale: {
                                    inverse: !1,
                                    ranges: [],
                                    min: void 0,
                                    max: void 0,
                                },
                            },
                            radialBar: {
                                inverseOrder: !1,
                                startAngle: 0,
                                endAngle: 360,
                                offsetX: 0,
                                offsetY: 0,
                                hollow: {
                                    margin: 5,
                                    size: '50%',
                                    background: 'transparent',
                                    image: void 0,
                                    imageWidth: 150,
                                    imageHeight: 150,
                                    imageOffsetX: 0,
                                    imageOffsetY: 0,
                                    imageClipped: !0,
                                    position: 'front',
                                    dropShadow: {
                                        enabled: !1,
                                        top: 0,
                                        left: 0,
                                        blur: 3,
                                        color: '#000',
                                        opacity: .5,
                                    },
                                },
                                track: {
                                    show: !0,
                                    startAngle: void 0,
                                    endAngle: void 0,
                                    background: '#f2f2f2',
                                    strokeWidth: '97%',
                                    opacity: 1,
                                    margin: 5,
                                    dropShadow: {
                                        enabled: !1,
                                        top: 0,
                                        left: 0,
                                        blur: 3,
                                        color: '#000',
                                        opacity: .5,
                                    },
                                },
                                dataLabels: {
                                    show: !0,
                                    name: {
                                        show: !0,
                                        fontSize: '16px',
                                        fontFamily: void 0,
                                        fontWeight: 600,
                                        color: void 0,
                                        offsetY: 0,
                                        formatter: function (e) {return e;},
                                    },
                                    value: {
                                        show: !0,
                                        fontSize: '14px',
                                        fontFamily: void 0,
                                        fontWeight: 400,
                                        color: void 0,
                                        offsetY: 16,
                                        formatter: function (e) {
                                            return e + '%';
                                        },
                                    },
                                    total: {
                                        show: !1,
                                        label: 'Total',
                                        fontSize: '16px',
                                        fontWeight: 600,
                                        fontFamily: void 0,
                                        color: void 0,
                                        formatter: function (e) {
                                            return e.globals.seriesTotals.reduce(
                                                (function (e, t) {
                                                    return e + t;
                                                }), 0) /
                                                e.globals.series.length + '%';
                                        },
                                    },
                                },
                            },
                            pie: {
                                customScale: 1,
                                offsetX: 0,
                                offsetY: 0,
                                startAngle: 0,
                                endAngle: 360,
                                expandOnClick: !0,
                                dataLabels: {
                                    offset: 0,
                                    minAngleToShowLabel: 10,
                                },
                                donut: {
                                    size: '65%',
                                    background: 'transparent',
                                    labels: {
                                        show: !1,
                                        name: {
                                            show: !0,
                                            fontSize: '16px',
                                            fontFamily: void 0,
                                            fontWeight: 600,
                                            color: void 0,
                                            offsetY: -10,
                                            formatter: function (e) {return e;},
                                        },
                                        value: {
                                            show: !0,
                                            fontSize: '20px',
                                            fontFamily: void 0,
                                            fontWeight: 400,
                                            color: void 0,
                                            offsetY: 10,
                                            formatter: function (e) {return e;},
                                        },
                                        total: {
                                            show: !1,
                                            showAlways: !1,
                                            label: 'Total',
                                            fontSize: '16px',
                                            fontWeight: 400,
                                            fontFamily: void 0,
                                            color: void 0,
                                            formatter: function (e) {
                                                return e.globals.seriesTotals.reduce(
                                                    (function (e, t) {
                                                        return e + t;
                                                    }), 0);
                                            },
                                        },
                                    },
                                },
                            },
                            polarArea: {
                                rings: {
                                    strokeWidth: 1,
                                    strokeColor: '#e8e8e8',
                                },
                            },
                            radar: {
                                size: void 0,
                                offsetX: 0,
                                offsetY: 0,
                                polygons: {
                                    strokeWidth: 1,
                                    strokeColors: '#e8e8e8',
                                    connectorColors: '#e8e8e8',
                                    fill: { colors: void 0 },
                                },
                            },
                        },
                        colors: void 0,
                        dataLabels: {
                            enabled: !0,
                            enabledOnSeries: void 0,
                            formatter: function (e) {
                                return null !== e
                                    ? e
                                    : '';
                            },
                            textAnchor: 'middle',
                            distributed: !1,
                            offsetX: 0,
                            offsetY: 0,
                            style: {
                                fontSize: '12px',
                                fontFamily: void 0,
                                fontWeight: 600,
                                colors: void 0,
                            },
                            background: {
                                enabled: !0,
                                foreColor: '#fff',
                                borderRadius: 2,
                                padding: 4,
                                opacity: .9,
                                borderWidth: 1,
                                borderColor: '#fff',
                                dropShadow: {
                                    enabled: !1,
                                    top: 1,
                                    left: 1,
                                    blur: 1,
                                    color: '#000',
                                    opacity: .45,
                                },
                            },
                            dropShadow: {
                                enabled: !1,
                                top: 1,
                                left: 1,
                                blur: 1,
                                color: '#000',
                                opacity: .45,
                            },
                        },
                        fill: {
                            type: 'solid',
                            colors: void 0,
                            opacity: .85,
                            gradient: {
                                shade: 'dark',
                                type: 'horizontal',
                                shadeIntensity: .5,
                                gradientToColors: void 0,
                                inverseColors: !0,
                                opacityFrom: 1,
                                opacityTo: 1,
                                stops: [0, 50, 100],
                                colorStops: [],
                            },
                            image: { src: [], width: void 0, height: void 0 },
                            pattern: {
                                style: 'squares',
                                width: 6,
                                height: 6,
                                strokeWidth: 2,
                            },
                        },
                        grid: {
                            show: !0,
                            borderColor: '#e0e0e0',
                            strokeDashArray: 0,
                            position: 'back',
                            xaxis: { lines: { show: !1 } },
                            yaxis: { lines: { show: !0 } },
                            row: { colors: void 0, opacity: .5 },
                            column: { colors: void 0, opacity: .5 },
                            padding: { top: 0, right: 10, bottom: 0, left: 12 },
                        },
                        labels: [],
                        legend: {
                            show: !0,
                            showForSingleSeries: !1,
                            showForNullSeries: !0,
                            showForZeroSeries: !0,
                            floating: !1,
                            position: 'bottom',
                            horizontalAlign: 'center',
                            inverseOrder: !1,
                            fontSize: '12px',
                            fontFamily: void 0,
                            fontWeight: 400,
                            width: void 0,
                            height: void 0,
                            formatter: void 0,
                            tooltipHoverFormatter: void 0,
                            offsetX: -20,
                            offsetY: 4,
                            labels: { colors: void 0, useSeriesColors: !1 },
                            markers: {
                                width: 12,
                                height: 12,
                                strokeWidth: 0,
                                fillColors: void 0,
                                strokeColor: '#fff',
                                radius: 12,
                                customHTML: void 0,
                                offsetX: 0,
                                offsetY: 0,
                                onClick: void 0,
                            },
                            itemMargin: { horizontal: 5, vertical: 2 },
                            onItemClick: { toggleDataSeries: !0 },
                            onItemHover: { highlightDataSeries: !0 },
                        },
                        markers: {
                            discrete: [],
                            size: 0,
                            colors: void 0,
                            strokeColors: '#fff',
                            strokeWidth: 2,
                            strokeOpacity: .9,
                            strokeDashArray: 0,
                            fillOpacity: 1,
                            shape: 'circle',
                            radius: 2,
                            offsetX: 0,
                            offsetY: 0,
                            onClick: void 0,
                            onDblClick: void 0,
                            showNullDataPoints: !0,
                            hover: { size: void 0, sizeOffset: 3 },
                        },
                        noData: {
                            text: void 0,
                            align: 'center',
                            verticalAlign: 'middle',
                            offsetX: 0,
                            offsetY: 0,
                            style: {
                                color: void 0,
                                fontSize: '14px',
                                fontFamily: void 0,
                            },
                        },
                        responsive: [],
                        series: void 0,
                        states: {
                            normal: {
                                filter: {
                                    type: 'none',
                                    value: 0,
                                },
                            },
                            hover: { filter: { type: 'lighten', value: .1 } },
                            active: {
                                allowMultipleDataPointsSelection: !1,
                                filter: { type: 'darken', value: .5 },
                            },
                        },
                        title: {
                            text: void 0,
                            align: 'left',
                            margin: 5,
                            offsetX: 0,
                            offsetY: 0,
                            floating: !1,
                            style: {
                                fontSize: '14px',
                                fontWeight: 900,
                                fontFamily: void 0,
                                color: void 0,
                            },
                        },
                        subtitle: {
                            text: void 0,
                            align: 'left',
                            margin: 5,
                            offsetX: 0,
                            offsetY: 30,
                            floating: !1,
                            style: {
                                fontSize: '12px',
                                fontWeight: 400,
                                fontFamily: void 0,
                                color: void 0,
                            },
                        },
                        stroke: {
                            show: !0,
                            curve: 'smooth',
                            lineCap: 'butt',
                            width: 2,
                            colors: void 0,
                            dashArray: 0,
                        },
                        tooltip: {
                            enabled: !0,
                            enabledOnSeries: void 0,
                            shared: !0,
                            followCursor: !1,
                            intersect: !1,
                            inverseOrder: !1,
                            custom: void 0,
                            fillSeriesColor: !1,
                            theme: 'light',
                            style: { fontSize: '12px', fontFamily: void 0 },
                            onDatasetHover: { highlightDataSeries: !1 },
                            x: {
                                show: !0,
                                format: 'dd MMM',
                                formatter: void 0,
                            },
                            y: {
                                formatter: void 0,
                                title: {
                                    formatter: function (e) {
                                        return e ? e + ': ' : '';
                                    },
                                },
                            },
                            z: { formatter: void 0, title: 'Size: ' },
                            marker: { show: !0, fillColors: void 0 },
                            items: { display: 'flex' },
                            fixed: {
                                enabled: !1,
                                position: 'topRight',
                                offsetX: 0,
                                offsetY: 0,
                            },
                        },
                        xaxis: {
                            type: 'category',
                            categories: [],
                            convertedCatToNumeric: !1,
                            sorted: !1,
                            offsetX: 0,
                            offsetY: 0,
                            labels: {
                                show: !0,
                                rotate: -45,
                                rotateAlways: !1,
                                hideOverlappingLabels: !0,
                                trim: !1,
                                minHeight: void 0,
                                maxHeight: 120,
                                showDuplicates: !0,
                                style: {
                                    colors: [],
                                    fontSize: '12px',
                                    fontWeight: 400,
                                    fontFamily: void 0,
                                    cssClass: '',
                                },
                                offsetX: 0,
                                offsetY: 0,
                                format: void 0,
                                formatter: void 0,
                                datetimeUTC: !0,
                                datetimeFormatter: {
                                    year: 'yyyy',
                                    month: 'MMM \'yy',
                                    day: 'dd MMM',
                                    hour: 'HH:mm',
                                    minute: 'HH:mm:ss',
                                },
                            },
                            axisBorder: {
                                show: !0,
                                color: '#e0e0e0',
                                width: '100%',
                                height: 1,
                                offsetX: 0,
                                offsetY: 0,
                            },
                            axisTicks: {
                                show: !0,
                                color: '#e0e0e0',
                                height: 6,
                                offsetX: 0,
                                offsetY: 0,
                            },
                            tickAmount: void 0,
                            tickPlacement: 'on',
                            min: void 0,
                            max: void 0,
                            range: void 0,
                            floating: !1,
                            position: 'bottom',
                            title: {
                                text: void 0,
                                offsetX: 0,
                                offsetY: 0,
                                style: {
                                    color: void 0,
                                    fontSize: '12px',
                                    fontWeight: 900,
                                    fontFamily: void 0,
                                    cssClass: '',
                                },
                            },
                            crosshairs: {
                                show: !0,
                                width: 1,
                                position: 'back',
                                opacity: .9,
                                stroke: {
                                    color: '#b6b6b6',
                                    width: 1,
                                    dashArray: 3,
                                },
                                fill: {
                                    type: 'solid',
                                    color: '#B1B9C4',
                                    gradient: {
                                        colorFrom: '#D8E3F0',
                                        colorTo: '#BED1E6',
                                        stops: [0, 100],
                                        opacityFrom: .4,
                                        opacityTo: .5,
                                    },
                                },
                                dropShadow: {
                                    enabled: !1,
                                    left: 0,
                                    top: 0,
                                    blur: 1,
                                    opacity: .4,
                                },
                            },
                            tooltip: {
                                enabled: !0,
                                offsetY: 0,
                                formatter: void 0,
                                style: { fontSize: '12px', fontFamily: void 0 },
                            },
                        },
                        yaxis: this.yAxis,
                        theme: {
                            mode: 'light',
                            palette: 'palette1',
                            monochrome: {
                                enabled: !1,
                                color: '#008FFB',
                                shadeTo: 'light',
                                shadeIntensity: .65,
                            },
                        },
                    };
                },
            }]), e;
    }(), L = function () {
        function e (n) {
            t(this, e), this.ctx = n, this.w = n.w, this.graphics = new v(
                this.ctx), this.w.globals.isBarHorizontal &&
            (this.invertAxis = !0), this.helpers = new y(
                this), this.xAxisAnnotations = new b(
                this), this.yAxisAnnotations = new _(
                this), this.pointsAnnotations = new w(
                this), this.w.globals.isBarHorizontal &&
            this.w.config.yaxis[0].reversed &&
            (this.inversedReversedAxis = !0), this.xDivision = this.w.globals.gridWidth /
                this.w.globals.dataPoints;
        }

        return i(e, [
            {
                key: 'drawAxesAnnotations', value: function () {
                    var e = this.w;
                    if (e.globals.axisCharts) {
                        for (var t = this.yAxisAnnotations.drawYAxisAnnotations(), n = this.xAxisAnnotations.drawXAxisAnnotations(), i = this.pointsAnnotations.drawPointAnnotations(), a = e.config.chart.animations.enabled, r = [
                            t,
                            n,
                            i], o = [n.node, t.node, i.node], s = 0; s <
                             3; s++) e.globals.dom.elGraphical.add(r[s]), !a ||
                        e.globals.resized || e.globals.dataChanged ||
                        'scatter' !== e.config.chart.type && 'bubble' !==
                        e.config.chart.type && e.globals.dataPoints > 1 &&
                        o[s].classList.add(
                            'apexcharts-element-hidden'), e.globals.delayedElements.push(
                            { el: o[s], index: 0 });
                        this.helpers.annotationsBackground();
                    }
                },
            },
            {
                key: 'drawImageAnnos', value: function () {
                    var e = this;
                    this.w.config.annotations.images.map(
                        (function (t, n) {e.addImage(t, n);}));
                },
            },
            {
                key: 'drawTextAnnos', value: function () {
                    var e = this;
                    this.w.config.annotations.texts.map(
                        (function (t, n) {e.addText(t, n);}));
                },
            },
            {
                key: 'addXaxisAnnotation',
                value: function (
                    e, t, n) {
                    this.xAxisAnnotations.addXaxisAnnotation(e, t, n);
                },
            },
            {
                key: 'addYaxisAnnotation',
                value: function (
                    e, t, n) {
                    this.yAxisAnnotations.addYaxisAnnotation(e, t, n);
                },
            },
            {
                key: 'addPointAnnotation',
                value: function (
                    e, t, n) {
                    this.pointsAnnotations.addPointAnnotation(e, t, n);
                },
            },
            {
                key: 'addText',
                value: function (e, t) {
                    var n = e.x, i = e.y, a = e.text, r = e.textAnchor,
                        o = e.foreColor, s = e.fontSize, l = e.fontFamily,
                        c = e.fontWeight, u = e.cssClass, d = e.backgroundColor,
                        h = e.borderWidth, f = e.strokeDashArray,
                        p = e.borderRadius, m = e.borderColor, g = e.appendTo,
                        v = void 0 === g ? '.apexcharts-annotations' : g,
                        y = e.paddingLeft, b = void 0 === y ? 4 : y,
                        x = e.paddingRight, _ = void 0 === x ? 4 : x,
                        w = e.paddingBottom, k = void 0 === w ? 2 : w,
                        M = e.paddingTop, L = void 0 === M ? 2 : M, S = this.w,
                        T = this.graphics.drawText({
                            x: n,
                            y: i,
                            text: a,
                            textAnchor: r || 'start',
                            fontSize: s || '12px',
                            fontWeight: c || 'regular',
                            fontFamily: l || S.config.chart.fontFamily,
                            foreColor: o || S.config.chart.foreColor,
                            cssClass: u,
                        }), A = S.globals.dom.baseEl.querySelector(v);
                    A && A.appendChild(T.node);
                    var D = T.bbox();
                    if (a) {
                        var C = this.graphics.drawRect(D.x - b, D.y - L,
                            D.width + b + _, D.height + k + L, p,
                            d || 'transparent', 1, h, m, f);
                        A.insertBefore(C.node, T.node);
                    }
                },
            },
            {
                key: 'addImage',
                value: function (e, t) {
                    var n = this.w, i = e.path, a = e.x,
                        r = void 0 === a ? 0 : a, o = e.y,
                        s = void 0 === o ? 0 : o, l = e.width,
                        c = void 0 === l ? 20 : l, u = e.height,
                        d = void 0 === u ? 20 : u, h = e.appendTo,
                        f = void 0 === h ? '.apexcharts-annotations' : h,
                        p = n.globals.dom.Paper.image(i);
                    p.size(c, d).move(r, s);
                    var m = n.globals.dom.baseEl.querySelector(f);
                    m && m.appendChild(p.node);
                },
            },
            {
                key: 'addXaxisAnnotationExternal',
                value: function (e, t, n) {
                    return this.addAnnotationExternal({
                        params: e,
                        pushToMemory: t,
                        context: n,
                        type: 'xaxis',
                        contextMethod: n.addXaxisAnnotation,
                    }), n;
                },
            },
            {
                key: 'addYaxisAnnotationExternal',
                value: function (e, t, n) {
                    return this.addAnnotationExternal({
                        params: e,
                        pushToMemory: t,
                        context: n,
                        type: 'yaxis',
                        contextMethod: n.addYaxisAnnotation,
                    }), n;
                },
            },
            {
                key: 'addPointAnnotationExternal',
                value: function (e, t, n) {
                    return void 0 === this.invertAxis &&
                    (this.invertAxis = n.w.globals.isBarHorizontal), this.addAnnotationExternal(
                        {
                            params: e,
                            pushToMemory: t,
                            context: n,
                            type: 'point',
                            contextMethod: n.addPointAnnotation,
                        }), n;
                },
            },
            {
                key: 'addAnnotationExternal',
                value: function (e) {
                    var t = e.params, n = e.pushToMemory, i = e.context,
                        a = e.type, r = e.contextMethod, o = i, s = o.w,
                        l = s.globals.dom.baseEl.querySelector(
                            '.apexcharts-'.concat(a, '-annotations')),
                        c = l.childNodes.length + 1, u = new M,
                        d = Object.assign({},
                            'xaxis' === a ? u.xAxisAnnotation : 'yaxis' === a
                                ? u.yAxisAnnotation
                                : u.pointAnnotation), h = p.extend(d, t);
                    switch (a) {
                        case'xaxis':
                            this.addXaxisAnnotation(h, l, c);
                            break;
                        case'yaxis':
                            this.addYaxisAnnotation(h, l, c);
                            break;
                        case'point':
                            this.addPointAnnotation(h, l, c);
                    }
                    var f = s.globals.dom.baseEl.querySelector(
                        '.apexcharts-'.concat(a, '-annotations .apexcharts-').
                            concat(a, '-annotation-label[rel=\'').
                            concat(c, '\']')),
                        m = this.helpers.addBackgroundToAnno(f, h);
                    return m && l.insertBefore(m.node, f), n &&
                    s.globals.memory.methodsToExec.push({
                        context: o,
                        id: h.id ? h.id : p.randomId(),
                        method: r,
                        label: 'addAnnotation',
                        params: t,
                    }), i;
                },
            },
            {
                key: 'clearAnnotations',
                value: function (e) {
                    var t = e.w, n = t.globals.dom.baseEl.querySelectorAll(
                        '.apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations');
                    t.globals.memory.methodsToExec.map((function (e, n) {
                        'addText' !== e.label && 'addAnnotation' !== e.label ||
                        t.globals.memory.methodsToExec.splice(n, 1);
                    })), n = p.listToArray(n), Array.prototype.forEach.call(n,
                        (function (e) {
                            for (; e.firstChild;) e.removeChild(e.firstChild);
                        }));
                },
            },
            {
                key: 'removeAnnotation',
                value: function (e, t) {
                    var n = e.w, i = n.globals.dom.baseEl.querySelectorAll(
                        '.'.concat(t));
                    i && (n.globals.memory.methodsToExec.map((function (e, i) {
                        e.id === t &&
                        n.globals.memory.methodsToExec.splice(i, 1);
                    })), Array.prototype.forEach.call(i,
                        (function (e) {e.parentElement.removeChild(e);})));
                },
            }]), e;
    }(), S = function () {
        function e (n) {
            t(this,
                e), this.ctx = n, this.w = n.w, this.opts = null, this.seriesIndex = 0;
        }

        return i(e, [
            {
                key: 'clippedImgArea',
                value: function (e) {
                    var t = this.w, n = t.config,
                        i = parseInt(t.globals.gridWidth, 10),
                        a = parseInt(t.globals.gridHeight, 10),
                        r = i > a ? i : a, o = e.image, s = 0, l = 0;
                    void 0 === e.width && void 0 === e.height ? void 0 !==
                    n.fill.image.width && void 0 !== n.fill.image.height
                        ? (s = n.fill.image.width + 1, l = n.fill.image.height)
                        : (s = r + 1, l = r) : (s = e.width, l = e.height);
                    var c = document.createElementNS(t.globals.SVGNS,
                        'pattern');
                    v.setAttrs(c, {
                        id: e.patternID,
                        patternUnits: e.patternUnits
                            ? e.patternUnits
                            : 'userSpaceOnUse',
                        width: s + 'px',
                        height: l + 'px',
                    });
                    var u = document.createElementNS(t.globals.SVGNS, 'image');
                    c.appendChild(u), u.setAttributeNS(window.SVG.xlink, 'href',
                        o), v.setAttrs(u, {
                        x: 0,
                        y: 0,
                        preserveAspectRatio: 'none',
                        width: s + 'px',
                        height: l + 'px',
                    }), u.style.opacity = e.opacity, t.globals.dom.elDefs.node.appendChild(
                        c);
                },
            },
            {
                key: 'getSeriesIndex', value: function (e) {
                    var t = this.w;
                    return ('bar' === t.config.chart.type || 'rangeBar' ===
                        t.config.chart.type) &&
                    t.config.plotOptions.bar.distributed || 'heatmap' ===
                    t.config.chart.type || 'treemap' === t.config.chart.type
                        ? this.seriesIndex = e.seriesNumber
                        : this.seriesIndex = e.seriesNumber %
                            t.globals.series.length, this.seriesIndex;
                },
            },
            {
                key: 'fillPath', value: function (e) {
                    var t = this.w;
                    this.opts = e;
                    var n, i, a, r = this.w.config;
                    this.seriesIndex = this.getSeriesIndex(e);
                    var o = this.getFillColors()[this.seriesIndex];
                    void 0 !== t.globals.seriesColors[this.seriesIndex] &&
                    (o = t.globals.seriesColors[this.seriesIndex]), 'function' ==
                    typeof o && (o = o({
                        seriesIndex: this.seriesIndex,
                        dataPointIndex: e.dataPointIndex,
                        value: e.value,
                        w: t,
                    }));
                    var s = this.getFillType(this.seriesIndex),
                        l = Array.isArray(r.fill.opacity)
                            ? r.fill.opacity[this.seriesIndex]
                            : r.fill.opacity;
                    e.color && (o = e.color);
                    var c = o;
                    if (-1 === o.indexOf('rgb') ? o.length < 9 &&
                        (c = p.hexToRgba(o, l)) : o.indexOf('rgba') > -1 &&
                        (l = p.getOpacityFromRGBA(o)), e.opacity &&
                    (l = e.opacity), 'pattern' === s &&
                    (i = this.handlePatternFill(i, o, l, c)), 'gradient' ===
                    s && (a = this.handleGradientFill(o, l,
                        this.seriesIndex)), 'image' === s) {
                        var u = r.fill.image.src,
                            d = e.patternID ? e.patternID : '';
                        this.clippedImgArea({
                            opacity: l,
                            image: Array.isArray(u) ? e.seriesNumber < u.length
                                ? u[e.seriesNumber]
                                : u[0] : u,
                            width: e.width ? e.width : void 0,
                            height: e.height ? e.height : void 0,
                            patternUnits: e.patternUnits,
                            patternID: 'pattern'.concat(t.globals.cuid).
                                concat(e.seriesNumber + 1).
                                concat(d),
                        }), n = 'url(#pattern'.concat(t.globals.cuid).
                            concat(e.seriesNumber + 1).
                            concat(d, ')');
                    } else n = 'gradient' === s ? a : 'pattern' === s ? i : c;
                    return e.solid && (n = c), n;
                },
            },
            {
                key: 'getFillType', value: function (e) {
                    var t = this.w;
                    return Array.isArray(t.config.fill.type)
                        ? t.config.fill.type[e]
                        : t.config.fill.type;
                },
            },
            {
                key: 'getFillColors',
                value: function () {
                    var e = this.w, t = e.config, n = this.opts, i = [];
                    return e.globals.comboCharts ? 'line' ===
                    e.config.series[this.seriesIndex].type ? Array.isArray(
                        e.globals.stroke.colors)
                        ? i = e.globals.stroke.colors
                        : i.push(e.globals.stroke.colors) : Array.isArray(
                        e.globals.fill.colors)
                        ? i = e.globals.fill.colors
                        : i.push(e.globals.fill.colors) : 'line' ===
                    t.chart.type ? Array.isArray(e.globals.stroke.colors)
                        ? i = e.globals.stroke.colors
                        : i.push(e.globals.stroke.colors) : Array.isArray(
                        e.globals.fill.colors)
                        ? i = e.globals.fill.colors
                        : i.push(e.globals.fill.colors), void 0 !==
                    n.fillColors && (i = [], Array.isArray(n.fillColors)
                        ? i = n.fillColors.slice()
                        : i.push(n.fillColors)), i;
                },
            },
            {
                key: 'handlePatternFill',
                value: function (e, t, n, i) {
                    var a = this.w.config, r = this.opts, o = new v(this.ctx),
                        s = void 0 === a.fill.pattern.strokeWidth
                            ? Array.isArray(a.stroke.width)
                                ? a.stroke.width[this.seriesIndex]
                                : a.stroke.width
                            : Array.isArray(a.fill.pattern.strokeWidth)
                                ? a.fill.pattern.strokeWidth[this.seriesIndex]
                                : a.fill.pattern.strokeWidth, l = t;
                    return Array.isArray(a.fill.pattern.style) ? void 0 !==
                    a.fill.pattern.style[r.seriesNumber]
                        ? o.drawPattern(a.fill.pattern.style[r.seriesNumber],
                            a.fill.pattern.width, a.fill.pattern.height, l, s,
                            n)
                        : i : o.drawPattern(a.fill.pattern.style,
                        a.fill.pattern.width, a.fill.pattern.height, l, s, n);
                },
            },
            {
                key: 'handleGradientFill', value: function (e, t, n) {
                    var i, a = this.w.config, r = this.opts,
                        o = new v(this.ctx), s = new p,
                        l = a.fill.gradient.type, c = e,
                        u = void 0 === a.fill.gradient.opacityFrom
                            ? t
                            : Array.isArray(a.fill.gradient.opacityFrom)
                                ? a.fill.gradient.opacityFrom[n]
                                : a.fill.gradient.opacityFrom;
                    c.indexOf('rgba') > -1 && (u = p.getOpacityFromRGBA(c));
                    var d = void 0 === a.fill.gradient.opacityTo
                        ? t
                        : Array.isArray(a.fill.gradient.opacityTo)
                            ? a.fill.gradient.opacityTo[n]
                            : a.fill.gradient.opacityTo;
                    if (void 0 === a.fill.gradient.gradientToColors || 0 ===
                        a.fill.gradient.gradientToColors.length) i = 'dark' ===
                    a.fill.gradient.shade
                        ? s.shadeColor(
                            -1 * parseFloat(a.fill.gradient.shadeIntensity),
                            e.indexOf('rgb') > -1 ? p.rgb2hex(e) : e)
                        : s.shadeColor(
                            parseFloat(a.fill.gradient.shadeIntensity),
                            e.indexOf('rgb') > -1
                                ? p.rgb2hex(e)
                                : e); else if (a.fill.gradient.gradientToColors[r.seriesNumber]) {
                        var h = a.fill.gradient.gradientToColors[r.seriesNumber];
                        i = h, h.indexOf('rgba') > -1 &&
                        (d = p.getOpacityFromRGBA(h));
                    } else i = e;
                    if (a.fill.gradient.inverseColors) {
                        var f = c;
                        c = i, i = f;
                    }
                    return c.indexOf('rgb') > -1 &&
                    (c = p.rgb2hex(c)), i.indexOf('rgb') > -1 &&
                    (i = p.rgb2hex(i)), o.drawGradient(l, c, i, u, d, r.size,
                        a.fill.gradient.stops, a.fill.gradient.colorStops, n);
                },
            }]), e;
    }(), T = function () {
        function e (n, i) {t(this, e), this.ctx = n, this.w = n.w;}

        return i(e, [
            {
                key: 'setGlobalMarkerSize', value: function () {
                    var e = this.w;
                    if (e.globals.markers.size = Array.isArray(
                        e.config.markers.size)
                        ? e.config.markers.size
                        : [e.config.markers.size], e.globals.markers.size.length >
                    0) {
                        if (e.globals.markers.size.length <
                            e.globals.series.length + 1) for (var t = 0; t <=
                        e.globals.series.length; t++) void 0 ===
                        e.globals.markers.size[t] &&
                        e.globals.markers.size.push(e.globals.markers.size[0]);
                    } else e.globals.markers.size = e.config.series.map(
                        (function (t) {return e.config.markers.size;}));
                },
            },
            {
                key: 'plotChartMarkers', value: function (e, t, n, i) {
                    var a,
                        r = arguments.length > 4 && void 0 !== arguments[4] &&
                            arguments[4], o = this.w, s = t, l = e, c = null,
                        u = new v(this.ctx);
                    if ((o.globals.markers.size[t] > 0 || r) && (c = u.group(
                        { class: r ? '' : 'apexcharts-series-markers' })).attr(
                        'clip-path',
                        'url(#gridRectMarkerMask'.concat(o.globals.cuid,
                            ')')), Array.isArray(l.x)) for (var d = 0; d <
                    l.x.length; d++) {
                        var h = n;
                        1 === n && 0 === d && (h = 0), 1 === n && 1 === d &&
                        (h = 1);
                        var f = 'apexcharts-marker';
                        'line' !== o.config.chart.type && 'area' !==
                        o.config.chart.type || o.globals.comboCharts ||
                        o.config.tooltip.intersect ||
                        (f += ' no-pointer-events');
                        var g = Array.isArray(o.config.markers.size)
                            ? o.globals.markers.size[t] > 0
                            : o.config.markers.size > 0;
                        if (g || r) {
                            p.isNumber(l.y[d])
                                ? f += ' w'.concat(p.randomId())
                                : f = 'apexcharts-nullpoint';
                            var y = this.getMarkerConfig(f, t, h);
                            o.config.series[s].data[h] &&
                            (o.config.series[s].data[h].fillColor &&
                            (y.pointFillColor = o.config.series[s].data[h].fillColor), o.config.series[s].data[h].strokeColor &&
                            (y.pointStrokeColor = o.config.series[s].data[h].strokeColor)), i &&
                            (y.pSize = i), (a = u.drawMarker(l.x[d], l.y[d],
                                y)).attr('rel', h), a.attr('j', h), a.attr(
                                'index', t), a.node.setAttribute(
                                'default-marker-size', y.pSize);
                            var b = new m(this.ctx);
                            b.setSelectionFilter(a, t, h), this.addEvents(
                                a), c && c.add(a);
                        } else void 0 === o.globals.pointsArray[t] &&
                        (o.globals.pointsArray[t] = []), o.globals.pointsArray[t].push(
                            [l.x[d], l.y[d]]);
                    }
                    return c;
                },
            },
            {
                key: 'getMarkerConfig',
                value: function (e, t) {
                    var n = arguments.length > 2 && void 0 !== arguments[2]
                        ? arguments[2]
                        : null, i = this.w, a = this.getMarkerStyle(t),
                        r = i.globals.markers.size[t], o = i.config.markers;
                    return null !== n && o.discrete.length && o.discrete.map(
                        (function (e) {
                            e.seriesIndex === t && e.dataPointIndex === n &&
                            (a.pointStrokeColor = e.strokeColor, a.pointFillColor = e.fillColor, r = e.size);
                        })), {
                        pSize: r,
                        pRadius: o.radius,
                        pWidth: Array.isArray(o.strokeWidth)
                            ? o.strokeWidth[t]
                            : o.strokeWidth,
                        pointStrokeColor: a.pointStrokeColor,
                        pointFillColor: a.pointFillColor,
                        shape: Array.isArray(o.shape) ? o.shape[t] : o.shape,
                        class: e,
                        pointStrokeOpacity: Array.isArray(o.strokeOpacity)
                            ? o.strokeOpacity[t]
                            : o.strokeOpacity,
                        pointStrokeDashArray: Array.isArray(o.strokeDashArray)
                            ? o.strokeDashArray[t]
                            : o.strokeDashArray,
                        pointFillOpacity: Array.isArray(o.fillOpacity)
                            ? o.fillOpacity[t]
                            : o.fillOpacity,
                        seriesIndex: t,
                    };
                },
            },
            {
                key: 'addEvents',
                value: function (e) {
                    var t = this.w, n = new v(this.ctx);
                    e.node.addEventListener('mouseenter',
                        n.pathMouseEnter.bind(this.ctx,
                            e)), e.node.addEventListener('mouseleave',
                        n.pathMouseLeave.bind(this.ctx,
                            e)), e.node.addEventListener('mousedown',
                        n.pathMouseDown.bind(this.ctx,
                            e)), e.node.addEventListener('click',
                        t.config.markers.onClick), e.node.addEventListener(
                        'dblclick',
                        t.config.markers.onDblClick), e.node.addEventListener(
                        'touchstart', n.pathMouseDown.bind(this.ctx, e),
                        { passive: !0 });
                },
            },
            {
                key: 'getMarkerStyle',
                value: function (e) {
                    var t = this.w, n = t.globals.markers.colors,
                        i = t.config.markers.strokeColor ||
                            t.config.markers.strokeColors;
                    return {
                        pointStrokeColor: Array.isArray(i) ? i[e] : i,
                        pointFillColor: Array.isArray(n) ? n[e] : n,
                    };
                },
            }]), e;
    }(), A = function () {
        function e (n) {
            t(this,
                e), this.ctx = n, this.w = n.w, this.initialAnim = this.w.config.chart.animations.enabled, this.dynamicAnim = this.initialAnim &&
                this.w.config.chart.animations.dynamicAnimation.enabled;
        }

        return i(e, [
            {
                key: 'draw',
                value: function (e, t, n) {
                    var i = this.w, a = new v(this.ctx), r = n.realIndex,
                        o = n.pointsPos, s = n.zRatio, l = n.elParent,
                        c = a.group({
                            class: 'apexcharts-series-markers apexcharts-series-'.concat(
                                i.config.chart.type),
                        });
                    if (c.attr('clip-path',
                        'url(#gridRectMarkerMask'.concat(i.globals.cuid,
                            ')')), Array.isArray(o.x)) for (var u = 0; u <
                    o.x.length; u++) {
                        var d = t + 1, h = !0;
                        0 === t && 0 === u && (d = 0), 0 === t && 1 === u &&
                        (d = 1);
                        var f = 0, p = i.globals.markers.size[r];
                        if (s !== 1 / 0) {
                            p = i.globals.seriesZ[r][d] / s;
                            var m = i.config.plotOptions.bubble;
                            m.minBubbleRadius && p < m.minBubbleRadius &&
                            (p = m.minBubbleRadius), m.maxBubbleRadius && p >
                            m.maxBubbleRadius && (p = m.maxBubbleRadius);
                        }
                        i.config.chart.animations.enabled || (f = p);
                        var g = o.x[u], y = o.y[u];
                        if (f = f || 0, null !== y && void 0 !==
                        i.globals.series[r][d] || (h = !1), h) {
                            var b = this.drawPoint(g, y, f, p, r, d, t);
                            c.add(b);
                        }
                        l.add(c);
                    }
                },
            }, {
                key: 'drawPoint', value: function (e, t, n, i, a, r, o) {
                    var s = this.w, l = a, c = new g(this.ctx),
                        u = new m(this.ctx), d = new S(this.ctx),
                        h = new T(this.ctx), f = new v(this.ctx),
                        p = h.getMarkerConfig('apexcharts-marker', l),
                        y = d.fillPath({
                            seriesNumber: a,
                            dataPointIndex: r,
                            patternUnits: 'objectBoundingBox',
                            value: s.globals.series[a][o],
                        }), b = f.drawCircle(n);
                    if (s.config.series[l].data[r] &&
                    s.config.series[l].data[r].fillColor &&
                    (y = s.config.series[l].data[r].fillColor), b.attr({
                        cx: e,
                        cy: t,
                        fill: y,
                        stroke: p.pointStrokeColor,
                        r: i,
                        'stroke-width': p.pWidth,
                        'stroke-dasharray': p.pointStrokeDashArray,
                        'stroke-opacity': p.pointStrokeOpacity,
                    }), s.config.chart.dropShadow.enabled) {
                        var x = s.config.chart.dropShadow;
                        u.dropShadow(b, x, a);
                    }
                    if (this.initialAnim && !s.globals.dataChanged &&
                        !s.globals.resized) {
                        var _ = s.config.chart.animations.speed;
                        c.animateCircleRadius(b, 0, i, _, s.globals.easing,
                            (function () {
                                window.setTimeout(
                                    (function () {c.animationCompleted(b);}),
                                    100);
                            }));
                    }
                    if (s.globals.dataChanged) if (this.dynamicAnim) {
                        var w, k, M, L,
                            A = s.config.chart.animations.dynamicAnimation.speed;
                        null != (L = s.globals.previousPaths[a] &&
                            s.globals.previousPaths[a][o]) &&
                        (w = L.x, k = L.y, M = void 0 !== L.r ? L.r : i);
                        for (var D = 0; D <
                        s.globals.collapsedSeries.length; D++) s.globals.collapsedSeries[D].index ===
                        a && (A = 1, i = 0);
                        0 === e && 0 === t && (i = 0), c.animateCircle(b,
                            { cx: w, cy: k, r: M }, { cx: e, cy: t, r: i }, A,
                            s.globals.easing);
                    } else b.attr({ r: i });
                    return b.attr({
                        rel: r,
                        j: r,
                        index: a,
                        'default-marker-size': i,
                    }), u.setSelectionFilter(b, a, r), h.addEvents(
                        b), b.node.classList.add('apexcharts-marker'), b;
                },
            }, {
                key: 'centerTextInBubble', value: function (e) {
                    var t = this.w;
                    return {
                        y: e += parseInt(t.config.dataLabels.style.fontSize,
                            10) / 4,
                    };
                },
            }]), e;
    }(), D = function () {
        function e (n) {t(this, e), this.ctx = n, this.w = n.w;}

        return i(e, [
            {
                key: 'dataLabelsCorrection',
                value: function (e, t, n, i, a, r, o) {
                    var s = this.w, l = !1,
                        c = new v(this.ctx).getTextRects(n, o), u = c.width,
                        d = c.height;
                    void 0 === s.globals.dataLabelsRects[i] &&
                    (s.globals.dataLabelsRects[i] = []), s.globals.dataLabelsRects[i].push(
                        { x: e, y: t, width: u, height: d });
                    var h = s.globals.dataLabelsRects[i].length - 2,
                        f = void 0 !== s.globals.lastDrawnDataLabelsIndexes[i]
                            ? s.globals.lastDrawnDataLabelsIndexes[i][s.globals.lastDrawnDataLabelsIndexes[i].length -
                            1]
                            : 0;
                    if (void 0 !== s.globals.dataLabelsRects[i][h]) {
                        var p = s.globals.dataLabelsRects[i][f];
                        (e > p.x + p.width + 2 || t > p.y + p.height + 2 || e +
                            u < p.x) && (l = !0);
                    }
                    return (0 === a || r) && (l = !0), {
                        x: e,
                        y: t,
                        textRects: c,
                        drawnextLabel: l,
                    };
                },
            },
            {
                key: 'drawDataLabel',
                value: function (e, t, n) {
                    var i = this,
                        a = arguments.length > 4 && void 0 !== arguments[4]
                            ? arguments[4]
                            : 2, r = this.w, o = new v(this.ctx),
                        s = r.config.dataLabels, l = 0, c = 0, u = n, d = null;
                    if (!s.enabled || !Array.isArray(e.x)) return d;
                    d = o.group({ class: 'apexcharts-data-labels' });
                    for (var h = 0; h < e.x.length; h++) if (l = e.x[h] +
                        s.offsetX, c = e.y[h] + s.offsetY + a, !isNaN(l)) {
                        1 === n && 0 === h && (u = 0), 1 === n && 1 === h &&
                        (u = 1);
                        var f = r.globals.series[t][u], p = '',
                            m = function (e) {
                                return r.config.dataLabels.formatter(e, {
                                    ctx: i.ctx,
                                    seriesIndex: t,
                                    dataPointIndex: u,
                                    w: r,
                                });
                            };
                        if ('bubble' === r.config.chart.type) {
                            p = m(f = r.globals.seriesZ[t][u]), c = e.y[h];
                            var g = new A(this.ctx),
                                y = g.centerTextInBubble(c, t, u);
                            c = y.y;
                        } else void 0 !== f && (p = m(f));
                        this.plotDataLabelsText({
                            x: l,
                            y: c,
                            text: p,
                            i: t,
                            j: u,
                            parent: d,
                            offsetCorrection: !0,
                            dataLabelsConfig: r.config.dataLabels,
                        });
                    }
                    return d;
                },
            },
            {
                key: 'plotDataLabelsText', value: function (e) {
                    var t = this.w, n = new v(this.ctx), i = e.x, a = e.y,
                        r = e.i, o = e.j, s = e.text, l = e.textAnchor,
                        c = e.fontSize, u = e.parent, d = e.dataLabelsConfig,
                        h = e.color, f = e.alwaysDrawDataLabel,
                        p = e.offsetCorrection;
                    if (!(Array.isArray(t.config.dataLabels.enabledOnSeries) &&
                        t.config.dataLabels.enabledOnSeries.indexOf(r) < 0)) {
                        var g = { x: i, y: a, drawnextLabel: !0 };
                        p && (g = this.dataLabelsCorrection(i, a, s, r, o, f,
                            parseInt(d.style.fontSize,
                                10))), t.globals.zoomed ||
                        (i = g.x, a = g.y), g.textRects;
                        var y = t.globals.dataLabels.style.colors[r];
                        (('bar' === t.config.chart.type || 'rangeBar' ===
                            t.config.chart.type) &&
                            t.config.plotOptions.bar.distributed ||
                            t.config.dataLabels.distributed) &&
                        (y = t.globals.dataLabels.style.colors[o]), h &&
                        (y = h);
                        var b = d.offsetX, x = d.offsetY;
                        if ('bar' !== t.config.chart.type && 'rangeBar' !==
                        t.config.chart.type ||
                        (b = 0, x = 0), g.drawnextLabel) {
                            var _ = n.drawText({
                                width: 100,
                                height: parseInt(d.style.fontSize, 10),
                                x: i + b,
                                y: a + x,
                                foreColor: y,
                                textAnchor: l || d.textAnchor,
                                text: s,
                                fontSize: c || d.style.fontSize,
                                fontFamily: d.style.fontFamily,
                                fontWeight: d.style.fontWeight || 'normal',
                            });
                            if (_.attr({
                                class: 'apexcharts-datalabel',
                                cx: i,
                                cy: a,
                            }), d.dropShadow.enabled) {
                                var w = d.dropShadow;
                                new m(this.ctx).dropShadow(_, w);
                            }
                            u.add(_), void 0 ===
                            t.globals.lastDrawnDataLabelsIndexes[r] &&
                            (t.globals.lastDrawnDataLabelsIndexes[r] = []), t.globals.lastDrawnDataLabelsIndexes[r].push(
                                o);
                        }
                    }
                },
            },
            {
                key: 'addBackgroundToDataLabel',
                value: function (e, t) {
                    var n = this.w, i = n.config.dataLabels.background,
                        a = i.padding, r = i.padding / 2, o = t.width,
                        s = t.height,
                        l = new v(this.ctx).drawRect(t.x - a, t.y - r / 2,
                            o + 2 * a, s + r, i.borderRadius,
                            'transparent' === n.config.chart.background
                                ? '#fff'
                                : n.config.chart.background, i.opacity,
                            i.borderWidth, i.borderColor);
                    return i.dropShadow.enabled &&
                    new m(this.ctx).dropShadow(l, i.dropShadow), l;
                },
            },
            {
                key: 'dataLabelsBackground', value: function () {
                    var e = this.w;
                    if ('bubble' !==
                        e.config.chart.type) for (var t = e.globals.dom.baseEl.querySelectorAll(
                        '.apexcharts-datalabels text'), n = 0; n <
                                                  t.length; n++) {
                        var i = t[n], a = i.getBBox(), r = null;
                        if (a.width && a.height &&
                        (r = this.addBackgroundToDataLabel(i, a)), r) {
                            i.parentNode.insertBefore(r.node, i);
                            var o = i.getAttribute('fill');
                            !e.config.chart.animations.enabled ||
                            e.globals.resized || e.globals.dataChanged ? r.attr(
                                { fill: o }) : r.animate().
                                attr({ fill: o }), i.setAttribute('fill',
                                e.config.dataLabels.background.foreColor);
                        }
                    }
                },
            },
            {
                key: 'bringForward',
                value: function () {
                    for (var e = this.w, t = e.globals.dom.baseEl.querySelectorAll(
                        '.apexcharts-datalabels'), n = e.globals.dom.baseEl.querySelector(
                        '.apexcharts-plot-series:last-child'), i = 0; i <
                         t.length; i++) n &&
                    n.insertBefore(t[i], n.nextSibling);
                },
            }]), e;
    }(), C = function () {
        function e (n) {t(this, e), this.w = n.w, this.barCtx = n;}

        return i(e, [
            {
                key: 'handleBarDataLabels', value: function (e) {
                    var t = e.x, n = e.y, i = e.y1, a = e.y2, r = e.i, o = e.j,
                        s = e.realIndex, l = e.series, c = e.barHeight,
                        u = e.barWidth, d = e.barYPosition, h = e.visibleSeries,
                        f = e.renderedPath, p = this.w,
                        m = new v(this.barCtx.ctx),
                        g = Array.isArray(this.barCtx.strokeWidth)
                            ? this.barCtx.strokeWidth[s]
                            : this.barCtx.strokeWidth,
                        y = t + parseFloat(u * h), b = n + parseFloat(c * h);
                    p.globals.isXNumeric && !p.globals.isBarHorizontal &&
                    (y = t + parseFloat(u * (h + 1)), b = n +
                        parseFloat(c * (h + 1)) - g);
                    var x, _ = t, w = n, k = p.config.dataLabels,
                        M = this.barCtx.barOptions.dataLabels;
                    void 0 !== d && this.barCtx.isTimelineBar && (b = d, w = d);
                    var L = k.offsetX, S = k.offsetY,
                        T = { width: 0, height: 0 };
                    if (p.config.dataLabels.enabled) {
                        var A = this.barCtx.series[r][o];
                        T = m.getTextRects(p.globals.yLabelFormatters[0](A),
                            parseFloat(k.style.fontSize));
                    }
                    var D = {
                        x: t,
                        y: n,
                        i: r,
                        j: o,
                        renderedPath: f,
                        bcx: y,
                        bcy: b,
                        barHeight: c,
                        barWidth: u,
                        textRects: T,
                        strokeWidth: g,
                        dataLabelsX: _,
                        dataLabelsY: w,
                        barDataLabelsConfig: M,
                        offX: L,
                        offY: S,
                    };
                    return x = this.barCtx.isHorizontal
                        ? this.calculateBarsDataLabelsPosition(D)
                        : this.calculateColumnsDataLabelsPosition(D), f.attr({
                        cy: x.bcy,
                        cx: x.bcx,
                        j: o,
                        val: l[r][o],
                        barHeight: c,
                        barWidth: u,
                    }), this.drawCalculatedDataLabels({
                        x: x.dataLabelsX,
                        y: x.dataLabelsY,
                        val: this.barCtx.isTimelineBar ? [i, a] : l[r][o],
                        i: s,
                        j: o,
                        barWidth: u,
                        barHeight: c,
                        textRects: T,
                        dataLabelsConfig: k,
                    });
                },
            },
            {
                key: 'calculateColumnsDataLabelsPosition',
                value: function (e) {
                    var t, n = this.w, i = e.i, a = e.j, r = e.y, o = e.bcx,
                        s = e.barWidth, l = e.barHeight, c = e.textRects,
                        u = e.dataLabelsY, d = e.barDataLabelsConfig,
                        h = e.strokeWidth, f = e.offX, p = e.offY;
                    l = Math.abs(l);
                    var m = 'vertical' ===
                        n.config.plotOptions.bar.dataLabels.orientation;
                    o -= h / 2;
                    var g = n.globals.gridWidth / n.globals.dataPoints;
                    t = n.globals.isXNumeric ? o - s / 2 + f : o - g + s / 2 +
                        f, m && (t = t + c.height / 2 - h / 2 - 2);
                    var v = this.barCtx.series[i][a] < 0, y = r;
                    switch (this.barCtx.isReversed &&
                    (y = r - l + (v ? 2 * l : 0), r -= l), d.position) {
                        case'center':
                            u = m ? v ? y + l / 2 + p : y + l / 2 - p : v ? y -
                                l / 2 + c.height / 2 + p : y + l / 2 +
                                c.height / 2 - p;
                            break;
                        case'bottom':
                            u = m ? v ? y + l + p : y + l - p : v ? y - l +
                                c.height + h + p : y + l - c.height / 2 + h - p;
                            break;
                        case'top':
                            u = m ? v ? y + p : y - p : v
                                ? y - c.height / 2 - p
                                : y + c.height + p;
                    }
                    return n.config.chart.stacked ||
                    (u < 0 ? u = 0 + h : u + c.height / 3 >
                        n.globals.gridHeight &&
                        (u = n.globals.gridHeight - h)), {
                        bcx: o,
                        bcy: r,
                        dataLabelsX: t,
                        dataLabelsY: u,
                    };
                },
            },
            {
                key: 'calculateBarsDataLabelsPosition',
                value: function (e) {
                    var t = this.w, n = e.x, i = e.i, a = e.j, r = e.bcy,
                        o = e.barHeight, s = e.barWidth, l = e.textRects,
                        c = e.dataLabelsX, u = e.strokeWidth,
                        d = e.barDataLabelsConfig, h = e.offX, f = e.offY,
                        p = t.globals.gridHeight / t.globals.dataPoints;
                    s = Math.abs(s);
                    var m = r - (this.barCtx.isTimelineBar ? 0 : p) + o / 2 +
                        l.height / 2 + f - 3, g = this.barCtx.series[i][a] < 0,
                        v = n;
                    switch (this.barCtx.isReversed &&
                    (v = n + s - (g ? 2 * s : 0), n = t.globals.gridWidth -
                        s), d.position) {
                        case'center':
                            c = g ? v + s / 2 - h : Math.max(l.width / 2,
                                v - s / 2) + h;
                            break;
                        case'bottom':
                            c = g
                                ? v + s - u - Math.round(l.width / 2) - h
                                : v - s + u + Math.round(l.width / 2) + h;
                            break;
                        case'top':
                            c = g ? v - u + Math.round(l.width / 2) - h : v -
                                u - Math.round(l.width / 2) + h;
                    }
                    return t.config.chart.stacked ||
                    (c < 0 ? c = c + l.width + u : c + l.width / 2 >
                        t.globals.gridWidth &&
                        (c = t.globals.gridWidth - l.width - u)), {
                        bcx: n,
                        bcy: r,
                        dataLabelsX: c,
                        dataLabelsY: m,
                    };
                },
            },
            {
                key: 'drawCalculatedDataLabels', value: function (e) {
                    var t = e.x, n = e.y, i = e.val, a = e.i, r = e.j,
                        s = e.textRects, l = e.barHeight, c = e.barWidth,
                        u = e.dataLabelsConfig, d = this.w, h = 'rotate(0)';
                    'vertical' ===
                    d.config.plotOptions.bar.dataLabels.orientation &&
                    (h = 'rotate(-90, '.concat(t, ', ').concat(n, ')'));
                    var f = new D(this.barCtx.ctx), p = new v(this.barCtx.ctx),
                        m = u.formatter, g = null,
                        y = d.globals.collapsedSeriesIndices.indexOf(a) > -1;
                    if (u.enabled && !y) {
                        g = p.group(
                            { class: 'apexcharts-data-labels', transform: h });
                        var b = '';
                        void 0 !== i && (b = m(i,
                            { seriesIndex: a, dataPointIndex: r, w: d })), 0 ===
                        i && d.config.chart.stacked && (b = '');
                        var x = d.globals.series[a][r] <= 0,
                            _ = d.config.plotOptions.bar.dataLabels.position;
                        'vertical' ===
                        d.config.plotOptions.bar.dataLabels.orientation &&
                        ('top' === _ &&
                        (u.textAnchor = x ? 'end' : 'start'), 'center' === _ &&
                        (u.textAnchor = 'middle'), 'bottom' === _ &&
                        (u.textAnchor = x
                            ? 'end'
                            : 'start')), this.barCtx.isTimelineBar &&
                        this.barCtx.barOptions.dataLabels.hideOverflowingLabels &&
                        c <
                        p.getTextRects(b, parseFloat(u.style.fontSize)).width &&
                        (b = ''), d.config.chart.stacked &&
                        this.barCtx.barOptions.dataLabels.hideOverflowingLabels &&
                        (this.barCtx.isHorizontal
                            ? (c > 0 && s.width / 1.6 > c || c < 0 && s.width /
                            1.6 < c) && (b = '')
                            : s.height / 1.6 > l && (b = ''));
                        var w = o({}, u);
                        this.barCtx.isHorizontal && i < 0 &&
                        ('start' === u.textAnchor
                            ? w.textAnchor = 'end'
                            : 'end' === u.textAnchor &&
                            (w.textAnchor = 'start')), f.plotDataLabelsText({
                            x: t,
                            y: n,
                            text: b,
                            i: a,
                            j: r,
                            parent: g,
                            dataLabelsConfig: w,
                            alwaysDrawDataLabel: !0,
                            offsetCorrection: !0,
                        });
                    }
                    return g;
                },
            }]), e;
    }(), E = function () {
        function e (n) {
            t(this,
                e), this.ctx = n, this.w = n.w, this.legendInactiveClass = 'legend-mouseover-inactive';
        }

        return i(e, [
            {
                key: 'getAllSeriesEls',
                value: function () {
                    return this.w.globals.dom.baseEl.getElementsByClassName(
                        'apexcharts-series');
                },
            },
            {
                key: 'getSeriesByName',
                value: function (e) {
                    return this.w.globals.dom.baseEl.querySelector(
                        '.apexcharts-inner .apexcharts-series[seriesName=\''.concat(
                            p.escapeString(e), '\']'));
                },
            },
            {
                key: 'isSeriesHidden',
                value: function (e) {
                    var t = this.getSeriesByName(e),
                        n = parseInt(t.getAttribute('data:realIndex'), 10);
                    return {
                        isHidden: t.classList.contains(
                            'apexcharts-series-collapsed'), realIndex: n,
                    };
                },
            },
            {
                key: 'addCollapsedClassToSeries',
                value: function (e, t) {
                    var n = this.w;

                    function i (n) {
                        for (var i = 0; i < n.length; i++) n[i].index === t &&
                        e.node.classList.add('apexcharts-series-collapsed');
                    }

                    i(n.globals.collapsedSeries), i(
                        n.globals.ancillaryCollapsedSeries);
                },
            },
            {
                key: 'toggleSeries',
                value: function (e) {
                    var t = this.isSeriesHidden(e);
                    return this.ctx.legend.legendHelpers.toggleDataSeries(
                        t.realIndex, t.isHidden), t.isHidden;
                },
            },
            {
                key: 'showSeries',
                value: function (e) {
                    var t = this.isSeriesHidden(e);
                    t.isHidden &&
                    this.ctx.legend.legendHelpers.toggleDataSeries(t.realIndex,
                        !0);
                },
            },
            {
                key: 'hideSeries',
                value: function (e) {
                    var t = this.isSeriesHidden(e);
                    t.isHidden ||
                    this.ctx.legend.legendHelpers.toggleDataSeries(t.realIndex,
                        !1);
                },
            },
            {
                key: 'resetSeries',
                value: function () {
                    var e = !(arguments.length > 0 && void 0 !==
                        arguments[0]) || arguments[0],
                        t = !(arguments.length > 1 && void 0 !==
                            arguments[1]) || arguments[1],
                        n = !(arguments.length > 2 && void 0 !==
                            arguments[2]) || arguments[2], i = this.w,
                        a = p.clone(i.globals.initialSeries);
                    i.globals.previousPaths = [], n
                        ? (i.globals.collapsedSeries = [], i.globals.ancillaryCollapsedSeries = [], i.globals.collapsedSeriesIndices = [], i.globals.ancillaryCollapsedSeriesIndices = [])
                        : a = this.emptyCollapsedSeries(
                            a), i.config.series = a, e && (t &&
                    (i.globals.zoomed = !1, this.ctx.updateHelpers.revertDefaultAxisMinMax()), this.ctx.updateHelpers._updateSeries(
                        a, i.config.chart.animations.dynamicAnimation.enabled));
                },
            },
            {
                key: 'emptyCollapsedSeries',
                value: function (e) {
                    for (var t = this.w, n = 0; n <
                    e.length; n++) t.globals.collapsedSeriesIndices.indexOf(n) >
                    -1 && (e[n].data = []);
                    return e;
                },
            },
            {
                key: 'toggleSeriesOnHover',
                value: function (e, t) {
                    var n = this.w, i = n.globals.dom.baseEl.querySelectorAll(
                        '.apexcharts-series, .apexcharts-datalabels');
                    if ('mousemove' === e.type) {
                        var a = parseInt(t.getAttribute('rel'), 10) - 1,
                            r = null, o = null;
                        n.globals.axisCharts || 'radialBar' ===
                        n.config.chart.type
                            ? n.globals.axisCharts
                            ? (r = n.globals.dom.baseEl.querySelector(
                                '.apexcharts-series[data\\:realIndex=\''.concat(
                                    a,
                                    '\']')), o = n.globals.dom.baseEl.querySelector(
                                '.apexcharts-datalabels[data\\:realIndex=\''.concat(
                                    a, '\']')))
                            : r = n.globals.dom.baseEl.querySelector(
                                '.apexcharts-series[rel=\''.concat(a + 1,
                                    '\']'))
                            : r = n.globals.dom.baseEl.querySelector(
                            '.apexcharts-series[rel=\''.concat(a + 1,
                                '\'] path'));
                        for (var s = 0; s < i.length; s++) i[s].classList.add(
                            this.legendInactiveClass);
                        null !== r && (n.globals.axisCharts ||
                        r.parentNode.classList.remove(
                            this.legendInactiveClass), r.classList.remove(
                            this.legendInactiveClass), null !== o &&
                        o.classList.remove(this.legendInactiveClass));
                    } else if ('mouseout' === e.type) for (var l = 0; l <
                    i.length; l++) i[l].classList.remove(
                        this.legendInactiveClass);
                },
            },
            {
                key: 'highlightRangeInSeries',
                value: function (e, t) {
                    var n = this, i = this.w,
                        a = i.globals.dom.baseEl.getElementsByClassName(
                            'apexcharts-heatmap-rect'), r = function (e) {
                            for (var t = 0; t < a.length; t++) a[t].classList[e](
                                n.legendInactiveClass);
                        };
                    if ('mousemove' === e.type) {
                        var o = parseInt(t.getAttribute('rel'), 10) - 1;
                        r('add'), function (e) {
                            for (var t = 0; t < a.length; t++) {
                                var i = parseInt(a[t].getAttribute('val'), 10);
                                i >= e.from && i <= e.to &&
                                a[t].classList.remove(n.legendInactiveClass);
                            }
                        }(i.config.plotOptions.heatmap.colorScale.ranges[o]);
                    } else 'mouseout' === e.type && r('remove');
                },
            },
            {
                key: 'getActiveConfigSeriesIndex',
                value: function () {
                    var e = arguments.length > 0 && void 0 !== arguments[0] &&
                        arguments[0], t = this.w, n = 0;
                    if (t.config.series.length >
                        1) for (var i = t.config.series.map((function (n, i) {
                        var a = !1;
                        return e && (a = 'bar' === t.config.series[i].type ||
                            'column' === t.config.series[i].type), n.data &&
                        n.data.length > 0 && !a ? i : -1;
                    })), a = 0; a < i.length; a++) if (-1 !== i[a]) {
                        n = i[a];
                        break;
                    }
                    return n;
                },
            },
            {
                key: 'getPreviousPaths', value: function () {
                    var e = this.w;

                    function t (
                        t, n, i) {
                        for (var a = t[n].childNodes, r = {
                            type: i,
                            paths: [],
                            realIndex: t[n].getAttribute('data:realIndex'),
                        }, o = 0; o < a.length; o++) if (a[o].hasAttribute(
                            'pathTo')) {
                            var s = a[o].getAttribute('pathTo');
                            r.paths.push({ d: s });
                        }
                        e.globals.previousPaths.push(r);
                    }

                    e.globals.previousPaths = [], [
                        'line',
                        'area',
                        'bar',
                        'rangebar',
                        'candlestick',
                        'radar'].forEach((function (n) {
                        for (var i, a = (i = n, e.globals.dom.baseEl.querySelectorAll(
                            '.apexcharts-'.concat(i,
                                '-series .apexcharts-series'))), r = 0; r <
                             a.length; r++) t(a, r, n);
                    })), this.handlePrevBubbleScatterPaths(
                        'bubble'), this.handlePrevBubbleScatterPaths('scatter');
                    var n = e.globals.dom.baseEl.querySelectorAll(
                        '.apexcharts-'.concat(e.config.chart.type,
                            ' .apexcharts-series'));
                    if (n.length > 0) for (var i = function (t) {
                        for (var n = e.globals.dom.baseEl.querySelectorAll(
                            '.apexcharts-'.concat(e.config.chart.type,
                                ' .apexcharts-series[data\\:realIndex=\'').
                                concat(t,
                                    '\'] rect')), i = [], a = function (e) {
                            var t = function (t) {
                                return n[e].getAttribute(t);
                            }, a = {
                                x: parseFloat(t('x')),
                                y: parseFloat(t('y')),
                                width: parseFloat(t('width')),
                                height: parseFloat(t('height')),
                            };
                            i.push(
                                { rect: a, color: n[e].getAttribute('color') });
                        }, r = 0; r < n.length; r++) a(r);
                        e.globals.previousPaths.push(i);
                    }, a = 0; a < n.length; a++) i(a);
                    e.globals.axisCharts ||
                    (e.globals.previousPaths = e.globals.series);
                },
            },
            {
                key: 'handlePrevBubbleScatterPaths',
                value: function (e) {
                    var t = this.w, n = t.globals.dom.baseEl.querySelectorAll(
                        '.apexcharts-'.concat(e, '-series .apexcharts-series'));
                    if (n.length > 0) for (var i = 0; i < n.length; i++) {
                        for (var a = t.globals.dom.baseEl.querySelectorAll(
                            '.apexcharts-'.concat(e,
                                '-series .apexcharts-series[data\\:realIndex=\'').
                                concat(i, '\'] circle')), r = [], o = 0; o <
                             a.length; o++) r.push({
                            x: a[o].getAttribute('cx'),
                            y: a[o].getAttribute('cy'),
                            r: a[o].getAttribute('r'),
                        });
                        t.globals.previousPaths.push(r);
                    }
                },
            },
            {
                key: 'clearPreviousPaths', value: function () {
                    var e = this.w;
                    e.globals.previousPaths = [], e.globals.allSeriesCollapsed = !1;
                },
            },
            {
                key: 'handleNoData',
                value: function () {
                    var e = this.w, t = e.config.noData, n = new v(this.ctx),
                        i = e.globals.svgWidth / 2, a = e.globals.svgHeight / 2,
                        r = 'middle';
                    if (e.globals.noData = !0, e.globals.animationEnded = !0, 'left' ===
                    t.align ? (i = 10, r = 'start') : 'right' === t.align &&
                        (i = e.globals.svgWidth - 10, r = 'end'), 'top' ===
                    t.verticalAlign ? a = 50 : 'bottom' === t.verticalAlign &&
                        (a = e.globals.svgHeight - 50), i += t.offsetX, a = a +
                        parseInt(t.style.fontSize, 10) + 2 +
                        t.offsetY, void 0 !== t.text && '' !== t.text) {
                        var o = n.drawText({
                            x: i,
                            y: a,
                            text: t.text,
                            textAnchor: r,
                            fontSize: t.style.fontSize,
                            fontFamily: t.style.fontFamily,
                            foreColor: t.style.color,
                            opacity: 1,
                            class: 'apexcharts-text-nodata',
                        });
                        e.globals.dom.Paper.add(o);
                    }
                },
            },
            {
                key: 'setNullSeriesToZeroValues',
                value: function (e) {
                    for (var t = this.w, n = 0; n < e.length; n++) if (0 ===
                        e[n].length) for (var i = 0; i <
                    e[t.globals.maxValsInArrayIndex].length; i++) e[n].push(0);
                    return e;
                },
            },
            {
                key: 'hasAllSeriesEqualX',
                value: function () {
                    for (var e = !0, t = this.w, n = this.filteredSeriesX(), i = 0; i <
                    n.length - 1; i++) if (n[i][0] !== n[i + 1][0]) {
                        e = !1;
                        break;
                    }
                    return t.globals.allSeriesHasEqualX = e, e;
                },
            },
            {
                key: 'filteredSeriesX',
                value: function () {
                    return this.w.globals.seriesX.map(
                        (function (e) {return e.length > 0 ? e : [];}));
                },
            }]), e;
    }(), O = function () {
        function e (n) {t(this, e), this.w = n.w, this.barCtx = n;}

        return i(e, [
            {
                key: 'initVariables', value: function (e) {
                    var t = this.w;
                    this.barCtx.series = e, this.barCtx.totalItems = 0, this.barCtx.seriesLen = 0, this.barCtx.visibleI = -1, this.barCtx.visibleItems = 1;
                    for (var n = 0; n < e.length; n++) if (e[n].length > 0 &&
                    (this.barCtx.seriesLen = this.barCtx.seriesLen +
                        1, this.barCtx.totalItems += e[n].length), t.globals.isXNumeric) for (var i = 0; i <
                    e[n].length; i++) t.globals.seriesX[n][i] >
                    t.globals.minX && t.globals.seriesX[n][i] <
                    t.globals.maxX &&
                    this.barCtx.visibleItems++; else this.barCtx.visibleItems = t.globals.dataPoints;
                    0 === this.barCtx.seriesLen && (this.barCtx.seriesLen = 1);
                },
            },
            {
                key: 'initialPositions', value: function () {
                    var e, t, n, i, a, r, o, s, l = this.w,
                        c = l.globals.dataPoints;
                    this.barCtx.isTimelineBar && (c = l.globals.labels.length);
                    var u = this.barCtx.seriesLen;
                    if (l.config.plotOptions.bar.rangeBarGroupRows &&
                    (u = 1), this.barCtx.isHorizontal) a = (n = l.globals.gridHeight /
                        c) / u, l.globals.isXNumeric &&
                    (a = (n = l.globals.gridHeight / this.barCtx.totalItems) /
                        this.barCtx.seriesLen), a = a *
                        parseInt(this.barCtx.barOptions.barHeight, 10) /
                        100, s = this.barCtx.baseLineInvertedY +
                        l.globals.padHorizontal +
                        (this.barCtx.isReversed ? l.globals.gridWidth : 0) -
                        (this.barCtx.isReversed ? 2 *
                            this.barCtx.baseLineInvertedY : 0), t = (n - a *
                        this.barCtx.seriesLen) / 2; else {
                        if (i = l.globals.gridWidth /
                            this.barCtx.visibleItems, l.config.xaxis.convertedCatToNumeric &&
                        (i = l.globals.gridWidth /
                            l.globals.dataPoints), r = i /
                            this.barCtx.seriesLen *
                            parseInt(this.barCtx.barOptions.columnWidth, 10) /
                            100, l.globals.isXNumeric) {
                            var d = this.barCtx.xRatio;
                            l.config.xaxis.convertedCatToNumeric &&
                            (d = this.barCtx.initialXRatio), l.globals.minXDiff &&
                            .5 !== l.globals.minXDiff && l.globals.minXDiff /
                            d > 0 && (i = l.globals.minXDiff / d), (r = i /
                                this.barCtx.seriesLen *
                                parseInt(this.barCtx.barOptions.columnWidth,
                                    10) / 100) < 1 && (r = 1);
                        }
                        o = l.globals.gridHeight -
                            this.barCtx.baseLineY[this.barCtx.yaxisIndex] -
                            (this.barCtx.isReversed
                                ? l.globals.gridHeight
                                : 0) + (this.barCtx.isReversed
                                ? 2 *
                                this.barCtx.baseLineY[this.barCtx.yaxisIndex]
                                : 0), e = l.globals.padHorizontal +
                            (i - r * this.barCtx.seriesLen) / 2;
                    }
                    return {
                        x: e,
                        y: t,
                        yDivision: n,
                        xDivision: i,
                        barHeight: a,
                        barWidth: r,
                        zeroH: o,
                        zeroW: s,
                    };
                },
            },
            {
                key: 'getPathFillColor',
                value: function (e, t, n, i) {
                    var a = this.w, r = new S(this.barCtx.ctx), o = null,
                        s = this.barCtx.barOptions.distributed ? n : t;
                    return this.barCtx.barOptions.colors.ranges.length > 0 &&
                    this.barCtx.barOptions.colors.ranges.map((function (i) {
                        e[t][n] >= i.from && e[t][n] <= i.to && (o = i.color);
                    })), a.config.series[t].data[n] &&
                    a.config.series[t].data[n].fillColor &&
                    (o = a.config.series[t].data[n].fillColor), r.fillPath({
                        seriesNumber: this.barCtx.barOptions.distributed
                            ? s
                            : i, dataPointIndex: n, color: o, value: e[t][n],
                    });
                },
            },
            {
                key: 'getStrokeWidth',
                value: function (e, t, n) {
                    var i = 0, a = this.w;
                    return void 0 === this.barCtx.series[e][t] || null ===
                    this.barCtx.series[e][t]
                        ? this.barCtx.isNullValue = !0
                        : this.barCtx.isNullValue = !1, a.config.stroke.show &&
                    (this.barCtx.isNullValue ||
                        (i = Array.isArray(this.barCtx.strokeWidth)
                            ? this.barCtx.strokeWidth[n]
                            : this.barCtx.strokeWidth)), i;
                },
            },
            {
                key: 'barBackground',
                value: function (e) {
                    var t = e.j, n = e.i, i = e.x1, a = e.x2, r = e.y1,
                        o = e.y2, s = e.elSeries, l = this.w,
                        c = new v(this.barCtx.ctx),
                        u = new E(this.barCtx.ctx).getActiveConfigSeriesIndex();
                    if (this.barCtx.barOptions.colors.backgroundBarColors.length >
                        0 && u === n) {
                        t >=
                        this.barCtx.barOptions.colors.backgroundBarColors.length &&
                        (t -= this.barCtx.barOptions.colors.backgroundBarColors.length);
                        var d = this.barCtx.barOptions.colors.backgroundBarColors[t],
                            h = c.drawRect(void 0 !== i ? i : 0,
                                void 0 !== r ? r : 0,
                                void 0 !== a ? a : l.globals.gridWidth,
                                void 0 !== o ? o : l.globals.gridHeight,
                                this.barCtx.barOptions.colors.backgroundBarRadius,
                                d,
                                this.barCtx.barOptions.colors.backgroundBarOpacity);
                        s.add(h), h.node.classList.add(
                            'apexcharts-backgroundBar');
                    }
                },
            },
            {
                key: 'getColumnPaths',
                value: function (e) {
                    var t = e.barWidth, n = e.barXPosition, i = e.yRatio,
                        a = e.y1, r = e.y2, o = e.strokeWidth, s = e.series,
                        l = e.realIndex, c = e.i, u = e.j, d = e.w,
                        h = new v(this.barCtx.ctx);
                    (o = Array.isArray(o) ? o[l] : o) || (o = 0);
                    var f = {
                            barWidth: t,
                            strokeWidth: o,
                            yRatio: i,
                            barXPosition: n,
                            y1: a,
                            y2: r,
                        }, p = this.getRoundedBars(d, f, s, c, u), m = n, g = n + t,
                        y = h.move(m, p.y1), b = h.move(m, p.y1);
                    return d.globals.previousPaths.length > 0 &&
                    (b = this.barCtx.getPreviousPath(l, u, !1)), {
                        pathTo: y = y + h.line(m, p.y2) + p.endingPath +
                            h.line(g - o, p.y2) + h.line(g - o, p.y1) +
                            p.startingPath + 'z',
                        pathFrom: b = b + h.line(m, a) + h.line(g - o, a) +
                            h.line(g - o, a) + h.line(g - o, a) + h.line(m, a),
                    };
                },
            },
            {
                key: 'getBarpaths',
                value: function (e) {
                    var t = e.barYPosition, n = e.barHeight, i = e.x1, a = e.x2,
                        r = e.strokeWidth, o = e.series, s = e.realIndex,
                        l = e.i, c = e.j, u = e.w, d = new v(this.barCtx.ctx);
                    (r = Array.isArray(r) ? r[s] : r) || (r = 0);
                    var h = {
                            barHeight: n,
                            strokeWidth: r,
                            barYPosition: t,
                            x2: a,
                            x1: i,
                        }, f = this.getRoundedBars(u, h, o, l, c),
                        p = d.move(f.x1, t), m = d.move(f.x1, t);
                    u.globals.previousPaths.length > 0 &&
                    (m = this.barCtx.getPreviousPath(s, c, !1));
                    var g = t, y = t + n;
                    return {
                        pathTo: p = p + d.line(f.x2, g) + f.endingPath +
                            d.line(f.x2, y - r) + d.line(f.x1, y - r) +
                            f.startingPath + 'z',
                        pathFrom: m = m + d.line(i, g) + d.line(i, y - r) +
                            d.line(i, y - r) + d.line(i, y - r) + d.line(i, g),
                    };
                },
            },
            {
                key: 'getRoundedBars', value: function (e, t, n, i, a) {
                    var r = new v(this.barCtx.ctx),
                        o = Array.isArray(t.strokeWidth)
                            ? t.strokeWidth[i]
                            : t.strokeWidth;
                    if (o || (o = 0), this.barCtx.isHorizontal) {
                        var s = null, l = '', c = t.x2, u = t.x1;
                        if (void 0 !== n[i][a] || null !== n[i][a]) {
                            var d = n[i][a] < 0, h = t.barHeight / 2 - o;
                            switch (d && (h = -t.barHeight / 2 - o), h >
                            Math.abs(c - u) &&
                            (h = Math.abs(c - u)), 'rounded' ===
                            this.barCtx.barOptions.endingShape &&
                            (c = t.x2 - h / 2), 'rounded' ===
                            this.barCtx.barOptions.startingShape &&
                            (u = t.x1 + h /
                                2), this.barCtx.barOptions.endingShape) {
                                case'flat':
                                    s = r.line(c,
                                        t.barYPosition + t.barHeight - o);
                                    break;
                                case'rounded':
                                    s = r.quadraticCurve(c + h,
                                        t.barYPosition + (t.barHeight - o) / 2,
                                        c, t.barYPosition + t.barHeight - o);
                            }
                            switch (this.barCtx.barOptions.startingShape) {
                                case'flat':
                                    l = r.line(u,
                                        t.barYPosition + t.barHeight - o);
                                    break;
                                case'rounded':
                                    l = r.quadraticCurve(u - h,
                                        t.barYPosition + t.barHeight / 2, u,
                                        t.barYPosition);
                            }
                        }
                        return { endingPath: s, startingPath: l, x2: c, x1: u };
                    }
                    var f = null, p = '', m = t.y2, g = t.y1;
                    if (void 0 !== n[i][a] || null !== n[i][a]) {
                        var y = n[i][a] < 0, b = t.barWidth / 2 - o;
                        switch (y && (b = -t.barWidth / 2 - o), b >
                        Math.abs(m - g) && (b = Math.abs(m - g)), 'rounded' ===
                        this.barCtx.barOptions.endingShape &&
                        (m += b / 2), 'rounded' ===
                        this.barCtx.barOptions.startingShape &&
                        (g -= b / 2), this.barCtx.barOptions.endingShape) {
                            case'flat':
                                f = r.line(t.barXPosition + t.barWidth - o, m);
                                break;
                            case'rounded':
                                f = r.quadraticCurve(
                                    t.barXPosition + (t.barWidth - o) / 2,
                                    m - b, t.barXPosition + t.barWidth - o, m);
                        }
                        switch (this.barCtx.barOptions.startingShape) {
                            case'flat':
                                p = r.line(t.barXPosition + t.barWidth - o, g);
                                break;
                            case'rounded':
                                p = r.quadraticCurve(
                                    t.barXPosition + (t.barWidth - o) / 2,
                                    g + b, t.barXPosition, g);
                        }
                    }
                    return { endingPath: f, startingPath: p, y2: m, y1: g };
                },
            }]), e;
    }(), Y = function () {
        function e (n, i) {
            t(this, e), this.ctx = n, this.w = n.w;
            var a = this.w;
            this.barOptions = a.config.plotOptions.bar, this.isHorizontal = this.barOptions.horizontal, this.strokeWidth = a.config.stroke.width, this.isNullValue = !1, this.isTimelineBar = 'datetime' ===
                a.config.xaxis.type &&
                a.globals.seriesRangeBarTimeline.length, this.xyRatios = i, null !==
            this.xyRatios &&
            (this.xRatio = i.xRatio, this.initialXRatio = i.initialXRatio, this.yRatio = i.yRatio, this.invertedXRatio = i.invertedXRatio, this.invertedYRatio = i.invertedYRatio, this.baseLineY = i.baseLineY, this.baseLineInvertedY = i.baseLineInvertedY), this.yaxisIndex = 0, this.seriesLen = 0, this.barHelpers = new O(
                this);
        }

        return i(e, [
            {
                key: 'draw', value: function (e, t) {
                    var n = this.w, i = new v(this.ctx), a = new x(this.ctx, n);
                    e = a.getLogSeries(
                        e), this.series = e, this.yRatio = a.getLogYRatios(
                        this.yRatio), this.barHelpers.initVariables(e);
                    var r = i.group(
                        { class: 'apexcharts-bar-series apexcharts-plot-series' });
                    n.config.dataLabels.enabled && this.totalItems >
                    this.barOptions.dataLabels.maxItems && console.warn(
                        'WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering.');
                    for (var s = 0, l = 0; s < e.length; s++, l++) {
                        var c, u, d, h, f = void 0, m = void 0, g = [], y = [],
                            b = n.globals.comboCharts ? t[s] : s, _ = i.group({
                                class: 'apexcharts-series',
                                rel: s + 1,
                                seriesName: p.escapeString(
                                    n.globals.seriesNames[b]),
                                'data:realIndex': b,
                            });
                        this.ctx.series.addCollapsedClassToSeries(_,
                            b), e[s].length > 0 &&
                        (this.visibleI = this.visibleI + 1);
                        var w = 0, k = 0;
                        this.yRatio.length > 1 &&
                        (this.yaxisIndex = b), this.isReversed = n.config.yaxis[this.yaxisIndex] &&
                            n.config.yaxis[this.yaxisIndex].reversed;
                        var M = this.barHelpers.initialPositions();
                        m = M.y, w = M.barHeight, u = M.yDivision, h = M.zeroW, f = M.x, k = M.barWidth, c = M.xDivision, d = M.zeroH, this.horizontal ||
                        y.push(f + k / 2);
                        for (var L = i.group({
                            class: 'apexcharts-datalabels',
                            'data:realIndex': b,
                        }), S = 0; S < n.globals.dataPoints; S++) {
                            var T = this.barHelpers.getStrokeWidth(s, S, b),
                                A = null, D = {
                                    indexes: { i: s, j: S, realIndex: b, bc: l },
                                    x: f,
                                    y: m,
                                    strokeWidth: T,
                                    elSeries: _,
                                };
                            this.isHorizontal
                                ? (A = this.drawBarPaths(o(o({}, D), {}, {
                                    barHeight: w,
                                    zeroW: h,
                                    yDivision: u,
                                })), k = this.series[s][S] / this.invertedYRatio)
                                : (A = this.drawColumnPaths(o(o({}, D), {}, {
                                    xDivision: c,
                                    barWidth: k,
                                    zeroH: d,
                                })), w = this.series[s][S] /
                                this.yRatio[this.yaxisIndex]), m = A.y, f = A.x, S >
                            0 && y.push(f + k / 2), g.push(m);
                            var C = this.barHelpers.getPathFillColor(e, s, S,
                                b);
                            this.renderSeries({
                                realIndex: b,
                                pathFill: C,
                                j: S,
                                i: s,
                                pathFrom: A.pathFrom,
                                pathTo: A.pathTo,
                                strokeWidth: T,
                                elSeries: _,
                                x: f,
                                y: m,
                                series: e,
                                barHeight: w,
                                barWidth: k,
                                elDataLabelsWrap: L,
                                visibleSeries: this.visibleI,
                                type: 'bar',
                            });
                        }
                        n.globals.seriesXvalues[b] = y, n.globals.seriesYvalues[b] = g, r.add(
                            _);
                    }
                    return r;
                },
            },
            {
                key: 'renderSeries', value: function (e) {
                    var t = e.realIndex, n = e.pathFill, i = e.lineFill,
                        a = e.j, r = e.i, o = e.pathFrom, s = e.pathTo,
                        l = e.strokeWidth, c = e.elSeries, u = e.x, d = e.y,
                        h = e.y1, f = e.y2, p = e.series, g = e.barHeight,
                        y = e.barWidth, b = e.barYPosition,
                        x = e.elDataLabelsWrap, _ = e.visibleSeries, w = e.type,
                        k = this.w, M = new v(this.ctx);
                    i || (i = this.barOptions.distributed
                        ? k.globals.stroke.colors[a]
                        : k.globals.stroke.colors[t]), k.config.series[r].data[a] &&
                    k.config.series[r].data[a].strokeColor &&
                    (i = k.config.series[r].data[a].strokeColor), this.isNullValue &&
                    (n = 'none');
                    var L = a /
                        k.config.chart.animations.animateGradually.delay *
                        (k.config.chart.animations.speed /
                            k.globals.dataPoints) / 2.4, S = M.renderPaths({
                        i: r,
                        j: a,
                        realIndex: t,
                        pathFrom: o,
                        pathTo: s,
                        stroke: i,
                        strokeWidth: l,
                        strokeLineCap: k.config.stroke.lineCap,
                        fill: n,
                        animationDelay: L,
                        initialSpeed: k.config.chart.animations.speed,
                        dataChangeSpeed: k.config.chart.animations.dynamicAnimation.speed,
                        className: 'apexcharts-'.concat(w, '-area'),
                    });
                    S.attr('clip-path',
                        'url(#gridRectMask'.concat(k.globals.cuid,
                            ')')), void 0 !== h && void 0 !== f &&
                    (S.attr('data-range-y1', h), S.attr('data-range-y2',
                        f)), new m(this.ctx).setSelectionFilter(S, t, a), c.add(
                        S);
                    var T = new C(this).handleBarDataLabels({
                        x: u,
                        y: d,
                        y1: h,
                        y2: f,
                        i: r,
                        j: a,
                        series: p,
                        realIndex: t,
                        barHeight: g,
                        barWidth: y,
                        barYPosition: b,
                        renderedPath: S,
                        visibleSeries: _,
                    });
                    return null !== T && x.add(T), c.add(x), c;
                },
            },
            {
                key: 'drawBarPaths',
                value: function (e) {
                    var t = e.indexes, n = e.barHeight, i = e.strokeWidth,
                        a = e.zeroW, r = e.x, o = e.y, s = e.yDivision,
                        l = e.elSeries, c = this.w, u = t.i, d = t.j;
                    c.globals.isXNumeric &&
                    (o = (c.globals.seriesX[u][d] - c.globals.minX) /
                        this.invertedXRatio - n);
                    var h = o + n * this.visibleI;
                    r = void 0 === this.series[u][d] || null ===
                    this.series[u][d] ? a : a + this.series[u][d] /
                        this.invertedYRatio - 2 *
                        (this.isReversed ? this.series[u][d] /
                            this.invertedYRatio : 0);
                    var f = this.barHelpers.getBarpaths({
                        barYPosition: h,
                        barHeight: n,
                        x1: a,
                        x2: r,
                        strokeWidth: i,
                        series: this.series,
                        realIndex: t.realIndex,
                        i: u,
                        j: d,
                        w: c,
                    });
                    return c.globals.isXNumeric ||
                    (o += s), this.barHelpers.barBackground({
                        j: d,
                        i: u,
                        y1: h - n * this.visibleI,
                        y2: n * this.seriesLen,
                        elSeries: l,
                    }), {
                        pathTo: f.pathTo,
                        pathFrom: f.pathFrom,
                        x: r,
                        y: o,
                        barYPosition: h,
                    };
                },
            },
            {
                key: 'drawColumnPaths',
                value: function (e) {
                    var t = e.indexes, n = e.x, i = e.y, a = e.xDivision,
                        r = e.barWidth, o = e.zeroH, s = e.strokeWidth,
                        l = e.elSeries, c = this.w, u = t.realIndex, d = t.i,
                        h = t.j, f = t.bc;
                    if (c.globals.isXNumeric) {
                        var p = u;
                        c.globals.seriesX[u].length ||
                        (p = c.globals.maxValsInArrayIndex), n = (c.globals.seriesX[p][h] -
                            c.globals.minX) / this.xRatio - r * this.seriesLen /
                            2;
                    }
                    var m = n + r * this.visibleI;
                    i = void 0 === this.series[d][h] || null ===
                    this.series[d][h] ? o : o - this.series[d][h] /
                        this.yRatio[this.yaxisIndex] + 2 *
                        (this.isReversed ? this.series[d][h] /
                            this.yRatio[this.yaxisIndex] : 0);
                    var g = this.barHelpers.getColumnPaths({
                        barXPosition: m,
                        barWidth: r,
                        y1: o,
                        y2: i,
                        strokeWidth: s,
                        series: this.series,
                        realIndex: t.realIndex,
                        i: d,
                        j: h,
                        w: c,
                    });
                    return c.globals.isXNumeric ||
                    (n += a), this.barHelpers.barBackground({
                        bc: f,
                        j: h,
                        i: d,
                        x1: m - s / 2 - r * this.visibleI,
                        x2: r * this.seriesLen + s / 2,
                        elSeries: l,
                    }), {
                        pathTo: g.pathTo,
                        pathFrom: g.pathFrom,
                        x: n,
                        y: i,
                        barXPosition: m,
                    };
                },
            },
            {
                key: 'getPreviousPath',
                value: function (e, t) {
                    for (var n, i = this.w, a = 0; a <
                    i.globals.previousPaths.length; a++) {
                        var r = i.globals.previousPaths[a];
                        r.paths && r.paths.length > 0 &&
                        parseInt(r.realIndex, 10) === parseInt(e, 10) &&
                        void 0 !== i.globals.previousPaths[a].paths[t] &&
                        (n = i.globals.previousPaths[a].paths[t].d);
                    }
                    return n;
                },
            }]), e;
    }(), P = function () {
        function e (n) {
            t(this, e), this.ctx = n, this.w = n.w, this.months31 = [
                1,
                3,
                5,
                7,
                8,
                10,
                12], this.months30 = [2, 4, 6, 9, 11], this.daysCntOfYear = [
                0,
                31,
                59,
                90,
                120,
                151,
                181,
                212,
                243,
                273,
                304,
                334];
        }

        return i(e, [
            {
                key: 'isValidDate',
                value: function (e) {return !isNaN(this.parseDate(e));},
            },
            {
                key: 'getTimeStamp',
                value: function (e) {
                    return Date.parse(e)
                        ? this.w.config.xaxis.labels.datetimeUTC
                            ? new Date(new Date(e).toISOString().
                                substr(0, 25)).getTime()
                            : new Date(e).getTime()
                        : e;
                },
            },
            {
                key: 'getDate',
                value: function (e) {
                    return this.w.config.xaxis.labels.datetimeUTC
                        ? new Date(new Date(e).toUTCString())
                        : new Date(e);
                },
            },
            {
                key: 'parseDate', value: function (e) {
                    var t = Date.parse(e);
                    if (!isNaN(t)) return this.getTimeStamp(e);
                    var n = Date.parse(
                        e.replace(/-/g, '/').replace(/[a-z]+/gi, ' '));
                    return this.getTimeStamp(n);
                },
            },
            {
                key: 'parseDateWithTimezone',
                value: function (e) {
                    return Date.parse(
                        e.replace(/-/g, '/').replace(/[a-z]+/gi, ' '));
                },
            },
            {
                key: 'formatDate', value: function (e, t) {
                    var n = this.w.globals.locale,
                        i = this.w.config.xaxis.labels.datetimeUTC,
                        a = ['\0'].concat(h(n.months)),
                        r = [''].concat(h(n.shortMonths)),
                        o = [''].concat(h(n.days)),
                        s = [''].concat(h(n.shortDays));

                    function l (e, t) {
                        var n = e + '';
                        for (t = t || 2; n.length < t;) n = '0' + n;
                        return n;
                    }

                    var c = i ? e.getUTCFullYear() : e.getFullYear();
                    t = (t = (t = t.replace(/(^|[^\\])yyyy+/g,
                        '$1' + c)).replace(/(^|[^\\])yy/g,
                        '$1' + c.toString().substr(2, 2))).replace(
                        /(^|[^\\])y/g, '$1' + c);
                    var u = (i ? e.getUTCMonth() : e.getMonth()) + 1;
                    t = (t = (t = (t = t.replace(/(^|[^\\])MMMM+/g,
                        '$1' + a[0])).replace(/(^|[^\\])MMM/g,
                        '$1' + r[0])).replace(/(^|[^\\])MM/g,
                        '$1' + l(u))).replace(/(^|[^\\])M/g, '$1' + u);
                    var d = i ? e.getUTCDate() : e.getDate();
                    t = (t = (t = (t = t.replace(/(^|[^\\])dddd+/g,
                        '$1' + o[0])).replace(/(^|[^\\])ddd/g,
                        '$1' + s[0])).replace(/(^|[^\\])dd/g,
                        '$1' + l(d))).replace(/(^|[^\\])d/g, '$1' + d);
                    var f = i ? e.getUTCHours() : e.getHours(),
                        p = f > 12 ? f - 12 : 0 === f ? 12 : f;
                    t = (t = (t = (t = t.replace(/(^|[^\\])HH+/g,
                        '$1' + l(f))).replace(/(^|[^\\])H/g, '$1' + f)).replace(
                        /(^|[^\\])hh+/g, '$1' + l(p))).replace(/(^|[^\\])h/g,
                        '$1' + p);
                    var m = i ? e.getUTCMinutes() : e.getMinutes();
                    t = (t = t.replace(/(^|[^\\])mm+/g, '$1' + l(m))).replace(
                        /(^|[^\\])m/g, '$1' + m);
                    var g = i ? e.getUTCSeconds() : e.getSeconds();
                    t = (t = t.replace(/(^|[^\\])ss+/g, '$1' + l(g))).replace(
                        /(^|[^\\])s/g, '$1' + g);
                    var v = i ? e.getUTCMilliseconds() : e.getMilliseconds();
                    t = t.replace(/(^|[^\\])fff+/g,
                        '$1' + l(v, 3)), v = Math.round(v / 10), t = t.replace(
                        /(^|[^\\])ff/g, '$1' + l(v)), v = Math.round(v / 10);
                    var y = f < 12 ? 'AM' : 'PM';
                    t = (t = (t = t.replace(/(^|[^\\])f/g, '$1' + v)).replace(
                        /(^|[^\\])TT+/g, '$1' + y)).replace(/(^|[^\\])T/g,
                        '$1' + y.charAt(0));
                    var b = y.toLowerCase();
                    t = (t = t.replace(/(^|[^\\])tt+/g, '$1' + b)).replace(
                        /(^|[^\\])t/g, '$1' + b.charAt(0));
                    var x = -e.getTimezoneOffset(),
                        _ = i || !x ? 'Z' : x > 0 ? '+' : '-';
                    if (!i) {
                        var w = (x = Math.abs(x)) % 60;
                        _ += l(Math.floor(x / 60)) + ':' + l(w);
                    }
                    t = t.replace(/(^|[^\\])K/g, '$1' + _);
                    var k = (i ? e.getUTCDay() : e.getDay()) + 1;
                    return (t = (t = (t = (t = t.replace(new RegExp(o[0], 'g'),
                        o[k])).replace(new RegExp(s[0], 'g'), s[k])).replace(
                        new RegExp(a[0], 'g'), a[u])).replace(
                        new RegExp(r[0], 'g'), r[u])).replace(/\\(.)/g, '$1');
                },
            },
            {
                key: 'getTimeUnitsfromTimestamp',
                value: function (e, t, n) {
                    var i = this.w;
                    void 0 !== i.config.xaxis.min &&
                    (e = i.config.xaxis.min), void 0 !== i.config.xaxis.max &&
                    (t = i.config.xaxis.max);
                    var a = this.getDate(e), r = this.getDate(t),
                        o = this.formatDate(a, 'yyyy MM dd HH mm ss').
                            split(' '),
                        s = this.formatDate(r, 'yyyy MM dd HH mm ss').
                            split(' ');
                    return {
                        minSecond: parseInt(o[5], 10),
                        maxSecond: parseInt(s[5], 10),
                        minMinute: parseInt(o[4], 10),
                        maxMinute: parseInt(s[4], 10),
                        minHour: parseInt(o[3], 10),
                        maxHour: parseInt(s[3], 10),
                        minDate: parseInt(o[2], 10),
                        maxDate: parseInt(s[2], 10),
                        minMonth: parseInt(o[1], 10) - 1,
                        maxMonth: parseInt(s[1], 10) - 1,
                        minYear: parseInt(o[0], 10),
                        maxYear: parseInt(s[0], 10),
                    };
                },
            },
            {
                key: 'isLeapYear',
                value: function (e) {
                    return e % 4 == 0 && e % 100 != 0 || e % 400 == 0;
                },
            },
            {
                key: 'calculcateLastDaysOfMonth',
                value: function (e, t, n) {
                    return this.determineDaysOfMonths(e, t) - n;
                },
            },
            {
                key: 'determineDaysOfYear', value: function (e) {
                    var t = 365;
                    return this.isLeapYear(e) && (t = 366), t;
                },
            },
            {
                key: 'determineRemainingDaysOfYear',
                value: function (e, t, n) {
                    var i = this.daysCntOfYear[t] + n;
                    return t > 1 && this.isLeapYear() && i++, i;
                },
            },
            {
                key: 'determineDaysOfMonths', value: function (e, t) {
                    var n = 30;
                    switch (e = p.monthMod(e), !0) {
                        case this.months30.indexOf(e) > -1:
                            2 === e && (n = this.isLeapYear(t) ? 29 : 28);
                            break;
                        case this.months31.indexOf(e) > -1:
                        default:
                            n = 31;
                    }
                    return n;
                },
            }]), e;
    }(), I = function (e) {
        s(a, e);
        var n = d(a);

        function a () {return t(this, a), n.apply(this, arguments);}

        return i(a, [
            {
                key: 'draw', value: function (e, t) {
                    var n = this.w, i = new v(this.ctx);
                    this.rangeBarOptions = this.w.config.plotOptions.rangeBar, this.series = e, this.seriesRangeStart = n.globals.seriesRangeStart, this.seriesRangeEnd = n.globals.seriesRangeEnd, this.barHelpers.initVariables(
                        e);
                    for (var a = i.group(
                        { class: 'apexcharts-rangebar-series apexcharts-plot-series' }), r = 0; r <
                         e.length; r++) {
                        var s, l, c, u = void 0, d = void 0, h = void 0,
                            f = n.globals.comboCharts ? t[r] : r, m = i.group({
                                class: 'apexcharts-series',
                                seriesName: p.escapeString(
                                    n.globals.seriesNames[f]),
                                rel: r + 1,
                                'data:realIndex': f,
                            });
                        e[r].length > 0 && (this.visibleI = this.visibleI + 1);
                        var g = 0, y = 0;
                        this.yRatio.length > 1 && (this.yaxisIndex = f);
                        var b = this.barHelpers.initialPositions();
                        d = b.y, c = b.zeroW, u = b.x, y = b.barWidth, s = b.xDivision, l = b.zeroH;
                        for (var x = i.group({
                            class: 'apexcharts-datalabels',
                            'data:realIndex': f,
                        }), _ = 0; _ < n.globals.dataPoints; _++) {
                            var w = this.barHelpers.getStrokeWidth(r, _, f),
                                k = this.seriesRangeStart[r][_],
                                M = this.seriesRangeEnd[r][_], L = null,
                                S = null,
                                T = { x: u, y: d, strokeWidth: w, elSeries: m };
                            if (h = b.yDivision, g = b.barHeight, this.isHorizontal) {
                                S = d + g * this.visibleI;
                                var A = this.seriesLen;
                                n.config.plotOptions.bar.rangeBarGroupRows &&
                                (A = 1);
                                var D = (h - g * A) / 2;
                                if (void 0 ===
                                    n.config.series[r].data[_]) break;
                                if (this.isTimelineBar &&
                                    n.config.series[r].data[_].x) {
                                    var C = this.detectOverlappingBars({
                                        i: r,
                                        j: _,
                                        barYPosition: S,
                                        srty: D,
                                        barHeight: g,
                                        yDivision: h,
                                        initPositions: b,
                                    });
                                    g = C.barHeight, S = C.barYPosition;
                                }
                                y = (L = this.drawRangeBarPaths(o({
                                    indexes: { i: r, j: _, realIndex: f },
                                    barHeight: g,
                                    barYPosition: S,
                                    zeroW: c,
                                    yDivision: h,
                                    y1: k,
                                    y2: M,
                                }, T))).barWidth;
                            } else g = (L = this.drawRangeColumnPaths(o({
                                indexes: { i: r, j: _, realIndex: f },
                                zeroH: l,
                                barWidth: y,
                                xDivision: s,
                            }, T))).barHeight;
                            d = L.y, u = L.x;
                            var E = this.barHelpers.getPathFillColor(e, r, _,
                                f), O = n.globals.stroke.colors[f];
                            this.renderSeries({
                                realIndex: f,
                                pathFill: E,
                                lineFill: O,
                                j: _,
                                i: r,
                                x: u,
                                y: d,
                                y1: k,
                                y2: M,
                                pathFrom: L.pathFrom,
                                pathTo: L.pathTo,
                                strokeWidth: w,
                                elSeries: m,
                                series: e,
                                barHeight: g,
                                barYPosition: S,
                                barWidth: y,
                                elDataLabelsWrap: x,
                                visibleSeries: this.visibleI,
                                type: 'rangebar',
                            });
                        }
                        a.add(m);
                    }
                    return a;
                },
            },
            {
                key: 'detectOverlappingBars',
                value: function (e) {
                    var t = e.i, n = e.j, i = e.barYPosition, a = e.srty,
                        r = e.barHeight, o = e.yDivision, s = e.initPositions,
                        l = this.w, c = [],
                        u = l.config.series[t].data[n].rangeName,
                        d = l.config.series[t].data[n].x,
                        h = l.globals.labels.indexOf(d),
                        f = l.globals.seriesRangeBarTimeline[t].findIndex(
                            (function (e) {
                                return e.x === d && e.overlaps.length > 0;
                            }));
                    return i = l.config.plotOptions.bar.rangeBarGroupRows ? a +
                        o * h : a + r * this.visibleI + o * h, f > -1 &&
                    !l.config.plotOptions.bar.rangeBarOverlap &&
                    (c = l.globals.seriesRangeBarTimeline[t][f].overlaps).indexOf(
                        u) > -1 &&
                    (i = (r = s.barHeight / c.length) * this.visibleI + o *
                        (100 - parseInt(this.barOptions.barHeight, 10)) / 100 /
                        2 + r * (this.visibleI + c.indexOf(u)) + o *
                        h), { barYPosition: i, barHeight: r };
                },
            },
            {
                key: 'drawRangeColumnPaths',
                value: function (e) {
                    var t = e.indexes, n = e.x,
                        i = (e.strokeWidth, e.xDivision), a = e.barWidth,
                        r = e.zeroH, o = this.w, s = t.i, l = t.j,
                        c = this.yRatio[this.yaxisIndex], u = t.realIndex,
                        d = this.getRangeValue(u, l),
                        h = Math.min(d.start, d.end),
                        f = Math.max(d.start, d.end);
                    o.globals.isXNumeric &&
                    (n = (o.globals.seriesX[s][l] - o.globals.minX) /
                        this.xRatio - a / 2);
                    var p = n + a * this.visibleI;
                    void 0 === this.series[s][l] || null === this.series[s][l]
                        ? h = r
                        : (h = r - h / c, f = r - f / c);
                    var m = Math.abs(f - h), g = this.barHelpers.getColumnPaths(
                        {
                            barXPosition: p,
                            barWidth: a,
                            y1: h,
                            y2: f,
                            strokeWidth: this.strokeWidth,
                            series: this.seriesRangeEnd,
                            realIndex: t.realIndex,
                            i: u,
                            j: l,
                            w: o,
                        });
                    return o.globals.isXNumeric || (n += i), {
                        pathTo: g.pathTo,
                        pathFrom: g.pathFrom,
                        barHeight: m,
                        x: n,
                        y: f,
                        barXPosition: p,
                    };
                },
            },
            {
                key: 'drawRangeBarPaths',
                value: function (e) {
                    var t = e.indexes, n = e.y, i = e.y1, a = e.y2,
                        r = e.yDivision, o = e.barHeight, s = e.barYPosition,
                        l = e.zeroW, c = this.w,
                        u = l + i / this.invertedYRatio,
                        d = l + a / this.invertedYRatio, h = Math.abs(d - u),
                        f = this.barHelpers.getBarpaths({
                            barYPosition: s,
                            barHeight: o,
                            x1: u,
                            x2: d,
                            strokeWidth: this.strokeWidth,
                            series: this.seriesRangeEnd,
                            i: t.realIndex,
                            realIndex: t.realIndex,
                            j: t.j,
                            w: c,
                        });
                    return c.globals.isXNumeric || (n += r), {
                        pathTo: f.pathTo,
                        pathFrom: f.pathFrom,
                        barWidth: h,
                        x: d,
                        y: n,
                    };
                },
            },
            {
                key: 'getRangeValue', value: function (e, t) {
                    var n = this.w;
                    return {
                        start: n.globals.seriesRangeStart[e][t],
                        end: n.globals.seriesRangeEnd[e][t],
                    };
                },
            },
            {
                key: 'getTooltipValues',
                value: function (e) {
                    var t = e.ctx, n = e.seriesIndex, i = e.dataPointIndex,
                        a = e.y1, r = e.y2, o = e.w,
                        s = o.globals.seriesRangeStart[n][i],
                        l = o.globals.seriesRangeEnd[n][i],
                        c = o.globals.labels[i], u = o.config.series[n].name
                        ? o.config.series[n].name
                        : '', d = o.config.tooltip.y.formatter,
                        h = o.config.tooltip.y.title.formatter,
                        f = { w: o, seriesIndex: n, dataPointIndex: i };
                    'function' == typeof h && (u = h(u, f)), a && r &&
                    (s = a, l = r, o.config.series[n].data[i].x &&
                    (c = o.config.series[n].data[i].x + ':'), 'function' ==
                    typeof d && (c = d(c, f)));
                    var p = '', m = '', g = o.globals.colors[n];
                    if (void 0 ===
                        o.config.tooltip.x.formatter) if ('datetime' ===
                        o.config.xaxis.type) {
                        var v = new P(t);
                        p = v.formatDate(v.getDate(s),
                            o.config.tooltip.x.format), m = v.formatDate(
                            v.getDate(l), o.config.tooltip.x.format);
                    } else p = s, m = l; else p = o.config.tooltip.x.formatter(
                        s), m = o.config.tooltip.x.formatter(l);
                    return {
                        start: s,
                        end: l,
                        startVal: p,
                        endVal: m,
                        ylabel: c,
                        color: g,
                        seriesName: u,
                    };
                },
            },
            {
                key: 'buildCustomTooltipHTML',
                value: function (e) {
                    return '<div class="apexcharts-tooltip-rangebar"><div> <span class="series-name" style="color: ' +
                        e.color + '">' + (e.seriesName || '') +
                        '</span></div><div> <span class="category">' +
                        e.ylabel + ' </span> <span class="value start-value">' +
                        e.start +
                        '</span> <span class="separator">-</span> <span class="value end-value">' +
                        e.end + '</span></div></div>';
                },
            }]), a;
    }(Y), j = function () {
        function e (n) {t(this, e), this.opts = n;}

        return i(e, [
            {
                key: 'line',
                value: function () {
                    return {
                        chart: { animations: { easing: 'swing' } },
                        dataLabels: { enabled: !1 },
                        stroke: { width: 5, curve: 'straight' },
                        markers: { size: 0, hover: { sizeOffset: 6 } },
                        xaxis: { crosshairs: { width: 1 } },
                    };
                },
            },
            {
                key: 'sparkline',
                value: function (e) {
                    return this.opts.yaxis[0].show = !1, this.opts.yaxis[0].title.text = '', this.opts.yaxis[0].axisBorder.show = !1, this.opts.yaxis[0].axisTicks.show = !1, this.opts.yaxis[0].floating = !0, p.extend(
                        e, {
                            grid: {
                                show: !1,
                                padding: {
                                    left: 0,
                                    right: 0,
                                    top: 0,
                                    bottom: 0,
                                },
                            },
                            legend: { show: !1 },
                            xaxis: {
                                labels: { show: !1 },
                                tooltip: { enabled: !1 },
                                axisBorder: { show: !1 },
                                axisTicks: { show: !1 },
                            },
                            chart: {
                                toolbar: { show: !1 },
                                zoom: { enabled: !1 },
                            },
                            dataLabels: { enabled: !1 },
                        });
                },
            },
            {
                key: 'bar',
                value: function () {
                    return {
                        chart: {
                            stacked: !1,
                            animations: { easing: 'swing' },
                        },
                        plotOptions: { bar: { dataLabels: { position: 'center' } } },
                        dataLabels: {
                            style: { colors: ['#fff'] },
                            background: { enabled: !1 },
                        },
                        stroke: { width: 0, lineCap: 'square' },
                        fill: { opacity: .85 },
                        legend: {
                            markers: {
                                shape: 'square',
                                radius: 2,
                                size: 8,
                            },
                        },
                        tooltip: { shared: !1 },
                        xaxis: {
                            tooltip: { enabled: !1 },
                            tickPlacement: 'between',
                            crosshairs: {
                                width: 'barWidth',
                                position: 'back',
                                fill: { type: 'gradient' },
                                dropShadow: { enabled: !1 },
                                stroke: { width: 0 },
                            },
                        },
                    };
                },
            },
            {
                key: 'candlestick',
                value: function () {
                    return {
                        stroke: {
                            width: 1,
                            colors: ['#333'],
                        },
                        fill: { opacity: 1 },
                        dataLabels: { enabled: !1 },
                        tooltip: {
                            shared: !0,
                            custom: function (e) {
                                var t = e.seriesIndex, n = e.dataPointIndex,
                                    i = e.w;
                                return '<div class="apexcharts-tooltip-candlestick"><div>Open: <span class="value">' +
                                    i.globals.seriesCandleO[t][n] +
                                    '</span></div><div>High: <span class="value">' +
                                    i.globals.seriesCandleH[t][n] +
                                    '</span></div><div>Low: <span class="value">' +
                                    i.globals.seriesCandleL[t][n] +
                                    '</span></div><div>Close: <span class="value">' +
                                    i.globals.seriesCandleC[t][n] +
                                    '</span></div></div>';
                            },
                        },
                        states: { active: { filter: { type: 'none' } } },
                        xaxis: { crosshairs: { width: 1 } },
                    };
                },
            },
            {
                key: 'rangeBar',
                value: function () {
                    return {
                        stroke: {
                            width: 0,
                            lineCap: 'square',
                        },
                        plotOptions: { bar: { dataLabels: { position: 'center' } } },
                        dataLabels: {
                            enabled: !1,
                            formatter: function (e, t) {
                                t.ctx;
                                var n = t.seriesIndex, i = t.dataPointIndex,
                                    a = t.w,
                                    r = a.globals.seriesRangeStart[n][i];
                                return a.globals.seriesRangeEnd[n][i] - r;
                            },
                            background: { enabled: !1 },
                            style: { colors: ['#fff'] },
                        },
                        tooltip: {
                            shared: !1,
                            followCursor: !0,
                            custom: function (e) {
                                return e.w.config.plotOptions &&
                                e.w.config.plotOptions.bar &&
                                e.w.config.plotOptions.bar.horizontal
                                    ? function (e) {
                                        var t = new I(e.ctx, null),
                                            n = t.getTooltipValues(e),
                                            i = n.color, a = n.seriesName,
                                            r = n.ylabel, o = n.startVal,
                                            s = n.endVal;
                                        return t.buildCustomTooltipHTML({
                                            color: i,
                                            seriesName: a,
                                            ylabel: r,
                                            start: o,
                                            end: s,
                                        });
                                    }(e)
                                    : function (e) {
                                        var t = new I(e.ctx, null),
                                            n = t.getTooltipValues(e),
                                            i = n.color, a = n.seriesName,
                                            r = n.ylabel, o = n.start,
                                            s = n.end;
                                        return t.buildCustomTooltipHTML({
                                            color: i,
                                            seriesName: a,
                                            ylabel: r,
                                            start: o,
                                            end: s,
                                        });
                                    }(e);
                            },
                        },
                        xaxis: {
                            tickPlacement: 'between',
                            tooltip: { enabled: !1 },
                            crosshairs: { stroke: { width: 0 } },
                        },
                    };
                },
            },
            {
                key: 'area',
                value: function () {
                    return {
                        stroke: { width: 4 },
                        fill: {
                            type: 'gradient',
                            gradient: {
                                inverseColors: !1,
                                shade: 'light',
                                type: 'vertical',
                                opacityFrom: .65,
                                opacityTo: .5,
                                stops: [0, 100, 100],
                            },
                        },
                        markers: { size: 0, hover: { sizeOffset: 6 } },
                        tooltip: { followCursor: !1 },
                    };
                },
            },
            {
                key: 'brush',
                value: function (e) {
                    return p.extend(e, {
                        chart: {
                            toolbar: { autoSelected: 'selection', show: !1 },
                            zoom: { enabled: !1 },
                        },
                        dataLabels: { enabled: !1 },
                        stroke: { width: 1 },
                        tooltip: { enabled: !1 },
                        xaxis: { tooltip: { enabled: !1 } },
                    });
                },
            },
            {
                key: 'stacked100',
                value: function (e) {
                    e.dataLabels = e.dataLabels ||
                        {}, e.dataLabels.formatter = e.dataLabels.formatter ||
                        void 0;
                    var t = e.dataLabels.formatter;
                    return e.yaxis.forEach((function (
                        t,
                        n) {e.yaxis[n].min = 0, e.yaxis[n].max = 100;})), 'bar' ===
                    e.chart.type && (e.dataLabels.formatter = t ||
                        function (e) {
                            return 'number' == typeof e && e
                                ? e.toFixed(0) + '%'
                                : e;
                        }), e;
                },
            },
            {
                key: 'convertCatToNumeric',
                value: function (e) {return e.xaxis.convertedCatToNumeric = !0, e;},
            },
            {
                key: 'convertCatToNumericXaxis',
                value: function (
                    e, t, n) {
                    e.xaxis.type = 'numeric', e.xaxis.labels = e.xaxis.labels ||
                        {}, e.xaxis.labels.formatter = e.xaxis.labels.formatter ||
                        function (e) {
                            return p.isNumber(e)
                                ? Math.floor(e)
                                : e;
                        };
                    var i = e.xaxis.labels.formatter,
                        a = e.xaxis.categories && e.xaxis.categories.length
                            ? e.xaxis.categories
                            : e.labels;
                    return n && n.length && (a = n.map((function (e) {
                        return Array.isArray(e) ? e : String(e);
                    }))), a && a.length &&
                    (e.xaxis.labels.formatter = function (e) {
                        return p.isNumber(e) ? i(a[Math.floor(e) - 1]) : i(e);
                    }), e.xaxis.categories = [], e.labels = [], e.xaxis.tickAmount = e.xaxis.tickAmount ||
                        'dataPoints', e;
                },
            },
            {
                key: 'bubble',
                value: function () {
                    return {
                        dataLabels: { style: { colors: ['#fff'] } },
                        tooltip: { shared: !1, intersect: !0 },
                        xaxis: { crosshairs: { width: 0 } },
                        fill: {
                            type: 'solid',
                            gradient: {
                                shade: 'light',
                                inverse: !0,
                                shadeIntensity: .55,
                                opacityFrom: .4,
                                opacityTo: .8,
                            },
                        },
                    };
                },
            },
            {
                key: 'scatter',
                value: function () {
                    return {
                        dataLabels: { enabled: !1 },
                        tooltip: { shared: !1, intersect: !0 },
                        markers: {
                            size: 6,
                            strokeWidth: 1,
                            hover: { sizeOffset: 2 },
                        },
                    };
                },
            },
            {
                key: 'heatmap',
                value: function () {
                    return {
                        chart: { stacked: !1 },
                        fill: { opacity: 1 },
                        dataLabels: { style: { colors: ['#fff'] } },
                        stroke: { colors: ['#fff'] },
                        tooltip: {
                            followCursor: !0,
                            marker: { show: !1 },
                            x: { show: !1 },
                        },
                        legend: {
                            position: 'top',
                            markers: { shape: 'square', size: 10, offsetY: 2 },
                        },
                        grid: { padding: { right: 20 } },
                    };
                },
            },
            {
                key: 'treemap',
                value: function () {
                    return {
                        chart: { zoom: { enabled: !1 } },
                        dataLabels: {
                            style: {
                                fontSize: 14,
                                fontWeight: 600,
                                colors: ['#fff'],
                            },
                        },
                        stroke: { show: !0, width: 2, colors: ['#fff'] },
                        legend: { show: !1 },
                        fill: { gradient: { stops: [0, 100] } },
                        tooltip: { followCursor: !0, x: { show: !1 } },
                        grid: { padding: { left: 0, right: 0 } },
                        xaxis: {
                            crosshairs: { show: !1 },
                            tooltip: { enabled: !1 },
                        },
                    };
                },
            },
            {
                key: 'pie',
                value: function () {
                    return {
                        chart: { toolbar: { show: !1 } },
                        plotOptions: { pie: { donut: { labels: { show: !1 } } } },
                        dataLabels: {
                            formatter: function (e) {
                                return e.toFixed(1) + '%';
                            },
                            style: { colors: ['#fff'] },
                            background: { enabled: !1 },
                            dropShadow: { enabled: !0 },
                        },
                        stroke: { colors: ['#fff'] },
                        fill: {
                            opacity: 1,
                            gradient: { shade: 'light', stops: [0, 100] },
                        },
                        tooltip: { theme: 'dark', fillSeriesColor: !0 },
                        legend: { position: 'right' },
                    };
                },
            },
            {
                key: 'donut',
                value: function () {
                    return {
                        chart: { toolbar: { show: !1 } },
                        dataLabels: {
                            formatter: function (e) {
                                return e.toFixed(1) + '%';
                            },
                            style: { colors: ['#fff'] },
                            background: { enabled: !1 },
                            dropShadow: { enabled: !0 },
                        },
                        stroke: { colors: ['#fff'] },
                        fill: {
                            opacity: 1,
                            gradient: {
                                shade: 'light',
                                shadeIntensity: .35,
                                stops: [80, 100],
                                opacityFrom: 1,
                                opacityTo: 1,
                            },
                        },
                        tooltip: { theme: 'dark', fillSeriesColor: !0 },
                        legend: { position: 'right' },
                    };
                },
            },
            {
                key: 'polarArea',
                value: function () {
                    return this.opts.yaxis[0].tickAmount = this.opts.yaxis[0].tickAmount
                        ? this.opts.yaxis[0].tickAmount
                        : 6, {
                        chart: { toolbar: { show: !1 } },
                        dataLabels: {
                            formatter: function (e) {
                                return e.toFixed(1) + '%';
                            }, enabled: !1,
                        },
                        stroke: { show: !0, width: 2 },
                        fill: { opacity: .7 },
                        tooltip: { theme: 'dark', fillSeriesColor: !0 },
                        legend: { position: 'right' },
                    };
                },
            },
            {
                key: 'radar',
                value: function () {
                    return this.opts.yaxis[0].labels.offsetY = this.opts.yaxis[0].labels.offsetY
                        ? this.opts.yaxis[0].labels.offsetY
                        : 6, {
                        dataLabels: {
                            enabled: !1,
                            style: { fontSize: '11px' },
                        },
                        stroke: { width: 2 },
                        markers: { size: 3, strokeWidth: 1, strokeOpacity: 1 },
                        fill: { opacity: .2 },
                        tooltip: {
                            shared: !1,
                            intersect: !0,
                            followCursor: !0,
                        },
                        grid: { show: !1 },
                        xaxis: {
                            labels: {
                                formatter: function (e) {return e;},
                                style: {
                                    colors: ['#a8a8a8'],
                                    fontSize: '11px',
                                },
                            },
                            tooltip: { enabled: !1 },
                            crosshairs: { show: !1 },
                        },
                    };
                },
            },
            {
                key: 'radialBar',
                value: function () {
                    return {
                        chart: {
                            animations: {
                                dynamicAnimation: {
                                    enabled: !0,
                                    speed: 800,
                                },
                            }, toolbar: { show: !1 },
                        },
                        fill: {
                            gradient: {
                                shade: 'dark',
                                shadeIntensity: .4,
                                inverseColors: !1,
                                type: 'diagonal2',
                                opacityFrom: 1,
                                opacityTo: 1,
                                stops: [70, 98, 100],
                            },
                        },
                        legend: { show: !1, position: 'right' },
                        tooltip: { enabled: !1, fillSeriesColor: !0 },
                    };
                },
            }]), e;
    }(), N = function () {
        function n (e) {t(this, n), this.opts = e;}

        return i(n, [
            {
                key: 'init', value: function (t) {
                    var n = t.responsiveOverride, i = this.opts, a = new M,
                        r = new j(i);
                    this.chartType = i.chart.type, 'histogram' ===
                    this.chartType && (i.chart.type = 'bar', i = p.extend(
                        { plotOptions: { bar: { columnWidth: '99.99%' } } },
                        i)), i = this.extendYAxis(
                        i), i = this.extendAnnotations(i);
                    var o = a.init(), s = {};
                    if (i && 'object' === e(i)) {
                        var l = {};
                        l = -1 !== [
                            'line',
                            'area',
                            'bar',
                            'candlestick',
                            'rangeBar',
                            'histogram',
                            'bubble',
                            'scatter',
                            'heatmap',
                            'treemap',
                            'pie',
                            'polarArea',
                            'donut',
                            'radar',
                            'radialBar'].indexOf(i.chart.type)
                            ? r[i.chart.type]()
                            : r.line(), i.chart.brush &&
                        i.chart.brush.enabled &&
                        (l = r.brush(l)), i.chart.stacked && '100%' ===
                        i.chart.stackType &&
                        (i = r.stacked100(i)), this.checkForDarkTheme(
                            window.Apex), this.checkForDarkTheme(
                            i), i.xaxis = i.xaxis || window.Apex.xaxis ||
                            {}, n ||
                        (i.xaxis.convertedCatToNumeric = !1), ((i = this.checkForCatToNumericXAxis(
                            this.chartType, l, i)).chart.sparkline &&
                            i.chart.sparkline.enabled || window.Apex.chart &&
                            window.Apex.chart.sparkline &&
                            window.Apex.chart.sparkline.enabled) &&
                        (l = r.sparkline(l)), s = p.extend(o, l);
                    }
                    var c = p.extend(s, window.Apex);
                    return o = p.extend(c, i), this.handleUserInputErrors(o);
                },
            },
            {
                key: 'checkForCatToNumericXAxis',
                value: function (e, t, n) {
                    var i = new j(n),
                        a = 'bar' === e && n.plotOptions && n.plotOptions.bar &&
                            n.plotOptions.bar.horizontal,
                        r = 'pie' === e || 'polarArea' === e || 'donut' === e ||
                            'radar' === e || 'radialBar' === e || 'heatmap' ===
                            e, o = 'datetime' !== n.xaxis.type && 'numeric' !==
                        n.xaxis.type, s = n.xaxis.tickPlacement
                        ? n.xaxis.tickPlacement
                        : t.xaxis && t.xaxis.tickPlacement;
                    return a || r || !o || 'between' === s ||
                    (n = i.convertCatToNumeric(n)), n;
                },
            },
            {
                key: 'extendYAxis', value: function (e, t) {
                    var n = new M;
                    (void 0 === e.yaxis || !e.yaxis || Array.isArray(e.yaxis) &&
                        0 === e.yaxis.length) &&
                    (e.yaxis = {}), e.yaxis.constructor !== Array &&
                    window.Apex.yaxis && window.Apex.yaxis.constructor !==
                    Array && (e.yaxis = p.extend(e.yaxis,
                        window.Apex.yaxis)), e.yaxis.constructor !== Array
                        ? e.yaxis = [p.extend(n.yAxis, e.yaxis)]
                        : e.yaxis = p.extendArray(e.yaxis, n.yAxis);
                    var i = !1;
                    e.yaxis.forEach(
                        (function (e) {e.logarithmic && (i = !0);}));
                    var a = e.series;
                    return t && !a && (a = t.config.series), i && a.length !==
                    e.yaxis.length && a.length && (e.yaxis = a.map(
                        (function (t, i) {
                            if (t.name || (a[i].name = 'series-'.concat(i +
                                1)), e.yaxis[i]) return e.yaxis[i].seriesName = a[i].name, e.yaxis[i];
                            var r = p.extend(n.yAxis, e.yaxis[0]);
                            return r.show = !1, r;
                        }))), i && a.length > 1 && a.length !==
                    e.yaxis.length && console.warn(
                        'A multi-series logarithmic chart should have equal number of series and y-axes. Please make sure to equalize both.'), e;
                },
            },
            {
                key: 'extendAnnotations',
                value: function (e) {
                    return void 0 === e.annotations &&
                    (e.annotations = {}, e.annotations.yaxis = [], e.annotations.xaxis = [], e.annotations.points = []), e = this.extendYAxisAnnotations(
                        e), e = this.extendXAxisAnnotations(
                        e), this.extendPointAnnotations(e);
                },
            },
            {
                key: 'extendYAxisAnnotations', value: function (e) {
                    var t = new M;
                    return e.annotations.yaxis = p.extendArray(
                        void 0 !== e.annotations.yaxis
                            ? e.annotations.yaxis
                            : [], t.yAxisAnnotation), e;
                },
            },
            {
                key: 'extendXAxisAnnotations', value: function (e) {
                    var t = new M;
                    return e.annotations.xaxis = p.extendArray(
                        void 0 !== e.annotations.xaxis
                            ? e.annotations.xaxis
                            : [], t.xAxisAnnotation), e;
                },
            },
            {
                key: 'extendPointAnnotations', value: function (e) {
                    var t = new M;
                    return e.annotations.points = p.extendArray(
                        void 0 !== e.annotations.points
                            ? e.annotations.points
                            : [], t.pointAnnotation), e;
                },
            },
            {
                key: 'checkForDarkTheme',
                value: function (e) {
                    e.theme && 'dark' === e.theme.mode &&
                    (e.tooltip || (e.tooltip = {}), 'light' !==
                    e.tooltip.theme &&
                    (e.tooltip.theme = 'dark'), e.chart.foreColor ||
                    (e.chart.foreColor = '#f6f7f8'), e.chart.background ||
                    (e.chart.background = '#424242'), e.theme.palette ||
                    (e.theme.palette = 'palette4'));
                },
            },
            {
                key: 'handleUserInputErrors', value: function (e) {
                    var t = e;
                    if (t.tooltip.shared &&
                        t.tooltip.intersect) throw new Error(
                        'tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.');
                    if ('bar' === t.chart.type &&
                        t.plotOptions.bar.horizontal) {
                        if (t.yaxis.length > 1) throw new Error(
                            'Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false');
                        t.yaxis[0].reversed &&
                        (t.yaxis[0].opposite = !0), t.xaxis.tooltip.enabled = !1, t.yaxis[0].tooltip.enabled = !1, t.chart.zoom.enabled = !1;
                    }
                    return 'bar' !== t.chart.type && 'rangeBar' !==
                    t.chart.type || t.tooltip.shared &&
                    ('barWidth' === t.xaxis.crosshairs.width &&
                    t.series.length > 1 && (console.warn(
                        'crosshairs.width = "barWidth" is only supported in single series, not in a multi-series barChart.'), t.xaxis.crosshairs.width = 'tickWidth'), t.plotOptions.bar.horizontal &&
                    (t.states.hover.type = 'none', t.tooltip.shared = !1), t.tooltip.followCursor ||
                    (console.warn(
                        'followCursor option in shared columns cannot be turned off. Please set %ctooltip.followCursor: true',
                        'color: blue;'), t.tooltip.followCursor = !0)), 'candlestick' ===
                    t.chart.type && t.yaxis[0].reversed && (console.warn(
                        'Reversed y-axis in candlestick chart is not supported.'), t.yaxis[0].reversed = !1), t.chart.group &&
                    0 === t.yaxis[0].labels.minWidth && console.warn(
                        'It looks like you have multiple charts in synchronization. You must provide yaxis.labels.minWidth which must be EQUAL for all grouped charts to prevent incorrect behaviour.'), Array.isArray(
                        t.stroke.width) && 'line' !== t.chart.type && 'area' !==
                    t.chart.type && (console.warn(
                        'stroke.width option accepts array only for line and area charts. Reverted back to Number'), t.stroke.width = t.stroke.width[0]), t;
                },
            }]), n;
    }(), H = function () {
        function e () {t(this, e);}

        return i(e, [
            {
                key: 'initGlobalVars', value: function (e) {
                    e.series = [], e.seriesCandleO = [], e.seriesCandleH = [], e.seriesCandleL = [], e.seriesCandleC = [], e.seriesRangeStart = [], e.seriesRangeEnd = [], e.seriesRangeBarTimeline = [], e.seriesPercent = [], e.seriesX = [], e.seriesZ = [], e.seriesNames = [], e.seriesTotals = [], e.seriesLog = [], e.seriesColors = [], e.stackedSeriesTotals = [], e.seriesXvalues = [], e.seriesYvalues = [], e.labels = [], e.categoryLabels = [], e.timescaleLabels = [], e.noLabelsProvided = !1, e.resizeTimer = null, e.selectionResizeTimer = null, e.delayedElements = [], e.pointsArray = [], e.dataLabelsRects = [], e.isXNumeric = !1, e.xaxisLabelsCount = 0, e.skipLastTimelinelabel = !1, e.skipFirstTimelinelabel = !1, e.isDataXYZ = !1, e.isMultiLineX = !1, e.isMultipleYAxis = !1, e.maxY = -Number.MAX_VALUE, e.minY = Number.MIN_VALUE, e.minYArr = [], e.maxYArr = [], e.maxX = -Number.MAX_VALUE, e.minX = Number.MAX_VALUE, e.initialMaxX = -Number.MAX_VALUE, e.initialMinX = Number.MAX_VALUE, e.maxDate = 0, e.minDate = Number.MAX_VALUE, e.minZ = Number.MAX_VALUE, e.maxZ = -Number.MAX_VALUE, e.minXDiff = Number.MAX_VALUE, e.yAxisScale = [], e.xAxisScale = null, e.xAxisTicksPositions = [], e.yLabelsCoords = [], e.yTitleCoords = [], e.barPadForNumericAxis = 0, e.padHorizontal = 0, e.xRange = 0, e.yRange = [], e.zRange = 0, e.dataPoints = 0, e.xTickAmount = 0;
                },
            }, {
                key: 'globalVars', value: function (e) {
                    return {
                        chartID: null,
                        cuid: null,
                        events: {
                            beforeMount: [],
                            mounted: [],
                            updated: [],
                            clicked: [],
                            selection: [],
                            dataPointSelection: [],
                            zoomed: [],
                            scrolled: [],
                        },
                        colors: [],
                        clientX: null,
                        clientY: null,
                        fill: { colors: [] },
                        stroke: { colors: [] },
                        dataLabels: { style: { colors: [] } },
                        radarPolygons: { fill: { colors: [] } },
                        markers: {
                            colors: [],
                            size: e.markers.size,
                            largestSize: 0,
                        },
                        animationEnded: !1,
                        isTouchDevice: 'ontouchstart' in window ||
                            navigator.msMaxTouchPoints,
                        isDirty: !1,
                        isExecCalled: !1,
                        initialConfig: null,
                        initialSeries: [],
                        lastXAxis: [],
                        lastYAxis: [],
                        columnSeries: null,
                        labels: [],
                        timescaleLabels: [],
                        noLabelsProvided: !1,
                        allSeriesCollapsed: !1,
                        collapsedSeries: [],
                        collapsedSeriesIndices: [],
                        ancillaryCollapsedSeries: [],
                        ancillaryCollapsedSeriesIndices: [],
                        risingSeries: [],
                        dataFormatXNumeric: !1,
                        capturedSeriesIndex: -1,
                        capturedDataPointIndex: -1,
                        selectedDataPoints: [],
                        goldenPadding: 35,
                        invalidLogScale: !1,
                        ignoreYAxisIndexes: [],
                        yAxisSameScaleIndices: [],
                        maxValsInArrayIndex: 0,
                        radialSize: 0,
                        selection: void 0,
                        zoomEnabled: 'zoom' === e.chart.toolbar.autoSelected &&
                            e.chart.toolbar.tools.zoom && e.chart.zoom.enabled,
                        panEnabled: 'pan' === e.chart.toolbar.autoSelected &&
                            e.chart.toolbar.tools.pan,
                        selectionEnabled: 'selection' ===
                            e.chart.toolbar.autoSelected &&
                            e.chart.toolbar.tools.selection,
                        yaxis: null,
                        mousedown: !1,
                        lastClientPosition: {},
                        visibleXRange: void 0,
                        yValueDecimal: 0,
                        total: 0,
                        SVGNS: 'http://www.w3.org/2000/svg',
                        svgWidth: 0,
                        svgHeight: 0,
                        noData: !1,
                        locale: {},
                        dom: {},
                        memory: { methodsToExec: [] },
                        shouldAnimate: !0,
                        skipLastTimelinelabel: !1,
                        skipFirstTimelinelabel: !1,
                        delayedElements: [],
                        axisCharts: !0,
                        isDataXYZ: !1,
                        resized: !1,
                        resizeTimer: null,
                        comboCharts: !1,
                        dataChanged: !1,
                        previousPaths: [],
                        allSeriesHasEqualX: !0,
                        pointsArray: [],
                        dataLabelsRects: [],
                        lastDrawnDataLabelsIndexes: [],
                        hasNullValues: !1,
                        easing: null,
                        zoomed: !1,
                        gridWidth: 0,
                        gridHeight: 0,
                        rotateXLabels: !1,
                        defaultLabels: !1,
                        xLabelFormatter: void 0,
                        yLabelFormatters: [],
                        xaxisTooltipFormatter: void 0,
                        ttKeyFormatter: void 0,
                        ttVal: void 0,
                        ttZFormatter: void 0,
                        LINE_HEIGHT_RATIO: 1.618,
                        xAxisLabelsHeight: 0,
                        xAxisLabelsWidth: 0,
                        yAxisLabelsWidth: 0,
                        scaleX: 1,
                        scaleY: 1,
                        translateX: 0,
                        translateY: 0,
                        translateYAxisX: [],
                        yAxisWidths: [],
                        translateXAxisY: 0,
                        translateXAxisX: 0,
                        tooltip: null,
                    };
                },
            }, {
                key: 'init', value: function (e) {
                    var t = this.globalVars(e);
                    return this.initGlobalVars(t), t.initialConfig = p.extend(
                        {}, e), t.initialSeries = p.clone(
                        e.series), t.lastXAxis = p.clone(
                        t.initialConfig.xaxis), t.lastYAxis = p.clone(
                        t.initialConfig.yaxis), t;
                },
            }]), e;
    }(), F = function () {
        function e (n) {t(this, e), this.opts = n;}

        return i(e, [
            {
                key: 'init',
                value: function () {
                    var e = new N(this.opts).init({ responsiveOverride: !1 });
                    return { config: e, globals: (new H).init(e) };
                },
            }]), e;
    }(), R = function () {
        function e (n) {
            t(this,
                e), this.ctx = n, this.w = n.w, this.twoDSeries = [], this.threeDSeries = [], this.twoDSeriesX = [], this.coreUtils = new x(
                this.ctx);
        }

        return i(e, [
            {
                key: 'isMultiFormat',
                value: function () {
                    return this.isFormatXY() || this.isFormat2DArray();
                },
            },
            {
                key: 'isFormatXY',
                value: function () {
                    var e = this.w.config.series.slice(), t = new E(this.ctx);
                    if (this.activeSeriesIndex = t.getActiveConfigSeriesIndex(), void 0 !==
                    e[this.activeSeriesIndex].data &&
                    e[this.activeSeriesIndex].data.length > 0 && null !==
                    e[this.activeSeriesIndex].data[0] && void 0 !==
                    e[this.activeSeriesIndex].data[0].x && null !==
                    e[this.activeSeriesIndex].data[0]) return !0;
                },
            },
            {
                key: 'isFormat2DArray',
                value: function () {
                    var e = this.w.config.series.slice(), t = new E(this.ctx);
                    if (this.activeSeriesIndex = t.getActiveConfigSeriesIndex(), void 0 !==
                    e[this.activeSeriesIndex].data &&
                    e[this.activeSeriesIndex].data.length > 0 && void 0 !==
                    e[this.activeSeriesIndex].data[0] && null !==
                    e[this.activeSeriesIndex].data[0] &&
                    e[this.activeSeriesIndex].data[0].constructor ===
                    Array) return !0;
                },
            },
            {
                key: 'handleFormat2DArray',
                value: function (e, t) {
                    var n = this.w.config, i = this.w.globals;
                    n.xaxis.sorted &&
                    ('datetime' === n.xaxis.type ? e[t].data.sort(
                        (function (e, t) {
                            return new Date(e[0]).getTime() -
                                new Date(t[0]).getTime();
                        })) : 'numeric' === n.xaxis.type &&
                        e[t].data.sort(
                            (function (e, t) {return e[0] - t[0];})));
                    for (var a = 0; a < e[t].data.length; a++) if (void 0 !==
                    e[t].data[a][1] && (Array.isArray(e[t].data[a][1]) && 4 ===
                    e[t].data[a][1].length ? this.twoDSeries.push(
                        p.parseNumber(e[t].data[a][1][3])) : 5 ===
                    e[t].data[a].length ? this.twoDSeries.push(
                        p.parseNumber(e[t].data[a][4])) : this.twoDSeries.push(
                        p.parseNumber(
                            e[t].data[a][1])), i.dataFormatXNumeric = !0), 'datetime' ===
                    n.xaxis.type) {
                        var r = new Date(e[t].data[a][0]);
                        r = new Date(r).getTime(), this.twoDSeriesX.push(r);
                    } else this.twoDSeriesX.push(e[t].data[a][0]);
                    for (var o = 0; o < e[t].data.length; o++) void 0 !==
                    e[t].data[o][2] &&
                    (this.threeDSeries.push(e[t].data[o][2]), i.isDataXYZ = !0);
                },
            },
            {
                key: 'handleFormatXY', value: function (e, t) {
                    var n = this.w.config, i = this.w.globals,
                        a = new P(this.ctx), r = t;
                    i.collapsedSeriesIndices.indexOf(t) > -1 &&
                    (r = this.activeSeriesIndex), n.xaxis.sorted &&
                    ('datetime' === n.xaxis.type ? e[t].data.sort(
                        (function (e, t) {
                            return new Date(e.x).getTime() -
                                new Date(t.x).getTime();
                        })) : 'numeric' === n.xaxis.type &&
                        e[t].data.sort((function (e, t) {return e.x - t.x;})));
                    for (var o = 0; o < e[t].data.length; o++) void 0 !==
                    e[t].data[o].y && (Array.isArray(e[t].data[o].y)
                        ? this.twoDSeries.push(p.parseNumber(
                            e[t].data[o].y[e[t].data[o].y.length - 1]))
                        : this.twoDSeries.push(p.parseNumber(e[t].data[o].y)));
                    for (var s = 0; s < e[r].data.length; s++) {
                        var l = 'string' == typeof e[r].data[s].x,
                            c = Array.isArray(e[r].data[s].x), u = !c &&
                            !!a.isValidDate(e[r].data[s].x.toString());
                        if (l || u) if (l || n.xaxis.convertedCatToNumeric) {
                            var d = i.isBarHorizontal && i.isRangeData;
                            'datetime' !== n.xaxis.type || d
                                ? (this.fallbackToCategory = !0, this.twoDSeriesX.push(
                                e[r].data[s].x))
                                : this.twoDSeriesX.push(
                                a.parseDate(e[r].data[s].x));
                        } else 'datetime' === n.xaxis.type
                            ? this.twoDSeriesX.push(
                                a.parseDate(e[r].data[s].x.toString()))
                            : (i.dataFormatXNumeric = !0, i.isXNumeric = !0, this.twoDSeriesX.push(
                                parseFloat(e[r].data[s].x))); else c
                            ? (this.fallbackToCategory = !0, this.twoDSeriesX.push(
                                e[r].data[s].x))
                            : (i.isXNumeric = !0, i.dataFormatXNumeric = !0, this.twoDSeriesX.push(
                                e[r].data[s].x));
                    }
                    if (e[t].data[0] && void 0 !== e[t].data[0].z) {
                        for (var h = 0; h <
                        e[t].data.length; h++) this.threeDSeries.push(
                            e[t].data[h].z);
                        i.isDataXYZ = !0;
                    }
                },
            },
            {
                key: 'handleRangeData',
                value: function (e, t) {
                    var n = this.w.config, i = this.w.globals, a = {};
                    return this.isFormat2DArray()
                        ? a = this.handleRangeDataFormat('array', e, t)
                        : this.isFormatXY() &&
                        (a = this.handleRangeDataFormat('xy', e,
                            t)), i.seriesRangeStart.push(
                        a.start), i.seriesRangeEnd.push(a.end), 'datetime' ===
                    n.xaxis.type && i.seriesRangeBarTimeline.push(
                        a.rangeUniques), i.seriesRangeBarTimeline.forEach(
                        (function (e, t) {
                            e && e.forEach((function (e, t) {
                                e.y.forEach((function (t, n) {
                                    for (var i = 0; i <
                                    e.y.length; i++) if (n !== i) {
                                        var a = t.y1, r = t.y2, o = e.y[i].y1;
                                        a <= e.y[i].y2 && o <= r &&
                                        (e.overlaps.indexOf(t.rangeName) < 0 &&
                                        e.overlaps.push(
                                            t.rangeName), e.overlaps.indexOf(
                                            e.y[i].rangeName) < 0 &&
                                        e.overlaps.push(e.y[i].rangeName));
                                    }
                                }));
                            }));
                        })), a;
                },
            },
            {
                key: 'handleCandleStickData',
                value: function (e, t) {
                    var n = this.w.globals, i = {};
                    return this.isFormat2DArray()
                        ? i = this.handleCandleStickDataFormat('array', e, t)
                        : this.isFormatXY() &&
                        (i = this.handleCandleStickDataFormat('xy', e,
                            t)), n.seriesCandleO[t] = i.o, n.seriesCandleH[t] = i.h, n.seriesCandleL[t] = i.l, n.seriesCandleC[t] = i.c, i;
                },
            },
            {
                key: 'handleRangeDataFormat',
                value: function (e, t, n) {
                    var i = [], a = [], r = t[n].data.filter(
                        (function (e, t, n) {
                            return t ===
                                n.findIndex(
                                    (function (t) {return t.x === e.x;}));
                        })).
                            map((function (e, t) {
                                return {
                                    x: e.x,
                                    overlaps: [],
                                    y: [],
                                };
                            })),
                        o = 'Please provide [Start, End] values in valid format. Read more https://apexcharts.com/docs/series/#rangecharts',
                        s = new E(this.ctx).getActiveConfigSeriesIndex();
                    if ('array' === e) {
                        if (2 !== t[s].data[0][1].length) throw new Error(o);
                        for (var l = 0; l < t[n].data.length; l++) i.push(
                            t[n].data[l][1][0]), a.push(t[n].data[l][1][1]);
                    } else if ('xy' === e) {
                        if (2 !== t[s].data[0].y.length) throw new Error(o);
                        for (var c = function (e) {
                            var o = p.randomId(), s = t[n].data[e].x, l = {
                                y1: t[n].data[e].y[0],
                                y2: t[n].data[e].y[1],
                                rangeName: o,
                            };
                            t[n].data[e].rangeName = o;
                            var c = r.findIndex(
                                (function (e) {return e.x === s;}));
                            r[c].y.push(l), i.push(l.y1), a.push(l.y2);
                        }, u = 0; u < t[n].data.length; u++) c(u);
                    }
                    return { start: i, end: a, rangeUniques: r };
                },
            },
            {
                key: 'handleCandleStickDataFormat',
                value: function (e, t, n) {
                    var i = this.w, a = [], r = [], o = [], s = [],
                        l = 'Please provide [Open, High, Low and Close] values in valid format. Read more https://apexcharts.com/docs/series/#candlestick';
                    if ('array' === e) {
                        if (!Array.isArray(t[n].data[0][1]) && 5 !==
                            t[n].data[0].length ||
                            Array.isArray(t[n].data[0][1]) && 4 !==
                            t[n].data[0][1].length) throw new Error(l);
                        if (5 === t[n].data[0].length) for (var c = 0; c <
                        t[n].data.length; c++) a.push(t[n].data[c][1]), r.push(
                            t[n].data[c][2]), o.push(t[n].data[c][3]), s.push(
                            t[n].data[c][4]); else for (var u = 0; u <
                        t[n].data.length; u++) a.push(
                            t[n].data[u][1][0]), r.push(
                            t[n].data[u][1][1]), o.push(
                            t[n].data[u][1][2]), s.push(t[n].data[u][1][3]);
                    } else if ('xy' === e) {
                        if (!i.globals.comboCharts && 4 !==
                            t[n].data[0].y.length || i.globals.comboCharts &&
                            'candlestick' === t[n].type && t[n].data.length &&
                            4 !== t[n].data[0].y.length) throw new Error(l);
                        for (var d = 0; d < t[n].data.length; d++) a.push(
                            t[n].data[d].y[0]), r.push(
                            t[n].data[d].y[1]), o.push(
                            t[n].data[d].y[2]), s.push(t[n].data[d].y[3]);
                    }
                    return { o: a, h: r, l: o, c: s };
                },
            },
            {
                key: 'parseDataAxisCharts', value: function (e) {
                    var t = this,
                        n = arguments.length > 1 && void 0 !== arguments[1]
                            ? arguments[1]
                            : this.ctx, i = this.w.config, a = this.w.globals,
                        r = new P(n), o = i.labels.length > 0
                        ? i.labels.slice()
                        : i.xaxis.categories.slice();
                    a.isTimelineBar = 'rangeBar' === i.chart.type &&
                        'datetime' === i.xaxis.type;
                    for (var s = function () {
                        for (var e = 0; e < o.length; e++) if ('string' ==
                            typeof o[e]) {
                            if (!r.isValidDate(o[e])) throw new Error(
                                'You have provided invalid Date format. Please provide a valid JavaScript Date');
                            t.twoDSeriesX.push(r.parseDate(o[e]));
                        } else t.twoDSeriesX.push(o[e]);
                    }, l = 0; l < e.length; l++) {
                        if (this.twoDSeries = [], this.twoDSeriesX = [], this.threeDSeries = [], void 0 ===
                        e[l].data) return void console.error(
                            'It is a possibility that you may have not included \'data\' property in series.');
                        if ('rangeBar' !== i.chart.type && 'rangeArea' !==
                        i.chart.type && 'rangeBar' !== e[l].type &&
                        'rangeArea' !== e[l].type ||
                        (a.isRangeData = !0, this.handleRangeData(e,
                            l)), this.isMultiFormat()) this.isFormat2DArray()
                            ? this.handleFormat2DArray(e, l)
                            : this.isFormatXY() &&
                            this.handleFormatXY(e, l), 'candlestick' !==
                        i.chart.type && 'candlestick' !== e[l].type ||
                        this.handleCandleStickData(e, l), a.series.push(
                            this.twoDSeries), a.labels.push(
                            this.twoDSeriesX), a.seriesX.push(
                            this.twoDSeriesX), l !== this.activeSeriesIndex ||
                        this.fallbackToCategory || (a.isXNumeric = !0); else {
                            'datetime' === i.xaxis.type
                                ? (a.isXNumeric = !0, s(), a.seriesX.push(
                                this.twoDSeriesX))
                                : 'numeric' === i.xaxis.type &&
                                (a.isXNumeric = !0, o.length > 0 &&
                                (this.twoDSeriesX = o, a.seriesX.push(
                                    this.twoDSeriesX))), a.labels.push(
                                this.twoDSeriesX);
                            var c = e[l].data.map(
                                (function (e) {return p.parseNumber(e);}));
                            a.series.push(c);
                        }
                        a.seriesZ.push(this.threeDSeries), void 0 !== e[l].name
                            ? a.seriesNames.push(e[l].name)
                            : a.seriesNames.push(
                                'series-' + parseInt(l + 1, 10)), void 0 !==
                        e[l].color
                            ? a.seriesColors.push(e[l].color)
                            : a.seriesColors.push(void 0);
                    }
                    return this.w;
                },
            },
            {
                key: 'parseDataNonAxisCharts',
                value: function (e) {
                    var t = this.w.globals, n = this.w.config;
                    t.series = e.slice(), t.seriesNames = n.labels.slice();
                    for (var i = 0; i < t.series.length; i++) void 0 ===
                    t.seriesNames[i] && t.seriesNames.push('series-' + (i + 1));
                    return this.w;
                },
            },
            {
                key: 'handleExternalLabelsData',
                value: function (e) {
                    var t = this.w.config, n = this.w.globals;
                    t.xaxis.categories.length > 0
                        ? n.labels = t.xaxis.categories
                        : t.labels.length > 0
                        ? n.labels = t.labels.slice()
                        : this.fallbackToCategory
                            ? (n.labels = n.labels[0], n.seriesRangeBarTimeline.length &&
                            (n.seriesRangeBarTimeline.map((function (e) {
                                e.forEach((function (e) {
                                    n.labels.indexOf(e.x) < 0 && e.x &&
                                    n.labels.push(e.x);
                                }));
                            })), n.labels = n.labels.filter(
                                (function (e, t, n) {
                                    return n.indexOf(e) === t;
                                }))), t.xaxis.convertedCatToNumeric &&
                            (new j(t).convertCatToNumericXaxis(t, this.ctx,
                                n.seriesX[0]), this._generateExternalLabels(e)))
                            : this._generateExternalLabels(e);
                },
            },
            {
                key: '_generateExternalLabels',
                value: function (e) {
                    var t = this.w.globals, n = this.w.config, i = [];
                    if (t.axisCharts) {
                        if (t.series.length > 0) for (var a = 0; a <
                        t.series[t.maxValsInArrayIndex].length; a++) i.push(
                            a + 1);
                        t.seriesX = [];
                        for (var r = 0; r < e.length; r++) t.seriesX.push(i);
                        t.isXNumeric = !0;
                    }
                    if (0 === i.length) {
                        i = t.axisCharts ? [] : t.series.map(
                            (function (e, t) {return t + 1;}));
                        for (var o = 0; o < e.length; o++) t.seriesX.push(i);
                    }
                    t.labels = i, n.xaxis.convertedCatToNumeric &&
                    (t.categoryLabels = i.map((function (e) {
                        return n.xaxis.labels.formatter(e);
                    }))), t.noLabelsProvided = !0;
                },
            },
            {
                key: 'parseData',
                value: function (e) {
                    var t = this.w, n = t.config, i = t.globals;
                    if (this.excludeCollapsedSeriesInYAxis(), this.fallbackToCategory = !1, this.ctx.core.resetGlobals(), this.ctx.core.isMultipleY(), i.axisCharts
                        ? this.parseDataAxisCharts(e)
                        : this.parseDataNonAxisCharts(
                            e), this.coreUtils.getLargestSeries(), 'bar' ===
                    n.chart.type && n.chart.stacked) {
                        var a = new E(this.ctx);
                        i.series = a.setNullSeriesToZeroValues(i.series);
                    }
                    this.coreUtils.getSeriesTotals(), i.axisCharts &&
                    this.coreUtils.getStackedSeriesTotals(), this.coreUtils.getPercentSeries(), i.dataFormatXNumeric ||
                    i.isXNumeric &&
                    ('numeric' !== n.xaxis.type || 0 !== n.labels.length ||
                        0 !== n.xaxis.categories.length) ||
                    this.handleExternalLabelsData(e);
                    for (var r = this.coreUtils.getCategoryLabels(
                        i.labels), o = 0; o < r.length; o++) if (Array.isArray(
                        r[o])) {
                        i.isMultiLineX = !0;
                        break;
                    }
                },
            },
            {
                key: 'excludeCollapsedSeriesInYAxis',
                value: function () {
                    var e = this, t = this.w;
                    t.globals.ignoreYAxisIndexes = t.globals.collapsedSeries.map(
                        (function (n, i) {
                            if (e.w.globals.isMultipleYAxis &&
                                !t.config.chart.stacked) return n.index;
                        }));
                },
            }]), e;
    }(), z = function () {
        function e (n) {
            t(this,
                e), this.ctx = n, this.w = n.w, this.tooltipKeyFormat = 'dd MMM';
        }

        return i(e, [
            {
                key: 'xLabelFormat', value: function (e, t, n, i) {
                    var a = this.w;
                    if ('datetime' === a.config.xaxis.type && void 0 ===
                        a.config.xaxis.labels.formatter && void 0 ===
                        a.config.tooltip.x.formatter) {
                        var r = new P(this.ctx);
                        return r.formatDate(r.getDate(t),
                            a.config.tooltip.x.format);
                    }
                    return e(t, n, i);
                },
            },
            {
                key: 'defaultGeneralFormatter',
                value: function (e) {
                    return Array.isArray(e)
                        ? e.map((function (e) {return e;}))
                        : e;
                },
            },
            {
                key: 'defaultYFormatter',
                value: function (e, t, n) {
                    var i = this.w;
                    return p.isNumber(e) &&
                    (e = 0 !== i.globals.yValueDecimal ? e.toFixed(
                        void 0 !== t.decimalsInFloat
                            ? t.decimalsInFloat
                            : i.globals.yValueDecimal) : i.globals.maxYArr[n] -
                    i.globals.minYArr[n] < 5 ? e.toFixed(1) : e.toFixed(0)), e;
                },
            },
            {
                key: 'setLabelFormatters', value: function () {
                    var e = this, t = this.w;
                    return t.globals.xLabelFormatter = function (t) {
                        return e.defaultGeneralFormatter(t);
                    }, t.globals.xaxisTooltipFormatter = function (t) {
                        return e.defaultGeneralFormatter(t);
                    }, t.globals.ttKeyFormatter = function (t) {
                        return e.defaultGeneralFormatter(t);
                    }, t.globals.ttZFormatter = function (e) {return e;}, t.globals.legendFormatter = function (t) {
                        return e.defaultGeneralFormatter(t);
                    }, void 0 !== t.config.xaxis.labels.formatter
                        ? t.globals.xLabelFormatter = t.config.xaxis.labels.formatter
                        : t.globals.xLabelFormatter = function (e) {
                            return p.isNumber(e)
                                ? !t.config.xaxis.convertedCatToNumeric &&
                                'numeric' === t.config.xaxis.type &&
                                t.globals.dataPoints < 50 ||
                                t.globals.isBarHorizontal && t.globals.maxY -
                                t.globals.minYArr < 4
                                    ? e.toFixed(1)
                                    : e.toFixed(0)
                                : e;
                        }, 'function' == typeof t.config.tooltip.x.formatter
                        ? t.globals.ttKeyFormatter = t.config.tooltip.x.formatter
                        : t.globals.ttKeyFormatter = t.globals.xLabelFormatter, 'function' ==
                    typeof t.config.xaxis.tooltip.formatter &&
                    (t.globals.xaxisTooltipFormatter = t.config.xaxis.tooltip.formatter), (Array.isArray(
                        t.config.tooltip.y) || void 0 !==
                        t.config.tooltip.y.formatter) &&
                    (t.globals.ttVal = t.config.tooltip.y), void 0 !==
                    t.config.tooltip.z.formatter &&
                    (t.globals.ttZFormatter = t.config.tooltip.z.formatter), void 0 !==
                    t.config.legend.formatter &&
                    (t.globals.legendFormatter = t.config.legend.formatter), t.config.yaxis.forEach(
                        (function (n, i) {
                            void 0 !== n.labels.formatter
                                ? t.globals.yLabelFormatters[i] = n.labels.formatter
                                : t.globals.yLabelFormatters[i] = function (a) {
                                    return t.globals.xyCharts
                                        ? Array.isArray(a) ? a.map((function (t) {
                                            return e.defaultYFormatter(t, n, i);
                                        })) : e.defaultYFormatter(a, n, i)
                                        : a;
                                };
                        })), t.globals;
                },
            },
            {
                key: 'heatmapLabelFormatters', value: function () {
                    var e = this.w;
                    if ('heatmap' === e.config.chart.type) {
                        e.globals.yAxisScale[0].result = e.globals.seriesNames.slice();
                        var t = e.globals.seriesNames.reduce((function (e, t) {
                            return e.length > t.length
                                ? e
                                : t;
                        }), 0);
                        e.globals.yAxisScale[0].niceMax = t, e.globals.yAxisScale[0].niceMin = t;
                    }
                },
            }]), e;
    }(), B = function () {
        function e (n) {t(this, e), this.ctx = n, this.w = n.w;}

        return i(e, [
            {
                key: 'getLabel', value: function (e, t, n, i) {
                    var a = arguments.length > 4 && void 0 !== arguments[4]
                        ? arguments[4]
                        : [],
                        r = arguments.length > 5 && void 0 !== arguments[5]
                            ? arguments[5]
                            : '12px', o = this.w,
                        s = void 0 === e[i] ? '' : e[i], l = s,
                        c = o.globals.xLabelFormatter,
                        u = o.config.xaxis.labels.formatter, d = !1,
                        h = new z(this.ctx), f = s;
                    l = h.xLabelFormat(c, s, f, {
                        i: i,
                        dateFormatter: new P(this.ctx).formatDate,
                        w: o,
                    }), void 0 !== u && (l = u(s, e[i], {
                        i: i,
                        dateFormatter: new P(this.ctx).formatDate,
                        w: o,
                    }));
                    var p = function (e) {
                        var n = null;
                        return t.forEach((function (e) {
                            'month' === e.unit
                                ? n = 'year'
                                : 'day' === e.unit ? n = 'month' : 'hour' ===
                                e.unit ? n = 'day' : 'minute' === e.unit &&
                                (n = 'hour');
                        })), n === e;
                    };
                    t.length > 0
                        ? (d = p(t[i].unit), n = t[i].position, l = t[i].value)
                        : 'datetime' === o.config.xaxis.type && void 0 === u &&
                        (l = ''), void 0 === l && (l = ''), l = Array.isArray(l)
                        ? l
                        : l.toString();
                    var m = new v(this.ctx), g = {};
                    g = o.globals.rotateXLabels ? m.getTextRects(l,
                        parseInt(r, 10), null,
                        'rotate('.concat(o.config.xaxis.labels.rotate, ' 0 0)'),
                        !1) : m.getTextRects(l, parseInt(r, 10));
                    var y = !o.config.xaxis.labels.showDuplicates &&
                        this.ctx.timeScale;
                    return !Array.isArray(l) && (0 === l.indexOf('NaN') || 0 ===
                        l.toLowerCase().indexOf('invalid') ||
                        l.toLowerCase().indexOf('infinity') >= 0 ||
                        a.indexOf(l) >= 0 && y) && (l = ''), {
                        x: n,
                        text: l,
                        textRect: g,
                        isBold: d,
                    };
                },
            },
            {
                key: 'checkLabelBasedOnTickamount',
                value: function (e, t, n) {
                    var i = this.w, a = i.config.xaxis.tickAmount;
                    return 'dataPoints' === a &&
                    (a = Math.round(i.globals.gridWidth / 120)), a > n || e %
                    Math.round(n / (a + 1)) == 0 || (t.text = ''), t;
                },
            },
            {
                key: 'checkForOverflowingLabels',
                value: function (e, t, n, i, a) {
                    var r = this.w;
                    if (0 === e && r.globals.skipFirstTimelinelabel &&
                    (t.text = ''), e === n - 1 &&
                    r.globals.skipLastTimelinelabel &&
                    (t.text = ''), r.config.xaxis.labels.hideOverlappingLabels &&
                    i.length > 0) {
                        var o = a[a.length - 1];
                        t.x < o.textRect.width /
                        (r.globals.rotateXLabels ? Math.abs(
                            r.config.xaxis.labels.rotate) / 12 : 1.01) + o.x &&
                        (t.text = '');
                    }
                    return t;
                },
            },
            {
                key: 'checkForReversedLabels',
                value: function (e, t) {
                    var n = this.w;
                    return n.config.yaxis[e] && n.config.yaxis[e].reversed &&
                    t.reverse(), t;
                },
            },
            {
                key: 'isYAxisHidden',
                value: function (e) {
                    var t = this.w, n = new x(this.ctx);
                    return !t.config.yaxis[e].show ||
                        !t.config.yaxis[e].showForNullSeries &&
                        n.isSeriesNull(e) && -1 ===
                        t.globals.collapsedSeriesIndices.indexOf(e);
                },
            },
            {
                key: 'getYAxisForeColor', value: function (e, t) {
                    var n = this.w;
                    return Array.isArray(e) && n.globals.yAxisScale[t] &&
                    this.ctx.theme.pushExtraColors(e,
                        n.globals.yAxisScale[t].result.length, !1), e;
                },
            },
            {
                key: 'drawYAxisTicks',
                value: function (e, t, n, i, a, r, o) {
                    var s = this.w, l = new v(this.ctx),
                        c = s.globals.translateY;
                    if (i.show && t > 0) {
                        !0 === s.config.yaxis[a].opposite && (e += i.width);
                        for (var u = t; u >= 0; u--) {
                            var d = c + t / 10 +
                                s.config.yaxis[a].labels.offsetY - 1;
                            s.globals.isBarHorizontal &&
                            (d = r * u), 'heatmap' === s.config.chart.type &&
                            (d += r / 2);
                            var h = l.drawLine(
                                e + n.offsetX - i.width + i.offsetX,
                                d + i.offsetY, e + n.offsetX + i.offsetX,
                                d + i.offsetY, i.color);
                            o.add(h), c += r;
                        }
                    }
                },
            }]), e;
    }(), W = function () {
        function e (n) {t(this, e), this.ctx = n, this.w = n.w;}

        return i(e, [
            {
                key: 'fixSvgStringForIe11',
                value: function (e) {
                    if (!p.isIE11()) return e;
                    var t = 0,
                        n = e.replace(/xmlns="http:\/\/www.w3.org\/2000\/svg"/g,
                            (function (e) {
                                return 2 == ++t
                                    ? 'xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.com/svgjs"'
                                    : e;
                            }));
                    return (n = n.replace(/xmlns:NS\d+=""/g, '')).replace(
                        /NS\d+:(\w+:\w+=")/g, '$1');
                },
            },
            {
                key: 'getSvgString',
                value: function () {
                    var e = this.w.globals.dom.Paper.svg();
                    return this.fixSvgStringForIe11(e);
                },
            },
            {
                key: 'cleanup',
                value: function () {
                    var e = this.w,
                        t = e.globals.dom.baseEl.getElementsByClassName(
                            'apexcharts-xcrosshairs'),
                        n = e.globals.dom.baseEl.getElementsByClassName(
                            'apexcharts-ycrosshairs'),
                        i = e.globals.dom.baseEl.querySelectorAll(
                            '.apexcharts-zoom-rect, .apexcharts-selection-rect');
                    Array.prototype.forEach.call(i,
                        (function (e) {e.setAttribute('width', 0);})), t &&
                    t[0] &&
                    (t[0].setAttribute('x', -500), t[0].setAttribute('x1',
                        -500), t[0].setAttribute('x2', -500)), n && n[0] &&
                    (n[0].setAttribute('y', -100), n[0].setAttribute('y1',
                        -100), n[0].setAttribute('y2', -100));
                },
            },
            {
                key: 'svgUrl', value: function () {
                    this.cleanup();
                    var e = this.getSvgString(), t = new Blob([e],
                        { type: 'image/svg+xml;charset=utf-8' });
                    return URL.createObjectURL(t);
                },
            },
            {
                key: 'dataURI', value: function () {
                    var e = this;
                    return new Promise((function (t) {
                        var n = e.w;
                        e.cleanup();
                        var i = document.createElement('canvas');
                        i.width = n.globals.svgWidth, i.height = parseInt(
                            n.globals.dom.elWrap.style.height, 10);
                        var a = 'transparent' === n.config.chart.background
                            ? '#fff'
                            : n.config.chart.background, r = i.getContext('2d');
                        r.fillStyle = a, r.fillRect(0, 0, i.width, i.height);
                        var o = e.getSvgString();
                        if (window.canvg && p.isIE11()) {
                            var s = window.canvg.Canvg.fromString(r, o,
                                { ignoreClear: !0, ignoreDimensions: !0 });
                            s.start();
                            var l = i.msToBlob();
                            s.stop(), t({ blob: l });
                        } else {
                            var c = 'data:image/svg+xml,' +
                                encodeURIComponent(o), u = new Image;
                            u.crossOrigin = 'anonymous', u.onload = function () {
                                if (r.drawImage(u, 0, 0), i.msToBlob) {
                                    var e = i.msToBlob();
                                    t({ blob: e });
                                } else {
                                    var n = i.toDataURL('image/png');
                                    t({ imgURI: n });
                                }
                            }, u.src = c;
                        }
                    }));
                },
            },
            {
                key: 'exportToSVG',
                value: function () {
                    this.triggerDownload(this.svgUrl(),
                        this.w.config.chart.toolbar.export.svg.filename,
                        '.svg');
                },
            },
            {
                key: 'exportToPng', value: function () {
                    var e = this;
                    this.dataURI().
                        then((function (t) {
                            var n = t.imgURI, i = t.blob;
                            i
                                ? navigator.msSaveOrOpenBlob(i,
                                e.w.globals.chartID + '.png')
                                : e.triggerDownload(n,
                                e.w.config.chart.toolbar.export.png.filename,
                                '.png');
                        }));
                },
            },
            {
                key: 'exportToCSV', value: function (e) {
                    var t = this, n = e.series, i = e.columnDelimiter,
                        a = e.lineDelimiter, r = void 0 === a ? '\n' : a,
                        o = this.w, s = [], l = [],
                        c = 'data:text/csv;charset=utf-8,', u = new R(this.ctx),
                        d = new B(this.ctx), h = function (e) {
                            var n = '';
                            if (o.globals.axisCharts) {
                                if ('category' === o.config.xaxis.type ||
                                    o.config.xaxis.convertedCatToNumeric) if (o.globals.isBarHorizontal) {
                                    var a = o.globals.yLabelFormatters[0],
                                        r = new E(
                                            t.ctx).getActiveConfigSeriesIndex();
                                    n = a(o.globals.labels[e],
                                        {
                                            seriesIndex: r,
                                            dataPointIndex: e,
                                            w: o,
                                        });
                                } else n = d.getLabel(o.globals.labels,
                                    o.globals.timescaleLabels, 0, e).text;
                                'datetime' === o.config.xaxis.type &&
                                (o.config.xaxis.categories.length
                                    ? n = o.config.xaxis.categories[e]
                                    : o.config.labels.length &&
                                    (n = o.config.labels[e]));
                            } else n = o.config.labels[e];
                            return p.isNumber(n) ? n : n.split(i).join('');
                        };
                    s.push(
                        o.config.chart.toolbar.export.csv.headerCategory), n.map(
                        (function (e, t) {
                            var n = e.name
                                ? e.name
                                : 'series-'.concat(t);
                            o.globals.axisCharts && s.push(n.split(i).join('')
                                ? n.split(i).join('')
                                : 'series-'.concat(t));
                        })), o.globals.axisCharts || (s.push(
                        o.config.chart.toolbar.export.csv.headerValue), l.push(
                        s.join(i))), n.map((function (e, t) {
                        o.globals.axisCharts ? function (e, t) {
                            if (s.length && 0 === t &&
                            l.push(s.join(i)), e.data &&
                            e.data.length) for (var a = 0; a <
                            e.data.length; a++) {
                                s = [];
                                var r = h(a);
                                if (r || (u.isFormatXY()
                                    ? r = n[t].data[a].x
                                    : u.isFormat2DArray() && (r = n[t].data[a]
                                    ? n[t].data[a][0]
                                    : '')), 0 === t) {
                                    s.push((d = r, 'datetime' ===
                                    o.config.xaxis.type && String(d).length >=
                                    10
                                        ? o.config.chart.toolbar.export.csv.dateFormatter(
                                            r)
                                        : r.split(i).join('')));
                                    for (var c = 0; c <
                                    o.globals.series.length; c++) s.push(
                                        o.globals.series[c][a]);
                                }
                                ('candlestick' === o.config.chart.type ||
                                    e.type && 'candlestick' === e.type) &&
                                (s.pop(), s.push(
                                    o.globals.seriesCandleO[t][a]), s.push(
                                    o.globals.seriesCandleH[t][a]), s.push(
                                    o.globals.seriesCandleL[t][a]), s.push(
                                    o.globals.seriesCandleC[t][a])), 'rangeBar' ===
                                o.config.chart.type && (s.pop(), s.push(
                                    o.globals.seriesRangeStart[t][a]), s.push(
                                    o.globals.seriesRangeEnd[t][a])), s.length &&
                                l.push(s.join(i));
                            }
                            var d;
                        }(e, t) : ((s = []).push(
                            o.globals.labels[t].split(i).join('')), s.push(
                            o.globals.series[t]), l.push(s.join(i)));
                    })), c += l.join(r), this.triggerDownload(encodeURI(c),
                        o.config.chart.toolbar.export.csv.filename, '.csv');
                },
            },
            {
                key: 'triggerDownload',
                value: function (e, t, n) {
                    var i = document.createElement('a');
                    i.href = e, i.download = (t || this.w.globals.chartID) +
                        n, document.body.appendChild(
                        i), i.click(), document.body.removeChild(i);
                },
            }]), e;
    }(), V = function () {
        function e (n) {
            t(this, e), this.ctx = n, this.w = n.w;
            var i = this.w;
            this.axesUtils = new B(
                n), this.xaxisLabels = i.globals.labels.slice(), i.globals.timescaleLabels.length >
            0 && !i.globals.isBarHorizontal &&
            (this.xaxisLabels = i.globals.timescaleLabels.slice()), this.drawnLabels = [], this.drawnLabelsRects = [], 'top' ===
            i.config.xaxis.position
                ? this.offY = 0
                : this.offY = i.globals.gridHeight + 1, this.offY = this.offY +
                i.config.xaxis.axisBorder.offsetY, this.isCategoryBarHorizontal = 'bar' ===
                i.config.chart.type &&
                i.config.plotOptions.bar.horizontal, this.xaxisFontSize = i.config.xaxis.labels.style.fontSize, this.xaxisFontFamily = i.config.xaxis.labels.style.fontFamily, this.xaxisForeColors = i.config.xaxis.labels.style.colors, this.xaxisBorderWidth = i.config.xaxis.axisBorder.width, this.isCategoryBarHorizontal &&
            (this.xaxisBorderWidth = i.config.yaxis[0].axisBorder.width.toString()), this.xaxisBorderWidth.indexOf(
                '%') > -1
                ? this.xaxisBorderWidth = i.globals.gridWidth *
                    parseInt(this.xaxisBorderWidth, 10) / 100
                : this.xaxisBorderWidth = parseInt(this.xaxisBorderWidth,
                    10), this.xaxisBorderHeight = i.config.xaxis.axisBorder.height, this.yaxis = i.config.yaxis[0];
        }

        return i(e, [
            {
                key: 'drawXaxis', value: function () {
                    var e, t = this, n = this.w, i = new v(this.ctx),
                        a = i.group({
                            class: 'apexcharts-xaxis',
                            transform: 'translate('.concat(
                                n.config.xaxis.offsetX, ', ').
                                concat(n.config.xaxis.offsetY, ')'),
                        }), r = i.group({
                            class: 'apexcharts-xaxis-texts-g',
                            transform: 'translate('.concat(
                                n.globals.translateXAxisX, ', ').
                                concat(n.globals.translateXAxisY, ')'),
                        });
                    a.add(r);
                    for (var o = n.globals.padHorizontal, s = [], l = 0; l <
                    this.xaxisLabels.length; l++) s.push(this.xaxisLabels[l]);
                    var c = s.length;
                    if (n.globals.isXNumeric) {
                        var u = c > 1 ? c - 1 : c;
                        e = n.globals.gridWidth / u, o = o + e / 2 +
                            n.config.xaxis.labels.offsetX;
                    } else e = n.globals.gridWidth / s.length, o = o + e +
                        n.config.xaxis.labels.offsetX;
                    for (var d = function (a) {
                        var l = o - e / 2 + n.config.xaxis.labels.offsetX;
                        0 === a && 1 === c && e / 2 === o && 1 ===
                        n.globals.dataPoints && (l = n.globals.gridWidth / 2);
                        var u = t.axesUtils.getLabel(s,
                            n.globals.timescaleLabels, l, a, t.drawnLabels,
                            t.xaxisFontSize), d = 28;
                        if (n.globals.rotateXLabels && (d = 22), (u = void 0 !==
                        n.config.xaxis.tickAmount && 'dataPoints' !==
                        n.config.xaxis.tickAmount && 'datetime' !==
                        n.config.xaxis.type
                            ? t.axesUtils.checkLabelBasedOnTickamount(a, u, c)
                            : t.axesUtils.checkForOverflowingLabels(a, u, c,
                                t.drawnLabels, t.drawnLabelsRects)).text &&
                        n.globals.xaxisLabelsCount++, n.config.xaxis.labels.show) {
                            var h = i.drawText({
                                x: u.x,
                                y: t.offY + n.config.xaxis.labels.offsetY + d -
                                    ('top' === n.config.xaxis.position
                                        ? n.globals.xAxisHeight +
                                        n.config.xaxis.axisTicks.height - 2
                                        : 0),
                                text: u.text,
                                textAnchor: 'middle',
                                fontWeight: u.isBold
                                    ? 600
                                    : n.config.xaxis.labels.style.fontWeight,
                                fontSize: t.xaxisFontSize,
                                fontFamily: t.xaxisFontFamily,
                                foreColor: Array.isArray(t.xaxisForeColors)
                                    ? n.config.xaxis.convertedCatToNumeric
                                        ? t.xaxisForeColors[n.globals.minX + a -
                                        1]
                                        : t.xaxisForeColors[a]
                                    : t.xaxisForeColors,
                                isPlainText: !1,
                                cssClass: 'apexcharts-xaxis-label ' +
                                    n.config.xaxis.labels.style.cssClass,
                            });
                            r.add(h);
                            var f = document.createElementNS(n.globals.SVGNS,
                                'title');
                            f.textContent = Array.isArray(u.text) ? u.text.join(
                                ' ') : u.text, h.node.appendChild(f), '' !==
                            u.text && (t.drawnLabels.push(
                                u.text), t.drawnLabelsRects.push(u));
                        }
                        o += e;
                    }, h = 0; h <= c - 1; h++) d(h);
                    if (void 0 !== n.config.xaxis.title.text) {
                        var f = i.group({ class: 'apexcharts-xaxis-title' }),
                            p = i.drawText({
                                x: n.globals.gridWidth / 2 +
                                    n.config.xaxis.title.offsetX,
                                y: this.offY - parseFloat(this.xaxisFontSize) +
                                    n.globals.xAxisLabelsHeight +
                                    n.config.xaxis.title.offsetY,
                                text: n.config.xaxis.title.text,
                                textAnchor: 'middle',
                                fontSize: n.config.xaxis.title.style.fontSize,
                                fontFamily: n.config.xaxis.title.style.fontFamily,
                                fontWeight: n.config.xaxis.title.style.fontWeight,
                                foreColor: n.config.xaxis.title.style.color,
                                cssClass: 'apexcharts-xaxis-title-text ' +
                                    n.config.xaxis.title.style.cssClass,
                            });
                        f.add(p), a.add(f);
                    }
                    if (n.config.xaxis.axisBorder.show) {
                        var m = n.globals.barPadForNumericAxis, g = i.drawLine(
                            n.globals.padHorizontal +
                            n.config.xaxis.axisBorder.offsetX - m, this.offY,
                            this.xaxisBorderWidth + m, this.offY,
                            n.config.xaxis.axisBorder.color, 0,
                            this.xaxisBorderHeight);
                        a.add(g);
                    }
                    return a;
                },
            },
            {
                key: 'drawXaxisInversed', value: function (e) {
                    var t, n, i = this, a = this.w, r = new v(this.ctx),
                        o = a.config.yaxis[0].opposite
                            ? a.globals.translateYAxisX[e]
                            : 0, s = r.group({
                            class: 'apexcharts-yaxis apexcharts-xaxis-inversed',
                            rel: e,
                        }), l = r.group({
                            class: 'apexcharts-yaxis-texts-g apexcharts-xaxis-inversed-texts-g',
                            transform: 'translate(' + o + ', 0)',
                        });
                    s.add(l);
                    var c = [];
                    if (a.config.yaxis[e].show) for (var u = 0; u <
                    this.xaxisLabels.length; u++) c.push(this.xaxisLabels[u]);
                    t = a.globals.gridHeight / c.length, n = -t / 2.2;
                    var d = a.globals.yLabelFormatters[0],
                        h = a.config.yaxis[0].labels;
                    if (h.show) for (var f = function (o) {
                        var s = void 0 === c[o] ? '' : c[o];
                        s = d(s, { seriesIndex: e, dataPointIndex: o, w: a });
                        var u = i.axesUtils.getYAxisForeColor(h.style.colors,
                            e), f = 0;
                        Array.isArray(s) &&
                        (f = s.length / 2 * parseInt(h.style.fontSize, 10));
                        var p = r.drawText({
                            x: h.offsetX - 15,
                            y: n + t + h.offsetY - f,
                            text: s,
                            textAnchor: i.yaxis.opposite ? 'start' : 'end',
                            foreColor: Array.isArray(u) ? u[o] : u,
                            fontSize: h.style.fontSize,
                            fontFamily: h.style.fontFamily,
                            fontWeight: h.style.fontWeight,
                            isPlainText: !1,
                            cssClass: 'apexcharts-yaxis-label ' +
                                h.style.cssClass,
                        });
                        l.add(p);
                        var m = document.createElementNS(a.globals.SVGNS,
                            'title');
                        if (m.textContent = s.text, p.node.appendChild(m), 0 !==
                        a.config.yaxis[e].labels.rotate) {
                            var g = r.rotateAroundCenter(p.node);
                            p.node.setAttribute('transform', 'rotate('.concat(
                                a.config.yaxis[e].labels.rotate, ' 0 ').
                                concat(g.y, ')'));
                        }
                        n += t;
                    }, p = 0; p <= c.length - 1; p++) f(p);
                    if (void 0 !== a.config.yaxis[0].title.text) {
                        var m = r.group({
                            class: 'apexcharts-yaxis-title apexcharts-xaxis-title-inversed',
                            transform: 'translate(' + o + ', 0)',
                        }), g = r.drawText({
                            x: 0,
                            y: a.globals.gridHeight / 2,
                            text: a.config.yaxis[0].title.text,
                            textAnchor: 'middle',
                            foreColor: a.config.yaxis[0].title.style.color,
                            fontSize: a.config.yaxis[0].title.style.fontSize,
                            fontWeight: a.config.yaxis[0].title.style.fontWeight,
                            fontFamily: a.config.yaxis[0].title.style.fontFamily,
                            cssClass: 'apexcharts-yaxis-title-text ' +
                                a.config.yaxis[0].title.style.cssClass,
                        });
                        m.add(g), s.add(m);
                    }
                    var y = 0;
                    this.isCategoryBarHorizontal &&
                    a.config.yaxis[0].opposite && (y = a.globals.gridWidth);
                    var b = a.config.xaxis.axisBorder;
                    if (b.show) {
                        var x = r.drawLine(
                            a.globals.padHorizontal + b.offsetX + y,
                            1 + b.offsetY,
                            a.globals.padHorizontal + b.offsetX + y,
                            a.globals.gridHeight + b.offsetY, b.color, 0);
                        s.add(x);
                    }
                    return a.config.yaxis[0].axisTicks.show &&
                    this.axesUtils.drawYAxisTicks(y, c.length,
                        a.config.yaxis[0].axisBorder,
                        a.config.yaxis[0].axisTicks, 0, t, s), s;
                },
            },
            {
                key: 'drawXaxisTicks',
                value: function (e, t) {
                    var n = this.w, i = e;
                    if (!(e < 0 || e - 2 > n.globals.gridWidth)) {
                        var a = this.offY + n.config.xaxis.axisTicks.offsetY,
                            r = a + n.config.xaxis.axisTicks.height;
                        if ('top' === n.config.xaxis.position && (r = a -
                            n.config.xaxis.axisTicks.height), n.config.xaxis.axisTicks.show) {
                            var o = new v(this.ctx).drawLine(
                                e + n.config.xaxis.axisTicks.offsetX,
                                a + n.config.xaxis.offsetY,
                                i + n.config.xaxis.axisTicks.offsetX,
                                r + n.config.xaxis.offsetY,
                                n.config.xaxis.axisTicks.color);
                            t.add(o), o.node.classList.add(
                                'apexcharts-xaxis-tick');
                        }
                    }
                },
            },
            {
                key: 'getXAxisTicksPositions',
                value: function () {
                    var e = this.w, t = [], n = this.xaxisLabels.length,
                        i = e.globals.padHorizontal;
                    if (e.globals.timescaleLabels.length >
                        0) for (var a = 0; a <
                    n; a++) i = this.xaxisLabels[a].position, t.push(
                        i); else for (var r = n, o = 0; o < r; o++) {
                        var s = r;
                        e.globals.isXNumeric && 'bar' !== e.config.chart.type &&
                        (s -= 1), i += e.globals.gridWidth / s, t.push(i);
                    }
                    return t;
                },
            },
            {
                key: 'xAxisLabelCorrections', value: function () {
                    var e = this.w, t = new v(this.ctx),
                        n = e.globals.dom.baseEl.querySelector(
                            '.apexcharts-xaxis-texts-g'),
                        i = e.globals.dom.baseEl.querySelectorAll(
                            '.apexcharts-xaxis-texts-g text'),
                        a = e.globals.dom.baseEl.querySelectorAll(
                            '.apexcharts-yaxis-inversed text'),
                        r = e.globals.dom.baseEl.querySelectorAll(
                            '.apexcharts-xaxis-inversed-texts-g text tspan');
                    if (e.globals.rotateXLabels ||
                        e.config.xaxis.labels.rotateAlways) for (var o = 0; o <
                    i.length; o++) {
                        var s = t.rotateAroundCenter(i[o]);
                        s.y = s.y - 1, s.x = s.x + 1, i[o].setAttribute(
                            'transform',
                            'rotate('.concat(e.config.xaxis.labels.rotate, ' ').
                                concat(s.x, ' ').
                                concat(s.y, ')')), i[o].setAttribute(
                            'text-anchor', 'end'), n.setAttribute('transform',
                            'translate(0, '.concat(-10, ')'));
                        var l = i[o].childNodes;
                        e.config.xaxis.labels.trim &&
                        Array.prototype.forEach.call(l, (function (n) {
                            t.placeTextWithEllipsis(n, n.textContent,
                                e.config.xaxis.labels.maxHeight -
                                ('bottom' === e.config.legend.position
                                    ? 20
                                    : 10));
                        }));
                    } else !function () {
                        for (var n = e.globals.gridWidth /
                            (e.globals.labels.length + 1), a = 0; a <
                             i.length; a++) {
                            var r = i[a].childNodes;
                            e.config.xaxis.labels.trim && 'datetime' !==
                            e.config.xaxis.type &&
                            Array.prototype.forEach.call(r, (function (e) {
                                t.placeTextWithEllipsis(e, e.textContent, n);
                            }));
                        }
                    }();
                    if (a.length > 0) {
                        var c = a[a.length - 1].getBBox(), u = a[0].getBBox();
                        c.x < -20 && a[a.length - 1].parentNode.removeChild(
                            a[a.length - 1]), u.x + u.width >
                        e.globals.gridWidth && !e.globals.isBarHorizontal &&
                        a[0].parentNode.removeChild(a[0]);
                        for (var d = 0; d <
                        r.length; d++) t.placeTextWithEllipsis(r[d],
                            r[d].textContent,
                            e.config.yaxis[0].labels.maxWidth - 2 *
                            parseFloat(e.config.yaxis[0].title.style.fontSize) -
                            20);
                    }
                },
            }]), e;
    }(), q = function () {
        function e (n) {
            t(this, e), this.ctx = n, this.w = n.w;
            var i = this.w;
            this.xaxisLabels = i.globals.labels.slice(), this.axesUtils = new B(
                n), this.isTimelineBar = 'datetime' === i.config.xaxis.type &&
                i.globals.seriesRangeBarTimeline.length, i.globals.timescaleLabels.length >
            0 && (this.xaxisLabels = i.globals.timescaleLabels.slice());
        }

        return i(e, [
            {
                key: 'drawGridArea',
                value: function () {
                    var e = arguments.length > 0 && void 0 !== arguments[0]
                        ? arguments[0]
                        : null, t = this.w, n = new v(this.ctx);
                    null === e && (e = n.group({ class: 'apexcharts-grid' }));
                    var i = n.drawLine(t.globals.padHorizontal, 1,
                        t.globals.padHorizontal, t.globals.gridHeight,
                        'transparent'), a = n.drawLine(t.globals.padHorizontal,
                        t.globals.gridHeight, t.globals.gridWidth,
                        t.globals.gridHeight, 'transparent');
                    return e.add(a), e.add(i), e;
                },
            },
            {
                key: 'drawGrid', value: function () {
                    var e = null;
                    return this.w.globals.axisCharts &&
                    (e = this.renderGrid(), this.drawGridArea(e.el)), e;
                },
            },
            {
                key: 'createGridMask', value: function () {
                    var e = this.w, t = e.globals, n = new v(this.ctx),
                        i = Array.isArray(e.config.stroke.width)
                            ? 0
                            : e.config.stroke.width;
                    if (Array.isArray(e.config.stroke.width)) {
                        var a = 0;
                        e.config.stroke.width.forEach(
                            (function (e) {a = Math.max(a, e);})), i = a;
                    }
                    t.dom.elGridRectMask = document.createElementNS(t.SVGNS,
                        'clipPath'), t.dom.elGridRectMask.setAttribute('id',
                        'gridRectMask'.concat(
                            t.cuid)), t.dom.elGridRectMarkerMask = document.createElementNS(
                        t.SVGNS,
                        'clipPath'), t.dom.elGridRectMarkerMask.setAttribute(
                        'id', 'gridRectMarkerMask'.concat(t.cuid));
                    var r = e.config.chart.type, o = 0, s = 0;
                    ('bar' === r || 'rangeBar' === r ||
                        e.globals.comboBarCount > 0) && e.globals.isXNumeric &&
                    !e.globals.isBarHorizontal &&
                    (o = e.config.grid.padding.left, s = e.config.grid.padding.right, t.barPadForNumericAxis >
                    o &&
                    (o = t.barPadForNumericAxis, s = t.barPadForNumericAxis)), t.dom.elGridRect = n.drawRect(
                        -i / 2 - o - 2, -i / 2, t.gridWidth + i + s + o + 4,
                        t.gridHeight + i, 0, '#fff'), new x(
                        this).getLargestMarkerSize();
                    var l = e.globals.markers.largestSize + 1;
                    t.dom.elGridRectMarker = n.drawRect(2 * -l, 2 * -l,
                        t.gridWidth + 4 * l, t.gridHeight + 4 * l, 0,
                        '#fff'), t.dom.elGridRectMask.appendChild(
                        t.dom.elGridRect.node), t.dom.elGridRectMarkerMask.appendChild(
                        t.dom.elGridRectMarker.node);
                    var c = t.dom.baseEl.querySelector('defs');
                    c.appendChild(t.dom.elGridRectMask), c.appendChild(
                        t.dom.elGridRectMarkerMask);
                },
            },
            {
                key: '_drawGridLines',
                value: function (e) {
                    var t = e.i, n = e.x1, i = e.y1, a = e.x2, r = e.y2,
                        o = e.xCount, s = e.parent, l = this.w;
                    0 === t && l.globals.skipFirstTimelinelabel || t === o -
                    1 && l.globals.skipLastTimelinelabel &&
                    !l.config.xaxis.labels.formatter || 'radar' ===
                    l.config.chart.type || (l.config.grid.xaxis.lines.show &&
                    this._drawGridLine(
                        { x1: n, y1: i, x2: a, y2: r, parent: s }), new V(
                        this.ctx).drawXaxisTicks(n, this.elg));
                },
            },
            {
                key: '_drawGridLine',
                value: function (e) {
                    var t = e.x1, n = e.y1, i = e.x2, a = e.y2, r = e.parent,
                        o = this.w, s = r.node.classList.contains(
                        'apexcharts-gridlines-horizontal'),
                        l = o.config.grid.strokeDashArray,
                        c = o.globals.barPadForNumericAxis,
                        u = new v(this).drawLine(t - (s ? c : 0), n,
                            i + (s ? c : 0), a, o.config.grid.borderColor, l);
                    u.node.classList.add('apexcharts-gridline'), r.add(u);
                },
            },
            {
                key: '_drawGridBandRect',
                value: function (e) {
                    var t = e.c, n = e.x1, i = e.y1, a = e.x2, r = e.y2,
                        o = e.type, s = this.w, l = new v(this.ctx),
                        c = s.globals.barPadForNumericAxis;
                    if ('column' !== o || 'datetime' !== s.config.xaxis.type) {
                        var u = s.config.grid[o].colors[t],
                            d = l.drawRect(n - ('row' === o ? c : 0), i,
                                a + ('row' === o ? 2 * c : 0), r, 0, u,
                                s.config.grid[o].opacity);
                        this.elg.add(d), d.attr('clip-path',
                            'url(#gridRectMask'.concat(s.globals.cuid,
                                ')')), d.node.classList.add(
                            'apexcharts-grid-'.concat(o));
                    }
                },
            },
            {
                key: '_drawXYLines', value: function (e) {
                    var t = this, n = e.xCount, i = e.tickAmount, a = this.w;
                    if (a.config.grid.xaxis.lines.show ||
                        a.config.xaxis.axisTicks.show) {
                        var r, o = a.globals.padHorizontal,
                            s = a.globals.gridHeight;
                        a.globals.timescaleLabels.length
                            ? function (e) {
                                for (var i = e.xC, a = e.x1, r = e.y1, o = e.x2, s = e.y2, l = 0; l <
                                i; l++) a = t.xaxisLabels[l].position, o = t.xaxisLabels[l].position, t._drawGridLines(
                                    {
                                        i: l,
                                        x1: a,
                                        y1: r,
                                        x2: o,
                                        y2: s,
                                        xCount: n,
                                        parent: t.elgridLinesV,
                                    });
                            }({ xC: n, x1: o, y1: 0, x2: r, y2: s })
                            : (a.globals.isXNumeric &&
                            (n = a.globals.xAxisScale.result.length), a.config.xaxis.convertedCatToNumeric &&
                            (n = a.globals.xaxisLabelsCount), function (e) {
                                var i = e.xC, r = e.x1, o = e.y1, s = e.x2,
                                    l = e.y2;
                                if (void 0 !== a.config.xaxis.tickAmount &&
                                    'dataPoints' !==
                                    a.config.xaxis.tickAmount) a.globals.dom.baseEl.querySelectorAll(
                                    '.apexcharts-text.apexcharts-xaxis-label tspan:not(:empty)').
                                    forEach((function (e, i) {
                                        var a = e.getBBox();
                                        t._drawGridLines({
                                            i: i,
                                            x1: a.x + a.width / 2,
                                            y1: o,
                                            x2: a.x + a.width / 2,
                                            y2: l,
                                            xCount: n,
                                            parent: t.elgridLinesV,
                                        });
                                    })); else for (var c = 0; c < i +
                                (a.globals.isXNumeric ? 0 : 1); c++) 0 === c &&
                                1 === i && 1 === a.globals.dataPoints &&
                                (s = r = a.globals.gridWidth / 2), t._drawGridLines(
                                    {
                                        i: c,
                                        x1: r,
                                        y1: o,
                                        x2: s,
                                        y2: l,
                                        xCount: n,
                                        parent: t.elgridLinesV,
                                    }), s = r += a.globals.gridWidth /
                                    (a.globals.isXNumeric ? i - 1 : i);
                            }({ xC: n, x1: o, y1: 0, x2: r, y2: s }));
                    }
                    if (a.config.grid.yaxis.lines.show) {
                        var l = 0, c = 0, u = a.globals.gridWidth, d = i + 1;
                        this.isTimelineBar && (d = a.globals.labels.length);
                        for (var h = 0; h < d +
                        (this.isTimelineBar ? 1 : 0); h++) this._drawGridLine({
                            x1: 0,
                            y1: l,
                            x2: u,
                            y2: c,
                            parent: this.elgridLinesH,
                        }), c = l += a.globals.gridHeight /
                            (this.isTimelineBar ? d : i);
                    }
                },
            },
            {
                key: '_drawInvertedXYLines',
                value: function (e) {
                    var t = e.xCount, n = this.w;
                    if (n.config.grid.xaxis.lines.show ||
                        n.config.xaxis.axisTicks.show) for (var i, a = n.globals.padHorizontal, r = n.globals.gridHeight, o = 0; o <
                    t + 1; o++) n.config.grid.xaxis.lines.show &&
                    this._drawGridLine({
                        x1: a,
                        y1: 0,
                        x2: i,
                        y2: r,
                        parent: this.elgridLinesV,
                    }), new V(this.ctx).drawXaxisTicks(a, this.elg), i = a = a +
                        n.globals.gridWidth / t + .3;
                    if (n.config.grid.yaxis.lines.show) for (var s = 0, l = 0, c = n.globals.gridWidth, u = 0; u <
                    n.globals.dataPoints + 1; u++) this._drawGridLine({
                        x1: 0,
                        y1: s,
                        x2: c,
                        y2: l,
                        parent: this.elgridLinesH,
                    }), l = s += n.globals.gridHeight / n.globals.dataPoints;
                },
            },
            {
                key: 'renderGrid',
                value: function () {
                    var e = this.w, t = new v(this.ctx);
                    this.elg = t.group(
                        { class: 'apexcharts-grid' }), this.elgridLinesH = t.group(
                        { class: 'apexcharts-gridlines-horizontal' }), this.elgridLinesV = t.group(
                        { class: 'apexcharts-gridlines-vertical' }), this.elg.add(
                        this.elgridLinesH), this.elg.add(
                        this.elgridLinesV), e.config.grid.show ||
                    (this.elgridLinesV.hide(), this.elgridLinesH.hide());
                    for (var n, i = e.globals.yAxisScale.length
                        ? e.globals.yAxisScale[0].result.length - 1
                        : 5, a = 0; a < e.globals.series.length &&
                         (void 0 !== e.globals.yAxisScale[a] &&
                         (i = e.globals.yAxisScale[a].result.length - 1), !(i >
                             2)); a++) ;
                    return !e.globals.isBarHorizontal || this.isTimelineBar
                        ? (n = this.xaxisLabels.length, this.isTimelineBar &&
                        (i = e.globals.labels.length, e.config.xaxis.tickAmount &&
                        e.config.xaxis.labels.formatter &&
                        (n = e.config.xaxis.tickAmount)), this._drawXYLines(
                            { xCount: n, tickAmount: i }))
                        : (n = i, i = e.globals.xTickAmount, this._drawInvertedXYLines(
                            { xCount: n, tickAmount: i })), this.drawGridBands(
                        n, i), {
                        el: this.elg,
                        xAxisTickWidth: e.globals.gridWidth / n,
                    };
                },
            },
            {
                key: 'drawGridBands', value: function (e, t) {
                    var n = this.w;
                    if (void 0 !== n.config.grid.row.colors &&
                        n.config.grid.row.colors.length >
                        0) for (var i = 0, a = n.globals.gridHeight /
                        t, r = n.globals.gridWidth, o = 0, s = 0; o <
                                t; o++, s++) s >=
                    n.config.grid.row.colors.length &&
                    (s = 0), this._drawGridBandRect({
                        c: s,
                        x1: 0,
                        y1: i,
                        x2: r,
                        y2: a,
                        type: 'row',
                    }), i += n.globals.gridHeight / t;
                    if (void 0 !== n.config.grid.column.colors &&
                        n.config.grid.column.colors.length >
                        0) for (var l = n.globals.isBarHorizontal ||
                    'category' !== n.config.xaxis.type &&
                    !n.config.xaxis.convertedCatToNumeric ? e : e -
                        1, c = n.globals.padHorizontal, u = n.globals.padHorizontal +
                        n.globals.gridWidth /
                        l, d = n.globals.gridHeight, h = 0, f = 0; h <
                                e; h++, f++) f >=
                    n.config.grid.column.colors.length &&
                    (f = 0), this._drawGridBandRect({
                        c: f,
                        x1: c,
                        y1: 0,
                        x2: u,
                        y2: d,
                        type: 'column',
                    }), c += n.globals.gridWidth / l;
                },
            }]), e;
    }(), U = function () {
        function e (n) {t(this, e), this.ctx = n, this.w = n.w;}

        return i(e, [
            {
                key: 'niceScale', value: function (e, t) {
                    var n = arguments.length > 2 && void 0 !== arguments[2]
                        ? arguments[2]
                        : 10,
                        i = arguments.length > 3 && void 0 !== arguments[3]
                            ? arguments[3]
                            : 0,
                        a = arguments.length > 4 ? arguments[4] : void 0,
                        r = this.w, o = Math.abs(t - e);
                    if ('dataPoints' ===
                    (n = this._adjustTicksForSmallRange(n, i, o)) &&
                    (n = r.globals.dataPoints - 1), e === Number.MIN_VALUE &&
                    0 === t || !p.isNumber(e) && !p.isNumber(t) || e ===
                    Number.MIN_VALUE && t === -Number.MAX_VALUE) {
                        e = 0, t = n;
                        var s = this.linearScale(e, t, n);
                        return s;
                    }
                    e > t
                        ? (console.warn(
                        'axis.min cannot be greater than axis.max'), t = e + .1)
                        : e === t &&
                        (e = 0 === e ? 0 : e - .5, t = 0 === t ? 2 : t + .5);
                    var l = [];
                    o < 1 && a &&
                    ('candlestick' === r.config.chart.type || 'candlestick' ===
                        r.config.series[i].type || r.globals.isRangeData) &&
                    (t *= 1.01);
                    var c = n + 1;
                    c < 2 ? c = 2 : c > 2 && (c -= 2);
                    var u = o / c, d = Math.floor(p.log10(u)),
                        h = Math.pow(10, d), f = Math.round(u / h);
                    f < 1 && (f = 1);
                    var m = f * h, g = m * Math.floor(e / m),
                        v = m * Math.ceil(t / m), y = g;
                    if (a && o > 2) {
                        for (; l.push(y), !((y += m) > v);) ;
                        return {
                            result: l,
                            niceMin: l[0],
                            niceMax: l[l.length - 1],
                        };
                    }
                    var b = e;
                    (l = []).push(b);
                    for (var x = Math.abs(t - e) / n, _ = 0; _ <=
                    n; _++) b += x, l.push(b);
                    return l[l.length - 2] >= t && l.pop(), {
                        result: l,
                        niceMin: l[0],
                        niceMax: l[l.length - 1],
                    };
                },
            },
            {
                key: 'linearScale',
                value: function (e, t) {
                    var n = arguments.length > 2 && void 0 !== arguments[2]
                        ? arguments[2]
                        : 10, i = arguments.length > 3 ? arguments[3] : void 0,
                        a = Math.abs(t - e),
                        r = a / (n = this._adjustTicksForSmallRange(n, i, a));
                    n === Number.MAX_VALUE && (n = 10, r = 1);
                    for (var o = [], s = e; n >= 0;) o.push(s), s += r, n -= 1;
                    return {
                        result: o,
                        niceMin: o[0],
                        niceMax: o[o.length - 1],
                    };
                },
            },
            {
                key: 'logarithmicScale',
                value: function (e) {
                    for (var t = [], n = Math.ceil(Math.log10(e)) +
                        1, i = 0; i < n; i++) t.push(Math.pow(10, i));
                    return {
                        result: t,
                        niceMin: t[0],
                        niceMax: t[t.length - 1],
                    };
                },
            },
            {
                key: '_adjustTicksForSmallRange',
                value: function (e, t, n) {
                    var i = e;
                    if (void 0 !== t &&
                        this.w.config.yaxis[t].labels.formatter && void 0 ===
                        this.w.config.yaxis[t].tickAmount) {
                        var a = this.w.config.yaxis[t].labels.formatter(1);
                        p.isNumber(Number(a)) && !p.isFloat(a) &&
                        (i = Math.ceil(n));
                    }
                    return i < e ? i : e;
                },
            },
            {
                key: 'setYScaleForIndex',
                value: function (e, t, n) {
                    var i = this.w.globals, a = this.w.config,
                        r = i.isBarHorizontal ? a.xaxis : a.yaxis[e];
                    void 0 === i.yAxisScale[e] && (i.yAxisScale[e] = []);
                    var o = Math.abs(n - t);
                    if (r.logarithmic && o <= 5 &&
                    (i.invalidLogScale = !0), r.logarithmic && o >
                    5) i.allSeriesCollapsed = !1, i.yAxisScale[e] = this.logarithmicScale(
                        n); else if (n !== -Number.MAX_VALUE &&
                        p.isNumber(n)) if (i.allSeriesCollapsed = !1, void 0 ===
                    r.min && void 0 === r.max || r.forceNiceScale) {
                        var s = void 0 === a.yaxis[e].max && void 0 ===
                            a.yaxis[e].min || a.yaxis[e].forceNiceScale;
                        i.yAxisScale[e] = this.niceScale(t, n,
                            r.tickAmount ? r.tickAmount : o < 5 && o > 1
                                ? o + 1
                                : 5, e, s);
                    } else i.yAxisScale[e] = this.linearScale(t, n,
                        r.tickAmount,
                        e); else i.yAxisScale[e] = this.linearScale(0, 5, 5);
                },
            },
            {
                key: 'setXScale',
                value: function (e, t) {
                    var n = this.w, i = n.globals, a = n.config.xaxis,
                        r = Math.abs(t - e);
                    return t !== -Number.MAX_VALUE && p.isNumber(t)
                        ? i.xAxisScale = this.niceScale(e, t,
                            a.tickAmount ? a.tickAmount : r < 5 && r > 1
                                ? r + 1
                                : 5, 0)
                        : i.xAxisScale = this.linearScale(0, 5,
                            5), i.xAxisScale;
                },
            },
            {
                key: 'setMultipleYScales',
                value: function () {
                    var e = this, t = this.w.globals, n = this.w.config,
                        i = t.minYArr.concat([]), a = t.maxYArr.concat([]),
                        r = [];
                    n.yaxis.forEach((function (t, o) {
                        var s = o;
                        n.series.forEach((function (e, n) {
                            e.name === t.seriesName && (s = n, o !== n ? r.push(
                                {
                                    index: n,
                                    similarIndex: o,
                                    alreadyExists: !0,
                                }) : r.push({ index: n }));
                        }));
                        var l = i[s], c = a[s];
                        e.setYScaleForIndex(o, l, c);
                    })), this.sameScaleInMultipleAxes(i, a, r);
                },
            },
            {
                key: 'sameScaleInMultipleAxes', value: function (e, t, n) {
                    var i = this, a = this.w.config, r = this.w.globals, o = [];
                    n.forEach((function (e) {
                        e.alreadyExists && (void 0 === o[e.index] &&
                        (o[e.index] = []), o[e.index].push(
                            e.index), o[e.index].push(e.similarIndex));
                    })), r.yAxisSameScaleIndices = o, o.forEach(
                        (function (e, t) {
                            o.forEach((function (n, i) {
                                var a, r;
                                t !== i && (a = e, r = n, a.filter(
                                    (function (e) {
                                        return -1 !== r.indexOf(e);
                                    }))).length > 0 &&
                                (o[t] = o[t].concat(o[i]));
                            }));
                        }));
                    var s = o.map((function (e) {
                        return e.filter(
                            (function (t, n) {return e.indexOf(t) === n;}));
                    })).map((function (e) {return e.sort();}));
                    o = o.filter((function (e) {return !!e;}));
                    var l = s.slice(),
                        c = l.map((function (e) {return JSON.stringify(e);}));
                    l = l.filter((function (e, t) {
                        return c.indexOf(JSON.stringify(e)) === t;
                    }));
                    var u = [], d = [];
                    e.forEach((function (e, n) {
                        l.forEach((function (i, a) {
                            i.indexOf(n) > -1 && (void 0 === u[a] &&
                            (u[a] = [], d[a] = []), u[a].push(
                                { key: n, value: e }), d[a].push(
                                { key: n, value: t[n] }));
                        }));
                    }));
                    var h = Array.apply(null, Array(l.length)).
                            map(Number.prototype.valueOf, Number.MIN_VALUE),
                        f = Array.apply(null, Array(l.length)).
                            map(Number.prototype.valueOf, -Number.MAX_VALUE);
                    u.forEach((function (e, t) {
                        e.forEach(
                            (function (e, n) {
                                h[t] = Math.min(e.value, h[t]);
                            }));
                    })), d.forEach((function (e, t) {
                        e.forEach(
                            (function (e, n) {
                                f[t] = Math.max(e.value, f[t]);
                            }));
                    })), e.forEach((function (e, t) {
                        d.forEach((function (e, n) {
                            var o = h[n], s = f[n];
                            a.chart.stacked && (s = 0, e.forEach(
                                (function (e, t) {
                                    e.value !== -Number.MAX_VALUE &&
                                    (s += e.value), o !== Number.MIN_VALUE &&
                                    (o += u[n][t].value);
                                }))), e.forEach((function (n, l) {
                                e[l].key === t && (void 0 !== a.yaxis[t].min &&
                                (o = 'function' == typeof a.yaxis[t].min
                                    ? a.yaxis[t].min(r.minY)
                                    : a.yaxis[t].min), void 0 !==
                                a.yaxis[t].max &&
                                (s = 'function' == typeof a.yaxis[t].max
                                    ? a.yaxis[t].max(r.maxY)
                                    : a.yaxis[t].max), i.setYScaleForIndex(t, o,
                                    s));
                            }));
                        }));
                    }));
                },
            },
            {
                key: 'autoScaleY', value: function (e, t, n) {
                    e || (e = this);
                    var i = e.w;
                    if (i.globals.isMultipleYAxis ||
                        i.globals.collapsedSeries.length) return console.warn(
                        'autoScaleYaxis is not supported in a multi-yaxis chart.'), t;
                    var a = i.globals.seriesX[0], r = i.config.chart.stacked;
                    return t.forEach((function (e, o) {
                        for (var s = 0, l = 0; l < a.length; l++) if (a[l] >=
                            n.xaxis.min) {
                            s = l;
                            break;
                        }
                        var c, u, d = i.globals.minYArr[o],
                            h = i.globals.maxYArr[o],
                            f = i.globals.stackedSeriesTotals;
                        i.globals.series.forEach((function (o, l) {
                            var p = o[s];
                            r ? (p = f[s], c = u = p, f.forEach(
                                (function (e, t) {
                                    a[t] <= n.xaxis.max && a[t] >=
                                    n.xaxis.min &&
                                    (e > u && null !== e && (u = e), o[t] < c &&
                                    null !== o[t] && (c = o[t]));
                                }))) : (c = u = p, o.forEach((function (e, t) {
                                if (a[t] <= n.xaxis.max && a[t] >=
                                    n.xaxis.min) {
                                    var r = e, o = e;
                                    i.globals.series.forEach((function (n, i) {
                                        null !== e &&
                                        (r = Math.min(n[t], r), o = Math.max(
                                            n[t], o));
                                    })), o > u && null !== o && (u = o), r <
                                    c && null !== r && (c = r);
                                }
                            }))), void 0 === c && void 0 === u &&
                            (c = d, u = h), (u *= u < 0 ? .9 : 1.1) < 0 && u <
                            h && (u = h), (c *= c < 0 ? 1.1 : .9) < 0 && c >
                            d && (c = d), t.length > 1 ? (t[l].min = void 0 ===
                            e.min ? c : e.min, t[l].max = void 0 === e.max
                                ? u
                                : e.max) : (t[0].min = void 0 === e.min
                                ? c
                                : e.min, t[0].max = void 0 === e.max
                                ? u
                                : e.max);
                        }));
                    })), t;
                },
            }]), e;
    }(), X = function () {
        function e (n) {
            t(this, e), this.ctx = n, this.w = n.w, this.scales = new U(n);
        }

        return i(e, [
            {
                key: 'init',
                value: function () {this.setYRange(), this.setXRange(), this.setZRange();},
            },
            {
                key: 'getMinYMaxY', value: function (e) {
                    var t = arguments.length > 1 && void 0 !== arguments[1]
                        ? arguments[1]
                        : Number.MAX_VALUE,
                        n = arguments.length > 2 && void 0 !== arguments[2]
                            ? arguments[2]
                            : -Number.MAX_VALUE,
                        i = arguments.length > 3 && void 0 !== arguments[3]
                            ? arguments[3]
                            : null, a = this.w.config, r = this.w.globals,
                        o = -Number.MAX_VALUE, s = Number.MIN_VALUE;
                    null === i && (i = e + 1);
                    var l = r.series, c = l, u = l;
                    'candlestick' === a.chart.type
                        ? (c = r.seriesCandleL, u = r.seriesCandleH)
                        : r.isRangeData &&
                        (c = r.seriesRangeStart, u = r.seriesRangeEnd);
                    for (var d = e; d < i; d++) {
                        r.dataPoints = Math.max(r.dataPoints, l[d].length);
                        for (var h = 0; h < r.series[d].length; h++) {
                            var f = l[d][h];
                            null !== f && p.isNumber(f)
                                ? (o = Math.max(o, u[d][h]), t = Math.min(t,
                                c[d][h]), n = Math.max(n,
                                c[d][h]), 'candlestick' ===
                                this.w.config.chart.type && (o = Math.max(o,
                                r.seriesCandleO[d][h]), o = Math.max(o,
                                r.seriesCandleH[d][h]), o = Math.max(o,
                                r.seriesCandleL[d][h]), n = o = Math.max(o,
                                r.seriesCandleC[d][h])), p.isFloat(f) &&
                                (f = p.noExponents(f), r.yValueDecimal = Math.max(
                                    r.yValueDecimal,
                                    f.toString().split('.')[1].length)), s >
                                c[d][h] && c[d][h] < 0 && (s = c[d][h]))
                                : r.hasNullValues = !0;
                        }
                    }
                    return 'rangeBar' === a.chart.type &&
                    r.seriesRangeStart.length && r.isBarHorizontal &&
                    'datetime' === a.xaxis.type && (s = t), 'bar' ===
                    a.chart.type &&
                    (s < 0 && o < 0 && (o = 0), s === Number.MIN_VALUE &&
                    (s = 0)), { minY: s, maxY: o, lowestY: t, highestY: n };
                },
            },
            {
                key: 'setYRange', value: function () {
                    var e = this.w.globals, t = this.w.config;
                    e.maxY = -Number.MAX_VALUE, e.minY = Number.MIN_VALUE;
                    var n = Number.MAX_VALUE;
                    if (e.isMultipleYAxis) for (var i = 0; i <
                    e.series.length; i++) {
                        var a = this.getMinYMaxY(i, n, null, i + 1);
                        e.minYArr.push(a.minY), e.maxYArr.push(
                            a.maxY), n = a.lowestY;
                    }
                    var r = this.getMinYMaxY(0, n, null, e.series.length);
                    if (e.minY = r.minY, e.maxY = r.maxY, n = r.lowestY, t.chart.stacked &&
                    this._setStackedMinMax(), ('line' === t.chart.type ||
                        'area' === t.chart.type || 'candlestick' ===
                        t.chart.type || 'rangeBar' === t.chart.type &&
                        !e.isBarHorizontal) && e.minY === Number.MIN_VALUE &&
                    n !== -Number.MAX_VALUE && n !== e.maxY) {
                        var o = e.maxY - n;
                        (n >= 0 && n <= 10 || void 0 !== t.yaxis[0].min ||
                            void 0 !== t.yaxis[0].max) && (o = 0), e.minY = n -
                            5 * o / 100, n > 0 && e.minY < 0 &&
                        (e.minY = 0), e.maxY = e.maxY + 5 * o / 100;
                    }
                    return t.yaxis.forEach((function (t, n) {
                        void 0 !== t.max && ('number' == typeof t.max
                            ? e.maxYArr[n] = t.max
                            : 'function' == typeof t.max &&
                            (e.maxYArr[n] = t.max(e.isMultipleYAxis
                                ? e.maxYArr[n]
                                : e.maxY)), e.maxY = e.maxYArr[n]), void 0 !==
                        t.min && ('number' == typeof t.min
                            ? e.minYArr[n] = t.min
                            : 'function' == typeof t.min &&
                            (e.minYArr[n] = t.min(e.isMultipleYAxis
                                ? e.minYArr[n] === Number.MIN_VALUE
                                    ? 0
                                    : e.minYArr[n]
                                : e.minY)), e.minY = e.minYArr[n]);
                    })), e.isBarHorizontal && ['min', 'max'].forEach(
                        (function (n) {
                            void 0 !== t.xaxis[n] && 'number' ==
                            typeof t.xaxis[n] && ('min' === n
                                ? e.minY = t.xaxis[n]
                                : e.maxY = t.xaxis[n]);
                        })), e.isMultipleYAxis
                        ? (this.scales.setMultipleYScales(), e.minY = n, e.yAxisScale.forEach(
                            (function (
                                t,
                                n) {e.minYArr[n] = t.niceMin, e.maxYArr[n] = t.niceMax;})))
                        : (this.scales.setYScaleForIndex(0, e.minY,
                            e.maxY), e.minY = e.yAxisScale[0].niceMin, e.maxY = e.yAxisScale[0].niceMax, e.minYArr[0] = e.yAxisScale[0].niceMin, e.maxYArr[0] = e.yAxisScale[0].niceMax), {
                        minY: e.minY,
                        maxY: e.maxY,
                        minYArr: e.minYArr,
                        maxYArr: e.maxYArr,
                        yAxisScale: e.yAxisScale,
                    };
                },
            },
            {
                key: 'setXRange', value: function () {
                    var e = this.w.globals, t = this.w.config,
                        n = 'numeric' === t.xaxis.type || 'datetime' ===
                            t.xaxis.type || 'category' === t.xaxis.type &&
                            !e.noLabelsProvided || e.noLabelsProvided ||
                            e.isXNumeric;
                    if (e.isXNumeric && function () {
                        for (var t = 0; t <
                        e.series.length; t++) if (e.labels[t]) for (var n = 0; n <
                        e.labels[t].length; n++) null !== e.labels[t][n] &&
                        p.isNumber(e.labels[t][n]) && (e.maxX = Math.max(e.maxX,
                            e.labels[t][n]), e.initialMaxX = Math.max(e.maxX,
                            e.labels[t][n]), e.minX = Math.min(e.minX,
                            e.labels[t][n]), e.initialMinX = Math.min(e.minX,
                            e.labels[t][n]));
                    }(), e.noLabelsProvided && 0 ===
                    t.xaxis.categories.length &&
                    (e.maxX = e.labels[e.labels.length -
                    1], e.initialMaxX = e.labels[e.labels.length -
                    1], e.minX = 1, e.initialMinX = 1), e.isXNumeric ||
                    e.noLabelsProvided || e.dataFormatXNumeric) {
                        var i;
                        if (void 0 === t.xaxis.tickAmount ? (i = Math.round(
                            e.svgWidth / 150), 'numeric' === t.xaxis.type &&
                        e.dataPoints < 30 && (i = e.dataPoints - 1), i >
                        e.dataPoints && 0 !== e.dataPoints &&
                        (i = e.dataPoints - 1)) : 'dataPoints' ===
                        t.xaxis.tickAmount
                            ? (e.series.length > 1 &&
                            (i = e.series[e.maxValsInArrayIndex].length -
                                1), e.isXNumeric && (i = e.maxX - e.minX - 1))
                            : i = t.xaxis.tickAmount, e.xTickAmount = i, void 0 !==
                        t.xaxis.max && 'number' == typeof t.xaxis.max &&
                        (e.maxX = t.xaxis.max), void 0 !== t.xaxis.min &&
                        'number' == typeof t.xaxis.min &&
                        (e.minX = t.xaxis.min), void 0 !== t.xaxis.range &&
                        (e.minX = e.maxX - t.xaxis.range), e.minX !==
                        Number.MAX_VALUE && e.maxX !==
                        -Number.MAX_VALUE) if (t.xaxis.convertedCatToNumeric &&
                            !e.dataFormatXNumeric) {
                            for (var a = [], r = e.minX - 1; r <
                            e.maxX; r++) a.push(r + 1);
                            e.xAxisScale = {
                                result: a,
                                niceMin: a[0],
                                niceMax: a[a.length - 1],
                            };
                        } else e.xAxisScale = this.scales.setXScale(e.minX,
                            e.maxX); else e.xAxisScale = this.scales.linearScale(
                            1, i, i), e.noLabelsProvided && e.labels.length >
                        0 && (e.xAxisScale = this.scales.linearScale(1,
                            e.labels.length,
                            i - 1), e.seriesX = e.labels.slice());
                        n && (e.labels = e.xAxisScale.result.slice());
                    }
                    return e.isBarHorizontal && e.labels.length &&
                    (e.xTickAmount = e.labels.length), this._handleSingleDataPoint(), this._getMinXDiff(), {
                        minX: e.minX,
                        maxX: e.maxX,
                    };
                },
            },
            {
                key: 'setZRange', value: function () {
                    var e = this.w.globals;
                    if (e.isDataXYZ) for (var t = 0; t <
                    e.series.length; t++) if (void 0 !==
                        e.seriesZ[t]) for (var n = 0; n <
                    e.seriesZ[t].length; n++) null !== e.seriesZ[t][n] &&
                    p.isNumber(e.seriesZ[t][n]) && (e.maxZ = Math.max(e.maxZ,
                        e.seriesZ[t][n]), e.minZ = Math.min(e.minZ,
                        e.seriesZ[t][n]));
                },
            },
            {
                key: '_handleSingleDataPoint',
                value: function () {
                    var e = this.w.globals, t = this.w.config;
                    if (e.minX === e.maxX) {
                        var n = new P(this.ctx);
                        if ('datetime' === t.xaxis.type) {
                            var i = n.getDate(e.minX);
                            i.setUTCDate(i.getDate() - 2), e.minX = new Date(
                                i).getTime();
                            var a = n.getDate(e.maxX);
                            a.setUTCDate(a.getDate() + 2), e.maxX = new Date(
                                a).getTime();
                        } else ('numeric' === t.xaxis.type || 'category' ===
                            t.xaxis.type && !e.noLabelsProvided) &&
                        (e.minX = e.minX -
                            2, e.initialMinX = e.minX, e.maxX = e.maxX +
                            2, e.initialMaxX = e.maxX);
                    }
                },
            },
            {
                key: '_getMinXDiff', value: function () {
                    var e = this.w.globals;
                    e.isXNumeric && e.seriesX.forEach((function (t, n) {
                        1 === t.length && t.push(
                            e.seriesX[e.maxValsInArrayIndex][e.seriesX[e.maxValsInArrayIndex].length -
                            1]);
                        var i = t.slice();
                        i.sort((function (e, t) {return e - t;})), i.forEach(
                            (function (t, i) {
                                if (i > 0) {
                                    var a = t - e.seriesX[n][i - 1];
                                    a > 0 &&
                                    (e.minXDiff = Math.min(a, e.minXDiff));
                                }
                            })), 1 === e.dataPoints && e.minXDiff ===
                        Number.MAX_VALUE && (e.minXDiff = .5);
                    }));
                },
            },
            {
                key: '_setStackedMinMax',
                value: function () {
                    var e = this.w.globals, t = [], n = [];
                    if (e.series.length) for (var i = 0; i <
                    e.series[e.maxValsInArrayIndex].length; i++) for (var a = 0, r = 0, o = 0; o <
                    e.series.length; o++) null !== e.series[o][i] &&
                    p.isNumber(e.series[o][i]) &&
                    (e.series[o][i] > 0 ? a = a + parseFloat(e.series[o][i]) +
                        1e-4 : r += parseFloat(e.series[o][i])), o ===
                    e.series.length - 1 && (t.push(a), n.push(r));
                    for (var s = 0; s < t.length; s++) e.maxY = Math.max(e.maxY,
                        t[s]), e.minY = Math.min(e.minY, n[s]);
                },
            }]), e;
    }(), $ = function () {
        function e (n) {
            t(this, e), this.ctx = n, this.w = n.w;
            var i = this.w;
            this.xaxisFontSize = i.config.xaxis.labels.style.fontSize, this.axisFontFamily = i.config.xaxis.labels.style.fontFamily, this.xaxisForeColors = i.config.xaxis.labels.style.colors, this.isCategoryBarHorizontal = 'bar' ===
                i.config.chart.type &&
                i.config.plotOptions.bar.horizontal, this.xAxisoffX = 0, 'bottom' ===
            i.config.xaxis.position &&
            (this.xAxisoffX = i.globals.gridHeight), this.drawnLabels = [], this.axesUtils = new B(
                n);
        }

        return i(e, [
            {
                key: 'drawYaxis', value: function (e) {
                    var t = this, n = this.w, i = new v(this.ctx),
                        a = n.config.yaxis[e].labels.style, r = a.fontSize,
                        o = a.fontFamily, s = a.fontWeight, l = i.group({
                            class: 'apexcharts-yaxis',
                            rel: e,
                            transform: 'translate(' + n.globals.translateYAxisX[e] +
                                ', 0)',
                        });
                    if (this.axesUtils.isYAxisHidden(e)) return l;
                    var c = i.group({ class: 'apexcharts-yaxis-texts-g' });
                    l.add(c);
                    var u = n.globals.yAxisScale[e].result.length - 1,
                        d = n.globals.gridHeight / u, h = n.globals.translateY,
                        f = n.globals.yLabelFormatters[e],
                        p = n.globals.yAxisScale[e].result.slice();
                    p = this.axesUtils.checkForReversedLabels(e, p);
                    var m = '';
                    if (n.config.yaxis[e].labels.show) for (var g = function (l) {
                        var g = p[l];
                        g = f(g, l);
                        var v = n.config.yaxis[e].labels.padding;
                        n.config.yaxis[e].opposite && 0 !==
                        n.config.yaxis.length && (v *= -1);
                        var y = t.axesUtils.getYAxisForeColor(a.colors, e),
                            b = i.drawText({
                                x: v,
                                y: h + u / 10 +
                                    n.config.yaxis[e].labels.offsetY + 1,
                                text: g,
                                textAnchor: n.config.yaxis[e].opposite
                                    ? 'start'
                                    : 'end',
                                fontSize: r,
                                fontFamily: o,
                                fontWeight: s,
                                foreColor: Array.isArray(y) ? y[l] : y,
                                isPlainText: !1,
                                cssClass: 'apexcharts-yaxis-label ' +
                                    a.cssClass,
                            });
                        if (l === u && (m = b), c.add(b), 0 !==
                        n.config.yaxis[e].labels.rotate) {
                            var x = i.rotateAroundCenter(m.node),
                                _ = i.rotateAroundCenter(b.node);
                            b.node.setAttribute('transform', 'rotate('.concat(
                                n.config.yaxis[e].labels.rotate, ' ').
                                concat(x.x, ' ').
                                concat(_.y, ')'));
                        }
                        h += d;
                    }, y = u; y >= 0; y--) g(y);
                    if (void 0 !== n.config.yaxis[e].title.text) {
                        var b = i.group({ class: 'apexcharts-yaxis-title' }),
                            x = 0;
                        n.config.yaxis[e].opposite &&
                        (x = n.globals.translateYAxisX[e]);
                        var _ = i.drawText({
                            x: x,
                            y: n.globals.gridHeight / 2 + n.globals.translateY +
                                n.config.yaxis[e].title.offsetY,
                            text: n.config.yaxis[e].title.text,
                            textAnchor: 'end',
                            foreColor: n.config.yaxis[e].title.style.color,
                            fontSize: n.config.yaxis[e].title.style.fontSize,
                            fontWeight: n.config.yaxis[e].title.style.fontWeight,
                            fontFamily: n.config.yaxis[e].title.style.fontFamily,
                            cssClass: 'apexcharts-yaxis-title-text ' +
                                n.config.yaxis[e].title.style.cssClass,
                        });
                        b.add(_), l.add(b);
                    }
                    var w = n.config.yaxis[e].axisBorder, k = 31 + w.offsetX;
                    if (n.config.yaxis[e].opposite &&
                    (k = -31 - w.offsetX), w.show) {
                        var M = i.drawLine(k,
                            n.globals.translateY + w.offsetY - 2, k,
                            n.globals.gridHeight + n.globals.translateY +
                            w.offsetY + 2, w.color, 0, w.width);
                        l.add(M);
                    }
                    return n.config.yaxis[e].axisTicks.show &&
                    this.axesUtils.drawYAxisTicks(k, u, w,
                        n.config.yaxis[e].axisTicks, e, d, l), l;
                },
            },
            {
                key: 'drawYaxisInversed', value: function (e) {
                    var t = this.w, n = new v(this.ctx), i = n.group(
                        { class: 'apexcharts-xaxis apexcharts-yaxis-inversed' }),
                        a = n.group({
                            class: 'apexcharts-xaxis-texts-g',
                            transform: 'translate('.concat(
                                t.globals.translateXAxisX, ', ').
                                concat(t.globals.translateXAxisY, ')'),
                        });
                    i.add(a);
                    var r = t.globals.yAxisScale[e].result.length - 1,
                        o = t.globals.gridWidth / r + .1,
                        s = o + t.config.xaxis.labels.offsetX,
                        l = t.globals.xLabelFormatter,
                        c = t.globals.yAxisScale[e].result.slice(),
                        u = t.globals.timescaleLabels;
                    u.length > 0 &&
                    (this.xaxisLabels = u.slice(), r = (c = u.slice()).length), c = this.axesUtils.checkForReversedLabels(
                        e, c);
                    var d = u.length;
                    if (t.config.xaxis.labels.show) for (var h = d ? 0 : r; d
                        ? h < d
                        : h >= 0; d ? h++ : h--) {
                        var f = c[h];
                        f = l(f, h);
                        var p = t.globals.gridWidth + t.globals.padHorizontal -
                            (s - o + t.config.xaxis.labels.offsetX);
                        if (u.length) {
                            var m = this.axesUtils.getLabel(c, u, p, h,
                                this.drawnLabels, this.xaxisFontSize);
                            p = m.x, f = m.text, this.drawnLabels.push(
                                m.text), 0 === h &&
                            t.globals.skipFirstTimelinelabel && (f = ''), h ===
                            c.length - 1 && t.globals.skipLastTimelinelabel &&
                            (f = '');
                        }
                        var g = n.drawText({
                            x: p,
                            y: this.xAxisoffX + t.config.xaxis.labels.offsetY +
                                30 - ('top' === t.config.xaxis.position
                                    ? t.globals.xAxisHeight +
                                    t.config.xaxis.axisTicks.height - 2
                                    : 0),
                            text: f,
                            textAnchor: 'middle',
                            foreColor: Array.isArray(this.xaxisForeColors)
                                ? this.xaxisForeColors[e]
                                : this.xaxisForeColors,
                            fontSize: this.xaxisFontSize,
                            fontFamily: this.xaxisFontFamily,
                            fontWeight: t.config.xaxis.labels.style.fontWeight,
                            isPlainText: !1,
                            cssClass: 'apexcharts-xaxis-label ' +
                                t.config.xaxis.labels.style.cssClass,
                        });
                        a.add(g), g.tspan(f);
                        var y = document.createElementNS(t.globals.SVGNS,
                            'title');
                        y.textContent = f, g.node.appendChild(y), s += o;
                    }
                    return this.inversedYAxisTitleText(
                        i), this.inversedYAxisBorder(i), i;
                },
            },
            {
                key: 'inversedYAxisBorder',
                value: function (e) {
                    var t = this.w, n = new v(this.ctx),
                        i = t.config.xaxis.axisBorder;
                    if (i.show) {
                        var a = 0;
                        'bar' === t.config.chart.type && t.globals.isXNumeric &&
                        (a -= 15);
                        var r = n.drawLine(
                            t.globals.padHorizontal + a + i.offsetX,
                            this.xAxisoffX, t.globals.gridWidth, this.xAxisoffX,
                            i.color, 0, i.height);
                        e.add(r);
                    }
                },
            },
            {
                key: 'inversedYAxisTitleText',
                value: function (e) {
                    var t = this.w, n = new v(this.ctx);
                    if (void 0 !== t.config.xaxis.title.text) {
                        var i = n.group(
                            { class: 'apexcharts-xaxis-title apexcharts-yaxis-title-inversed' }),
                            a = n.drawText({
                                x: t.globals.gridWidth / 2 +
                                    t.config.xaxis.title.offsetX,
                                y: this.xAxisoffX +
                                    parseFloat(this.xaxisFontSize) + parseFloat(
                                        t.config.xaxis.title.style.fontSize) +
                                    t.config.xaxis.title.offsetY + 20,
                                text: t.config.xaxis.title.text,
                                textAnchor: 'middle',
                                fontSize: t.config.xaxis.title.style.fontSize,
                                fontFamily: t.config.xaxis.title.style.fontFamily,
                                fontWeight: t.config.xaxis.title.style.fontWeight,
                                foreColor: t.config.xaxis.title.style.color,
                                cssClass: 'apexcharts-xaxis-title-text ' +
                                    t.config.xaxis.title.style.cssClass,
                            });
                        i.add(a), e.add(i);
                    }
                },
            },
            {
                key: 'yAxisTitleRotate',
                value: function (e, t) {
                    var n = this.w, i = new v(this.ctx),
                        a = { width: 0, height: 0 },
                        r = { width: 0, height: 0 },
                        o = n.globals.dom.baseEl.querySelector(
                            ' .apexcharts-yaxis[rel=\''.concat(e,
                                '\'] .apexcharts-yaxis-texts-g'));
                    null !== o && (a = o.getBoundingClientRect());
                    var s = n.globals.dom.baseEl.querySelector(
                        '.apexcharts-yaxis[rel=\''.concat(e,
                            '\'] .apexcharts-yaxis-title text'));
                    if (null !== s && (r = s.getBoundingClientRect()), null !==
                    s) {
                        var l = this.xPaddingForYAxisTitle(e, a, r, t);
                        s.setAttribute('x', l.xPos - (t ? 10 : 0));
                    }
                    if (null !== s) {
                        var c = i.rotateAroundCenter(s);
                        s.setAttribute('transform', 'rotate('.concat(t
                            ? -1 * n.config.yaxis[e].title.rotate
                            : n.config.yaxis[e].title.rotate, ' ').
                            concat(c.x, ' ').
                            concat(c.y, ')'));
                    }
                },
            },
            {
                key: 'xPaddingForYAxisTitle',
                value: function (e, t, n, i) {
                    var a = this.w, r = 0, o = 0, s = 10;
                    return void 0 === a.config.yaxis[e].title.text || e < 0
                        ? { xPos: o, padd: 0 }
                        : (i
                            ? (o = t.width + a.config.yaxis[e].title.offsetX +
                                n.width / 2 + s / 2, 0 === (r += 1) &&
                            (o -= s / 2))
                            : (o = -1 * t.width +
                                a.config.yaxis[e].title.offsetX + s / 2 +
                                n.width / 2, a.globals.isBarHorizontal &&
                            (s = 25, o = -1 * t.width -
                                a.config.yaxis[e].title.offsetX -
                                s)), { xPos: o, padd: s });
                },
            },
            {
                key: 'setYAxisXPosition',
                value: function (e, t) {
                    var n = this.w, i = 0, a = 0, r = 18, o = 1;
                    n.config.yaxis.length > 1 &&
                    (this.multipleYs = !0), n.config.yaxis.map((function (
                        s,
                        l) {
                        var c = n.globals.ignoreYAxisIndexes.indexOf(l) > -1 ||
                            !s.show || s.floating || 0 === e[l].width,
                            u = e[l].width + t[l].width;
                        s.opposite
                            ? n.globals.isBarHorizontal
                            ? (a = n.globals.gridWidth + n.globals.translateX -
                                1, n.globals.translateYAxisX[l] = a -
                                s.labels.offsetX)
                            : (a = n.globals.gridWidth + n.globals.translateX +
                                o, c ||
                            (o = o + u + 20), n.globals.translateYAxisX[l] = a -
                                s.labels.offsetX + 20)
                            : (i = n.globals.translateX - r, c ||
                            (r = r + u + 20), n.globals.translateYAxisX[l] = i +
                            s.labels.offsetX);
                    }));
                },
            },
            {
                key: 'setYAxisTextAlignments',
                value: function () {
                    var e = this.w,
                        t = e.globals.dom.baseEl.getElementsByClassName(
                            'apexcharts-yaxis');
                    (t = p.listToArray(t)).forEach((function (t, n) {
                        var i = e.config.yaxis[n];
                        if (i && void 0 !== i.labels.align) {
                            var a = e.globals.dom.baseEl.querySelector(
                                '.apexcharts-yaxis[rel=\''.concat(n,
                                    '\'] .apexcharts-yaxis-texts-g')),
                                r = e.globals.dom.baseEl.querySelectorAll(
                                    '.apexcharts-yaxis[rel=\''.concat(n,
                                        '\'] .apexcharts-yaxis-label'));
                            r = p.listToArray(r);
                            var o = a.getBoundingClientRect();
                            'left' === i.labels.align
                                ? (r.forEach((function (e, t) {
                                    e.setAttribute('text-anchor', 'start');
                                })), i.opposite || a.setAttribute('transform',
                                'translate(-'.concat(o.width, ', 0)')))
                                : 'center' === i.labels.align ? (r.forEach(
                                (function (e, t) {
                                    e.setAttribute('text-anchor', 'middle');
                                })), a.setAttribute('transform',
                                'translate('.concat(
                                    o.width / 2 * (i.opposite ? 1 : -1),
                                    ', 0)'))) : 'right' === i.labels.align &&
                                (r.forEach((function (e, t) {
                                    e.setAttribute('text-anchor', 'end');
                                })), i.opposite && a.setAttribute('transform',
                                    'translate('.concat(o.width, ', 0)')));
                        }
                    }));
                },
            }]), e;
    }(), G = function () {
        function e (n) {
            t(this, e), this.ctx = n, this.w = n.w, this.documentEvent = p.bind(
                this.documentEvent, this);
        }

        return i(e, [
            {
                key: 'addEventListener', value: function (e, t) {
                    var n = this.w;
                    n.globals.events.hasOwnProperty(e)
                        ? n.globals.events[e].push(t)
                        : n.globals.events[e] = [t];
                },
            },
            {
                key: 'removeEventListener',
                value: function (e, t) {
                    var n = this.w;
                    if (n.globals.events.hasOwnProperty(e)) {
                        var i = n.globals.events[e].indexOf(t);
                        -1 !== i && n.globals.events[e].splice(i, 1);
                    }
                },
            },
            {
                key: 'fireEvent', value: function (e, t) {
                    var n = this.w;
                    if (n.globals.events.hasOwnProperty(e)) {
                        t && t.length || (t = []);
                        for (var i = n.globals.events[e], a = i.length, r = 0; r <
                        a; r++) i[r].apply(null, t);
                    }
                },
            },
            {
                key: 'setupEventHandlers',
                value: function () {
                    var e = this, t = this.w, n = this.ctx,
                        i = t.globals.dom.baseEl.querySelector(
                            t.globals.chartClass);
                    this.ctx.eventList.forEach((function (e) {
                        i.addEventListener(e, (function (e) {
                            var i = Object.assign({}, t, {
                                seriesIndex: t.globals.capturedSeriesIndex,
                                dataPointIndex: t.globals.capturedDataPointIndex,
                            });
                            'mousemove' === e.type || 'touchmove' === e.type
                                ? 'function' ==
                                typeof t.config.chart.events.mouseMove &&
                                t.config.chart.events.mouseMove(e, n, i)
                                : ('mouseup' === e.type && 1 === e.which ||
                                'touchend' === e.type) && ('function' ==
                            typeof t.config.chart.events.click &&
                            t.config.chart.events.click(e, n,
                                i), n.ctx.events.fireEvent('click', [e, n, i]));
                        }), { capture: !1, passive: !0 });
                    })), this.ctx.eventList.forEach((function (n) {
                        t.globals.dom.baseEl.addEventListener(n,
                            e.documentEvent, { passive: !0 });
                    })), this.ctx.core.setupBrushHandler();
                },
            },
            {
                key: 'documentEvent',
                value: function (e) {
                    var t = this.w, n = e.target.className;
                    if ('click' === e.type) {
                        var i = t.globals.dom.baseEl.querySelector(
                            '.apexcharts-menu');
                        i && i.classList.contains('apexcharts-menu-open') &&
                        'apexcharts-menu-icon' !== n &&
                        i.classList.remove('apexcharts-menu-open');
                    }
                    t.globals.clientX = 'touchmove' === e.type
                        ? e.touches[0].clientX
                        : e.clientX, t.globals.clientY = 'touchmove' === e.type
                        ? e.touches[0].clientY
                        : e.clientY;
                },
            }]), e;
    }(), Z = function () {
        function e (n) {t(this, e), this.ctx = n, this.w = n.w;}

        return i(e, [
            {
                key: 'setCurrentLocaleValues',
                value: function (e) {
                    var t = this.w.config.chart.locales;
                    window.Apex.chart && window.Apex.chart.locales &&
                    window.Apex.chart.locales.length > 0 &&
                    (t = this.w.config.chart.locales.concat(
                        window.Apex.chart.locales));
                    var n = t.filter((function (t) {return t.name === e;}))[0];
                    if (!n) throw new Error(
                        'Wrong locale name provided. Please make sure you set the correct locale name in options');
                    var i = p.extend(k, n);
                    this.w.globals.locale = i.options;
                },
            }]), e;
    }(), K = function () {
        function e (n) {t(this, e), this.ctx = n, this.w = n.w;}

        return i(e, [
            {
                key: 'drawAxis',
                value: function (e, t) {
                    var n, i, a = this.w.globals, r = this.w.config,
                        o = new V(this.ctx), s = new $(this.ctx);
                    a.axisCharts && 'radar' !== e && (a.isBarHorizontal
                        ? (i = s.drawYaxisInversed(0), n = o.drawXaxisInversed(
                            0), a.dom.elGraphical.add(n), a.dom.elGraphical.add(
                            i))
                        : (n = o.drawXaxis(), a.dom.elGraphical.add(
                            n), r.yaxis.map((function (e, t) {
                            -1 === a.ignoreYAxisIndexes.indexOf(t) &&
                            (i = s.drawYaxis(t), a.dom.Paper.add(i));
                        })))), r.yaxis.map((function (e, t) {
                        -1 === a.ignoreYAxisIndexes.indexOf(t) &&
                        s.yAxisTitleRotate(t, e.opposite);
                    }));
                },
            }]), e;
    }(), J = function () {
        function e (n) {t(this, e), this.ctx = n, this.w = n.w;}

        return i(e, [
            {
                key: 'drawXCrosshairs', value: function () {
                    var e = this.w, t = new v(this.ctx), n = new m(this.ctx),
                        i = e.config.xaxis.crosshairs.fill.gradient,
                        a = e.config.xaxis.crosshairs.dropShadow,
                        r = e.config.xaxis.crosshairs.fill.type,
                        o = i.colorFrom, s = i.colorTo, l = i.opacityFrom,
                        c = i.opacityTo, u = i.stops, d = a.enabled, h = a.left,
                        f = a.top, g = a.blur, y = a.color, b = a.opacity,
                        x = e.config.xaxis.crosshairs.fill.color;
                    if (e.config.xaxis.crosshairs.show) {
                        'gradient' === r &&
                        (x = t.drawGradient('vertical', o, s, l, c, null, u,
                            null));
                        var _ = t.drawRect();
                        1 === e.config.xaxis.crosshairs.width &&
                        (_ = t.drawLine()), _.attr({
                            class: 'apexcharts-xcrosshairs',
                            x: 0,
                            y: 0,
                            y2: e.globals.gridHeight,
                            width: p.isNumber(e.config.xaxis.crosshairs.width)
                                ? e.config.xaxis.crosshairs.width
                                : 0,
                            height: e.globals.gridHeight,
                            fill: x,
                            filter: 'none',
                            'fill-opacity': e.config.xaxis.crosshairs.opacity,
                            stroke: e.config.xaxis.crosshairs.stroke.color,
                            'stroke-width': e.config.xaxis.crosshairs.stroke.width,
                            'stroke-dasharray': e.config.xaxis.crosshairs.stroke.dashArray,
                        }), d && (_ = n.dropShadow(_, {
                            left: h,
                            top: f,
                            blur: g,
                            color: y,
                            opacity: b,
                        })), e.globals.dom.elGraphical.add(_);
                    }
                },
            },
            {
                key: 'drawYCrosshairs',
                value: function () {
                    var e = this.w, t = new v(this.ctx),
                        n = e.config.yaxis[0].crosshairs,
                        i = e.globals.barPadForNumericAxis;
                    if (e.config.yaxis[0].crosshairs.show) {
                        var a = t.drawLine(-i, 0, e.globals.gridWidth + i, 0,
                            n.stroke.color, n.stroke.dashArray, n.stroke.width);
                        a.attr(
                            { class: 'apexcharts-ycrosshairs' }), e.globals.dom.elGraphical.add(
                            a);
                    }
                    var r = t.drawLine(-i, 0, e.globals.gridWidth + i, 0,
                        n.stroke.color, 0, 0);
                    r.attr(
                        { class: 'apexcharts-ycrosshairs-hidden' }), e.globals.dom.elGraphical.add(
                        r);
                },
            }]), e;
    }(), Q = function () {
        function e (n) {t(this, e), this.ctx = n, this.w = n.w;}

        return i(e, [
            {
                key: 'checkResponsiveConfig',
                value: function (e) {
                    var t = this, n = this.w, i = n.config;
                    if (0 !== i.responsive.length) {
                        var a = i.responsive.slice();
                        a.sort((function (e, t) {
                            return e.breakpoint > t.breakpoint
                                ? 1
                                : t.breakpoint > e.breakpoint ? -1 : 0;
                        })).reverse();
                        var r = new N({}), o = function () {
                            var e = arguments.length > 0 && void 0 !==
                                arguments[0] ? arguments[0] : {},
                                i = a[0].breakpoint, o = window.innerWidth > 0
                                ? window.innerWidth
                                : screen.width;
                            if (o > i) {
                                var s = x.extendArrayProps(r,
                                    n.globals.initialConfig, n);
                                e = p.extend(s, e), e = p.extend(n.config,
                                    e), t.overrideResponsiveOptions(e);
                            } else for (var l = 0; l < a.length; l++) o <
                            a[l].breakpoint &&
                            (e = x.extendArrayProps(r, a[l].options,
                                n), e = p.extend(n.config,
                                e), t.overrideResponsiveOptions(e));
                        };
                        if (e) {
                            var s = x.extendArrayProps(r, e, n);
                            s = p.extend(n.config, s), o(s = p.extend(s, e));
                        } else o({});
                    }
                },
            },
            {
                key: 'overrideResponsiveOptions',
                value: function (e) {
                    var t = new N(e).init({ responsiveOverride: !0 });
                    this.w.config = t;
                },
            }]), e;
    }(), ee = function () {
        function e (n) {
            t(this, e), this.ctx = n, this.colors = [], this.w = n.w;
            var i = this.w;
            this.isColorFn = !1, this.isHeatmapDistributed = 'treemap' ===
                i.config.chart.type &&
                i.config.plotOptions.treemap.distributed || 'heatmap' ===
                i.config.chart.type &&
                i.config.plotOptions.heatmap.distributed, this.isBarDistributed = i.config.plotOptions.bar.distributed &&
                ('bar' === i.config.chart.type || 'rangeBar' ===
                    i.config.chart.type);
        }

        return i(e, [
            { key: 'init', value: function () {this.setDefaultColors();} },
            {
                key: 'setDefaultColors', value: function () {
                    var e = this, t = this.w, n = new p;
                    if (t.globals.dom.elWrap.classList.add(
                        'apexcharts-theme-'.concat(
                            t.config.theme.mode)), void 0 === t.config.colors
                        ? t.globals.colors = this.predefined()
                        : (t.globals.colors = t.config.colors, Array.isArray(
                            t.config.colors) && t.config.colors.length > 0 &&
                        'function' == typeof t.config.colors[0] &&
                        (t.globals.colors = t.config.series.map(
                            (function (n, i) {
                                var a = t.config.colors[i];
                                return a ||
                                (a = t.config.colors[0]), 'function' == typeof a
                                    ? (e.isColorFn = !0, a({
                                        value: t.globals.axisCharts
                                            ? t.globals.series[i][0]
                                                ? t.globals.series[i][0]
                                                : 0
                                            : t.globals.series[i],
                                        seriesIndex: i,
                                        dataPointIndex: i,
                                        w: t,
                                    }))
                                    : a;
                            })))), t.globals.seriesColors.map((function (e, n) {
                        e && (t.globals.colors[n] = e);
                    })), t.config.theme.monochrome.enabled) {
                        var i = [], a = t.globals.series.length;
                        (this.isBarDistributed || this.isHeatmapDistributed) &&
                        (a = t.globals.series[0].length *
                            t.globals.series.length);
                        for (var r = t.config.theme.monochrome.color, o = 1 /
                            (a /
                                t.config.theme.monochrome.shadeIntensity), s = t.config.theme.monochrome.shadeTo, l = 0, c = 0; c <
                             a; c++) {
                            var u = void 0;
                            'dark' === s
                                ? (u = n.shadeColor(-1 * l, r), l += o)
                                : (u = n.shadeColor(l, r), l += o), i.push(u);
                        }
                        t.globals.colors = i.slice();
                    }
                    var d = t.globals.colors.slice();
                    this.pushExtraColors(t.globals.colors), [
                        'fill',
                        'stroke'].forEach((function (n) {
                        void 0 === t.config[n].colors
                            ? t.globals[n].colors = e.isColorFn
                            ? t.config.colors
                            : d
                            : t.globals[n].colors = t.config[n].colors.slice(), e.pushExtraColors(
                            t.globals[n].colors);
                    })), void 0 === t.config.dataLabels.style.colors
                        ? t.globals.dataLabels.style.colors = d
                        : t.globals.dataLabels.style.colors = t.config.dataLabels.style.colors.slice(), this.pushExtraColors(
                        t.globals.dataLabels.style.colors, 50), void 0 ===
                    t.config.plotOptions.radar.polygons.fill.colors
                        ? t.globals.radarPolygons.fill.colors = [
                            'dark' === t.config.theme.mode ? '#424242' : '#fff']
                        : t.globals.radarPolygons.fill.colors = t.config.plotOptions.radar.polygons.fill.colors.slice(), this.pushExtraColors(
                        t.globals.radarPolygons.fill.colors, 20), void 0 ===
                    t.config.markers.colors
                        ? t.globals.markers.colors = d
                        : t.globals.markers.colors = t.config.markers.colors.slice(), this.pushExtraColors(
                        t.globals.markers.colors);
                },
            },
            {
                key: 'pushExtraColors',
                value: function (e, t) {
                    var n = arguments.length > 2 && void 0 !== arguments[2]
                        ? arguments[2]
                        : null, i = this.w, a = t || i.globals.series.length;
                    if (null === n &&
                    (n = this.isBarDistributed || this.isHeatmapDistributed ||
                        'heatmap' === i.config.chart.type &&
                        i.config.plotOptions.heatmap.colorScale.inverse), n &&
                    i.globals.series.length &&
                    (a = i.globals.series[i.globals.maxValsInArrayIndex].length *
                        i.globals.series.length), e.length < a) for (var r = a -
                        e.length, o = 0; o < r; o++) e.push(e[o]);
                },
            },
            {
                key: 'updateThemeOptions',
                value: function (e) {
                    e.chart = e.chart || {}, e.tooltip = e.tooltip || {};
                    var t = e.theme.mode || 'light',
                        n = e.theme.palette ? e.theme.palette : 'dark' === t
                            ? 'palette4'
                            : 'palette1',
                        i = e.chart.foreColor ? e.chart.foreColor : 'dark' === t
                            ? '#f6f7f8'
                            : '#373d3f';
                    return e.tooltip.theme = t, e.chart.foreColor = i, e.theme.palette = n, e;
                },
            },
            {
                key: 'predefined',
                value: function () {
                    switch (this.w.config.theme.palette) {
                        case'palette1':
                            this.colors = [
                                '#008FFB',
                                '#00E396',
                                '#FEB019',
                                '#FF4560',
                                '#775DD0'];
                            break;
                        case'palette2':
                            this.colors = [
                                '#3f51b5',
                                '#03a9f4',
                                '#4caf50',
                                '#f9ce1d',
                                '#FF9800'];
                            break;
                        case'palette3':
                            this.colors = [
                                '#33b2df',
                                '#546E7A',
                                '#d4526e',
                                '#13d8aa',
                                '#A5978B'];
                            break;
                        case'palette4':
                            this.colors = [
                                '#4ecdc4',
                                '#c7f464',
                                '#81D4FA',
                                '#fd6a6a',
                                '#546E7A'];
                            break;
                        case'palette5':
                            this.colors = [
                                '#2b908f',
                                '#f9a3a4',
                                '#90ee7e',
                                '#fa4443',
                                '#69d2e7'];
                            break;
                        case'palette6':
                            this.colors = [
                                '#449DD1',
                                '#F86624',
                                '#EA3546',
                                '#662E9B',
                                '#C5D86D'];
                            break;
                        case'palette7':
                            this.colors = [
                                '#D7263D',
                                '#1B998B',
                                '#2E294E',
                                '#F46036',
                                '#E2C044'];
                            break;
                        case'palette8':
                            this.colors = [
                                '#662E9B',
                                '#F86624',
                                '#F9C80E',
                                '#EA3546',
                                '#43BCCD'];
                            break;
                        case'palette9':
                            this.colors = [
                                '#5C4742',
                                '#A5978B',
                                '#8D5B4C',
                                '#5A2A27',
                                '#C4BBAF'];
                            break;
                        case'palette10':
                            this.colors = [
                                '#A300D6',
                                '#7D02EB',
                                '#5653FE',
                                '#2983FF',
                                '#00B1F2'];
                            break;
                        default:
                            this.colors = [
                                '#008FFB',
                                '#00E396',
                                '#FEB019',
                                '#FF4560',
                                '#775DD0'];
                    }
                    return this.colors;
                },
            }]), e;
    }(), te = function () {
        function e (n) {
            t(this, e), this.ctx = n, this.w = n.w;
        }

        return i(e, [
            {
                key: 'draw',
                value: function () {
                    this.drawTitleSubtitle('title'), this.drawTitleSubtitle(
                        'subtitle');
                },
            },
            {
                key: 'drawTitleSubtitle',
                value: function (e) {
                    var t = this.w,
                        n = 'title' === e ? t.config.title : t.config.subtitle,
                        i = t.globals.svgWidth / 2, a = n.offsetY, r = 'middle';
                    if ('left' === n.align ? (i = 10, r = 'start') : 'right' ===
                        n.align && (i = t.globals.svgWidth -
                            10, r = 'end'), i += n.offsetX, a = a +
                        parseInt(n.style.fontSize, 10) + n.margin /
                        2, void 0 !== n.text) {
                        var o = new v(this.ctx).drawText({
                            x: i,
                            y: a,
                            text: n.text,
                            textAnchor: r,
                            fontSize: n.style.fontSize,
                            fontFamily: n.style.fontFamily,
                            fontWeight: n.style.fontWeight,
                            foreColor: n.style.color,
                            opacity: 1,
                        });
                        o.node.setAttribute('class', 'apexcharts-'.concat(e,
                            '-text')), t.globals.dom.Paper.add(o);
                    }
                },
            }]), e;
    }(), ne = function () {
        function e (n) {t(this, e), this.w = n.w, this.dCtx = n;}

        return i(e, [
            {
                key: 'getTitleSubtitleCoords',
                value: function (e) {
                    var t = this.w, n = 0, i = 0, a = 'title' === e
                        ? t.config.title.floating
                        : t.config.subtitle.floating,
                        r = t.globals.dom.baseEl.querySelector(
                            '.apexcharts-'.concat(e, '-text'));
                    if (null !== r && !a) {
                        var o = r.getBoundingClientRect();
                        n = o.width, i = t.globals.axisCharts
                            ? o.height + 5
                            : o.height;
                    }
                    return { width: n, height: i };
                },
            },
            {
                key: 'getLegendsRect',
                value: function () {
                    var e = this.w, t = e.globals.dom.baseEl.querySelector(
                        '.apexcharts-legend');
                    e.config.legend.height || 'top' !==
                    e.config.legend.position && 'bottom' !==
                    e.config.legend.position ||
                    (t.style.maxHeight = e.globals.svgHeight / 2 + 'px');
                    var n = Object.assign({}, p.getBoundingClientRect(t));
                    return null !== t && !e.config.legend.floating &&
                    e.config.legend.show ? this.dCtx.lgRect = {
                        x: n.x,
                        y: n.y,
                        height: n.height,
                        width: 0 === n.height ? 0 : n.width,
                    } : this.dCtx.lgRect = {
                        x: 0,
                        y: 0,
                        height: 0,
                        width: 0,
                    }, 'left' !== e.config.legend.position && 'right' !==
                    e.config.legend.position || 1.5 * this.dCtx.lgRect.width >
                    e.globals.svgWidth &&
                    (this.dCtx.lgRect.width = e.globals.svgWidth /
                        1.5), this.dCtx.lgRect;
                },
            },
            {
                key: 'getLargestStringFromMultiArr',
                value: function (e, t) {
                    var n = e;
                    if (this.w.globals.isMultiLineX) {
                        var i = t.map((function (e, t) {
                            return Array.isArray(e)
                                ? e.length
                                : 1;
                        })), a = Math.max.apply(Math, h(i));
                        n = t[i.indexOf(a)];
                    }
                    return n;
                },
            }]), e;
    }(), ie = function () {
        function e (n) {t(this, e), this.w = n.w, this.dCtx = n;}

        return i(e, [
            {
                key: 'getxAxisLabelsCoords', value: function () {
                    var e, t = this.w, n = t.globals.labels.slice();
                    if (t.config.xaxis.convertedCatToNumeric && 0 ===
                    n.length &&
                    (n = t.globals.categoryLabels), t.globals.timescaleLabels.length >
                    0) {
                        var i = this.getxAxisTimeScaleLabelsCoords();
                        e = {
                            width: i.width,
                            height: i.height,
                        }, t.globals.rotateXLabels = !1;
                    } else {
                        this.dCtx.lgWidthForSideLegends = 'left' !==
                        t.config.legend.position && 'right' !==
                        t.config.legend.position || t.config.legend.floating
                            ? 0
                            : this.dCtx.lgRect.width;
                        var a = t.globals.xLabelFormatter,
                            r = p.getLargestStringFromArr(n),
                            o = this.dCtx.dimHelpers.getLargestStringFromMultiArr(
                                r, n);
                        t.globals.isBarHorizontal &&
                        (o = r = t.globals.yAxisScale[0].result.reduce(
                            (function (e, t) {
                                return e.length > t.length
                                    ? e
                                    : t;
                            }), 0));
                        var s = new z(this.dCtx.ctx), l = r;
                        r = s.xLabelFormat(a, r, l, {
                            i: void 0,
                            dateFormatter: new P(this.dCtx.ctx).formatDate,
                            w: t,
                        }), o = s.xLabelFormat(a, o, l, {
                            i: void 0,
                            dateFormatter: new P(this.dCtx.ctx).formatDate,
                            w: t,
                        }), (t.config.xaxis.convertedCatToNumeric && void 0 ===
                            r || '' === String(r).trim()) && (o = r = '1');
                        var c = new v(this.dCtx.ctx), u = c.getTextRects(r,
                            t.config.xaxis.labels.style.fontSize), d = u;
                        if (r !== o && (d = c.getTextRects(o,
                            t.config.xaxis.labels.style.fontSize)), (e = {
                            width: u.width >= d.width ? u.width : d.width,
                            height: u.height >= d.height ? u.height : d.height,
                        }).width * n.length > t.globals.svgWidth -
                        this.dCtx.lgWidthForSideLegends - this.dCtx.yAxisWidth -
                        this.dCtx.gridPad.left - this.dCtx.gridPad.right &&
                        0 !== t.config.xaxis.labels.rotate ||
                        t.config.xaxis.labels.rotateAlways) {
                            if (!t.globals.isBarHorizontal) {
                                t.globals.rotateXLabels = !0;
                                var h = function (e) {
                                    return c.getTextRects(e,
                                        t.config.xaxis.labels.style.fontSize,
                                        t.config.xaxis.labels.style.fontFamily,
                                        'rotate('.concat(
                                            t.config.xaxis.labels.rotate,
                                            ' 0 0)'), !1);
                                };
                                u = h(r), r !== o &&
                                (d = h(o)), e.height = (u.height > d.height
                                    ? u.height
                                    : d.height) / 1.5, e.width = u.width >
                                d.width
                                    ? u.width
                                    : d.width;
                            }
                        } else t.globals.rotateXLabels = !1;
                    }
                    return t.config.xaxis.labels.show ||
                    (e = { width: 0, height: 0 }), {
                        width: e.width,
                        height: e.height,
                    };
                },
            },
            {
                key: 'getxAxisTitleCoords',
                value: function () {
                    var e = this.w, t = 0, n = 0;
                    if (void 0 !== e.config.xaxis.title.text) {
                        var i = new v(this.dCtx.ctx).getTextRects(
                            e.config.xaxis.title.text,
                            e.config.xaxis.title.style.fontSize);
                        t = i.width, n = i.height;
                    }
                    return { width: t, height: n };
                },
            },
            {
                key: 'getxAxisTimeScaleLabelsCoords',
                value: function () {
                    var e, t = this.w;
                    this.dCtx.timescaleLabels = t.globals.timescaleLabels.slice();
                    var n = this.dCtx.timescaleLabels.map(
                        (function (e) {return e.value;})), i = n.reduce(
                        (function (e, t) {
                            return void 0 === e
                                ? (console.error(
                                    'You have possibly supplied invalid Date format. Please supply a valid JavaScript Date'), 0)
                                : e.length > t.length ? e : t;
                        }), 0);
                    return 1.05 * (e = new v(this.dCtx.ctx).getTextRects(i,
                        t.config.xaxis.labels.style.fontSize)).width *
                    n.length > t.globals.gridWidth && 0 !==
                    t.config.xaxis.labels.rotate &&
                    (t.globals.overlappingXLabels = !0), e;
                },
            },
            {
                key: 'additionalPaddingXLabels',
                value: function (e) {
                    var t = this, n = this.w, i = n.globals, a = n.config,
                        r = a.xaxis.type, o = e.width;
                    i.skipLastTimelinelabel = !1, i.skipFirstTimelinelabel = !1;
                    var s = n.config.yaxis[0].opposite &&
                        n.globals.isBarHorizontal, l = function (e, a) {
                        (function (e) {
                            return -1 !== i.collapsedSeriesIndices.indexOf(e);
                        })(a) || function (e) {
                            if (t.dCtx.timescaleLabels &&
                                t.dCtx.timescaleLabels.length) {
                                var a = t.dCtx.timescaleLabels[0],
                                    s = t.dCtx.timescaleLabels[t.dCtx.timescaleLabels.length -
                                        1].position + o / 1.75 -
                                        t.dCtx.yAxisWidthRight,
                                    l = a.position - o / 1.75 +
                                        t.dCtx.yAxisWidthLeft;
                                s > i.svgWidth - i.translateX &&
                                (i.skipLastTimelinelabel = !0), l < 0 &&
                                (i.skipFirstTimelinelabel = !0);
                            } else 'datetime' === r ? t.dCtx.gridPad.right <
                                o && !i.rotateXLabels &&
                                (i.skipLastTimelinelabel = !0) : 'datetime' !==
                                r && t.dCtx.gridPad.right < o / 2 -
                                t.dCtx.yAxisWidthRight && !i.rotateXLabels &&
                                ('between' !== n.config.xaxis.tickPlacement ||
                                    n.globals.isBarHorizontal) &&
                                (t.dCtx.xPadRight = o / 2 + 1);
                        }();
                    };
                    a.yaxis.forEach((function (e, n) {
                        s ? (t.dCtx.gridPad.left < o &&
                        (t.dCtx.xPadLeft = o / 2 + 1), t.dCtx.xPadRight = o /
                            2 + 1) : l(0, n);
                    }));
                },
            }]), e;
    }(), ae = function () {
        function e (n) {t(this, e), this.w = n.w, this.dCtx = n;}

        return i(e, [
            {
                key: 'getyAxisLabelsCoords',
                value: function () {
                    var e = this, t = this.w, n = [], i = 10,
                        a = new B(this.dCtx.ctx);
                    return t.config.yaxis.map((function (r, o) {
                        var s = t.globals.yAxisScale[o];
                        if (!a.isYAxisHidden(o) && r.labels.show &&
                            s.result.length) {
                            var l = t.globals.yLabelFormatters[o],
                                c = String(s.niceMin).length >
                                String(s.niceMax).length
                                    ? s.niceMin
                                    : s.niceMax, u = l(c, {
                                    seriesIndex: o,
                                    dataPointIndex: -1,
                                    w: t,
                                }), d = u;
                            if (void 0 !== u && 0 !== u.length ||
                            (u = c), t.globals.isBarHorizontal) {
                                i = 0;
                                var h = t.globals.labels.slice();
                                u = l(u = p.getLargestStringFromArr(h), {
                                    seriesIndex: o,
                                    dataPointIndex: -1,
                                    w: t,
                                }), d = e.dCtx.dimHelpers.getLargestStringFromMultiArr(
                                    u, h);
                            }
                            var f = new v(e.dCtx.ctx), m = f.getTextRects(u,
                                r.labels.style.fontSize), g = m;
                            u !== d && (g = f.getTextRects(d,
                                r.labels.style.fontSize)), n.push({
                                width: (g.width > m.width
                                    ? g.width
                                    : m.width) + i,
                                height: g.height > m.height
                                    ? g.height
                                    : m.height,
                            });
                        } else n.push({ width: 0, height: 0 });
                    })), n;
                },
            },
            {
                key: 'getyAxisTitleCoords',
                value: function () {
                    var e = this, t = this.w, n = [];
                    return t.config.yaxis.map((function (t, i) {
                        if (t.show && void 0 !== t.title.text) {
                            var a = new v(e.dCtx.ctx).getTextRects(t.title.text,
                                t.title.style.fontSize,
                                t.title.style.fontFamily, 'rotate(-90 0 0)',
                                !1);
                            n.push({ width: a.width, height: a.height });
                        } else n.push({ width: 0, height: 0 });
                    })), n;
                },
            },
            {
                key: 'getTotalYAxisWidth',
                value: function () {
                    var e = this.w, t = 0, n = 0, i = 0,
                        a = e.globals.yAxisScale.length > 1 ? 10 : 0,
                        r = new B(this.dCtx.ctx), o = function (o, s) {
                            var l = e.config.yaxis[s].floating, c = 0;
                            o.width > 0 && !l ? (c = o.width + a, function (t) {
                                return e.globals.ignoreYAxisIndexes.indexOf(t) > -1;
                            }(s) && (c = c - o.width - a)) : c = l ||
                            r.isYAxisHidden(s) ? 0 : 5, e.config.yaxis[s].opposite
                                ? i += c
                                : n += c, t += c;
                        };
                    return e.globals.yLabelsCoords.map((function (e, t) {
                        o(e, t);
                    })), e.globals.yTitleCoords.map((function (e, t) {
                        o(e, t);
                    })), e.globals.isBarHorizontal &&
                    !e.config.yaxis[0].floating &&
                    (t = e.globals.yLabelsCoords[0].width +
                        e.globals.yTitleCoords[0].width +
                        15), this.dCtx.yAxisWidthLeft = n, this.dCtx.yAxisWidthRight = i, t;
                },
            }]), e;
    }(), re = function () {
        function e (n) {t(this, e), this.w = n.w, this.dCtx = n;}

        return i(e, [
            {
                key: 'gridPadForColumnsInNumericAxis',
                value: function (e) {
                    var t = this.w;
                    if (t.globals.noData ||
                        t.globals.allSeriesCollapsed) return 0;
                    var n = t.config.chart.type, i = 0,
                        a = 'bar' === n || 'rangeBar' === n
                            ? t.config.series.length
                            : 1;
                    if (t.globals.comboBarCount > 0 &&
                    (a = t.globals.comboBarCount), t.globals.collapsedSeries.forEach(
                        (function (e) {
                            'bar' !== e.type && 'rangeBar' !== e.type ||
                            (a -= 1);
                        })), t.config.chart.stacked && (a = 1), ('bar' === n ||
                        'rangeBar' === n || t.globals.comboBarCount > 0) &&
                    t.globals.isXNumeric && !t.globals.isBarHorizontal && a >
                    0) {
                        var r, o, s = Math.abs(
                            t.globals.initialMaxX - t.globals.initialMinX);
                        s <= 3 && (s = t.globals.dataPoints), r = s /
                            e, t.globals.minXDiff && t.globals.minXDiff / r >
                        0 && (o = t.globals.minXDiff / r), o > e / 2 &&
                        (o /= 2), (i = o / a *
                            parseInt(t.config.plotOptions.bar.columnWidth, 10) /
                            100) < 1 && (i = 1), i = i / (a > 1 ? 1 : 1.5) +
                            5, t.globals.barPadForNumericAxis = i;
                    }
                    return i;
                },
            },
            {
                key: 'gridPadFortitleSubtitle',
                value: function () {
                    var e = this, t = this.w, n = t.globals,
                        i = this.dCtx.isSparkline || !t.globals.axisCharts
                            ? 0
                            : 10;
                    ['title', 'subtitle'].forEach((function (n) {
                        void 0 !== t.config[n].text
                            ? i += t.config[n].margin
                            : i += e.dCtx.isSparkline || !t.globals.axisCharts
                            ? 0
                            : 5;
                    })), !t.config.legend.show || 'bottom' !==
                    t.config.legend.position || t.config.legend.floating ||
                    t.globals.axisCharts || (i += 10);
                    var a = this.dCtx.dimHelpers.getTitleSubtitleCoords(
                        'title'),
                        r = this.dCtx.dimHelpers.getTitleSubtitleCoords(
                            'subtitle');
                    n.gridHeight = n.gridHeight - a.height - r.height -
                        i, n.translateY = n.translateY + a.height + r.height +
                        i;
                },
            },
            {
                key: 'setGridXPosForDualYAxis',
                value: function (e, t) {
                    var n = this.w, i = new B(this.dCtx.ctx);
                    n.config.yaxis.map((function (a, r) {
                        -1 !== n.globals.ignoreYAxisIndexes.indexOf(r) ||
                        a.floating || i.isYAxisHidden(r) || (a.opposite &&
                        (n.globals.translateX = n.globals.translateX -
                            (t[r].width + e[r].width) -
                            parseInt(n.config.yaxis[r].labels.style.fontSize,
                                10) / 1.2 - 12), n.globals.translateX < 2 &&
                        (n.globals.translateX = 2));
                    }));
                },
            }]), e;
    }(), oe = function () {
        function e (n) {
            t(this,
                e), this.ctx = n, this.w = n.w, this.lgRect = {}, this.yAxisWidth = 0, this.yAxisWidthLeft = 0, this.yAxisWidthRight = 0, this.xAxisHeight = 0, this.isSparkline = this.w.config.chart.sparkline.enabled, this.dimHelpers = new ne(
                this), this.dimYAxis = new ae(this), this.dimXAxis = new ie(
                this), this.dimGrid = new re(
                this), this.lgWidthForSideLegends = 0, this.gridPad = this.w.config.grid.padding, this.xPadRight = 0, this.xPadLeft = 0;
        }

        return i(e, [
            {
                key: 'plotCoords', value: function () {
                    var e = this.w.globals;
                    this.lgRect = this.dimHelpers.getLegendsRect(), e.axisCharts
                        ? this.setDimensionsForAxisCharts()
                        : this.setDimensionsForNonAxisCharts(), this.dimGrid.gridPadFortitleSubtitle(), e.gridHeight = e.gridHeight -
                        this.gridPad.top -
                        this.gridPad.bottom, e.gridWidth = e.gridWidth -
                        this.gridPad.left - this.gridPad.right -
                        this.xPadRight - this.xPadLeft;
                    var t = this.dimGrid.gridPadForColumnsInNumericAxis(
                        e.gridWidth);
                    e.gridWidth = e.gridWidth - 2 *
                        t, e.translateX = e.translateX + this.gridPad.left +
                        this.xPadLeft +
                        (t > 0 ? t + 4 : 0), e.translateY = e.translateY +
                        this.gridPad.top;
                },
            },
            {
                key: 'setDimensionsForAxisCharts', value: function () {
                    var e = this, t = this.w, n = t.globals,
                        i = this.dimYAxis.getyAxisLabelsCoords(),
                        a = this.dimYAxis.getyAxisTitleCoords();
                    t.globals.yLabelsCoords = [], t.globals.yTitleCoords = [], t.config.yaxis.map(
                        (function (e, n) {
                            t.globals.yLabelsCoords.push({
                                width: i[n].width,
                                index: n,
                            }), t.globals.yTitleCoords.push(
                                { width: a[n].width, index: n });
                        })), this.yAxisWidth = this.dimYAxis.getTotalYAxisWidth();
                    var r = this.dimXAxis.getxAxisLabelsCoords(),
                        o = this.dimXAxis.getxAxisTitleCoords();
                    this.conditionalChecksForAxisCoords(r,
                        o), n.translateXAxisY = t.globals.rotateXLabels
                        ? this.xAxisHeight / 8
                        : -4, n.translateXAxisX = t.globals.rotateXLabels &&
                    t.globals.isXNumeric && t.config.xaxis.labels.rotate <= -45
                        ? -this.xAxisWidth / 4
                        : 0, t.globals.isBarHorizontal &&
                    (n.rotateXLabels = !1, n.translateXAxisY = parseInt(
                        t.config.xaxis.labels.style.fontSize, 10) / 1.5 *
                        -1), n.translateXAxisY = n.translateXAxisY +
                        t.config.xaxis.labels.offsetY, n.translateXAxisX = n.translateXAxisX +
                        t.config.xaxis.labels.offsetX;
                    var s = this.yAxisWidth, l = this.xAxisHeight;
                    n.xAxisLabelsHeight = this.xAxisHeight, n.xAxisLabelsWidth = this.xAxisWidth, n.xAxisHeight = this.xAxisHeight;
                    var c = 10;
                    ('radar' === t.config.chart.type || this.isSparkline) &&
                    (s = 0, l = n.goldenPadding), this.isSparkline &&
                    (this.lgRect = {
                        height: 0,
                        width: 0,
                    }), (this.isSparkline || 'treemap' ===
                        t.config.chart.type) &&
                    (s = 0, l = 0, c = 0), this.isSparkline ||
                    this.dimXAxis.additionalPaddingXLabels(r);
                    var u = function () {
                        n.translateX = s, n.gridHeight = n.svgHeight -
                            e.lgRect.height - l -
                            (e.isSparkline || 'treemap' === t.config.chart.type
                                ? 0
                                : t.globals.rotateXLabels
                                    ? 10
                                    : 15), n.gridWidth = n.svgWidth - s;
                    };
                    switch ('top' === t.config.xaxis.position &&
                    (c = n.xAxisHeight - t.config.xaxis.axisTicks.height -
                        5), t.config.legend.position) {
                        case'bottom':
                            n.translateY = c, u();
                            break;
                        case'top':
                            n.translateY = this.lgRect.height + c, u();
                            break;
                        case'left':
                            n.translateY = c, n.translateX = this.lgRect.width +
                                s, n.gridHeight = n.svgHeight - l -
                                12, n.gridWidth = n.svgWidth -
                                this.lgRect.width - s;
                            break;
                        case'right':
                            n.translateY = c, n.translateX = s, n.gridHeight = n.svgHeight -
                                l - 12, n.gridWidth = n.svgWidth -
                                this.lgRect.width - s - 5;
                            break;
                        default:
                            throw new Error('Legend position not supported');
                    }
                    this.dimGrid.setGridXPosForDualYAxis(a, i), new $(
                        this.ctx).setYAxisXPosition(i, a);
                },
            },
            {
                key: 'setDimensionsForNonAxisCharts', value: function () {
                    var e = this.w, t = e.globals, n = e.config, i = 0;
                    e.config.legend.show && !e.config.legend.floating &&
                    (i = 20);
                    var a = 'pie' === n.chart.type || 'polarArea' ===
                        n.chart.type || 'donut' === n.chart.type
                        ? 'pie'
                        : 'radialBar', r = n.plotOptions[a].offsetY,
                        o = n.plotOptions[a].offsetX;
                    if (!n.legend.show ||
                        n.legend.floating) return t.gridHeight = t.svgHeight -
                        n.grid.padding.left +
                        n.grid.padding.right, t.gridWidth = t.gridHeight, t.translateY = r, void (t.translateX = o +
                        (t.svgWidth - t.gridWidth) / 2);
                    switch (n.legend.position) {
                        case'bottom':
                            t.gridHeight = t.svgHeight - this.lgRect.height -
                                t.goldenPadding, t.gridWidth = t.svgWidth, t.translateY = r -
                                10, t.translateX = o +
                                (t.svgWidth - t.gridWidth) / 2;
                            break;
                        case'top':
                            t.gridHeight = t.svgHeight - this.lgRect.height -
                                t.goldenPadding, t.gridWidth = t.svgWidth, t.translateY = this.lgRect.height +
                                r + 10, t.translateX = o +
                                (t.svgWidth - t.gridWidth) / 2;
                            break;
                        case'left':
                            t.gridWidth = t.svgWidth - this.lgRect.width -
                                i, t.gridHeight = 'auto' !== n.chart.height
                                ? t.svgHeight
                                : t.gridWidth, t.translateY = r, t.translateX = o +
                                this.lgRect.width + i;
                            break;
                        case'right':
                            t.gridWidth = t.svgWidth - this.lgRect.width - i -
                                5, t.gridHeight = 'auto' !== n.chart.height
                                ? t.svgHeight
                                : t.gridWidth, t.translateY = r, t.translateX = o +
                                10;
                            break;
                        default:
                            throw new Error('Legend position not supported');
                    }
                },
            },
            {
                key: 'conditionalChecksForAxisCoords',
                value: function (e, t) {
                    var n = this.w;
                    this.xAxisHeight = (e.height + t.height) *
                        (n.globals.isMultiLineX
                            ? 1.2
                            : n.globals.LINE_HEIGHT_RATIO) +
                        (n.globals.rotateXLabels
                            ? 22
                            : 10), this.xAxisWidth = e.width, this.xAxisHeight -
                    t.height > n.config.xaxis.labels.maxHeight &&
                    (this.xAxisHeight = n.config.xaxis.labels.maxHeight), n.config.xaxis.labels.minHeight &&
                    this.xAxisHeight < n.config.xaxis.labels.minHeight &&
                    (this.xAxisHeight = n.config.xaxis.labels.minHeight), n.config.xaxis.floating &&
                    (this.xAxisHeight = 0);
                    var i = 0, a = 0;
                    n.config.yaxis.forEach(
                        (function (e) {i += e.labels.minWidth, a += e.labels.maxWidth;})), this.yAxisWidth <
                    i && (this.yAxisWidth = i), this.yAxisWidth > a &&
                    (this.yAxisWidth = a);
                },
            }]), e;
    }(), se = function () {
        function e (n) {t(this, e), this.w = n.w, this.lgCtx = n;}

        return i(e, [
            {
                key: 'getLegendStyles', value: function () {
                    var e = document.createElement('style');
                    e.setAttribute('type', 'text/css');
                    var t = document.createTextNode(
                        '\t\n    \t\n      .apexcharts-legend {\t\n        display: flex;\t\n        overflow: auto;\t\n        padding: 0 10px;\t\n      }\t\n      .apexcharts-legend.position-bottom, .apexcharts-legend.position-top {\t\n        flex-wrap: wrap\t\n      }\t\n      .apexcharts-legend.position-right, .apexcharts-legend.position-left {\t\n        flex-direction: column;\t\n        bottom: 0;\t\n      }\t\n      .apexcharts-legend.position-bottom.apexcharts-align-left, .apexcharts-legend.position-top.apexcharts-align-left, .apexcharts-legend.position-right, .apexcharts-legend.position-left {\t\n        justify-content: flex-start;\t\n      }\t\n      .apexcharts-legend.position-bottom.apexcharts-align-center, .apexcharts-legend.position-top.apexcharts-align-center {\t\n        justify-content: center;  \t\n      }\t\n      .apexcharts-legend.position-bottom.apexcharts-align-right, .apexcharts-legend.position-top.apexcharts-align-right {\t\n        justify-content: flex-end;\t\n      }\t\n      .apexcharts-legend-series {\t\n        cursor: pointer;\t\n        line-height: normal;\t\n      }\t\n      .apexcharts-legend.position-bottom .apexcharts-legend-series, .apexcharts-legend.position-top .apexcharts-legend-series{\t\n        display: flex;\t\n        align-items: center;\t\n      }\t\n      .apexcharts-legend-text {\t\n        position: relative;\t\n        font-size: 14px;\t\n      }\t\n      .apexcharts-legend-text *, .apexcharts-legend-marker * {\t\n        pointer-events: none;\t\n      }\t\n      .apexcharts-legend-marker {\t\n        position: relative;\t\n        display: inline-block;\t\n        cursor: pointer;\t\n        margin-right: 3px;\t\n        border-style: solid;\n      }\t\n      \t\n      .apexcharts-legend.apexcharts-align-right .apexcharts-legend-series, .apexcharts-legend.apexcharts-align-left .apexcharts-legend-series{\t\n        display: inline-block;\t\n      }\t\n      .apexcharts-legend-series.apexcharts-no-click {\t\n        cursor: auto;\t\n      }\t\n      .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {\t\n        display: none !important;\t\n      }\t\n      .apexcharts-inactive-legend {\t\n        opacity: 0.45;\t\n      }');
                    return e.appendChild(t), e;
                },
            },
            {
                key: 'getLegendBBox',
                value: function () {
                    var e = this.w.globals.dom.baseEl.querySelector(
                        '.apexcharts-legend').getBoundingClientRect(),
                        t = e.width;
                    return { clwh: e.height, clww: t };
                },
            },
            {
                key: 'appendToForeignObject',
                value: function () {
                    var e = this.w.globals;
                    e.dom.elLegendForeign = document.createElementNS(e.SVGNS,
                        'foreignObject');
                    var t = e.dom.elLegendForeign;
                    t.setAttribute('x', 0), t.setAttribute('y',
                        0), t.setAttribute('width', e.svgWidth), t.setAttribute(
                        'height', e.svgHeight), e.dom.elLegendWrap.setAttribute(
                        'xmlns', 'http://www.w3.org/1999/xhtml'), t.appendChild(
                        e.dom.elLegendWrap), t.appendChild(
                        this.getLegendStyles()), e.dom.Paper.node.insertBefore(
                        t, e.dom.elGraphical.node);
                },
            },
            {
                key: 'toggleDataSeries', value: function (e, t) {
                    var n = this, i = this.w;
                    if (i.globals.axisCharts || 'radialBar' ===
                        i.config.chart.type) {
                        i.globals.resized = !0;
                        var a = null, r = null;
                        i.globals.risingSeries = [], i.globals.axisCharts
                            ? (a = i.globals.dom.baseEl.querySelector(
                                '.apexcharts-series[data\\:realIndex=\''.concat(
                                    e, '\']')), r = parseInt(
                                a.getAttribute('data:realIndex'), 10))
                            : (a = i.globals.dom.baseEl.querySelector(
                                '.apexcharts-series[rel=\''.concat(e + 1,
                                    '\']')), r = parseInt(a.getAttribute('rel'),
                                10) - 1), t ? [
                            {
                                cs: i.globals.collapsedSeries,
                                csi: i.globals.collapsedSeriesIndices,
                            },
                            {
                                cs: i.globals.ancillaryCollapsedSeries,
                                csi: i.globals.ancillaryCollapsedSeriesIndices,
                            }].forEach((function (e) {
                            n.riseCollapsedSeries(e.cs, e.csi, r);
                        })) : this.hideSeries({ seriesEl: a, realIndex: r });
                    } else {
                        var o = i.globals.dom.Paper.select(
                            ' .apexcharts-series[rel=\''.concat(e + 1,
                                '\'] path')), s = i.config.chart.type;
                        if ('pie' === s || 'polarArea' === s || 'donut' === s) {
                            var l = i.config.plotOptions.pie.donut.labels;
                            new v(this.lgCtx.ctx).pathMouseDown(o.members[0],
                                null), this.lgCtx.ctx.pie.printDataLabelsInner(
                                o.members[0].node, l);
                        }
                        o.fire('click');
                    }
                },
            },
            {
                key: 'hideSeries', value: function (e) {
                    var t = e.seriesEl, n = e.realIndex, i = this.w,
                        a = p.clone(i.config.series);
                    if (i.globals.axisCharts) {
                        var r = !1;
                        if (i.config.yaxis[n] && i.config.yaxis[n].show &&
                        i.config.yaxis[n].showAlways &&
                        (r = !0, i.globals.ancillaryCollapsedSeriesIndices.indexOf(
                            n) < 0 && (i.globals.ancillaryCollapsedSeries.push({
                            index: n,
                            data: a[n].data.slice(),
                            type: t.parentNode.className.baseVal.split('-')[1],
                        }), i.globals.ancillaryCollapsedSeriesIndices.push(
                            n))), !r) {
                            i.globals.collapsedSeries.push({
                                index: n,
                                data: a[n].data.slice(),
                                type: t.parentNode.className.baseVal.split(
                                    '-')[1],
                            }), i.globals.collapsedSeriesIndices.push(n);
                            var o = i.globals.risingSeries.indexOf(n);
                            i.globals.risingSeries.splice(o, 1);
                        }
                    } else i.globals.collapsedSeries.push({
                        index: n,
                        data: a[n],
                    }), i.globals.collapsedSeriesIndices.push(n);
                    for (var s = t.childNodes, l = 0; l <
                    s.length; l++) s[l].classList.contains(
                        'apexcharts-series-markers-wrap') &&
                    (s[l].classList.contains('apexcharts-hide')
                        ? s[l].classList.remove('apexcharts-hide')
                        : s[l].classList.add('apexcharts-hide'));
                    i.globals.allSeriesCollapsed = i.globals.collapsedSeries.length ===
                        i.config.series.length, a = this._getSeriesBasedOnCollapsedState(
                        a), this.lgCtx.ctx.updateHelpers._updateSeries(a,
                        i.config.chart.animations.dynamicAnimation.enabled);
                },
            },
            {
                key: 'riseCollapsedSeries',
                value: function (e, t, n) {
                    var i = this.w, a = p.clone(i.config.series);
                    if (e.length > 0) {
                        for (var r = 0; r < e.length; r++) e[r].index === n &&
                        (i.globals.axisCharts
                            ? (a[n].data = e[r].data.slice(), e.splice(r,
                                1), t.splice(r, 1), i.globals.risingSeries.push(
                                n))
                            : (a[n] = e[r].data, e.splice(r, 1), t.splice(r,
                                1), i.globals.risingSeries.push(n)));
                        a = this._getSeriesBasedOnCollapsedState(
                            a), this.lgCtx.ctx.updateHelpers._updateSeries(a,
                            i.config.chart.animations.dynamicAnimation.enabled);
                    }
                },
            },
            {
                key: '_getSeriesBasedOnCollapsedState',
                value: function (e) {
                    var t = this.w;
                    return t.globals.axisCharts ? e.forEach((function (n, i) {
                        t.globals.collapsedSeriesIndices.indexOf(i) > -1 &&
                        (e[i].data = []);
                    })) : e.forEach((function (n, i) {
                        t.globals.collapsedSeriesIndices.indexOf(i) > -1 &&
                        (e[i] = 0);
                    })), e;
                },
            }]), e;
    }(), le = function () {
        function e (n, i) {
            t(this,
                e), this.ctx = n, this.w = n.w, this.onLegendClick = this.onLegendClick.bind(
                this), this.onLegendHovered = this.onLegendHovered.bind(
                this), this.isBarsDistributed = 'bar' ===
                this.w.config.chart.type &&
                this.w.config.plotOptions.bar.distributed && 1 ===
                this.w.config.series.length, this.legendHelpers = new se(this);
        }

        return i(e, [
            {
                key: 'init',
                value: function () {
                    var e = this.w, t = e.globals, n = e.config;
                    if ((n.legend.showForSingleSeries && 1 ===
                        t.series.length || this.isBarsDistributed ||
                        t.series.length > 1 || !t.axisCharts) &&
                        n.legend.show) {
                        for (; t.dom.elLegendWrap.firstChild;) t.dom.elLegendWrap.removeChild(
                            t.dom.elLegendWrap.firstChild);
                        this.drawLegends(), p.isIE11()
                            ? document.getElementsByTagName(
                                'head')[0].appendChild(
                                this.legendHelpers.getLegendStyles())
                            : this.legendHelpers.appendToForeignObject(), 'bottom' ===
                        n.legend.position || 'top' === n.legend.position
                            ? this.legendAlignHorizontal()
                            : 'right' !== n.legend.position && 'left' !==
                            n.legend.position || this.legendAlignVertical();
                    }
                },
            },
            {
                key: 'drawLegends', value: function () {
                    var e = this, t = this.w, n = t.config.legend.fontFamily,
                        i = t.globals.seriesNames, a = t.globals.colors.slice();
                    if ('heatmap' === t.config.chart.type) {
                        var r = t.config.plotOptions.heatmap.colorScale.ranges;
                        i = r.map((function (e) {
                            return e.name ? e.name : e.from + ' - ' + e.to;
                        })), a = r.map((function (e) {return e.color;}));
                    } else this.isBarsDistributed &&
                    (i = t.globals.labels.slice());
                    for (var o = t.globals.legendFormatter, s = t.config.legend.inverseOrder, l = s
                        ? i.length - 1
                        : 0; s ? l >= 0 : l <= i.length - 1; s ? l-- : l++) {
                        var c = o(i[l], { seriesIndex: l, w: t }), u = !1,
                            d = !1;
                        if (t.globals.collapsedSeries.length >
                            0) for (var h = 0; h <
                        t.globals.collapsedSeries.length; h++) t.globals.collapsedSeries[h].index ===
                        l && (u = !0);
                        if (t.globals.ancillaryCollapsedSeriesIndices.length >
                            0) for (var f = 0; f <
                        t.globals.ancillaryCollapsedSeriesIndices.length; f++) t.globals.ancillaryCollapsedSeriesIndices[f] ===
                        l && (d = !0);
                        var m = document.createElement('span');
                        m.classList.add('apexcharts-legend-marker');
                        var g = t.config.legend.markers.offsetX,
                            y = t.config.legend.markers.offsetY,
                            b = t.config.legend.markers.height,
                            _ = t.config.legend.markers.width,
                            w = t.config.legend.markers.strokeWidth,
                            k = t.config.legend.markers.strokeColor,
                            M = t.config.legend.markers.radius, L = m.style;
                        L.background = a[l], L.color = a[l], L.setProperty(
                            'background', a[l],
                            'important'), t.config.legend.markers.fillColors &&
                        t.config.legend.markers.fillColors[l] &&
                        (L.background = t.config.legend.markers.fillColors[l]), void 0 !==
                        t.globals.seriesColors[l] &&
                        (L.background = t.globals.seriesColors[l], L.color = t.globals.seriesColors[l]), L.height = Array.isArray(
                            b) ? parseFloat(b[l]) + 'px' : parseFloat(b) +
                            'px', L.width = Array.isArray(_) ? parseFloat(
                            _[l]) + 'px' : parseFloat(_) +
                            'px', L.left = Array.isArray(g)
                            ? g[l]
                            : g, L.top = Array.isArray(y)
                            ? y[l]
                            : y, L.borderWidth = Array.isArray(w)
                            ? w[l]
                            : w, L.borderColor = Array.isArray(k)
                            ? k[l]
                            : k, L.borderRadius = Array.isArray(M) ? parseFloat(
                            M[l]) + 'px' : parseFloat(M) +
                            'px', t.config.legend.markers.customHTML &&
                        (Array.isArray(t.config.legend.markers.customHTML)
                            ? t.config.legend.markers.customHTML[l] &&
                            (m.innerHTML = t.config.legend.markers.customHTML[l]())
                            : m.innerHTML = t.config.legend.markers.customHTML()), v.setAttrs(
                            m, { rel: l + 1, 'data:collapsed': u || d }), (u ||
                            d) && m.classList.add('apexcharts-inactive-legend');
                        var S = document.createElement('div'),
                            T = document.createElement('span');
                        T.classList.add(
                            'apexcharts-legend-text'), T.innerHTML = Array.isArray(
                            c) ? c.join(' ') : c;
                        var A = t.config.legend.labels.useSeriesColors
                            ? t.globals.colors[l]
                            : t.config.legend.labels.colors;
                        A ||
                        (A = t.config.chart.foreColor), T.style.color = A, T.style.fontSize = parseFloat(
                            t.config.legend.fontSize) +
                            'px', T.style.fontWeight = t.config.legend.fontWeight, T.style.fontFamily = n ||
                            t.config.chart.fontFamily, v.setAttrs(T, {
                            rel: l + 1,
                            i: l,
                            'data:default-text': encodeURIComponent(c),
                            'data:collapsed': u || d,
                        }), S.appendChild(m), S.appendChild(T);
                        var D = new x(this.ctx);
                        t.config.legend.showForZeroSeries || 0 ===
                        D.getSeriesTotalByIndex(l) &&
                        D.seriesHaveSameValues(l) && !D.isSeriesNull(l) &&
                        -1 === t.globals.collapsedSeriesIndices.indexOf(l) &&
                        -1 ===
                        t.globals.ancillaryCollapsedSeriesIndices.indexOf(l) &&
                        S.classList.add(
                            'apexcharts-hidden-zero-series'), t.config.legend.showForNullSeries ||
                        D.isSeriesNull(l) && -1 ===
                        t.globals.collapsedSeriesIndices.indexOf(l) && -1 ===
                        t.globals.ancillaryCollapsedSeriesIndices.indexOf(l) &&
                        S.classList.add(
                            'apexcharts-hidden-null-series'), t.globals.dom.elLegendWrap.appendChild(
                            S), t.globals.dom.elLegendWrap.classList.add(
                            'apexcharts-align-'.concat(
                                t.config.legend.horizontalAlign)), t.globals.dom.elLegendWrap.classList.add(
                            'position-' +
                            t.config.legend.position), S.classList.add(
                            'apexcharts-legend-series'), S.style.margin = ''.concat(
                            t.config.legend.itemMargin.vertical, 'px ').
                            concat(t.config.legend.itemMargin.horizontal,
                                'px'), t.globals.dom.elLegendWrap.style.width = t.config.legend.width
                            ? t.config.legend.width + 'px'
                            : '', t.globals.dom.elLegendWrap.style.height = t.config.legend.height
                            ? t.config.legend.height + 'px'
                            : '', v.setAttrs(S, {
                            rel: l + 1,
                            seriesName: p.escapeString(i[l]),
                            'data:collapsed': u || d,
                        }), (u || d) && S.classList.add(
                            'apexcharts-inactive-legend'), t.config.legend.onItemClick.toggleDataSeries ||
                        S.classList.add('apexcharts-no-click');
                    }
                    t.globals.dom.elWrap.addEventListener('click',
                        e.onLegendClick,
                        !0), t.config.legend.onItemHover.highlightDataSeries &&
                    (t.globals.dom.elWrap.addEventListener('mousemove',
                        e.onLegendHovered,
                        !0), t.globals.dom.elWrap.addEventListener('mouseout',
                        e.onLegendHovered, !0));
                },
            },
            {
                key: 'setLegendWrapXY',
                value: function (e, t) {
                    var n = this.w, i = n.globals.dom.baseEl.querySelector(
                        '.apexcharts-legend'), a = i.getBoundingClientRect(),
                        r = 0, o = 0;
                    if ('bottom' ===
                        n.config.legend.position) o += n.globals.svgHeight -
                        a.height / 2; else if ('top' ===
                        n.config.legend.position) {
                        var s = new oe(this.ctx),
                            l = s.dimHelpers.getTitleSubtitleCoords(
                                'title').height,
                            c = s.dimHelpers.getTitleSubtitleCoords(
                                'subtitle').height;
                        o = o + (l > 0 ? l - 10 : 0) + (c > 0 ? c - 10 : 0);
                    }
                    i.style.position = 'absolute', r = r + e +
                        n.config.legend.offsetX, o = o + t +
                        n.config.legend.offsetY, i.style.left = r +
                        'px', i.style.top = o + 'px', 'bottom' ===
                    n.config.legend.position
                        ? (i.style.top = 'auto', i.style.bottom = 5 -
                            n.config.legend.offsetY + 'px')
                        : 'right' === n.config.legend.position &&
                        (i.style.left = 'auto', i.style.right = 25 +
                            n.config.legend.offsetX + 'px'), [
                        'width',
                        'height'].forEach((function (e) {
                        i.style[e] &&
                        (i.style[e] = parseInt(n.config.legend[e], 10) + 'px');
                    }));
                },
            },
            {
                key: 'legendAlignHorizontal', value: function () {
                    var e = this.w;
                    e.globals.dom.baseEl.querySelector(
                        '.apexcharts-legend').style.right = 0;
                    var t = this.legendHelpers.getLegendBBox(),
                        n = new oe(this.ctx),
                        i = n.dimHelpers.getTitleSubtitleCoords('title'),
                        a = n.dimHelpers.getTitleSubtitleCoords('subtitle'),
                        r = 0;
                    'bottom' === e.config.legend.position
                        ? r = -t.clwh / 1.8
                        : 'top' === e.config.legend.position &&
                        (r = i.height + a.height + e.config.title.margin +
                            e.config.subtitle.margin -
                            10), this.setLegendWrapXY(20, r);
                },
            },
            {
                key: 'legendAlignVertical',
                value: function () {
                    var e = this.w, t = this.legendHelpers.getLegendBBox(),
                        n = 0;
                    'left' === e.config.legend.position && (n = 20), 'right' ===
                    e.config.legend.position &&
                    (n = e.globals.svgWidth - t.clww -
                        10), this.setLegendWrapXY(n, 20);
                },
            },
            {
                key: 'onLegendHovered',
                value: function (e) {
                    var t = this.w, n = e.target.classList.contains(
                        'apexcharts-legend-text') ||
                        e.target.classList.contains('apexcharts-legend-marker');
                    if ('heatmap' === t.config.chart.type ||
                        this.isBarsDistributed) {
                        if (n) {
                            var i = parseInt(e.target.getAttribute('rel'), 10) -
                                1;
                            this.ctx.events.fireEvent('legendHover',
                                [this.ctx, i, this.w]), new E(
                                this.ctx).highlightRangeInSeries(e, e.target);
                        }
                    } else !e.target.classList.contains(
                        'apexcharts-inactive-legend') && n &&
                    new E(this.ctx).toggleSeriesOnHover(e, e.target);
                },
            },
            {
                key: 'onLegendClick', value: function (e) {
                    var t = this.w;
                    if (e.target.classList.contains('apexcharts-legend-text') ||
                        e.target.classList.contains(
                            'apexcharts-legend-marker')) {
                        var n = parseInt(e.target.getAttribute('rel'), 10) - 1,
                            i = 'true' ===
                                e.target.getAttribute('data:collapsed'),
                            a = this.w.config.chart.events.legendClick;
                        'function' == typeof a &&
                        a(this.ctx, n, this.w), this.ctx.events.fireEvent(
                            'legendClick', [this.ctx, n, this.w]);
                        var r = this.w.config.legend.markers.onClick;
                        'function' == typeof r && e.target.classList.contains(
                            'apexcharts-legend-marker') &&
                        (r(this.ctx, n, this.w), this.ctx.events.fireEvent(
                            'legendMarkerClick',
                            [this.ctx, n, this.w])), 'treemap' !==
                        t.config.chart.type && 'heatmap' !==
                        t.config.chart.type && !this.isBarsDistributed &&
                        t.config.legend.onItemClick.toggleDataSeries &&
                        this.legendHelpers.toggleDataSeries(n, i);
                    }
                },
            }]), e;
    }(), ce = function () {
        function e (n) {
            t(this, e), this.ctx = n, this.w = n.w;
            var i = this.w;
            this.ev = this.w.config.chart.events, this.selectedClass = 'apexcharts-selected', this.localeValues = this.w.globals.locale.toolbar, this.minX = i.globals.minX, this.maxX = i.globals.maxX;
        }

        return i(e, [
            {
                key: 'createToolbar', value: function () {
                    var e = this, t = this.w,
                        n = function () {return document.createElement('div');},
                        i = n();
                    if (i.setAttribute('class',
                        'apexcharts-toolbar'), i.style.top = t.config.chart.toolbar.offsetY +
                        'px', i.style.right = 3 -
                        t.config.chart.toolbar.offsetX +
                        'px', t.globals.dom.elWrap.appendChild(
                        i), this.elZoom = n(), this.elZoomIn = n(), this.elZoomOut = n(), this.elPan = n(), this.elSelection = n(), this.elZoomReset = n(), this.elMenuIcon = n(), this.elMenu = n(), this.elCustomIcons = [], this.t = t.config.chart.toolbar.tools, Array.isArray(
                        this.t.customIcons)) for (var a = 0; a <
                    this.t.customIcons.length; a++) this.elCustomIcons.push(
                        n());
                    var r = [], o = function (n, i, a) {
                        var o = n.toLowerCase();
                        e.t[o] && t.config.chart.zoom.enabled && r.push({
                            el: i,
                            icon: 'string' == typeof e.t[o] ? e.t[o] : a,
                            title: e.localeValues[n],
                            class: 'apexcharts-'.concat(o, '-icon'),
                        });
                    };
                    o('zoomIn', this.elZoomIn,
                        '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">\n    <path d="M0 0h24v24H0z" fill="none"/>\n    <path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\n</svg>\n'), o(
                        'zoomOut', this.elZoomOut,
                        '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">\n    <path d="M0 0h24v24H0z" fill="none"/>\n    <path d="M7 11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\n</svg>\n');
                    var s = function (n) {
                        e.t[n] && t.config.chart[n].enabled && r.push({
                            el: 'zoom' === n ? e.elZoom : e.elSelection,
                            icon: 'string' == typeof e.t[n]
                                ? e.t[n]
                                : 'zoom' === n
                                    ? '<svg xmlns="http://www.w3.org/2000/svg" fill="#000000" height="24" viewBox="0 0 24 24" width="24">\n    <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>\n    <path d="M0 0h24v24H0V0z" fill="none"/>\n    <path d="M12 10h-2v2H9v-2H7V9h2V7h1v2h2v1z"/>\n</svg>'
                                    : '<svg fill="#6E8192" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">\n    <path d="M0 0h24v24H0z" fill="none"/>\n    <path d="M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2z"/>\n</svg>',
                            title: e.localeValues['zoom' === n
                                ? 'selectionZoom'
                                : 'selection'],
                            class: t.globals.isTouchDevice
                                ? 'apexcharts-element-hidden'
                                : 'apexcharts-'.concat(n, '-icon'),
                        });
                    };
                    s('zoom'), s('selection'), this.t.pan &&
                    t.config.chart.zoom.enabled && r.push({
                        el: this.elPan,
                        icon: 'string' == typeof this.t.pan
                            ? this.t.pan
                            : '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#000000" height="24" viewBox="0 0 24 24" width="24">\n    <defs>\n        <path d="M0 0h24v24H0z" id="a"/>\n    </defs>\n    <clipPath id="b">\n        <use overflow="visible" xlink:href="#a"/>\n    </clipPath>\n    <path clip-path="url(#b)" d="M23 5.5V20c0 2.2-1.8 4-4 4h-7.3c-1.08 0-2.1-.43-2.85-1.19L1 14.83s1.26-1.23 1.3-1.25c.22-.19.49-.29.79-.29.22 0 .42.06.6.16.04.01 4.31 2.46 4.31 2.46V4c0-.83.67-1.5 1.5-1.5S11 3.17 11 4v7h1V1.5c0-.83.67-1.5 1.5-1.5S15 .67 15 1.5V11h1V2.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V11h1V5.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5z"/>\n</svg>',
                        title: this.localeValues.pan,
                        class: t.globals.isTouchDevice
                            ? 'apexcharts-element-hidden'
                            : 'apexcharts-pan-icon',
                    }), o('reset', this.elZoomReset,
                        '<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">\n    <path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/>\n    <path d="M0 0h24v24H0z" fill="none"/>\n</svg>'), this.t.download &&
                    r.push({
                        el: this.elMenuIcon,
                        icon: 'string' == typeof this.t.download
                            ? this.t.download
                            : '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg>',
                        title: this.localeValues.menu,
                        class: 'apexcharts-menu-icon',
                    });
                    for (var l = 0; l < this.elCustomIcons.length; l++) r.push({
                        el: this.elCustomIcons[l],
                        icon: this.t.customIcons[l].icon,
                        title: this.t.customIcons[l].title,
                        index: this.t.customIcons[l].index,
                        class: 'apexcharts-toolbar-custom-icon ' +
                            this.t.customIcons[l].class,
                    });
                    r.forEach((function (e, t) {
                        e.index && p.moveIndexInArray(r, t, e.index);
                    }));
                    for (var c = 0; c < r.length; c++) v.setAttrs(r[c].el, {
                        class: r[c].class,
                        title: r[c].title,
                    }), r[c].el.innerHTML = r[c].icon, i.appendChild(r[c].el);
                    this._createHamburgerMenu(i), t.globals.zoomEnabled
                        ? this.elZoom.classList.add(this.selectedClass)
                        : t.globals.panEnabled ? this.elPan.classList.add(
                            this.selectedClass) : t.globals.selectionEnabled &&
                            this.elSelection.classList.add(
                                this.selectedClass), this.addToolbarEventListeners();
                },
            },
            {
                key: '_createHamburgerMenu',
                value: function (e) {
                    this.elMenuItems = [], e.appendChild(
                        this.elMenu), v.setAttrs(this.elMenu,
                        { class: 'apexcharts-menu' });
                    var t = [
                        {
                            name: 'exportSVG',
                            title: this.localeValues.exportToSVG,
                        },
                        {
                            name: 'exportPNG',
                            title: this.localeValues.exportToPNG,
                        },
                        {
                            name: 'exportCSV',
                            title: this.localeValues.exportToCSV,
                        }];
                    this.w.globals.allSeriesHasEqualX || t.splice(2, 1);
                    for (var n = 0; n < t.length; n++) this.elMenuItems.push(
                        document.createElement(
                            'div')), this.elMenuItems[n].innerHTML = t[n].title, v.setAttrs(
                        this.elMenuItems[n], {
                            class: 'apexcharts-menu-item '.concat(t[n].name),
                            title: t[n].title,
                        }), this.elMenu.appendChild(this.elMenuItems[n]);
                },
            },
            {
                key: 'addToolbarEventListeners', value: function () {
                    var e = this;
                    this.elZoomReset.addEventListener('click',
                        this.handleZoomReset.bind(
                            this)), this.elSelection.addEventListener('click',
                        this.toggleZoomSelection.bind(this,
                            'selection')), this.elZoom.addEventListener('click',
                        this.toggleZoomSelection.bind(this,
                            'zoom')), this.elZoomIn.addEventListener('click',
                        this.handleZoomIn.bind(
                            this)), this.elZoomOut.addEventListener('click',
                        this.handleZoomOut.bind(
                            this)), this.elPan.addEventListener('click',
                        this.togglePanning.bind(
                            this)), this.elMenuIcon.addEventListener('click',
                        this.toggleMenu.bind(this)), this.elMenuItems.forEach(
                        (function (t) {
                            t.classList.contains('exportSVG')
                                ? t.addEventListener('click',
                                e.handleDownload.bind(e, 'svg'))
                                : t.classList.contains('exportPNG')
                                ? t.addEventListener('click',
                                    e.handleDownload.bind(e, 'png'))
                                : t.classList.contains('exportCSV') &&
                                t.addEventListener('click',
                                    e.handleDownload.bind(e, 'csv'));
                        }));
                    for (var t = 0; t <
                    this.t.customIcons.length; t++) this.elCustomIcons[t].addEventListener(
                        'click',
                        this.t.customIcons[t].click.bind(this, this.ctx,
                            this.ctx.w));
                },
            },
            {
                key: 'toggleZoomSelection',
                value: function (e) {
                    this.ctx.getSyncedCharts().
                        forEach((function (t) {
                            t.ctx.toolbar.toggleOtherControls();
                            var n = 'selection' === e
                                ? t.ctx.toolbar.elSelection
                                : t.ctx.toolbar.elZoom, i = 'selection' === e
                                ? 'selectionEnabled'
                                : 'zoomEnabled';
                            t.w.globals[i] = !t.w.globals[i], n.classList.contains(
                                t.ctx.toolbar.selectedClass)
                                ? n.classList.remove(
                                    t.ctx.toolbar.selectedClass)
                                : n.classList.add(t.ctx.toolbar.selectedClass);
                        }));
                },
            },
            {
                key: 'getToolbarIconsReference',
                value: function () {
                    var e = this.w;
                    this.elZoom ||
                    (this.elZoom = e.globals.dom.baseEl.querySelector(
                        '.apexcharts-zoom-icon')), this.elPan ||
                    (this.elPan = e.globals.dom.baseEl.querySelector(
                        '.apexcharts-pan-icon')), this.elSelection ||
                    (this.elSelection = e.globals.dom.baseEl.querySelector(
                        '.apexcharts-selection-icon'));
                },
            },
            {
                key: 'enableZoomPanFromToolbar',
                value: function (e) {
                    this.toggleOtherControls(), 'pan' === e
                        ? this.w.globals.panEnabled = !0
                        : this.w.globals.zoomEnabled = !0;
                    var t = 'pan' === e ? this.elPan : this.elZoom,
                        n = 'pan' === e ? this.elZoom : this.elPan;
                    t && t.classList.add(this.selectedClass), n &&
                    n.classList.remove(this.selectedClass);
                },
            },
            {
                key: 'togglePanning',
                value: function () {
                    this.ctx.getSyncedCharts().
                        forEach((function (e) {
                            e.ctx.toolbar.toggleOtherControls(), e.w.globals.panEnabled = !e.w.globals.panEnabled, e.ctx.toolbar.elPan.classList.contains(
                                e.ctx.toolbar.selectedClass)
                                ? e.ctx.toolbar.elPan.classList.remove(
                                    e.ctx.toolbar.selectedClass)
                                : e.ctx.toolbar.elPan.classList.add(
                                    e.ctx.toolbar.selectedClass);
                        }));
                },
            },
            {
                key: 'toggleOtherControls',
                value: function () {
                    var e = this, t = this.w;
                    t.globals.panEnabled = !1, t.globals.zoomEnabled = !1, t.globals.selectionEnabled = !1, this.getToolbarIconsReference(), [
                        this.elPan,
                        this.elSelection,
                        this.elZoom].forEach((function (t) {
                        t && t.classList.remove(e.selectedClass);
                    }));
                },
            },
            {
                key: 'handleZoomIn', value: function () {
                    var e = this.w;
                    e.globals.isTimelineBar &&
                    (this.minX = e.globals.minY, this.maxX = e.globals.maxY);
                    var t = (this.minX + this.maxX) / 2,
                        n = (this.minX + t) / 2, i = (this.maxX + t) / 2,
                        a = this._getNewMinXMaxX(n, i);
                    e.globals.disableZoomIn ||
                    this.zoomUpdateOptions(a.minX, a.maxX);
                },
            },
            {
                key: 'handleZoomOut', value: function () {
                    var e = this.w;
                    if (e.globals.isTimelineBar &&
                    (this.minX = e.globals.minY, this.maxX = e.globals.maxY), !('datetime' ===
                        e.config.xaxis.type &&
                        new Date(this.minX).getUTCFullYear() < 1e3)) {
                        var t = (this.minX + this.maxX) / 2,
                            n = this.minX - (t - this.minX),
                            i = this.maxX - (t - this.maxX),
                            a = this._getNewMinXMaxX(n, i);
                        e.globals.disableZoomOut ||
                        this.zoomUpdateOptions(a.minX, a.maxX);
                    }
                },
            },
            {
                key: '_getNewMinXMaxX',
                value: function (
                    e, t) {
                    var n = this.w.config.xaxis.convertedCatToNumeric;
                    return {
                        minX: n ? Math.floor(e) : e,
                        maxX: n ? Math.floor(t) : t,
                    };
                },
            },
            {
                key: 'zoomUpdateOptions', value: function (e, t) {
                    var n = this.w;
                    if (void 0 !== e || void 0 !== t) {
                        if (!(n.config.xaxis.convertedCatToNumeric &&
                            (e < 1 && (e = 1, t = n.globals.dataPoints), t - e <
                            2))) {
                            var i = { min: e, max: t },
                                a = this.getBeforeZoomRange(i);
                            a && (i = a.xaxis);
                            var r = { xaxis: i },
                                o = p.clone(n.globals.initialConfig.yaxis);
                            n.config.chart.zoom.autoScaleYaxis &&
                            (o = new U(this.ctx).autoScaleY(this.ctx, o,
                                { xaxis: i })), n.config.chart.group ||
                            (r.yaxis = o), this.w.globals.zoomed = !0, this.ctx.updateHelpers._updateOptions(
                                r, !1,
                                this.w.config.chart.animations.dynamicAnimation.enabled), this.zoomCallback(
                                i, o);
                        }
                    } else this.handleZoomReset();
                },
            },
            {
                key: 'zoomCallback',
                value: function (e, t) {
                    'function' == typeof this.ev.zoomed &&
                    this.ev.zoomed(this.ctx, { xaxis: e, yaxis: t });
                },
            },
            {
                key: 'getBeforeZoomRange', value: function (e, t) {
                    var n = null;
                    return 'function' == typeof this.ev.beforeZoom &&
                    (n = this.ev.beforeZoom(this, { xaxis: e, yaxis: t })), n;
                },
            },
            {
                key: 'toggleMenu', value: function () {
                    var e = this;
                    window.setTimeout((function () {
                        e.elMenu.classList.contains('apexcharts-menu-open')
                            ? e.elMenu.classList.remove('apexcharts-menu-open')
                            : e.elMenu.classList.add('apexcharts-menu-open');
                    }), 0);
                },
            },
            {
                key: 'handleDownload',
                value: function (e) {
                    var t = this.w, n = new W(this.ctx);
                    switch (e) {
                        case'svg':
                            n.exportToSVG(this.ctx);
                            break;
                        case'png':
                            n.exportToPng(this.ctx);
                            break;
                        case'csv':
                            n.exportToCSV({
                                series: t.config.series,
                                columnDelimiter: t.config.chart.toolbar.export.csv.columnDelimiter,
                            });
                    }
                },
            },
            {
                key: 'handleZoomReset',
                value: function (e) {
                    this.ctx.getSyncedCharts().
                        forEach((function (e) {
                            var t = e.w;
                            if (t.globals.lastXAxis.min = void 0, t.globals.lastXAxis.max = void 0, e.updateHelpers.revertDefaultAxisMinMax(), 'function' ==
                            typeof t.config.chart.events.beforeResetZoom) {
                                var n = t.config.chart.events.beforeResetZoom(e,
                                    t);
                                n && e.updateHelpers.revertDefaultAxisMinMax(n);
                            }
                            'function' == typeof t.config.chart.events.zoomed &&
                            e.ctx.toolbar.zoomCallback({
                                min: t.config.xaxis.min,
                                max: t.config.xaxis.max,
                            }), t.globals.zoomed = !1;
                            var i = e.ctx.series.emptyCollapsedSeries(
                                p.clone(t.globals.initialSeries));
                            e.updateHelpers._updateSeries(i,
                                t.config.chart.animations.dynamicAnimation.enabled);
                        }));
                },
            },
            {
                key: 'destroy',
                value: function () {this.elZoom = null, this.elZoomIn = null, this.elZoomOut = null, this.elPan = null, this.elSelection = null, this.elZoomReset = null, this.elMenuIcon = null;},
            }]), e;
    }(), ue = function (e) {
        s(a, e);
        var n = d(a);

        function a (e) {
            var i;
            return t(this, a), (i = n.call(this,
                e)).ctx = e, i.w = e.w, i.dragged = !1, i.graphics = new v(
                i.ctx), i.eventList = [
                'mousedown',
                'mouseleave',
                'mousemove',
                'touchstart',
                'touchmove',
                'mouseup',
                'touchend'], i.clientX = 0, i.clientY = 0, i.startX = 0, i.endX = 0, i.dragX = 0, i.startY = 0, i.endY = 0, i.dragY = 0, i.moveDirection = 'none', i;
        }

        return i(a, [
            {
                key: 'init', value: function (e) {
                    var t = this, n = e.xyRatios, i = this.w, a = this;
                    this.xyRatios = n, this.zoomRect = this.graphics.drawRect(0,
                        0, 0, 0), this.selectionRect = this.graphics.drawRect(0,
                        0, 0,
                        0), this.gridRect = i.globals.dom.baseEl.querySelector(
                        '.apexcharts-grid'), this.zoomRect.node.classList.add(
                        'apexcharts-zoom-rect'), this.selectionRect.node.classList.add(
                        'apexcharts-selection-rect'), i.globals.dom.elGraphical.add(
                        this.zoomRect), i.globals.dom.elGraphical.add(
                        this.selectionRect), 'x' ===
                    i.config.chart.selection.type
                        ? this.slDraggableRect = this.selectionRect.draggable({
                            minX: 0,
                            minY: 0,
                            maxX: i.globals.gridWidth,
                            maxY: i.globals.gridHeight,
                        }).
                            on('dragmove',
                                this.selectionDragging.bind(this, 'dragging'))
                        : 'y' === i.config.chart.selection.type
                            ? this.slDraggableRect = this.selectionRect.draggable(
                                { minX: 0, maxX: i.globals.gridWidth }).
                                on('dragmove', this.selectionDragging.bind(this,
                                    'dragging'))
                            : this.slDraggableRect = this.selectionRect.draggable().
                                on('dragmove', this.selectionDragging.bind(this,
                                    'dragging')), this.preselectedSelection(), this.hoverArea = i.globals.dom.baseEl.querySelector(
                        ''.concat(i.globals.chartClass,
                            ' .apexcharts-svg')), this.hoverArea.classList.add(
                        'apexcharts-zoomable'), this.eventList.forEach(
                        (function (e) {
                            t.hoverArea.addEventListener(e,
                                a.svgMouseEvents.bind(a, n),
                                { capture: !1, passive: !0 });
                        }));
                },
            },
            {
                key: 'destroy',
                value: function () {
                    this.slDraggableRect && (this.slDraggableRect.draggable(
                        !1), this.slDraggableRect.off(), this.selectionRect.off()), this.selectionRect = null, this.zoomRect = null, this.gridRect = null;
                },
            },
            {
                key: 'svgMouseEvents', value: function (e, t) {
                    var n = this.w, i = this, a = this.ctx.toolbar,
                        r = n.globals.zoomEnabled
                            ? n.config.chart.zoom.type
                            : n.config.chart.selection.type,
                        o = n.config.chart.toolbar.autoSelected;
                    t.shiftKey
                        ? (this.shiftWasPressed = !0, a.enableZoomPanFromToolbar(
                        'pan' === o ? 'zoom' : 'pan'))
                        : this.shiftWasPressed && (a.enableZoomPanFromToolbar(
                        o), this.shiftWasPressed = !1);
                    var s = t.target.classList;
                    if (!(s.contains('apexcharts-selection-rect') ||
                        s.contains('apexcharts-legend-marker') ||
                        s.contains('apexcharts-legend-text') ||
                        t.target.parentNode.classList.contains(
                            'apexcharts-toolbar'))) {
                        if (i.clientX = 'touchmove' === t.type ||
                        'touchstart' === t.type
                            ? t.touches[0].clientX
                            : 'touchend' === t.type
                                ? t.changedTouches[0].clientX
                                : t.clientX, i.clientY = 'touchmove' ===
                        t.type || 'touchstart' === t.type
                            ? t.touches[0].clientY
                            : 'touchend' === t.type
                                ? t.changedTouches[0].clientY
                                : t.clientY, 'mousedown' === t.type && 1 ===
                        t.which) {
                            var l = i.gridRect.getBoundingClientRect();
                            i.startX = i.clientX -
                                l.left, i.startY = i.clientY -
                                l.top, i.dragged = !1, i.w.globals.mousedown = !0;
                        }
                        if (('mousemove' === t.type && 1 === t.which ||
                            'touchmove' === t.type) &&
                        (i.dragged = !0, n.globals.panEnabled
                            ? (n.globals.selection = null, i.w.globals.mousedown &&
                            i.panDragging(
                                { context: i, zoomtype: r, xyRatios: e }))
                            : (i.w.globals.mousedown && n.globals.zoomEnabled ||
                            i.w.globals.mousedown &&
                            n.globals.selectionEnabled) &&
                            (i.selection = i.selectionDrawing(
                                { context: i, zoomtype: r }))), 'mouseup' ===
                        t.type || 'touchend' === t.type || 'mouseleave' ===
                        t.type) {
                            var c = i.gridRect.getBoundingClientRect();
                            i.w.globals.mousedown &&
                            (i.endX = i.clientX - c.left, i.endY = i.clientY -
                                c.top, i.dragX = Math.abs(
                                i.endX - i.startX), i.dragY = Math.abs(
                                i.endY - i.startY), (n.globals.zoomEnabled ||
                                n.globals.selectionEnabled) && i.selectionDrawn(
                                {
                                    context: i,
                                    zoomtype: r,
                                }), n.globals.panEnabled &&
                            n.config.xaxis.convertedCatToNumeric &&
                            i.delayedPanScrolled()), n.globals.zoomEnabled &&
                            i.hideSelectionRect(
                                this.selectionRect), i.dragged = !1, i.w.globals.mousedown = !1;
                        }
                        this.makeSelectionRectDraggable();
                    }
                },
            },
            {
                key: 'makeSelectionRectDraggable',
                value: function () {
                    var e = this.w;
                    if (this.selectionRect) {
                        var t = this.selectionRect.node.getBoundingClientRect();
                        t.width > 0 && t.height > 0 &&
                        this.slDraggableRect.selectize({
                            points: 'l, r',
                            pointSize: 8,
                            pointType: 'rect',
                        }).
                            resize({
                                constraint: {
                                    minX: 0,
                                    minY: 0,
                                    maxX: e.globals.gridWidth,
                                    maxY: e.globals.gridHeight,
                                },
                            }).
                            on('resizing',
                                this.selectionDragging.bind(this, 'resizing'));
                    }
                },
            },
            {
                key: 'preselectedSelection',
                value: function () {
                    var e = this.w, t = this.xyRatios;
                    if (!e.globals.zoomEnabled) if (void 0 !==
                        e.globals.selection && null !==
                        e.globals.selection) this.drawSelectionRect(
                        e.globals.selection); else if (void 0 !==
                        e.config.chart.selection.xaxis.min && void 0 !==
                        e.config.chart.selection.xaxis.max) {
                        var n = (e.config.chart.selection.xaxis.min -
                            e.globals.minX) / t.xRatio, i = {
                            x: n,
                            y: 0,
                            width: e.globals.gridWidth - (e.globals.maxX -
                                e.config.chart.selection.xaxis.max) / t.xRatio -
                                n,
                            height: e.globals.gridHeight,
                            translateX: 0,
                            translateY: 0,
                            selectionEnabled: !0,
                        };
                        this.drawSelectionRect(
                            i), this.makeSelectionRectDraggable(), 'function' ==
                        typeof e.config.chart.events.selection &&
                        e.config.chart.events.selection(this.ctx, {
                            xaxis: {
                                min: e.config.chart.selection.xaxis.min,
                                max: e.config.chart.selection.xaxis.max,
                            }, yaxis: {},
                        });
                    }
                },
            },
            {
                key: 'drawSelectionRect', value: function (e) {
                    var t = e.x, n = e.y, i = e.width, a = e.height,
                        r = e.translateX, o = void 0 === r ? 0 : r,
                        s = e.translateY, l = void 0 === s ? 0 : s, c = this.w,
                        u = this.zoomRect, d = this.selectionRect;
                    if (this.dragged || null !== c.globals.selection) {
                        var h = {
                            transform: 'translate(' + o + ', ' + l + ')',
                        };
                        c.globals.zoomEnabled && this.dragged &&
                        (i < 0 && (i = 1), u.attr({
                            x: t,
                            y: n,
                            width: i,
                            height: a,
                            fill: c.config.chart.zoom.zoomedArea.fill.color,
                            'fill-opacity': c.config.chart.zoom.zoomedArea.fill.opacity,
                            stroke: c.config.chart.zoom.zoomedArea.stroke.color,
                            'stroke-width': c.config.chart.zoom.zoomedArea.stroke.width,
                            'stroke-opacity': c.config.chart.zoom.zoomedArea.stroke.opacity,
                        }), v.setAttrs(u.node,
                            h)), c.globals.selectionEnabled && (d.attr({
                            x: t,
                            y: n,
                            width: i > 0 ? i : 0,
                            height: a > 0 ? a : 0,
                            fill: c.config.chart.selection.fill.color,
                            'fill-opacity': c.config.chart.selection.fill.opacity,
                            stroke: c.config.chart.selection.stroke.color,
                            'stroke-width': c.config.chart.selection.stroke.width,
                            'stroke-dasharray': c.config.chart.selection.stroke.dashArray,
                            'stroke-opacity': c.config.chart.selection.stroke.opacity,
                        }), v.setAttrs(d.node, h));
                    }
                },
            },
            {
                key: 'hideSelectionRect',
                value: function (e) {
                    e && e.attr({ x: 0, y: 0, width: 0, height: 0 });
                },
            },
            {
                key: 'selectionDrawing',
                value: function (e) {
                    var t, n = e.context, i = e.zoomtype, a = this.w, r = n,
                        o = this.gridRect.getBoundingClientRect(),
                        s = r.startX - 1, l = r.startY, c = !1, u = !1,
                        d = r.clientX - o.left - s, h = r.clientY - o.top - l;
                    return Math.abs(d + s) > a.globals.gridWidth
                        ? d = a.globals.gridWidth - s
                        : r.clientX - o.left < 0 && (d = s), s > r.clientX -
                    o.left && (c = !0, d = Math.abs(d)), l > r.clientY -
                    o.top && (u = !0, h = Math.abs(h)), t = 'x' === i ? {
                        x: c
                            ? s - d
                            : s, y: 0, width: d, height: a.globals.gridHeight,
                    } : 'y' === i ? {
                        x: 0,
                        y: u ? l - h : l,
                        width: a.globals.gridWidth,
                        height: h,
                    } : {
                        x: c ? s - d : s,
                        y: u ? l - h : l,
                        width: d,
                        height: h,
                    }, r.drawSelectionRect(t), r.selectionDragging(
                        'resizing'), t;
                },
            },
            {
                key: 'selectionDragging',
                value: function (e, t) {
                    var n = this, i = this.w, a = this.xyRatios,
                        r = this.selectionRect, o = 0;
                    'resizing' === e && (o = 30);
                    var s = function (e) {
                        return parseFloat(r.node.getAttribute(e));
                    }, l = {
                        x: s('x'),
                        y: s('y'),
                        width: s('width'),
                        height: s('height'),
                    };
                    i.globals.selection = l, 'function' ==
                    typeof i.config.chart.events.selection &&
                    i.globals.selectionEnabled && (clearTimeout(
                        this.w.globals.selectionResizeTimer), this.w.globals.selectionResizeTimer = window.setTimeout(
                        (function () {
                            var e = n.gridRect.getBoundingClientRect(),
                                t = r.node.getBoundingClientRect(), o = {
                                    xaxis: {
                                        min: i.globals.xAxisScale.niceMin +
                                            (t.left - e.left) * a.xRatio,
                                        max: i.globals.xAxisScale.niceMin +
                                            (t.right - e.left) * a.xRatio,
                                    },
                                    yaxis: {
                                        min: i.globals.yAxisScale[0].niceMin +
                                            (e.bottom - t.bottom) * a.yRatio[0],
                                        max: i.globals.yAxisScale[0].niceMax -
                                            (t.top - e.top) * a.yRatio[0],
                                    },
                                };
                            i.config.chart.events.selection(n.ctx,
                                o), i.config.chart.brush.enabled && void 0 !==
                            i.config.chart.events.brushScrolled &&
                            i.config.chart.events.brushScrolled(n.ctx, o);
                        }), o));
                },
            },
            {
                key: 'selectionDrawn', value: function (e) {
                    var t = e.context, n = e.zoomtype, i = this.w, a = t,
                        r = this.xyRatios, o = this.ctx.toolbar;
                    if (a.startX > a.endX) {
                        var s = a.startX;
                        a.startX = a.endX, a.endX = s;
                    }
                    if (a.startY > a.endY) {
                        var l = a.startY;
                        a.startY = a.endY, a.endY = l;
                    }
                    var c = void 0, u = void 0;
                    i.globals.isTimelineBar
                        ? (c = i.globals.yAxisScale[0].niceMin + a.startX *
                        r.invertedYRatio, u = i.globals.yAxisScale[0].niceMin +
                        a.endX * r.invertedYRatio)
                        : (c = i.globals.xAxisScale.niceMin + a.startX *
                        r.xRatio, u = i.globals.xAxisScale.niceMin + a.endX *
                        r.xRatio);
                    var d = [], h = [];
                    if (i.config.yaxis.forEach((function (e, t) {
                        d.push(i.globals.yAxisScale[t].niceMax - r.yRatio[t] *
                            a.startY), h.push(
                            i.globals.yAxisScale[t].niceMax - r.yRatio[t] *
                            a.endY);
                    })), a.dragged && (a.dragX > 10 || a.dragY > 10) && c !==
                    u) if (i.globals.zoomEnabled) {
                        var f = p.clone(i.globals.initialConfig.yaxis),
                            m = p.clone(i.globals.initialConfig.xaxis);
                        if (i.globals.zoomed = !0, i.config.xaxis.convertedCatToNumeric &&
                        (c = Math.floor(c), u = Math.floor(u), c < 1 &&
                        (c = 1, u = i.globals.dataPoints), u - c < 2 &&
                        (u = c + 1)), 'xy' !== n && 'x' !== n ||
                        (m = { min: c, max: u }), 'xy' !== n && 'y' !== n ||
                        f.forEach((function (
                            e,
                            t) {f[t].min = h[t], f[t].max = d[t];})), i.config.chart.zoom.autoScaleYaxis) {
                            var g = new U(a.ctx);
                            f = g.autoScaleY(a.ctx, f, { xaxis: m });
                        }
                        if (o) {
                            var v = o.getBeforeZoomRange(m, f);
                            v && (m = v.xaxis ? v.xaxis : m, f = v.yaxis
                                ? v.yaxis
                                : f);
                        }
                        var y = { xaxis: m };
                        i.config.chart.group ||
                        (y.yaxis = f), a.ctx.updateHelpers._updateOptions(y, !1,
                            a.w.config.chart.animations.dynamicAnimation.enabled), 'function' ==
                        typeof i.config.chart.events.zoomed &&
                        o.zoomCallback(m, f);
                    } else if (i.globals.selectionEnabled) {
                        var b, x = null;
                        b = { min: c, max: u }, 'xy' !== n && 'y' !== n ||
                        (x = p.clone(i.config.yaxis)).forEach((function (
                            e,
                            t) {x[t].min = h[t], x[t].max = d[t];})), i.globals.selection = a.selection, 'function' ==
                        typeof i.config.chart.events.selection &&
                        i.config.chart.events.selection(a.ctx,
                            { xaxis: b, yaxis: x });
                    }
                },
            },
            {
                key: 'panDragging',
                value: function (e) {
                    var t = e.context, n = this.w, i = t;
                    if (void 0 !== n.globals.lastClientPosition.x) {
                        var a = n.globals.lastClientPosition.x - i.clientX,
                            r = n.globals.lastClientPosition.y - i.clientY;
                        Math.abs(a) > Math.abs(r) && a > 0
                            ? this.moveDirection = 'left'
                            : Math.abs(a) > Math.abs(r) && a < 0
                            ? this.moveDirection = 'right'
                            : Math.abs(r) > Math.abs(a) && r > 0
                                ? this.moveDirection = 'up'
                                : Math.abs(r) > Math.abs(a) && r < 0 &&
                                (this.moveDirection = 'down');
                    }
                    n.globals.lastClientPosition = {
                        x: i.clientX,
                        y: i.clientY,
                    };
                    var o = n.globals.isTimelineBar
                        ? n.globals.minY
                        : n.globals.minX, s = n.globals.isTimelineBar
                        ? n.globals.maxY
                        : n.globals.maxX;
                    n.config.xaxis.convertedCatToNumeric || i.panScrolled(o, s);
                },
            },
            {
                key: 'delayedPanScrolled',
                value: function () {
                    var e = this.w, t = e.globals.minX, n = e.globals.maxX,
                        i = (e.globals.maxX - e.globals.minX) / 2;
                    'left' === this.moveDirection ? (t = e.globals.minX +
                        i, n = e.globals.maxX + i) : 'right' ===
                        this.moveDirection &&
                        (t = e.globals.minX - i, n = e.globals.maxX -
                            i), t = Math.floor(t), n = Math.floor(
                        n), this.updateScrolledChart(
                        { xaxis: { min: t, max: n } }, t, n);
                },
            },
            {
                key: 'panScrolled',
                value: function (e, t) {
                    var n = this.w, i = this.xyRatios,
                        a = p.clone(n.globals.initialConfig.yaxis),
                        r = i.xRatio, o = n.globals.minX, s = n.globals.maxX;
                    n.globals.isTimelineBar &&
                    (r = i.invertedYRatio, o = n.globals.minY, s = n.globals.maxY), 'left' ===
                    this.moveDirection ? (e = o + n.globals.gridWidth / 15 *
                        r, t = s + n.globals.gridWidth / 15 * r) : 'right' ===
                        this.moveDirection &&
                        (e = o - n.globals.gridWidth / 15 * r, t = s -
                            n.globals.gridWidth / 15 *
                            r), n.globals.isTimelineBar ||
                    (e < n.globals.initialMinX || t > n.globals.initialMaxX) &&
                    (e = o, t = s);
                    var l = { min: e, max: t };
                    n.config.chart.zoom.autoScaleYaxis &&
                    (a = new U(this.ctx).autoScaleY(this.ctx, a, { xaxis: l }));
                    var c = { xaxis: { min: e, max: t } };
                    n.config.chart.group ||
                    (c.yaxis = a), this.updateScrolledChart(c, e, t);
                },
            },
            {
                key: 'updateScrolledChart',
                value: function (e, t, n) {
                    var i = this.w;
                    this.ctx.updateHelpers._updateOptions(e, !1,
                        !1), 'function' ==
                    typeof i.config.chart.events.scrolled &&
                    i.config.chart.events.scrolled(this.ctx,
                        { xaxis: { min: t, max: n } });
                },
            }]), a;
    }(ce), de = function () {
        function e (n) {
            t(this, e), this.w = n.w, this.ttCtx = n, this.ctx = n.ctx;
        }

        return i(e, [
            {
                key: 'getNearestValues', value: function (e) {
                    var t = e.hoverArea, n = e.elGrid, i = e.clientX,
                        a = e.clientY, r = this.w, o = r.globals.gridWidth,
                        s = o / (r.globals.dataPoints - 1),
                        l = n.getBoundingClientRect(), c = this.hasBars();
                    !r.globals.comboCharts && !c ||
                    r.config.xaxis.convertedCatToNumeric ||
                    (s = o / r.globals.dataPoints);
                    var u = i - l.left - r.globals.barPadForNumericAxis,
                        d = a - l.top;
                    u < 0 || d < 0 || u > r.globals.gridWidth || d >
                    r.globals.gridHeight
                        ? (t.classList.remove(
                        'hovering-zoom'), t.classList.remove('hovering-pan'))
                        : r.globals.zoomEnabled
                        ? (t.classList.remove('hovering-pan'), t.classList.add(
                            'hovering-zoom'))
                        : r.globals.panEnabled &&
                        (t.classList.remove('hovering-zoom'), t.classList.add(
                            'hovering-pan'));
                    var h = Math.round(u / s);
                    c && !r.config.xaxis.convertedCatToNumeric &&
                    (h = Math.ceil(u / s), h -= 1);
                    for (var f, m = null, g = null, v = [], y = 0; y <
                    r.globals.seriesXvalues.length; y++) v.push(
                        [r.globals.seriesXvalues[y][0] - 1e-6].concat(
                            r.globals.seriesXvalues[y]));
                    return v = v.map((function (e) {
                        return e.filter((function (e) {return e;}));
                    })), f = r.globals.seriesYvalues.map((function (e) {
                        return e.filter((function (e) {return p.isNumber(e);}));
                    })), r.globals.isXNumeric &&
                    (m = (g = this.closestInMultiArray(u, d, v,
                        f)).index, h = g.j, null !== m &&
                    (v = r.globals.seriesXvalues[m], h = (g = this.closestInArray(
                        u, v)).index)), r.globals.capturedSeriesIndex = null ===
                    m ? -1 : m, (!h || h < 1) &&
                    (h = 0), r.globals.capturedDataPointIndex = h, {
                        capturedSeries: m,
                        j: h,
                        hoverX: u,
                        hoverY: d,
                    };
                },
            },
            {
                key: 'closestInMultiArray',
                value: function (e, t, n, i) {
                    var a = this.w, r = 0, o = null, s = -1;
                    a.globals.series.length > 1 ? r = this.getFirstActiveXArray(
                        n) : o = 0;
                    var l = i[r][0], c = n[r][0], u = Math.abs(e - c),
                        d = Math.abs(t - l), h = d + u;
                    return i.map((function (a, r) {
                        a.map((function (a, l) {
                            var c = Math.abs(t - i[r][l]),
                                f = Math.abs(e - n[r][l]), p = f + c;
                            p < h && (h = p, u = f, d = c, o = r, s = l);
                        }));
                    })), { index: o, j: s };
                },
            },
            {
                key: 'getFirstActiveXArray',
                value: function (e) {
                    for (var t = 0, n = e.map((function (e, t) {
                        return e.length > 0
                            ? t
                            : -1;
                    })), i = 0; i < n.length; i++) if (-1 !== n[i]) {
                        t = n[i];
                        break;
                    }
                    return t;
                },
            },
            {
                key: 'closestInArray',
                value: function (
                    e, t) {
                    for (var n = t[0], i = null, a = Math.abs(e - n), r = 0; r <
                    t.length; r++) {
                        var o = Math.abs(e - t[r]);
                        o < a && (a = o, i = r);
                    }
                    return { index: i };
                },
            },
            {
                key: 'isXoverlap',
                value: function (e) {
                    var t = [], n = this.w.globals.seriesX.filter(
                        (function (e) {return void 0 !== e[0];}));
                    if (n.length > 0) for (var i = 0; i < n.length -
                    1; i++) void 0 !== n[i][e] && void 0 !== n[i + 1][e] &&
                    n[i][e] !== n[i + 1][e] && t.push('unEqual');
                    return 0 === t.length;
                },
            },
            {
                key: 'isInitialSeriesSameLen',
                value: function () {
                    for (var e = !0, t = this.w.globals.initialSeries, n = 0; n <
                    t.length - 1; n++) if (t[n].data.length !==
                        t[n + 1].data.length) {
                        e = !1;
                        break;
                    }
                    return e;
                },
            },
            {
                key: 'getBarsHeight',
                value: function (e) {
                    return h(e).
                        reduce(
                            (function (e, t) {return e + t.getBBox().height;}),
                            0);
                },
            },
            {
                key: 'getElMarkers',
                value: function () {
                    return this.w.globals.dom.baseEl.querySelectorAll(
                        ' .apexcharts-series-markers');
                },
            },
            {
                key: 'getAllMarkers',
                value: function () {
                    var e = this.w.globals.dom.baseEl.querySelectorAll(
                        '.apexcharts-series-markers-wrap');
                    (e = h(e)).sort((function (e, t) {
                        return Number(t.getAttribute('data:realIndex')) <
                        Number(e.getAttribute('data:realIndex')) ? 0 : -1;
                    }));
                    var t = [];
                    return e.forEach((function (e) {
                        t.push(e.querySelector('.apexcharts-marker'));
                    })), t;
                },
            },
            {
                key: 'hasMarkers',
                value: function () {return this.getElMarkers().length > 0;},
            },
            {
                key: 'getElBars',
                value: function () {
                    return this.w.globals.dom.baseEl.querySelectorAll(
                        '.apexcharts-bar-series,  .apexcharts-candlestick-series, .apexcharts-rangebar-series');
                },
            },
            {
                key: 'hasBars',
                value: function () {return this.getElBars().length > 0;},
            },
            {
                key: 'getHoverMarkerSize',
                value: function (e) {
                    var t = this.w, n = t.config.markers.hover.size;
                    return void 0 === n && (n = t.globals.markers.size[e] +
                        t.config.markers.hover.sizeOffset), n;
                },
            },
            {
                key: 'toggleAllTooltipSeriesGroups',
                value: function (e) {
                    var t = this.w, n = this.ttCtx;
                    0 === n.allTooltipSeriesGroups.length &&
                    (n.allTooltipSeriesGroups = t.globals.dom.baseEl.querySelectorAll(
                        '.apexcharts-tooltip-series-group'));
                    for (var i = n.allTooltipSeriesGroups, a = 0; a <
                    i.length; a++) 'enable' === e
                        ? (i[a].classList.add(
                            'apexcharts-active'), i[a].style.display = t.config.tooltip.items.display)
                        : (i[a].classList.remove(
                            'apexcharts-active'), i[a].style.display = 'none');
                },
            }]), e;
    }(), he = function () {
        function e (n) {
            t(this,
                e), this.w = n.w, this.ctx = n.ctx, this.ttCtx = n, this.tooltipUtil = new de(
                n);
        }

        return i(e, [
            {
                key: 'drawSeriesTexts',
                value: function (e) {
                    var t = e.shared, n = void 0 === t || t, i = e.ttItems,
                        a = e.i, r = void 0 === a ? 0 : a, o = e.j,
                        s = void 0 === o ? null : o, l = e.y1, c = e.y2,
                        u = e.e, d = this.w;
                    void 0 !== d.config.tooltip.custom
                        ? this.handleCustomTooltip(
                        { i: r, j: s, y1: l, y2: c, w: d })
                        : this.toggleActiveInactiveSeries(n);
                    var h = this.getValuesToPrint({ i: r, j: s });
                    this.printLabels(
                        { i: r, j: s, values: h, ttItems: i, shared: n, e: u });
                    var f = this.ttCtx.getElTooltip();
                    this.ttCtx.tooltipRect.ttWidth = f.getBoundingClientRect().width, this.ttCtx.tooltipRect.ttHeight = f.getBoundingClientRect().height;
                },
            },
            {
                key: 'printLabels', value: function (e) {
                    var t, n = this, i = e.i, a = e.j, r = e.values,
                        s = e.ttItems, l = e.shared, c = e.e, u = this.w,
                        d = r.xVal, h = r.zVal, f = r.xAxisTTVal, p = '',
                        m = u.globals.colors[i];
                    null !== a && u.config.plotOptions.bar.distributed &&
                    (m = u.globals.colors[a]);
                    for (var g = function (e, r) {
                        var g = n.getFormatters(i);
                        p = n.getSeriesName({
                            fn: g.yLbTitleFormatter,
                            index: i,
                            seriesIndex: i,
                            j: a,
                        }), 'treemap' === u.config.chart.type &&
                        (p = g.yLbTitleFormatter(
                            String(u.config.series[i].data[a].x), {
                                series: u.globals.series,
                                seriesIndex: i,
                                dataPointIndex: a,
                                w: u,
                            }));
                        var v = u.config.tooltip.inverseOrder ? r : e;
                        if (u.globals.axisCharts) {
                            var y = function (e) {
                                return g.yLbFormatter(u.globals.series[e][a], {
                                    series: u.globals.series,
                                    seriesIndex: e,
                                    dataPointIndex: a,
                                    w: u,
                                });
                            };
                            l ? (g = n.getFormatters(v), p = n.getSeriesName({
                                fn: g.yLbTitleFormatter,
                                index: v,
                                seriesIndex: i,
                                j: a,
                            }), m = u.globals.colors[v], t = y(v)) : (c &&
                            c.target && c.target.getAttribute('fill') &&
                            (m = c.target.getAttribute('fill')), t = y(i));
                        }
                        null === a && (t = g.yLbFormatter(u.globals.series[i],
                            o(o({}, u), {}, {
                                seriesIndex: i,
                                dataPointIndex: i,
                            }))), n.DOMHandling({
                            i: i,
                            t: v,
                            j: a,
                            ttItems: s,
                            values: { val: t, xVal: d, xAxisTTVal: f, zVal: h },
                            seriesName: p,
                            shared: l,
                            pColor: m,
                        });
                    }, v = 0, y = u.globals.series.length - 1; v <
                         u.globals.series.length; v++, y--) g(v, y);
                },
            },
            {
                key: 'getFormatters',
                value: function (e) {
                    var t, n = this.w, i = n.globals.yLabelFormatters[e];
                    return void 0 !== n.globals.ttVal
                        ? Array.isArray(n.globals.ttVal)
                            ? (i = n.globals.ttVal[e] &&
                                n.globals.ttVal[e].formatter, t = n.globals.ttVal[e] &&
                                n.globals.ttVal[e].title &&
                                n.globals.ttVal[e].title.formatter)
                            : (i = n.globals.ttVal.formatter, 'function' ==
                            typeof n.globals.ttVal.title.formatter &&
                            (t = n.globals.ttVal.title.formatter))
                        : t = n.config.tooltip.y.title.formatter, 'function' !=
                    typeof i && (i = n.globals.yLabelFormatters[0]
                        ? n.globals.yLabelFormatters[0]
                        : function (e) {return e;}), 'function' != typeof t &&
                    (t = function (e) {return e;}), {
                        yLbFormatter: i,
                        yLbTitleFormatter: t,
                    };
                },
            },
            {
                key: 'getSeriesName',
                value: function (e) {
                    var t = e.fn, n = e.index, i = e.seriesIndex, a = e.j,
                        r = this.w;
                    return t(String(r.globals.seriesNames[n]), {
                        series: r.globals.series,
                        seriesIndex: i,
                        dataPointIndex: a,
                        w: r,
                    });
                },
            },
            {
                key: 'DOMHandling', value: function (e) {
                    e.i;
                    var t = e.t, n = (e.j, e.ttItems), i = e.values,
                        a = e.seriesName, r = e.shared, o = e.pColor,
                        s = this.w, l = this.ttCtx, c = i.val, u = i.xVal,
                        d = i.xAxisTTVal, h = i.zVal, f = null;
                    f = n[t].children, s.config.tooltip.fillSeriesColor &&
                    (n[t].style.backgroundColor = o, f[0].style.display = 'none'), l.showTooltipTitle &&
                    (null === l.tooltipTitle &&
                    (l.tooltipTitle = s.globals.dom.baseEl.querySelector(
                        '.apexcharts-tooltip-title')), l.tooltipTitle.innerHTML = u), l.blxaxisTooltip &&
                    (l.xaxisTooltipText.innerHTML = '' !== d ? d : u);
                    var p = n[t].querySelector(
                        '.apexcharts-tooltip-text-label');
                    p && (p.innerHTML = a || '');
                    var m = n[t].querySelector(
                        '.apexcharts-tooltip-text-value');
                    m && (m.innerHTML = void 0 !== c ? c : ''), f[0] &&
                    f[0].classList.contains('apexcharts-tooltip-marker') &&
                    (s.config.tooltip.marker.fillColors &&
                    Array.isArray(s.config.tooltip.marker.fillColors) &&
                    (o = s.config.tooltip.marker.fillColors[t]), f[0].style.backgroundColor = o), s.config.tooltip.marker.show ||
                    (f[0].style.display = 'none'), null !== h &&
                    (n[t].querySelector(
                        '.apexcharts-tooltip-text-z-label').innerHTML = s.config.tooltip.z.title, n[t].querySelector(
                        '.apexcharts-tooltip-text-z-value').innerHTML = void 0 !==
                    h ? h : ''), r && f[0] &&
                    (null == c || s.globals.collapsedSeriesIndices.indexOf(t) >
                    -1
                        ? f[0].parentNode.style.display = 'none'
                        : f[0].parentNode.style.display = s.config.tooltip.items.display);
                },
            },
            {
                key: 'toggleActiveInactiveSeries',
                value: function (e) {
                    var t = this.w;
                    if (e) this.tooltipUtil.toggleAllTooltipSeriesGroups(
                        'enable'); else {
                        this.tooltipUtil.toggleAllTooltipSeriesGroups(
                            'disable');
                        var n = t.globals.dom.baseEl.querySelector(
                            '.apexcharts-tooltip-series-group');
                        n && (n.classList.add(
                            'apexcharts-active'), n.style.display = t.config.tooltip.items.display);
                    }
                },
            },
            {
                key: 'getValuesToPrint', value: function (e) {
                    var t = e.i, n = e.j, i = this.w,
                        a = this.ctx.series.filteredSeriesX(), r = '', o = '',
                        s = null, l = null, c = {
                            series: i.globals.series,
                            seriesIndex: t,
                            dataPointIndex: n,
                            w: i,
                        }, u = i.globals.ttZFormatter;
                    null === n
                        ? l = i.globals.series[t]
                        : i.globals.isXNumeric && 'treemap' !==
                        i.config.chart.type
                        ? (r = a[t][n], 0 === a[t].length &&
                        (r = a[this.tooltipUtil.getFirstActiveXArray(a)][n]))
                        : r = void 0 !== i.globals.labels[n]
                            ? i.globals.labels[n]
                            : '';
                    var d = r;
                    return r = i.globals.isXNumeric && 'datetime' ===
                    i.config.xaxis.type ? new z(this.ctx).xLabelFormat(
                        i.globals.ttKeyFormatter, d, d, {
                            i: void 0,
                            dateFormatter: new P(this.ctx).formatDate,
                            w: this.w,
                        }) : i.globals.isBarHorizontal
                        ? i.globals.yLabelFormatters[0](d, c)
                        : i.globals.xLabelFormatter(d, c), void 0 !==
                    i.config.tooltip.x.formatter &&
                    (r = i.globals.ttKeyFormatter(d,
                        c)), i.globals.seriesZ.length > 0 &&
                    i.globals.seriesZ[t].length > 0 &&
                    (s = u(i.globals.seriesZ[t][n], i)), o = 'function' ==
                    typeof i.config.xaxis.tooltip.formatter
                        ? i.globals.xaxisTooltipFormatter(d, c)
                        : r, {
                        val: Array.isArray(l) ? l.join(' ') : l,
                        xVal: Array.isArray(r) ? r.join(' ') : r,
                        xAxisTTVal: Array.isArray(o) ? o.join(' ') : o,
                        zVal: s,
                    };
                },
            },
            {
                key: 'handleCustomTooltip',
                value: function (e) {
                    var t = e.i, n = e.j, i = e.y1, a = e.y2, r = e.w,
                        o = this.ttCtx.getElTooltip(),
                        s = r.config.tooltip.custom;
                    Array.isArray(s) && s[t] && (s = s[t]), o.innerHTML = s({
                        ctx: this.ctx,
                        series: r.globals.series,
                        seriesIndex: t,
                        dataPointIndex: n,
                        y1: i,
                        y2: a,
                        w: r,
                    });
                },
            }]), e;
    }(), fe = function () {
        function e (n) {
            t(this, e), this.ttCtx = n, this.ctx = n.ctx, this.w = n.w;
        }

        return i(e, [
            {
                key: 'moveXCrosshairs',
                value: function (e) {
                    var t = arguments.length > 1 && void 0 !== arguments[1]
                        ? arguments[1]
                        : null, n = this.ttCtx, i = this.w,
                        a = n.getElXCrosshairs(),
                        r = e - n.xcrosshairsWidth / 2,
                        o = i.globals.labels.slice().length;
                    if (null !== t &&
                    (r = i.globals.gridWidth / o * t), null !== a &&
                    (a.setAttribute('x', r), a.setAttribute('x1',
                        r), a.setAttribute('x2', r), a.setAttribute('y2',
                        i.globals.gridHeight), a.classList.add(
                        'apexcharts-active')), r < 0 && (r = 0), r >
                    i.globals.gridWidth &&
                    (r = i.globals.gridWidth), n.blxaxisTooltip) {
                        var s = r;
                        'tickWidth' !== i.config.xaxis.crosshairs.width &&
                        'barWidth' !== i.config.xaxis.crosshairs.width ||
                        (s = r + n.xcrosshairsWidth / 2), this.moveXAxisTooltip(
                            s);
                    }
                },
            },
            {
                key: 'moveYCrosshairs', value: function (e) {
                    var t = this.ttCtx;
                    null !== t.ycrosshairs &&
                    v.setAttrs(t.ycrosshairs, { y1: e, y2: e }), null !==
                    t.ycrosshairsHidden &&
                    v.setAttrs(t.ycrosshairsHidden, { y1: e, y2: e });
                },
            },
            {
                key: 'moveXAxisTooltip',
                value: function (e) {
                    var t = this.w, n = this.ttCtx;
                    if (null !== n.xaxisTooltip) {
                        n.xaxisTooltip.classList.add('apexcharts-active');
                        var i,
                            a = n.xaxisOffY + t.config.xaxis.tooltip.offsetY +
                                t.globals.translateY + 1 +
                                t.config.xaxis.offsetY;
                        if (e -= n.xaxisTooltip.getBoundingClientRect().width /
                            2, !isNaN(e)) e += t.globals.translateX, i = new v(
                            this.ctx).getTextRects(
                            n.xaxisTooltipText.innerHTML), n.xaxisTooltipText.style.minWidth = i.width +
                            'px', n.xaxisTooltip.style.left = e +
                            'px', n.xaxisTooltip.style.top = a + 'px';
                    }
                },
            },
            {
                key: 'moveYAxisTooltip',
                value: function (e) {
                    var t = this.w, n = this.ttCtx;
                    null === n.yaxisTTEls &&
                    (n.yaxisTTEls = t.globals.dom.baseEl.querySelectorAll(
                        '.apexcharts-yaxistooltip'));
                    var i = parseInt(n.ycrosshairsHidden.getAttribute('y1'),
                        10), a = t.globals.translateY + i,
                        r = n.yaxisTTEls[e].getBoundingClientRect().height,
                        o = t.globals.translateYAxisX[e] - 2;
                    t.config.yaxis[e].opposite && (o -= 26), a -= r / 2, -1 ===
                    t.globals.ignoreYAxisIndexes.indexOf(e)
                        ? (n.yaxisTTEls[e].classList.add(
                            'apexcharts-active'), n.yaxisTTEls[e].style.top = a +
                            'px', n.yaxisTTEls[e].style.left = o +
                            t.config.yaxis[e].tooltip.offsetX + 'px')
                        : n.yaxisTTEls[e].classList.remove('apexcharts-active');
                },
            },
            {
                key: 'moveTooltip',
                value: function (e, t) {
                    var n = arguments.length > 2 && void 0 !== arguments[2]
                        ? arguments[2]
                        : null, i = this.w, a = this.ttCtx,
                        r = a.getElTooltip(), o = a.tooltipRect,
                        s = null !== n ? parseFloat(n) : 1,
                        l = parseFloat(e) + s + 5, c = parseFloat(t) + s / 2;
                    if (l > i.globals.gridWidth / 2 &&
                    (l = l - o.ttWidth - s - 15), l > i.globals.gridWidth -
                    o.ttWidth - 10 && (l = i.globals.gridWidth - o.ttWidth), l <
                    -20 && (l = -20), i.config.tooltip.followCursor) {
                        var u = a.getElGrid(), d = u.getBoundingClientRect();
                        c = a.e.clientY + i.globals.translateY - d.top -
                            o.ttHeight / 2;
                    }
                    if (!i.config.tooltip.followCursor) {
                        var h = this.positionChecks(o, l, c);
                        l = h.x, c = h.y;
                    }
                    isNaN(l) || (l += i.globals.translateX, r.style.left = l +
                        'px', r.style.top = c + 'px');
                },
            },
            {
                key: 'positionChecks', value: function (e, t, n) {
                    var i = this.w;
                    return e.ttHeight / 2 + n > i.globals.gridHeight &&
                    (n = i.globals.gridHeight - e.ttHeight +
                        i.globals.translateY), n < 0 && (n = 0), { x: t, y: n };
                },
            },
            {
                key: 'moveMarkers',
                value: function (e, t) {
                    var n = this.w, i = this.ttCtx;
                    if (n.globals.markers.size[e] >
                        0) for (var a = n.globals.dom.baseEl.querySelectorAll(
                        ' .apexcharts-series[data\\:realIndex=\''.concat(e,
                            '\'] .apexcharts-marker')), r = 0; r <
                                a.length; r++) parseInt(
                        a[r].getAttribute('rel'), 10) === t &&
                    (i.marker.resetPointsSize(), i.marker.enlargeCurrentPoint(t,
                        a[r])); else i.marker.resetPointsSize(), this.moveDynamicPointOnHover(
                        t, e);
                },
            },
            {
                key: 'moveDynamicPointOnHover',
                value: function (e, t) {
                    var n, i, a = this.w, r = this.ttCtx,
                        o = a.globals.pointsArray,
                        s = r.tooltipUtil.getHoverMarkerSize(t),
                        l = a.config.series[t].type;
                    if (!l || 'column' !== l && 'candlestick' !== l) {
                        n = o[t][e][0], i = o[t][e][1] ? o[t][e][1] : 0;
                        var c = a.globals.dom.baseEl.querySelector(
                            '.apexcharts-series[data\\:realIndex=\''.concat(t,
                                '\'] .apexcharts-series-markers circle'));
                        c && i < a.globals.gridHeight && i > 0 &&
                        (c.setAttribute('r', s), c.setAttribute('cx',
                            n), c.setAttribute('cy', i)), this.moveXCrosshairs(
                            n), r.fixedTooltip || this.moveTooltip(n, i, s);
                    }
                },
            },
            {
                key: 'moveDynamicPointsOnHover',
                value: function (e) {
                    var t, n = this.ttCtx, i = n.w, a = 0, r = 0,
                        o = i.globals.pointsArray;
                    t = new E(this.ctx).getActiveConfigSeriesIndex(!0);
                    var s = n.tooltipUtil.getHoverMarkerSize(t);
                    o[t] && (a = o[t][e][0], r = o[t][e][1]);
                    var l = n.tooltipUtil.getAllMarkers();
                    if (null !== l) for (var c = 0; c <
                    i.globals.series.length; c++) {
                        var u = o[c];
                        if (i.globals.comboCharts && void 0 === u &&
                        l.splice(c, 0, null), u && u.length) {
                            var d = o[c][e][1];
                            l[c].setAttribute('cx', a), null !== d &&
                            !isNaN(d) && d < i.globals.gridHeight && d > 0
                                ? (l[c] && l[c].setAttribute('r', s), l[c] &&
                                l[c].setAttribute('cy', d))
                                : l[c] && l[c].setAttribute('r', 0);
                        }
                    }
                    if (this.moveXCrosshairs(a), !n.fixedTooltip) {
                        var h = r || i.globals.gridHeight;
                        this.moveTooltip(a, h, s);
                    }
                },
            },
            {
                key: 'moveStickyTooltipOverBars',
                value: function (e) {
                    var t, n = this.w, i = this.ttCtx,
                        a = n.globals.columnSeries
                            ? n.globals.columnSeries.length
                            : n.globals.series.length, r = a >= 2 && a % 2 == 0
                        ? Math.floor(a / 2)
                        : Math.floor(a / 2) + 1,
                        o = n.globals.dom.baseEl.querySelector(
                            '.apexcharts-bar-series .apexcharts-series[rel=\''.concat(
                                r, '\'] path[j=\'').
                                concat(e,
                                    '\'], .apexcharts-candlestick-series .apexcharts-series[rel=\'').
                                concat(r, '\'] path[j=\'').
                                concat(e,
                                    '\'], .apexcharts-rangebar-series .apexcharts-series[rel=\'').
                                concat(r, '\'] path[j=\'').
                                concat(e, '\']')),
                        s = o ? parseFloat(o.getAttribute('cx')) : 0,
                        l = o ? parseFloat(o.getAttribute('barWidth')) : 0;
                    n.globals.isXNumeric
                        ? s -= a % 2 != 0 ? l / 2 : 0
                        : (s = i.xAxisTicksPositions[e - 1] +
                        i.dataPointsDividedWidth / 2, isNaN(s) &&
                        (s = i.xAxisTicksPositions[e] - i.dataPointsDividedWidth /
                            2));
                    var c = i.getElGrid().getBoundingClientRect();
                    if (t = i.e.clientY - c.top - i.tooltipRect.ttHeight /
                        2, this.moveXCrosshairs(s), !i.fixedTooltip) {
                        var u = t || n.globals.gridHeight;
                        this.moveTooltip(s, u);
                    }
                },
            }]), e;
    }(), pe = function () {
        function e (n) {
            t(this,
                e), this.w = n.w, this.ttCtx = n, this.ctx = n.ctx, this.tooltipPosition = new fe(
                n);
        }

        return i(e, [
            {
                key: 'drawDynamicPoints',
                value: function () {
                    var e = this.w, t = new v(this.ctx), n = new T(this.ctx),
                        i = e.globals.dom.baseEl.querySelectorAll(
                            '.apexcharts-series');
                    i = h(i), e.config.chart.stacked && i.sort(
                        (function (e, t) {
                            return parseFloat(
                                e.getAttribute('data:realIndex')) -
                                parseFloat(t.getAttribute('data:realIndex'));
                        }));
                    for (var a = 0; a < i.length; a++) {
                        var r = i[a].querySelector(
                            '.apexcharts-series-markers-wrap');
                        if (null !== r) {
                            var o = void 0, s = 'apexcharts-marker w'.concat(
                                (Math.random() + 1).toString(36).substring(4));
                            'line' !== e.config.chart.type && 'area' !==
                            e.config.chart.type || e.globals.comboCharts ||
                            e.config.tooltip.intersect ||
                            (s += ' no-pointer-events');
                            var l = n.getMarkerConfig(s, a);
                            (o = t.drawMarker(0, 0, l)).node.setAttribute(
                                'default-marker-size', 0);
                            var c = document.createElementNS(e.globals.SVGNS,
                                'g');
                            c.classList.add(
                                'apexcharts-series-markers'), c.appendChild(
                                o.node), r.appendChild(c);
                        }
                    }
                },
            },
            {
                key: 'enlargeCurrentPoint',
                value: function (e, t) {
                    var n = arguments.length > 2 && void 0 !== arguments[2]
                        ? arguments[2]
                        : null,
                        i = arguments.length > 3 && void 0 !== arguments[3]
                            ? arguments[3]
                            : null, a = this.w;
                    'bubble' !== a.config.chart.type && this.newPointSize(e, t);
                    var r = t.getAttribute('cx'), o = t.getAttribute('cy');
                    if (null !== n && null !== i &&
                    (r = n, o = i), this.tooltipPosition.moveXCrosshairs(
                        r), !this.fixedTooltip) {
                        if ('radar' === a.config.chart.type) {
                            var s = this.ttCtx.getElGrid(),
                                l = s.getBoundingClientRect();
                            r = this.ttCtx.e.clientX - l.left;
                        }
                        this.tooltipPosition.moveTooltip(r, o,
                            a.config.markers.hover.size);
                    }
                },
            },
            {
                key: 'enlargePoints',
                value: function (e) {
                    for (var t = this.w, n = this, i = this.ttCtx, a = e, r = t.globals.dom.baseEl.querySelectorAll(
                        '.apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker'), o = t.config.markers.hover.size, s = 0; s <
                         r.length; s++) {
                        var l = r[s].getAttribute('rel'),
                            c = r[s].getAttribute('index');
                        if (void 0 === o && (o = t.globals.markers.size[c] +
                            t.config.markers.hover.sizeOffset), a ===
                        parseInt(l, 10)) {
                            n.newPointSize(a, r[s]);
                            var u = r[s].getAttribute('cx'),
                                d = r[s].getAttribute('cy');
                            n.tooltipPosition.moveXCrosshairs(
                                u), i.fixedTooltip ||
                            n.tooltipPosition.moveTooltip(u, d, o);
                        } else n.oldPointSize(r[s]);
                    }
                },
            },
            {
                key: 'newPointSize',
                value: function (e, t) {
                    var n = this.w, i = n.config.markers.hover.size, a = 0 === e
                        ? t.parentNode.firstChild
                        : t.parentNode.lastChild;
                    if ('0' !== a.getAttribute('default-marker-size')) {
                        var r = parseInt(a.getAttribute('index'), 10);
                        void 0 === i && (i = n.globals.markers.size[r] +
                            n.config.markers.hover.sizeOffset), a.setAttribute(
                            'r', i);
                    }
                },
            },
            {
                key: 'oldPointSize',
                value: function (e) {
                    var t = parseFloat(e.getAttribute('default-marker-size'));
                    e.setAttribute('r', t);
                },
            },
            {
                key: 'resetPointsSize',
                value: function () {
                    for (var e = this.w.globals.dom.baseEl.querySelectorAll(
                        '.apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker'), t = 0; t <
                         e.length; t++) {
                        var n = parseFloat(
                            e[t].getAttribute('default-marker-size'));
                        p.isNumber(n)
                            ? e[t].setAttribute('r', n)
                            : e[t].setAttribute('r', 0);
                    }
                },
            }]), e;
    }(), me = function () {
        function e (n) {t(this, e), this.w = n.w, this.ttCtx = n;}

        return i(e, [
            {
                key: 'getAttr',
                value: function (e, t) {
                    return parseFloat(e.target.getAttribute(t));
                },
            },
            {
                key: 'handleHeatTreeTooltip',
                value: function (e) {
                    var t = e.e, n = e.opt, i = e.x, a = e.y, r = e.type,
                        o = this.ttCtx, s = this.w;
                    if (t.target.classList.contains('apexcharts-'.concat(r,
                        '-rect'))) {
                        var l = this.getAttr(t, 'i'), c = this.getAttr(t, 'j'),
                            u = this.getAttr(t, 'cx'),
                            d = this.getAttr(t, 'cy'),
                            h = this.getAttr(t, 'width'),
                            f = this.getAttr(t, 'height');
                        if (o.tooltipLabels.drawSeriesTexts({
                            ttItems: n.ttItems,
                            i: l,
                            j: c,
                            shared: !1,
                            e: t,
                        }), s.globals.capturedSeriesIndex = l, s.globals.capturedDataPointIndex = c, i = u +
                            o.tooltipRect.ttWidth / 2 + h, a = d +
                            o.tooltipRect.ttHeight / 2 - f /
                            2, o.tooltipPosition.moveXCrosshairs(u + h / 2), i >
                        s.globals.gridWidth / 2 &&
                        (i = u - o.tooltipRect.ttWidth / 2 +
                            h), o.w.config.tooltip.followCursor) {
                            var p = o.getElGrid().
                                getBoundingClientRect();
                            (i = o.e.clientX - p.left + 10) >
                            s.globals.gridWidth / 2 &&
                            (i = i - o.tooltipRect.ttWidth -
                                10), a = o.e.clientY - p.top +
                                s.globals.translateY / 2 - 10;
                        }
                    }
                    return { x: i, y: a };
                },
            },
            {
                key: 'handleMarkerTooltip',
                value: function (e) {
                    var t, n, i = e.e, a = e.opt, r = e.x, o = e.y, s = this.w,
                        l = this.ttCtx;
                    if (i.target.classList.contains('apexcharts-marker')) {
                        var c = parseInt(a.paths.getAttribute('cx'), 10),
                            u = parseInt(a.paths.getAttribute('cy'), 10),
                            d = parseFloat(a.paths.getAttribute('val'));
                        if (n = parseInt(a.paths.getAttribute('rel'),
                            10), t = parseInt(
                            a.paths.parentNode.parentNode.parentNode.getAttribute(
                                'rel'), 10) - 1, l.intersect) {
                            var h = p.findAncestor(a.paths,
                                'apexcharts-series');
                            h &&
                            (t = parseInt(h.getAttribute('data:realIndex'),
                                10));
                        }
                        if (l.tooltipLabels.drawSeriesTexts({
                            ttItems: a.ttItems,
                            i: t,
                            j: n,
                            shared: !l.showOnIntersect &&
                                s.config.tooltip.shared,
                            e: i,
                        }), 'mouseup' === i.type && l.markerClick(i, t,
                            n), s.globals.capturedSeriesIndex = t, s.globals.capturedDataPointIndex = n, r = c, o = u +
                            s.globals.translateY - 1.4 *
                            l.tooltipRect.ttHeight, l.w.config.tooltip.followCursor) {
                            var f = l.getElGrid().
                                getBoundingClientRect();
                            o = l.e.clientY + s.globals.translateY - f.top;
                        }
                        d < 0 && (o = u), l.marker.enlargeCurrentPoint(n,
                            a.paths, r, o);
                    }
                    return { x: r, y: o };
                },
            },
            {
                key: 'handleBarTooltip', value: function (e) {
                    var t, n, i = e.e, a = e.opt, r = this.w, o = this.ttCtx,
                        s = o.getElTooltip(), l = 0, c = 0, u = 0,
                        d = this.getBarTooltipXY({ e: i, opt: a });
                    t = d.i;
                    var h = d.barHeight, f = d.j;
                    if (r.globals.capturedSeriesIndex = t, r.globals.capturedDataPointIndex = f, r.globals.isBarHorizontal &&
                    o.tooltipUtil.hasBars() || !r.config.tooltip.shared
                        ? (c = d.x, u = d.y, n = Array.isArray(
                            r.config.stroke.width)
                            ? r.config.stroke.width[t]
                            : r.config.stroke.width, l = c)
                        : r.globals.comboCharts || r.config.tooltip.shared ||
                        (l /= 2), isNaN(u) ? u = r.globals.svgHeight -
                        o.tooltipRect.ttHeight : u < 0 && (u = 0), c +
                    o.tooltipRect.ttWidth > r.globals.gridWidth
                        ? c -= o.tooltipRect.ttWidth
                        : c < 0 && (c = 0), o.w.config.tooltip.followCursor) {
                        var p = o.getElGrid().
                            getBoundingClientRect();
                        u = o.e.clientY - p.top;
                    }
                    if (null === o.tooltip &&
                    (o.tooltip = r.globals.dom.baseEl.querySelector(
                        '.apexcharts-tooltip')), r.config.tooltip.shared ||
                    (r.globals.comboBarCount > 0
                        ? o.tooltipPosition.moveXCrosshairs(l + n / 2)
                        : o.tooltipPosition.moveXCrosshairs(
                            l)), !o.fixedTooltip &&
                    (!r.config.tooltip.shared || r.globals.isBarHorizontal &&
                        o.tooltipUtil.hasBars())) {
                        var m = r.globals.isMultipleYAxis
                            ? r.config.yaxis[g] && r.config.yaxis[g].reversed
                            : r.config.yaxis[0].reversed;
                        m && (c -= o.tooltipRect.ttWidth) < 0 &&
                        (c = 0), s.style.left = c + r.globals.translateX + 'px';
                        var g = parseInt(
                            a.paths.parentNode.getAttribute('data:realIndex'),
                            10);
                        !m || r.globals.isBarHorizontal &&
                        o.tooltipUtil.hasBars() || (u = u + h - 2 *
                            (r.globals.series[t][f] < 0
                                ? h
                                : 0)), o.tooltipRect.ttHeight + u >
                        r.globals.gridHeight
                            ? (u = r.globals.gridHeight -
                                o.tooltipRect.ttHeight +
                                r.globals.translateY, s.style.top = u + 'px')
                            : s.style.top = u + r.globals.translateY -
                                o.tooltipRect.ttHeight / 2 + 'px';
                    }
                },
            },
            {
                key: 'getBarTooltipXY', value: function (e) {
                    var t = e.e, n = e.opt, i = this.w, a = null,
                        r = this.ttCtx, o = 0, s = 0, l = 0, c = 0, u = 0,
                        d = t.target.classList;
                    if (d.contains('apexcharts-bar-area') ||
                        d.contains('apexcharts-candlestick-area') ||
                        d.contains('apexcharts-rangebar-area')) {
                        var h = t.target, f = h.getBoundingClientRect(),
                            p = n.elGrid.getBoundingClientRect(), m = f.height;
                        u = f.height;
                        var g = f.width, v = parseInt(h.getAttribute('cx'), 10),
                            y = parseInt(h.getAttribute('cy'), 10);
                        c = parseFloat(h.getAttribute('barWidth'));
                        var b = 'touchmove' === t.type
                            ? t.touches[0].clientX
                            : t.clientX;
                        a = parseInt(h.getAttribute('j'), 10), o = parseInt(
                            h.parentNode.getAttribute('rel'), 10) - 1;
                        var x = h.getAttribute('data-range-y1'),
                            _ = h.getAttribute('data-range-y2');
                        i.globals.comboCharts && (o = parseInt(
                            h.parentNode.getAttribute('data:realIndex'),
                            10)), r.tooltipLabels.drawSeriesTexts({
                            ttItems: n.ttItems,
                            i: o,
                            j: a,
                            y1: x ? parseInt(x, 10) : null,
                            y2: _ ? parseInt(_, 10) : null,
                            shared: !r.showOnIntersect &&
                                i.config.tooltip.shared,
                            e: t,
                        }), i.config.tooltip.followCursor
                            ? i.globals.isBarHorizontal
                                ? (s = b - p.left + 15, l = y -
                                    r.dataPointsDividedHeight + m / 2 -
                                    r.tooltipRect.ttHeight / 2)
                                : (s = i.globals.isXNumeric ? v - g / 2 : v -
                                    r.dataPointsDividedWidth + g /
                                    2, l = t.clientY - p.top -
                                    r.tooltipRect.ttHeight / 2 - 15)
                            : i.globals.isBarHorizontal
                                ? ((s = v) < r.xyRatios.baseLineInvertedY &&
                                (s = v - r.tooltipRect.ttWidth), l = y -
                                    r.dataPointsDividedHeight + m / 2 -
                                    r.tooltipRect.ttHeight / 2)
                                : (s = i.globals.isXNumeric ? v - g / 2 : v -
                                    r.dataPointsDividedWidth + g / 2, l = y);
                    }
                    return {
                        x: s,
                        y: l,
                        barHeight: u,
                        barWidth: c,
                        i: o,
                        j: a,
                    };
                },
            }]), e;
    }(), ge = function () {
        function e (n) {t(this, e), this.w = n.w, this.ttCtx = n;}

        return i(e, [
            {
                key: 'drawXaxisTooltip',
                value: function () {
                    var e = this.w, t = this.ttCtx,
                        n = 'bottom' === e.config.xaxis.position;
                    t.xaxisOffY = n
                        ? e.globals.gridHeight + 1
                        : -e.globals.xAxisHeight -
                        e.config.xaxis.axisTicks.height + 3;
                    var i = n
                        ? 'apexcharts-xaxistooltip apexcharts-xaxistooltip-bottom'
                        : 'apexcharts-xaxistooltip apexcharts-xaxistooltip-top',
                        a = e.globals.dom.elWrap;
                    t.blxaxisTooltip && null ===
                    e.globals.dom.baseEl.querySelector(
                        '.apexcharts-xaxistooltip') &&
                    (t.xaxisTooltip = document.createElement(
                        'div'), t.xaxisTooltip.setAttribute('class',
                        i + ' apexcharts-theme-' +
                        e.config.tooltip.theme), a.appendChild(
                        t.xaxisTooltip), t.xaxisTooltipText = document.createElement(
                        'div'), t.xaxisTooltipText.classList.add(
                        'apexcharts-xaxistooltip-text'), t.xaxisTooltipText.style.fontFamily = e.config.xaxis.tooltip.style.fontFamily ||
                        e.config.chart.fontFamily, t.xaxisTooltipText.style.fontSize = e.config.xaxis.tooltip.style.fontSize, t.xaxisTooltip.appendChild(
                        t.xaxisTooltipText));
                },
            },
            {
                key: 'drawYaxisTooltip',
                value: function () {
                    for (var e = this.w, t = this.ttCtx, n = function (n) {
                        var i = e.config.yaxis[n].opposite ||
                            e.config.yaxis[n].crosshairs.opposite;
                        t.yaxisOffX = i ? e.globals.gridWidth + 1 : 1;
                        var a = 'apexcharts-yaxistooltip apexcharts-yaxistooltip-'.concat(
                            n, i
                                ? ' apexcharts-yaxistooltip-right'
                                : ' apexcharts-yaxistooltip-left');
                        e.globals.yAxisSameScaleIndices.map((function (t, i) {
                            t.map((function (t, i) {
                                i === n && (a += e.config.yaxis[i].show
                                    ? ' '
                                    : ' apexcharts-yaxistooltip-hidden');
                            }));
                        }));
                        var r = e.globals.dom.elWrap;
                        null === e.globals.dom.baseEl.querySelector(
                            '.apexcharts-yaxistooltip apexcharts-yaxistooltip-'.concat(
                                n)) && (t.yaxisTooltip = document.createElement(
                            'div'), t.yaxisTooltip.setAttribute('class',
                            a + ' apexcharts-theme-' +
                            e.config.tooltip.theme), r.appendChild(
                            t.yaxisTooltip), 0 === n &&
                        (t.yaxisTooltipText = []), t.yaxisTooltipText[n] = document.createElement(
                            'div'), t.yaxisTooltipText[n].classList.add(
                            'apexcharts-yaxistooltip-text'), t.yaxisTooltip.appendChild(
                            t.yaxisTooltipText[n]));
                    }, i = 0; i < e.config.yaxis.length; i++) n(i);
                },
            },
            {
                key: 'setXCrosshairWidth',
                value: function () {
                    var e = this.w, t = this.ttCtx, n = t.getElXCrosshairs();
                    if (t.xcrosshairsWidth = parseInt(
                        e.config.xaxis.crosshairs.width,
                        10), e.globals.comboCharts) {
                        var i = e.globals.dom.baseEl.querySelector(
                            '.apexcharts-bar-area');
                        if (null !== i && 'barWidth' ===
                            e.config.xaxis.crosshairs.width) {
                            var a = parseFloat(i.getAttribute('barWidth'));
                            t.xcrosshairsWidth = a;
                        } else if ('tickWidth' ===
                            e.config.xaxis.crosshairs.width) {
                            var r = e.globals.labels.length;
                            t.xcrosshairsWidth = e.globals.gridWidth / r;
                        }
                    } else if ('tickWidth' ===
                        e.config.xaxis.crosshairs.width) {
                        var o = e.globals.labels.length;
                        t.xcrosshairsWidth = e.globals.gridWidth / o;
                    } else if ('barWidth' === e.config.xaxis.crosshairs.width) {
                        var s = e.globals.dom.baseEl.querySelector(
                            '.apexcharts-bar-area');
                        if (null !== s) {
                            var l = parseFloat(s.getAttribute('barWidth'));
                            t.xcrosshairsWidth = l;
                        } else t.xcrosshairsWidth = 1;
                    }
                    e.globals.isBarHorizontal &&
                    (t.xcrosshairsWidth = 0), null !== n && t.xcrosshairsWidth >
                    0 && n.setAttribute('width', t.xcrosshairsWidth);
                },
            },
            {
                key: 'handleYCrosshair',
                value: function () {
                    var e = this.w, t = this.ttCtx;
                    t.ycrosshairs = e.globals.dom.baseEl.querySelector(
                        '.apexcharts-ycrosshairs'), t.ycrosshairsHidden = e.globals.dom.baseEl.querySelector(
                        '.apexcharts-ycrosshairs-hidden');
                },
            },
            {
                key: 'drawYaxisTooltipText',
                value: function (e, t, n) {
                    var i = this.ttCtx, a = this.w,
                        r = a.globals.yLabelFormatters[e];
                    if (i.yaxisTooltips[e]) {
                        var o = i.getElGrid().
                                getBoundingClientRect(),
                            s = (t - o.top) * n.yRatio[e],
                            l = a.globals.maxYArr[e] - a.globals.minYArr[e],
                            c = a.globals.minYArr[e] + (l - s);
                        i.tooltipPosition.moveYCrosshairs(
                            t - o.top), i.yaxisTooltipText[e].innerHTML = r(
                            c), i.tooltipPosition.moveYAxisTooltip(e);
                    }
                },
            }]), e;
    }(), ve = function () {
        function e (n) {
            t(this, e), this.ctx = n, this.w = n.w;
            var i = this.w;
            this.tConfig = i.config.tooltip, this.tooltipUtil = new de(
                this), this.tooltipLabels = new he(
                this), this.tooltipPosition = new fe(
                this), this.marker = new pe(this), this.intersect = new me(
                this), this.axesTooltip = new ge(
                this), this.showOnIntersect = this.tConfig.intersect, this.showTooltipTitle = this.tConfig.x.show, this.fixedTooltip = this.tConfig.fixed.enabled, this.xaxisTooltip = null, this.yaxisTTEls = null, this.isBarShared = !i.globals.isBarHorizontal &&
                this.tConfig.shared;
        }

        return i(e, [
            {
                key: 'getElTooltip',
                value: function (e) {
                    return e ||
                    (e = this), e.w.globals.dom.baseEl.querySelector(
                        '.apexcharts-tooltip');
                },
            },
            {
                key: 'getElXCrosshairs',
                value: function () {
                    return this.w.globals.dom.baseEl.querySelector(
                        '.apexcharts-xcrosshairs');
                },
            },
            {
                key: 'getElGrid',
                value: function () {
                    return this.w.globals.dom.baseEl.querySelector(
                        '.apexcharts-grid');
                },
            },
            {
                key: 'drawTooltip', value: function (e) {
                    var t = this.w;
                    this.xyRatios = e, this.blxaxisTooltip = t.config.xaxis.tooltip.enabled &&
                        t.globals.axisCharts, this.yaxisTooltips = t.config.yaxis.map(
                        (function (e, n) {
                            return !!(e.show && e.tooltip.enabled &&
                                t.globals.axisCharts);
                        })), this.allTooltipSeriesGroups = [], t.globals.axisCharts ||
                    (this.showTooltipTitle = !1);
                    var n = document.createElement('div');
                    if (n.classList.add('apexcharts-tooltip'), n.classList.add(
                        'apexcharts-theme-'.concat(
                            this.tConfig.theme)), t.globals.dom.elWrap.appendChild(
                        n), t.globals.axisCharts) {
                        this.axesTooltip.drawXaxisTooltip(), this.axesTooltip.drawYaxisTooltip(), this.axesTooltip.setXCrosshairWidth(), this.axesTooltip.handleYCrosshair();
                        var i = new V(this.ctx);
                        this.xAxisTicksPositions = i.getXAxisTicksPositions();
                    }
                    if (!t.globals.comboCharts && !this.tConfig.intersect &&
                    'bar' !== t.config.chart.type && 'rangeBar' !==
                    t.config.chart.type || this.tConfig.shared ||
                    (this.showOnIntersect = !0), 0 !== t.config.markers.size &&
                    0 !== t.globals.markers.largestSize ||
                    this.marker.drawDynamicPoints(
                        this), t.globals.collapsedSeries.length !==
                    t.globals.series.length) {
                        this.dataPointsDividedHeight = t.globals.gridHeight /
                            t.globals.dataPoints, this.dataPointsDividedWidth = t.globals.gridWidth /
                            t.globals.dataPoints, this.showTooltipTitle &&
                        (this.tooltipTitle = document.createElement(
                            'div'), this.tooltipTitle.classList.add(
                            'apexcharts-tooltip-title'), this.tooltipTitle.style.fontFamily = this.tConfig.style.fontFamily ||
                            t.config.chart.fontFamily, this.tooltipTitle.style.fontSize = this.tConfig.style.fontSize, n.appendChild(
                            this.tooltipTitle));
                        var a = t.globals.series.length;
                        (t.globals.xyCharts || t.globals.comboCharts) &&
                        this.tConfig.shared && (a = this.showOnIntersect
                            ? 1
                            : t.globals.series.length), this.legendLabels = t.globals.dom.baseEl.querySelectorAll(
                            '.apexcharts-legend-text'), this.ttItems = this.createTTElements(
                            a), this.addSVGEvents();
                    }
                },
            },
            {
                key: 'createTTElements', value: function (e) {
                    for (var t = this.w, n = [], i = this.getElTooltip(), a = 0; a <
                    e; a++) {
                        var r = document.createElement('div');
                        r.classList.add(
                            'apexcharts-tooltip-series-group'), r.style.order = t.config.tooltip.inverseOrder
                            ? e - a
                            : a + 1, this.tConfig.shared &&
                        this.tConfig.enabledOnSeries &&
                        Array.isArray(this.tConfig.enabledOnSeries) &&
                        this.tConfig.enabledOnSeries.indexOf(a) < 0 &&
                        r.classList.add(
                            'apexcharts-tooltip-series-group-hidden');
                        var o = document.createElement('span');
                        o.classList.add(
                            'apexcharts-tooltip-marker'), o.style.backgroundColor = t.globals.colors[a], r.appendChild(
                            o);
                        var s = document.createElement('div');
                        s.classList.add(
                            'apexcharts-tooltip-text'), s.style.fontFamily = this.tConfig.style.fontFamily ||
                            t.config.chart.fontFamily, s.style.fontSize = this.tConfig.style.fontSize;
                        var l = document.createElement('div');
                        l.classList.add('apexcharts-tooltip-y-group');
                        var c = document.createElement('span');
                        c.classList.add(
                            'apexcharts-tooltip-text-label'), l.appendChild(c);
                        var u = document.createElement('span');
                        u.classList.add(
                            'apexcharts-tooltip-text-value'), l.appendChild(u);
                        var d = document.createElement('div');
                        d.classList.add('apexcharts-tooltip-z-group');
                        var h = document.createElement('span');
                        h.classList.add(
                            'apexcharts-tooltip-text-z-label'), d.appendChild(
                            h);
                        var f = document.createElement('span');
                        f.classList.add(
                            'apexcharts-tooltip-text-z-value'), d.appendChild(
                            f), s.appendChild(l), s.appendChild(
                            d), r.appendChild(s), i.appendChild(r), n.push(r);
                    }
                    return n;
                },
            },
            {
                key: 'addSVGEvents', value: function () {
                    var e = this.w, t = e.config.chart.type,
                        n = this.getElTooltip(),
                        i = !('bar' !== t && 'candlestick' !== t &&
                            'rangeBar' !== t),
                        a = 'area' === t || 'line' === t || 'scatter' === t ||
                            'bubble' === t || 'radar' === t,
                        r = e.globals.dom.Paper.node, o = this.getElGrid();
                    o && (this.seriesBound = o.getBoundingClientRect());
                    var s, l = [], c = [], u = {
                        hoverArea: r,
                        elGrid: o,
                        tooltipEl: n,
                        tooltipY: l,
                        tooltipX: c,
                        ttItems: this.ttItems,
                    };
                    if (e.globals.axisCharts && (a
                        ? s = e.globals.dom.baseEl.querySelectorAll(
                            '.apexcharts-series[data\\:longestSeries=\'true\'] .apexcharts-marker')
                        : i
                            ? s = e.globals.dom.baseEl.querySelectorAll(
                                '.apexcharts-series .apexcharts-bar-area, .apexcharts-series .apexcharts-candlestick-area, .apexcharts-series .apexcharts-rangebar-area')
                            : 'heatmap' !== t && 'treemap' !== t ||
                            (s = e.globals.dom.baseEl.querySelectorAll(
                                '.apexcharts-series .apexcharts-heatmap, .apexcharts-series .apexcharts-treemap')), s &&
                    s.length)) for (var d = 0; d < s.length; d++) l.push(
                        s[d].getAttribute('cy')), c.push(
                        s[d].getAttribute('cx'));
                    if (e.globals.xyCharts && !this.showOnIntersect ||
                        e.globals.comboCharts && !this.showOnIntersect || i &&
                        this.tooltipUtil.hasBars() &&
                        this.tConfig.shared) this.addPathsEventListeners([r],
                        u); else if (i && !e.globals.comboCharts || a &&
                        this.showOnIntersect) this.addDatapointEventsListeners(
                        u); else if (!e.globals.axisCharts || 'heatmap' === t ||
                        'treemap' === t) {
                        var h = e.globals.dom.baseEl.querySelectorAll(
                            '.apexcharts-series');
                        this.addPathsEventListeners(h, u);
                    }
                    if (this.showOnIntersect) {
                        var f = e.globals.dom.baseEl.querySelectorAll(
                            '.apexcharts-line-series .apexcharts-marker, .apexcharts-area-series .apexcharts-marker');
                        f.length > 0 && this.addPathsEventListeners(f,
                            u), this.tooltipUtil.hasBars() &&
                        !this.tConfig.shared &&
                        this.addDatapointEventsListeners(u);
                    }
                },
            },
            {
                key: 'drawFixedTooltipRect',
                value: function () {
                    var e = this.w, t = this.getElTooltip(),
                        n = t.getBoundingClientRect(), i = n.width + 10,
                        a = n.height + 10, r = this.tConfig.fixed.offsetX,
                        o = this.tConfig.fixed.offsetY,
                        s = this.tConfig.fixed.position.toLowerCase();
                    return s.indexOf('right') > -1 &&
                    (r = r + e.globals.svgWidth - i + 10), s.indexOf('bottom') >
                    -1 &&
                    (o = o + e.globals.svgHeight - a - 10), t.style.left = r +
                        'px', t.style.top = o + 'px', {
                        x: r,
                        y: o,
                        ttWidth: i,
                        ttHeight: a,
                    };
                },
            },
            {
                key: 'addDatapointEventsListeners',
                value: function (e) {
                    var t = this.w.globals.dom.baseEl.querySelectorAll(
                        '.apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-rangebar-area');
                    this.addPathsEventListeners(t, e);
                },
            },
            {
                key: 'addPathsEventListeners',
                value: function (
                    e, t) {
                    for (var n = this, i = function (i) {
                        var a = {
                            paths: e[i],
                            tooltipEl: t.tooltipEl,
                            tooltipY: t.tooltipY,
                            tooltipX: t.tooltipX,
                            elGrid: t.elGrid,
                            hoverArea: t.hoverArea,
                            ttItems: t.ttItems,
                        };
                        [
                            'mousemove',
                            'mouseup',
                            'touchmove',
                            'mouseout',
                            'touchend'].map((function (t) {
                            return e[i].addEventListener(t,
                                n.seriesHover.bind(n, a),
                                { capture: !1, passive: !0 });
                        }));
                    }, a = 0; a < e.length; a++) i(a);
                },
            },
            {
                key: 'seriesHover',
                value: function (e, t) {
                    var n = this, i = [], a = this.w;
                    a.config.chart.group &&
                    (i = this.ctx.getGroupedCharts()), a.globals.axisCharts &&
                    (a.globals.minX === -1 / 0 && a.globals.maxX === 1 / 0 ||
                        0 === a.globals.dataPoints) || (i.length ? i.forEach(
                        (function (i) {
                            var a = n.getElTooltip(i), r = {
                                paths: e.paths,
                                tooltipEl: a,
                                tooltipY: e.tooltipY,
                                tooltipX: e.tooltipX,
                                elGrid: e.elGrid,
                                hoverArea: e.hoverArea,
                                ttItems: i.w.globals.tooltip.ttItems,
                            };
                            i.w.globals.minX === n.w.globals.minX &&
                            i.w.globals.maxX === n.w.globals.maxX &&
                            i.w.globals.tooltip.seriesHoverByContext({
                                chartCtx: i,
                                ttCtx: i.w.globals.tooltip,
                                opt: r,
                                e: t,
                            });
                        })) : this.seriesHoverByContext({
                        chartCtx: this.ctx,
                        ttCtx: this.w.globals.tooltip,
                        opt: e,
                        e: t,
                    }));
                },
            },
            {
                key: 'seriesHoverByContext',
                value: function (e) {
                    var t = e.chartCtx, n = e.ttCtx, i = e.opt, a = e.e,
                        r = t.w, o = this.getElTooltip();
                    n.tooltipRect = {
                        x: 0,
                        y: 0,
                        ttWidth: o.getBoundingClientRect().width,
                        ttHeight: o.getBoundingClientRect().height,
                    }, n.e = a, !n.tooltipUtil.hasBars() ||
                    r.globals.comboCharts || n.isBarShared ||
                    this.tConfig.onDatasetHover.highlightDataSeries &&
                    new E(t).toggleSeriesOnHover(a,
                        a.target.parentNode), n.fixedTooltip &&
                    n.drawFixedTooltipRect(), r.globals.axisCharts
                        ? n.axisChartsTooltips(
                            { e: a, opt: i, tooltipRect: n.tooltipRect })
                        : n.nonAxisChartsTooltips(
                            { e: a, opt: i, tooltipRect: n.tooltipRect });
                },
            },
            {
                key: 'axisChartsTooltips', value: function (e) {
                    var t, n, i = e.e, a = e.opt, r = this.w,
                        o = a.elGrid.getBoundingClientRect(),
                        s = 'touchmove' === i.type
                            ? i.touches[0].clientX
                            : i.clientX, l = 'touchmove' === i.type
                        ? i.touches[0].clientY
                        : i.clientY;
                    if (this.clientY = l, this.clientX = s, r.globals.capturedSeriesIndex = -1, r.globals.capturedDataPointIndex = -1, l <
                    o.top || l > o.top + o.height) this.handleMouseOut(
                        a); else {
                        if (Array.isArray(this.tConfig.enabledOnSeries) &&
                            !r.config.tooltip.shared) {
                            var c = parseInt(a.paths.getAttribute('index'), 10);
                            if (this.tConfig.enabledOnSeries.indexOf(c) <
                                0) return void this.handleMouseOut(a);
                        }
                        var u = this.getElTooltip(),
                            d = this.getElXCrosshairs(),
                            h = r.globals.xyCharts || 'bar' ===
                                r.config.chart.type &&
                                !r.globals.isBarHorizontal &&
                                this.tooltipUtil.hasBars() &&
                                this.tConfig.shared || r.globals.comboCharts &&
                                this.tooltipUtil.hasBars();
                        if (r.globals.isBarHorizontal &&
                        this.tooltipUtil.hasBars() && (h = !1), 'mousemove' ===
                        i.type || 'touchmove' === i.type || 'mouseup' ===
                        i.type) {
                            null !== d && d.classList.add('apexcharts-active');
                            var f = this.yaxisTooltips.filter(
                                (function (e) {return !0 === e;}));
                            if (null !== this.ycrosshairs && f.length &&
                            this.ycrosshairs.classList.add(
                                'apexcharts-active'), h &&
                            !this.showOnIntersect) this.handleStickyTooltip(i,
                                s, l, a); else if ('heatmap' ===
                                r.config.chart.type || 'treemap' ===
                                r.config.chart.type) {
                                var p = this.intersect.handleHeatTreeTooltip({
                                    e: i,
                                    opt: a,
                                    x: t,
                                    y: n,
                                    type: r.config.chart.type,
                                });
                                t = p.x, n = p.y, u.style.left = t +
                                    'px', u.style.top = n + 'px';
                            } else this.tooltipUtil.hasBars() &&
                            this.intersect.handleBarTooltip({
                                e: i,
                                opt: a,
                            }), this.tooltipUtil.hasMarkers() &&
                            this.intersect.handleMarkerTooltip(
                                { e: i, opt: a, x: t, y: n });
                            if (this.yaxisTooltips.length) for (var m = 0; m <
                            r.config.yaxis.length; m++) this.axesTooltip.drawYaxisTooltipText(
                                m, l, this.xyRatios);
                            a.tooltipEl.classList.add('apexcharts-active');
                        } else 'mouseout' !== i.type && 'touchend' !== i.type ||
                        this.handleMouseOut(a);
                    }
                },
            },
            {
                key: 'nonAxisChartsTooltips',
                value: function (e) {
                    var t = e.e, n = e.opt, i = e.tooltipRect, a = this.w,
                        r = n.paths.getAttribute('rel'),
                        o = this.getElTooltip(),
                        s = a.globals.dom.elWrap.getBoundingClientRect();
                    if ('mousemove' === t.type || 'touchmove' === t.type) {
                        o.classList.add(
                            'apexcharts-active'), this.tooltipLabels.drawSeriesTexts(
                            {
                                ttItems: n.ttItems,
                                i: parseInt(r, 10) - 1,
                                shared: !1,
                            });
                        var l = a.globals.clientX - s.left - i.ttWidth / 2,
                            c = a.globals.clientY - s.top - i.ttHeight - 10;
                        if (o.style.left = l + 'px', o.style.top = c +
                            'px', a.config.legend.tooltipHoverFormatter) {
                            var u = r - 1,
                                d = (0, a.config.legend.tooltipHoverFormatter)(
                                    this.legendLabels[u].getAttribute(
                                        'data:default-text'), {
                                        seriesIndex: u,
                                        dataPointIndex: u,
                                        w: a,
                                    });
                            this.legendLabels[u].innerHTML = d;
                        }
                    } else 'mouseout' !== t.type && 'touchend' !== t.type ||
                    (o.classList.remove(
                        'apexcharts-active'), a.config.legend.tooltipHoverFormatter &&
                    this.legendLabels.forEach((function (e) {
                        var t = e.getAttribute('data:default-text');
                        e.innerHTML = decodeURIComponent(t);
                    })));
                },
            },
            {
                key: 'handleStickyTooltip',
                value: function (e, t, n, i) {
                    var a = this.w, r = this.tooltipUtil.getNearestValues({
                        context: this,
                        hoverArea: i.hoverArea,
                        elGrid: i.elGrid,
                        clientX: t,
                        clientY: n,
                    }), o = r.j, s = r.capturedSeries;
                    r.hoverX < 0 || r.hoverX > a.globals.gridWidth
                        ? this.handleMouseOut(i)
                        : null !== s ? this.handleStickyCapturedSeries(e, s, i,
                        o) : this.tooltipUtil.isXoverlap(o) &&
                        this.create(e, this, 0, o, i.ttItems);
                },
            },
            {
                key: 'handleStickyCapturedSeries',
                value: function (e, t, n, i) {
                    var a = this.w;
                    null === a.globals.series[t][i]
                        ? this.handleMouseOut(n)
                        : void 0 !== a.globals.series[t][i]
                        ? this.tConfig.shared &&
                        this.tooltipUtil.isXoverlap(i) &&
                        this.tooltipUtil.isInitialSeriesSameLen() ? this.create(
                            e, this, t, i, n.ttItems) : this.create(e, this, t,
                            i, n.ttItems, !1)
                        : this.tooltipUtil.isXoverlap(i) &&
                        this.create(e, this, 0, i, n.ttItems);
                },
            },
            {
                key: 'deactivateHoverFilter',
                value: function () {
                    for (var e = this.w, t = new v(
                        this.ctx), n = e.globals.dom.Paper.select(
                        '.apexcharts-bar-area'), i = 0; i <
                         n.length; i++) t.pathMouseLeave(n[i]);
                },
            },
            {
                key: 'handleMouseOut',
                value: function (e) {
                    var t = this.w, n = this.getElXCrosshairs();
                    if (e.tooltipEl.classList.remove(
                        'apexcharts-active'), this.deactivateHoverFilter(), 'bubble' !==
                    t.config.chart.type &&
                    this.marker.resetPointsSize(), null !== n &&
                    n.classList.remove('apexcharts-active'), null !==
                    this.ycrosshairs && this.ycrosshairs.classList.remove(
                        'apexcharts-active'), this.blxaxisTooltip &&
                    this.xaxisTooltip.classList.remove(
                        'apexcharts-active'), this.yaxisTooltips.length) {
                        null === this.yaxisTTEls &&
                        (this.yaxisTTEls = t.globals.dom.baseEl.querySelectorAll(
                            '.apexcharts-yaxistooltip'));
                        for (var i = 0; i <
                        this.yaxisTTEls.length; i++) this.yaxisTTEls[i].classList.remove(
                            'apexcharts-active');
                    }
                    t.config.legend.tooltipHoverFormatter &&
                    this.legendLabels.forEach((function (e) {
                        var t = e.getAttribute('data:default-text');
                        e.innerHTML = decodeURIComponent(t);
                    }));
                },
            },
            {
                key: 'markerClick', value: function (e, t, n) {
                    var i = this.w;
                    'function' == typeof i.config.chart.events.markerClick &&
                    i.config.chart.events.markerClick(e, this.ctx, {
                        seriesIndex: t,
                        dataPointIndex: n,
                        w: i,
                    }), this.ctx.events.fireEvent('markerClick', [
                        e,
                        this.ctx,
                        { seriesIndex: t, dataPointIndex: n, w: i }]);
                },
            },
            {
                key: 'create', value: function (e, t, n, i, a) {
                    var r = arguments.length > 5 && void 0 !== arguments[5]
                        ? arguments[5]
                        : null, o = this.w, s = t;
                    'mouseup' === e.type && this.markerClick(e, n, i), null ===
                    r && (r = this.tConfig.shared);
                    var l = this.tooltipUtil.hasMarkers(),
                        c = this.tooltipUtil.getElBars();
                    if (o.config.legend.tooltipHoverFormatter) {
                        var u = o.config.legend.tooltipHoverFormatter,
                            d = Array.from(this.legendLabels);
                        d.forEach((function (e) {
                            var t = e.getAttribute('data:default-text');
                            e.innerHTML = decodeURIComponent(t);
                        }));
                        for (var h = 0; h < d.length; h++) {
                            var f = d[h], p = parseInt(f.getAttribute('i'), 10),
                                m = decodeURIComponent(
                                    f.getAttribute('data:default-text')),
                                g = u(m, {
                                    seriesIndex: r ? p : n,
                                    dataPointIndex: i,
                                    w: o,
                                });
                            if (r) f.innerHTML = o.globals.collapsedSeriesIndices.indexOf(
                                p) < 0 ? g : m; else if (f.innerHTML = p === n
                                ? g
                                : m, n === p) break;
                        }
                    }
                    if (r) {
                        if (s.tooltipLabels.drawSeriesTexts({
                            ttItems: a,
                            i: n,
                            j: i,
                            shared: !this.showOnIntersect &&
                                this.tConfig.shared,
                        }), l && (o.globals.markers.largestSize > 0
                            ? s.marker.enlargePoints(i)
                            : s.tooltipPosition.moveDynamicPointsOnHover(
                                i)), this.tooltipUtil.hasBars() &&
                        (this.barSeriesHeight = this.tooltipUtil.getBarsHeight(
                            c), this.barSeriesHeight > 0)) {
                            var y = new v(this.ctx),
                                b = o.globals.dom.Paper.select(
                                    '.apexcharts-bar-area[j=\''.concat(i,
                                        '\']'));
                            this.deactivateHoverFilter(), this.tooltipPosition.moveStickyTooltipOverBars(
                                i);
                            for (var x = 0; x < b.length; x++) y.pathMouseEnter(
                                b[x]);
                        }
                    } else s.tooltipLabels.drawSeriesTexts({
                        shared: !1,
                        ttItems: a,
                        i: n,
                        j: i,
                    }), this.tooltipUtil.hasBars() &&
                    s.tooltipPosition.moveStickyTooltipOverBars(i), l &&
                    s.tooltipPosition.moveMarkers(n, i);
                },
            }]), e;
    }(), ye = function (e) {
        s(a, e);
        var n = d(a);

        function a () {return t(this, a), n.apply(this, arguments);}

        return i(a, [
            {
                key: 'draw', value: function (e, t) {
                    var n = this, i = this.w;
                    this.graphics = new v(this.ctx), this.bar = new Y(this.ctx,
                        this.xyRatios);
                    var a = new x(this.ctx, i);
                    e = a.getLogSeries(e), this.yRatio = a.getLogYRatios(
                        this.yRatio), this.barHelpers.initVariables(
                        e), '100%' === i.config.chart.stackType &&
                    (e = i.globals.seriesPercent.slice()), this.series = e, this.totalItems = 0, this.prevY = [], this.prevX = [], this.prevYF = [], this.prevXF = [], this.prevYVal = [], this.prevXVal = [], this.xArrj = [], this.xArrjF = [], this.xArrjVal = [], this.yArrj = [], this.yArrjF = [], this.yArrjVal = [];
                    for (var r = 0; r < e.length; r++) e[r].length > 0 &&
                    (this.totalItems += e[r].length);
                    for (var s = this.graphics.group(
                        { class: 'apexcharts-bar-series apexcharts-plot-series' }), l = 0, c = 0, u = function (
                        a, r) {
                        var u = void 0, d = void 0, h = void 0, f = void 0,
                            m = [], g = [],
                            v = i.globals.comboCharts ? t[a] : a;
                        n.yRatio.length > 1 &&
                        (n.yaxisIndex = v), n.isReversed = i.config.yaxis[n.yaxisIndex] &&
                            i.config.yaxis[n.yaxisIndex].reversed;
                        var y = n.graphics.group({
                            class: 'apexcharts-series',
                            seriesName: p.escapeString(
                                i.globals.seriesNames[v]),
                            rel: a + 1,
                            'data:realIndex': v,
                        });
                        n.ctx.series.addCollapsedClassToSeries(y, v);
                        var b = n.graphics.group({
                                class: 'apexcharts-datalabels',
                                'data:realIndex': v,
                            }), x = 0, _ = 0,
                            w = n.initialPositions(l, c, u, d, h, f);
                        c = w.y, x = w.barHeight, d = w.yDivision, f = w.zeroW, l = w.x, _ = w.barWidth, u = w.xDivision, h = w.zeroH, n.yArrj = [], n.yArrjF = [], n.yArrjVal = [], n.xArrj = [], n.xArrjF = [], n.xArrjVal = [], 1 ===
                        n.prevY.length &&
                        n.prevY[0].every((function (e) {return isNaN(e);})) &&
                        (n.prevY[0] = n.prevY[0].map(
                            (function (e) {return h;})), n.prevYF[0] = n.prevYF[0].map(
                            (function (e) {return 0;})));
                        for (var k = 0; k < i.globals.dataPoints; k++) {
                            var M = n.barHelpers.getStrokeWidth(a, k, v), L = {
                                indexes: { i: a, j: k, realIndex: v, bc: r },
                                strokeWidth: M,
                                x: l,
                                y: c,
                                elSeries: y,
                            }, S = null;
                            n.isHorizontal
                                ? (S = n.drawStackedBarPaths(o(o({}, L), {}, {
                                    zeroW: f,
                                    barHeight: x,
                                    yDivision: d,
                                })), _ = n.series[a][k] / n.invertedYRatio)
                                : (S = n.drawStackedColumnPaths(o(o({}, L), {},
                                {
                                    xDivision: u,
                                    barWidth: _,
                                    zeroH: h,
                                })), x = n.series[a][k] /
                                n.yRatio[n.yaxisIndex]), c = S.y, l = S.x, m.push(
                                l), g.push(c);
                            var T = n.barHelpers.getPathFillColor(e, a, k, v);
                            y = n.renderSeries({
                                realIndex: v,
                                pathFill: T,
                                j: k,
                                i: a,
                                pathFrom: S.pathFrom,
                                pathTo: S.pathTo,
                                strokeWidth: M,
                                elSeries: y,
                                x: l,
                                y: c,
                                series: e,
                                barHeight: x,
                                barWidth: _,
                                elDataLabelsWrap: b,
                                type: 'bar',
                                visibleSeries: 0,
                            });
                        }
                        i.globals.seriesXvalues[v] = m, i.globals.seriesYvalues[v] = g, n.prevY.push(
                            n.yArrj), n.prevYF.push(n.yArrjF), n.prevYVal.push(
                            n.yArrjVal), n.prevX.push(n.xArrj), n.prevXF.push(
                            n.xArrjF), n.prevXVal.push(n.xArrjVal), s.add(y);
                    }, d = 0, h = 0; d < e.length; d++, h++) u(d, h);
                    return s;
                },
            },
            {
                key: 'initialPositions',
                value: function (e, t, n, i, a, r) {
                    var o, s, l = this.w;
                    return this.isHorizontal
                        ? (o = (o = i = l.globals.gridHeight /
                            l.globals.dataPoints) *
                            parseInt(l.config.plotOptions.bar.barHeight, 10) /
                            100, r = this.baseLineInvertedY +
                            l.globals.padHorizontal +
                            (this.isReversed ? l.globals.gridWidth : 0) -
                            (this.isReversed
                                ? 2 * this.baseLineInvertedY
                                : 0), t = (i - o) / 2)
                        : (s = n = l.globals.gridWidth /
                            l.globals.dataPoints, s = l.globals.isXNumeric &&
                        l.globals.dataPoints > 1
                            ? (n = l.globals.minXDiff / this.xRatio) *
                            parseInt(this.barOptions.columnWidth, 10) / 100
                            : s *
                            parseInt(l.config.plotOptions.bar.columnWidth, 10) /
                            100, a = this.baseLineY[this.yaxisIndex] +
                            (this.isReversed ? l.globals.gridHeight : 0) -
                            (this.isReversed
                                ? 2 * this.baseLineY[this.yaxisIndex]
                                : 0), e = l.globals.padHorizontal + (n - s) /
                            2), {
                        x: e,
                        y: t,
                        yDivision: i,
                        xDivision: n,
                        barHeight: o,
                        barWidth: s,
                        zeroH: a,
                        zeroW: r,
                    };
                },
            },
            {
                key: 'drawStackedBarPaths',
                value: function (e) {
                    for (var t, n = e.indexes, i = e.barHeight, a = e.strokeWidth, r = e.zeroW, o = e.x, s = e.y, l = e.yDivision, c = e.elSeries, u = this.w, d = s, h = n.i, f = n.j, p = 0, m = 0; m <
                    this.prevXF.length; m++) p += this.prevXF[m][f];
                    if (h > 0) {
                        var g = r;
                        this.prevXVal[h - 1][f] < 0 ? g = this.series[h][f] >= 0
                            ? this.prevX[h - 1][f] + p - 2 *
                            (this.isReversed ? p : 0)
                            : this.prevX[h - 1][f] : this.prevXVal[h - 1][f] >=
                            0 && (g = this.series[h][f] >= 0
                                ? this.prevX[h - 1][f]
                                : this.prevX[h - 1][f] - p + 2 *
                                (this.isReversed ? p : 0)), t = g;
                    } else t = r;
                    o = null === this.series[h][f] ? t : t + this.series[h][f] /
                        this.invertedYRatio - 2 *
                        (this.isReversed ? this.series[h][f] /
                            this.invertedYRatio : 0), this.xArrj.push(
                        o), this.xArrjF.push(
                        Math.abs(t - o)), this.xArrjVal.push(this.series[h][f]);
                    var v = this.barHelpers.getBarpaths({
                        barYPosition: d,
                        barHeight: i,
                        x1: t,
                        x2: o,
                        strokeWidth: a,
                        series: this.series,
                        realIndex: n.realIndex,
                        i: h,
                        j: f,
                        w: u,
                    });
                    return this.barHelpers.barBackground({
                        j: f,
                        i: h,
                        y1: d,
                        y2: i,
                        elSeries: c,
                    }), s += l, {
                        pathTo: v.pathTo,
                        pathFrom: v.pathFrom,
                        x: o,
                        y: s,
                    };
                },
            },
            {
                key: 'drawStackedColumnPaths', value: function (e) {
                    var t = e.indexes, n = e.x, i = e.y, a = e.xDivision,
                        r = e.barWidth, o = e.zeroH,
                        s = (e.strokeWidth, e.elSeries), l = this.w, c = t.i,
                        u = t.j, d = t.bc;
                    if (l.globals.isXNumeric) {
                        var h = l.globals.seriesX[c][u];
                        h || (h = 0), n = (h - l.globals.minX) / this.xRatio -
                            r / 2;
                    }
                    for (var f, p = n, m = 0, g = 0; g <
                    this.prevYF.length; g++) m += isNaN(this.prevYF[g][u])
                        ? 0
                        : this.prevYF[g][u];
                    if (c > 0 && !l.globals.isXNumeric || c > 0 &&
                        l.globals.isXNumeric && l.globals.seriesX[c - 1][u] ===
                        l.globals.seriesX[c][u]) {
                        var v, y, b = Math.min(this.yRatio.length + 1, c + 1);
                        if (void 0 !== this.prevY[c - 1]) for (var x = 1; x <
                        b; x++) if (!isNaN(this.prevY[c - x][u])) {
                            y = this.prevY[c - x][u];
                            break;
                        }
                        for (var _ = 1; _ < b; _++) {
                            if (this.prevYVal[c - _][u] < 0) {
                                v = this.series[c][u] >= 0 ? y - m + 2 *
                                    (this.isReversed ? m : 0) : y;
                                break;
                            }
                            if (this.prevYVal[c - _][u] >= 0) {
                                v = this.series[c][u] >= 0 ? y : y + m - 2 *
                                    (this.isReversed ? m : 0);
                                break;
                            }
                        }
                        void 0 === v &&
                        (v = l.globals.gridHeight), f = this.prevYF[0].every(
                            (function (e) {return 0 === e;})) &&
                        this.prevYF.slice(1, c).
                            every((function (e) {
                                return e.every(
                                    (function (e) {return isNaN(e);}));
                            })) ? l.globals.gridHeight - o : v;
                    } else f = l.globals.gridHeight - o;
                    i = f - this.series[c][u] / this.yRatio[this.yaxisIndex] +
                        2 * (this.isReversed ? this.series[c][u] /
                            this.yRatio[this.yaxisIndex] : 0), this.yArrj.push(
                        i), this.yArrjF.push(
                        Math.abs(f - i)), this.yArrjVal.push(this.series[c][u]);
                    var w = this.barHelpers.getColumnPaths({
                        barXPosition: p,
                        barWidth: r,
                        y1: f,
                        y2: i,
                        yRatio: this.yRatio[this.yaxisIndex],
                        strokeWidth: this.strokeWidth,
                        series: this.series,
                        realIndex: t.realIndex,
                        i: c,
                        j: u,
                        w: l,
                    });
                    return this.barHelpers.barBackground({
                        bc: d,
                        j: u,
                        i: c,
                        x1: p,
                        x2: r,
                        elSeries: s,
                    }), n += a, {
                        pathTo: w.pathTo,
                        pathFrom: w.pathFrom,
                        x: l.globals.isXNumeric ? n - a : n,
                        y: i,
                    };
                },
            }]), a;
    }(Y), be = function (e) {
        s(a, e);
        var n = d(a);

        function a () {return t(this, a), n.apply(this, arguments);}

        return i(a, [
            {
                key: 'draw', value: function (e, t) {
                    var n = this.w, i = new v(this.ctx), a = new S(this.ctx);
                    this.candlestickOptions = this.w.config.plotOptions.candlestick;
                    var r = new x(this.ctx, n);
                    e = r.getLogSeries(
                        e), this.series = e, this.yRatio = r.getLogYRatios(
                        this.yRatio), this.barHelpers.initVariables(e);
                    for (var o = i.group(
                        { class: 'apexcharts-candlestick-series apexcharts-plot-series' }), s = 0; s <
                         e.length; s++) {
                        var l, c, u, d, h = void 0, f = void 0, m = [], g = [],
                            y = n.globals.comboCharts ? t[s] : s, b = i.group({
                                class: 'apexcharts-series',
                                seriesName: p.escapeString(
                                    n.globals.seriesNames[y]),
                                rel: s + 1,
                                'data:realIndex': y,
                            });
                        e[s].length > 0 && (this.visibleI = this.visibleI +
                            1), this.yRatio.length > 1 && (this.yaxisIndex = y);
                        var _ = this.barHelpers.initialPositions();
                        f = _.y, u = _.barHeight, h = _.x, d = _.barWidth, l = _.xDivision, c = _.zeroH, g.push(
                            h + d / 2);
                        for (var w = i.group({
                            class: 'apexcharts-datalabels',
                            'data:realIndex': y,
                        }), k = 0; k < n.globals.dataPoints; k++) {
                            var M, L = this.barHelpers.getStrokeWidth(s, k, y),
                                T = this.drawCandleStickPaths({
                                    indexes: { i: s, j: k, realIndex: y },
                                    x: h,
                                    y: f,
                                    xDivision: l,
                                    barWidth: d,
                                    zeroH: c,
                                    strokeWidth: L,
                                    elSeries: b,
                                });
                            f = T.y, h = T.x, M = T.color, k > 0 &&
                            g.push(h + d / 2), m.push(f);
                            var A = a.fillPath({
                                seriesNumber: y,
                                dataPointIndex: k,
                                color: M,
                                value: e[s][k],
                            }), D = this.candlestickOptions.wick.useFillColor
                                ? M
                                : void 0;
                            this.renderSeries({
                                realIndex: y,
                                pathFill: A,
                                lineFill: D,
                                j: k,
                                i: s,
                                pathFrom: T.pathFrom,
                                pathTo: T.pathTo,
                                strokeWidth: L,
                                elSeries: b,
                                x: h,
                                y: f,
                                series: e,
                                barHeight: u,
                                barWidth: d,
                                elDataLabelsWrap: w,
                                visibleSeries: this.visibleI,
                                type: 'candlestick',
                            });
                        }
                        n.globals.seriesXvalues[y] = g, n.globals.seriesYvalues[y] = m, o.add(
                            b);
                    }
                    return o;
                },
            },
            {
                key: 'drawCandleStickPaths',
                value: function (e) {
                    var t = e.indexes, n = e.x, i = (e.y, e.xDivision),
                        a = e.barWidth, r = e.zeroH, o = e.strokeWidth,
                        s = this.w, l = new v(this.ctx), c = t.i, u = t.j,
                        d = !0,
                        h = s.config.plotOptions.candlestick.colors.upward,
                        f = s.config.plotOptions.candlestick.colors.downward,
                        p = this.yRatio[this.yaxisIndex], m = t.realIndex,
                        g = this.getOHLCValue(m, u), y = r, b = r;
                    g.o > g.c && (d = !1);
                    var x = Math.min(g.o, g.c), _ = Math.max(g.o, g.c);
                    s.globals.isXNumeric &&
                    (n = (s.globals.seriesX[m][u] - s.globals.minX) /
                        this.xRatio - a / 2);
                    var w = n + a * this.visibleI;
                    void 0 === this.series[c][u] || null === this.series[c][u]
                        ? x = r
                        : (x = r - x / p, _ = r - _ / p, y = r - g.h /
                        p, b = r - g.l / p);
                    var k = l.move(w, r), M = l.move(w, x);
                    return s.globals.previousPaths.length > 0 &&
                    (M = this.getPreviousPath(m, u, !0)), k = l.move(w, _) +
                        l.line(w + a / 2, _) + l.line(w + a / 2, y) +
                        l.line(w + a / 2, _) + l.line(w + a, _) +
                        l.line(w + a, x) + l.line(w + a / 2, x) +
                        l.line(w + a / 2, b) + l.line(w + a / 2, x) +
                        l.line(w, x) + l.line(w, _ - o / 2), M += l.move(w,
                        x), s.globals.isXNumeric || (n += i), {
                        pathTo: k,
                        pathFrom: M,
                        x: n,
                        y: _,
                        barXPosition: w,
                        color: d ? h : f,
                    };
                },
            },
            {
                key: 'getOHLCValue', value: function (e, t) {
                    var n = this.w;
                    return {
                        o: n.globals.seriesCandleO[e][t],
                        h: n.globals.seriesCandleH[e][t],
                        l: n.globals.seriesCandleL[e][t],
                        c: n.globals.seriesCandleC[e][t],
                    };
                },
            }]), a;
    }(Y), xe = function () {
        function e (n) {t(this, e), this.ctx = n, this.w = n.w;}

        return i(e, [
            {
                key: 'checkColorRange',
                value: function () {
                    var e = this.w, t = !1,
                        n = e.config.plotOptions[e.config.chart.type];
                    return n.colorScale.ranges.length > 0 &&
                    n.colorScale.ranges.map(
                        (function (e, n) {e.from <= 0 && (t = !0);})), t;
                },
            },
            {
                key: 'getShadeColor',
                value: function (e, t, n, i) {
                    var a = this.w, r = 1,
                        o = a.config.plotOptions[e].shadeIntensity,
                        s = this.determineColor(e, t, n);
                    a.globals.hasNegs || i
                        ? r = a.config.plotOptions[e].reverseNegativeShade
                        ? s.percent < 0 ? s.percent / 100 * (1.25 * o) : (1 -
                            s.percent / 100) * (1.25 * o)
                        : s.percent <= 0 ? 1 - (1 + s.percent / 100) * o : (1 -
                            s.percent / 100) * o
                        : (r = 1 - s.percent / 100, 'treemap' === e &&
                        (r = (1 - s.percent / 100) * (1.25 * o)));
                    var l = s.color, c = new p;
                    return a.config.plotOptions[e].enableShades &&
                    (r < 0 && (r = 0), l = 'dark' === this.w.config.theme.mode
                        ? p.hexToRgba(c.shadeColor(-1 * r, s.color),
                            a.config.fill.opacity)
                        : p.hexToRgba(c.shadeColor(r, s.color),
                            a.config.fill.opacity)), {
                        color: l,
                        colorProps: s,
                    };
                },
            },
            {
                key: 'determineColor',
                value: function (e, t, n) {
                    var i = this.w, a = i.globals.series[t][n],
                        r = i.config.plotOptions[e],
                        o = r.colorScale.inverse ? n : t;
                    i.config.plotOptions[e].distributed && (o = n);
                    var s = i.globals.colors[o], l = null,
                        c = Math.min.apply(Math, h(i.globals.series[t])),
                        u = Math.max.apply(Math, h(i.globals.series[t]));
                    r.distributed || 'heatmap' !== e ||
                    (c = i.globals.minY, u = i.globals.maxY), void 0 !==
                    r.colorScale.min && (c = r.colorScale.min < i.globals.minY
                        ? r.colorScale.min
                        : i.globals.minY, u = r.colorScale.max > i.globals.maxY
                        ? r.colorScale.max
                        : i.globals.maxY);
                    var d = Math.abs(u) + Math.abs(c),
                        f = 100 * a / (0 === d ? d - 1e-6 : d);
                    return r.colorScale.ranges.length > 0 &&
                    r.colorScale.ranges.map((function (e, t) {
                        if (a >= e.from && a <= e.to) {
                            s = e.color, l = e.foreColor
                                ? e.foreColor
                                : null, c = e.from, u = e.to;
                            var n = Math.abs(u) + Math.abs(c);
                            f = 100 * a / (0 === n ? n - 1e-6 : n);
                        }
                    })), { color: s, foreColor: l, percent: f };
                },
            },
            {
                key: 'calculateDataLabels',
                value: function (e) {
                    var t = e.text, n = e.x, i = e.y, a = e.i, r = e.j,
                        o = e.colorProps, s = e.fontSize,
                        l = this.w.config.dataLabels, c = new v(this.ctx),
                        u = new D(this.ctx), d = null;
                    if (l.enabled) {
                        d = c.group({ class: 'apexcharts-data-labels' });
                        var h = l.offsetX, f = l.offsetY, p = n + h,
                            m = i + parseFloat(l.style.fontSize) / 3 + f;
                        u.plotDataLabelsText({
                            x: p,
                            y: m,
                            text: t,
                            i: a,
                            j: r,
                            color: o.foreColor,
                            parent: d,
                            fontSize: s,
                            dataLabelsConfig: l,
                        });
                    }
                    return d;
                },
            },
            {
                key: 'addListeners', value: function (e) {
                    var t = new v(this.ctx);
                    e.node.addEventListener('mouseenter',
                        t.pathMouseEnter.bind(this,
                            e)), e.node.addEventListener('mouseleave',
                        t.pathMouseLeave.bind(this,
                            e)), e.node.addEventListener('mousedown',
                        t.pathMouseDown.bind(this, e));
                },
            }]), e;
    }(), _e = function () {
        function e (n, i) {
            t(this,
                e), this.ctx = n, this.w = n.w, this.xRatio = i.xRatio, this.yRatio = i.yRatio, this.dynamicAnim = this.w.config.chart.animations.dynamicAnimation, this.helpers = new xe(
                n), this.rectRadius = this.w.config.plotOptions.heatmap.radius, this.strokeWidth = this.w.config.stroke.show
                ? this.w.config.stroke.width
                : 0;
        }

        return i(e, [
            {
                key: 'draw', value: function (e) {
                    var t = this.w, n = new v(this.ctx),
                        i = n.group({ class: 'apexcharts-heatmap' });
                    i.attr('clip-path',
                        'url(#gridRectMask'.concat(t.globals.cuid, ')'));
                    var a = t.globals.gridWidth / t.globals.dataPoints,
                        r = t.globals.gridHeight / t.globals.series.length,
                        o = 0, s = !1;
                    this.negRange = this.helpers.checkColorRange();
                    var l = e.slice();
                    t.config.yaxis[0].reversed && (s = !0, l.reverse());
                    for (var c = s ? 0 : l.length - 1; s ? c < l.length : c >=
                        0; s ? c++ : c--) {
                        var u = n.group({
                            class: 'apexcharts-series apexcharts-heatmap-series',
                            seriesName: p.escapeString(
                                t.globals.seriesNames[c]),
                            rel: c + 1,
                            'data:realIndex': c,
                        });
                        if (this.ctx.series.addCollapsedClassToSeries(u,
                            c), t.config.chart.dropShadow.enabled) {
                            var d = t.config.chart.dropShadow;
                            new m(this.ctx).dropShadow(u, d, c);
                        }
                        for (var h = 0, f = t.config.plotOptions.heatmap.shadeIntensity, g = 0; g <
                        l[c].length; g++) {
                            var y = this.helpers.getShadeColor(
                                t.config.chart.type, c, g, this.negRange),
                                b = y.color, x = y.colorProps;
                            'image' === t.config.fill.type &&
                            (b = new S(this.ctx).fillPath({
                                seriesNumber: c,
                                dataPointIndex: g,
                                opacity: t.globals.hasNegs
                                    ? x.percent < 0
                                        ? 1 - (1 + x.percent / 100)
                                        : f + x.percent / 100
                                    : x.percent / 100,
                                patternID: p.randomId(),
                                width: t.config.fill.image.width
                                    ? t.config.fill.image.width
                                    : a,
                                height: t.config.fill.image.height
                                    ? t.config.fill.image.height
                                    : r,
                            }));
                            var _ = this.rectRadius,
                                w = n.drawRect(h, o, a, r, _);
                            if (w.attr({ cx: h, cy: o }), w.node.classList.add(
                                'apexcharts-heatmap-rect'), u.add(w), w.attr({
                                fill: b,
                                i: c,
                                index: c,
                                j: g,
                                val: l[c][g],
                                'stroke-width': this.strokeWidth,
                                stroke: t.config.plotOptions.heatmap.useFillColorAsStroke
                                    ? b
                                    : t.globals.stroke.colors[0],
                                color: b,
                            }), this.helpers.addListeners(
                                w), t.config.chart.animations.enabled &&
                            !t.globals.dataChanged) {
                                var k = 1;
                                t.globals.resized ||
                                (k = t.config.chart.animations.speed), this.animateHeatMap(
                                    w, h, o, a, r, k);
                            }
                            if (t.globals.dataChanged) {
                                var M = 1;
                                if (this.dynamicAnim.enabled &&
                                    t.globals.shouldAnimate) {
                                    M = this.dynamicAnim.speed;
                                    var L = t.globals.previousPaths[c] &&
                                        t.globals.previousPaths[c][g] &&
                                        t.globals.previousPaths[c][g].color;
                                    L ||
                                    (L = 'rgba(255, 255, 255, 0)'), this.animateHeatColor(
                                        w, p.isColorHex(L) ? L : p.rgb2hex(L),
                                        p.isColorHex(b) ? b : p.rgb2hex(b), M);
                                }
                            }
                            var T = (0, t.config.dataLabels.formatter)(
                                t.globals.series[c][g], {
                                    value: t.globals.series[c][g],
                                    seriesIndex: c,
                                    dataPointIndex: g,
                                    w: t,
                                }), A = this.helpers.calculateDataLabels({
                                text: T,
                                x: h + a / 2,
                                y: o + r / 2,
                                i: c,
                                j: g,
                                colorProps: x,
                                series: l,
                            });
                            null !== A && u.add(A), h += a;
                        }
                        o += r, i.add(u);
                    }
                    var D = t.globals.yAxisScale[0].result.slice();
                    t.config.yaxis[0].reversed ? D.unshift('') : D.push(
                        ''), t.globals.yAxisScale[0].result = D;
                    var C = t.globals.gridHeight / t.globals.series.length;
                    return t.config.yaxis[0].labels.offsetY = -C / 2, i;
                },
            },
            {
                key: 'animateHeatMap',
                value: function (e, t, n, i, a, r) {
                    var o = new g(this.ctx);
                    o.animateRect(e,
                        { x: t + i / 2, y: n + a / 2, width: 0, height: 0 },
                        { x: t, y: n, width: i, height: a }, r,
                        (function () {o.animationCompleted(e);}));
                },
            },
            {
                key: 'animateHeatColor',
                value: function (e, t, n, i) {
                    e.attr({ fill: t }).
                        animate(i).
                        attr({ fill: n });
                },
            }]), e;
    }(), we = function () {
        function e (n) {
            t(this, e), this.ctx = n, this.w = n.w;
        }

        return i(e, [
            {
                key: 'drawYAxisTexts',
                value: function (e, t, n, i) {
                    var a = this.w, r = a.config.yaxis[0],
                        o = a.globals.yLabelFormatters[0];
                    return new v(this.ctx).drawText({
                        x: e + r.labels.offsetX,
                        y: t + r.labels.offsetY,
                        text: o(i, n),
                        textAnchor: 'middle',
                        fontSize: r.labels.style.fontSize,
                        fontFamily: r.labels.style.fontFamily,
                        foreColor: Array.isArray(r.labels.style.colors)
                            ? r.labels.style.colors[n]
                            : r.labels.style.colors,
                    });
                },
            }]), e;
    }(), ke = function () {
        function e (n) {
            t(this, e), this.ctx = n, this.w = n.w;
            var i = this.w;
            this.chartType = this.w.config.chart.type, this.initialAnim = this.w.config.chart.animations.enabled, this.dynamicAnim = this.initialAnim &&
                this.w.config.chart.animations.dynamicAnimation.enabled, this.animBeginArr = [0], this.animDur = 0, this.donutDataLabels = this.w.config.plotOptions.pie.donut.labels, this.lineColorArr = void 0 !==
            i.globals.stroke.colors
                ? i.globals.stroke.colors
                : i.globals.colors, this.defaultSize = Math.min(
                i.globals.gridWidth,
                i.globals.gridHeight), this.centerY = this.defaultSize /
                2, this.centerX = i.globals.gridWidth / 2, 'radialBar' ===
            i.config.chart.type
                ? this.fullAngle = 360
                : this.fullAngle = Math.abs(i.config.plotOptions.pie.endAngle -
                    i.config.plotOptions.pie.startAngle), this.initialAngle = i.config.plotOptions.pie.startAngle %
                this.fullAngle, i.globals.radialSize = this.defaultSize / 2.05 -
                i.config.stroke.width - (i.config.chart.sparkline.enabled
                    ? 0
                    : i.config.chart.dropShadow.blur), this.donutSize = i.globals.radialSize *
                parseInt(i.config.plotOptions.pie.donut.size, 10) /
                100, this.maxY = 0, this.sliceLabels = [], this.sliceSizes = [], this.prevSectorAngleArr = [];
        }

        return i(e, [
            {
                key: 'draw', value: function (e) {
                    var t = this, n = this.w, i = new v(this.ctx);
                    if (this.ret = i.group(
                        { class: 'apexcharts-pie' }), n.globals.noData) return this.ret;
                    for (var a = 0, r = 0; r < e.length; r++) a += p.negToZero(
                        e[r]);
                    var o = [], s = i.group();
                    0 === a && (a = 1e-5), e.forEach((function (e) {
                        t.maxY = Math.max(t.maxY, e);
                    })), n.config.yaxis[0].max &&
                    (this.maxY = n.config.yaxis[0].max), 'polarArea' ===
                    this.chartType && this.drawPolarElements();
                    for (var l = 0; l < e.length; l++) {
                        var c = this.fullAngle * p.negToZero(e[l]) / a;
                        o.push(c), 'polarArea' === this.chartType
                            ? (o[l] = this.fullAngle /
                                e.length, this.sliceSizes.push(
                                n.globals.radialSize * e[l] / this.maxY))
                            : this.sliceSizes.push(n.globals.radialSize);
                    }
                    if (n.globals.dataChanged) {
                        for (var u, d = 0, h = 0; h <
                        n.globals.previousPaths.length; h++) d += p.negToZero(
                            n.globals.previousPaths[h]);
                        for (var f = 0; f <
                        n.globals.previousPaths.length; f++) u = this.fullAngle *
                            p.negToZero(n.globals.previousPaths[f]) /
                            d, this.prevSectorAngleArr.push(u);
                    }
                    this.donutSize < 0 && (this.donutSize = 0);
                    var m = n.config.plotOptions.pie.customScale,
                        g = n.globals.gridWidth / 2,
                        y = n.globals.gridHeight / 2,
                        b = g - n.globals.gridWidth / 2 * m,
                        x = y - n.globals.gridHeight / 2 * m;
                    if ('donut' === this.chartType) {
                        var _ = i.drawCircle(this.donutSize);
                        _.attr({
                            cx: this.centerX,
                            cy: this.centerY,
                            fill: n.config.plotOptions.pie.donut.background
                                ? n.config.plotOptions.pie.donut.background
                                : 'transparent',
                        }), s.add(_);
                    }
                    var w = this.drawArcs(o, e);
                    if (this.sliceLabels.forEach(
                        (function (e) {w.add(e);})), s.attr({
                        transform: 'translate('.concat(b, ', ').
                            concat(x, ') scale(').
                            concat(m, ')'),
                    }), s.add(w), this.ret.add(s), this.donutDataLabels.show) {
                        var k = this.renderInnerDataLabels(this.donutDataLabels,
                            {
                                hollowSize: this.donutSize,
                                centerX: this.centerX,
                                centerY: this.centerY,
                                opacity: this.donutDataLabels.show,
                                translateX: b,
                                translateY: x,
                            });
                        this.ret.add(k);
                    }
                    return this.ret;
                },
            },
            {
                key: 'drawArcs', value: function (e, t) {
                    var n = this.w, i = new m(this.ctx), a = new v(this.ctx),
                        r = new S(this.ctx),
                        o = a.group({ class: 'apexcharts-slices' }),
                        s = this.initialAngle, l = this.initialAngle,
                        c = this.initialAngle, u = this.initialAngle;
                    this.strokeWidth = n.config.stroke.show
                        ? n.config.stroke.width
                        : 0;
                    for (var d = 0; d < e.length; d++) {
                        var h = a.group({
                            class: 'apexcharts-series apexcharts-pie-series',
                            seriesName: p.escapeString(
                                n.globals.seriesNames[d]),
                            rel: d + 1,
                            'data:realIndex': d,
                        });
                        o.add(h), l = u, c = (s = c) + e[d], u = l +
                            this.prevSectorAngleArr[d];
                        var f = c < s ? this.fullAngle + c - s : c - s,
                            g = r.fillPath({
                                seriesNumber: d,
                                size: this.sliceSizes[d],
                                value: t[d],
                            }), y = this.getChangedPath(l, u), b = a.drawPath({
                                d: y,
                                stroke: Array.isArray(this.lineColorArr)
                                    ? this.lineColorArr[d]
                                    : this.lineColorArr,
                                strokeWidth: 0,
                                fill: g,
                                fillOpacity: n.config.fill.opacity,
                                classes: 'apexcharts-pie-area apexcharts-'.concat(
                                    this.chartType.toLowerCase(), '-slice-').
                                    concat(d),
                            });
                        if (b.attr({ index: 0, j: d }), i.setSelectionFilter(b,
                            0, d), n.config.chart.dropShadow.enabled) {
                            var x = n.config.chart.dropShadow;
                            i.dropShadow(b, x, d);
                        }
                        this.addListeners(b, this.donutDataLabels), v.setAttrs(
                            b.node, {
                                'data:angle': f,
                                'data:startAngle': s,
                                'data:strokeWidth': this.strokeWidth,
                                'data:value': t[d],
                            });
                        var _ = { x: 0, y: 0 };
                        'pie' === this.chartType || 'polarArea' ===
                        this.chartType ? _ = p.polarToCartesian(this.centerX,
                            this.centerY, n.globals.radialSize / 1.25 +
                            n.config.plotOptions.pie.dataLabels.offset,
                            (s + f / 2) % this.fullAngle) : 'donut' ===
                            this.chartType &&
                            (_ = p.polarToCartesian(this.centerX, this.centerY,
                                (n.globals.radialSize + this.donutSize) / 2 +
                                n.config.plotOptions.pie.dataLabels.offset,
                                (s + f / 2) % this.fullAngle)), h.add(b);
                        var w = 0;
                        if (!this.initialAnim || n.globals.resized ||
                        n.globals.dataChanged
                            ? this.animBeginArr.push(0)
                            : (0 == (w = f / this.fullAngle *
                                n.config.chart.animations.speed) &&
                            (w = 1), this.animDur = w +
                                this.animDur, this.animBeginArr.push(
                                this.animDur)), this.dynamicAnim &&
                        n.globals.dataChanged ? this.animatePaths(b, {
                            size: this.sliceSizes[d],
                            endAngle: c,
                            startAngle: s,
                            prevStartAngle: l,
                            prevEndAngle: u,
                            animateStartingPos: !0,
                            i: d,
                            animBeginArr: this.animBeginArr,
                            shouldSetPrevPaths: !0,
                            dur: n.config.chart.animations.dynamicAnimation.speed,
                        }) : this.animatePaths(b, {
                            size: this.sliceSizes[d],
                            endAngle: c,
                            startAngle: s,
                            i: d,
                            totalItems: e.length - 1,
                            animBeginArr: this.animBeginArr,
                            dur: w,
                        }), n.config.plotOptions.pie.expandOnClick &&
                        'polarArea' !== this.chartType &&
                        b.click(this.pieClicked.bind(this, d)), void 0 !==
                        n.globals.selectedDataPoints[0] &&
                        n.globals.selectedDataPoints[0].indexOf(d) > -1 &&
                        this.pieClicked(d), n.config.dataLabels.enabled) {
                            var k = _.x, M = _.y,
                                L = 100 * f / this.fullAngle + '%';
                            if (0 !== f &&
                                n.config.plotOptions.pie.dataLabels.minAngleToShowLabel <
                                e[d]) {
                                var T = n.config.dataLabels.formatter;
                                void 0 !== T &&
                                (L = T(n.globals.seriesPercent[d][0],
                                    { seriesIndex: d, w: n }));
                                var A = n.globals.dataLabels.style.colors[d],
                                    D = a.group(
                                        { class: 'apexcharts-datalabels' }),
                                    C = a.drawText({
                                        x: k,
                                        y: M,
                                        text: L,
                                        textAnchor: 'middle',
                                        fontSize: n.config.dataLabels.style.fontSize,
                                        fontFamily: n.config.dataLabels.style.fontFamily,
                                        fontWeight: n.config.dataLabels.style.fontWeight,
                                        foreColor: A,
                                    });
                                if (D.add(
                                    C), n.config.dataLabels.dropShadow.enabled) {
                                    var E = n.config.dataLabels.dropShadow;
                                    i.dropShadow(C, E);
                                }
                                C.node.classList.add(
                                    'apexcharts-pie-label'), n.config.chart.animations.animate &&
                                !1 === n.globals.resized &&
                                (C.node.classList.add(
                                    'apexcharts-pie-label-delay'), C.node.style.animationDelay = n.config.chart.animations.speed /
                                    940 + 's'), this.sliceLabels.push(D);
                            }
                        }
                    }
                    return o;
                },
            },
            {
                key: 'addListeners',
                value: function (e, t) {
                    var n = new v(this.ctx);
                    e.node.addEventListener('mouseenter',
                        n.pathMouseEnter.bind(this,
                            e)), e.node.addEventListener('mouseleave',
                        n.pathMouseLeave.bind(this,
                            e)), e.node.addEventListener('mouseleave',
                        this.revertDataLabelsInner.bind(this, e.node,
                            t)), e.node.addEventListener('mousedown',
                        n.pathMouseDown.bind(this,
                            e)), this.donutDataLabels.total.showAlways ||
                    (e.node.addEventListener('mouseenter',
                        this.printDataLabelsInner.bind(this, e.node,
                            t)), e.node.addEventListener('mousedown',
                        this.printDataLabelsInner.bind(this, e.node, t)));
                },
            },
            {
                key: 'animatePaths',
                value: function (e, t) {
                    var n = this.w,
                        i = t.endAngle < t.startAngle ? this.fullAngle +
                            t.endAngle - t.startAngle : t.endAngle -
                            t.startAngle, a = i, r = t.startAngle,
                        o = t.startAngle;
                    void 0 !== t.prevStartAngle && void 0 !== t.prevEndAngle &&
                    (r = t.prevEndAngle, a = t.prevEndAngle < t.prevStartAngle
                        ? this.fullAngle + t.prevEndAngle - t.prevStartAngle
                        : t.prevEndAngle - t.prevStartAngle), t.i ===
                    n.config.series.length - 1 && (i + o > this.fullAngle
                        ? t.endAngle = t.endAngle - (i + o)
                        : i + o < this.fullAngle && (t.endAngle = t.endAngle +
                        (this.fullAngle - (i + o)))), i === this.fullAngle &&
                    (i = this.fullAngle - .01), this.animateArc(e, r, o, i, a,
                        t);
                },
            },
            {
                key: 'animateArc', value: function (e, t, n, i, a, r) {
                    var o, s = this, l = this.w, c = new g(this.ctx),
                        u = r.size;
                    (isNaN(t) || isNaN(a)) && (t = n, a = i, r.dur = 0);
                    var d = i, h = n,
                        f = t < n ? this.fullAngle + t - n : t - n;
                    l.globals.dataChanged && r.shouldSetPrevPaths &&
                    r.prevEndAngle && (o = s.getPiePath({
                        me: s,
                        startAngle: r.prevStartAngle,
                        angle: r.prevEndAngle < r.prevStartAngle
                            ? this.fullAngle + r.prevEndAngle - r.prevStartAngle
                            : r.prevEndAngle - r.prevStartAngle,
                        size: u,
                    }), e.attr({ d: o })), 0 !== r.dur ? e.animate(r.dur,
                        l.globals.easing, r.animBeginArr[r.i]).
                        afterAll((function () {
                            'pie' !== s.chartType && 'donut' !== s.chartType &&
                            'polarArea' !== s.chartType || this.animate(
                                l.config.chart.animations.dynamicAnimation.speed).
                                attr({ 'stroke-width': s.strokeWidth }), r.i ===
                            l.config.series.length - 1 &&
                            c.animationCompleted(e);
                        })).
                        during((function (l) {
                            d = f + (i - f) * l, r.animateStartingPos &&
                            (d = a + (i - a) * l, h = t - a + (n - (t - a)) *
                                l), o = s.getPiePath({
                                me: s,
                                startAngle: h,
                                angle: d,
                                size: u,
                            }), e.node.setAttribute('data:pathOrig', o), e.attr(
                                { d: o });
                        })) : (o = s.getPiePath({
                        me: s,
                        startAngle: h,
                        angle: i,
                        size: u,
                    }), r.isTrack ||
                    (l.globals.animationEnded = !0), e.node.setAttribute(
                        'data:pathOrig', o), e.attr(
                        { d: o, 'stroke-width': s.strokeWidth }));
                },
            },
            {
                key: 'pieClicked',
                value: function (e) {
                    var t, n = this.w, i = this, a = i.sliceSizes[e] +
                        (n.config.plotOptions.pie.expandOnClick ? 4 : 0),
                        r = n.globals.dom.Paper.select(
                            '.apexcharts-'.concat(i.chartType.toLowerCase(),
                                '-slice-').concat(e)).members[0];
                    if ('true' !== r.attr('data:pieClicked')) {
                        var o = n.globals.dom.baseEl.getElementsByClassName(
                            'apexcharts-pie-area');
                        Array.prototype.forEach.call(o, (function (e) {
                            e.setAttribute('data:pieClicked', 'false');
                            var t = e.getAttribute('data:pathOrig');
                            e.setAttribute('d', t);
                        })), r.attr('data:pieClicked', 'true');
                        var s = parseInt(r.attr('data:startAngle'), 10),
                            l = parseInt(r.attr('data:angle'), 10);
                        t = i.getPiePath({
                            me: i,
                            startAngle: s,
                            angle: l,
                            size: a,
                        }), 360 !== l && r.plot(t);
                    } else {
                        r.attr(
                            { 'data:pieClicked': 'false' }), this.revertDataLabelsInner(
                            r.node, this.donutDataLabels);
                        var c = r.attr('data:pathOrig');
                        r.attr({ d: c });
                    }
                },
            },
            {
                key: 'getChangedPath', value: function (e, t) {
                    var n = '';
                    return this.dynamicAnim && this.w.globals.dataChanged &&
                    (n = this.getPiePath({
                        me: this,
                        startAngle: e,
                        angle: t - e,
                        size: this.size,
                    })), n;
                },
            },
            {
                key: 'getPiePath',
                value: function (e) {
                    var t = e.me, n = e.startAngle, i = e.angle, a = e.size,
                        r = n, o = Math.PI * (r - 90) / 180, s = i + n;
                    Math.ceil(s) >= this.fullAngle +
                    this.w.config.plotOptions.pie.startAngle % this.fullAngle &&
                    (s = this.fullAngle +
                        this.w.config.plotOptions.pie.startAngle %
                        this.fullAngle - .01), Math.ceil(s) > this.fullAngle &&
                    (s -= this.fullAngle);
                    var l = Math.PI * (s - 90) / 180,
                        c = t.centerX + a * Math.cos(o),
                        u = t.centerY + a * Math.sin(o),
                        d = t.centerX + a * Math.cos(l),
                        h = t.centerY + a * Math.sin(l),
                        f = p.polarToCartesian(t.centerX, t.centerY,
                            t.donutSize, s),
                        m = p.polarToCartesian(t.centerX, t.centerY,
                            t.donutSize, r), g = i > 180 ? 1 : 0,
                        v = ['M', c, u, 'A', a, a, 0, g, 1, d, h];
                    return 'donut' === t.chartType ? [].concat(v, [
                        'L',
                        f.x,
                        f.y,
                        'A',
                        t.donutSize,
                        t.donutSize,
                        0,
                        g,
                        0,
                        m.x,
                        m.y,
                        'L',
                        c,
                        u,
                        'z']).join(' ') : 'pie' === t.chartType ||
                    'polarArea' === t.chartType
                        ? [].concat(v, ['L', t.centerX, t.centerY, 'L', c, u]).
                            join(' ')
                        : [].concat(v).join(' ');
                },
            },
            {
                key: 'drawPolarElements',
                value: function () {
                    var e = this.w, t = new U(this.ctx), n = new v(this.ctx),
                        i = new we(this.ctx), a = n.group(), r = n.group(),
                        o = t.niceScale(0, Math.ceil(this.maxY),
                            e.config.yaxis[0].tickAmount, 0, !0),
                        s = o.result.reverse(), l = o.result.length;
                    this.maxY = o.niceMax;
                    for (var c = e.globals.radialSize, u = c /
                        (l - 1), d = 0; d < l - 1; d++) {
                        var h = n.drawCircle(c);
                        if (h.attr({
                            cx: this.centerX,
                            cy: this.centerY,
                            fill: 'none',
                            'stroke-width': e.config.plotOptions.polarArea.rings.strokeWidth,
                            stroke: e.config.plotOptions.polarArea.rings.strokeColor,
                        }), e.config.yaxis[0].show) {
                            var f = i.drawYAxisTexts(this.centerX,
                                this.centerY - c + parseInt(
                                e.config.yaxis[0].labels.style.fontSize, 10) /
                                2, d, s[d]);
                            r.add(f);
                        }
                        a.add(h), c -= u;
                    }
                    this.ret.add(a), this.ret.add(r);
                },
            },
            {
                key: 'renderInnerDataLabels', value: function (e, t) {
                    var n = this.w, i = new v(this.ctx), a = i.group({
                        class: 'apexcharts-datalabels-group',
                        transform: 'translate('.concat(
                            t.translateX ? t.translateX : 0, ', ').
                            concat(t.translateY ? t.translateY : 0, ') scale(').
                            concat(n.config.plotOptions.pie.customScale, ')'),
                    }), r = e.total.show;
                    a.node.style.opacity = t.opacity;
                    var o, s, l = t.centerX, c = t.centerY;
                    o = void 0 === e.name.color
                        ? n.globals.colors[0]
                        : e.name.color;
                    var u = e.name.fontSize, d = e.name.fontFamily,
                        h = e.value.fontWeight;
                    s = void 0 === e.value.color
                        ? n.config.chart.foreColor
                        : e.value.color;
                    var f = e.value.formatter, p = '', m = '';
                    if (r
                        ? (o = e.total.color, u = e.total.fontSize, d = e.total.fontFamily, h = e.total.fontWeight, m = e.total.label, p = e.total.formatter(
                            n))
                        : 1 === n.globals.series.length &&
                        (p = f(n.globals.series[0],
                            n), m = n.globals.seriesNames[0]), m &&
                    (m = e.name.formatter(m, e.total.show, n)), e.name.show) {
                        var g = i.drawText({
                            x: l,
                            y: c + parseFloat(e.name.offsetY),
                            text: m,
                            textAnchor: 'middle',
                            foreColor: o,
                            fontSize: u,
                            fontWeight: h,
                            fontFamily: d,
                        });
                        g.node.classList.add(
                            'apexcharts-datalabel-label'), a.add(g);
                    }
                    if (e.value.show) {
                        var y = e.name.show
                            ? parseFloat(e.value.offsetY) + 16
                            : e.value.offsetY, b = i.drawText({
                            x: l,
                            y: c + y,
                            text: p,
                            textAnchor: 'middle',
                            foreColor: s,
                            fontWeight: e.value.fontWeight,
                            fontSize: e.value.fontSize,
                            fontFamily: e.value.fontFamily,
                        });
                        b.node.classList.add(
                            'apexcharts-datalabel-value'), a.add(b);
                    }
                    return a;
                },
            },
            {
                key: 'printInnerLabels',
                value: function (e, t, n, i) {
                    var a, r = this.w;
                    i ? a = void 0 === e.name.color
                        ? r.globals.colors[parseInt(
                            i.parentNode.getAttribute('rel'), 10) - 1]
                        : e.name.color : r.globals.series.length > 1 &&
                        e.total.show && (a = e.total.color);
                    var o = r.globals.dom.baseEl.querySelector(
                        '.apexcharts-datalabel-label'),
                        s = r.globals.dom.baseEl.querySelector(
                            '.apexcharts-datalabel-value');
                    n = (0, e.value.formatter)(n, r), i || 'function' !=
                    typeof e.total.formatter || (n = e.total.formatter(r));
                    var l = t === e.total.label;
                    t = e.name.formatter(t, l, r), null !== o &&
                    (o.textContent = t), null !== s &&
                    (s.textContent = n), null !== o && (o.style.fill = a);
                },
            },
            {
                key: 'printDataLabelsInner',
                value: function (e, t) {
                    var n = this.w, i = e.getAttribute('data:value'),
                        a = n.globals.seriesNames[parseInt(
                            e.parentNode.getAttribute('rel'), 10) - 1];
                    n.globals.series.length > 1 &&
                    this.printInnerLabels(t, a, i, e);
                    var r = n.globals.dom.baseEl.querySelector(
                        '.apexcharts-datalabels-group');
                    null !== r && (r.style.opacity = 1);
                },
            },
            {
                key: 'revertDataLabelsInner', value: function (e, t, n) {
                    var i = this, a = this.w,
                        r = a.globals.dom.baseEl.querySelector(
                            '.apexcharts-datalabels-group'), o = !1,
                        s = a.globals.dom.baseEl.getElementsByClassName(
                            'apexcharts-pie-area'), l = function (e) {
                            var n = e.makeSliceOut, a = e.printLabel;
                            Array.prototype.forEach.call(s, (function (e) {
                                'true' === e.getAttribute('data:pieClicked') &&
                                (n && (o = !0), a && i.printDataLabelsInner(e, t));
                            }));
                        };
                    if (l({ makeSliceOut: !0, printLabel: !1 }), t.total.show &&
                    a.globals.series.length > 1) o && !t.total.showAlways
                        ? l({ makeSliceOut: !1, printLabel: !0 })
                        : this.printInnerLabels(t, t.total.label,
                            t.total.formatter(a)); else if (l({
                        makeSliceOut: !1,
                        printLabel: !0,
                    }), !o) if (a.globals.selectedDataPoints.length &&
                        a.globals.series.length >
                        1) if (a.globals.selectedDataPoints[0].length > 0) {
                        var c = a.globals.selectedDataPoints[0],
                            u = a.globals.dom.baseEl.querySelector(
                                '.apexcharts-'.concat(
                                    this.chartType.toLowerCase(), '-slice-').
                                    concat(c));
                        this.printDataLabelsInner(u, t);
                    } else r && a.globals.selectedDataPoints.length && 0 ===
                    a.globals.selectedDataPoints[0].length &&
                    (r.style.opacity = 0); else r && a.globals.series.length >
                    1 && (r.style.opacity = 0);
                },
            }]), e;
    }(), Me = function () {
        function e (n) {
            t(this,
                e), this.ctx = n, this.w = n.w, this.chartType = this.w.config.chart.type, this.initialAnim = this.w.config.chart.animations.enabled, this.dynamicAnim = this.initialAnim &&
                this.w.config.chart.animations.dynamicAnimation.enabled, this.animDur = 0;
            var i = this.w;
            this.graphics = new v(this.ctx), this.lineColorArr = void 0 !==
            i.globals.stroke.colors
                ? i.globals.stroke.colors
                : i.globals.colors, this.defaultSize = i.globals.svgHeight <
            i.globals.svgWidth
                ? i.globals.gridHeight + 1.5 * i.globals.goldenPadding
                : i.globals.gridWidth, this.isLog = i.config.yaxis[0].logarithmic, this.coreUtils = new x(
                this.ctx), this.maxValue = this.isLog
                ? this.coreUtils.getLogVal(i.globals.maxY, 0)
                : i.globals.maxY, this.minValue = this.isLog
                ? this.coreUtils.getLogVal(this.w.globals.minY, 0)
                : i.globals.minY, this.polygons = i.config.plotOptions.radar.polygons, this.strokeWidth = i.config.stroke.show
                ? i.config.stroke.width
                : 0, this.size = this.defaultSize / 2.1 - this.strokeWidth -
                i.config.chart.dropShadow.blur, i.config.xaxis.labels.show &&
            (this.size = this.size - i.globals.xAxisLabelsWidth /
                1.75), void 0 !== i.config.plotOptions.radar.size &&
            (this.size = i.config.plotOptions.radar.size), this.dataRadiusOfPercent = [], this.dataRadius = [], this.angleArr = [], this.yaxisLabelsTextsPos = [];
        }

        return i(e, [
            {
                key: 'draw', value: function (e) {
                    var t = this, n = this.w, i = new S(this.ctx), a = [],
                        r = new D(this.ctx);
                    e.length &&
                    (this.dataPointsLen = e[n.globals.maxValsInArrayIndex].length), this.disAngle = 2 *
                        Math.PI / this.dataPointsLen;
                    var s = n.globals.gridWidth / 2,
                        l = n.globals.gridHeight / 2,
                        c = s + n.config.plotOptions.radar.offsetX,
                        u = l + n.config.plotOptions.radar.offsetY,
                        d = this.graphics.group({
                            class: 'apexcharts-radar-series apexcharts-plot-series',
                            transform: 'translate('.concat(c || 0, ', ').
                                concat(u || 0, ')'),
                        }), h = [], f = null, g = null;
                    if (this.yaxisLabels = this.graphics.group(
                        { class: 'apexcharts-yaxis' }), e.forEach(
                        (function (e, s) {
                            var l = e.length === n.globals.dataPoints,
                                c = t.graphics.group().
                                    attr({
                                        class: 'apexcharts-series',
                                        'data:longestSeries': l,
                                        seriesName: p.escapeString(
                                            n.globals.seriesNames[s]),
                                        rel: s + 1,
                                        'data:realIndex': s,
                                    });
                            t.dataRadiusOfPercent[s] = [], t.dataRadius[s] = [], t.angleArr[s] = [], e.forEach(
                                (function (e, n) {
                                    var i = Math.abs(t.maxValue - t.minValue);
                                    e += Math.abs(t.minValue), t.isLog &&
                                    (e = t.coreUtils.getLogVal(e,
                                        0)), t.dataRadiusOfPercent[s][n] = e /
                                        i, t.dataRadius[s][n] = t.dataRadiusOfPercent[s][n] *
                                        t.size, t.angleArr[s][n] = n *
                                        t.disAngle;
                                })), h = t.getDataPointsPos(t.dataRadius[s],
                                t.angleArr[s]);
                            var u = t.createPaths(h, { x: 0, y: 0 });
                            f = t.graphics.group(
                                { class: 'apexcharts-series-markers-wrap apexcharts-element-hidden' }), g = t.graphics.group(
                                {
                                    class: 'apexcharts-datalabels',
                                    'data:realIndex': s,
                                }), n.globals.delayedElements.push(
                                { el: f.node, index: s });
                            var d = {
                                i: s,
                                realIndex: s,
                                animationDelay: s,
                                initialSpeed: n.config.chart.animations.speed,
                                dataChangeSpeed: n.config.chart.animations.dynamicAnimation.speed,
                                className: 'apexcharts-radar',
                                shouldClipToGrid: !1,
                                bindEventsOnPaths: !1,
                                stroke: n.globals.stroke.colors[s],
                                strokeLineCap: n.config.stroke.lineCap,
                            }, v = null;
                            n.globals.previousPaths.length > 0 &&
                            (v = t.getPreviousPath(s));
                            for (var y = 0; y < u.linePathsTo.length; y++) {
                                var b = t.graphics.renderPaths(o(o({}, d), {}, {
                                    pathFrom: null === v
                                        ? u.linePathsFrom[y]
                                        : v,
                                    pathTo: u.linePathsTo[y],
                                    strokeWidth: Array.isArray(t.strokeWidth)
                                        ? t.strokeWidth[s]
                                        : t.strokeWidth,
                                    fill: 'none',
                                    drawShadow: !1,
                                }));
                                c.add(b);
                                var x = i.fillPath({ seriesNumber: s }),
                                    _ = t.graphics.renderPaths(o(o({}, d), {}, {
                                        pathFrom: null === v
                                            ? u.areaPathsFrom[y]
                                            : v,
                                        pathTo: u.areaPathsTo[y],
                                        strokeWidth: 0,
                                        fill: x,
                                        drawShadow: !1,
                                    }));
                                if (n.config.chart.dropShadow.enabled) {
                                    var w = new m(t.ctx),
                                        k = n.config.chart.dropShadow;
                                    w.dropShadow(_, Object.assign({}, k,
                                        { noUserSpaceOnUse: !0 }), s);
                                }
                                c.add(_);
                            }
                            e.forEach((function (e, i) {
                                var a = new T(t.ctx).getMarkerConfig(
                                    'apexcharts-marker', s, i),
                                    l = t.graphics.drawMarker(h[i].x, h[i].y,
                                        a);
                                l.attr('rel', i), l.attr('j', i), l.attr(
                                    'index', s), l.node.setAttribute(
                                    'default-marker-size', a.pSize);
                                var u = t.graphics.group(
                                    { class: 'apexcharts-series-markers' });
                                u && u.add(l), f.add(u), c.add(f);
                                var d = n.config.dataLabels;
                                if (d.enabled) {
                                    var p = d.formatter(n.globals.series[s][i],
                                        {
                                            seriesIndex: s,
                                            dataPointIndex: i,
                                            w: n,
                                        });
                                    r.plotDataLabelsText({
                                        x: h[i].x,
                                        y: h[i].y,
                                        text: p,
                                        textAnchor: 'middle',
                                        i: s,
                                        j: s,
                                        parent: g,
                                        offsetCorrection: !1,
                                        dataLabelsConfig: o({}, d),
                                    });
                                }
                                c.add(g);
                            })), a.push(c);
                        })), this.drawPolygons(
                        { parent: d }), n.config.xaxis.labels.show) {
                        var v = this.drawXAxisTexts();
                        d.add(v);
                    }
                    return d.add(this.yaxisLabels), a.forEach(
                        (function (e) {d.add(e);})), d;
                },
            },
            {
                key: 'drawPolygons',
                value: function (e) {
                    for (var t = this, n = this.w, i = e.parent, a = new we(
                        this.ctx), r = n.globals.yAxisScale[0].result.reverse(), o = r.length, s = [], l = this.size /
                        (o - 1), c = 0; c < o; c++) s[c] = l * c;
                    s.reverse();
                    var u = [], d = [];
                    s.forEach((function (e, n) {
                        var i = t.getPolygonPos(e), a = '';
                        i.forEach((function (e, i) {
                            if (0 === n) {
                                var r = t.graphics.drawLine(e.x, e.y, 0, 0,
                                    Array.isArray(t.polygons.connectorColors)
                                        ? t.polygons.connectorColors[i]
                                        : t.polygons.connectorColors);
                                d.push(r);
                            }
                            0 === i && t.yaxisLabelsTextsPos.push(
                                { x: e.x, y: e.y }), a += e.x + ',' + e.y + ' ';
                        })), u.push(a);
                    })), u.forEach((function (e, a) {
                        var r = t.polygons.strokeColors,
                            o = t.polygons.strokeWidth,
                            s = t.graphics.drawPolygon(e,
                                Array.isArray(r) ? r[a] : r,
                                Array.isArray(o) ? o[a] : o,
                                n.globals.radarPolygons.fill.colors[a]);
                        i.add(s);
                    })), d.forEach(
                        (function (e) {i.add(e);})), n.config.yaxis[0].show &&
                    this.yaxisLabelsTextsPos.forEach((function (e, n) {
                        var i = a.drawYAxisTexts(e.x, e.y, n, r[n]);
                        t.yaxisLabels.add(i);
                    }));
                },
            },
            {
                key: 'drawXAxisTexts',
                value: function () {
                    var e = this, t = this.w, n = t.config.xaxis.labels,
                        i = this.graphics.group({ class: 'apexcharts-xaxis' }),
                        a = this.getPolygonPos(this.size);
                    return t.globals.labels.forEach((function (r, s) {
                        var l = t.config.xaxis.labels.formatter,
                            c = new D(e.ctx);
                        if (a[s]) {
                            var u = e.getTextPos(a[s], e.size), d = l(r,
                                { seriesIndex: -1, dataPointIndex: s, w: t });
                            c.plotDataLabelsText({
                                x: u.newX,
                                y: u.newY,
                                text: d,
                                textAnchor: u.textAnchor,
                                i: s,
                                j: s,
                                parent: i,
                                color: Array.isArray(n.style.colors) &&
                                n.style.colors[s]
                                    ? n.style.colors[s]
                                    : '#a8a8a8',
                                dataLabelsConfig: o({
                                    textAnchor: u.textAnchor,
                                    dropShadow: { enabled: !1 },
                                }, n),
                                offsetCorrection: !1,
                            });
                        }
                    })), i;
                },
            },
            {
                key: 'createPaths',
                value: function (e, t) {
                    var n = this, i = [], a = [], r = [], o = [];
                    if (e.length) {
                        a = [
                            this.graphics.move(t.x,
                                t.y)], o = [this.graphics.move(t.x, t.y)];
                        var s = this.graphics.move(e[0].x, e[0].y),
                            l = this.graphics.move(e[0].x, e[0].y);
                        e.forEach((function (t, i) {
                            s += n.graphics.line(t.x,
                                t.y), l += n.graphics.line(t.x, t.y), i ===
                            e.length - 1 && (s += 'Z', l += 'Z');
                        })), i.push(s), r.push(l);
                    }
                    return {
                        linePathsFrom: a,
                        linePathsTo: i,
                        areaPathsFrom: o,
                        areaPathsTo: r,
                    };
                },
            },
            {
                key: 'getTextPos',
                value: function (e, t) {
                    var n = 'middle', i = e.x, a = e.y;
                    return Math.abs(e.x) >= 10
                        ? e.x > 0
                            ? (n = 'start', i += 10)
                            : e.x < 0 && (n = 'end', i -= 10)
                        : n = 'middle', Math.abs(e.y) >= t - 10 &&
                    (e.y < 0 ? a -= 10 : e.y > 0 && (a += 10)), {
                        textAnchor: n,
                        newX: i,
                        newY: a,
                    };
                },
            },
            {
                key: 'getPreviousPath',
                value: function (e) {
                    for (var t = this.w, n = null, i = 0; i <
                    t.globals.previousPaths.length; i++) {
                        var a = t.globals.previousPaths[i];
                        a.paths.length > 0 && parseInt(a.realIndex, 10) ===
                        parseInt(e, 10) && void 0 !==
                        t.globals.previousPaths[i].paths[0] &&
                        (n = t.globals.previousPaths[i].paths[0].d);
                    }
                    return n;
                },
            },
            {
                key: 'getDataPointsPos',
                value: function (e, t) {
                    var n = arguments.length > 2 && void 0 !== arguments[2]
                        ? arguments[2]
                        : this.dataPointsLen;
                    e = e || [], t = t || [];
                    for (var i = [], a = 0; a < n; a++) {
                        var r = {};
                        r.x = e[a] * Math.sin(t[a]), r.y = -e[a] *
                            Math.cos(t[a]), i.push(r);
                    }
                    return i;
                },
            },
            {
                key: 'getPolygonPos',
                value: function (e) {
                    for (var t = [], n = 2 * Math.PI /
                        this.dataPointsLen, i = 0; i <
                         this.dataPointsLen; i++) {
                        var a = {};
                        a.x = e * Math.sin(i * n), a.y = -e *
                            Math.cos(i * n), t.push(a);
                    }
                    return t;
                },
            }]), e;
    }(), Le = function (e) {
        s(a, e);
        var n = d(a);

        function a (e) {
            var i;
            t(this, a), (i = n.call(this,
                e)).ctx = e, i.w = e.w, i.animBeginArr = [0], i.animDur = 0;
            var r = i.w;
            return i.startAngle = r.config.plotOptions.radialBar.startAngle, i.endAngle = r.config.plotOptions.radialBar.endAngle, i.totalAngle = Math.abs(
                r.config.plotOptions.radialBar.endAngle -
                r.config.plotOptions.radialBar.startAngle), i.trackStartAngle = r.config.plotOptions.radialBar.track.startAngle, i.trackEndAngle = r.config.plotOptions.radialBar.track.endAngle, i.radialDataLabels = r.config.plotOptions.radialBar.dataLabels, i.trackStartAngle ||
            (i.trackStartAngle = i.startAngle), i.trackEndAngle ||
            (i.trackEndAngle = i.endAngle), 360 === i.endAngle &&
            (i.endAngle = 359.99), i.margin = parseInt(
                r.config.plotOptions.radialBar.track.margin, 10), i;
        }

        return i(a, [
            {
                key: 'draw',
                value: function (e) {
                    var t = this.w, n = new v(this.ctx),
                        i = n.group({ class: 'apexcharts-radialbar' });
                    if (t.globals.noData) return i;
                    var a = n.group(), r = this.defaultSize / 2,
                        o = t.globals.gridWidth / 2,
                        s = this.defaultSize / 2.05;
                    t.config.chart.sparkline.enabled ||
                    (s = s - t.config.stroke.width -
                        t.config.chart.dropShadow.blur);
                    var l = t.globals.fill.colors;
                    if (t.config.plotOptions.radialBar.track.show) {
                        var c = this.drawTracks({
                            size: s,
                            centerX: o,
                            centerY: r,
                            colorArr: l,
                            series: e,
                        });
                        a.add(c);
                    }
                    var u = this.drawArcs({
                        size: s,
                        centerX: o,
                        centerY: r,
                        colorArr: l,
                        series: e,
                    }), d = 360;
                    t.config.plotOptions.radialBar.startAngle < 0 &&
                    (d = this.totalAngle);
                    var h = (360 - d) / 360;
                    if (t.globals.radialSize = s - s *
                        h, this.radialDataLabels.value.show) {
                        var f = Math.max(this.radialDataLabels.value.offsetY,
                            this.radialDataLabels.name.offsetY);
                        t.globals.radialSize += f * h;
                    }
                    return a.add(u.g), 'front' ===
                    t.config.plotOptions.radialBar.hollow.position &&
                    (u.g.add(u.elHollow), u.dataLabels &&
                    u.g.add(u.dataLabels)), i.add(a), i;
                },
            },
            {
                key: 'drawTracks', value: function (e) {
                    var t = this.w, n = new v(this.ctx),
                        i = n.group({ class: 'apexcharts-tracks' }),
                        a = new m(this.ctx), r = new S(this.ctx),
                        o = this.getStrokeWidth(e);
                    e.size = e.size - o / 2;
                    for (var s = 0; s < e.series.length; s++) {
                        var l = n.group(
                            { class: 'apexcharts-radialbar-track apexcharts-track' });
                        i.add(l), l.attr({ rel: s + 1 }), e.size = e.size - o -
                            this.margin;
                        var c = t.config.plotOptions.radialBar.track,
                            u = r.fillPath({
                                seriesNumber: 0,
                                size: e.size,
                                fillColors: Array.isArray(c.background)
                                    ? c.background[s]
                                    : c.background,
                                solid: !0,
                            }), d = this.trackStartAngle,
                            h = this.trackEndAngle;
                        Math.abs(h) + Math.abs(d) >= 360 &&
                        (h = 360 - Math.abs(this.startAngle) - .1);
                        var f = n.drawPath({
                            d: '',
                            stroke: u,
                            strokeWidth: o * parseInt(c.strokeWidth, 10) / 100,
                            fill: 'none',
                            strokeOpacity: c.opacity,
                            classes: 'apexcharts-radialbar-area',
                        });
                        if (c.dropShadow.enabled) {
                            var p = c.dropShadow;
                            a.dropShadow(f, p);
                        }
                        l.add(f), f.attr('id', 'apexcharts-radialbarTrack-' +
                            s), this.animatePaths(f, {
                            centerX: e.centerX,
                            centerY: e.centerY,
                            endAngle: h,
                            startAngle: d,
                            size: e.size,
                            i: s,
                            totalItems: 2,
                            animBeginArr: 0,
                            dur: 0,
                            isTrack: !0,
                            easing: t.globals.easing,
                        });
                    }
                    return i;
                },
            },
            {
                key: 'drawArcs', value: function (e) {
                    var t = this.w, n = new v(this.ctx), i = new S(this.ctx),
                        a = new m(this.ctx), r = n.group(),
                        o = this.getStrokeWidth(e);
                    e.size = e.size - o / 2;
                    var s = t.config.plotOptions.radialBar.hollow.background,
                        l = e.size - o * e.series.length - this.margin *
                            e.series.length - o * parseInt(
                                t.config.plotOptions.radialBar.track.strokeWidth,
                                10) / 100 / 2,
                        c = l - t.config.plotOptions.radialBar.hollow.margin;
                    void 0 !== t.config.plotOptions.radialBar.hollow.image &&
                    (s = this.drawHollowImage(e, r, l, s));
                    var u = this.drawHollow({
                        size: c,
                        centerX: e.centerX,
                        centerY: e.centerY,
                        fill: s || 'transparent',
                    });
                    if (t.config.plotOptions.radialBar.hollow.dropShadow.enabled) {
                        var d = t.config.plotOptions.radialBar.hollow.dropShadow;
                        a.dropShadow(u, d);
                    }
                    var h = 1;
                    !this.radialDataLabels.total.show &&
                    t.globals.series.length > 1 && (h = 0);
                    var f = null;
                    this.radialDataLabels.show &&
                    (f = this.renderInnerDataLabels(this.radialDataLabels, {
                        hollowSize: l,
                        centerX: e.centerX,
                        centerY: e.centerY,
                        opacity: h,
                    })), 'back' ===
                    t.config.plotOptions.radialBar.hollow.position &&
                    (r.add(u), f && r.add(f));
                    var g = !1;
                    t.config.plotOptions.radialBar.inverseOrder && (g = !0);
                    for (var y = g ? e.series.length - 1 : 0; g ? y >= 0 : y <
                        e.series.length; g ? y-- : y++) {
                        var b = n.group({
                            class: 'apexcharts-series apexcharts-radial-series',
                            seriesName: p.escapeString(
                                t.globals.seriesNames[y]),
                        });
                        r.add(b), b.attr({
                            rel: y + 1,
                            'data:realIndex': y,
                        }), this.ctx.series.addCollapsedClassToSeries(b,
                            y), e.size = e.size - o - this.margin;
                        var x = i.fillPath({
                                seriesNumber: y,
                                size: e.size,
                                value: e.series[y],
                            }), _ = this.startAngle, w = void 0, k = p.negToZero(
                            e.series[y] > 100 ? 100 : e.series[y]) / 100,
                            M = Math.round(this.totalAngle * k) +
                                this.startAngle, L = void 0;
                        t.globals.dataChanged &&
                        (w = this.startAngle, L = Math.round(this.totalAngle *
                            p.negToZero(t.globals.previousPaths[y]) / 100) +
                            w), Math.abs(M) + Math.abs(_) >= 360 &&
                        (M -= .01), Math.abs(L) + Math.abs(w) >= 360 &&
                        (L -= .01);
                        var T = M - _,
                            A = Array.isArray(t.config.stroke.dashArray)
                                ? t.config.stroke.dashArray[y]
                                : t.config.stroke.dashArray, D = n.drawPath({
                                d: '',
                                stroke: x,
                                strokeWidth: o,
                                fill: 'none',
                                fillOpacity: t.config.fill.opacity,
                                classes: 'apexcharts-radialbar-area apexcharts-radialbar-slice-' +
                                    y,
                                strokeDashArray: A,
                            });
                        if (v.setAttrs(D.node, {
                            'data:angle': T,
                            'data:value': e.series[y],
                        }), t.config.chart.dropShadow.enabled) {
                            var C = t.config.chart.dropShadow;
                            a.dropShadow(D, C, y);
                        }
                        a.setSelectionFilter(D, 0, y), this.addListeners(D,
                            this.radialDataLabels), b.add(D), D.attr(
                            { index: 0, j: y });
                        var E = 0;
                        !this.initialAnim || t.globals.resized ||
                        t.globals.dataChanged || (E = (M - _) / 360 *
                            t.config.chart.animations.speed, this.animDur = E /
                            (1.2 * e.series.length) +
                            this.animDur, this.animBeginArr.push(
                            this.animDur)), t.globals.dataChanged &&
                        (E = (M - _) / 360 *
                            t.config.chart.animations.dynamicAnimation.speed, this.animDur = E /
                            (1.2 * e.series.length) +
                            this.animDur, this.animBeginArr.push(
                            this.animDur)), this.animatePaths(D, {
                            centerX: e.centerX,
                            centerY: e.centerY,
                            endAngle: M,
                            startAngle: _,
                            prevEndAngle: L,
                            prevStartAngle: w,
                            size: e.size,
                            i: y,
                            totalItems: 2,
                            animBeginArr: this.animBeginArr,
                            dur: E,
                            shouldSetPrevPaths: !0,
                            easing: t.globals.easing,
                        });
                    }
                    return { g: r, elHollow: u, dataLabels: f };
                },
            },
            {
                key: 'drawHollow',
                value: function (e) {
                    var t = new v(this.ctx).drawCircle(2 * e.size);
                    return t.attr({
                        class: 'apexcharts-radialbar-hollow',
                        cx: e.centerX,
                        cy: e.centerY,
                        r: e.size,
                        fill: e.fill,
                    }), t;
                },
            },
            {
                key: 'drawHollowImage',
                value: function (e, t, n, i) {
                    var a = this.w, r = new S(this.ctx), o = p.randomId(),
                        s = a.config.plotOptions.radialBar.hollow.image;
                    if (a.config.plotOptions.radialBar.hollow.imageClipped) r.clippedImgArea(
                        {
                            width: n,
                            height: n,
                            image: s,
                            patternID: 'pattern'.concat(a.globals.cuid).
                                concat(o),
                        }), i = 'url(#pattern'.concat(a.globals.cuid).
                        concat(o, ')'); else {
                        var l = a.config.plotOptions.radialBar.hollow.imageWidth,
                            c = a.config.plotOptions.radialBar.hollow.imageHeight;
                        if (void 0 === l && void 0 === c) {
                            var u = a.globals.dom.Paper.image(s).
                                loaded((function (t) {
                                    this.move(e.centerX - t.width / 2 +
                                        a.config.plotOptions.radialBar.hollow.imageOffsetX,
                                        e.centerY - t.height / 2 +
                                        a.config.plotOptions.radialBar.hollow.imageOffsetY);
                                }));
                            t.add(u);
                        } else {
                            var d = a.globals.dom.Paper.image(s).
                                loaded((function (t) {
                                    this.move(e.centerX - l / 2 +
                                        a.config.plotOptions.radialBar.hollow.imageOffsetX,
                                        e.centerY - c / 2 +
                                        a.config.plotOptions.radialBar.hollow.imageOffsetY), this.size(
                                        l, c);
                                }));
                            t.add(d);
                        }
                    }
                    return i;
                },
            },
            {
                key: 'getStrokeWidth', value: function (e) {
                    var t = this.w;
                    return e.size * (100 -
                        parseInt(t.config.plotOptions.radialBar.hollow.size,
                            10)) / 100 / (e.series.length + 1) - this.margin;
                },
            }]), a;
    }(ke), Se = function () {
        function e (n) {t(this, e), this.w = n.w, this.lineCtx = n;}

        return i(e, [
            {
                key: 'sameValueSeriesFix', value: function (e, t) {
                    var n = this.w;
                    if ('line' === n.config.chart.type &&
                        ('gradient' === n.config.fill.type || 'gradient' ===
                            n.config.fill.type[e]) &&
                        new x(this.lineCtx.ctx, n).seriesHaveSameValues(e)) {
                        var i = t[e].slice();
                        i[i.length - 1] = i[i.length - 1] + 1e-6, t[e] = i;
                    }
                    return t;
                },
            },
            {
                key: 'calculatePoints',
                value: function (e) {
                    var t = e.series, n = e.realIndex, i = e.x, a = e.y,
                        r = e.i, o = e.j, s = e.prevY, l = this.w, c = [],
                        u = [];
                    if (0 === o) {
                        var d = this.lineCtx.categoryAxisCorrection +
                            l.config.markers.offsetX;
                        l.globals.isXNumeric &&
                        (d = (l.globals.seriesX[n][0] - l.globals.minX) /
                            this.lineCtx.xRatio +
                            l.config.markers.offsetX), c.push(d), u.push(
                            p.isNumber(t[r][0])
                                ? s + l.config.markers.offsetY
                                : null), c.push(
                            i + l.config.markers.offsetX), u.push(
                            p.isNumber(t[r][o + 1]) ? a +
                                l.config.markers.offsetY : null);
                    } else c.push(i + l.config.markers.offsetX), u.push(
                        p.isNumber(t[r][o + 1])
                            ? a + l.config.markers.offsetY
                            : null);
                    return { x: c, y: u };
                },
            },
            {
                key: 'checkPreviousPaths',
                value: function (e) {
                    for (var t = e.pathFromLine, n = e.pathFromArea, i = e.realIndex, a = this.w, r = 0; r <
                    a.globals.previousPaths.length; r++) {
                        var o = a.globals.previousPaths[r];
                        ('line' === o.type || 'area' === o.type) &&
                        o.paths.length > 0 && parseInt(o.realIndex, 10) ===
                        parseInt(i, 10) && ('line' === o.type
                            ? (this.lineCtx.appendPathFrom = !1, t = a.globals.previousPaths[r].paths[0].d)
                            : 'area' === o.type &&
                            (this.lineCtx.appendPathFrom = !1, n = a.globals.previousPaths[r].paths[0].d, a.config.stroke.show &&
                            a.globals.previousPaths[r].paths[1] &&
                            (t = a.globals.previousPaths[r].paths[1].d)));
                    }
                    return { pathFromLine: t, pathFromArea: n };
                },
            },
            {
                key: 'determineFirstPrevY',
                value: function (e) {
                    var t = e.i, n = e.series, i = e.prevY, a = e.lineYPosition,
                        r = this.w;
                    if (void 0 !== n[t][0]) i = (a = r.config.chart.stacked &&
                        t > 0
                        ? this.lineCtx.prevSeriesY[t - 1][0]
                        : this.lineCtx.zeroY) - n[t][0] /
                        this.lineCtx.yRatio[this.lineCtx.yaxisIndex] + 2 *
                        (this.lineCtx.isReversed
                            ? n[t][0] /
                            this.lineCtx.yRatio[this.lineCtx.yaxisIndex]
                            : 0); else if (r.config.chart.stacked && t > 0 &&
                        void 0 === n[t][0]) for (var o = t - 1; o >=
                    0; o--) if (null !== n[o][0] && void 0 !== n[o][0]) {
                        i = a = this.lineCtx.prevSeriesY[o][0];
                        break;
                    }
                    return { prevY: i, lineYPosition: a };
                },
            }]), e;
    }(), Te = function () {
        function e (n, i, a) {
            t(this,
                e), this.ctx = n, this.w = n.w, this.xyRatios = i, this.pointsChart = !('bubble' !==
                this.w.config.chart.type && 'scatter' !==
                this.w.config.chart.type) || a, this.scatter = new A(
                this.ctx), this.noNegatives = this.w.globals.minX ===
                Number.MAX_VALUE, this.lineHelpers = new Se(
                this), this.markers = new T(
                this.ctx), this.prevSeriesY = [], this.categoryAxisCorrection = 0, this.yaxisIndex = 0;
        }

        return i(e, [
            {
                key: 'draw', value: function (e, t, n) {
                    var i = this.w, a = new v(this.ctx),
                        r = i.globals.comboCharts ? t : i.config.chart.type,
                        o = a.group({
                            class: 'apexcharts-'.concat(r,
                                '-series apexcharts-plot-series'),
                        }), s = new x(this.ctx, i);
                    this.yRatio = this.xyRatios.yRatio, this.zRatio = this.xyRatios.zRatio, this.xRatio = this.xyRatios.xRatio, this.baseLineY = this.xyRatios.baseLineY, e = s.getLogSeries(
                        e), this.yRatio = s.getLogYRatios(this.yRatio);
                    for (var l = [], c = 0; c < e.length; c++) {
                        e = this.lineHelpers.sameValueSeriesFix(c, e);
                        var u = i.globals.comboCharts ? n[c] : c;
                        this._initSerieVariables(e, c, u);
                        var d = [], h = [], f = i.globals.padHorizontal +
                            this.categoryAxisCorrection;
                        this.ctx.series.addCollapsedClassToSeries(this.elSeries,
                            u), i.globals.isXNumeric &&
                        i.globals.seriesX.length > 0 &&
                        (f = (i.globals.seriesX[u][0] - i.globals.minX) /
                            this.xRatio), h.push(f);
                        var p, m = f, g = m, y = this.zeroY;
                        y = this.lineHelpers.determineFirstPrevY({
                            i: c,
                            series: e,
                            prevY: y,
                            lineYPosition: 0,
                        }).prevY, d.push(y), p = y;
                        var b = this._calculatePathsFrom({
                            series: e,
                            i: c,
                            realIndex: u,
                            prevX: g,
                            prevY: y,
                        }), _ = this._iterateOverDataPoints({
                            series: e,
                            realIndex: u,
                            i: c,
                            x: f,
                            y: 1,
                            pX: m,
                            pY: p,
                            pathsFrom: b,
                            linePaths: [],
                            areaPaths: [],
                            seriesIndex: n,
                            lineYPosition: 0,
                            xArrj: h,
                            yArrj: d,
                        });
                        this._handlePaths({
                            type: r,
                            realIndex: u,
                            i: c,
                            paths: _,
                        }), this.elSeries.add(
                            this.elPointsMain), this.elSeries.add(
                            this.elDataLabelsWrap), l.push(this.elSeries);
                    }
                    if (i.config.chart.stacked) for (var w = l.length; w >
                    0; w--) o.add(l[w - 1]); else for (var k = 0; k <
                    l.length; k++) o.add(l[k]);
                    return o;
                },
            },
            {
                key: '_initSerieVariables', value: function (e, t, n) {
                    var i = this.w, a = new v(this.ctx);
                    this.xDivision = i.globals.gridWidth /
                        (i.globals.dataPoints -
                            ('on' === i.config.xaxis.tickPlacement
                                ? 1
                                : 0)), this.strokeWidth = Array.isArray(
                        i.config.stroke.width)
                        ? i.config.stroke.width[n]
                        : i.config.stroke.width, this.yRatio.length > 1 &&
                    (this.yaxisIndex = n), this.isReversed = i.config.yaxis[this.yaxisIndex] &&
                        i.config.yaxis[this.yaxisIndex].reversed, this.zeroY = i.globals.gridHeight -
                        this.baseLineY[this.yaxisIndex] -
                        (this.isReversed ? i.globals.gridHeight : 0) +
                        (this.isReversed
                            ? 2 * this.baseLineY[this.yaxisIndex]
                            : 0), this.areaBottomY = this.zeroY, (this.zeroY >
                        i.globals.gridHeight || 'end' ===
                        i.config.plotOptions.area.fillTo) &&
                    (this.areaBottomY = i.globals.gridHeight), this.categoryAxisCorrection = this.xDivision /
                        2, this.elSeries = a.group({
                        class: 'apexcharts-series',
                        seriesName: p.escapeString(i.globals.seriesNames[n]),
                    }), this.elPointsMain = a.group({
                        class: 'apexcharts-series-markers-wrap',
                        'data:realIndex': n,
                    }), this.elDataLabelsWrap = a.group({
                        class: 'apexcharts-datalabels',
                        'data:realIndex': n,
                    });
                    var r = e[t].length === i.globals.dataPoints;
                    this.elSeries.attr({
                        'data:longestSeries': r,
                        rel: t + 1,
                        'data:realIndex': n,
                    }), this.appendPathFrom = !0;
                },
            },
            {
                key: '_calculatePathsFrom',
                value: function (e) {
                    var t, n, i, a, r = e.series, o = e.i, s = e.realIndex,
                        l = e.prevX, c = e.prevY, u = this.w,
                        d = new v(this.ctx);
                    if (null === r[o][0]) {
                        for (var h = 0; h < r[o].length; h++) if (null !==
                            r[o][h]) {
                            l = this.xDivision * h, c = this.zeroY - r[o][h] /
                                this.yRatio[this.yaxisIndex], t = d.move(l,
                                c), n = d.move(l, this.areaBottomY);
                            break;
                        }
                    } else t = d.move(l, c), n = d.move(l, this.areaBottomY) +
                        d.line(l, c);
                    if (i = d.move(-1, this.zeroY) +
                        d.line(-1, this.zeroY), a = d.move(-1, this.zeroY) +
                        d.line(-1, this.zeroY), u.globals.previousPaths.length >
                    0) {
                        var f = this.lineHelpers.checkPreviousPaths(
                            { pathFromLine: i, pathFromArea: a, realIndex: s });
                        i = f.pathFromLine, a = f.pathFromArea;
                    }
                    return {
                        prevX: l,
                        prevY: c,
                        linePath: t,
                        areaPath: n,
                        pathFromLine: i,
                        pathFromArea: a,
                    };
                },
            },
            {
                key: '_handlePaths', value: function (e) {
                    var t = e.type, n = e.realIndex, i = e.i, a = e.paths,
                        r = this.w, s = new v(this.ctx), l = new S(this.ctx);
                    this.prevSeriesY.push(
                        a.yArrj), r.globals.seriesXvalues[n] = a.xArrj, r.globals.seriesYvalues[n] = a.yArrj, this.pointsChart ||
                    r.globals.delayedElements.push(
                        { el: this.elPointsMain.node, index: n });
                    var c = {
                        i: i,
                        realIndex: n,
                        animationDelay: i,
                        initialSpeed: r.config.chart.animations.speed,
                        dataChangeSpeed: r.config.chart.animations.dynamicAnimation.speed,
                        className: 'apexcharts-'.concat(t),
                    };
                    if ('area' === t) for (var u = l.fillPath(
                        { seriesNumber: n }), d = 0; d <
                                           a.areaPaths.length; d++) {
                        var h = s.renderPaths(o(o({}, c), {}, {
                            pathFrom: a.pathFromArea,
                            pathTo: a.areaPaths[d],
                            stroke: 'none',
                            strokeWidth: 0,
                            strokeLineCap: null,
                            fill: u,
                        }));
                        this.elSeries.add(h);
                    }
                    if (r.config.stroke.show && !this.pointsChart) {
                        var f;
                        f = 'line' === t
                            ? l.fillPath({ seriesNumber: n, i: i })
                            : r.globals.stroke.colors[n];
                        for (var p = 0; p < a.linePaths.length; p++) {
                            var m = s.renderPaths(o(o({}, c), {}, {
                                pathFrom: a.pathFromLine,
                                pathTo: a.linePaths[p],
                                stroke: f,
                                strokeWidth: this.strokeWidth,
                                strokeLineCap: r.config.stroke.lineCap,
                                fill: 'none',
                            }));
                            this.elSeries.add(m);
                        }
                    }
                },
            },
            {
                key: '_iterateOverDataPoints', value: function (e) {
                    for (var t = e.series, n = e.realIndex, i = e.i, a = e.x, r = e.y, o = e.pX, s = e.pY, l = e.pathsFrom, c = e.linePaths, u = e.areaPaths, d = e.seriesIndex, h = e.lineYPosition, f = e.xArrj, m = e.yArrj, g = this.w, y = new v(
                        this.ctx), b = this.yRatio, x = l.prevY, _ = l.linePath, w = l.areaPath, k = l.pathFromLine, M = l.pathFromArea, L = p.isNumber(
                        g.globals.minYArr[n])
                        ? g.globals.minYArr[n]
                        : g.globals.minY, S = g.globals.dataPoints > 1
                        ? g.globals.dataPoints - 1
                        : g.globals.dataPoints, T = 0; T < S; T++) {
                        var A = void 0 === t[i][T + 1] || null === t[i][T + 1];
                        if (g.globals.isXNumeric) {
                            var D = g.globals.seriesX[n][T + 1];
                            void 0 === g.globals.seriesX[n][T + 1] &&
                            (D = g.globals.seriesX[n][S - 1]), a = (D -
                                g.globals.minX) / this.xRatio;
                        } else a += this.xDivision;
                        h = g.config.chart.stacked && i > 0 &&
                        g.globals.collapsedSeries.length <
                        g.config.series.length - 1
                            ? this.prevSeriesY[function (e) {
                                for (var t = e, n = 0; n <
                                g.globals.series.length; n++) if (g.globals.collapsedSeriesIndices.indexOf(
                                    e) > -1) {
                                    t--;
                                    break;
                                }
                                return t >= 0 ? t : 0;
                            }(i - 1)][T + 1]
                            : this.zeroY, r = A
                            ? h - L / b[this.yaxisIndex] + 2 *
                            (this.isReversed ? L / b[this.yaxisIndex] : 0)
                            : h - t[i][T + 1] / b[this.yaxisIndex] + 2 *
                            (this.isReversed
                                ? t[i][T + 1] / b[this.yaxisIndex]
                                : 0), f.push(a), m.push(r);
                        var C = this.lineHelpers.calculatePoints({
                            series: t,
                            x: a,
                            y: r,
                            realIndex: n,
                            i: i,
                            j: T,
                            prevY: x,
                        }), E = this._createPaths({
                            series: t,
                            i: i,
                            realIndex: n,
                            j: T,
                            x: a,
                            y: r,
                            pX: o,
                            pY: s,
                            linePath: _,
                            areaPath: w,
                            linePaths: c,
                            areaPaths: u,
                            seriesIndex: d,
                        });
                        u = E.areaPaths, c = E.linePaths, o = E.pX, s = E.pY, w = E.areaPath, _ = E.linePath, this.appendPathFrom &&
                        (k += y.line(a, this.zeroY), M += y.line(a,
                            this.zeroY)), this.handleNullDataPoints(t, C, i, T,
                            n), this._handleMarkersAndLabels({
                            pointsPos: C,
                            series: t,
                            x: a,
                            y: r,
                            prevY: x,
                            i: i,
                            j: T,
                            realIndex: n,
                        });
                    }
                    return {
                        yArrj: m,
                        xArrj: f,
                        pathFromArea: M,
                        areaPaths: u,
                        pathFromLine: k,
                        linePaths: c,
                    };
                },
            },
            {
                key: '_handleMarkersAndLabels',
                value: function (e) {
                    var t = e.pointsPos, n = (e.series, e.x, e.y, e.prevY, e.i),
                        i = e.j, a = e.realIndex, r = this.w,
                        o = new D(this.ctx);
                    if (this.pointsChart) this.scatter.draw(this.elSeries, i, {
                        realIndex: a,
                        pointsPos: t,
                        zRatio: this.zRatio,
                        elParent: this.elPointsMain,
                    }); else {
                        r.globals.series[n].length > 1 &&
                        this.elPointsMain.node.classList.add(
                            'apexcharts-element-hidden');
                        var s = this.markers.plotChartMarkers(t, a, i + 1);
                        null !== s && this.elPointsMain.add(s);
                    }
                    var l = o.drawDataLabel(t, a, i + 1, null);
                    null !== l && this.elDataLabelsWrap.add(l);
                },
            },
            {
                key: '_createPaths', value: function (e) {
                    var t = e.series, n = e.i, i = e.realIndex, a = e.j,
                        r = e.x, o = e.y, s = e.pX, l = e.pY, c = e.linePath,
                        u = e.areaPath, d = e.linePaths, h = e.areaPaths,
                        f = e.seriesIndex, p = this.w, m = new v(this.ctx),
                        g = p.config.stroke.curve, y = this.areaBottomY;
                    if (Array.isArray(p.config.stroke.curve) &&
                    (g = Array.isArray(f)
                        ? p.config.stroke.curve[f[n]]
                        : p.config.stroke.curve[n]), 'smooth' === g) {
                        var b = .35 * (r - s);
                        p.globals.hasNullValues
                            ? (null !== t[n][a] &&
                            (null !== t[n][a + 1] ? (c = m.move(s, l) +
                                m.curve(s + b, l, r - b, o, r + 1, o), u = m.move(
                                s + 1, l) + m.curve(s + b, l, r - b, o, r + 1, o) +
                                m.line(r, y) + m.line(s, y) + 'z') : (c = m.move(s,
                                l), u = m.move(s, l) + 'z')), d.push(c), h.push(u))
                            : (c += m.curve(s + b, l, r - b, o, r,
                            o), u += m.curve(s + b, l, r - b, o, r,
                            o)), s = r, l = o, a === t[n].length - 2 &&
                        (u = u + m.curve(s, l, r, o, r, y) + m.move(r, o) +
                            'z', p.globals.hasNullValues ||
                        (d.push(c), h.push(u)));
                    } else {
                        if (null === t[n][a + 1]) {
                            c += m.move(r, o);
                            var x = p.globals.isXNumeric
                                ? (p.globals.seriesX[i][a] - p.globals.minX) /
                                this.xRatio
                                : r - this.xDivision;
                            u = u + m.line(x, y) + m.move(r, o) + 'z';
                        }
                        null === t[n][a] &&
                        (c += m.move(r, o), u += m.move(r, y)), 'stepline' === g
                            ? (c = c + m.line(r, null, 'H') +
                                m.line(null, o, 'V'), u = u +
                                m.line(r, null, 'H') + m.line(null, o, 'V'))
                            : 'straight' === g &&
                            (c += m.line(r, o), u += m.line(r, o)), a ===
                        t[n].length - 2 &&
                        (u = u + m.line(r, y) + m.move(r, o) + 'z', d.push(
                            c), h.push(u));
                    }
                    return {
                        linePaths: d,
                        areaPaths: h,
                        pX: s,
                        pY: l,
                        linePath: c,
                        areaPath: u,
                    };
                },
            },
            {
                key: 'handleNullDataPoints',
                value: function (e, t, n, i, a) {
                    var r = this.w;
                    if (null === e[n][i] &&
                        r.config.markers.showNullDataPoints || 1 ===
                        e[n].length) {
                        var o = this.markers.plotChartMarkers(t, a, i + 1,
                            this.strokeWidth - r.config.markers.strokeWidth / 2,
                            !0);
                        null !== o && this.elPointsMain.add(o);
                    }
                },
            }]), e;
    }();
    window.TreemapSquared = {}, window.TreemapSquared.generate = function () {
        function e (
            t, n, i, a) {
            this.xoffset = t, this.yoffset = n, this.height = a, this.width = i, this.shortestEdge = function () {
                return Math.min(this.height, this.width);
            }, this.getCoordinates = function (e) {
                var t, n = [], i = this.xoffset, a = this.yoffset,
                    o = r(e) / this.height, s = r(e) / this.width;
                if (this.width >= this.height) for (t = 0; t <
                e.length; t++) n.push([i, a, i + o, a + e[t] / o]), a += e[t] /
                    o; else for (t = 0; t < e.length; t++) n.push(
                    [i, a, i + e[t] / s, a + s]), i += e[t] / s;
                return n;
            }, this.cutArea = function (t) {
                var n;
                if (this.width >= this.height) {
                    var i = t / this.height, a = this.width - i;
                    n = new e(this.xoffset + i, this.yoffset, a, this.height);
                } else {
                    var r = t / this.width, o = this.height - r;
                    n = new e(this.xoffset, this.yoffset + r, this.width, o);
                }
                return n;
            };
        }

        function t (t, i, a, o, s) {
            return o = void 0 === o
                ? 0
                : o, s = void 0 === s ? 0 : s, function (e) {
                var t, n, i = [];
                for (t = 0; t < e.length; t++) for (n = 0; n <
                e[t].length; n++) i.push(e[t][n]);
                return i;
            }(n(function (e, t) {
                var n, i = [], a = t / r(e);
                for (n = 0; n < e.length; n++) i[n] = e[n] * a;
                return i;
            }(t, i * a), [], new e(o, s, i, a), []));
        }

        function n (e, t, a, o) {
            var s, l, c;
            if (0 !== e.length) return s = a.shortestEdge(), function (
                e, t, n) {
                var a;
                return 0 === e.length ||
                    ((a = e.slice()).push(t), i(e, n) >= i(a, n));
            }(t, l = e[0], s)
                ? (t.push(l), n(e.slice(1), t, a, o))
                : (c = a.cutArea(r(t), o), o.push(a.getCoordinates(t)), n(e, [],
                    c, o)), o;
            o.push(a.getCoordinates(t));
        }

        function i (e, t) {
            var n = Math.min.apply(Math, e), i = Math.max.apply(Math, e),
                a = r(e);
            return Math.max(Math.pow(t, 2) * i / Math.pow(a, 2),
                Math.pow(a, 2) / (Math.pow(t, 2) * n));
        }

        function a (e) {return e && e.constructor === Array;}

        function r (e) {
            var t, n = 0;
            for (t = 0; t < e.length; t++) n += e[t];
            return n;
        }

        function o (e) {
            var t, n = 0;
            if (a(e[0])) for (t = 0; t < e.length; t++) n += o(
                e[t]); else n = r(e);
            return n;
        }

        return function e (n, i, r, s, l) {
            s = void 0 === s
                ? 0
                : s, l = void 0 === l ? 0 : l;
            var c, u, d = [], h = [];
            if (a(n[0])) {
                for (u = 0; u < n.length; u++) d[u] = o(n[u]);
                for (c = t(d, i, r, s, l), u = 0; u < n.length; u++) h.push(
                    e(n[u], c[u][2] - c[u][0], c[u][3] - c[u][1], c[u][0],
                        c[u][1]));
            } else h = t(n, i, r, s, l);
            return h;
        };
    }();
    var Ae, De, Ce = function () {
        function e (n, i) {
            t(this,
                e), this.ctx = n, this.w = n.w, this.strokeWidth = this.w.config.stroke.width, this.helpers = new xe(
                n), this.dynamicAnim = this.w.config.chart.animations.dynamicAnimation, this.labels = [];
        }

        return i(e, [
            {
                key: 'draw', value: function (e) {
                    var t = this, n = this.w, i = new v(this.ctx),
                        a = new S(this.ctx),
                        r = i.group({ class: 'apexcharts-treemap' });
                    if (n.globals.noData) return r;
                    var o = [];
                    return e.forEach((function (e) {
                        var t = e.map((function (e) {return Math.abs(e);}));
                        o.push(t);
                    })), this.negRange = this.helpers.checkColorRange(), n.config.series.forEach(
                        (function (e, n) {
                            e.data.forEach((function (e) {
                                Array.isArray(t.labels[n]) ||
                                (t.labels[n] = []), t.labels[n].push(e.x);
                            }));
                        })), window.TreemapSquared.generate(o,
                        n.globals.gridWidth, n.globals.gridHeight).
                        forEach((function (o, s) {
                            var l = i.group({
                                class: 'apexcharts-series apexcharts-treemap-series',
                                seriesName: p.escapeString(
                                    n.globals.seriesNames[s]),
                                rel: s + 1,
                                'data:realIndex': s,
                            });
                            if (n.config.chart.dropShadow.enabled) {
                                var c = n.config.chart.dropShadow;
                                new m(t.ctx).dropShadow(r, c, s);
                            }
                            var u = i.group(
                                { class: 'apexcharts-data-labels' });
                            o.forEach((function (r, o) {
                                var c = r[0], u = r[1], d = r[2], h = r[3],
                                    f = i.drawRect(c, u, d - c, h - u, 0,
                                        '#fff', 1, t.strokeWidth,
                                        n.config.plotOptions.treemap.useFillColorAsStroke
                                            ? m
                                            : n.globals.stroke.colors[s]);
                                f.attr({
                                    cx: c,
                                    cy: u,
                                    index: s,
                                    i: s,
                                    j: o,
                                    width: d - c,
                                    height: h - u,
                                });
                                var p = t.helpers.getShadeColor(
                                    n.config.chart.type, s, o, t.negRange),
                                    m = p.color;
                                void 0 !== n.config.series[s].data[o] &&
                                n.config.series[s].data[o].fillColor &&
                                (m = n.config.series[s].data[o].fillColor);
                                var g = a.fillPath({
                                    color: m,
                                    seriesNumber: s,
                                    dataPointIndex: o,
                                });
                                f.node.classList.add(
                                    'apexcharts-treemap-rect'), f.attr(
                                    { fill: g }), t.helpers.addListeners(f);
                                var v = {
                                    x: c + (d - c) / 2,
                                    y: u + (h - u) / 2,
                                    width: 0,
                                    height: 0,
                                }, y = {
                                    x: c,
                                    y: u,
                                    width: d - c,
                                    height: h - u,
                                };
                                if (n.config.chart.animations.enabled &&
                                    !n.globals.dataChanged) {
                                    var b = 1;
                                    n.globals.resized ||
                                    (b = n.config.chart.animations.speed), t.animateTreemap(
                                        f, v, y, b);
                                }
                                if (n.globals.dataChanged) {
                                    var x = 1;
                                    t.dynamicAnim.enabled &&
                                    n.globals.shouldAnimate &&
                                    (x = t.dynamicAnim.speed, n.globals.previousPaths[s][o] &&
                                    n.globals.previousPaths[s][o].rect &&
                                    (v = n.globals.previousPaths[s][o].rect), t.animateTreemap(
                                        f, v, y, x));
                                }
                                var _ = t.getFontSize(r),
                                    w = n.config.dataLabels.formatter(
                                        t.labels[s][o], {
                                            value: n.globals.series[s][o],
                                            seriesIndex: s,
                                            dataPointIndex: o,
                                            w: n,
                                        }), k = t.helpers.calculateDataLabels({
                                        text: w,
                                        x: (c + d) / 2,
                                        y: (u + h) / 2 + t.strokeWidth / 2 + _ / 3,
                                        i: s,
                                        j: o,
                                        colorProps: p,
                                        fontSize: _,
                                        series: e,
                                    });
                                n.config.dataLabels.enabled && k &&
                                t.rotateToFitLabel(k, w, c, u, d, h), l.add(
                                    f), null !== k && l.add(k);
                            })), l.add(u), r.add(l);
                        })), r;
                },
            },
            {
                key: 'getFontSize',
                value: function (e) {
                    var t, n, i = this.w, a = function e (t) {
                        var n, i = 0;
                        if (Array.isArray(t[0])) for (n = 0; n <
                        t.length; n++) i += e(t[n]); else for (n = 0; n <
                        t.length; n++) i += t[n].length;
                        return i;
                    }(this.labels) / function e (t) {
                        var n, i = 0;
                        if (Array.isArray(t[0])) for (n = 0; n <
                        t.length; n++) i += e(t[n]); else for (n = 0; n <
                        t.length; n++) i += 1;
                        return i;
                    }(this.labels);
                    return t = (e[2] - e[0]) * (e[3] - e[1]), n = Math.pow(t,
                        .5), Math.min(n / a,
                        parseInt(i.config.dataLabels.style.fontSize, 10));
                },
            },
            {
                key: 'rotateToFitLabel',
                value: function (e, t, n, i, a, r) {
                    var o = new v(this.ctx), s = o.getTextRects(t);
                    if (s.width + 5 > a - n && s.width <= r - i) {
                        var l = o.rotateAroundCenter(e.node);
                        e.node.setAttribute('transform',
                            'rotate(-90 '.concat(l.x, ' ').concat(l.y, ')'));
                    }
                },
            },
            {
                key: 'animateTreemap',
                value: function (e, t, n, i) {
                    var a = new g(this.ctx);
                    a.animateRect(e,
                        { x: t.x, y: t.y, width: t.width, height: t.height },
                        { x: n.x, y: n.y, width: n.width, height: n.height }, i,
                        (function () {a.animationCompleted(e);}));
                },
            }]), e;
    }(), Ee = function () {
        function e (n) {
            t(this,
                e), this.ctx = n, this.w = n.w, this.timeScaleArray = [], this.utc = this.w.config.xaxis.labels.datetimeUTC;
        }

        return i(e, [
            {
                key: 'calculateTimeScaleTicks', value: function (e, t) {
                    var n = this, i = this.w;
                    if (i.globals.allSeriesCollapsed) return i.globals.labels = [], i.globals.timescaleLabels = [], [];
                    var a = new P(this.ctx), r = (t - e) / 864e5;
                    this.determineInterval(
                        r), i.globals.disableZoomIn = !1, i.globals.disableZoomOut = !1, r <
                    .005 ? i.globals.disableZoomIn = !0 : r > 5e4 &&
                        (i.globals.disableZoomOut = !0);
                    var s = a.getTimeUnitsfromTimestamp(e, t, this.utc),
                        l = i.globals.gridWidth / r, c = l / 24, u = c / 60,
                        d = u / 60, h = Math.floor(24 * r),
                        f = Math.floor(24 * r * 60),
                        p = Math.floor(24 * r * 60 * 60), m = Math.floor(r),
                        g = Math.floor(r / 30), v = Math.floor(r / 365), y = {
                            minSecond: s.minSecond,
                            minMinute: s.minMinute,
                            minHour: s.minHour,
                            minDate: s.minDate,
                            minMonth: s.minMonth,
                            minYear: s.minYear,
                        }, b = {
                            firstVal: y,
                            currentSecond: y.minSecond,
                            currentMinute: y.minMinute,
                            currentHour: y.minHour,
                            currentMonthDate: y.minDate,
                            currentDate: y.minDate,
                            currentMonth: y.minMonth,
                            currentYear: y.minYear,
                            daysWidthOnXAxis: l,
                            hoursWidthOnXAxis: c,
                            minutesWidthOnXAxis: u,
                            secondsWidthOnXAxis: d,
                            numberOfSeconds: p,
                            numberOfMinutes: f,
                            numberOfHours: h,
                            numberOfDays: m,
                            numberOfMonths: g,
                            numberOfYears: v,
                        };
                    switch (this.tickInterval) {
                        case'years':
                            this.generateYearScale(b);
                            break;
                        case'months':
                        case'half_year':
                            this.generateMonthScale(b);
                            break;
                        case'months_days':
                        case'months_fortnight':
                        case'days':
                        case'week_days':
                            this.generateDayScale(b);
                            break;
                        case'hours':
                            this.generateHourScale(b);
                            break;
                        case'minutes':
                            this.generateMinuteScale(b);
                    }
                    var x = this.timeScaleArray.map((function (e) {
                        var t = {
                            position: e.position,
                            unit: e.unit,
                            year: e.year,
                            day: e.day ? e.day : 1,
                            hour: e.hour ? e.hour : 0,
                            month: e.month + 1,
                        };
                        return 'month' === e.unit ? o(o({}, t), {},
                            { day: 1, value: e.value + 1 }) : 'day' ===
                        e.unit || 'hour' === e.unit ? o(o({}, t), {},
                            { value: e.value }) : 'minute' === e.unit
                            ? o(o({}, t), {},
                                { value: e.value, minute: e.value })
                            : e;
                    }));
                    return x.filter((function (e) {
                        var t = 1, a = Math.ceil(i.globals.gridWidth / 120),
                            r = e.value;
                        void 0 !== i.config.xaxis.tickAmount &&
                        (a = i.config.xaxis.tickAmount), x.length > a &&
                        (t = Math.floor(x.length / a));
                        var o = !1, s = !1;
                        switch (n.tickInterval) {
                            case'years':
                                'year' === e.unit && (o = !0);
                                break;
                            case'half_year':
                                t = 7, 'year' === e.unit && (o = !0);
                                break;
                            case'months':
                                t = 1, 'year' === e.unit && (o = !0);
                                break;
                            case'months_fortnight':
                                t = 15, 'year' !== e.unit && 'month' !==
                                e.unit || (o = !0), 30 === r && (s = !0);
                                break;
                            case'months_days':
                                t = 10, 'month' === e.unit && (o = !0), 30 ===
                                r && (s = !0);
                                break;
                            case'week_days':
                                t = 8, 'month' === e.unit && (o = !0);
                                break;
                            case'days':
                                t = 1, 'month' === e.unit && (o = !0);
                                break;
                            case'hours':
                                'day' === e.unit && (o = !0);
                                break;
                            case'minutes':
                                r % 5 != 0 && (s = !0);
                        }
                        if ('minutes' === n.tickInterval || 'hours' ===
                            n.tickInterval) {if (!s) return !0;} else if ((r %
                            t == 0 || o) && !s) return !0;
                    }));
                },
            },
            {
                key: 'recalcDimensionsBasedOnFormat',
                value: function (e, t) {
                    var n = this.w, i = this.formatDates(e),
                        a = this.removeOverlappingTS(i);
                    n.globals.timescaleLabels = a.slice(), new oe(
                        this.ctx).plotCoords();
                },
            },
            {
                key: 'determineInterval', value: function (e) {
                    switch (!0) {
                        case e > 1825:
                            this.tickInterval = 'years';
                            break;
                        case e > 800 && e <= 1825:
                            this.tickInterval = 'half_year';
                            break;
                        case e > 180 && e <= 800:
                            this.tickInterval = 'months';
                            break;
                        case e > 90 && e <= 180:
                            this.tickInterval = 'months_fortnight';
                            break;
                        case e > 60 && e <= 90:
                            this.tickInterval = 'months_days';
                            break;
                        case e > 30 && e <= 60:
                            this.tickInterval = 'week_days';
                            break;
                        case e > 2 && e <= 30:
                            this.tickInterval = 'days';
                            break;
                        case e > .1 && e <= 2:
                            this.tickInterval = 'hours';
                            break;
                        case e < .1:
                            this.tickInterval = 'minutes';
                            break;
                        default:
                            this.tickInterval = 'days';
                    }
                },
            },
            {
                key: 'generateYearScale',
                value: function (e) {
                    var t = e.firstVal, n = e.currentMonth, i = e.currentYear,
                        a = e.daysWidthOnXAxis, r = e.numberOfYears,
                        o = t.minYear, s = 0, l = new P(this.ctx), c = 'year';
                    if (t.minDate > 1 || t.minMonth > 0) {
                        var u = l.determineRemainingDaysOfYear(t.minYear,
                            t.minMonth, t.minDate);
                        s = (l.determineDaysOfYear(t.minYear) - u + 1) *
                            a, o = t.minYear + 1, this.timeScaleArray.push({
                            position: s,
                            value: o,
                            unit: c,
                            year: o,
                            month: p.monthMod(n + 1),
                        });
                    } else 1 === t.minDate && 0 === t.minMonth &&
                    this.timeScaleArray.push({
                        position: s,
                        value: o,
                        unit: c,
                        year: i,
                        month: p.monthMod(n + 1),
                    });
                    for (var d = o, h = s, f = 0; f <
                    r; f++) d++, h = l.determineDaysOfYear(d - 1) * a +
                        h, this.timeScaleArray.push(
                        { position: h, value: d, unit: c, year: d, month: 1 });
                },
            },
            {
                key: 'generateMonthScale',
                value: function (e) {
                    var t = e.firstVal, n = e.currentMonthDate,
                        i = e.currentMonth, a = e.currentYear,
                        r = e.daysWidthOnXAxis, o = e.numberOfMonths, s = i,
                        l = 0, c = new P(this.ctx), u = 'month', d = 0;
                    if (t.minDate > 1) {
                        l = (c.determineDaysOfMonths(i + 1, t.minYear) - n +
                            1) * r, s = p.monthMod(i + 1);
                        var h = a + d, f = p.monthMod(s), m = s;
                        0 === s &&
                        (u = 'year', m = h, f = 1, h += d += 1), this.timeScaleArray.push(
                            {
                                position: l,
                                value: m,
                                unit: u,
                                year: h,
                                month: f,
                            });
                    } else this.timeScaleArray.push({
                        position: l,
                        value: s,
                        unit: u,
                        year: a,
                        month: p.monthMod(i),
                    });
                    for (var g = s + 1, v = l, y = 0, b = 1; y < o; y++, b++) {
                        0 === (g = p.monthMod(g))
                            ? (u = 'year', d += 1)
                            : u = 'month';
                        var x = this._getYear(a, g, d);
                        v = c.determineDaysOfMonths(g, x) * r + v;
                        var _ = 0 === g ? x : g;
                        this.timeScaleArray.push({
                            position: v,
                            value: _,
                            unit: u,
                            year: x,
                            month: 0 === g ? 1 : g,
                        }), g++;
                    }
                },
            },
            {
                key: 'generateDayScale',
                value: function (e) {
                    var t = e.firstVal, n = e.currentMonth, i = e.currentYear,
                        a = e.hoursWidthOnXAxis, r = e.numberOfDays,
                        o = new P(this.ctx), s = 'day', l = t.minDate + 1,
                        c = l, u = function (e, t, n) {
                            return e > o.determineDaysOfMonths(t + 1, n)
                                ? (c = 1, s = 'month', h = t += 1, t)
                                : t;
                        }, d = (24 - t.minHour) * a, h = l, f = u(c, n, i);
                    0 === t.minHour && 1 === t.minDate &&
                    (d = 0, h = p.monthMod(
                        t.minMonth), s = 'month', c = t.minDate, r++), this.timeScaleArray.push(
                        {
                            position: d,
                            value: h,
                            unit: s,
                            year: this._getYear(i, f, 0),
                            month: p.monthMod(f),
                            day: c,
                        });
                    for (var m = d, g = 0; g < r; g++) {
                        s = 'day', f = u(c += 1, f, this._getYear(i, f, 0));
                        var v = this._getYear(i, f, 0);
                        m = 24 * a + m;
                        var y = 1 === c ? p.monthMod(f) : c;
                        this.timeScaleArray.push({
                            position: m,
                            value: y,
                            unit: s,
                            year: v,
                            month: p.monthMod(f),
                            day: y,
                        });
                    }
                },
            },
            {
                key: 'generateHourScale',
                value: function (e) {
                    var t = e.firstVal, n = e.currentDate, i = e.currentMonth,
                        a = e.currentYear, r = e.minutesWidthOnXAxis,
                        o = e.numberOfHours, s = new P(this.ctx), l = 'hour',
                        c = function (e, t) {
                            return e > s.determineDaysOfMonths(t + 1, a) &&
                            (g = 1, t += 1), { month: t, date: g };
                        }, u = function (e, t) {
                            return e > s.determineDaysOfMonths(t + 1, a)
                                ? t += 1
                                : t;
                        }, d = 60 - (t.minMinute + t.minSecond / 60), h = d * r,
                        f = t.minHour + 1, m = f + 1;
                    60 === d && (h = 0, m = (f = t.minHour) + 1);
                    var g = n, v = u(g, i);
                    this.timeScaleArray.push({
                        position: h,
                        value: f,
                        unit: l,
                        day: g,
                        hour: m,
                        year: a,
                        month: p.monthMod(v),
                    });
                    for (var y = h, b = 0; b < o; b++) {
                        l = 'hour', m >= 24 &&
                        (m = 0, l = 'day', v = c(g += 1, v).month, v = u(g, v));
                        var x = this._getYear(a, v, 0);
                        y = 0 === m && 0 === b ? d * r : 60 * r + y;
                        var _ = 0 === m ? g : m;
                        this.timeScaleArray.push({
                            position: y,
                            value: _,
                            unit: l,
                            hour: m,
                            day: g,
                            year: x,
                            month: p.monthMod(v),
                        }), m++;
                    }
                },
            },
            {
                key: 'generateMinuteScale',
                value: function (e) {
                    var t = e.firstVal,
                        n = (e.currentSecond, e.currentMinute, e.currentHour),
                        i = e.currentDate, a = e.currentMonth,
                        r = e.currentYear, o = e.minutesWidthOnXAxis,
                        s = e.secondsWidthOnXAxis, l = e.numberOfMinutes,
                        c = 'minute', u = (60 - t.minSecond) * s,
                        d = t.minMinute + 1, h = d + 1, f = i, m = a, g = r,
                        v = n;
                    this.timeScaleArray.push({
                        position: u,
                        value: d,
                        unit: c,
                        day: f,
                        hour: v,
                        minute: h,
                        year: g,
                        month: p.monthMod(m),
                    });
                    for (var y = u, b = 0; b < l; b++) h >= 60 &&
                    (h = 0, 24 === (v += 1) && (v = 0)), y = o +
                        y, this.timeScaleArray.push({
                        position: y,
                        value: h,
                        unit: c,
                        hour: v,
                        minute: h,
                        day: f,
                        year: this._getYear(r, m, 0),
                        month: p.monthMod(m),
                    }), h++;
                },
            },
            {
                key: 'createRawDateString',
                value: function (e, t) {
                    var n = e.year;
                    return n += '-' +
                        ('0' + e.month.toString()).slice(-2), 'day' === e.unit
                        ? n += 'day' === e.unit
                            ? '-' + ('0' + t).slice(-2)
                            : '-01'
                        : n += '-' +
                            ('0' + (e.day ? e.day : '1')).slice(-2), 'hour' ===
                    e.unit ? n += 'hour' === e.unit
                        ? 'T' + ('0' + t).slice(-2)
                        : 'T00' : n += 'T' +
                        ('0' + (e.hour ? e.hour : '0')).slice(
                            -2), n += 'minute' === e.unit ? ':' +
                        ('0' + t).slice(-2) + ':00' : ':00:00', this.utc &&
                    (n += '.000Z'), n;
                },
            },
            {
                key: 'formatDates', value: function (e) {
                    var t = this, n = this.w;
                    return e.map((function (e) {
                        var i = e.value.toString(), a = new P(t.ctx),
                            r = t.createRawDateString(e, i),
                            o = a.getDate(a.parseDate(r));
                        if (t.utc ||
                        (o = a.getDate(a.parseDateWithTimezone(r))), void 0 ===
                        n.config.xaxis.labels.format) {
                            var s = 'dd MMM',
                                l = n.config.xaxis.labels.datetimeFormatter;
                            'year' === e.unit && (s = l.year), 'month' ===
                            e.unit && (s = l.month), 'day' === e.unit &&
                            (s = l.day), 'hour' === e.unit &&
                            (s = l.hour), 'minute' === e.unit &&
                            (s = l.minute), i = a.formatDate(o, s);
                        } else i = a.formatDate(o,
                            n.config.xaxis.labels.format);
                        return {
                            dateString: r,
                            position: e.position,
                            value: i,
                            unit: e.unit,
                            year: e.year,
                            month: e.month,
                        };
                    }));
                },
            },
            {
                key: 'removeOverlappingTS',
                value: function (e) {
                    var t, n = this, i = new v(this.ctx), a = !1;
                    e.length > 0 && e[0].value && e.every((function (t) {
                        return t.value.length === e[0].value.length;
                    })) && (a = !0, t = i.getTextRects(e[0].value).width);
                    var r = 0, o = e.map((function (o, s) {
                        if (s > 0 &&
                            n.w.config.xaxis.labels.hideOverlappingLabels) {
                            var l = a
                                ? t
                                : i.getTextRects(e[r].value).width,
                                c = e[r].position;
                            return o.position > c + l + 10 ? (r = s, o) : null;
                        }
                        return o;
                    }));
                    return o.filter((function (e) {return null !== e;}));
                },
            },
            {
                key: '_getYear',
                value: function (e, t, n) {return e + Math.floor(t / 12) + n;},
            }]), e;
    }(), Oe = function () {
        function e (n, i) {t(this, e), this.ctx = i, this.w = i.w, this.el = n;}

        return i(e, [
            {
                key: 'setupElements', value: function () {
                    var e = this.w.globals, t = this.w.config, n = t.chart.type;
                    e.axisCharts = [
                        'line',
                        'area',
                        'bar',
                        'rangeBar',
                        'candlestick',
                        'scatter',
                        'bubble',
                        'radar',
                        'heatmap',
                        'treemap'].indexOf(n) > -1, e.xyCharts = [
                            'line',
                            'area',
                            'bar',
                            'rangeBar',
                            'candlestick',
                            'scatter',
                            'bubble'].indexOf(n) >
                        -1, e.isBarHorizontal = ('bar' === t.chart.type ||
                        'rangeBar' === t.chart.type) &&
                        t.plotOptions.bar.horizontal, e.chartClass = '.apexcharts' +
                        e.chartID, e.dom.baseEl = this.el, e.dom.elWrap = document.createElement(
                        'div'), v.setAttrs(e.dom.elWrap, {
                        id: e.chartClass.substring(1),
                        class: 'apexcharts-canvas ' + e.chartClass.substring(1),
                    }), this.el.appendChild(
                        e.dom.elWrap), e.dom.Paper = new window.SVG.Doc(
                        e.dom.elWrap), e.dom.Paper.attr({
                        class: 'apexcharts-svg',
                        'xmlns:data': 'ApexChartsNS',
                        transform: 'translate('.concat(t.chart.offsetX, ', ').
                            concat(t.chart.offsetY, ')'),
                    }), e.dom.Paper.node.style.background = t.chart.background, this.setSVGDimensions(), e.dom.elGraphical = e.dom.Paper.group().
                        attr(
                            { class: 'apexcharts-inner apexcharts-graphical' }), e.dom.elAnnotations = e.dom.Paper.group().
                        attr(
                            { class: 'apexcharts-annotations' }), e.dom.elDefs = e.dom.Paper.defs(), e.dom.elLegendWrap = document.createElement(
                        'div'), e.dom.elLegendWrap.classList.add(
                        'apexcharts-legend'), e.dom.elWrap.appendChild(
                        e.dom.elLegendWrap), e.dom.Paper.add(
                        e.dom.elGraphical), e.dom.elGraphical.add(e.dom.elDefs);
                },
            },
            {
                key: 'plotChartType', value: function (e, t) {
                    var n = this.w, i = n.config, a = n.globals,
                        r = { series: [], i: [] }, o = { series: [], i: [] },
                        s = { series: [], i: [] }, l = { series: [], i: [] },
                        c = { series: [], i: [] }, u = { series: [], i: [] };
                    a.series.map((function (t, d) {
                        void 0 !== e[d].type
                            ? ('column' === e[d].type || 'bar' === e[d].type
                            ? (a.series.length > 1 &&
                            i.plotOptions.bar.horizontal && console.warn(
                                'Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`'), c.series.push(
                                t), c.i.push(
                                d), n.globals.columnSeries = c.series)
                            : 'area' === e[d].type ? (o.series.push(
                                t), o.i.push(d)) : 'line' === e[d].type
                                ? (r.series.push(t), r.i.push(d))
                                : 'scatter' === e[d].type ? (s.series.push(
                                    t), s.i.push(d)) : 'bubble' === e[d].type
                                    ? (l.series.push(t), l.i.push(d))
                                    : 'candlestick' === e[d].type
                                        ? (u.series.push(t), u.i.push(d))
                                        : console.warn(
                                            'You have specified an unrecognized chart type. Available types for this property are line/area/column/bar/scatter/bubble'), a.comboCharts = !0)
                            : (r.series.push(t), r.i.push(d));
                    }));
                    var d = new Te(this.ctx, t), h = new be(this.ctx, t);
                    this.ctx.pie = new ke(this.ctx);
                    var f = new Le(this.ctx);
                    this.ctx.rangeBar = new I(this.ctx, t);
                    var p = new Me(this.ctx), m = [];
                    if (a.comboCharts) {
                        if (o.series.length > 0 &&
                        m.push(d.draw(o.series, 'area', o.i)), c.series.length >
                        0) if (n.config.chart.stacked) {
                            var g = new ye(this.ctx, t);
                            m.push(g.draw(c.series, c.i));
                        } else {
                            var v = new Y(this.ctx, t);
                            m.push(v.draw(c.series, c.i));
                        }
                        if (r.series.length > 0 &&
                        m.push(d.draw(r.series, 'line', r.i)), u.series.length >
                        0 && m.push(h.draw(u.series, u.i)), s.series.length >
                        0) {
                            var y = new Te(this.ctx, t, !0);
                            m.push(y.draw(s.series, 'scatter', s.i));
                        }
                        if (l.series.length > 0) {
                            var b = new Te(this.ctx, t, !0);
                            m.push(b.draw(l.series, 'bubble', l.i));
                        }
                    } else switch (i.chart.type) {
                        case'line':
                            m = d.draw(a.series, 'line');
                            break;
                        case'area':
                            m = d.draw(a.series, 'area');
                            break;
                        case'bar':
                            m = i.chart.stacked ? new ye(this.ctx, t).draw(
                                a.series) : new Y(this.ctx, t).draw(a.series);
                            break;
                        case'candlestick':
                            m = new be(this.ctx, t).draw(a.series);
                            break;
                        case'rangeBar':
                            m = this.ctx.rangeBar.draw(a.series);
                            break;
                        case'heatmap':
                            m = new _e(this.ctx, t).draw(a.series);
                            break;
                        case'treemap':
                            m = new Ce(this.ctx, t).draw(a.series);
                            break;
                        case'pie':
                        case'donut':
                        case'polarArea':
                            m = this.ctx.pie.draw(a.series);
                            break;
                        case'radialBar':
                            m = f.draw(a.series);
                            break;
                        case'radar':
                            m = p.draw(a.series);
                            break;
                        default:
                            m = d.draw(a.series);
                    }
                    return m;
                },
            },
            {
                key: 'setSVGDimensions', value: function () {
                    var e = this.w.globals, t = this.w.config;
                    e.svgWidth = t.chart.width, e.svgHeight = t.chart.height;
                    var n = p.getDimensions(this.el),
                        i = t.chart.width.toString().split(/[0-9]+/g).pop();
                    '%' === i ? p.isNumber(n[0]) && (0 === n[0].width &&
                    (n = p.getDimensions(
                        this.el.parentNode)), e.svgWidth = n[0] *
                        parseInt(t.chart.width, 10) / 100) : 'px' !== i &&
                        '' !== i || (e.svgWidth = parseInt(t.chart.width, 10));
                    var a = t.chart.height.toString().split(/[0-9]+/g).pop();
                    if ('auto' !== e.svgHeight && '' !==
                        e.svgHeight) if ('%' === a) {
                        var r = p.getDimensions(this.el.parentNode);
                        e.svgHeight = r[1] * parseInt(t.chart.height, 10) / 100;
                    } else e.svgHeight = parseInt(t.chart.height,
                        10); else e.axisCharts
                        ? e.svgHeight = e.svgWidth / 1.61
                        : e.svgHeight = e.svgWidth / 1.2;
                    if (e.svgWidth < 0 && (e.svgWidth = 0), e.svgHeight < 0 &&
                    (e.svgHeight = 0), v.setAttrs(e.dom.Paper.node,
                        { width: e.svgWidth, height: e.svgHeight }), '%' !==
                    a) {
                        var o = t.chart.sparkline.enabled ? 0 : e.axisCharts
                            ? t.chart.parentHeightOffset
                            : 0;
                        e.dom.Paper.node.parentNode.parentNode.style.minHeight = e.svgHeight +
                            o + 'px';
                    }
                    e.dom.elWrap.style.width = e.svgWidth +
                        'px', e.dom.elWrap.style.height = e.svgHeight + 'px';
                },
            },
            {
                key: 'shiftGraphPosition',
                value: function () {
                    var e = this.w.globals, t = e.translateY, n = {
                        transform: 'translate(' + e.translateX + ', ' + t + ')',
                    };
                    v.setAttrs(e.dom.elGraphical.node, n);
                },
            },
            {
                key: 'resizeNonAxisCharts',
                value: function () {
                    var e = this.w, t = e.globals, n = 0,
                        i = e.config.chart.sparkline.enabled ? 1 : 15;
                    i += e.config.grid.padding.bottom, 'top' !==
                    e.config.legend.position && 'bottom' !==
                    e.config.legend.position || !e.config.legend.show ||
                    e.config.legend.floating ||
                    (n = new le(this.ctx).legendHelpers.getLegendBBox().clwh +
                        10);
                    var a = e.globals.dom.baseEl.querySelector(
                        '.apexcharts-radialbar, .apexcharts-pie'),
                        r = 2.05 * e.globals.radialSize;
                    if (a && !e.config.chart.sparkline.enabled) {
                        var o = p.getBoundingClientRect(a);
                        r = o.bottom;
                        var s = o.bottom - o.top;
                        r = Math.max(2.05 * e.globals.radialSize, s);
                    }
                    var l = r + t.translateY + n + i;
                    t.dom.elLegendForeign &&
                    t.dom.elLegendForeign.setAttribute('height',
                        l), t.dom.elWrap.style.height = l + 'px', v.setAttrs(
                        t.dom.Paper.node,
                        { height: l }), t.dom.Paper.node.parentNode.parentNode.style.minHeight = l +
                        'px';
                },
            },
            {
                key: 'coreCalculations',
                value: function () {new X(this.ctx).init();},
            },
            {
                key: 'resetGlobals',
                value: function () {
                    var e = this, t = function () {
                        return e.w.config.series.map(
                            (function (e) {return [];}));
                    }, n = new H, i = this.w.globals;
                    n.initGlobalVars(
                        i), i.seriesXvalues = t(), i.seriesYvalues = t();
                },
            },
            {
                key: 'isMultipleY',
                value: function () {
                    if (this.w.config.yaxis.constructor === Array &&
                        this.w.config.yaxis.length >
                        1) return this.w.globals.isMultipleYAxis = !0, !0;
                },
            },
            {
                key: 'xySettings', value: function () {
                    var e = null, t = this.w;
                    if (t.globals.axisCharts) {
                        if ('back' === t.config.xaxis.crosshairs.position &&
                        new J(this.ctx).drawXCrosshairs(), 'back' ===
                        t.config.yaxis[0].crosshairs.position &&
                        new J(this.ctx).drawYCrosshairs(), 'datetime' ===
                        t.config.xaxis.type && void 0 ===
                        t.config.xaxis.labels.formatter) {
                            this.ctx.timeScale = new Ee(this.ctx);
                            var n = [];
                            isFinite(t.globals.minX) &&
                            isFinite(t.globals.maxX) &&
                            !t.globals.isBarHorizontal
                                ? n = this.ctx.timeScale.calculateTimeScaleTicks(
                                t.globals.minX, t.globals.maxX)
                                : t.globals.isBarHorizontal &&
                                (n = this.ctx.timeScale.calculateTimeScaleTicks(
                                    t.globals.minY,
                                    t.globals.maxY)), this.ctx.timeScale.recalcDimensionsBasedOnFormat(
                                n);
                        }
                        e = new x(this.ctx).getCalculatedRatios();
                    }
                    return e;
                },
            },
            {
                key: 'updateSourceChart',
                value: function (e) {
                    this.ctx.w.globals.selection = void 0, this.ctx.updateHelpers._updateOptions(
                        {
                            chart: {
                                selection: {
                                    xaxis: {
                                        min: e.w.globals.minX,
                                        max: e.w.globals.maxX,
                                    },
                                },
                            },
                        }, !1, !1);
                },
            },
            {
                key: 'setupBrushHandler',
                value: function () {
                    var e = this, t = this.w;
                    if (t.config.chart.brush.enabled && 'function' !=
                        typeof t.config.chart.events.selection) {
                        var n = t.config.chart.brush.targets ||
                            [t.config.chart.brush.target];
                        n.forEach((function (t) {
                            var n = ApexCharts.getChartByID(t);
                            n.w.globals.brushSource = e.ctx, 'function' !=
                            typeof n.w.config.chart.events.zoomed &&
                            (n.w.config.chart.events.zoomed = function () {
                                e.updateSourceChart(n);
                            }), 'function' !=
                            typeof n.w.config.chart.events.scrolled &&
                            (n.w.config.chart.events.scrolled = function () {
                                e.updateSourceChart(n);
                            });
                        })), t.config.chart.events.selection = function (
                            e, i) {
                            n.forEach((function (e) {
                                var n = ApexCharts.getChartByID(e),
                                    a = p.clone(t.config.yaxis);
                                if (t.config.chart.brush.autoScaleYaxis && 1 ===
                                    n.w.globals.series.length) {
                                    var r = new U(n);
                                    a = r.autoScaleY(n, a, i);
                                }
                                var s = n.w.config.yaxis.reduce(
                                    (function (e, t, i) {
                                        return [].concat(h(e), [
                                            o(o({}, n.w.config.yaxis[i]), {}, {
                                                min: a[0].min,
                                                max: a[0].max,
                                            })]);
                                    }), []);
                                n.ctx.updateHelpers._updateOptions({
                                    xaxis: {
                                        min: i.xaxis.min,
                                        max: i.xaxis.max,
                                    }, yaxis: s,
                                }, !1, !1, !1, !1);
                            }));
                        };
                    }
                },
            }]), e;
    }(), Ye = function () {
        function n (e) {t(this, n), this.ctx = e, this.w = e.w;}

        return i(n, [
            {
                key: '_updateOptions',
                value: function (t) {
                    var n = this,
                        i = arguments.length > 1 && void 0 !== arguments[1] &&
                            arguments[1],
                        a = !(arguments.length > 2 && void 0 !==
                            arguments[2]) || arguments[2],
                        r = !(arguments.length > 3 && void 0 !==
                            arguments[3]) || arguments[3],
                        o = arguments.length > 4 && void 0 !== arguments[4] &&
                            arguments[4], s = [this.ctx];
                    r &&
                    (s = this.ctx.getSyncedCharts()), this.ctx.w.globals.isExecCalled &&
                    (s = [this.ctx], this.ctx.w.globals.isExecCalled = !1), s.forEach(
                        (function (r) {
                            var s = r.w;
                            return s.globals.shouldAnimate = a, i ||
                            (s.globals.resized = !0, s.globals.dataChanged = !0, a &&
                            r.series.getPreviousPaths()), t && 'object' ===
                            e(t) &&
                            (r.config = new N(t), t = x.extendArrayProps(
                                r.config, t, s), r.w.globals.chartID !==
                            n.ctx.w.globals.chartID &&
                            delete t.series, s.config = p.extend(s.config,
                                t), o && (s.globals.lastXAxis = t.xaxis
                                ? p.clone(t.xaxis)
                                : [], s.globals.lastYAxis = t.yaxis
                                ? p.clone(t.yaxis)
                                : [], s.globals.initialConfig = p.extend({},
                                s.config), s.globals.initialSeries = p.clone(
                                s.config.series))), r.update(t);
                        }));
                },
            },
            {
                key: '_updateSeries',
                value: function (e, t) {
                    var n, i = this,
                        a = arguments.length > 2 && void 0 !== arguments[2] &&
                            arguments[2], r = this.w;
                    return r.globals.shouldAnimate = t, r.globals.dataChanged = !0, t &&
                    this.ctx.series.getPreviousPaths(), r.globals.axisCharts
                        ? (0 === (n = e.map((function (e, t) {
                            return i._extendSeries(e, t);
                        }))).length &&
                        (n = [{ data: [] }]), r.config.series = n)
                        : r.config.series = e.slice(), a &&
                    (r.globals.initialSeries = p.clone(
                        r.config.series)), this.ctx.update();
                },
            },
            {
                key: '_extendSeries',
                value: function (e, t) {
                    var n = this.w, i = n.config.series[t];
                    return o(o({}, n.config.series[t]), {}, {
                        name: e.name ? e.name : i && i.name,
                        color: e.color ? e.color : i && i.color,
                        type: e.type ? e.type : i && i.type,
                        data: e.data ? e.data : i && i.data,
                    });
                },
            },
            {
                key: 'toggleDataPointSelection',
                value: function (e, t) {
                    var n = this.w, i = null,
                        a = '.apexcharts-series[data\\:realIndex=\''.concat(e,
                            '\']');
                    return n.globals.axisCharts
                        ? i = n.globals.dom.Paper.select(
                            ''.concat(a, ' path[j=\'').
                                concat(t, '\'], ').
                                concat(a, ' circle[j=\'').
                                concat(t, '\'], ').
                                concat(a, ' rect[j=\'').
                                concat(t, '\']')).members[0]
                        : void 0 === t && (i = n.globals.dom.Paper.select(
                        ''.concat(a, ' path[j=\'').
                            concat(e, '\']')).members[0], 'pie' !==
                    n.config.chart.type && 'polarArea' !==
                    n.config.chart.type && 'donut' !== n.config.chart.type ||
                    this.ctx.pie.pieClicked(e)), i ? (new v(
                        this.ctx).pathMouseDown(i, null), i.node
                        ? i.node
                        : null) : (console.warn(
                        'toggleDataPointSelection: Element not found'), null);
                },
            },
            {
                key: 'forceXAxisUpdate', value: function (e) {
                    var t = this.w;
                    if (['min', 'max'].forEach((function (n) {
                        void 0 !== e.xaxis[n] &&
                        (t.config.xaxis[n] = e.xaxis[n], t.globals.lastXAxis[n] = e.xaxis[n]);
                    })), e.xaxis.categories && e.xaxis.categories.length &&
                    (t.config.xaxis.categories = e.xaxis.categories), t.config.xaxis.convertedCatToNumeric) {
                        var n = new j(e);
                        e = n.convertCatToNumericXaxis(e, this.ctx);
                    }
                    return e;
                },
            },
            {
                key: 'forceYAxisUpdate', value: function (e) {
                    var t = this.w;
                    return t.config.chart.stacked && '100%' ===
                    t.config.chart.stackType && (Array.isArray(e.yaxis)
                        ? e.yaxis.forEach((function (
                            t,
                            n) {e.yaxis[n].min = 0, e.yaxis[n].max = 100;}))
                        : (e.yaxis.min = 0, e.yaxis.max = 100)), e;
                },
            },
            {
                key: 'revertDefaultAxisMinMax',
                value: function (e) {
                    var t = this, n = this.w, i = n.globals.lastXAxis,
                        a = n.globals.lastYAxis;
                    e && e.xaxis && (i = e.xaxis), e && e.yaxis &&
                    (a = e.yaxis), n.config.xaxis.min = i.min, n.config.xaxis.max = i.max;
                    n.config.yaxis.map((function (e, i) {
                        n.globals.zoomed || void 0 !== a[i]
                            ? function (e) {
                                void 0 !== a[e] &&
                                (n.config.yaxis[e].min = a[e].min, n.config.yaxis[e].max = a[e].max);
                            }(i)
                            : void 0 !== t.ctx.opts.yaxis[i] &&
                            (e.min = t.ctx.opts.yaxis[i].min, e.max = t.ctx.opts.yaxis[i].max);
                    }));
                },
            }]), n;
    }();
    Ae = 'undefined' != typeof window ? window : void 0, De = function (t, n) {
        var i = (void 0 !== this
            ? this
            : t).SVG = function (e) {
            if (i.supported) return e = new i.Doc(e), i.parser.draw ||
            i.prepare(), e;
        };
        if (i.ns = 'http://www.w3.org/2000/svg', i.xmlns = 'http://www.w3.org/2000/xmlns/', i.xlink = 'http://www.w3.org/1999/xlink', i.svgjs = 'http://svgjs.com/svgjs', i.supported = !0, !i.supported) return !1;
        i.did = 1e3, i.eid = function (e) {
            return 'Svgjs' + d(e) + i.did++;
        }, i.create = function (e) {
            var t = n.createElementNS(this.ns, e);
            return t.setAttribute('id', this.eid(e)), t;
        }, i.extend = function () {
            var e, t;
            t = (e = [].slice.call(arguments)).pop();
            for (var n = e.length - 1; n >=
            0; n--) if (e[n]) for (var a in t) e[n].prototype[a] = t[a];
            i.Set && i.Set.inherit && i.Set.inherit();
        }, i.invent = function (e) {
            var t = 'function' == typeof e.create
                ? e.create
                : function () {
                    this.constructor.call(this, i.create(e.create));
                };
            return e.inherit && (t.prototype = new e.inherit), e.extend &&
            i.extend(t, e.extend), e.construct &&
            i.extend(e.parent || i.Container, e.construct), t;
        }, i.adopt = function (e) {
            return e ? e.instance
                ? e.instance
                : ((n = 'svg' == e.nodeName ? e.parentNode instanceof
                t.SVGElement
                    ? new i.Nested
                    : new i.Doc : 'linearGradient' == e.nodeName
                    ? new i.Gradient('linear')
                    : 'radialGradient' == e.nodeName
                        ? new i.Gradient('radial')
                        : i[d(e.nodeName)]
                            ? new (i[d(e.nodeName)])
                            : new i.Element(
                                e)).type = e.nodeName, n.node = e, e.instance = n, n instanceof
                i.Doc && n.namespace().defs(), n.setData(
                    JSON.parse(e.getAttribute('svgjs:data')) || {}), n) : null;
            var n;
        }, i.prepare = function () {
            var e = n.getElementsByTagName('body')[0],
                t = (e ? new i.Doc(e) : i.adopt(n.documentElement).
                    nested()).size(2, 0);
            i.parser = {
                body: e || n.documentElement,
                draw: t.style(
                    'opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden').node,
                poly: t.polyline().node,
                path: t.path().node,
                native: i.create('svg'),
            };
        }, i.parser = { native: i.create('svg') }, n.addEventListener(
            'DOMContentLoaded', (function () {i.parser.draw || i.prepare();}),
            !1), i.regex = {
            numberAndUnit: /^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,
            hex: /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,
            rgb: /rgb\((\d+),(\d+),(\d+)\)/,
            reference: /#([a-z0-9\-_]+)/i,
            transforms: /\)\s*,?\s*/,
            whitespace: /\s/g,
            isHex: /^#[a-f0-9]{3,6}$/i,
            isRgb: /^rgb\(/,
            isCss: /[^:]+:[^;]+;?/,
            isBlank: /^(\s+)?$/,
            isNumber: /^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,
            isPercent: /^-?[\d\.]+%$/,
            isImage: /\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,
            delimiter: /[\s,]+/,
            hyphen: /([^e])\-/gi,
            pathLetters: /[MLHVCSQTAZ]/gi,
            isPathLetter: /[MLHVCSQTAZ]/i,
            numbersWithDots: /((\d?\.\d+(?:e[+-]?\d+)?)((?:\.\d+(?:e[+-]?\d+)?)+))+/gi,
            dots: /\./g,
        }, i.utils = {
            map: function (
                e, t) {
                for (var n = e.length, i = [], a = 0; a < n; a++) i.push(
                    t(e[a]));
                return i;
            },
            filter: function (e, t) {
                for (var n = e.length, i = [], a = 0; a < n; a++) t(e[a]) &&
                i.push(e[a]);
                return i;
            },
            filterSVGElements: function (e) {
                return this.filter(e,
                    (function (e) {return e instanceof t.SVGElement;}));
            },
        }, i.defaults = {
            attrs: {
                'fill-opacity': 1,
                'stroke-opacity': 1,
                'stroke-width': 0,
                'stroke-linejoin': 'miter',
                'stroke-linecap': 'butt',
                fill: '#000000',
                stroke: '#000000',
                opacity: 1,
                x: 0,
                y: 0,
                cx: 0,
                cy: 0,
                width: 0,
                height: 0,
                r: 0,
                rx: 0,
                ry: 0,
                offset: 0,
                'stop-opacity': 1,
                'stop-color': '#000000',
                'font-size': 16,
                'font-family': 'Helvetica, Arial, sans-serif',
                'text-anchor': 'start',
            },
        }, i.Color = function (t) {
            var n, a;
            this.r = 0, this.g = 0, this.b = 0, t && ('string' == typeof t
                ? i.regex.isRgb.test(t)
                    ? (n = i.regex.rgb.exec(
                        t.replace(i.regex.whitespace, '')), this.r = parseInt(
                        n[1]), this.g = parseInt(n[2]), this.b = parseInt(n[3]))
                    : i.regex.isHex.test(t) && (n = i.regex.hex.exec(
                    4 == (a = t).length ? [
                        '#',
                        a.substring(1, 2),
                        a.substring(1, 2),
                        a.substring(2, 3),
                        a.substring(2, 3),
                        a.substring(3, 4),
                        a.substring(3, 4)].join('') : a), this.r = parseInt(
                    n[1], 16), this.g = parseInt(n[2], 16), this.b = parseInt(
                    n[3], 16))
                : 'object' === e(t) &&
                (this.r = t.r, this.g = t.g, this.b = t.b));
        }, i.extend(i.Color, {
            toString: function () {return this.toHex();},
            toHex: function () {
                return '#' + h(this.r) + h(this.g) + h(this.b);
            },
            toRgb: function () {
                return 'rgb(' + [this.r, this.g, this.b].join() + ')';
            },
            brightness: function () {
                return this.r / 255 * .3 + this.g / 255 * .59 + this.b / 255 *
                    .11;
            },
            morph: function (e) {
                return this.destination = new i.Color(e), this;
            },
            at: function (e) {
                return this.destination ? (e = e < 0 ? 0 : e > 1
                    ? 1
                    : e, new i.Color({
                    r: ~~(this.r + (this.destination.r - this.r) * e),
                    g: ~~(this.g + (this.destination.g - this.g) * e),
                    b: ~~(this.b + (this.destination.b - this.b) * e),
                })) : this;
            },
        }), i.Color.test = function (e) {
            return e += '', i.regex.isHex.test(e) || i.regex.isRgb.test(e);
        }, i.Color.isRgb = function (e) {
            return e && 'number' == typeof e.r && 'number' == typeof e.g &&
                'number' == typeof e.b;
        }, i.Color.isColor = function (e) {
            return i.Color.isRgb(e) || i.Color.test(e);
        }, i.Array = function (e, t) {
            0 == (e = (e || []).valueOf()).length && t &&
            (e = t.valueOf()), this.value = this.parse(e);
        }, i.extend(i.Array, {
            toString: function () {return this.value.join(' ');},
            valueOf: function () {return this.value;},
            parse: function (e) {
                return e = e.valueOf(), Array.isArray(e)
                    ? e
                    : this.split(e);
            },
        }), i.PointArray = function (e, t) {
            i.Array.call(this, e, t || [[0, 0]]);
        }, i.PointArray.prototype = new i.Array, i.PointArray.prototype.constructor = i.PointArray;
        for (var a = {
            M: function (
                e, t, n) {
                return t.x = n.x = e[0], t.y = n.y = e[1], [
                    'M',
                    t.x,
                    t.y];
            },
            L: function (e, t) {
                return t.x = e[0], t.y = e[1], [
                    'L',
                    e[0],
                    e[1]];
            },
            H: function (e, t) {return t.x = e[0], ['H', e[0]];},
            V: function (e, t) {return t.y = e[0], ['V', e[0]];},
            C: function (e, t) {
                return t.x = e[4], t.y = e[5], [
                    'C',
                    e[0],
                    e[1],
                    e[2],
                    e[3],
                    e[4],
                    e[5]];
            },
            Q: function (e, t) {
                return t.x = e[2], t.y = e[3], [
                    'Q',
                    e[0],
                    e[1],
                    e[2],
                    e[3]];
            },
            Z: function (e, t, n) {return t.x = n.x, t.y = n.y, ['Z'];},
        }, r = 'mlhvqtcsaz'.split(''), o = 0, s = r.length; o <
             s; ++o) a[r[o]] = function (e) {
            return function (
                t, n, i) {
                if ('H' == e) t[0] = t[0] + n.x; else if ('V' ==
                    e) t[0] = t[0] + n.y; else if ('A' == e) t[5] = t[5] +
                    n.x, t[6] = t[6] +
                    n.y; else for (var r = 0, o = t.length; r <
                o; ++r) t[r] = t[r] + (r % 2 ? n.y : n.x);
                return a[e](t, n, i);
            };
        }(r[o].toUpperCase());
        i.PathArray = function (e, t) {
            i.Array.call(this, e, t || [['M', 0, 0]]);
        }, i.PathArray.prototype = new i.Array, i.PathArray.prototype.constructor = i.PathArray, i.extend(
            i.PathArray, {
                toString: function () {
                    return function (e) {
                        for (var t = 0, n = e.length, i = ''; t <
                        n; t++) i += e[t][0], null != e[t][1] &&
                        (i += e[t][1], null != e[t][2] &&
                        (i += ' ', i += e[t][2], null != e[t][3] &&
                        (i += ' ', i += e[t][3], i += ' ', i += e[t][4], null !=
                        e[t][5] &&
                        (i += ' ', i += e[t][5], i += ' ', i += e[t][6], null !=
                        e[t][7] && (i += ' ', i += e[t][7])))));
                        return i + ' ';
                    }(this.value);
                },
                move: function (e, t) {
                    var n = this.bbox();
                    return n.x, n.y, this;
                },
                at: function (e) {
                    if (!this.destination) return this;
                    for (var t = this.value, n = this.destination.value, a = [], r = new i.PathArray, o = 0, s = t.length; o <
                    s; o++) {
                        a[o] = [t[o][0]];
                        for (var l = 1, c = t[o].length; l <
                        c; l++) a[o][l] = t[o][l] + (n[o][l] - t[o][l]) * e;
                        'A' === a[o][0] &&
                        (a[o][4] = +(0 != a[o][4]), a[o][5] = +(0 != a[o][5]));
                    }
                    return r.value = a, r;
                },
                parse: function (e) {
                    if (e instanceof i.PathArray) return e.valueOf();
                    var t, n = {
                        M: 2,
                        L: 2,
                        H: 1,
                        V: 1,
                        C: 6,
                        S: 4,
                        Q: 4,
                        T: 2,
                        A: 7,
                        Z: 0,
                    };
                    e = 'string' == typeof e ? e.replace(
                        i.regex.numbersWithDots, c).
                        replace(i.regex.pathLetters, ' $& ').
                        replace(i.regex.hyphen, '$1 -').
                        trim().
                        split(i.regex.delimiter) : e.reduce(
                        (function (e, t) {return [].concat.call(e, t);}), []);
                    var r = [], o = new i.Point, s = new i.Point, l = 0,
                        u = e.length;
                    do {
                        i.regex.isPathLetter.test(e[l])
                            ? (t = e[l], ++l)
                            : 'M' == t ? t = 'L' : 'm' == t &&
                            (t = 'l'), r.push(a[t].call(null,
                            e.slice(l, l += n[t.toUpperCase()]).map(parseFloat),
                            o, s));
                    } while (u > l);
                    return r;
                },
                bbox: function () {
                    return i.parser.draw ||
                    i.prepare(), i.parser.path.setAttribute('d',
                        this.toString()), i.parser.path.getBBox();
                },
            }), i.Number = i.invent({
            create: function (e, t) {
                this.value = 0, this.unit = t || '', 'number' == typeof e
                    ? this.value = isNaN(e) ? 0 : isFinite(e) ? e : e < 0
                        ? -34e37
                        : 34e37
                    : 'string' == typeof e
                        ? (t = e.match(i.regex.numberAndUnit)) &&
                        (this.value = parseFloat(t[1]), '%' == t[5]
                            ? this.value /= 100
                            : 's' == t[5] &&
                            (this.value *= 1e3), this.unit = t[5])
                        : e instanceof i.Number &&
                        (this.value = e.valueOf(), this.unit = e.unit);
            },
            extend: {
                toString: function () {
                    return ('%' == this.unit
                        ? ~~(1e8 * this.value) / 1e6
                        : 's' == this.unit ? this.value / 1e3 : this.value) +
                        this.unit;
                },
                toJSON: function () {return this.toString();},
                valueOf: function () {return this.value;},
                plus: function (e) {
                    return e = new i.Number(e), new i.Number(this + e,
                        this.unit || e.unit);
                },
                minus: function (e) {
                    return e = new i.Number(e), new i.Number(this - e,
                        this.unit || e.unit);
                },
                times: function (e) {
                    return e = new i.Number(e), new i.Number(this * e,
                        this.unit || e.unit);
                },
                divide: function (e) {
                    return e = new i.Number(e), new i.Number(this / e,
                        this.unit || e.unit);
                },
                to: function (e) {
                    var t = new i.Number(this);
                    return 'string' == typeof e && (t.unit = e), t;
                },
                morph: function (e) {
                    return this.destination = new i.Number(e), e.relative &&
                    (this.destination.value += this.value), this;
                },
                at: function (e) {
                    return this.destination
                        ? new i.Number(
                            this.destination).minus(this).times(e).plus(this)
                        : this;
                },
            },
        }), i.Element = i.invent({
            create: function (e) {
                this._stroke = i.defaults.attrs.stroke, this._event = null, this.dom = {}, (this.node = e) &&
                (this.type = e.nodeName, this.node.instance = this, this._stroke = e.getAttribute(
                    'stroke') || this._stroke);
            }, extend: {
                x: function (e) {return this.attr('x', e);},
                y: function (e) {return this.attr('y', e);},
                cx: function (e) {
                    return null == e
                        ? this.x() + this.width() / 2
                        : this.x(e - this.width() / 2);
                },
                cy: function (e) {
                    return null == e ? this.y() + this.height() / 2 : this.y(
                        e - this.height() / 2);
                },
                move: function (e, t) {return this.x(e).y(t);},
                center: function (e, t) {return this.cx(e).cy(t);},
                width: function (e) {return this.attr('width', e);},
                height: function (e) {return this.attr('height', e);},
                size: function (e, t) {
                    var n = f(this, e, t);
                    return this.width(new i.Number(n.width)).
                        height(new i.Number(n.height));
                },
                clone: function (e) {
                    this.writeDataToDom();
                    var t = g(this.node.cloneNode(!0));
                    return e ? e.add(t) : this.after(t), t;
                },
                remove: function () {
                    return this.parent() &&
                    this.parent().removeElement(this), this;
                },
                replace: function (e) {return this.after(e).remove(), e;},
                addTo: function (e) {return e.put(this);},
                putIn: function (e) {return e.add(this);},
                id: function (e) {return this.attr('id', e);},
                show: function () {return this.style('display', '');},
                hide: function () {return this.style('display', 'none');},
                visible: function () {return 'none' != this.style('display');},
                toString: function () {return this.attr('id');},
                classes: function () {
                    var e = this.attr('class');
                    return null == e ? [] : e.trim().split(i.regex.delimiter);
                },
                hasClass: function (e) {
                    return -1 != this.classes().indexOf(e);
                },
                addClass: function (e) {
                    if (!this.hasClass(e)) {
                        var t = this.classes();
                        t.push(e), this.attr('class', t.join(' '));
                    }
                    return this;
                },
                removeClass: function (e) {
                    return this.hasClass(e) && this.attr('class',
                        this.classes().
                            filter((function (t) {return t != e;})).
                            join(' ')), this;
                },
                toggleClass: function (e) {
                    return this.hasClass(e)
                        ? this.removeClass(e)
                        : this.addClass(e);
                },
                reference: function (e) {return i.get(this.attr(e));},
                parent: function (e) {
                    var n = this;
                    if (!n.node.parentNode) return null;
                    if (n = i.adopt(n.node.parentNode), !e) return n;
                    for (; n && n.node instanceof t.SVGElement;) {
                        if ('string' == typeof e ? n.matches(e) : n instanceof
                            e) return n;
                        if (!n.node.parentNode || '#document' ==
                            n.node.parentNode.nodeName) return null;
                        n = i.adopt(n.node.parentNode);
                    }
                },
                doc: function () {
                    return this instanceof i.Doc
                        ? this
                        : this.parent(i.Doc);
                },
                parents: function (e) {
                    var t = [], n = this;
                    do {
                        if (!(n = n.parent(e)) || !n.node) break;
                        t.push(n);
                    } while (n.parent);
                    return t;
                },
                matches: function (e) {
                    return function (e, t) {
                        return (e.matches || e.matchesSelector ||
                            e.msMatchesSelector || e.mozMatchesSelector ||
                            e.webkitMatchesSelector || e.oMatchesSelector).call(
                            e, t);
                    }(this.node, e);
                },
                native: function () {return this.node;},
                svg: function (e) {
                    var t = n.createElement('svg');
                    if (!(e && this instanceof i.Parent)) return t.appendChild(
                        e = n.createElement(
                            'svg')), this.writeDataToDom(), e.appendChild(
                        this.node.cloneNode(!0)), t.innerHTML.replace(/^<svg>/,
                        '').replace(/<\/svg>$/, '');
                    t.innerHTML = '<svg>' + e.replace(/\n/, '').
                            replace(/<([\w:-]+)([^<]+?)\/>/g, '<$1$2></$1>') +
                        '</svg>';
                    for (var a = 0, r = t.firstChild.childNodes.length; a <
                    r; a++) this.node.appendChild(t.firstChild.firstChild);
                    return this;
                },
                writeDataToDom: function () {
                    return (this.each || this.lines) &&
                    (this.each ? this : this.lines()).each(
                        (function () {this.writeDataToDom();})), this.node.removeAttribute(
                        'svgjs:data'), Object.keys(this.dom).length &&
                    this.node.setAttribute('svgjs:data',
                        JSON.stringify(this.dom)), this;
                },
                setData: function (e) {return this.dom = e, this;},
                is: function (e) {
                    return function (e, t) {
                        return e instanceof t;
                    }(this, e);
                },
            },
        }), i.easing = {
            '-': function (e) {return e;},
            '<>': function (e) {return -Math.cos(e * Math.PI) / 2 + .5;},
            '>': function (e) {return Math.sin(e * Math.PI / 2);},
            '<': function (e) {return 1 - Math.cos(e * Math.PI / 2);},
        }, i.morph = function (e) {
            return function (
                t, n) {
                return new i.MorphObj(t, n).at(e);
            };
        }, i.Situation = i.invent({
            create: function (e) {
                this.init = !1, this.reversed = !1, this.reversing = !1, this.duration = new i.Number(
                    e.duration).valueOf(), this.delay = new i.Number(
                    e.delay).valueOf(), this.start = +new Date +
                    this.delay, this.finish = this.start +
                    this.duration, this.ease = e.ease, this.loop = 0, this.loops = !1, this.animations = {}, this.attrs = {}, this.styles = {}, this.transforms = [], this.once = {};
            },
        }), i.FX = i.invent({
            create: function (e) {this._target = e, this.situations = [], this.active = !1, this.situation = null, this.paused = !1, this.lastPos = 0, this.pos = 0, this.absPos = 0, this._speed = 1;},
            extend: {
                animate: function (t, n, a) {
                    'object' === e(t) &&
                    (n = t.ease, a = t.delay, t = t.duration);
                    var r = new i.Situation({
                        duration: t || 1e3,
                        delay: a || 0,
                        ease: i.easing[n || '-'] || n,
                    });
                    return this.queue(r), this;
                },
                target: function (e) {
                    return e && e instanceof i.Element
                        ? (this._target = e, this)
                        : this._target;
                },
                timeToAbsPos: function (e) {
                    return (e - this.situation.start) /
                        (this.situation.duration / this._speed);
                },
                absPosToTime: function (e) {
                    return this.situation.duration / this._speed * e +
                        this.situation.start;
                },
                startAnimFrame: function () {
                    this.stopAnimFrame(), this.animationFrame = t.requestAnimationFrame(
                        function () {this.step();}.bind(this));
                },
                stopAnimFrame: function () {
                    t.cancelAnimationFrame(this.animationFrame);
                },
                start: function () {
                    return !this.active && this.situation &&
                    (this.active = !0, this.startCurrent()), this;
                },
                startCurrent: function () {
                    return this.situation.start = +new Date +
                        this.situation.delay /
                        this._speed, this.situation.finish = this.situation.start +
                        this.situation.duration /
                        this._speed, this.initAnimations().step();
                },
                queue: function (e) {
                    return ('function' == typeof e || e instanceof
                        i.Situation) &&
                    this.situations.push(e), this.situation ||
                    (this.situation = this.situations.shift()), this;
                },
                dequeue: function () {
                    return this.stop(), this.situation = this.situations.shift(), this.situation &&
                    (this.situation instanceof i.Situation
                        ? this.start()
                        : this.situation.call(this)), this;
                },
                initAnimations: function () {
                    var e, t = this.situation;
                    if (t.init) return this;
                    for (var n in t.animations) {
                        e = this.target()[n](), Array.isArray(e) ||
                        (e = [e]), Array.isArray(t.animations[n]) ||
                        (t.animations[n] = [t.animations[n]]);
                        for (var a = e.length; a--;) t.animations[n][a] instanceof
                        i.Number && (e[a] = new i.Number(
                            e[a])), t.animations[n][a] = e[a].morph(
                            t.animations[n][a]);
                    }
                    for (var n in t.attrs) t.attrs[n] = new i.MorphObj(
                        this.target().attr(n), t.attrs[n]);
                    for (var n in t.styles) t.styles[n] = new i.MorphObj(
                        this.target().style(n), t.styles[n]);
                    return t.initialTransformation = this.target().
                        matrixify(), t.init = !0, this;
                },
                clearQueue: function () {return this.situations = [], this;},
                clearCurrent: function () {return this.situation = null, this;},
                stop: function (e, t) {
                    var n = this.active;
                    return this.active = !1, t && this.clearQueue(), e &&
                    this.situation && (!n &&
                    this.startCurrent(), this.atEnd()), this.stopAnimFrame(), this.clearCurrent();
                },
                after: function (e) {
                    var t = this.last();
                    return this.target().
                        on('finished.fx', (function n (i) {
                            i.detail.situation == t &&
                            (e.call(this, t), this.off('finished.fx', n));
                        })), this._callStart();
                },
                during: function (e) {
                    var t = this.last(), n = function (n) {
                        n.detail.situation == t &&
                        e.call(this, n.detail.pos, i.morph(n.detail.pos),
                            n.detail.eased, t);
                    };
                    return this.target().
                        off('during.fx', n).
                        on('during.fx', n), this.after((function () {
                        this.off('during.fx', n);
                    })), this._callStart();
                },
                afterAll: function (e) {
                    var t = function t (n) {
                        e.call(this), this.off('allfinished.fx', t);
                    };
                    return this.target().
                        off('allfinished.fx', t).
                        on('allfinished.fx', t), this._callStart();
                },
                last: function () {
                    return this.situations.length
                        ? this.situations[this.situations.length - 1]
                        : this.situation;
                },
                add: function (e, t, n) {
                    return this.last()[n ||
                    'animations'][e] = t, this._callStart();
                },
                step: function (e) {
                    var t, n, i;
                    e || (this.absPos = this.timeToAbsPos(+new Date)), !1 !==
                    this.situation.loops
                        ? (t = Math.max(this.absPos, 0), n = Math.floor(
                            t), !0 === this.situation.loops || n <
                        this.situation.loops
                            ? (this.pos = t -
                                n, i = this.situation.loop, this.situation.loop = n)
                            : (this.absPos = this.situation.loops, this.pos = 1, i = this.situation.loop -
                                1, this.situation.loop = this.situation.loops), this.situation.reversing &&
                        (this.situation.reversed = this.situation.reversed !=
                            Boolean((this.situation.loop - i) % 2)))
                        : (this.absPos = Math.min(this.absPos,
                            1), this.pos = this.absPos), this.pos < 0 &&
                    (this.pos = 0), this.situation.reversed &&
                    (this.pos = 1 - this.pos);
                    var a = this.situation.ease(this.pos);
                    for (var r in this.situation.once) r > this.lastPos && r <=
                    a && (this.situation.once[r].call(this.target(), this.pos,
                        a), delete this.situation.once[r]);
                    return this.active && this.target().
                        fire('during', {
                            pos: this.pos,
                            eased: a,
                            fx: this,
                            situation: this.situation,
                        }), this.situation ? (this.eachAt(), 1 == this.pos &&
                    !this.situation.reversed || this.situation.reversed && 0 ==
                    this.pos ? (this.stopAnimFrame(), this.target().
                        fire('finished', {
                            fx: this,
                            situation: this.situation,
                        }), this.situations.length || (this.target().
                        fire('allfinished'), this.situations.length ||
                    (this.target().off('.fx'), this.active = !1)), this.active
                        ? this.dequeue()
                        : this.clearCurrent()) : !this.paused && this.active &&
                        this.startAnimFrame(), this.lastPos = a, this) : this;
                },
                eachAt: function () {
                    var e, t = this, n = this.target(), a = this.situation;
                    for (var r in a.animations) e = [].concat(a.animations[r]).
                        map((function (e) {
                            return 'string' != typeof e && e.at
                                ? e.at(a.ease(t.pos), t.pos)
                                : e;
                        })), n[r].apply(n, e);
                    for (var r in a.attrs) e = [r].concat(a.attrs[r]).
                        map((function (e) {
                            return 'string' != typeof e && e.at
                                ? e.at(a.ease(t.pos), t.pos)
                                : e;
                        })), n.attr.apply(n, e);
                    for (var r in a.styles) e = [r].concat(a.styles[r]).
                        map((function (e) {
                            return 'string' != typeof e && e.at
                                ? e.at(a.ease(t.pos), t.pos)
                                : e;
                        })), n.style.apply(n, e);
                    if (a.transforms.length) {
                        e = a.initialTransformation, r = 0;
                        for (var o = a.transforms.length; r < o; r++) {
                            var s = a.transforms[r];
                            s instanceof i.Matrix
                                ? e = s.relative
                                ? e.multiply((new i.Matrix).morph(s).
                                    at(a.ease(this.pos)))
                                : e.morph(s).at(a.ease(this.pos))
                                : (s.relative ||
                                s.undo(e.extract()), e = e.multiply(
                                s.at(a.ease(this.pos))));
                        }
                        n.matrix(e);
                    }
                    return this;
                },
                once: function (e, t, n) {
                    var i = this.last();
                    return n || (e = i.ease(e)), i.once[e] = t, this;
                },
                _callStart: function () {
                    return setTimeout(function () {this.start();}.bind(this),
                        0), this;
                },
            },
            parent: i.Element,
            construct: {
                animate: function (e, t, n) {
                    return (this.fx || (this.fx = new i.FX(this))).animate(e, t,
                        n);
                },
                delay: function (e) {
                    return (this.fx || (this.fx = new i.FX(this))).delay(e);
                },
                stop: function (e, t) {
                    return this.fx && this.fx.stop(e, t), this;
                },
                finish: function () {return this.fx && this.fx.finish(), this;},
            },
        }), i.MorphObj = i.invent({
            create: function (e, t) {
                return i.Color.isColor(t)
                    ? new i.Color(e).morph(t)
                    : i.regex.delimiter.test(e) ? i.regex.pathLetters.test(e)
                        ? new i.PathArray(e).morph(t)
                        : new i.Array(e).morph(t) : i.regex.numberAndUnit.test(
                        t)
                        ? new i.Number(e).morph(t)
                        : (this.value = e, void (this.destination = t));
            },
            extend: {
                at: function (e, t) {
                    return t < 1
                        ? this.value
                        : this.destination;
                }, valueOf: function () {return this.value;},
            },
        }), i.extend(i.FX, {
            attr: function (t, n, i) {
                if ('object' === e(t)) for (var a in t) this.attr(a,
                    t[a]); else this.add(t, n, 'attrs');
                return this;
            },
            plot: function (e, t, n, i) {
                return 4 == arguments.length
                    ? this.plot([e, t, n, i])
                    : this.add('plot', new (this.target().morphArray)(e));
            },
        }), i.Box = i.invent({
            create: function (t, n, a, r) {
                if (!('object' !== e(t) || t instanceof
                    i.Element)) return i.Box.call(this,
                    null != t.left ? t.left : t.x, null != t.top ? t.top : t.y,
                    t.width, t.height);
                4 == arguments.length &&
                (this.x = t, this.y = n, this.width = a, this.height = r), v(
                    this);
            },
        }), i.BBox = i.invent({
            create: function (e) {
                if (i.Box.apply(this, [].slice.call(arguments)), e instanceof
                i.Element) {
                    var t;
                    try {
                        if (!n.documentElement.contains) {
                            for (var a = e.node; a.parentNode;) a = a.parentNode;
                            if (a != n) throw new Error(
                                'Element not in the dom');
                        }
                        t = e.node.getBBox();
                    } catch (n) {
                        if (e instanceof i.Shape) {
                            i.parser.draw || i.prepare();
                            var r = e.clone(i.parser.draw.instance).show();
                            t = r.node.getBBox(), r.remove();
                        } else t = {
                            x: e.node.clientLeft,
                            y: e.node.clientTop,
                            width: e.node.clientWidth,
                            height: e.node.clientHeight,
                        };
                    }
                    i.Box.call(this, t);
                }
            },
            inherit: i.Box,
            parent: i.Element,
            construct: { bbox: function () {return new i.BBox(this);} },
        }), i.BBox.prototype.constructor = i.BBox, i.Matrix = i.invent({
            create: function (t) {
                var n = m([1, 0, 0, 1, 0, 0]);
                t = t instanceof i.Element ? t.matrixify() : 'string' ==
                typeof t ? m(t.split(i.regex.delimiter).map(parseFloat)) : 6 ==
                arguments.length ? m([].slice.call(arguments)) : Array.isArray(
                    t) ? m(t) : 'object' === e(t) ? t : n;
                for (var a = b.length - 1; a >= 0; --a) this[b[a]] = null !=
                t[b[a]] ? t[b[a]] : n[b[a]];
            },
            extend: {
                extract: function () {
                    var e = p(this, 0, 1), t = (p(this, 1, 0), 180 / Math.PI *
                    Math.atan2(e.y, e.x) - 90);
                    return {
                        x: this.e,
                        y: this.f,
                        transformedX: (this.e * Math.cos(t * Math.PI / 180) +
                            this.f * Math.sin(t * Math.PI / 180)) /
                            Math.sqrt(this.a * this.a + this.b * this.b),
                        transformedY: (this.f * Math.cos(t * Math.PI / 180) +
                            this.e * Math.sin(-t * Math.PI / 180)) /
                            Math.sqrt(this.c * this.c + this.d * this.d),
                        rotation: t,
                        a: this.a,
                        b: this.b,
                        c: this.c,
                        d: this.d,
                        e: this.e,
                        f: this.f,
                        matrix: new i.Matrix(this),
                    };
                },
                clone: function () {return new i.Matrix(this);},
                morph: function (e) {
                    return this.destination = new i.Matrix(e), this;
                },
                multiply: function (e) {
                    return new i.Matrix(this.native().
                        multiply(function (e) {
                            return e instanceof i.Matrix ||
                            (e = new i.Matrix(e)), e;
                        }(e).native()));
                },
                inverse: function () {
                    return new i.Matrix(this.native().inverse());
                },
                translate: function (e, t) {
                    return new i.Matrix(
                        this.native().translate(e || 0, t || 0));
                },
                native: function () {
                    for (var e = i.parser.native.createSVGMatrix(), t = b.length -
                        1; t >= 0; t--) e[b[t]] = this[b[t]];
                    return e;
                },
                toString: function () {
                    return 'matrix(' + y(this.a) + ',' + y(this.b) + ',' +
                        y(this.c) + ',' + y(this.d) + ',' + y(this.e) + ',' +
                        y(this.f) + ')';
                },
            },
            parent: i.Element,
            construct: {
                ctm: function () {
                    return new i.Matrix(this.node.getCTM());
                },
                screenCTM: function () {
                    if (this instanceof i.Nested) {
                        var e = this.rect(1, 1), t = e.node.getScreenCTM();
                        return e.remove(), new i.Matrix(t);
                    }
                    return new i.Matrix(this.node.getScreenCTM());
                },
            },
        }), i.Point = i.invent({
            create: function (t, n) {
                var i;
                i = Array.isArray(t) ? { x: t[0], y: t[1] } : 'object' === e(t)
                    ? { x: t.x, y: t.y }
                    : null != t ? { x: t, y: null != n ? n : t } : {
                        x: 0,
                        y: 0,
                    }, this.x = i.x, this.y = i.y;
            },
            extend: {
                clone: function () {return new i.Point(this);},
                morph: function (e, t) {
                    return this.destination = new i.Point(e, t), this;
                },
            },
        }), i.extend(i.Element, {
            point: function (e, t) {
                return new i.Point(e, t).transform(this.screenCTM().inverse());
            },
        }), i.extend(i.Element, {
            attr: function (t, n, a) {
                if (null == t) {
                    for (t = {}, a = (n = this.node.attributes).length - 1; a >=
                    0; a--) t[n[a].nodeName] = i.regex.isNumber.test(
                        n[a].nodeValue)
                        ? parseFloat(n[a].nodeValue)
                        : n[a].nodeValue;
                    return t;
                }
                if ('object' === e(t)) for (var r in t) this.attr(r,
                    t[r]); else if (null === n) this.node.removeAttribute(
                    t); else {
                    if (null == n) return null ==
                    (n = this.node.getAttribute(t))
                        ? i.defaults.attrs[t]
                        : i.regex.isNumber.test(n) ? parseFloat(n) : n;
                    'stroke-width' == t ? this.attr('stroke',
                        parseFloat(n) > 0 ? this._stroke : null) : 'stroke' ==
                        t && (this._stroke = n), 'fill' != t && 'stroke' != t ||
                    (i.regex.isImage.test(n) &&
                    (n = this.doc().defs().image(n, 0, 0)), n instanceof
                    i.Image && (n = this.doc().
                        defs().
                        pattern(0, 0,
                            (function () {this.add(n);})))), 'number' ==
                    typeof n
                        ? n = new i.Number(n)
                        : i.Color.isColor(n)
                            ? n = new i.Color(n)
                            : Array.isArray(n) &&
                            (n = new i.Array(n)), 'leading' == t
                        ? this.leading && this.leading(n)
                        : 'string' == typeof a ? this.node.setAttributeNS(a, t,
                            n.toString()) : this.node.setAttribute(t,
                            n.toString()), !this.rebuild || 'font-size' != t &&
                    'x' != t || this.rebuild(t, n);
                }
                return this;
            },
        }), i.extend(i.Element, {
            transform: function (t, n) {
                var a;
                return 'object' !== e(t)
                    ? (a = new i.Matrix(this).extract(), 'string' == typeof t
                        ? a[t]
                        : a)
                    : (a = new i.Matrix(this), n = !!n || !!t.relative, null !=
                    t.a && (a = n ? a.multiply(new i.Matrix(t)) : new i.Matrix(
                        t)), this.attr('transform', a));
            },
        }), i.extend(i.Element, {
            untransform: function () {return this.attr('transform', null);},
            matrixify: function () {
                return (this.attr('transform') || '').split(i.regex.transforms).
                    slice(0, -1).
                    map((function (e) {
                        var t = e.trim().split('(');
                        return [
                            t[0],
                            t[1].split(i.regex.delimiter).
                                map((function (e) {return parseFloat(e);}))];
                    })).
                    reduce((function (e, t) {
                        return 'matrix' == t[0]
                            ? e.multiply(m(t[1]))
                            : e[t[0]].apply(e, t[1]);
                    }), new i.Matrix);
            },
            toParent: function (e) {
                if (this == e) return this;
                var t = this.screenCTM(), n = e.screenCTM().inverse();
                return this.addTo(e).
                    untransform().
                    transform(n.multiply(t)), this;
            },
            toDoc: function () {return this.toParent(this.doc());},
        }), i.Transformation = i.invent({
            create: function (t, n) {
                if (arguments.length > 1 && 'boolean' !=
                    typeof n) return this.constructor.call(this,
                    [].slice.call(arguments));
                if (Array.isArray(
                    t)) for (var i = 0, a = this.arguments.length; i <
                a; ++i) this[this.arguments[i]] = t[i]; else if ('object' ===
                    e(t)) for (i = 0, a = this.arguments.length; i <
                a; ++i) this[this.arguments[i]] = t[this.arguments[i]];
                this.inversed = !1, !0 === n && (this.inversed = !0);
            },
        }), i.Translate = i.invent({
            parent: i.Matrix,
            inherit: i.Transformation,
            create: function (e, t) {
                this.constructor.apply(this, [].slice.call(arguments));
            },
            extend: {
                arguments: ['transformedX', 'transformedY'],
                method: 'translate',
            },
        }), i.extend(i.Element, {
            style: function (t, n) {
                if (0 == arguments.length) return this.node.style.cssText || '';
                if (arguments.length < 2) if ('object' ===
                    e(t)) for (var a in t) this.style(a, t[a]); else {
                    if (!i.regex.isCss.test(t)) return this.node.style[u(t)];
                    for (t = t.split(/\s*;\s*/).
                        filter((function (e) {return !!e;})).
                        map((function (e) {
                            return e.split(/\s*:\s*/);
                        })); n = t.pop();) this.style(n[0], n[1]);
                } else this.node.style[u(t)] = null === n ||
                i.regex.isBlank.test(n) ? '' : n;
                return this;
            },
        }), i.Parent = i.invent({
            create: function (e) {this.constructor.call(this, e);},
            inherit: i.Element,
            extend: {
                children: function () {
                    return i.utils.map(
                        i.utils.filterSVGElements(this.node.childNodes),
                        (function (e) {return i.adopt(e);}));
                },
                add: function (e, t) {
                    return null == t ? this.node.appendChild(e.node) : e.node !=
                        this.node.childNodes[t] &&
                        this.node.insertBefore(e.node,
                            this.node.childNodes[t]), this;
                },
                put: function (e, t) {return this.add(e, t), e;},
                has: function (e) {return this.index(e) >= 0;},
                index: function (e) {
                    return [].slice.call(this.node.childNodes).
                        indexOf(e.node);
                },
                get: function (e) {return i.adopt(this.node.childNodes[e]);},
                first: function () {return this.get(0);},
                last: function () {
                    return this.get(this.node.childNodes.length - 1);
                },
                each: function (e, t) {
                    for (var n = this.children(), a = 0, r = n.length; a <
                    r; a++) n[a] instanceof i.Element &&
                    e.apply(n[a], [a, n]), t && n[a] instanceof i.Container &&
                    n[a].each(e, t);
                    return this;
                },
                removeElement: function (e) {
                    return this.node.removeChild(e.node), this;
                },
                clear: function () {
                    for (; this.node.hasChildNodes();) this.node.removeChild(
                        this.node.lastChild);
                    return delete this._defs, this;
                },
                defs: function () {return this.doc().defs();},
            },
        }), i.extend(i.Parent, {
            ungroup: function (e, t) {
                return 0 === t || this instanceof i.Defs || this.node ==
                i.parser.draw || (e = e ||
                    (this instanceof i.Doc ? this : this.parent(
                        i.Parent)), t = t || 1 / 0, this.each((function () {
                    return this instanceof i.Defs
                        ? this
                        : this instanceof i.Parent
                            ? this.ungroup(e, t - 1)
                            : this.toParent(e);
                })), this.node.firstChild || this.remove()), this;
            }, flatten: function (e, t) {return this.ungroup(e, t);},
        }), i.Container = i.invent({
            create: function (e) {this.constructor.call(this, e);},
            inherit: i.Parent,
        }), i.ViewBox = i.invent({ parent: i.Container, construct: {} }), [
            'click',
            'dblclick',
            'mousedown',
            'mouseup',
            'mouseover',
            'mouseout',
            'mousemove',
            'touchstart',
            'touchmove',
            'touchleave',
            'touchend',
            'touchcancel'].forEach((function (e) {
            i.Element.prototype[e] = function (t) {
                return i.on(this.node, e, t), this;
            };
        })), i.listeners = [], i.handlerMap = [], i.listenerId = 0, i.on = function (
            e, t, n, a, r) {
            var o = n.bind(a || e.instance || e),
                s = (i.handlerMap.indexOf(e) + 1 || i.handlerMap.push(e)) - 1,
                l = t.split('.')[0], c = t.split('.')[1] || '*';
            i.listeners[s] = i.listeners[s] ||
                {}, i.listeners[s][l] = i.listeners[s][l] ||
                {}, i.listeners[s][l][c] = i.listeners[s][l][c] ||
                {}, n._svgjsListenerId ||
            (n._svgjsListenerId = ++i.listenerId), i.listeners[s][l][c][n._svgjsListenerId] = o, e.addEventListener(
                l, o, r || { passive: !0 });
        }, i.off = function (e, t, n) {
            var a = i.handlerMap.indexOf(e), r = t && t.split('.')[0],
                o = t && t.split('.')[1], s = '';
            if (-1 != a) if (n) {
                if ('function' == typeof n &&
                (n = n._svgjsListenerId), !n) return;
                i.listeners[a][r] && i.listeners[a][r][o || '*'] &&
                (e.removeEventListener(r, i.listeners[a][r][o || '*'][n],
                    !1), delete i.listeners[a][r][o || '*'][n]);
            } else if (o && r) {
                if (i.listeners[a][r] && i.listeners[a][r][o]) {
                    for (var l in i.listeners[a][r][o]) i.off(e,
                        [r, o].join('.'), l);
                    delete i.listeners[a][r][o];
                }
            } else if (o) for (var c in i.listeners[a]) for (var s in i.listeners[a][c]) o ===
            s && i.off(e, [c, o].join('.')); else if (r) {
                if (i.listeners[a][r]) {
                    for (var s in i.listeners[a][r]) i.off(e, [r, s].join('.'));
                    delete i.listeners[a][r];
                }
            } else {
                for (var c in i.listeners[a]) i.off(e, c);
                delete i.listeners[a], delete i.handlerMap[a];
            }
        }, i.extend(i.Element, {
            on: function (e, t, n, a) {
                return i.on(this.node, e, t, n, a), this;
            },
            off: function (e, t) {return i.off(this.node, e, t), this;},
            fire: function (e, n) {
                return e instanceof t.Event
                    ? this.node.dispatchEvent(e)
                    : this.node.dispatchEvent(e = new i.CustomEvent(e,
                        { detail: n, cancelable: !0 })), this._event = e, this;
            },
            event: function () {return this._event;},
        }), i.Defs = i.invent(
            { create: 'defs', inherit: i.Container }), i.G = i.invent({
            create: 'g',
            inherit: i.Container,
            extend: {
                x: function (e) {
                    return null == e
                        ? this.transform('x')
                        : this.transform({ x: e - this.x() }, !0);
                },
            },
            construct: { group: function () {return this.put(new i.G);} },
        }), i.Doc = i.invent({
            create: function (e) {
                e && ('svg' ==
                (e = 'string' == typeof e ? n.getElementById(e) : e).nodeName
                    ? this.constructor.call(this, e)
                    : (this.constructor.call(this,
                        i.create('svg')), e.appendChild(this.node), this.size(
                        '100%', '100%')), this.namespace().
                    defs());
            },
            inherit: i.Container,
            extend: {
                namespace: function () {
                    return this.attr({ xmlns: i.ns, version: '1.1' }).
                        attr('xmlns:xlink', i.xlink, i.xmlns).
                        attr('xmlns:svgjs', i.svgjs, i.xmlns);
                },
                defs: function () {
                    var e;
                    return this._defs ||
                    ((e = this.node.getElementsByTagName('defs')[0])
                        ? this._defs = i.adopt(e)
                        : this._defs = new i.Defs, this.node.appendChild(
                        this._defs.node)), this._defs;
                },
                parent: function () {
                    return this.node.parentNode && '#document' !=
                    this.node.parentNode.nodeName ? this.node.parentNode : null;
                },
                remove: function () {
                    return this.parent() &&
                    this.parent().removeChild(this.node), this;
                },
                clear: function () {
                    for (; this.node.hasChildNodes();) this.node.removeChild(
                        this.node.lastChild);
                    return delete this._defs, i.parser.draw &&
                    !i.parser.draw.parentNode &&
                    this.node.appendChild(i.parser.draw), this;
                },
                clone: function (e) {
                    this.writeDataToDom();
                    var t = this.node, n = g(t.cloneNode(!0));
                    return e
                        ? (e.node || e).appendChild(n.node)
                        : t.parentNode.insertBefore(n.node, t.nextSibling), n;
                },
            },
        }), i.extend(i.Element, {}), i.Gradient = i.invent({
            create: function (e) {
                this.constructor.call(this,
                    i.create(e + 'Gradient')), this.type = e;
            },
            inherit: i.Container,
            extend: {
                at: function (e, t, n) {
                    return this.put(new i.Stop).
                        update(e, t, n);
                },
                update: function (e) {
                    return this.clear(), 'function' == typeof e &&
                    e.call(this, this), this;
                },
                fill: function () {return 'url(#' + this.id() + ')';},
                toString: function () {return this.fill();},
                attr: function (e, t, n) {
                    return 'transform' == e &&
                    (e = 'gradientTransform'), i.Container.prototype.attr.call(
                        this, e, t, n);
                },
            },
            construct: {
                gradient: function (e, t) {
                    return this.defs().
                        gradient(e, t);
                },
            },
        }), i.extend(i.Gradient, i.FX, {
            from: function (e, t) {
                return 'radial' == (this._target || this).type ? this.attr(
                    { fx: new i.Number(e), fy: new i.Number(t) }) : this.attr(
                    { x1: new i.Number(e), y1: new i.Number(t) });
            },
            to: function (e, t) {
                return 'radial' == (this._target || this).type
                    ? this.attr({ cx: new i.Number(e), cy: new i.Number(t) })
                    : this.attr({ x2: new i.Number(e), y2: new i.Number(t) });
            },
        }), i.extend(i.Defs, {
            gradient: function (e, t) {
                return this.put(new i.Gradient(e)).
                    update(t);
            },
        }), i.Stop = i.invent({
            create: 'stop',
            inherit: i.Element,
            extend: {
                update: function (e) {
                    return ('number' == typeof e || e instanceof i.Number) &&
                    (e = {
                        offset: arguments[0],
                        color: arguments[1],
                        opacity: arguments[2],
                    }), null != e.opacity &&
                    this.attr('stop-opacity', e.opacity), null != e.color &&
                    this.attr('stop-color', e.color), null != e.offset &&
                    this.attr('offset', new i.Number(e.offset)), this;
                },
            },
        }), i.Pattern = i.invent({
            create: 'pattern',
            inherit: i.Container,
            extend: {
                fill: function () {return 'url(#' + this.id() + ')';},
                update: function (e) {
                    return this.clear(), 'function' == typeof e &&
                    e.call(this, this), this;
                },
                toString: function () {return this.fill();},
                attr: function (e, t, n) {
                    return 'transform' == e &&
                    (e = 'patternTransform'), i.Container.prototype.attr.call(
                        this, e, t, n);
                },
            },
            construct: {
                pattern: function (e, t, n) {
                    return this.defs().
                        pattern(e, t, n);
                },
            },
        }), i.extend(i.Defs, {
            pattern: function (e, t, n) {
                return this.put(new i.Pattern).
                    update(n).
                    attr({
                        x: 0,
                        y: 0,
                        width: e,
                        height: t,
                        patternUnits: 'userSpaceOnUse',
                    });
            },
        }), i.Shape = i.invent({
            create: function (e) {this.constructor.call(this, e);},
            inherit: i.Element,
        }), i.Symbol = i.invent({
            create: 'symbol',
            inherit: i.Container,
            construct: { symbol: function () {return this.put(new i.Symbol);} },
        }), i.Use = i.invent({
            create: 'use',
            inherit: i.Shape,
            extend: {
                element: function (e, t) {
                    return this.attr('href', (t || '') + '#' + e, i.xlink);
                },
            },
            construct: {
                use: function (e, t) {
                    return this.put(new i.Use).
                        element(e, t);
                },
            },
        }), i.Rect = i.invent({
            create: 'rect',
            inherit: i.Shape,
            construct: {
                rect: function (e, t) {
                    return this.put(new i.Rect).
                        size(e, t);
                },
            },
        }), i.Circle = i.invent({
            create: 'circle',
            inherit: i.Shape,
            construct: {
                circle: function (e) {
                    return this.put(new i.Circle).
                        rx(new i.Number(e).divide(2)).
                        move(0, 0);
                },
            },
        }), i.extend(i.Circle, i.FX, {
            rx: function (e) {return this.attr('r', e);},
            ry: function (e) {return this.rx(e);},
        }), i.Ellipse = i.invent({
            create: 'ellipse',
            inherit: i.Shape,
            construct: {
                ellipse: function (e, t) {
                    return this.put(new i.Ellipse).size(e, t).move(0, 0);
                },
            },
        }), i.extend(i.Ellipse, i.Rect, i.FX, {
            rx: function (e) {return this.attr('rx', e);},
            ry: function (e) {return this.attr('ry', e);},
        }), i.extend(i.Circle, i.Ellipse, {
            x: function (e) {
                return null == e
                    ? this.cx() - this.rx()
                    : this.cx(e + this.rx());
            },
            y: function (e) {
                return null == e ? this.cy() - this.ry() : this.cy(
                    e + this.ry());
            },
            cx: function (e) {
                return null == e ? this.attr('cx') : this.attr('cx', e);
            },
            cy: function (e) {
                return null == e ? this.attr('cy') : this.attr('cy', e);
            },
            width: function (e) {
                return null == e ? 2 * this.rx() : this.rx(
                    new i.Number(e).divide(2));
            },
            height: function (e) {
                return null == e ? 2 * this.ry() : this.ry(
                    new i.Number(e).divide(2));
            },
            size: function (e, t) {
                var n = f(this, e, t);
                return this.rx(new i.Number(n.width).divide(2)).
                    ry(new i.Number(n.height).divide(2));
            },
        }), i.Line = i.invent({
            create: 'line',
            inherit: i.Shape,
            extend: {
                array: function () {
                    return new i.PointArray([
                        [this.attr('x1'), this.attr('y1')],
                        [this.attr('x2'), this.attr('y2')]]);
                },
                plot: function (e, t, n, a) {
                    return null == e
                        ? this.array()
                        : (e = void 0 !== t
                            ? { x1: e, y1: t, x2: n, y2: a }
                            : new i.PointArray(e).toLine(), this.attr(e));
                },
                move: function (e, t) {
                    return this.attr(this.array().move(e, t).toLine());
                },
                size: function (e, t) {
                    var n = f(this, e, t);
                    return this.attr(
                        this.array().size(n.width, n.height).toLine());
                },
            },
            construct: {
                line: function (e, t, n, a) {
                    return i.Line.prototype.plot.apply(this.put(new i.Line),
                        null != e ? [e, t, n, a] : [0, 0, 0, 0]);
                },
            },
        }), i.Polyline = i.invent({
            create: 'polyline',
            inherit: i.Shape,
            construct: {
                polyline: function (e) {
                    return this.put(new i.Polyline).plot(e || new i.PointArray);
                },
            },
        }), i.Polygon = i.invent({
            create: 'polygon',
            inherit: i.Shape,
            construct: {
                polygon: function (e) {
                    return this.put(new i.Polygon).
                        plot(e || new i.PointArray);
                },
            },
        }), i.extend(i.Polyline, i.Polygon, {
            array: function () {
                return this._array ||
                    (this._array = new i.PointArray(this.attr('points')));
            },
            plot: function (e) {
                return null == e ? this.array() : this.clear().
                    attr('points', 'string' == typeof e
                        ? e
                        : this._array = new i.PointArray(e));
            },
            clear: function () {return delete this._array, this;},
            move: function (e, t) {
                return this.attr('points', this.array().move(e, t));
            },
            size: function (e, t) {
                var n = f(this, e, t);
                return this.attr('points',
                    this.array().size(n.width, n.height));
            },
        }), i.extend(i.Line, i.Polyline, i.Polygon, {
            morphArray: i.PointArray,
            x: function (e) {
                return null == e ? this.bbox().x : this.move(e, this.bbox().y);
            },
            y: function (e) {
                return null == e ? this.bbox().y : this.move(this.bbox().x, e);
            },
            width: function (e) {
                var t = this.bbox();
                return null == e ? t.width : this.size(e, t.height);
            },
            height: function (e) {
                var t = this.bbox();
                return null == e ? t.height : this.size(t.width, e);
            },
        }), i.Path = i.invent({
            create: 'path',
            inherit: i.Shape,
            extend: {
                morphArray: i.PathArray,
                array: function () {
                    return this._array ||
                        (this._array = new i.PathArray(this.attr('d')));
                },
                plot: function (e) {
                    return null == e
                        ? this.array()
                        : this.clear().
                            attr('d', 'string' == typeof e
                                ? e
                                : this._array = new i.PathArray(e));
                },
                clear: function () {return delete this._array, this;},
            },
            construct: {
                path: function (e) {
                    return this.put(new i.Path).
                        plot(e || new i.PathArray);
                },
            },
        }), i.Image = i.invent({
            create: 'image',
            inherit: i.Shape,
            extend: {
                load: function (e) {
                    if (!e) return this;
                    var n = this, a = new t.Image;
                    return i.on(a, 'load', (function () {
                        i.off(a);
                        var t = n.parent(i.Pattern);
                        null !== t && (0 == n.width() && 0 == n.height() &&
                        n.size(a.width, a.height), t && 0 == t.width() && 0 ==
                        t.height() &&
                        t.size(n.width(), n.height()), 'function' ==
                        typeof n._loaded && n._loaded.call(n, {
                            width: a.width,
                            height: a.height,
                            ratio: a.width / a.height,
                            url: e,
                        }));
                    })), i.on(a, 'error', (function (e) {
                        i.off(a), 'function' == typeof n._error &&
                        n._error.call(n, e);
                    })), this.attr('href', a.src = this.src = e, i.xlink);
                },
                loaded: function (e) {return this._loaded = e, this;},
                error: function (e) {return this._error = e, this;},
            },
            construct: {
                image: function (e, t, n) {
                    return this.put(new i.Image).
                        load(e).
                        size(t || 0, n || t || 0);
                },
            },
        }), i.Text = i.invent({
            create: function () {
                this.constructor.call(this,
                    i.create('text')), this.dom.leading = new i.Number(
                    1.3), this._rebuild = !0, this._build = !1, this.attr(
                    'font-family', i.defaults.attrs['font-family']);
            },
            inherit: i.Shape,
            extend: {
                x: function (e) {
                    return null == e ? this.attr('x') : this.attr('x', e);
                },
                text: function (e) {
                    if (void 0 === e) {
                        e = '';
                        for (var t = this.node.childNodes, n = 0, a = t.length; n <
                        a; ++n) 0 != n && 3 != t[n].nodeType && 1 ==
                        i.adopt(t[n]).dom.newLined &&
                        (e += '\n'), e += t[n].textContent;
                        return e;
                    }
                    if (this.clear().build(!0), 'function' == typeof e) e.call(
                        this, this); else {
                        n = 0;
                        for (var r = (e = e.split('\n')).length; n <
                        r; n++) this.tspan(e[n]).newLine();
                    }
                    return this.build(!1).rebuild();
                },
                size: function (e) {
                    return this.attr('font-size', e).
                        rebuild();
                },
                leading: function (e) {
                    return null == e
                        ? this.dom.leading
                        : (this.dom.leading = new i.Number(e), this.rebuild());
                },
                lines: function () {
                    var e = (this.textPath && this.textPath() || this).node,
                        t = i.utils.map(i.utils.filterSVGElements(e.childNodes),
                            (function (e) {return i.adopt(e);}));
                    return new i.Set(t);
                },
                rebuild: function (e) {
                    if ('boolean' == typeof e &&
                    (this._rebuild = e), this._rebuild) {
                        var t = this, n = 0, a = this.dom.leading *
                            new i.Number(this.attr('font-size'));
                        this.lines().
                            each((function () {
                                this.dom.newLined && (t.textPath() ||
                                this.attr('x', t.attr('x')), '\n' == this.text()
                                    ? n += a
                                    : (this.attr('dy', a + n), n = 0));
                            })), this.fire('rebuild');
                    }
                    return this;
                },
                build: function (e) {return this._build = !!e, this;},
                setData: function (e) {
                    return this.dom = e, this.dom.leading = new i.Number(
                        e.leading || 1.3), this;
                },
            },
            construct: {
                text: function (e) {
                    return this.put(new i.Text).
                        text(e);
                }, plain: function (e) {return this.put(new i.Text).plain(e);},
            },
        }), i.Tspan = i.invent({
            create: 'tspan',
            inherit: i.Shape,
            extend: {
                text: function (e) {
                    return null == e
                        ? this.node.textContent +
                        (this.dom.newLined ? '\n' : '')
                        : ('function' == typeof e
                            ? e.call(this, this)
                            : this.plain(e), this);
                },
                dx: function (e) {return this.attr('dx', e);},
                dy: function (e) {return this.attr('dy', e);},
                newLine: function () {
                    var e = this.parent(i.Text);
                    return this.dom.newLined = !0, this.dy(
                        e.dom.leading * e.attr('font-size')).attr('x', e.x());
                },
            },
        }), i.extend(i.Text, i.Tspan, {
            plain: function (e) {
                return !1 === this._build &&
                this.clear(), this.node.appendChild(n.createTextNode(e)), this;
            },
            tspan: function (e) {
                var t = (this.textPath && this.textPath() || this).node,
                    n = new i.Tspan;
                return !1 === this._build && this.clear(), t.appendChild(
                    n.node), n.text(e);
            },
            clear: function () {
                for (var e = (this.textPath && this.textPath() ||
                    this).node; e.hasChildNodes();) e.removeChild(e.lastChild);
                return this;
            },
            length: function () {return this.node.getComputedTextLength();},
        }), i.TextPath = i.invent({
            create: 'textPath',
            inherit: i.Parent,
            parent: i.Text,
            construct: {
                morphArray: i.PathArray,
                array: function () {
                    var e = this.track();
                    return e ? e.array() : null;
                },
                plot: function (e) {
                    var t = this.track(), n = null;
                    return t && (n = t.plot(e)), null == e ? n : this;
                },
                track: function () {
                    var e = this.textPath();
                    if (e) return e.reference('href');
                },
                textPath: function () {
                    if (this.node.firstChild && 'textPath' ==
                        this.node.firstChild.nodeName) return i.adopt(
                        this.node.firstChild);
                },
            },
        }), i.Nested = i.invent({
            create: function () {
                this.constructor.call(this, i.create('svg')), this.style(
                    'overflow', 'visible');
            },
            inherit: i.Container,
            construct: { nested: function () {return this.put(new i.Nested);} },
        });
        var l = {
            stroke: [
                'color',
                'width',
                'opacity',
                'linecap',
                'linejoin',
                'miterlimit',
                'dasharray',
                'dashoffset'],
            fill: ['color', 'opacity', 'rule'],
            prefix: function (e, t) {return 'color' == t ? e : e + '-' + t;},
        };

        function c (e, t, n, a) {return n + a.replace(i.regex.dots, ' .');}

        function u (e) {
            return e.toLowerCase().
                replace(/-(.)/g, (function (e, t) {return t.toUpperCase();}));
        }

        function d (e) {return e.charAt(0).toUpperCase() + e.slice(1);}

        function h (e) {
            var t = e.toString(16);
            return 1 == t.length ? '0' + t : t;
        }

        function f (e, t, n) {
            if (null == t || null == n) {
                var i = e.bbox();
                null == t ? t = i.width / i.height * n : null == n &&
                    (n = i.height / i.width * t);
            }
            return { width: t, height: n };
        }

        function p (e, t, n) {
            return {
                x: t * e.a + n * e.c + 0,
                y: t * e.b + n * e.d + 0,
            };
        }

        function m (e) {
            return {
                a: e[0],
                b: e[1],
                c: e[2],
                d: e[3],
                e: e[4],
                f: e[5],
            };
        }

        function g (e) {
            for (var n = e.childNodes.length - 1; n >=
            0; n--) e.childNodes[n] instanceof t.SVGElement &&
            g(e.childNodes[n]);
            return i.adopt(e).id(i.eid(e.nodeName));
        }

        function v (e) {
            return null == e.x &&
            (e.x = 0, e.y = 0, e.width = 0, e.height = 0), e.w = e.width, e.h = e.height, e.x2 = e.x +
                e.width, e.y2 = e.y + e.height, e.cx = e.x + e.width /
                2, e.cy = e.y + e.height / 2, e;
        }

        function y (e) {return Math.abs(e) > 1e-37 ? e : 0;}

        ['fill', 'stroke'].forEach((function (e) {
            var t = {};
            t[e] = function (t) {
                if (void 0 === t) return this;
                if ('string' == typeof t || i.Color.isRgb(t) || t &&
                    'function' == typeof t.fill) this.attr(e,
                    t); else for (var n = l[e].length - 1; n >= 0; n--) null !=
                t[l[e][n]] && this.attr(l.prefix(e, l[e][n]), t[l[e][n]]);
                return this;
            }, i.extend(i.Element, i.FX, t);
        })), i.extend(i.Element, i.FX, {
            translate: function (e, t) {
                return this.transform({ x: e, y: t });
            },
            matrix: function (e) {
                return this.attr('transform', new i.Matrix(
                    6 == arguments.length ? [].slice.call(arguments) : e));
            },
            opacity: function (e) {return this.attr('opacity', e);},
            dx: function (e) {
                return this.x(
                    new i.Number(e).plus(this instanceof i.FX ? 0 : this.x()),
                    !0);
            },
            dy: function (e) {
                return this.y(
                    new i.Number(e).plus(this instanceof i.FX ? 0 : this.y()),
                    !0);
            },
        }), i.extend(i.Path, {
            length: function () {return this.node.getTotalLength();},
            pointAt: function (e) {return this.node.getPointAtLength(e);},
        }), i.Set = i.invent({
            create: function (e) {
                Array.isArray(e)
                    ? this.members = e
                    : this.clear();
            },
            extend: {
                add: function () {
                    for (var e = [].slice.call(
                        arguments), t = 0, n = e.length; t <
                         n; t++) this.members.push(e[t]);
                    return this;
                },
                remove: function (e) {
                    var t = this.index(e);
                    return t > -1 && this.members.splice(t, 1), this;
                },
                each: function (e) {
                    for (var t = 0, n = this.members.length; t <
                    n; t++) e.apply(this.members[t], [t, this.members]);
                    return this;
                },
                clear: function () {return this.members = [], this;},
                length: function () {return this.members.length;},
                has: function (e) {return this.index(e) >= 0;},
                index: function (e) {return this.members.indexOf(e);},
                get: function (e) {return this.members[e];},
                first: function () {return this.get(0);},
                last: function () {return this.get(this.members.length - 1);},
                valueOf: function () {return this.members;},
            },
            construct: { set: function (e) {return new i.Set(e);} },
        }), i.FX.Set = i.invent(
            { create: function (e) {this.set = e;} }), i.Set.inherit = function () {
            var e = [];
            for (var t in i.Shape.prototype) 'function' ==
            typeof i.Shape.prototype[t] && 'function' !=
            typeof i.Set.prototype[t] && e.push(t);
            for (var t in e.forEach((function (e) {
                i.Set.prototype[e] = function () {
                    for (var t = 0, n = this.members.length; t <
                    n; t++) this.members[t] && 'function' ==
                    typeof this.members[t][e] &&
                    this.members[t][e].apply(this.members[t], arguments);
                    return 'animate' == e ? this.fx ||
                        (this.fx = new i.FX.Set(this)) : this;
                };
            })), e = [], i.FX.prototype) 'function' ==
            typeof i.FX.prototype[t] && 'function' !=
            typeof i.FX.Set.prototype[t] && e.push(t);
            e.forEach((function (e) {
                i.FX.Set.prototype[e] = function () {
                    for (var t = 0, n = this.set.members.length; t <
                    n; t++) this.set.members[t].fx[e].apply(
                        this.set.members[t].fx, arguments);
                    return this;
                };
            }));
        }, i.extend(i.Element, {}), i.extend(i.Element, {
            remember: function (t, n) {
                if ('object' ===
                    e(arguments[0])) for (var i in t) this.remember(i,
                    t[i]); else {
                    if (1 == arguments.length) return this.memory()[t];
                    this.memory()[t] = n;
                }
                return this;
            },
            forget: function () {
                if (0 ==
                    arguments.length) this._memory = {}; else for (var e = arguments.length -
                    1; e >= 0; e--) delete this.memory()[arguments[e]];
                return this;
            },
            memory: function () {return this._memory || (this._memory = {});},
        }), i.get = function (e) {
            var t = n.getElementById(function (e) {
                var t = (e || '').toString().match(i.regex.reference);
                if (t) return t[1];
            }(e) || e);
            return i.adopt(t);
        }, i.select = function (e, t) {
            return new i.Set(i.utils.map((t || n).querySelectorAll(e),
                (function (e) {return i.adopt(e);})));
        }, i.extend(i.Parent,
            { select: function (e) {return i.select(e, this.node);} });
        var b = 'abcdef'.split('');
        if ('function' != typeof t.CustomEvent) {
            var x = function (
                e, t) {
                t = t || { bubbles: !1, cancelable: !1, detail: void 0 };
                var i = n.createEvent('CustomEvent');
                return i.initCustomEvent(e, t.bubbles, t.cancelable,
                    t.detail), i;
            };
            x.prototype = t.Event.prototype, i.CustomEvent = x;
        } else i.CustomEvent = t.CustomEvent;
        return i;
    }, 'function' == typeof define && define.amd ? define(
        (function () {return De(Ae, Ae.document);})) : 'object' ===
    ('undefined' == typeof exports ? 'undefined' : e(exports)) && 'undefined' !=
    typeof module ? module.exports = Ae.document
        ? De(Ae, Ae.document)
        : function (e) {return De(e, e.document);} : Ae.SVG = De(Ae,
        Ae.document),
        /*! svg.filter.js - v2.0.2 - 2016-02-24
  * https://github.com/wout/svg.filter.js
  * Copyright (c) 2016 Wout Fierens; Licensed MIT */
        function () {
            SVG.Filter = SVG.invent({
                create: 'filter', inherit: SVG.Parent, extend: {
                    source: 'SourceGraphic',
                    sourceAlpha: 'SourceAlpha',
                    background: 'BackgroundImage',
                    backgroundAlpha: 'BackgroundAlpha',
                    fill: 'FillPaint',
                    stroke: 'StrokePaint',
                    autoSetIn: !0,
                    put: function (e, t) {
                        return this.add(e, t), !e.attr('in') &&
                        this.autoSetIn && e.attr('in', this.source), e.attr(
                            'result') || e.attr('result', e), e;
                    },
                    blend: function (e, t, n) {
                        return this.put(new SVG.BlendEffect(e, t, n));
                    },
                    colorMatrix: function (e, t) {
                        return this.put(new SVG.ColorMatrixEffect(e, t));
                    },
                    convolveMatrix: function (e) {
                        return this.put(new SVG.ConvolveMatrixEffect(e));
                    },
                    componentTransfer: function (e) {
                        return this.put(new SVG.ComponentTransferEffect(e));
                    },
                    composite: function (e, t, n) {
                        return this.put(new SVG.CompositeEffect(e, t, n));
                    },
                    flood: function (e, t) {
                        return this.put(new SVG.FloodEffect(e, t));
                    },
                    offset: function (e, t) {
                        return this.put(new SVG.OffsetEffect(e, t));
                    },
                    image: function (e) {
                        return this.put(new SVG.ImageEffect(e));
                    },
                    merge: function () {
                        var e = [void 0];
                        for (var t in arguments) e.push(arguments[t]);
                        return this.put(
                            new (SVG.MergeEffect.bind.apply(SVG.MergeEffect,
                                e)));
                    },
                    gaussianBlur: function (e, t) {
                        return this.put(new SVG.GaussianBlurEffect(e, t));
                    },
                    morphology: function (e, t) {
                        return this.put(new SVG.MorphologyEffect(e, t));
                    },
                    diffuseLighting: function (e, t, n) {
                        return this.put(new SVG.DiffuseLightingEffect(e, t, n));
                    },
                    displacementMap: function (e, t, n, i, a) {
                        return this.put(
                            new SVG.DisplacementMapEffect(e, t, n, i, a));
                    },
                    specularLighting: function (e, t, n, i) {
                        return this.put(
                            new SVG.SpecularLightingEffect(e, t, n, i));
                    },
                    tile: function () {return this.put(new SVG.TileEffect);},
                    turbulence: function (e, t, n, i, a) {
                        return this.put(
                            new SVG.TurbulenceEffect(e, t, n, i, a));
                    },
                    toString: function () {
                        return 'url(#' + this.attr('id') + ')';
                    },
                },
            }), SVG.extend(SVG.Defs, {
                filter: function (e) {
                    var t = this.put(new SVG.Filter);
                    return 'function' == typeof e && e.call(t, t), t;
                },
            }), SVG.extend(SVG.Container, {
                filter: function (e) {
                    return this.defs().
                        filter(e);
                },
            }), SVG.extend(SVG.Element, SVG.G, SVG.Nested, {
                filter: function (e) {
                    return this.filterer = e instanceof SVG.Element
                        ? e
                        : this.doc().filter(e), this.doc() &&
                    this.filterer.doc() !== this.doc() &&
                    this.doc().defs().add(this.filterer), this.attr('filter',
                        this.filterer), this.filterer;
                },
                unfilter: function (e) {
                    return this.filterer && !0 === e &&
                    this.filterer.remove(), delete this.filterer, this.attr(
                        'filter', null);
                },
            }), SVG.Effect = SVG.invent({
                create: function () {this.constructor.call(this);},
                inherit: SVG.Element,
                extend: {
                    in: function (e) {
                        return null == e ? this.parent() && this.parent().
                            select('[result="' + this.attr('in') + '"]').
                            get(0) || this.attr('in') : this.attr('in', e);
                    },
                    result: function (e) {
                        return null == e
                            ? this.attr('result')
                            : this.attr('result', e);
                    },
                    toString: function () {return this.result();},
                },
            }), SVG.ParentEffect = SVG.invent({
                create: function () {this.constructor.call(this);},
                inherit: SVG.Parent,
                extend: {
                    in: function (e) {
                        return null == e ? this.parent() && this.parent().
                            select('[result="' + this.attr('in') + '"]').
                            get(0) || this.attr('in') : this.attr('in', e);
                    },
                    result: function (e) {
                        return null == e
                            ? this.attr('result')
                            : this.attr('result', e);
                    },
                    toString: function () {return this.result();},
                },
            });
            var e = {
                blend: function (e, t) {
                    return this.parent() && this.parent().blend(this, e, t);
                },
                colorMatrix: function (e, t) {
                    return this.parent() &&
                        this.parent().colorMatrix(e, t).in(this);
                },
                convolveMatrix: function (e) {
                    return this.parent() &&
                        this.parent().convolveMatrix(e).in(this);
                },
                componentTransfer: function (e) {
                    return this.parent() &&
                        this.parent().componentTransfer(e).in(this);
                },
                composite: function (e, t) {
                    return this.parent() && this.parent().composite(this, e, t);
                },
                flood: function (e, t) {
                    return this.parent() && this.parent().flood(e, t);
                },
                offset: function (e, t) {
                    return this.parent() && this.parent().offset(e, t).in(this);
                },
                image: function (e) {
                    return this.parent() && this.parent().image(e);
                },
                merge: function () {
                    return this.parent() && this.parent().
                        merge.
                        apply(this.parent(), [this].concat(arguments));
                },
                gaussianBlur: function (e, t) {
                    return this.parent() &&
                        this.parent().gaussianBlur(e, t).in(this);
                },
                morphology: function (e, t) {
                    return this.parent() &&
                        this.parent().morphology(e, t).in(this);
                },
                diffuseLighting: function (e, t, n) {
                    return this.parent() &&
                        this.parent().diffuseLighting(e, t, n).in(this);
                },
                displacementMap: function (e, t, n, i) {
                    return this.parent() &&
                        this.parent().displacementMap(this, e, t, n, i);
                },
                specularLighting: function (e, t, n, i) {
                    return this.parent() &&
                        this.parent().specularLighting(e, t, n, i).in(this);
                },
                tile: function () {
                    return this.parent() && this.parent().tile().in(this);
                },
                turbulence: function (e, t, n, i, a) {
                    return this.parent() &&
                        this.parent().turbulence(e, t, n, i, a).in(this);
                },
            };
            SVG.extend(SVG.Effect, e), SVG.extend(SVG.ParentEffect,
                e), SVG.ChildEffect = SVG.invent({
                create: function () {this.constructor.call(this);},
                inherit: SVG.Element,
                extend: { in: function (e) {this.attr('in', e);} },
            });
            var t = {
                blend: function (e, t, n) {
                    this.attr({ in: e, in2: t, mode: n || 'normal' });
                },
                colorMatrix: function (e, t) {
                    'matrix' == e && (t = a(t)), this.attr(
                        { type: e, values: void 0 === t ? null : t });
                },
                convolveMatrix: function (e) {
                    e = a(e), this.attr({
                        order: Math.sqrt(e.split(' ').length),
                        kernelMatrix: e,
                    });
                },
                composite: function (e, t, n) {
                    this.attr({ in: e, in2: t, operator: n });
                },
                flood: function (e, t) {
                    this.attr('flood-color', e), null != t &&
                    this.attr('flood-opacity', t);
                },
                offset: function (e, t) {this.attr({ dx: e, dy: t });},
                image: function (e) {this.attr('href', e, SVG.xlink);},
                displacementMap: function (e, t, n, i, a) {
                    this.attr({
                        in: e,
                        in2: t,
                        scale: n,
                        xChannelSelector: i,
                        yChannelSelector: a,
                    });
                },
                gaussianBlur: function (e, t) {
                    null != e || null != t
                        ? this.attr('stdDeviation',
                        r(Array.prototype.slice.call(arguments)))
                        : this.attr('stdDeviation', '0 0');
                },
                morphology: function (e, t) {
                    this.attr({ operator: e, radius: t });
                },
                tile: function () {},
                turbulence: function (e, t, n, i, a) {
                    this.attr({
                        numOctaves: t,
                        seed: n,
                        stitchTiles: i,
                        baseFrequency: e,
                        type: a,
                    });
                },
            }, n = {
                merge: function () {
                    var e;
                    if (arguments[0] instanceof SVG.Set) {
                        var t = this;
                        arguments[0].each((function (e) {
                            this instanceof SVG.MergeNode
                                ? t.put(this)
                                : (this instanceof SVG.Effect || this instanceof
                                SVG.ParentEffect) &&
                                t.put(new SVG.MergeNode(this));
                        }));
                    } else {
                        e = Array.isArray(arguments[0])
                            ? arguments[0]
                            : arguments;
                        for (var n = 0; n < e.length; n++) e[n] instanceof
                        SVG.MergeNode ? this.put(e[n]) : this.put(
                            new SVG.MergeNode(e[n]));
                    }
                },
                componentTransfer: function (e) {
                    if (this.rgb = new SVG.Set, [
                        'r',
                        'g',
                        'b',
                        'a'].forEach(function (e) {
                        this[e] = new (SVG['Func' + e.toUpperCase()])(
                            'identity'), this.rgb.add(
                            this[e]), this.node.appendChild(this[e].node);
                    }.bind(this)), e) for (var t in e.rgb &&
                    (['r', 'g', 'b'].forEach(
                        function (t) {this[t].attr(e.rgb);}.bind(
                            this)), delete e.rgb), e) this[t].attr(e[t]);
                },
                diffuseLighting: function (e, t, n) {
                    this.attr({
                        surfaceScale: e,
                        diffuseConstant: t,
                        kernelUnitLength: n,
                    });
                },
                specularLighting: function (e, t, n, i) {
                    this.attr({
                        surfaceScale: e,
                        diffuseConstant: t,
                        specularExponent: n,
                        kernelUnitLength: i,
                    });
                },
            }, i = {
                distantLight: function (e, t) {
                    this.attr({ azimuth: e, elevation: t });
                },
                pointLight: function (e, t, n) {
                    this.attr({ x: e, y: t, z: n });
                },
                spotLight: function (e, t, n, i, a, r) {
                    this.attr({
                        x: e,
                        y: t,
                        z: n,
                        pointsAtX: i,
                        pointsAtY: a,
                        pointsAtZ: r,
                    });
                },
                mergeNode: function (e) {this.attr('in', e);},
            };

            function a (e) {
                return Array.isArray(e) && (e = new SVG.Array(e)), e.toString().
                    replace(/^\s+/, '').
                    replace(/\s+$/, '').
                    replace(/\s+/g, ' ');
            }

            function r (e) {
                if (!Array.isArray(e)) return e;
                for (var t = 0, n = e.length, i = []; t < n; t++) i.push(e[t]);
                return i.join(' ');
            }

            function o () {
                var e = function () {};
                for (var t in 'function' ==
                typeof arguments[arguments.length - 1] &&
                (e = arguments[arguments.length -
                1], Array.prototype.splice.call(arguments, arguments.length - 1,
                    1)), arguments) for (var n in arguments[t]) e(
                    arguments[t][n], n, arguments[t]);
            }

            ['r', 'g', 'b', 'a'].forEach((function (e) {
                i['Func' + e.toUpperCase()] = function (e) {
                    switch (this.attr('type', e), e) {
                        case'table':
                            this.attr('tableValues', arguments[1]);
                            break;
                        case'linear':
                            this.attr('slope', arguments[1]), this.attr(
                                'intercept', arguments[2]);
                            break;
                        case'gamma':
                            this.attr('amplitude', arguments[1]), this.attr(
                                'exponent', arguments[2]), this.attr('offset',
                                arguments[2]);
                    }
                };
            })), o(t, (function (e, t) {
                var n = t.charAt(0).toUpperCase() + t.slice(1);
                SVG[n + 'Effect'] = SVG.invent({
                    create: function () {
                        this.constructor.call(this,
                            SVG.create('fe' + n)), e.apply(this,
                            arguments), this.result(this.attr('id') + 'Out');
                    }, inherit: SVG.Effect, extend: {},
                });
            })), o(n, (function (e, t) {
                var n = t.charAt(0).toUpperCase() + t.slice(1);
                SVG[n + 'Effect'] = SVG.invent({
                    create: function () {
                        this.constructor.call(this,
                            SVG.create('fe' + n)), e.apply(this,
                            arguments), this.result(this.attr('id') + 'Out');
                    }, inherit: SVG.ParentEffect, extend: {},
                });
            })), o(i, (function (e, t) {
                var n = t.charAt(0).toUpperCase() + t.slice(1);
                SVG[n] = SVG.invent({
                    create: function () {
                        this.constructor.call(this,
                            SVG.create('fe' + n)), e.apply(this, arguments);
                    }, inherit: SVG.ChildEffect, extend: {},
                });
            })), SVG.extend(SVG.MergeEffect, {
                in: function (e) {
                    return e instanceof SVG.MergeNode
                        ? this.add(e, 0)
                        : this.add(new SVG.MergeNode(e), 0), this;
                },
            }), SVG.extend(SVG.CompositeEffect, SVG.BlendEffect,
                SVG.DisplacementMapEffect, {
                    in2: function (e) {
                        return null == e ? this.parent() && this.parent().
                            select('[result="' + this.attr('in2') + '"]').
                            get(0) || this.attr('in2') : this.attr('in2', e);
                    },
                }), SVG.filter = {
                sepiatone: [
                    .343,
                    .669,
                    .119,
                    0,
                    0,
                    .249,
                    .626,
                    .13,
                    0,
                    0,
                    .172,
                    .334,
                    .111,
                    0,
                    0,
                    0,
                    0,
                    0,
                    1,
                    0],
            };
        }.call(void 0), function () {
        function e (e, a, r, o, s, l, c) {
            for (var u = e.slice(a, r || c), d = o.slice(s,
                l || c), h = 0, f = {
                pos: [0, 0],
                start: [0, 0],
            }, p = { pos: [0, 0], start: [0, 0] }; u[h] = t.call(f,
                u[h]), d[h] = t.call(p, d[h]), u[h][0] != d[h][0] || "M" ==
            u[h][0] || "A" == u[h][0] &&
            (u[h][4] != d[h][4] || u[h][5] != d[h][5])
                ? (Array.prototype.splice.apply(u, [h, 1].concat(
                    i.call(f, u[h]))), Array.prototype.splice.apply(d,
                    [h, 1].concat(i.call(p, d[h]))))
                : (u[h] = n.call(f, u[h]), d[h] = n.call(p, d[h])), ++h !=
            u.length || h != d.length;) h == u.length && u.push([
                'C',
                f.pos[0],
                f.pos[1],
                f.pos[0],
                f.pos[1],
                f.pos[0],
                f.pos[1]]), h == d.length && d.push([
                'C',
                p.pos[0],
                p.pos[1],
                p.pos[0],
                p.pos[1],
                p.pos[0],
                p.pos[1]]);
            return { start: u, dest: d };
        }

        function t (e) {
            switch (e[0]) {
                case'z':
                case'Z':
                    e[0] = 'L', e[1] = this.start[0], e[2] = this.start[1];
                    break;
                case'H':
                    e[0] = 'L', e[2] = this.pos[1];
                    break;
                case'V':
                    e[0] = 'L', e[2] = e[1], e[1] = this.pos[0];
                    break;
                case'T':
                    e[0] = 'Q', e[3] = e[1], e[4] = e[2], e[1] = this.reflection[1], e[2] = this.reflection[0];
                    break;
                case'S':
                    e[0] = 'C', e[6] = e[4], e[5] = e[3], e[4] = e[2], e[3] = e[1], e[2] = this.reflection[1], e[1] = this.reflection[0];
            }
            return e;
        }

        function n (e) {
            var t = e.length;
            return this.pos = [e[t - 2], e[t - 1]], -1 !=
            'SCQT'.indexOf(e[0]) && (this.reflection = [
                2 * this.pos[0] - e[t - 4],
                2 * this.pos[1] - e[t - 3]]), e;
        }

        function i (e) {
            var t = [e];
            switch (e[0]) {
                case'M':
                    return this.pos = this.start = [e[1], e[2]], t;
                case'L':
                    e[5] = e[3] = e[1], e[6] = e[4] = e[2], e[1] = this.pos[0], e[2] = this.pos[1];
                    break;
                case'Q':
                    e[6] = e[4], e[5] = e[3], e[4] = 1 * e[4] / 3 + 2 * e[2] /
                        3, e[3] = 1 * e[3] / 3 + 2 * e[1] / 3, e[2] = 1 *
                        this.pos[1] / 3 + 2 * e[2] / 3, e[1] = 1 * this.pos[0] /
                        3 + 2 * e[1] / 3;
                    break;
                case'A':
                    e = (t = function (e, t) {
                        var n, i, a, r, o, s, l, c, u, d, h, f, p, m, g, v, y,
                            b, x, _, w, k, M, L, S, T, A = Math.abs(t[1]),
                            D = Math.abs(t[2]), C = t[3] % 360, E = t[4],
                            O = t[5], Y = t[6], P = t[7], I = new SVG.Point(e),
                            j = new SVG.Point(Y, P), N = [];
                        if (0 === A || 0 === D || I.x === j.x && I.y ===
                            j.y) return [['C', I.x, I.y, j.x, j.y, j.x, j.y]];
                        for ((i = (n = new SVG.Point((I.x - j.x) / 2,
                            (I.y - j.y) / 2).transform(
                            (new SVG.Matrix).rotate(C))).x * n.x / (A * A) +
                            n.y * n.y / (D * D)) > 1 && (A *= i = Math.sqrt(
                            i), D *= i), a = (new SVG.Matrix).rotate(C).
                            scale(1 / A, 1 / D).
                            rotate(-C), I = I.transform(a), s = (r = [
                            (j = j.transform(a)).x - I.x,
                            j.y - I.y])[0] * r[0] + r[1] * r[1], o = Math.sqrt(
                            s), r[0] /= o, r[1] /= o, l = s < 4 ? Math.sqrt(
                            1 - s / 4) : 0, E === O &&
                        (l *= -1), c = new SVG.Point(
                            (j.x + I.x) / 2 + l * -r[1],
                            (j.y + I.y) / 2 + l * r[0]), u = new SVG.Point(
                            I.x - c.x, I.y - c.y), d = new SVG.Point(j.x - c.x,
                            j.y - c.y), h = Math.acos(
                            u.x / Math.sqrt(u.x * u.x + u.y * u.y)), u.y < 0 &&
                        (h *= -1), f = Math.acos(
                            d.x / Math.sqrt(d.x * d.x + d.y * d.y)), d.y < 0 &&
                        (f *= -1), O && h > f && (f += 2 * Math.PI), !O && h <
                        f && (f -= 2 * Math.PI), v = [], y = h, p = (f - h) /
                            (m = Math.ceil(
                                2 * Math.abs(h - f) / Math.PI)), g = 4 *
                            Math.tan(p / 4) / 3, w = 0; w <=
                             m; w++) x = Math.cos(y), b = Math.sin(
                            y), _ = new SVG.Point(c.x + x, c.y + b), v[w] = [
                            new SVG.Point(_.x + g * b, _.y - g * x),
                            _,
                            new SVG.Point(_.x - g * b, _.y + g * x)], y += p;
                        for (v[0][0] = v[0][1].clone(), v[v.length -
                        1][2] = v[v.length -
                        1][1].clone(), a = (new SVG.Matrix).rotate(C).
                            scale(A, D).
                            rotate(-C), w = 0, k = v.length; w <
                             k; w++) v[w][0] = v[w][0].transform(
                            a), v[w][1] = v[w][1].transform(
                            a), v[w][2] = v[w][2].transform(a);
                        for (w = 1, k = v.length; w < k; w++) M = (_ = v[w -
                        1][2]).x, L = _.y, S = (_ = v[w][0]).x, T = _.y, Y = (_ = v[w][1]).x, P = _.y, N.push(
                            ['C', M, L, S, T, Y, P]);
                        return N;
                    }(this.pos, e))[0];
            }
            return e[0] = 'C', this.pos = [e[5], e[6]], this.reflection = [
                2 * e[5] - e[3], 2 * e[6] - e[4]], t;
        }

        function a (e, t) {
            if (!1 === t) return !1;
            for (var n = t, i = e.length; n < i; ++n) if ('M' ==
                e[n][0]) return n;
            return !1;
        }

        SVG.extend(SVG.PathArray, {
            morph: function (t) {
                for (var n = this.value, i = this.parse(
                    t), r = 0, o = 0, s = !1, l = !1; !1 !== r || !1 !== o;) {
                    var c;
                    s = a(n, !1 !== r && r + 1), l = a(i,
                        !1 !== o && o + 1), !1 === r &&
                    (r = 0 == (c = new SVG.PathArray(u.start).bbox()).height ||
                    0 == c.width ? n.push(n[0]) - 1 : n.push(
                        ['M', c.x + c.width / 2, c.y + c.height / 2]) -
                        1), !1 === o &&
                    (o = 0 == (c = new SVG.PathArray(u.dest).bbox()).height ||
                    0 == c.width ? i.push(i[0]) - 1 : i.push(
                        ['M', c.x + c.width / 2, c.y + c.height / 2]) - 1);
                    var u = e(n, r, s, i, o, l);
                    n = n.slice(0, r).
                        concat(u.start,
                            !1 === s ? [] : n.slice(s)), i = i.slice(0, o).
                        concat(u.dest, !1 === l ? [] : i.slice(l)), r = !1 !==
                        s && r + u.start.length, o = !1 !== l && o +
                        u.dest.length;
                }
                return this.value = n, this.destination = new SVG.PathArray, this.destination.value = i, this;
            },
        });
    }(),
        /*! svg.draggable.js - v2.2.2 - 2019-01-08
  * https://github.com/svgdotjs/svg.draggable.js
  * Copyright (c) 2019 Wout Fierens; Licensed MIT */
        function () {
            function e (e) {e.remember('_draggable', this), this.el = e;}

            e.prototype.init = function (e, t) {
                var n = this;
                this.constraint = e, this.value = t, this.el.on(
                    'mousedown.drag', (function (e) {n.start(e);})), this.el.on(
                    'touchstart.drag', (function (e) {n.start(e);}));
            }, e.prototype.transformPoint = function (e, t) {
                var n = (e = e || window.event).changedTouches &&
                    e.changedTouches[0] || e;
                return this.p.x = n.clientX -
                    (t || 0), this.p.y = n.clientY, this.p.matrixTransform(
                    this.m);
            }, e.prototype.getBBox = function () {
                var e = this.el.bbox();
                return this.el instanceof SVG.Nested &&
                (e = this.el.rbox()), (this.el instanceof SVG.G ||
                    this.el instanceof SVG.Use || this.el instanceof
                    SVG.Nested) && (e.x = this.el.x(), e.y = this.el.y()), e;
            }, e.prototype.start = function (e) {
                if ('click' != e.type && 'mousedown' != e.type && 'mousemove' !=
                    e.type || 1 == (e.which || e.buttons)) {
                    var t = this;
                    if (this.el.fire('beforedrag', {
                        event: e,
                        handler: this,
                    }), !this.el.event().defaultPrevented) {
                        e.preventDefault(), e.stopPropagation(), this.parent = this.parent ||
                            this.el.parent(SVG.Nested) || this.el.parent(
                                SVG.Doc), this.p = this.parent.node.createSVGPoint(), this.m = this.el.node.getScreenCTM().
                            inverse();
                        var n, i = this.getBBox();
                        if (this.el instanceof
                            SVG.Text) switch (n = this.el.node.getComputedTextLength(), this.el.attr(
                            'text-anchor')) {
                            case'middle':
                                n /= 2;
                                break;
                            case'start':
                                n = 0;
                        }
                        this.startPoints = {
                            point: this.transformPoint(e, n),
                            box: i,
                            transform: this.el.transform(),
                        }, SVG.on(window, 'mousemove.drag',
                            (function (e) {t.drag(e);})), SVG.on(window,
                            'touchmove.drag',
                            (function (e) {t.drag(e);})), SVG.on(window,
                            'mouseup.drag', (function (e) {t.end(e);})), SVG.on(
                            window, 'touchend.drag',
                            (function (e) {t.end(e);})), this.el.fire(
                            'dragstart', {
                                event: e,
                                p: this.startPoints.point,
                                m: this.m,
                                handler: this,
                            });
                    }
                }
            }, e.prototype.drag = function (e) {
                var t = this.getBBox(), n = this.transformPoint(e),
                    i = this.startPoints.box.x + n.x - this.startPoints.point.x,
                    a = this.startPoints.box.y + n.y - this.startPoints.point.y,
                    r = this.constraint, o = n.x - this.startPoints.point.x,
                    s = n.y - this.startPoints.point.y;
                if (this.el.fire('dragmove', {
                    event: e,
                    p: n,
                    m: this.m,
                    handler: this,
                }), this.el.event().defaultPrevented) return n;
                if ('function' == typeof r) {
                    var l = r.call(this.el, i, a, this.m);
                    'boolean' == typeof l && (l = { x: l, y: l }), !0 === l.x
                        ? this.el.x(i)
                        : !1 !== l.x && this.el.x(l.x), !0 === l.y ? this.el.y(
                        a) : !1 !== l.y && this.el.y(l.y);
                } else 'object' == typeof r &&
                (null != r.minX && i < r.minX ? o = (i = r.minX) -
                    this.startPoints.box.x : null != r.maxX && i > r.maxX -
                    t.width && (o = (i = r.maxX - t.width) -
                        this.startPoints.box.x), null != r.minY && a < r.minY
                    ? s = (a = r.minY) - this.startPoints.box.y
                    : null != r.maxY && a > r.maxY - t.height &&
                    (s = (a = r.maxY - t.height) -
                        this.startPoints.box.y), null != r.snapToGrid &&
                (i -= i % r.snapToGrid, a -= a % r.snapToGrid, o -= o %
                    r.snapToGrid, s -= s % r.snapToGrid), this.el instanceof
                SVG.G ? this.el.matrix(this.startPoints.transform).
                    transform({ x: o, y: s }, !0) : this.el.move(i, a));
                return n;
            }, e.prototype.end = function (e) {
                var t = this.drag(e);
                this.el.fire('dragend',
                    { event: e, p: t, m: this.m, handler: this }), SVG.off(
                    window, 'mousemove.drag'), SVG.off(window,
                    'touchmove.drag'), SVG.off(window, 'mouseup.drag'), SVG.off(
                    window, 'touchend.drag');
            }, SVG.extend(SVG.Element, {
                draggable: function (t, n) {
                    'function' != typeof t && 'object' != typeof t ||
                    (n = t, t = !0);
                    var i = this.remember('_draggable') || new e(this);
                    return (t = void 0 === t || t)
                        ? i.init(n || {}, t)
                        : (this.off('mousedown.drag'), this.off(
                            'touchstart.drag')), this;
                },
            });
        }.call(void 0), function () {
        function e (e) {
            this.el = e, e.remember('_selectHandler',
                this), this.pointSelection = { isSelected: !1 }, this.rectSelection = { isSelected: !1 }, this.pointsList = {
                lt: [
                    0,
                    0],
                rt: ['width', 0],
                rb: ['width', 'height'],
                lb: [0, 'height'],
                t: ['width', 0],
                r: ['width', 'height'],
                b: ['width', 'height'],
                l: [0, 'height'],
            }, this.pointCoord = function (e, t, n) {
                var i = 'string' != typeof e
                    ? e
                    : t[e];
                return n ? i / 2 : i;
            }, this.pointCoords = function (e, t) {
                var n = this.pointsList[e];
                return {
                    x: this.pointCoord(n[0], t, 't' === e || 'b' === e),
                    y: this.pointCoord(n[1], t, 'r' === e || 'l' === e),
                };
            };
        }

        e.prototype.init = function (e, t) {
            var n = this.el.bbox();
            this.options = {};
            var i = this.el.selectize.defaults.points;
            for (var a in this.el.selectize.defaults) this.options[a] = this.el.selectize.defaults[a], void 0 !==
            t[a] && (this.options[a] = t[a]);
            var r = ['points', 'pointsExclude'];
            for (var a in r) {
                var o = this.options[r[a]];
                'string' == typeof o ? o = o.length > 0
                    ? o.split(/\s*,\s*/i)
                    : [] : 'boolean' == typeof o && 'points' === r[a] &&
                    (o = o ? i : []), this.options[r[a]] = o;
            }
            this.options.points = [i, this.options.points].reduce(
                (function (e, t) {
                    return e.filter((function (e) {return t.indexOf(e) > -1;}));
                })), this.options.points = [
                this.options.points,
                this.options.pointsExclude].reduce((function (e, t) {
                return e.filter((function (e) {return t.indexOf(e) < 0;}));
            })), this.parent = this.el.parent(), this.nested = this.nested ||
                this.parent.group(), this.nested.matrix(
                new SVG.Matrix(this.el).translate(n.x,
                    n.y)), this.options.deepSelect && -1 !==
            ['line', 'polyline', 'polygon'].indexOf(this.el.type)
                ? this.selectPoints(e)
                : this.selectRect(e), this.observe(), this.cleanup();
        }, e.prototype.selectPoints = function (e) {
            return this.pointSelection.isSelected = e, this.pointSelection.set ||
            (this.pointSelection.set = this.parent.set(), this.drawPoints()), this;
        }, e.prototype.getPointArray = function () {
            var e = this.el.bbox();
            return this.el.array().
                valueOf().
                map((function (t) {return [t[0] - e.x, t[1] - e.y];}));
        }, e.prototype.drawPoints = function () {
            for (var e = this, t = this.getPointArray(), n = 0, i = t.length; n <
            i; ++n) {
                var a = function (t) {
                    return function (n) {
                        (n = n || window.event).preventDefault
                            ? n.preventDefault()
                            : n.returnValue = !1, n.stopPropagation();
                        var i = n.pageX || n.touches[0].pageX,
                            a = n.pageY || n.touches[0].pageY;
                        e.el.fire('point', { x: i, y: a, i: t, event: n });
                    };
                }(n), r = this.drawPoint(t[n][0], t[n][1]).
                    addClass(this.options.classPoints).
                    addClass(this.options.classPoints + '_point').
                    on('touchstart', a).
                    on('mousedown', a);
                this.pointSelection.set.add(r);
            }
        }, e.prototype.drawPoint = function (
            e, t) {
            var n = this.options.pointType;
            switch (n) {
                case'circle':
                    return this.drawCircle(e, t);
                case'rect':
                    return this.drawRect(e, t);
                default:
                    if ('function' == typeof n) return n.call(this, e, t);
                    throw new Error('Unknown ' + n + ' point type!');
            }
        }, e.prototype.drawCircle = function (e, t) {
            return this.nested.circle(this.options.pointSize).center(e, t);
        }, e.prototype.drawRect = function (e, t) {
            return this.nested.rect(this.options.pointSize,
                this.options.pointSize).center(e, t);
        }, e.prototype.updatePointSelection = function () {
            var e = this.getPointArray();
            this.pointSelection.set.each((function (t) {
                this.cx() === e[t][0] && this.cy() === e[t][1] ||
                this.center(e[t][0], e[t][1]);
            }));
        }, e.prototype.updateRectSelection = function () {
            var e = this, t = this.el.bbox();
            if (this.rectSelection.set.get(0).
                attr({
                    width: t.width,
                    height: t.height,
                }), this.options.points.length && this.options.points.map(
                (function (n, i) {
                    var a = e.pointCoords(n, t);
                    e.rectSelection.set.get(i + 1).center(a.x, a.y);
                })), this.options.rotationPoint) {
                var n = this.rectSelection.set.length();
                this.rectSelection.set.get(n - 1).center(t.width / 2, 20);
            }
        }, e.prototype.selectRect = function (e) {
            var t = this, n = this.el.bbox();

            function i (e) {
                return function (n) {
                    (n = n || window.event).preventDefault
                        ? n.preventDefault()
                        : n.returnValue = !1, n.stopPropagation();
                    var i = n.pageX || n.touches[0].pageX,
                        a = n.pageY || n.touches[0].pageY;
                    t.el.fire(e, { x: i, y: a, event: n });
                };
            }

            if (this.rectSelection.isSelected = e, this.rectSelection.set = this.rectSelection.set ||
                this.parent.set(), this.rectSelection.set.get(0) ||
            this.rectSelection.set.add(this.nested.rect(n.width, n.height).
                addClass(this.options.classRect)), this.options.points.length &&
            this.rectSelection.set.length() < 2 && (this.options.points.map(
                (function (e, a) {
                    var r = t.pointCoords(e, n), o = t.drawPoint(r.x, r.y).
                        attr('class', t.options.classPoints + '_' + e).
                        on('mousedown', i(e)).
                        on('touchstart', i(e));
                    t.rectSelection.set.add(o);
                })), this.rectSelection.set.each((function () {
                this.addClass(t.options.classPoints);
            }))), this.options.rotationPoint &&
            (this.options.points && !this.rectSelection.set.get(9) ||
                !this.options.points && !this.rectSelection.set.get(1))) {
                var a = function (e) {
                    (e = e || window.event).preventDefault
                        ? e.preventDefault()
                        : e.returnValue = !1, e.stopPropagation();
                    var n = e.pageX || e.touches[0].pageX,
                        i = e.pageY || e.touches[0].pageY;
                    t.el.fire('rot', { x: n, y: i, event: e });
                }, r = this.drawPoint(n.width / 2, 20).
                    attr('class', this.options.classPoints + '_rot').
                    on('touchstart', a).
                    on('mousedown', a);
                this.rectSelection.set.add(r);
            }
        }, e.prototype.handler = function () {
            var e = this.el.bbox();
            this.nested.matrix(new SVG.Matrix(this.el).translate(e.x,
                e.y)), this.rectSelection.isSelected &&
            this.updateRectSelection(), this.pointSelection.isSelected &&
            this.updatePointSelection();
        }, e.prototype.observe = function () {
            var e = this;
            if (MutationObserver) if (this.rectSelection.isSelected ||
                this.pointSelection.isSelected) this.observerInst = this.observerInst ||
                new MutationObserver(
                    (function () {e.handler();})), this.observerInst.observe(
                this.el.node,
                { attributes: !0 }); else try {this.observerInst.disconnect(), delete this.observerInst;} catch (e) {} else this.el.off(
                'DOMAttrModified.select'), (this.rectSelection.isSelected ||
                this.pointSelection.isSelected) &&
            this.el.on('DOMAttrModified.select', (function () {e.handler();}));
        }, e.prototype.cleanup = function () {
            !this.rectSelection.isSelected && this.rectSelection.set &&
            (this.rectSelection.set.each(
                (function () {this.remove();})), this.rectSelection.set.clear(), delete this.rectSelection.set), !this.pointSelection.isSelected &&
            this.pointSelection.set && (this.pointSelection.set.each(
                (function () {this.remove();})), this.pointSelection.set.clear(), delete this.pointSelection.set), this.pointSelection.isSelected ||
            this.rectSelection.isSelected ||
            (this.nested.remove(), delete this.nested);
        }, SVG.extend(SVG.Element, {
            selectize: function (t, n) {
                return 'object' == typeof t && (n = t, t = !0), (this.remember(
                    '_selectHandler') || new e(this)).init(void 0 === t || t,
                    n || {}), this;
            },
        }), SVG.Element.prototype.selectize.defaults = {
            points: [
                'lt',
                'rt',
                'rb',
                'lb',
                't',
                'r',
                'b',
                'l'],
            pointsExclude: [],
            classRect: 'svg_select_boundingRect',
            classPoints: 'svg_select_points',
            pointSize: 7,
            rotationPoint: !0,
            deepSelect: !1,
            pointType: 'circle',
        };
    }(), function () {
        (function () {
            function e (e) {
                e.remember('_resizeHandler',
                    this), this.el = e, this.parameters = {}, this.lastUpdateCall = null, this.p = e.doc().
                    node.
                    createSVGPoint();
            }

            e.prototype.transformPoint = function (
                e, t, n) {
                return this.p.x = e -
                    (this.offset.x - window.pageXOffset), this.p.y = t -
                    (this.offset.y -
                        window.pageYOffset), this.p.matrixTransform(
                    n || this.m);
            }, e.prototype._extractPosition = function (e) {
                return {
                    x: null != e.clientX ? e.clientX : e.touches[0].clientX,
                    y: null != e.clientY ? e.clientY : e.touches[0].clientY,
                };
            }, e.prototype.init = function (e) {
                var t = this;
                if (this.stop(), 'stop' !== e) {
                    for (var n in this.options = {}, this.el.resize.defaults) this.options[n] = this.el.resize.defaults[n], void 0 !==
                    e[n] && (this.options[n] = e[n]);
                    this.el.on('lt.resize', (function (e) {
                        t.resize(e || window.event);
                    })), this.el.on('rt.resize', (function (e) {
                        t.resize(e || window.event);
                    })), this.el.on('rb.resize', (function (e) {
                        t.resize(e || window.event);
                    })), this.el.on('lb.resize', (function (e) {
                        t.resize(e || window.event);
                    })), this.el.on('t.resize', (function (e) {
                        t.resize(e || window.event);
                    })), this.el.on('r.resize', (function (e) {
                        t.resize(e || window.event);
                    })), this.el.on('b.resize', (function (e) {
                        t.resize(e || window.event);
                    })), this.el.on('l.resize', (function (e) {
                        t.resize(e || window.event);
                    })), this.el.on('rot.resize', (function (e) {
                        t.resize(e || window.event);
                    })), this.el.on('point.resize', (function (e) {
                        t.resize(e || window.event);
                    })), this.update();
                }
            }, e.prototype.stop = function () {
                return this.el.off('lt.resize'), this.el.off(
                    'rt.resize'), this.el.off('rb.resize'), this.el.off(
                    'lb.resize'), this.el.off('t.resize'), this.el.off(
                    'r.resize'), this.el.off('b.resize'), this.el.off(
                    'l.resize'), this.el.off('rot.resize'), this.el.off(
                    'point.resize'), this;
            }, e.prototype.resize = function (e) {
                var t = this;
                this.m = this.el.node.getScreenCTM().
                    inverse(), this.offset = {
                    x: window.pageXOffset,
                    y: window.pageYOffset,
                };
                var n = this._extractPosition(e.detail.event);
                if (this.parameters = {
                    type: this.el.type,
                    p: this.transformPoint(n.x, n.y),
                    x: e.detail.x,
                    y: e.detail.y,
                    box: this.el.bbox(),
                    rotation: this.el.transform().rotation,
                }, 'text' === this.el.type &&
                (this.parameters.fontSize = this.el.attr()['font-size']), void 0 !==
                e.detail.i) {
                    var i = this.el.array().valueOf();
                    this.parameters.i = e.detail.i, this.parameters.pointCoords = [
                        i[e.detail.i][0],
                        i[e.detail.i][1]];
                }
                switch (e.type) {
                    case'lt':
                        this.calc = function (e, t) {
                            var n = this.snapToGrid(e, t);
                            if (this.parameters.box.width - n[0] > 0 &&
                                this.parameters.box.height - n[1] > 0) {
                                if ('text' ===
                                    this.parameters.type) return this.el.move(
                                    this.parameters.box.x + n[0],
                                    this.parameters.box.y), void this.el.attr(
                                    'font-size',
                                    this.parameters.fontSize - n[0]);
                                n = this.checkAspectRatio(n), this.el.move(
                                    this.parameters.box.x + n[0],
                                    this.parameters.box.y + n[1]).
                                    size(this.parameters.box.width - n[0],
                                        this.parameters.box.height - n[1]);
                            }
                        };
                        break;
                    case'rt':
                        this.calc = function (e, t) {
                            var n = this.snapToGrid(e, t, 2);
                            if (this.parameters.box.width + n[0] > 0 &&
                                this.parameters.box.height - n[1] > 0) {
                                if ('text' ===
                                    this.parameters.type) return this.el.move(
                                    this.parameters.box.x - n[0],
                                    this.parameters.box.y), void this.el.attr(
                                    'font-size',
                                    this.parameters.fontSize + n[0]);
                                n = this.checkAspectRatio(n, !0), this.el.move(
                                    this.parameters.box.x,
                                    this.parameters.box.y + n[1]).
                                    size(this.parameters.box.width + n[0],
                                        this.parameters.box.height - n[1]);
                            }
                        };
                        break;
                    case'rb':
                        this.calc = function (e, t) {
                            var n = this.snapToGrid(e, t, 0);
                            if (this.parameters.box.width + n[0] > 0 &&
                                this.parameters.box.height + n[1] > 0) {
                                if ('text' ===
                                    this.parameters.type) return this.el.move(
                                    this.parameters.box.x - n[0],
                                    this.parameters.box.y), void this.el.attr(
                                    'font-size',
                                    this.parameters.fontSize + n[0]);
                                n = this.checkAspectRatio(n), this.el.move(
                                    this.parameters.box.x,
                                    this.parameters.box.y).
                                    size(this.parameters.box.width + n[0],
                                        this.parameters.box.height + n[1]);
                            }
                        };
                        break;
                    case'lb':
                        this.calc = function (e, t) {
                            var n = this.snapToGrid(e, t, 1);
                            if (this.parameters.box.width - n[0] > 0 &&
                                this.parameters.box.height + n[1] > 0) {
                                if ('text' ===
                                    this.parameters.type) return this.el.move(
                                    this.parameters.box.x + n[0],
                                    this.parameters.box.y), void this.el.attr(
                                    'font-size',
                                    this.parameters.fontSize - n[0]);
                                n = this.checkAspectRatio(n, !0), this.el.move(
                                    this.parameters.box.x + n[0],
                                    this.parameters.box.y).
                                    size(this.parameters.box.width - n[0],
                                        this.parameters.box.height + n[1]);
                            }
                        };
                        break;
                    case't':
                        this.calc = function (e, t) {
                            var n = this.snapToGrid(e, t, 2);
                            if (this.parameters.box.height - n[1] > 0) {
                                if ('text' === this.parameters.type) return;
                                this.el.move(this.parameters.box.x,
                                    this.parameters.box.y + n[1]).
                                    height(this.parameters.box.height - n[1]);
                            }
                        };
                        break;
                    case'r':
                        this.calc = function (e, t) {
                            var n = this.snapToGrid(e, t, 0);
                            if (this.parameters.box.width + n[0] > 0) {
                                if ('text' === this.parameters.type) return;
                                this.el.move(this.parameters.box.x,
                                    this.parameters.box.y).
                                    width(this.parameters.box.width + n[0]);
                            }
                        };
                        break;
                    case'b':
                        this.calc = function (e, t) {
                            var n = this.snapToGrid(e, t, 0);
                            if (this.parameters.box.height + n[1] > 0) {
                                if ('text' === this.parameters.type) return;
                                this.el.move(this.parameters.box.x,
                                    this.parameters.box.y).
                                    height(this.parameters.box.height + n[1]);
                            }
                        };
                        break;
                    case'l':
                        this.calc = function (e, t) {
                            var n = this.snapToGrid(e, t, 1);
                            if (this.parameters.box.width - n[0] > 0) {
                                if ('text' === this.parameters.type) return;
                                this.el.move(this.parameters.box.x + n[0],
                                    this.parameters.box.y).
                                    width(this.parameters.box.width - n[0]);
                            }
                        };
                        break;
                    case'rot':
                        this.calc = function (e, t) {
                            var n = e + this.parameters.p.x,
                                i = t + this.parameters.p.y, a = Math.atan2(
                                this.parameters.p.y - this.parameters.box.y -
                                this.parameters.box.height / 2,
                                this.parameters.p.x - this.parameters.box.x -
                                this.parameters.box.width / 2), r = Math.atan2(
                                i - this.parameters.box.y -
                                this.parameters.box.height / 2,
                                n - this.parameters.box.x -
                                this.parameters.box.width / 2),
                                o = this.parameters.rotation + 180 * (r - a) /
                                    Math.PI + this.options.snapToAngle / 2;
                            this.el.center(this.parameters.box.cx,
                                this.parameters.box.cy).
                                rotate(o - o % this.options.snapToAngle,
                                    this.parameters.box.cx,
                                    this.parameters.box.cy);
                        };
                        break;
                    case'point':
                        this.calc = function (e, t) {
                            var n = this.snapToGrid(e, t,
                                this.parameters.pointCoords[0],
                                this.parameters.pointCoords[1]),
                                i = this.el.array().valueOf();
                            i[this.parameters.i][0] = this.parameters.pointCoords[0] +
                                n[0], i[this.parameters.i][1] = this.parameters.pointCoords[1] +
                                n[1], this.el.plot(i);
                        };
                }
                this.el.fire('resizestart', {
                    dx: this.parameters.x,
                    dy: this.parameters.y,
                    event: e,
                }), SVG.on(window, 'touchmove.resize',
                    (function (e) {t.update(e || window.event);})), SVG.on(
                    window, 'touchend.resize',
                    (function () {t.done();})), SVG.on(window,
                    'mousemove.resize',
                    (function (e) {t.update(e || window.event);})), SVG.on(
                    window, 'mouseup.resize', (function () {t.done();}));
            }, e.prototype.update = function (e) {
                if (e) {
                    var t = this._extractPosition(e),
                        n = this.transformPoint(t.x, t.y),
                        i = n.x - this.parameters.p.x,
                        a = n.y - this.parameters.p.y;
                    this.lastUpdateCall = [i, a], this.calc(i, a), this.el.fire(
                        'resizing', { dx: i, dy: a, event: e });
                } else this.lastUpdateCall &&
                this.calc(this.lastUpdateCall[0], this.lastUpdateCall[1]);
            }, e.prototype.done = function () {
                this.lastUpdateCall = null, SVG.off(window,
                    'mousemove.resize'), SVG.off(window,
                    'mouseup.resize'), SVG.off(window,
                    'touchmove.resize'), SVG.off(window,
                    'touchend.resize'), this.el.fire('resizedone');
            }, e.prototype.snapToGrid = function (e, t, n, i) {
                var a;
                return void 0 !== i ? a = [
                    (n + e) % this.options.snapToGrid,
                    (i + t) % this.options.snapToGrid] : (n = null == n
                    ? 3
                    : n, a = [
                    (this.parameters.box.x + e +
                        (1 & n ? 0 : this.parameters.box.width)) %
                    this.options.snapToGrid,
                    (this.parameters.box.y + t +
                        (2 & n ? 0 : this.parameters.box.height)) %
                    this.options.snapToGrid]), e < 0 &&
                (a[0] -= this.options.snapToGrid), t < 0 &&
                (a[1] -= this.options.snapToGrid), e -= Math.abs(a[0]) <
                this.options.snapToGrid / 2 ? a[0] : a[0] - (e < 0
                    ? -this.options.snapToGrid
                    : this.options.snapToGrid), t -= Math.abs(a[1]) <
                this.options.snapToGrid / 2 ? a[1] : a[1] - (t < 0
                    ? -this.options.snapToGrid
                    : this.options.snapToGrid), this.constraintToBox(e, t, n,
                    i);
            }, e.prototype.constraintToBox = function (e, t, n, i) {
                var a, r, o = this.options.constraint || {};
                return void 0 !== i
                    ? (a = n, r = i)
                    : (a = this.parameters.box.x + (1 & n
                        ? 0
                        : this.parameters.box.width), r = this.parameters.box.y +
                        (2 & n ? 0 : this.parameters.box.height)), void 0 !==
                o.minX && a + e < o.minX && (e = o.minX - a), void 0 !==
                o.maxX && a + e > o.maxX && (e = o.maxX - a), void 0 !==
                o.minY && r + t < o.minY && (t = o.minY - r), void 0 !==
                o.maxY && r + t > o.maxY && (t = o.maxY - r), [e, t];
            }, e.prototype.checkAspectRatio = function (
                e, t) {
                if (!this.options.saveAspectRatio) return e;
                var n = e.slice(),
                    i = this.parameters.box.width / this.parameters.box.height,
                    a = this.parameters.box.width + e[0],
                    r = this.parameters.box.height - e[1], o = a / r;
                return o < i ? (n[1] = a / i - this.parameters.box.height, t &&
                (n[1] = -n[1])) : o > i &&
                    (n[0] = this.parameters.box.width - r * i, t &&
                    (n[0] = -n[0])), n;
            }, SVG.extend(SVG.Element, {
                resize: function (t) {
                    return (this.remember('_resizeHandler') ||
                        new e(this)).init(t || {}), this;
                },
            }), SVG.Element.prototype.resize.defaults = {
                snapToAngle: .1,
                snapToGrid: 1,
                constraint: {},
                saveAspectRatio: !1,
            };
        }).call(this);
    }(), function (e, t) {
        void 0 === t && (t = {});
        var n = t.insertAt;
        if ('undefined' != typeof document) {
            var i = document.head || document.getElementsByTagName('head')[0],
                a = document.createElement('style');
            a.type = 'text/css', 'top' === n && i.firstChild ? i.insertBefore(a,
                i.firstChild) : i.appendChild(a), a.styleSheet
                ? a.styleSheet.cssText = e
                : a.appendChild(document.createTextNode(e));
        }
    }('.apexcharts-canvas {\n  position: relative;\n  user-select: none;\n  /* cannot give overflow: hidden as it will crop tooltips which overflow outside chart area */\n}\n\n\n/* scrollbar is not visible by default for legend, hence forcing the visibility */\n.apexcharts-canvas ::-webkit-scrollbar {\n  -webkit-appearance: none;\n  width: 6px;\n}\n\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\n  border-radius: 4px;\n  background-color: rgba(0, 0, 0, .5);\n  box-shadow: 0 0 1px rgba(255, 255, 255, .5);\n  -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);\n}\n\n\n.apexcharts-inner {\n  position: relative;\n}\n\n.apexcharts-text tspan {\n  font-family: inherit;\n}\n\n.legend-mouseover-inactive {\n  transition: 0.15s ease all;\n  opacity: 0.20;\n}\n\n.apexcharts-series-collapsed {\n  opacity: 0;\n}\n\n.apexcharts-tooltip {\n  border-radius: 5px;\n  box-shadow: 2px 2px 6px -4px #999;\n  cursor: default;\n  font-size: 14px;\n  left: 62px;\n  opacity: 0;\n  pointer-events: none;\n  position: absolute;\n  top: 20px;\n  display: flex;\n  flex-direction: column;\n  overflow: hidden;\n  white-space: nowrap;\n  z-index: 12;\n  transition: 0.15s ease all;\n}\n\n.apexcharts-tooltip.apexcharts-active {\n  opacity: 1;\n  transition: 0.15s ease all;\n}\n\n.apexcharts-tooltip.apexcharts-theme-light {\n  border: 1px solid #e3e3e3;\n  background: rgba(255, 255, 255, 0.96);\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark {\n  color: #fff;\n  background: rgba(30, 30, 30, 0.8);\n}\n\n.apexcharts-tooltip * {\n  font-family: inherit;\n}\n\n\n.apexcharts-tooltip-title {\n  padding: 6px;\n  font-size: 15px;\n  margin-bottom: 4px;\n}\n\n.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\n  background: #ECEFF1;\n  border-bottom: 1px solid #ddd;\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {\n  background: rgba(0, 0, 0, 0.7);\n  border-bottom: 1px solid #333;\n}\n\n.apexcharts-tooltip-text-value,\n.apexcharts-tooltip-text-z-value {\n  display: inline-block;\n  font-weight: 600;\n  margin-left: 5px;\n}\n\n.apexcharts-tooltip-text-z-label:empty,\n.apexcharts-tooltip-text-z-value:empty {\n  display: none;\n}\n\n.apexcharts-tooltip-text-value,\n.apexcharts-tooltip-text-z-value {\n  font-weight: 600;\n}\n\n.apexcharts-tooltip-marker {\n  width: 12px;\n  height: 12px;\n  position: relative;\n  top: 0px;\n  margin-right: 10px;\n  border-radius: 50%;\n}\n\n.apexcharts-tooltip-series-group {\n  padding: 0 10px;\n  display: none;\n  text-align: left;\n  justify-content: left;\n  align-items: center;\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {\n  opacity: 1;\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active,\n.apexcharts-tooltip-series-group:last-child {\n  padding-bottom: 4px;\n}\n\n.apexcharts-tooltip-series-group-hidden {\n  opacity: 0;\n  height: 0;\n  line-height: 0;\n  padding: 0 !important;\n}\n\n.apexcharts-tooltip-y-group {\n  padding: 6px 0 5px;\n}\n\n.apexcharts-tooltip-candlestick {\n  padding: 4px 8px;\n}\n\n.apexcharts-tooltip-candlestick>div {\n  margin: 4px 0;\n}\n\n.apexcharts-tooltip-candlestick span.value {\n  font-weight: bold;\n}\n\n.apexcharts-tooltip-rangebar {\n  padding: 5px 8px;\n}\n\n.apexcharts-tooltip-rangebar .category {\n  font-weight: 600;\n  color: #777;\n}\n\n.apexcharts-tooltip-rangebar .series-name {\n  font-weight: bold;\n  display: block;\n  margin-bottom: 5px;\n}\n\n.apexcharts-xaxistooltip {\n  opacity: 0;\n  padding: 9px 10px;\n  pointer-events: none;\n  color: #373d3f;\n  font-size: 13px;\n  text-align: center;\n  border-radius: 2px;\n  position: absolute;\n  z-index: 10;\n  background: #ECEFF1;\n  border: 1px solid #90A4AE;\n  transition: 0.15s ease all;\n}\n\n.apexcharts-xaxistooltip.apexcharts-theme-dark {\n  background: rgba(0, 0, 0, 0.7);\n  border: 1px solid rgba(0, 0, 0, 0.5);\n  color: #fff;\n}\n\n.apexcharts-xaxistooltip:after,\n.apexcharts-xaxistooltip:before {\n  left: 50%;\n  border: solid transparent;\n  content: " ";\n  height: 0;\n  width: 0;\n  position: absolute;\n  pointer-events: none;\n}\n\n.apexcharts-xaxistooltip:after {\n  border-color: rgba(236, 239, 241, 0);\n  border-width: 6px;\n  margin-left: -6px;\n}\n\n.apexcharts-xaxistooltip:before {\n  border-color: rgba(144, 164, 174, 0);\n  border-width: 7px;\n  margin-left: -7px;\n}\n\n.apexcharts-xaxistooltip-bottom:after,\n.apexcharts-xaxistooltip-bottom:before {\n  bottom: 100%;\n}\n\n.apexcharts-xaxistooltip-top:after,\n.apexcharts-xaxistooltip-top:before {\n  top: 100%;\n}\n\n.apexcharts-xaxistooltip-bottom:after {\n  border-bottom-color: #ECEFF1;\n}\n\n.apexcharts-xaxistooltip-bottom:before {\n  border-bottom-color: #90A4AE;\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after {\n  border-bottom-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {\n  border-bottom-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-top:after {\n  border-top-color: #ECEFF1\n}\n\n.apexcharts-xaxistooltip-top:before {\n  border-top-color: #90A4AE;\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after {\n  border-top-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {\n  border-top-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip.apexcharts-active {\n  opacity: 1;\n  transition: 0.15s ease all;\n}\n\n.apexcharts-yaxistooltip {\n  opacity: 0;\n  padding: 4px 10px;\n  pointer-events: none;\n  color: #373d3f;\n  font-size: 13px;\n  text-align: center;\n  border-radius: 2px;\n  position: absolute;\n  z-index: 10;\n  background: #ECEFF1;\n  border: 1px solid #90A4AE;\n}\n\n.apexcharts-yaxistooltip.apexcharts-theme-dark {\n  background: rgba(0, 0, 0, 0.7);\n  border: 1px solid rgba(0, 0, 0, 0.5);\n  color: #fff;\n}\n\n.apexcharts-yaxistooltip:after,\n.apexcharts-yaxistooltip:before {\n  top: 50%;\n  border: solid transparent;\n  content: " ";\n  height: 0;\n  width: 0;\n  position: absolute;\n  pointer-events: none;\n}\n\n.apexcharts-yaxistooltip:after {\n  border-color: rgba(236, 239, 241, 0);\n  border-width: 6px;\n  margin-top: -6px;\n}\n\n.apexcharts-yaxistooltip:before {\n  border-color: rgba(144, 164, 174, 0);\n  border-width: 7px;\n  margin-top: -7px;\n}\n\n.apexcharts-yaxistooltip-left:after,\n.apexcharts-yaxistooltip-left:before {\n  left: 100%;\n}\n\n.apexcharts-yaxistooltip-right:after,\n.apexcharts-yaxistooltip-right:before {\n  right: 100%;\n}\n\n.apexcharts-yaxistooltip-left:after {\n  border-left-color: #ECEFF1;\n}\n\n.apexcharts-yaxistooltip-left:before {\n  border-left-color: #90A4AE;\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after {\n  border-left-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {\n  border-left-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-right:after {\n  border-right-color: #ECEFF1;\n}\n\n.apexcharts-yaxistooltip-right:before {\n  border-right-color: #90A4AE;\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after {\n  border-right-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {\n  border-right-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip.apexcharts-active {\n  opacity: 1;\n}\n\n.apexcharts-yaxistooltip-hidden {\n  display: none;\n}\n\n.apexcharts-xcrosshairs,\n.apexcharts-ycrosshairs {\n  pointer-events: none;\n  opacity: 0;\n  transition: 0.15s ease all;\n}\n\n.apexcharts-xcrosshairs.apexcharts-active,\n.apexcharts-ycrosshairs.apexcharts-active {\n  opacity: 1;\n  transition: 0.15s ease all;\n}\n\n.apexcharts-ycrosshairs-hidden {\n  opacity: 0;\n}\n\n.apexcharts-selection-rect {\n  cursor: move;\n}\n\n.svg_select_boundingRect, .svg_select_points_rot {\n  pointer-events: none;\n  opacity: 0;\n  visibility: hidden;\n}\n.apexcharts-selection-rect + g .svg_select_boundingRect,\n.apexcharts-selection-rect + g .svg_select_points_rot {\n  opacity: 0;\n  visibility: hidden;\n}\n\n.apexcharts-selection-rect + g .svg_select_points_l,\n.apexcharts-selection-rect + g .svg_select_points_r {\n  cursor: ew-resize;\n  opacity: 1;\n  visibility: visible;\n}\n\n.svg_select_points {\n  fill: #efefef;\n  stroke: #333;\n  rx: 2;\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-zoom {\n  cursor: crosshair\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-pan {\n  cursor: move\n}\n\n.apexcharts-zoom-icon,\n.apexcharts-zoomin-icon,\n.apexcharts-zoomout-icon,\n.apexcharts-reset-icon,\n.apexcharts-pan-icon,\n.apexcharts-selection-icon,\n.apexcharts-menu-icon,\n.apexcharts-toolbar-custom-icon {\n  cursor: pointer;\n  width: 20px;\n  height: 20px;\n  line-height: 24px;\n  color: #6E8192;\n  text-align: center;\n}\n\n.apexcharts-zoom-icon svg,\n.apexcharts-zoomin-icon svg,\n.apexcharts-zoomout-icon svg,\n.apexcharts-reset-icon svg,\n.apexcharts-menu-icon svg {\n  fill: #6E8192;\n}\n\n.apexcharts-selection-icon svg {\n  fill: #444;\n  transform: scale(0.76)\n}\n\n.apexcharts-theme-dark .apexcharts-zoom-icon svg,\n.apexcharts-theme-dark .apexcharts-zoomin-icon svg,\n.apexcharts-theme-dark .apexcharts-zoomout-icon svg,\n.apexcharts-theme-dark .apexcharts-reset-icon svg,\n.apexcharts-theme-dark .apexcharts-pan-icon svg,\n.apexcharts-theme-dark .apexcharts-selection-icon svg,\n.apexcharts-theme-dark .apexcharts-menu-icon svg,\n.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg {\n  fill: #f3f4f5;\n}\n\n.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg,\n.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,\n.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg {\n  fill: #008FFB;\n}\n\n.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,\n.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,\n.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,\n.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg,\n.apexcharts-theme-light .apexcharts-reset-icon:hover svg,\n.apexcharts-theme-light .apexcharts-menu-icon:hover svg {\n  fill: #333;\n}\n\n.apexcharts-selection-icon,\n.apexcharts-menu-icon {\n  position: relative;\n}\n\n.apexcharts-reset-icon {\n  margin-left: 5px;\n}\n\n.apexcharts-zoom-icon,\n.apexcharts-reset-icon,\n.apexcharts-menu-icon {\n  transform: scale(0.85);\n}\n\n.apexcharts-zoomin-icon,\n.apexcharts-zoomout-icon {\n  transform: scale(0.7)\n}\n\n.apexcharts-zoomout-icon {\n  margin-right: 3px;\n}\n\n.apexcharts-pan-icon {\n  transform: scale(0.62);\n  position: relative;\n  left: 1px;\n  top: 0px;\n}\n\n.apexcharts-pan-icon svg {\n  fill: #fff;\n  stroke: #6E8192;\n  stroke-width: 2;\n}\n\n.apexcharts-pan-icon.apexcharts-selected svg {\n  stroke: #008FFB;\n}\n\n.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {\n  stroke: #333;\n}\n\n.apexcharts-toolbar {\n  position: absolute;\n  z-index: 11;\n  max-width: 176px;\n  text-align: right;\n  border-radius: 3px;\n  padding: 0px 6px 2px 6px;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}\n\n.apexcharts-menu {\n  background: #fff;\n  position: absolute;\n  top: 100%;\n  border: 1px solid #ddd;\n  border-radius: 3px;\n  padding: 3px;\n  right: 10px;\n  opacity: 0;\n  min-width: 110px;\n  transition: 0.15s ease all;\n  pointer-events: none;\n}\n\n.apexcharts-menu.apexcharts-menu-open {\n  opacity: 1;\n  pointer-events: all;\n  transition: 0.15s ease all;\n}\n\n.apexcharts-menu-item {\n  padding: 6px 7px;\n  font-size: 12px;\n  cursor: pointer;\n}\n\n.apexcharts-theme-light .apexcharts-menu-item:hover {\n  background: #eee;\n}\n\n.apexcharts-theme-dark .apexcharts-menu {\n  background: rgba(0, 0, 0, 0.7);\n  color: #fff;\n}\n\n@media screen and (min-width: 768px) {\n  .apexcharts-canvas:hover .apexcharts-toolbar {\n    opacity: 1;\n  }\n}\n\n.apexcharts-datalabel.apexcharts-element-hidden {\n  opacity: 0;\n}\n\n.apexcharts-pie-label,\n.apexcharts-datalabels,\n.apexcharts-datalabel,\n.apexcharts-datalabel-label,\n.apexcharts-datalabel-value {\n  cursor: default;\n  pointer-events: none;\n}\n\n.apexcharts-pie-label-delay {\n  opacity: 0;\n  animation-name: opaque;\n  animation-duration: 0.3s;\n  animation-fill-mode: forwards;\n  animation-timing-function: ease;\n}\n\n.apexcharts-canvas .apexcharts-element-hidden {\n  opacity: 0;\n}\n\n.apexcharts-hide .apexcharts-series-points {\n  opacity: 0;\n}\n\n.apexcharts-gridline,\n.apexcharts-annotation-rect,\n.apexcharts-tooltip .apexcharts-marker,\n.apexcharts-area-series .apexcharts-area,\n.apexcharts-line,\n.apexcharts-zoom-rect,\n.apexcharts-toolbar svg,\n.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\n.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\n.apexcharts-radar-series path,\n.apexcharts-radar-series polygon {\n  pointer-events: none;\n}\n\n\n/* markers */\n\n.apexcharts-marker {\n  transition: 0.15s ease all;\n}\n\n@keyframes opaque {\n  0% {\n    opacity: 0;\n  }\n  100% {\n    opacity: 1;\n  }\n}\n\n\n/* Resize generated styles */\n\n@keyframes resizeanim {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n.resize-triggers {\n  animation: 1ms resizeanim;\n  visibility: hidden;\n  opacity: 0;\n}\n\n.resize-triggers,\n.resize-triggers>div,\n.contract-trigger:before {\n  content: " ";\n  display: block;\n  position: absolute;\n  top: 0;\n  left: 0;\n  height: 100%;\n  width: 100%;\n  overflow: hidden;\n}\n\n.resize-triggers>div {\n  background: #eee;\n  overflow: auto;\n}\n\n.contract-trigger:before {\n  width: 200%;\n  height: 200%;\n}'), function () {
        function e (e) {
            var t = e.__resizeTriggers__, n = t.firstElementChild,
                i = t.lastElementChild, a = n ? n.firstElementChild : null;
            i &&
            (i.scrollLeft = i.scrollWidth, i.scrollTop = i.scrollHeight), a &&
            (a.style.width = n.offsetWidth + 1 +
                'px', a.style.height = n.offsetHeight + 1 + 'px'), n &&
            (n.scrollLeft = n.scrollWidth, n.scrollTop = n.scrollHeight);
        }

        function t (t) {
            var n = this;
            e(this), this.__resizeRAF__ &&
            r(this.__resizeRAF__), this.__resizeRAF__ = a((function () {
                (function (e) {
                    return e.offsetWidth != e.__resizeLast__.width ||
                        e.offsetHeight != e.__resizeLast__.height;
                })(n) &&
                (n.__resizeLast__.width = n.offsetWidth, n.__resizeLast__.height = n.offsetHeight, n.__resizeListeners__.forEach(
                    (function (e) {e.call(t);})));
            }));
        }

        var n, i, a = (n = window.requestAnimationFrame ||
            window.mozRequestAnimationFrame ||
            window.webkitRequestAnimationFrame || function (e) {
                return window.setTimeout(e, 20);
            }, function (e) {return n(e);}),
            r = (i = window.cancelAnimationFrame ||
                window.mozCancelAnimationFrame ||
                window.webkitCancelAnimationFrame ||
                window.clearTimeout, function (e) {return i(e);}), o = !1,
            s = 'animationstart', l = 'Webkit Moz O ms'.split(' '),
            c = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(
                ' '), u = document.createElement('fakeelement');
        if (void 0 !== u.style.animationName && (o = !0), !1 ===
        o) for (var d = 0; d < l.length; d++) if (void 0 !==
            u.style[l[d] + 'AnimationName']) {
            s = c[d];
            break;
        }
        window.addResizeListener = function (n, i) {
            n.__resizeTriggers__ || ('static' == getComputedStyle(n).position &&
            (n.style.position = 'relative'), n.__resizeLast__ = {}, n.__resizeListeners__ = [], (n.__resizeTriggers__ = document.createElement(
                'div')).className = 'resize-triggers', n.__resizeTriggers__.innerHTML = '<div class="expand-trigger"><div></div></div><div class="contract-trigger"></div>', n.appendChild(
                n.__resizeTriggers__), e(n), n.addEventListener('scroll', t,
                !0), s && n.__resizeTriggers__.addEventListener(s,
                (function (t) {
                    'resizeanim' == t.animationName && e(n);
                }))), n.__resizeListeners__.push(i);
        }, window.removeResizeListener = function (e, n) {
            e && (e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(n),
                1), e.__resizeListeners__.length ||
            (e.removeEventListener('scroll',
                t), e.__resizeTriggers__.parentNode &&
            (e.__resizeTriggers__ = !e.removeChild(e.__resizeTriggers__))));
        };
    }(), void 0 === window.Apex && (window.Apex = {});
    var Pe = function () {
        function e (n) {t(this, e), this.ctx = n, this.w = n.w;}

        return i(e, [
            {
                key: 'initModules', value: function () {
                    this.ctx.publicMethods = [
                        'updateOptions',
                        'updateSeries',
                        'appendData',
                        'appendSeries',
                        'toggleSeries',
                        'showSeries',
                        'hideSeries',
                        'setLocale',
                        'resetSeries',
                        'zoomX',
                        'toggleDataPointSelection',
                        'dataURI',
                        'addXaxisAnnotation',
                        'addYaxisAnnotation',
                        'addPointAnnotation',
                        'clearAnnotations',
                        'removeAnnotation',
                        'paper',
                        'destroy'], this.ctx.eventList = [
                        'click',
                        'mousedown',
                        'mousemove',
                        'touchstart',
                        'touchmove',
                        'mouseup',
                        'touchend'], this.ctx.animations = new g(
                        this.ctx), this.ctx.axes = new K(
                        this.ctx), this.ctx.core = new Oe(this.ctx.el,
                        this.ctx), this.ctx.config = new N(
                        {}), this.ctx.data = new R(
                        this.ctx), this.ctx.grid = new q(
                        this.ctx), this.ctx.graphics = new v(
                        this.ctx), this.ctx.coreUtils = new x(
                        this.ctx), this.ctx.crosshairs = new J(
                        this.ctx), this.ctx.events = new G(
                        this.ctx), this.ctx.exports = new W(
                        this.ctx), this.ctx.localization = new Z(
                        this.ctx), this.ctx.options = new M, this.ctx.responsive = new Q(
                        this.ctx), this.ctx.series = new E(
                        this.ctx), this.ctx.theme = new ee(
                        this.ctx), this.ctx.formatters = new z(
                        this.ctx), this.ctx.titleSubtitle = new te(
                        this.ctx), this.ctx.legend = new le(
                        this.ctx), this.ctx.toolbar = new ce(
                        this.ctx), this.ctx.dimensions = new oe(
                        this.ctx), this.ctx.updateHelpers = new Ye(
                        this.ctx), this.ctx.zoomPanSelection = new ue(
                        this.ctx), this.ctx.w.globals.tooltip = new ve(
                        this.ctx);
                },
            }]), e;
    }(), Ie = function () {
        function e (n) {t(this, e), this.ctx = n, this.w = n.w;}

        return i(e, [
            {
                key: 'clear', value: function (e) {
                    var t = e.isUpdating;
                    this.ctx.zoomPanSelection &&
                    this.ctx.zoomPanSelection.destroy(), this.ctx.toolbar &&
                    this.ctx.toolbar.destroy(), this.ctx.animations = null, this.ctx.axes = null, this.ctx.annotations = null, this.ctx.core = null, this.ctx.data = null, this.ctx.grid = null, this.ctx.series = null, this.ctx.responsive = null, this.ctx.theme = null, this.ctx.formatters = null, this.ctx.titleSubtitle = null, this.ctx.legend = null, this.ctx.dimensions = null, this.ctx.options = null, this.ctx.crosshairs = null, this.ctx.zoomPanSelection = null, this.ctx.updateHelpers = null, this.ctx.toolbar = null, this.ctx.localization = null, this.ctx.w.globals.tooltip = null, this.clearDomElements(
                        { isUpdating: t });
                },
            },
            {
                key: 'killSVG',
                value: function (e) {
                    e.each((function (e, t) {
                        this.removeClass('*'), this.off(), this.stop();
                    }), !0), e.ungroup(), e.clear();
                },
            },
            {
                key: 'clearDomElements',
                value: function (e) {
                    var t = this, n = e.isUpdating,
                        i = this.w.globals.dom.Paper.node;
                    i.parentNode && i.parentNode.parentNode && !n &&
                    (i.parentNode.parentNode.style.minHeight = 'unset');
                    var a = this.w.globals.dom.baseEl;
                    a && this.ctx.eventList.forEach((function (e) {
                        a.removeEventListener(e, t.ctx.events.documentEvent);
                    }));
                    var r = this.w.globals.dom;
                    if (null !==
                        this.ctx.el) for (; this.ctx.el.firstChild;) this.ctx.el.removeChild(
                        this.ctx.el.firstChild);
                    this.killSVG(
                        r.Paper), r.Paper.remove(), r.elWrap = null, r.elGraphical = null, r.elAnnotations = null, r.elLegendWrap = null, r.baseEl = null, r.elGridRect = null, r.elGridRectMask = null, r.elGridRectMarkerMask = null, r.elDefs = null;
                },
            }]), e;
    }();
    return function () {
        function e (n, i) {
            t(this, e), this.opts = i, this.ctx = this, this.w = new F(
                i).init(), this.el = n, this.w.globals.cuid = p.randomId(), this.w.globals.chartID = this.w.config.chart.id
                ? p.escapeString(this.w.config.chart.id)
                : this.w.globals.cuid, new Pe(
                this).initModules(), this.create = p.bind(this.create,
                this), this.windowResizeHandler = this._windowResizeHandler.bind(
                this), this.parentResizeHandler = this._parentResizeCallback.bind(
                this);
        }

        return i(e, [
            {
                key: 'render', value: function () {
                    var e = this;
                    return new Promise((function (t, n) {
                        if (null !== e.el) {
                            void 0 === Apex._chartInstances &&
                            (Apex._chartInstances = []), e.w.config.chart.id &&
                            Apex._chartInstances.push({
                                id: e.w.globals.chartID,
                                group: e.w.config.chart.group,
                                chart: e,
                            }), e.setLocale(e.w.config.chart.defaultLocale);
                            var i = e.w.config.chart.events.beforeMount;
                            'function' == typeof i &&
                            i(e, e.w), e.events.fireEvent('beforeMount',
                                [e, e.w]), window.addEventListener('resize',
                                e.windowResizeHandler), window.addResizeListener(
                                e.el.parentNode, e.parentResizeHandler);
                            var a = e.create(e.w.config.series, {});
                            if (!a) return t(e);
                            e.mount(a).
                                then((function () {
                                    'function' ==
                                    typeof e.w.config.chart.events.mounted &&
                                    e.w.config.chart.events.mounted(e,
                                        e.w), e.events.fireEvent('mounted',
                                        [e, e.w]), t(a);
                                })).
                                catch((function (e) {n(e);}));
                        } else n(new Error('Element not found'));
                    }));
                },
            },
            {
                key: 'create', value: function (e, t) {
                    var n = this.w;
                    new Pe(this).initModules();
                    var i = this.w.globals;
                    if (i.noData = !1, i.animationEnded = !1, this.responsive.checkResponsiveConfig(
                        t), n.config.xaxis.convertedCatToNumeric &&
                    new j(n.config).convertCatToNumericXaxis(n.config,
                        this.ctx), null ===
                    this.el) return i.animationEnded = !0, null;
                    if (this.core.setupElements(), 'treemap' ===
                    n.config.chart.type &&
                    (n.config.grid.show = !1, n.config.yaxis[0].show = !1), 0 ===
                    i.svgWidth) return i.animationEnded = !0, null;
                    var a = x.checkComboSeries(e);
                    i.comboCharts = a.comboCharts, i.comboBarCount = a.comboBarCount;
                    var r = e.every(
                        (function (e) {return e.data && 0 === e.data.length;}));
                    (0 === e.length || r) &&
                    this.series.handleNoData(), this.events.setupEventHandlers(), this.data.parseData(
                        e), this.theme.init(), new T(
                        this).setGlobalMarkerSize(), this.formatters.setLabelFormatters(), this.titleSubtitle.draw(), i.noData &&
                    i.collapsedSeries.length !== i.series.length &&
                    !n.config.legend.showForSingleSeries ||
                    this.legend.init(), this.series.hasAllSeriesEqualX(), i.axisCharts &&
                    (this.core.coreCalculations(), 'category' !==
                    n.config.xaxis.type &&
                    this.formatters.setLabelFormatters()), this.formatters.heatmapLabelFormatters(), this.dimensions.plotCoords();
                    var o = this.core.xySettings();
                    this.grid.createGridMask();
                    var s = this.core.plotChartType(e, o), l = new D(this);
                    l.bringForward(), n.config.dataLabels.background.enabled &&
                    l.dataLabelsBackground(), this.core.shiftGraphPosition();
                    var c = {
                        plot: {
                            left: n.globals.translateX,
                            top: n.globals.translateY,
                            width: n.globals.gridWidth,
                            height: n.globals.gridHeight,
                        },
                    };
                    return {
                        elGraph: s,
                        xyRatios: o,
                        elInner: n.globals.dom.elGraphical,
                        dimensions: c,
                    };
                },
            },
            {
                key: 'mount', value: function () {
                    var e = this,
                        t = arguments.length > 0 && void 0 !== arguments[0]
                            ? arguments[0]
                            : null, n = this, i = n.w;
                    return new Promise((function (a, r) {
                        if (null === n.el) return r(new Error(
                            'Not enough data to display or target element not found'));
                        (null === t || i.globals.allSeriesCollapsed) &&
                        n.series.handleNoData(), 'treemap' !==
                        i.config.chart.type &&
                        n.axes.drawAxis(i.config.chart.type,
                            t.xyRatios), n.grid = new q(n);
                        var o = n.grid.drawGrid();
                        n.annotations = new L(
                            n), n.annotations.drawImageAnnos(), n.annotations.drawTextAnnos(), 'back' ===
                        i.config.grid.position && o &&
                        i.globals.dom.elGraphical.add(o.el);
                        var s = new V(e.ctx), l = new $(e.ctx);
                        if (null !== o && (s.xAxisLabelCorrections(
                            o.xAxisTickWidth), l.setYAxisTextAlignments()), 'back' ===
                        i.config.annotations.position &&
                        (i.globals.dom.Paper.add(
                            i.globals.dom.elAnnotations), n.annotations.drawAxesAnnotations()), Array.isArray(
                            t.elGraph)) for (var c = 0; c <
                        t.elGraph.length; c++) i.globals.dom.elGraphical.add(
                            t.elGraph[c]); else i.globals.dom.elGraphical.add(
                            t.elGraph);
                        if ('front' === i.config.grid.position && o &&
                        i.globals.dom.elGraphical.add(o.el), 'front' ===
                        i.config.xaxis.crosshairs.position &&
                        n.crosshairs.drawXCrosshairs(), 'front' ===
                        i.config.yaxis[0].crosshairs.position &&
                        n.crosshairs.drawYCrosshairs(), 'front' ===
                        i.config.annotations.position &&
                        (i.globals.dom.Paper.add(
                            i.globals.dom.elAnnotations), n.annotations.drawAxesAnnotations()), !i.globals.noData) {
                            if (i.config.tooltip.enabled && !i.globals.noData &&
                            n.w.globals.tooltip.drawTooltip(
                                t.xyRatios), i.globals.axisCharts &&
                            (i.globals.isXNumeric ||
                                i.config.xaxis.convertedCatToNumeric ||
                                i.globals.isTimelineBar)) (i.config.chart.zoom.enabled ||
                                i.config.chart.selection &&
                                i.config.chart.selection.enabled ||
                                i.config.chart.pan &&
                                i.config.chart.pan.enabled) &&
                            n.zoomPanSelection.init(
                                { xyRatios: t.xyRatios }); else {
                                var u = i.config.chart.toolbar.tools;
                                [
                                    'zoom',
                                    'zoomin',
                                    'zoomout',
                                    'selection',
                                    'pan',
                                    'reset'].forEach(
                                    (function (e) {u[e] = !1;}));
                            }
                            i.config.chart.toolbar.show &&
                            !i.globals.allSeriesCollapsed &&
                            n.toolbar.createToolbar();
                        }
                        i.globals.memory.methodsToExec.length > 0 &&
                        i.globals.memory.methodsToExec.forEach((function (e) {
                            e.method(e.params, !1, e.context);
                        })), i.globals.axisCharts || i.globals.noData ||
                        n.core.resizeNonAxisCharts(), a(n);
                    }));
                },
            },
            {
                key: 'destroy',
                value: function () {
                    window.removeEventListener('resize',
                        this.windowResizeHandler), window.removeResizeListener(
                        this.el.parentNode, this.parentResizeHandler);
                    var e = this.w.config.chart.id;
                    e && Apex._chartInstances.forEach((function (t, n) {
                        t.id === p.escapeString(e) &&
                        Apex._chartInstances.splice(n, 1);
                    })), new Ie(this.ctx).clear({ isUpdating: !1 });
                },
            },
            {
                key: 'updateOptions',
                value: function (e) {
                    var t = this,
                        n = arguments.length > 1 && void 0 !== arguments[1] &&
                            arguments[1],
                        i = !(arguments.length > 2 && void 0 !==
                            arguments[2]) || arguments[2],
                        a = !(arguments.length > 3 && void 0 !==
                            arguments[3]) || arguments[3],
                        r = !(arguments.length > 4 && void 0 !==
                            arguments[4]) || arguments[4], o = this.w;
                    return o.globals.selection = void 0, e.series &&
                    (this.series.resetSeries(!1, !0, !1), e.series.length &&
                    e.series[0].data && (e.series = e.series.map(
                        (function (e, n) {
                            return t.updateHelpers._extendSeries(e, n);
                        }))), this.updateHelpers.revertDefaultAxisMinMax()), e.xaxis &&
                    (e = this.updateHelpers.forceXAxisUpdate(e)), e.yaxis &&
                    (e = this.updateHelpers.forceYAxisUpdate(
                        e)), o.globals.collapsedSeriesIndices.length > 0 &&
                    this.series.clearPreviousPaths(), e.theme &&
                    (e = this.theme.updateThemeOptions(
                        e)), this.updateHelpers._updateOptions(e, n, i, a, r);
                },
            },
            {
                key: 'updateSeries',
                value: function () {
                    var e = arguments.length > 0 && void 0 !== arguments[0]
                        ? arguments[0]
                        : [], t = !(arguments.length > 1 && void 0 !==
                        arguments[1]) || arguments[1],
                        n = !(arguments.length > 2 && void 0 !==
                            arguments[2]) || arguments[2];
                    return this.series.resetSeries(
                        !1), this.updateHelpers.revertDefaultAxisMinMax(), this.updateHelpers._updateSeries(
                        e, t, n);
                },
            },
            {
                key: 'appendSeries',
                value: function (e) {
                    var t = !(arguments.length > 1 && void 0 !==
                        arguments[1]) || arguments[1],
                        n = !(arguments.length > 2 && void 0 !==
                            arguments[2]) || arguments[2],
                        i = this.w.config.series.slice();
                    return i.push(e), this.series.resetSeries(
                        !1), this.updateHelpers.revertDefaultAxisMinMax(), this.updateHelpers._updateSeries(
                        i, t, n);
                },
            },
            {
                key: 'appendData',
                value: function (e) {
                    var t = !(arguments.length > 1 && void 0 !==
                        arguments[1]) || arguments[1], n = this;
                    n.w.globals.dataChanged = !0, n.series.getPreviousPaths();
                    for (var i = n.w.config.series.slice(), a = 0; a <
                    i.length; a++) if (null !== e[a] && void 0 !==
                        e[a]) for (var r = 0; r <
                    e[a].data.length; r++) i[a].data.push(e[a].data[r]);
                    return n.w.config.series = i, t &&
                    (n.w.globals.initialSeries = p.clone(
                        n.w.config.series)), this.update();
                },
            },
            {
                key: 'update', value: function (e) {
                    var t = this;
                    return new Promise((function (n, i) {
                        new Ie(t.ctx).clear({ isUpdating: !0 });
                        var a = t.create(t.w.config.series, e);
                        if (!a) return n(t);
                        t.mount(a).
                            then((function () {
                                'function' ==
                                typeof t.w.config.chart.events.updated &&
                                t.w.config.chart.events.updated(t,
                                    t.w), t.events.fireEvent('updated',
                                    [t, t.w]), t.w.globals.isDirty = !0, n(t);
                            })).
                            catch((function (e) {i(e);}));
                    }));
                },
            },
            {
                key: 'getSyncedCharts',
                value: function () {
                    var e = this.getGroupedCharts(), t = [this];
                    return e.length &&
                    (t = [], e.forEach((function (e) {t.push(e);}))), t;
                },
            },
            {
                key: 'getGroupedCharts', value: function () {
                    var e = this;
                    return Apex._chartInstances.filter(
                        (function (e) {if (e.group) return !0;})).
                        map((function (t) {
                            return e.w.config.chart.group === t.group
                                ? t.chart
                                : e;
                        }));
                },
            },
            {
                key: 'toggleSeries',
                value: function (e) {return this.series.toggleSeries(e);},
            },
            {
                key: 'showSeries',
                value: function (e) {this.series.showSeries(e);},
            },
            {
                key: 'hideSeries',
                value: function (e) {this.series.hideSeries(e);},
            },
            {
                key: 'resetSeries',
                value: function () {
                    var e = !(arguments.length > 0 && void 0 !==
                        arguments[0]) || arguments[0],
                        t = !(arguments.length > 1 && void 0 !==
                            arguments[1]) || arguments[1];
                    this.series.resetSeries(e, t);
                },
            },
            {
                key: 'addEventListener',
                value: function (e, t) {this.events.addEventListener(e, t);},
            },
            {
                key: 'removeEventListener',
                value: function (e, t) {this.events.removeEventListener(e, t);},
            },
            {
                key: 'addXaxisAnnotation',
                value: function (e) {
                    var t = !(arguments.length > 1 && void 0 !==
                        arguments[1]) || arguments[1],
                        n = arguments.length > 2 && void 0 !== arguments[2]
                            ? arguments[2]
                            : void 0, i = this;
                    n && (i = n), i.annotations.addXaxisAnnotationExternal(e, t,
                        i);
                },
            },
            {
                key: 'addYaxisAnnotation',
                value: function (e) {
                    var t = !(arguments.length > 1 && void 0 !==
                        arguments[1]) || arguments[1],
                        n = arguments.length > 2 && void 0 !== arguments[2]
                            ? arguments[2]
                            : void 0, i = this;
                    n && (i = n), i.annotations.addYaxisAnnotationExternal(e, t,
                        i);
                },
            },
            {
                key: 'addPointAnnotation',
                value: function (e) {
                    var t = !(arguments.length > 1 && void 0 !==
                        arguments[1]) || arguments[1],
                        n = arguments.length > 2 && void 0 !== arguments[2]
                            ? arguments[2]
                            : void 0, i = this;
                    n && (i = n), i.annotations.addPointAnnotationExternal(e, t,
                        i);
                },
            },
            {
                key: 'clearAnnotations',
                value: function () {
                    var e = arguments.length > 0 && void 0 !== arguments[0]
                        ? arguments[0]
                        : void 0, t = this;
                    e && (t = e), t.annotations.clearAnnotations(t);
                },
            },
            {
                key: 'removeAnnotation',
                value: function (e) {
                    var t = arguments.length > 1 && void 0 !== arguments[1]
                        ? arguments[1]
                        : void 0, n = this;
                    t && (n = t), n.annotations.removeAnnotation(n, e);
                },
            },
            {
                key: 'getChartArea',
                value: function () {
                    return this.w.globals.dom.baseEl.querySelector(
                        '.apexcharts-inner');
                },
            },
            {
                key: 'getSeriesTotalXRange',
                value: function (
                    e, t) {
                    return this.coreUtils.getSeriesTotalsXRange(e, t);
                },
            },
            {
                key: 'getHighestValueInSeries',
                value: function () {
                    var e = arguments.length > 0 && void 0 !== arguments[0]
                        ? arguments[0]
                        : 0, t = new X(this.ctx);
                    return t.getMinYMaxY(e).highestY;
                },
            },
            {
                key: 'getLowestValueInSeries',
                value: function () {
                    var e = arguments.length > 0 && void 0 !== arguments[0]
                        ? arguments[0]
                        : 0, t = new X(this.ctx);
                    return t.getMinYMaxY(e).lowestY;
                },
            },
            {
                key: 'getSeriesTotal',
                value: function () {return this.w.globals.seriesTotals;},
            },
            {
                key: 'toggleDataPointSelection',
                value: function (
                    e, t) {
                    return this.updateHelpers.toggleDataPointSelection(e, t);
                },
            },
            {
                key: 'zoomX',
                value: function (e, t) {
                    this.ctx.toolbar.zoomUpdateOptions(e, t);
                },
            },
            {
                key: 'setLocale',
                value: function (e) {
                    this.localization.setCurrentLocaleValues(e);
                },
            },
            {
                key: 'dataURI',
                value: function () {return new W(this.ctx).dataURI();},
            },
            {
                key: 'paper',
                value: function () {return this.w.globals.dom.Paper;},
            },
            {
                key: '_parentResizeCallback',
                value: function () {
                    !this.w.globals.noData && this.w.globals.animationEnded &&
                    this.w.config.chart.redrawOnParentResize &&
                    this._windowResize();
                },
            },
            {
                key: '_windowResize', value: function () {
                    var e = this;
                    clearTimeout(
                        this.w.globals.resizeTimer), this.w.globals.resizeTimer = window.setTimeout(
                        (function () {e.w.globals.resized = !0, e.w.globals.dataChanged = !1, e.ctx.update();}),
                        150);
                },
            },
            {
                key: '_windowResizeHandler',
                value: function () {
                    var e = this.w.config.chart.redrawOnWindowResize;
                    'function' == typeof e && (e = e()), e &&
                    this._windowResize();
                },
            }], [
            {
                key: 'getChartByID',
                value: function (e) {
                    var t = p.escapeString(e), n = Apex._chartInstances.filter(
                        (function (e) {return e.id === t;}))[0];
                    return n && n.chart;
                },
            },
            {
                key: 'initOnLoad',
                value: function () {
                    for (var t = document.querySelectorAll(
                        '[data-apexcharts]'), n = 0; n < t.length; n++) new e(
                        t[n],
                        JSON.parse(t[n].getAttribute('data-options'))).render();
                },
            },
            {
                key: 'exec', value: function (e, t) {
                    var n = this.getChartByID(e);
                    if (n) {
                        n.w.globals.isExecCalled = !0;
                        var i = null;
                        if (-1 !== n.publicMethods.indexOf(t)) {
                            for (var a = arguments.length, r = new Array(
                                a > 2 ? a - 2 : 0), o = 2; o < a; o++) r[o -
                            2] = arguments[o];
                            i = n[t].apply(n, r);
                        }
                        return i;
                    }
                },
            },
            {
                key: 'merge',
                value: function (e, t) {return p.extend(e, t);},
            }]), e;
    }();
})),
    /*!
 * Chart.js v3.3.2
 * https://www.chartjs.org
 * (c) 2021 Chart.js Contributors
 * Released under the MIT License
 */
    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).Chart = t();
    }(this, (function () {
        'use strict';
        const e = 'undefined' == typeof window
            ? function (e) {return e();}
            : window.requestAnimationFrame;

        function t (t, n, i) {
            const a = i || (e => Array.prototype.slice.call(e));
            let r = !1, o = [];
            return function (...i) {
                o = a(i), r ||
                (r = !0, e.call(window, (() => {r = !1, t.apply(n, o);})));
            };
        }

        function n (e, t) {
            let n;
            return function () {
                return t ? (clearTimeout(n), n = setTimeout(e, t)) : e(), t;
            };
        }

        const i = e => 'start' === e ? 'left' : 'end' === e
            ? 'right'
            : 'center',
            a = (e, t, n) => 'start' === e ? t : 'end' === e ? n : (t + n) / 2,
            r = (e, t, n) => 'right' === e ? n : 'center' === e
                ? (t + n) / 2
                : t;
        var o = new class {
            constructor () {this._request = null, this._charts = new Map, this._running = !1, this._lastDate = void 0;}

            _notify (e, t, n, i) {
                const a = t.listeners[i], r = t.duration;
                a.forEach((i => i({
                    chart: e,
                    initial: t.initial,
                    numSteps: r,
                    currentStep: Math.min(n - t.start, r),
                })));
            }

            _refresh () {
                const t = this;
                t._request || (t._running = !0, t._request = e.call(window,
                    (() => {
                        t._update(), t._request = null, t._running &&
                        t._refresh();
                    })));
            }

            _update (e = Date.now()) {
                const t = this;
                let n = 0;
                t._charts.forEach(((i, a) => {
                    if (!i.running || !i.items.length) return;
                    const r = i.items;
                    let o, s = r.length - 1, l = !1;
                    for (; s >= 0; --s) o = r[s], o._active
                        ? (o._total > i.duration &&
                        (i.duration = o._total), o.tick(e), l = !0)
                        : (r[s] = r[r.length - 1], r.pop());
                    l && (a.draw(), t._notify(a, i, e, 'progress')), r.length ||
                    (i.running = !1, t._notify(a, i, e,
                        'complete'), i.initial = !1), n += r.length;
                })), t._lastDate = e, 0 === n && (t._running = !1);
            }

            _getAnims (e) {
                const t = this._charts;
                let n = t.get(e);
                return n || (n = {
                    running: !1,
                    initial: !0,
                    items: [],
                    listeners: { complete: [], progress: [] },
                }, t.set(e, n)), n;
            }

            listen (e, t, n) {this._getAnims(e).listeners[t].push(n);}

            add (e, t) {t && t.length && this._getAnims(e).items.push(...t);}

            has (e) {return this._getAnims(e).items.length > 0;}

            start (e) {
                const t = this._charts.get(e);
                t &&
                (t.running = !0, t.start = Date.now(), t.duration = t.items.reduce(
                    ((e, t) => Math.max(e, t._duration)), 0), this._refresh());
            }

            running (e) {
                if (!this._running) return !1;
                const t = this._charts.get(e);
                return !!(t && t.running && t.items.length);
            }

            stop (e) {
                const t = this._charts.get(e);
                if (!t || !t.items.length) return;
                const n = t.items;
                let i = n.length - 1;
                for (; i >= 0; --i) n[i].cancel();
                t.items = [], this._notify(e, t, Date.now(), 'complete');
            }

            remove (e) {return this._charts.delete(e);}
        };
        /*!
 * @kurkle/color v0.1.9
 * https://github.com/kurkle/color#readme
 * (c) 2020 Jukka Kurkela
 * Released under the MIT License
 */
        const s = {
                0: 0,
                1: 1,
                2: 2,
                3: 3,
                4: 4,
                5: 5,
                6: 6,
                7: 7,
                8: 8,
                9: 9,
                A: 10,
                B: 11,
                C: 12,
                D: 13,
                E: 14,
                F: 15,
                a: 10,
                b: 11,
                c: 12,
                d: 13,
                e: 14,
                f: 15,
            }, l = '0123456789ABCDEF', c = e => l[15 & e],
            u = e => l[(240 & e) >> 4] + l[15 & e],
            d = e => (240 & e) >> 4 == (15 & e);

        function h (e) {
            var t = function (e) {
                return d(e.r) && d(e.g) && d(e.b) && d(e.a);
            }(e) ? c : u;
            return e ? '#' + t(e.r) + t(e.g) + t(e.b) +
                (e.a < 255 ? t(e.a) : '') : e;
        }

        function f (e) {return e + .5 | 0;}

        const p = (e, t, n) => Math.max(Math.min(e, n), t);

        function m (e) {return p(f(2.55 * e), 0, 255);}

        function g (e) {return p(f(255 * e), 0, 255);}

        function v (e) {return p(f(e / 2.55) / 100, 0, 1);}

        function y (e) {return p(f(100 * e), 0, 100);}

        const b = /^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;
        const x = /^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;

        function _ (e, t, n) {
            const i = t * Math.min(n, 1 - n),
                a = (t, a = (t + e / 30) % 12) => n - i *
                    Math.max(Math.min(a - 3, 9 - a, 1), -1);
            return [a(0), a(8), a(4)];
        }

        function w (e, t, n) {
            const i = (i, a = (i + e / 60) % 6) => n - n * t *
                Math.max(Math.min(a, 4 - a, 1), 0);
            return [i(5), i(3), i(1)];
        }

        function k (e, t, n) {
            const i = _(e, 1, .5);
            let a;
            for (t + n > 1 && (a = 1 / (t + n), t *= a, n *= a), a = 0; a <
            3; a++) i[a] *= 1 - t - n, i[a] += t;
            return i;
        }

        function M (e) {
            const t = e.r / 255, n = e.g / 255, i = e.b / 255,
                a = Math.max(t, n, i), r = Math.min(t, n, i), o = (a + r) / 2;
            let s, l, c;
            return a !== r &&
            (c = a - r, l = o > .5 ? c / (2 - a - r) : c / (a + r), s = a === t
                ? (n - i) / c + (n < i ? 6 : 0)
                : a === n ? (i - t) / c + 2 : (t - n) / c + 4, s = 60 * s +
                .5), [0 | s, l || 0, o];
        }

        function L (e, t, n, i) {
            return (Array.isArray(t)
                ? e(t[0], t[1], t[2])
                : e(t, n, i)).map(g);
        }

        function S (e, t, n) {return L(_, e, t, n);}

        function T (e) {return (e % 360 + 360) % 360;}

        function A (e) {
            const t = x.exec(e);
            let n, i = 255;
            if (!t) return;
            t[5] !== n && (i = t[6] ? m(+t[5]) : g(+t[5]));
            const a = T(+t[2]), r = +t[3] / 100, o = +t[4] / 100;
            return n = 'hwb' === t[1] ? function (e, t, n) {
                return L(k, e, t, n);
            }(a, r, o) : 'hsv' === t[1] ? function (e, t, n) {
                return L(w, e, t, n);
            }(a, r, o) : S(a, r, o), { r: n[0], g: n[1], b: n[2], a: i };
        }

        const D = {
            x: 'dark',
            Z: 'light',
            Y: 're',
            X: 'blu',
            W: 'gr',
            V: 'medium',
            U: 'slate',
            A: 'ee',
            T: 'ol',
            S: 'or',
            B: 'ra',
            C: 'lateg',
            D: 'ights',
            R: 'in',
            Q: 'turquois',
            E: 'hi',
            P: 'ro',
            O: 'al',
            N: 'le',
            M: 'de',
            L: 'yello',
            F: 'en',
            K: 'ch',
            G: 'arks',
            H: 'ea',
            I: 'ightg',
            J: 'wh',
        }, C = {
            OiceXe: 'f0f8ff',
            antiquewEte: 'faebd7',
            aqua: 'ffff',
            aquamarRe: '7fffd4',
            azuY: 'f0ffff',
            beige: 'f5f5dc',
            bisque: 'ffe4c4',
            black: '0',
            blanKedOmond: 'ffebcd',
            Xe: 'ff',
            XeviTet: '8a2be2',
            bPwn: 'a52a2a',
            burlywood: 'deb887',
            caMtXe: '5f9ea0',
            KartYuse: '7fff00',
            KocTate: 'd2691e',
            cSO: 'ff7f50',
            cSnflowerXe: '6495ed',
            cSnsilk: 'fff8dc',
            crimson: 'dc143c',
            cyan: 'ffff',
            xXe: '8b',
            xcyan: '8b8b',
            xgTMnPd: 'b8860b',
            xWay: 'a9a9a9',
            xgYF: '6400',
            xgYy: 'a9a9a9',
            xkhaki: 'bdb76b',
            xmagFta: '8b008b',
            xTivegYF: '556b2f',
            xSange: 'ff8c00',
            xScEd: '9932cc',
            xYd: '8b0000',
            xsOmon: 'e9967a',
            xsHgYF: '8fbc8f',
            xUXe: '483d8b',
            xUWay: '2f4f4f',
            xUgYy: '2f4f4f',
            xQe: 'ced1',
            xviTet: '9400d3',
            dAppRk: 'ff1493',
            dApskyXe: 'bfff',
            dimWay: '696969',
            dimgYy: '696969',
            dodgerXe: '1e90ff',
            fiYbrick: 'b22222',
            flSOwEte: 'fffaf0',
            foYstWAn: '228b22',
            fuKsia: 'ff00ff',
            gaRsbSo: 'dcdcdc',
            ghostwEte: 'f8f8ff',
            gTd: 'ffd700',
            gTMnPd: 'daa520',
            Way: '808080',
            gYF: '8000',
            gYFLw: 'adff2f',
            gYy: '808080',
            honeyMw: 'f0fff0',
            hotpRk: 'ff69b4',
            RdianYd: 'cd5c5c',
            Rdigo: '4b0082',
            ivSy: 'fffff0',
            khaki: 'f0e68c',
            lavFMr: 'e6e6fa',
            lavFMrXsh: 'fff0f5',
            lawngYF: '7cfc00',
            NmoncEffon: 'fffacd',
            ZXe: 'add8e6',
            ZcSO: 'f08080',
            Zcyan: 'e0ffff',
            ZgTMnPdLw: 'fafad2',
            ZWay: 'd3d3d3',
            ZgYF: '90ee90',
            ZgYy: 'd3d3d3',
            ZpRk: 'ffb6c1',
            ZsOmon: 'ffa07a',
            ZsHgYF: '20b2aa',
            ZskyXe: '87cefa',
            ZUWay: '778899',
            ZUgYy: '778899',
            ZstAlXe: 'b0c4de',
            ZLw: 'ffffe0',
            lime: 'ff00',
            limegYF: '32cd32',
            lRF: 'faf0e6',
            magFta: 'ff00ff',
            maPon: '800000',
            VaquamarRe: '66cdaa',
            VXe: 'cd',
            VScEd: 'ba55d3',
            VpurpN: '9370db',
            VsHgYF: '3cb371',
            VUXe: '7b68ee',
            VsprRggYF: 'fa9a',
            VQe: '48d1cc',
            VviTetYd: 'c71585',
            midnightXe: '191970',
            mRtcYam: 'f5fffa',
            mistyPse: 'ffe4e1',
            moccasR: 'ffe4b5',
            navajowEte: 'ffdead',
            navy: '80',
            Tdlace: 'fdf5e6',
            Tive: '808000',
            TivedBb: '6b8e23',
            Sange: 'ffa500',
            SangeYd: 'ff4500',
            ScEd: 'da70d6',
            pOegTMnPd: 'eee8aa',
            pOegYF: '98fb98',
            pOeQe: 'afeeee',
            pOeviTetYd: 'db7093',
            papayawEp: 'ffefd5',
            pHKpuff: 'ffdab9',
            peru: 'cd853f',
            pRk: 'ffc0cb',
            plum: 'dda0dd',
            powMrXe: 'b0e0e6',
            purpN: '800080',
            YbeccapurpN: '663399',
            Yd: 'ff0000',
            Psybrown: 'bc8f8f',
            PyOXe: '4169e1',
            saddNbPwn: '8b4513',
            sOmon: 'fa8072',
            sandybPwn: 'f4a460',
            sHgYF: '2e8b57',
            sHshell: 'fff5ee',
            siFna: 'a0522d',
            silver: 'c0c0c0',
            skyXe: '87ceeb',
            UXe: '6a5acd',
            UWay: '708090',
            UgYy: '708090',
            snow: 'fffafa',
            sprRggYF: 'ff7f',
            stAlXe: '4682b4',
            tan: 'd2b48c',
            teO: '8080',
            tEstN: 'd8bfd8',
            tomato: 'ff6347',
            Qe: '40e0d0',
            viTet: 'ee82ee',
            JHt: 'f5deb3',
            wEte: 'ffffff',
            wEtesmoke: 'f5f5f5',
            Lw: 'ffff00',
            LwgYF: '9acd32',
        };
        let E;

        function O (e) {
            E || (E = function () {
                const e = {}, t = Object.keys(C), n = Object.keys(D);
                let i, a, r, o, s;
                for (i = 0; i < t.length; i++) {
                    for (o = s = t[i], a = 0; a <
                    n.length; a++) r = n[a], s = s.replace(r, D[r]);
                    r = parseInt(C[o], 16), e[s] = [
                        r >> 16 & 255,
                        r >> 8 & 255,
                        255 & r];
                }
                return e;
            }(), E.transparent = [0, 0, 0, 0]);
            const t = E[e.toLowerCase()];
            return t &&
                { r: t[0], g: t[1], b: t[2], a: 4 === t.length ? t[3] : 255 };
        }

        function Y (e, t, n) {
            if (e) {
                let i = M(e);
                i[t] = Math.max(0,
                    Math.min(i[t] + i[t] * n, 0 === t ? 360 : 1)), i = S(
                    i), e.r = i[0], e.g = i[1], e.b = i[2];
            }
        }

        function P (e, t) {return e ? Object.assign(t || {}, e) : e;}

        function I (e) {
            var t = { r: 0, g: 0, b: 0, a: 255 };
            return Array.isArray(e) ? e.length >= 3 &&
                (t = { r: e[0], g: e[1], b: e[2], a: 255 }, e.length > 3 &&
                (t.a = g(e[3]))) : (t = P(e, { r: 0, g: 0, b: 0, a: 1 })).a = g(
                t.a), t;
        }

        function j (e) {
            return 'r' === e.charAt(0)
                ? function (e) {
                    const t = b.exec(e);
                    let n, i, a, r = 255;
                    if (t) {
                        if (t[7] !== n) {
                            const e = +t[7];
                            r = 255 & (t[8] ? m(e) : 255 * e);
                        }
                        return n = +t[1], i = +t[3], a = +t[5], n = 255 &
                            (t[2] ? m(n) : n), i = 255 &
                            (t[4] ? m(i) : i), a = 255 & (t[6] ? m(a) : a), {
                            r: n,
                            g: i,
                            b: a,
                            a: r,
                        };
                    }
                }(e)
                : A(e);
        }

        class N {
            constructor (e) {
                if (e instanceof N) return e;
                const t = typeof e;
                let n;
                var i, a, r;
                'object' === t ? n = I(e) : 'string' === t &&
                    (r = (i = e).length, '#' === i[0] &&
                    (4 === r || 5 === r ? a = {
                        r: 255 & 17 * s[i[1]],
                        g: 255 & 17 * s[i[2]],
                        b: 255 & 17 * s[i[3]],
                        a: 5 === r ? 17 * s[i[4]] : 255,
                    } : 7 !== r && 9 !== r || (a = {
                        r: s[i[1]] << 4 | s[i[2]],
                        g: s[i[3]] << 4 | s[i[4]],
                        b: s[i[5]] << 4 | s[i[6]],
                        a: 9 === r ? s[i[7]] << 4 | s[i[8]] : 255,
                    })), n = a || O(e) ||
                        j(e)), this._rgb = n, this._valid = !!n;
            }

            get valid () {return this._valid;}

            get rgb () {
                var e = P(this._rgb);
                return e && (e.a = v(e.a)), e;
            }

            set rgb (e) {this._rgb = I(e);}

            rgbString () {
                return this._valid ? (e = this._rgb) && (e.a < 255
                    ? `rgba(${e.r}, ${e.g}, ${e.b}, ${v(e.a)})`
                    : `rgb(${e.r}, ${e.g}, ${e.b})`) : this._rgb;
                var e;
            }

            hexString () {return this._valid ? h(this._rgb) : this._rgb;}

            hslString () {
                return this._valid ? function (e) {
                    if (!e) return;
                    const t = M(e), n = t[0], i = y(t[1]), a = y(t[2]);
                    return e.a < 255
                        ? `hsla(${n}, ${i}%, ${a}%, ${v(e.a)})`
                        : `hsl(${n}, ${i}%, ${a}%)`;
                }(this._rgb) : this._rgb;
            }

            mix (e, t) {
                const n = this;
                if (e) {
                    const i = n.rgb, a = e.rgb;
                    let r;
                    const o = t === r ? .5 : t, s = 2 * o - 1, l = i.a - a.a,
                        c = ((s * l == -1 ? s : (s + l) / (1 + s * l)) + 1) / 2;
                    r = 1 - c, i.r = 255 & c * i.r + r * a.r + .5, i.g = 255 &
                        c * i.g + r * a.g + .5, i.b = 255 & c * i.b + r * a.b +
                        .5, i.a = o * i.a + (1 - o) * a.a, n.rgb = i;
                }
                return n;
            }

            clone () {return new N(this.rgb);}

            alpha (e) {return this._rgb.a = g(e), this;}

            clearer (e) {return this._rgb.a *= 1 - e, this;}

            greyscale () {
                const e = this._rgb, t = f(.3 * e.r + .59 * e.g + .11 * e.b);
                return e.r = e.g = e.b = t, this;
            }

            opaquer (e) {return this._rgb.a *= 1 + e, this;}

            negate () {
                const e = this._rgb;
                return e.r = 255 - e.r, e.g = 255 - e.g, e.b = 255 - e.b, this;
            }

            lighten (e) {return Y(this._rgb, 2, e), this;}

            darken (e) {return Y(this._rgb, 2, -e), this;}

            saturate (e) {return Y(this._rgb, 1, e), this;}

            desaturate (e) {return Y(this._rgb, 1, -e), this;}

            rotate (e) {
                return function (e, t) {
                    var n = M(e);
                    n[0] = T(n[0] + t), n = S(
                        n), e.r = n[0], e.g = n[1], e.b = n[2];
                }(this._rgb, e), this;
            }
        }

        function H (e) {return new N(e);}

        const F = e => e instanceof CanvasGradient || e instanceof
            CanvasPattern;

        function R (e) {return F(e) ? e : H(e);}

        function z (e) {
            return F(e) ? e : H(e).
                saturate(.5).
                darken(.1).
                hexString();
        }

        function B () {}

        const W = function () {
            let e = 0;
            return function () {return e++;};
        }();

        function V (e) {return null == e;}

        function q (e) {
            if (Array.isArray && Array.isArray(e)) return !0;
            const t = Object.prototype.toString.call(e);
            return '[object' === t.substr(0, 7) && 'Array]' === t.substr(-6);
        }

        function U (e) {
            return null !== e && '[object Object]' ===
                Object.prototype.toString.call(e);
        }

        const X = e => ('number' == typeof e || e instanceof Number) &&
            isFinite(+e);

        function $ (e, t) {return X(e) ? e : t;}

        function G (e, t) {return void 0 === e ? t : e;}

        const Z = (e, t) => 'string' == typeof e && e.endsWith('%')
            ? parseFloat(e) / 100
            : e / t,
            K = (e, t) => 'string' == typeof e && e.endsWith('%') ? parseFloat(
                e) / 100 * t : +e;

        function J (e, t, n) {
            if (e && 'function' == typeof e.call) return e.apply(n, t);
        }

        function Q (e, t, n, i) {
            let a, r, o;
            if (q(e)) if (r = e.length, i) for (a = r - 1; a >= 0; a--) t.call(
                n, e[a], a); else for (a = 0; a < r; a++) t.call(n, e[a],
                a); else if (U(e)) for (o = Object.keys(
                e), r = o.length, a = 0; a < r; a++) t.call(n, e[o[a]], o[a]);
        }

        function ee (e, t) {
            let n, i, a, r;
            if (!e || !t || e.length !== t.length) return !1;
            for (n = 0, i = e.length; n <
            i; ++n) if (a = e[n], r = t[n], a.datasetIndex !== r.datasetIndex ||
            a.index !== r.index) return !1;
            return !0;
        }

        function te (e) {
            if (q(e)) return e.map(te);
            if (U(e)) {
                const t = Object.create(null), n = Object.keys(e), i = n.length;
                let a = 0;
                for (; a < i; ++a) t[n[a]] = te(e[n[a]]);
                return t;
            }
            return e;
        }

        function ne (e) {
            return -1 === ['__proto__', 'prototype', 'constructor'].indexOf(e);
        }

        function ie (e, t, n, i) {
            if (!ne(e)) return;
            const a = t[e], r = n[e];
            U(a) && U(r) ? ae(a, r, i) : t[e] = te(r);
        }

        function ae (e, t, n) {
            const i = q(t) ? t : [t], a = i.length;
            if (!U(e)) return e;
            const r = (n = n || {}).merger || ie;
            for (let o = 0; o < a; ++o) {
                if (!U(t = i[o])) continue;
                const a = Object.keys(t);
                for (let i = 0, o = a.length; i < o; ++i) r(a[i], e, t, n);
            }
            return e;
        }

        function re (e, t) {return ae(e, t, { merger: oe });}

        function oe (e, t, n) {
            if (!ne(e)) return;
            const i = t[e], a = n[e];
            U(i) && U(a) ? re(i, a) : Object.prototype.hasOwnProperty.call(t,
                e) || (t[e] = te(a));
        }

        function se (e, t) {
            const n = e.indexOf('.', t);
            return -1 === n ? e.length : n;
        }

        function le (e, t) {
            if ('' === t) return e;
            let n = 0, i = se(t, n);
            for (; e && i > n;) e = e[t.substr(n, i - n)], n = i + 1, i = se(t,
                n);
            return e;
        }

        function ce (e) {return e.charAt(0).toUpperCase() + e.slice(1);}

        const ue = e => void 0 !== e, de = e => 'function' == typeof e,
            he = (e, t) => {
                if (e.size !== t.size) return !1;
                for (const n of e) if (!t.has(n)) return !1;
                return !0;
            }, fe = Object.create(null), pe = Object.create(null);

        function me (e, t) {
            if (!t) return e;
            const n = t.split('.');
            for (let t = 0, i = n.length; t < i; ++t) {
                const i = n[t];
                e = e[i] || (e[i] = Object.create(null));
            }
            return e;
        }

        function ge (e, t, n) {
            return 'string' == typeof t
                ? ae(me(e, t), n)
                : ae(me(e, ''), t);
        }

        var ve = new class {
            constructor (e) {
                this.animation = void 0, this.backgroundColor = 'rgba(0,0,0,0.1)', this.borderColor = 'rgba(0,0,0,0.1)', this.color = '#666', this.datasets = {}, this.devicePixelRatio = e => e.chart.platform.getDevicePixelRatio(), this.elements = {}, this.events = [
                    'mousemove',
                    'mouseout',
                    'click',
                    'touchstart',
                    'touchmove'], this.font = {
                    family: '\'Helvetica Neue\', \'Helvetica\', \'Arial\', sans-serif',
                    size: 12,
                    style: 'normal',
                    lineHeight: 1.2,
                    weight: null,
                }, this.hover = {}, this.hoverBackgroundColor = (e, t) => z(
                    t.backgroundColor), this.hoverBorderColor = (e, t) => z(
                    t.borderColor), this.hoverColor = (e, t) => z(
                    t.color), this.indexAxis = 'x', this.interaction = {
                    mode: 'nearest',
                    intersect: !0,
                }, this.maintainAspectRatio = !0, this.onHover = null, this.onClick = null, this.parsing = !0, this.plugins = {}, this.responsive = !0, this.scale = void 0, this.scales = {}, this.showLine = !0, this.describe(
                    e);
            }

            set (e, t) {return ge(this, e, t);}

            get (e) {return me(this, e);}

            describe (e, t) {return ge(pe, e, t);}

            override (e, t) {return ge(fe, e, t);}

            route (e, t, n, i) {
                const a = me(this, e), r = me(this, n), o = '_' + t;
                Object.defineProperties(a, {
                    [o]: { value: a[t], writable: !0 },
                    [t]: {
                        enumerable: !0, get () {
                            const e = this[o], t = r[i];
                            return U(e) ? Object.assign({}, t, e) : G(e, t);
                        }, set (e) {this[o] = e;},
                    },
                });
            }
        }({
            _scriptable: e => !e.startsWith('on'),
            _indexable: e => 'events' !== e,
            hover: { _fallback: 'interaction' },
            interaction: { _scriptable: !1, _indexable: !1 },
        });
        const ye = Math.PI, be = 2 * ye, xe = be + ye,
            _e = Number.POSITIVE_INFINITY, we = ye / 180, ke = ye / 2,
            Me = ye / 4, Le = 2 * ye / 3, Se = Math.log10, Te = Math.sign;

        function Ae (e) {
            const t = Math.pow(10, Math.floor(Se(e))), n = e / t;
            return (n <= 1 ? 1 : n <= 2 ? 2 : n <= 5 ? 5 : 10) * t;
        }

        function De (e) {
            const t = [], n = Math.sqrt(e);
            let i;
            for (i = 1; i < n; i++) e % i == 0 && (t.push(i), t.push(e / i));
            return n === (0 | n) && t.push(n), t.sort(((e, t) => e - t)).
                pop(), t;
        }

        function Ce (e) {return !isNaN(parseFloat(e)) && isFinite(e);}

        function Ee (e, t, n) {return Math.abs(e - t) < n;}

        function Oe (e, t) {
            const n = Math.round(e);
            return n - t <= e && n + t >= e;
        }

        function Ye (e, t, n) {
            let i, a, r;
            for (i = 0, a = e.length; i < a; i++) r = e[i][n], isNaN(r) ||
            (t.min = Math.min(t.min, r), t.max = Math.max(t.max, r));
        }

        function Pe (e) {return e * (ye / 180);}

        function Ie (e) {return e * (180 / ye);}

        function je (e) {
            if (!X(e)) return;
            let t = 1, n = 0;
            for (; Math.round(e * t) / t !== e;) t *= 10, n++;
            return n;
        }

        function Ne (e, t) {
            const n = t.x - e.x, i = t.y - e.y, a = Math.sqrt(n * n + i * i);
            let r = Math.atan2(i, n);
            return r < -.5 * ye && (r += be), { angle: r, distance: a };
        }

        function He (e, t) {
            return Math.sqrt(Math.pow(t.x - e.x, 2) + Math.pow(t.y - e.y, 2));
        }

        function Fe (e, t) {return (e - t + xe) % be - ye;}

        function Re (e) {return (e % be + be) % be;}

        function ze (e, t, n, i) {
            const a = Re(e), r = Re(t), o = Re(n), s = Re(r - a), l = Re(o - a),
                c = Re(a - r), u = Re(a - o);
            return a === r || a === o || i && r === o || s > l && c < u;
        }

        function Be (e, t, n) {return Math.max(t, Math.min(n, e));}

        function We (e) {return Be(e, -32768, 32767);}

        function Ve (e) {
            return !e || V(e.size) || V(e.family) ? null : (e.style
                ? e.style + ' '
                : '') + (e.weight ? e.weight + ' ' : '') + e.size + 'px ' +
                e.family;
        }

        function qe (e, t, n, i, a) {
            let r = t[a];
            return r || (r = t[a] = e.measureText(a).width, n.push(a)), r > i &&
            (i = r), i;
        }

        function Ue (e, t, n, i) {
            let a = (i = i || {}).data = i.data || {},
                r = i.garbageCollect = i.garbageCollect || [];
            i.font !== t &&
            (a = i.data = {}, r = i.garbageCollect = [], i.font = t), e.save(), e.font = t;
            let o = 0;
            const s = n.length;
            let l, c, u, d, h;
            for (l = 0; l < s; l++) if (d = n[l], null != d && !0 !==
            q(d)) o = qe(e, a, r, o, d); else if (q(
                d)) for (c = 0, u = d.length; c < u; c++) h = d[c], null == h ||
            q(h) || (o = qe(e, a, r, o, h));
            e.restore();
            const f = r.length / 2;
            if (f > n.length) {
                for (l = 0; l < f; l++) delete a[r[l]];
                r.splice(0, f);
            }
            return o;
        }

        function Xe (e, t, n) {
            const i = e.currentDevicePixelRatio,
                a = 0 !== n ? Math.max(n / 2, .5) : 0;
            return Math.round((t - a) * i) / i + a;
        }

        function $e (e, t) {
            (t = t ||
                e.getContext('2d')).save(), t.resetTransform(), t.clearRect(0,
                0, e.width, e.height), t.restore();
        }

        function Ge (e, t, n, i) {
            let a, r, o, s, l;
            const c = t.pointStyle, u = t.rotation, d = t.radius;
            let h = (u || 0) * we;
            if (c && 'object' == typeof c &&
                (a = c.toString(), '[object HTMLImageElement]' === a ||
                '[object HTMLCanvasElement]' ===
                a)) return e.save(), e.translate(n, i), e.rotate(
                h), e.drawImage(c, -c.width / 2, -c.height / 2, c.width,
                c.height), void e.restore();
            if (!(isNaN(d) || d <= 0)) {
                switch (e.beginPath(), c) {
                    default:
                        e.arc(n, i, d, 0, be), e.closePath();
                        break;
                    case'triangle':
                        e.moveTo(n + Math.sin(h) * d,
                            i - Math.cos(h) * d), h += Le, e.lineTo(
                            n + Math.sin(h) * d,
                            i - Math.cos(h) * d), h += Le, e.lineTo(
                            n + Math.sin(h) * d,
                            i - Math.cos(h) * d), e.closePath();
                        break;
                    case'rectRounded':
                        l = .516 * d, s = d - l, r = Math.cos(h + Me) *
                            s, o = Math.sin(h + Me) * s, e.arc(n - r, i - o, l,
                            h - ye, h - ke), e.arc(n + o, i - r, l, h - ke,
                            h), e.arc(n + r, i + o, l, h, h + ke), e.arc(n - o,
                            i + r, l, h + ke, h + ye), e.closePath();
                        break;
                    case'rect':
                        if (!u) {
                            s = Math.SQRT1_2 * d, e.rect(n - s, i - s, 2 * s,
                                2 * s);
                            break;
                        }
                        h += Me;
                    case'rectRot':
                        r = Math.cos(h) * d, o = Math.sin(h) * d, e.moveTo(
                            n - r, i - o), e.lineTo(n + o, i - r), e.lineTo(
                            n + r, i + o), e.lineTo(n - o,
                            i + r), e.closePath();
                        break;
                    case'crossRot':
                        h += Me;
                    case'cross':
                        r = Math.cos(h) * d, o = Math.sin(h) * d, e.moveTo(
                            n - r, i - o), e.lineTo(n + r, i + o), e.moveTo(
                            n + o, i - r), e.lineTo(n - o, i + r);
                        break;
                    case'star':
                        r = Math.cos(h) * d, o = Math.sin(h) * d, e.moveTo(
                            n - r, i - o), e.lineTo(n + r, i + o), e.moveTo(
                            n + o, i - r), e.lineTo(n - o,
                            i + r), h += Me, r = Math.cos(h) * d, o = Math.sin(
                            h) * d, e.moveTo(n - r, i - o), e.lineTo(n + r,
                            i + o), e.moveTo(n + o, i - r), e.lineTo(n - o,
                            i + r);
                        break;
                    case'line':
                        r = Math.cos(h) * d, o = Math.sin(h) * d, e.moveTo(
                            n - r, i - o), e.lineTo(n + r, i + o);
                        break;
                    case'dash':
                        e.moveTo(n, i), e.lineTo(n + Math.cos(h) * d,
                            i + Math.sin(h) * d);
                }
                e.fill(), t.borderWidth > 0 && e.stroke();
            }
        }

        function Ze (e, t, n) {
            return n = n || .5, e && e.x > t.left - n && e.x < t.right + n &&
            e.y > t.top - n && e.y < t.bottom + n;
        }

        function Ke (e, t) {
            e.save(), e.beginPath(), e.rect(t.left, t.top, t.right - t.left,
                t.bottom - t.top), e.clip();
        }

        function Je (e) {e.restore();}

        function Qe (e, t, n, i, a) {
            if (!t) return e.lineTo(n.x, n.y);
            if ('middle' === a) {
                const i = (t.x + n.x) / 2;
                e.lineTo(i, t.y), e.lineTo(i, n.y);
            } else 'after' === a != !!i ? e.lineTo(t.x, n.y) : e.lineTo(n.x,
                t.y);
            e.lineTo(n.x, n.y);
        }

        function et (e, t, n, i) {
            if (!t) return e.lineTo(n.x, n.y);
            e.bezierCurveTo(i ? t.cp1x : t.cp2x, i ? t.cp1y : t.cp2y,
                i ? n.cp2x : n.cp1x, i ? n.cp2y : n.cp1y, n.x, n.y);
        }

        function tt (e, t, n, i, a, r = {}) {
            const o = q(t) ? t : [t],
                s = r.strokeWidth > 0 && '' !== r.strokeColor;
            let l, c;
            for (e.save(), r.translation &&
            e.translate(r.translation[0], r.translation[1]), V(r.rotation) ||
            e.rotate(r.rotation), e.font = a.string, r.color &&
            (e.fillStyle = r.color), r.textAlign &&
            (e.textAlign = r.textAlign), r.textBaseline &&
            (e.textBaseline = r.textBaseline), l = 0; l < o.length; ++l) {
                if (c = o[l], s &&
                (r.strokeColor && (e.strokeStyle = r.strokeColor), V(
                    r.strokeWidth) ||
                (e.lineWidth = r.strokeWidth), e.strokeText(c, n, i,
                    r.maxWidth)), e.fillText(c, n, i,
                    r.maxWidth), r.strikethrough || r.underline) {
                    const t = e.measureText(c), a = n - t.actualBoundingBoxLeft,
                        o = n + t.actualBoundingBoxRight,
                        s = i - t.actualBoundingBoxAscent,
                        l = i + t.actualBoundingBoxDescent,
                        u = r.strikethrough ? (s + l) / 2 : l;
                    e.strokeStyle = e.fillStyle, e.beginPath(), e.lineWidth = r.decorationWidth ||
                        2, e.moveTo(a, u), e.lineTo(o, u), e.stroke();
                }
                i += a.lineHeight;
            }
            e.restore();
        }

        function nt (e, t) {
            const { x: n, y: i, w: a, h: r, radius: o } = t;
            e.arc(n + o.topLeft, i + o.topLeft, o.topLeft, -ke, ye,
                !0), e.lineTo(n, i + r - o.bottomLeft), e.arc(n + o.bottomLeft,
                i + r - o.bottomLeft, o.bottomLeft, ye, ke, !0), e.lineTo(
                n + a - o.bottomRight, i + r), e.arc(n + a - o.bottomRight,
                i + r - o.bottomRight, o.bottomRight, ke, 0, !0), e.lineTo(
                n + a, i + o.topRight), e.arc(n + a - o.topRight,
                i + o.topRight, o.topRight, 0, -ke, !0), e.lineTo(n + o.topLeft,
                i);
        }

        function it (e, t, n) {
            n = n || (n => e[n] < t);
            let i, a = e.length - 1, r = 0;
            for (; a - r > 1;) i = r + a >> 1, n(i) ? r = i : a = i;
            return { lo: r, hi: a };
        }

        const at = (e, t, n) => it(e, n, (i => e[i][t] < n)),
            rt = (e, t, n) => it(e, n, (i => e[i][t] >= n));

        function ot (e, t, n) {
            let i = 0, a = e.length;
            for (; i < a && e[i] < t;) i++;
            for (; a > i && e[a - 1] > n;) a--;
            return i > 0 || a < e.length ? e.slice(i, a) : e;
        }

        const st = ['push', 'pop', 'shift', 'splice', 'unshift'];

        function lt (e, t) {
            e._chartjs
                ? e._chartjs.listeners.push(t)
                : (Object.defineProperty(e, '_chartjs', {
                    configurable: !0,
                    enumerable: !1,
                    value: { listeners: [t] },
                }), st.forEach((t => {
                    const n = '_onData' + ce(t), i = e[t];
                    Object.defineProperty(e, t, {
                        configurable: !0,
                        enumerable: !1,
                        value (...t) {
                            const a = i.apply(this, t);
                            return e._chartjs.listeners.forEach(
                                (e => {
                                    'function' == typeof e[n] && e[n](...t);
                                })), a;
                        },
                    });
                })));
        }

        function ct (e, t) {
            const n = e._chartjs;
            if (!n) return;
            const i = n.listeners, a = i.indexOf(t);
            -1 !== a && i.splice(a, 1), i.length > 0 ||
            (st.forEach((t => {delete e[t];})), delete e._chartjs);
        }

        function ut (e) {
            const t = new Set;
            let n, i;
            for (n = 0, i = e.length; n < i; ++n) t.add(e[n]);
            if (t.size === i) return e;
            const a = [];
            return t.forEach((e => {a.push(e);})), a;
        }

        function dt (e) {
            let t = e.parentNode;
            return t && '[object ShadowRoot]' === t.toString() &&
            (t = t.host), t;
        }

        function ht (e, t, n) {
            let i;
            return 'string' == typeof e ? (i = parseInt(e, 10), -1 !==
            e.indexOf('%') && (i = i / 100 * t.parentNode[n])) : i = e, i;
        }

        const ft = e => window.getComputedStyle(e, null);

        function pt (e, t) {return ft(e).getPropertyValue(t);}

        const mt = ['top', 'right', 'bottom', 'left'];

        function gt (e, t, n) {
            const i = {};
            n = n ? '-' + n : '';
            for (let a = 0; a < 4; a++) {
                const r = mt[a];
                i[r] = parseFloat(e[t + '-' + r + n]) || 0;
            }
            return i.width = i.left + i.right, i.height = i.top + i.bottom, i;
        }

        function vt (e, t) {
            const { canvas: n, currentDevicePixelRatio: i } = t, a = ft(n),
                r = 'border-box' === a.boxSizing, o = gt(a, 'padding'),
                s = gt(a, 'border', 'width'), {
                    x: l,
                    y: c,
                    box: u,
                } = function (
                e, t) {
                    const n = e.native || e, i = n.touches,
                        a = i && i.length ? i[0] : n, {
                            offsetX: r,
                            offsetY: o,
                        } = a;
                    let s, l, c = !1;
                    if (((e, t, n) => (e > 0 || t > 0) && (!n || !n.shadowRoot))(r,
                        o, n.target)) s = r, l = o; else {
                        const e = t.getBoundingClientRect();
                        s = a.clientX - e.left, l = a.clientY - e.top, c = !0;
                    }
                    return { x: s, y: l, box: c };
                }(e, n), d = o.left + (u && s.left), h = o.top + (u && s.top);
            let { width: f, height: p } = t;
            return r && (f -= o.width + s.width, p -= o.height + s.height), {
                x: Math.round((l - d) / f * n.width / i),
                y: Math.round((c - h) / p * n.height / i),
            };
        }

        const yt = e => Math.round(10 * e) / 10;

        function bt (e, t, n, i) {
            const a = ft(e), r = gt(a, 'margin'),
                o = ht(a.maxWidth, e, 'clientWidth') || _e,
                s = ht(a.maxHeight, e, 'clientHeight') || _e,
                l = function (e, t, n) {
                    let i, a;
                    if (void 0 === t || void 0 === n) {
                        const r = dt(e);
                        if (r) {
                            const e = r.getBoundingClientRect(), o = ft(r),
                                s = gt(o, 'border', 'width'),
                                l = gt(o, 'padding');
                            t = e.width - l.width - s.width, n = e.height -
                                l.height - s.height, i = ht(o.maxWidth, r,
                                'clientWidth'), a = ht(o.maxHeight, r,
                                'clientHeight');
                        } else t = e.clientWidth, n = e.clientHeight;
                    }
                    return {
                        width: t,
                        height: n,
                        maxWidth: i || _e,
                        maxHeight: a || _e,
                    };
                }(e, t, n);
            let { width: c, height: u } = l;
            if ('content-box' === a.boxSizing) {
                const e = gt(a, 'border', 'width'), t = gt(a, 'padding');
                c -= t.width + e.width, u -= t.height + e.height;
            }
            return c = Math.max(0, c - r.width), u = Math.max(0,
                i ? Math.floor(c / i) : u - r.height), c = yt(
                Math.min(c, o, l.maxWidth)), u = yt(
                Math.min(u, s, l.maxHeight)), c && !u &&
            (u = yt(c / 2)), { width: c, height: u };
        }

        function xt (e, t, n) {
            const i = t || 1, a = Math.floor(e.height * i),
                r = Math.floor(e.width * i);
            e.height = a / i, e.width = r / i;
            const o = e.canvas;
            return o.style && (n || !o.style.height && !o.style.width) &&
            (o.style.height = `${e.height}px`, o.style.width = `${e.width}px`), (e.currentDevicePixelRatio !==
                i || o.height !== a || o.width !== r) &&
            (e.currentDevicePixelRatio = i, o.height = a, o.width = r, e.ctx.setTransform(
                i, 0, 0, i, 0, 0), !0);
        }

        const _t = function () {
            let e = !1;
            try {
                const t = { get passive () {return e = !0, !1;} };
                window.addEventListener('test', null,
                    t), window.removeEventListener('test', null, t);
            } catch (e) {}
            return e;
        }();

        function wt (e, t) {
            const n = pt(e, t), i = n && n.match(/^(\d+)(\.\d+)?px$/);
            return i ? +i[1] : void 0;
        }

        function kt (e, t) {
            return 'native' in e ? { x: e.x, y: e.y } : vt(e, t);
        }

        function Mt (e, t, n, i) {
            const {
                controller: a,
                data: r,
                _sorted: o,
            } = e, s = a._cachedMeta.iScale;
            if (s && t === s.axis && o && r.length) {
                const e = s._reversePixels
                    ? rt
                    : at;
                if (!i) return e(r, t, n);
                if (a._sharedOptions) {
                    const i = r[0],
                        a = 'function' == typeof i.getRange && i.getRange(t);
                    if (a) {
                        const i = e(r, t, n - a), o = e(r, t, n + a);
                        return { lo: i.lo, hi: o.hi };
                    }
                }
            }
            return { lo: 0, hi: r.length - 1 };
        }

        function Lt (e, t, n, i, a) {
            const r = e.getSortedVisibleDatasetMetas(), o = n[t];
            for (let e = 0, n = r.length; e < n; ++e) {
                const {
                    index: n,
                    data: s,
                } = r[e], { lo: l, hi: c } = Mt(r[e], t, o, a);
                for (let e = l; e <= c; ++e) {
                    const t = s[e];
                    t.skip || i(t, n, e);
                }
            }
        }

        function St (e, t, n, i) {
            const a = [];
            if (!Ze(t, e.chartArea, e._minPadding)) return a;
            return Lt(e, n, t, (function (e, n, r) {
                e.inRange(t.x, t.y, i) &&
                a.push({ element: e, datasetIndex: n, index: r });
            }), !0), a;
        }

        function Tt (e, t, n, i, a) {
            const r = function (e) {
                const t = -1 !== e.indexOf('x'), n = -1 !== e.indexOf('y');
                return function (e, i) {
                    const a = t ? Math.abs(e.x - i.x) : 0,
                        r = n ? Math.abs(e.y - i.y) : 0;
                    return Math.sqrt(Math.pow(a, 2) + Math.pow(r, 2));
                };
            }(n);
            let o = Number.POSITIVE_INFINITY, s = [];
            if (!Ze(t, e.chartArea, e._minPadding)) return s;
            return Lt(e, n, t, (function (n, l, c) {
                if (i && !n.inRange(t.x, t.y, a)) return;
                const u = n.getCenterPoint(a);
                if (!Ze(u, e.chartArea, e._minPadding)) return;
                const d = r(t, u);
                d < o ? (s = [
                    {
                        element: n,
                        datasetIndex: l,
                        index: c,
                    }], o = d) : d === o &&
                    s.push({ element: n, datasetIndex: l, index: c });
            })), s;
        }

        function At (e, t, n, i) {
            const a = kt(t, e), r = [], o = n.axis,
                s = 'x' === o ? 'inXRange' : 'inYRange';
            let l = !1;
            return function (e, t) {
                const n = e.getSortedVisibleDatasetMetas();
                let i, a, r;
                for (let e = 0, o = n.length; e < o; ++e) {
                    ({
                        index: i,
                        data: a,
                    } = n[e]);
                    for (let e = 0, n = a.length; e <
                    n; ++e) r = a[e], r.skip || t(r, i, e);
                }
            }(e, ((e, t, n) => {
                e[s](a[o], i) &&
                r.push({ element: e, datasetIndex: t, index: n }), e.inRange(
                    a.x, a.y, i) && (l = !0);
            })), n.intersect && !l ? [] : r;
        }

        var Dt = {
            modes: {
                index (e, t, n, i) {
                    const a = kt(t, e), r = n.axis || 'x',
                        o = n.intersect ? St(e, a, r, i) : Tt(e, a, r, !1, i),
                        s = [];
                    return o.length ? (e.getSortedVisibleDatasetMetas().
                        forEach((e => {
                            const t = o[0].index, n = e.data[t];
                            n && !n.skip && s.push(
                                {
                                    element: n,
                                    datasetIndex: e.index,
                                    index: t,
                                });
                        })), s) : [];
                },
                dataset (e, t, n, i) {
                    const a = kt(t, e), r = n.axis || 'xy';
                    let o = n.intersect ? St(e, a, r, i) : Tt(e, a, r, !1, i);
                    if (o.length > 0) {
                        const t = o[0].datasetIndex,
                            n = e.getDatasetMeta(t).data;
                        o = [];
                        for (let e = 0; e < n.length; ++e) o.push(
                            { element: n[e], datasetIndex: t, index: e });
                    }
                    return o;
                },
                point: (e, t, n, i) => St(e, kt(t, e), n.axis || 'xy', i),
                nearest: (e, t, n, i) => Tt(e, kt(t, e), n.axis || 'xy',
                    n.intersect, i),
                x: (e, t, n, i) => (n.axis = 'x', At(e, t, n, i)),
                y: (e, t, n, i) => (n.axis = 'y', At(e, t, n, i)),
            },
        };
        const Ct = new RegExp(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/),
            Et = new RegExp(
                /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);

        function Ot (e, t) {
            const n = ('' + e).match(Ct);
            if (!n || 'normal' === n[1]) return 1.2 * t;
            switch (e = +n[2], n[3]) {
                case'px':
                    return e;
                case'%':
                    e /= 100;
            }
            return t * e;
        }

        function Yt (e, t) {
            const n = {}, i = U(t), a = i ? Object.keys(t) : t,
                r = U(e) ? i ? n => G(e[n], e[t[n]]) : t => e[t] : () => e;
            for (const e of a) n[e] = +r(e) || 0;
            return n;
        }

        function Pt (e) {
            return Yt(e, { top: 'y', right: 'x', bottom: 'y', left: 'x' });
        }

        function It (e) {
            return Yt(e, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);
        }

        function jt (e) {
            const t = Pt(e);
            return t.width = t.left + t.right, t.height = t.top + t.bottom, t;
        }

        function Nt (e, t) {
            e = e || {}, t = t || ve.font;
            let n = G(e.size, t.size);
            'string' == typeof n && (n = parseInt(n, 10));
            let i = G(e.style, t.style);
            i && !('' + i).match(Et) &&
            (console.warn('Invalid font style specified: "' + i + '"'), i = '');
            const a = {
                family: G(e.family, t.family),
                lineHeight: Ot(G(e.lineHeight, t.lineHeight), n),
                size: n,
                style: i,
                weight: G(e.weight, t.weight),
                string: '',
            };
            return a.string = Ve(a), a;
        }

        function Ht (e, t, n, i) {
            let a, r, o, s = !0;
            for (a = 0, r = e.length; a < r; ++a) if (o = e[a], void 0 !== o &&
            (void 0 !== t && 'function' == typeof o &&
            (o = o(t), s = !1), void 0 !== n && q(o) &&
            (o = o[n % o.length], s = !1), void 0 !== o)) return i && !s &&
            (i.cacheable = !1), o;
        }

        function Ft (e, t) {
            const { min: n, max: i } = e;
            return { min: n - Math.abs(K(t, n)), max: i + K(t, i) };
        }

        const Rt = ['left', 'top', 'right', 'bottom'];

        function zt (e, t) {return e.filter((e => e.pos === t));}

        function Bt (e, t) {
            return e.filter(
                (e => -1 === Rt.indexOf(e.pos) && e.box.axis === t));
        }

        function Wt (e, t) {
            return e.sort(((e, n) => {
                const i = t ? n : e, a = t ? e : n;
                return i.weight === a.weight ? i.index - a.index : i.weight -
                    a.weight;
            }));
        }

        function Vt (e, t, n, i) {
            return Math.max(e[n], t[n]) + Math.max(e[i], t[i]);
        }

        function qt (e, t) {
            e.top = Math.max(e.top, t.top), e.left = Math.max(e.left,
                t.left), e.bottom = Math.max(e.bottom,
                t.bottom), e.right = Math.max(e.right, t.right);
        }

        function Ut (e, t, n) {
            const i = n.box, a = e.maxPadding;
            U(n.pos) || (n.size && (e[n.pos] -= n.size), n.size = n.horizontal
                ? i.height
                : i.width, e[n.pos] += n.size), i.getPadding &&
            qt(a, i.getPadding());
            const r = Math.max(0, t.outerWidth - Vt(a, e, 'left', 'right')),
                o = Math.max(0, t.outerHeight - Vt(a, e, 'top', 'bottom')),
                s = r !== e.w, l = o !== e.h;
            return e.w = r, e.h = o, n.horizontal
                ? { same: s, other: l }
                : { same: l, other: s };
        }

        function Xt (e, t) {
            const n = t.maxPadding;

            function i (e) {
                const i = { left: 0, top: 0, right: 0, bottom: 0 };
                return e.forEach((e => {i[e] = Math.max(t[e], n[e]);})), i;
            }

            return i(e ? ['left', 'right'] : ['top', 'bottom']);
        }

        function $t (e, t, n) {
            const i = [];
            let a, r, o, s, l, c;
            for (a = 0, r = e.length, l = 0; a < r; ++a) {
                o = e[a], s = o.box, s.update(o.width || t.w, o.height || t.h,
                    Xt(o.horizontal, t));
                const { same: r, other: u } = Ut(t, n, o);
                l |= r && i.length, c = c || u, s.fullSize || i.push(o);
            }
            return l && $t(i, t, n) || c;
        }

        function Gt (e, t, n) {
            const i = n.padding;
            let a, r, o, s, l = t.x, c = t.y;
            for (a = 0, r = e.length; a <
            r; ++a) o = e[a], s = o.box, o.horizontal
                ? (s.left = s.fullSize
                    ? i.left
                    : t.left, s.right = s.fullSize
                    ? n.outerWidth - i.right
                    : t.left + t.w, s.top = c, s.bottom = c +
                    s.height, s.width = s.right - s.left, c = s.bottom)
                : (s.left = l, s.right = l + s.width, s.top = s.fullSize
                    ? i.top
                    : t.top, s.bottom = s.fullSize
                    ? n.outerHeight - i.right
                    : t.top + t.h, s.height = s.bottom - s.top, l = s.right);
            t.x = l, t.y = c;
        }

        ve.set('layout', { padding: { top: 0, right: 0, bottom: 0, left: 0 } });
        var Zt = {
            addBox (e, t) {
                e.boxes || (e.boxes = []), t.fullSize = t.fullSize ||
                    !1, t.position = t.position || 'top', t.weight = t.weight ||
                    0, t._layers = t._layers || function () {
                    return [
                        {
                            z: 0,
                            draw (e) {t.draw(e);},
                        }];
                }, e.boxes.push(t);
            },
            removeBox (e, t) {
                const n = e.boxes ? e.boxes.indexOf(t) : -1;
                -1 !== n && e.boxes.splice(n, 1);
            },
            configure (e, t,
                       n) {t.fullSize = n.fullSize, t.position = n.position, t.weight = n.weight;},
            update (e, t, n, i) {
                if (!e) return;
                const a = jt(e.options.layout.padding),
                    r = Math.max(t - a.width, 0), o = Math.max(n - a.height, 0),
                    s = function (e) {
                        const t = function (e) {
                                const t = [];
                                let n, i, a;
                                for (n = 0, i = (e || []).length; n <
                                i; ++n) a = e[n], t.push({
                                    index: n,
                                    box: a,
                                    pos: a.position,
                                    horizontal: a.isHorizontal(),
                                    weight: a.weight,
                                });
                                return t;
                            }(e), n = Wt(t.filter((e => e.box.fullSize)), !0),
                            i = Wt(zt(t, 'left'), !0), a = Wt(zt(t, 'right')),
                            r = Wt(zt(t, 'top'), !0), o = Wt(zt(t, 'bottom')),
                            s = Bt(t, 'x'), l = Bt(t, 'y');
                        return {
                            fullSize: n,
                            leftAndTop: i.concat(r),
                            rightAndBottom: a.concat(l).concat(o).concat(s),
                            chartArea: zt(t, 'chartArea'),
                            vertical: i.concat(a).concat(l),
                            horizontal: r.concat(o).concat(s),
                        };
                    }(e.boxes), l = s.vertical, c = s.horizontal;
                Q(e.boxes, (e => {
                    'function' == typeof e.beforeLayout && e.beforeLayout();
                }));
                const u = l.reduce(
                    ((e, t) => t.box.options && !1 === t.box.options.display
                        ? e
                        : e + 1), 0) || 1, d = Object.freeze({
                    outerWidth: t,
                    outerHeight: n,
                    padding: a,
                    availableWidth: r,
                    availableHeight: o,
                    vBoxMaxWidth: r / 2 / u,
                    hBoxMaxHeight: o / 2,
                }), h = Object.assign({}, a);
                qt(h, jt(i));
                const f = Object.assign(
                    { maxPadding: h, w: r, h: o, x: a.left, y: a.top }, a);
                !function (e, t) {
                    let n, i, a;
                    for (n = 0, i = e.length; n < i; ++n) a = e[n], a.horizontal
                        ? (a.width = a.box.fullSize &&
                            t.availableWidth, a.height = t.hBoxMaxHeight)
                        : (a.width = t.vBoxMaxWidth, a.height = a.box.fullSize &&
                            t.availableHeight);
                }(l.concat(c), d), $t(s.fullSize, f, d), $t(l, f, d), $t(c, f,
                    d) && $t(l, f, d), function (e) {
                    const t = e.maxPadding;

                    function n (n) {
                        const i = Math.max(t[n] - e[n], 0);
                        return e[n] += i, i;
                    }

                    e.y += n('top'), e.x += n('left'), n('right'), n('bottom');
                }(f), Gt(s.leftAndTop, f, d), f.x += f.w, f.y += f.h, Gt(
                    s.rightAndBottom, f, d), e.chartArea = {
                    left: f.left,
                    top: f.top,
                    right: f.left + f.w,
                    bottom: f.top + f.h,
                    height: f.h,
                    width: f.w,
                }, Q(s.chartArea, (t => {
                    const n = t.box;
                    Object.assign(n, e.chartArea), n.update(f.w, f.h);
                }));
            },
        };

        class Kt {
            acquireContext (e, t) {}

            releaseContext (e) {return !1;}

            addEventListener (e, t, n) {}

            removeEventListener (e, t, n) {}

            getDevicePixelRatio () {return 1;}

            getMaximumSize (e, t, n, i) {
                return t = Math.max(0, t || e.width), n = n || e.height, {
                    width: t,
                    height: Math.max(0, i ? Math.floor(t / i) : n),
                };
            }

            isAttached (e) {return !0;}
        }

        class Jt extends Kt {
            acquireContext (e) {
                return e && e.getContext && e.getContext('2d') || null;
            }
        }

        const Qt = {
            touchstart: 'mousedown',
            touchmove: 'mousemove',
            touchend: 'mouseup',
            pointerenter: 'mouseenter',
            pointerdown: 'mousedown',
            pointermove: 'mousemove',
            pointerup: 'mouseup',
            pointerleave: 'mouseout',
            pointerout: 'mouseout',
        }, en = e => null === e || '' === e;
        const tn = !!_t && { passive: !0 };

        function nn (e, t, n) {e.canvas.removeEventListener(t, n, tn);}

        function an (e, t, n) {
            const i = e.canvas, a = i && dt(i) || i,
                r = new MutationObserver((e => {
                    const t = dt(a);
                    e.forEach((e => {
                        for (let i = 0; i < e.addedNodes.length; i++) {
                            const r = e.addedNodes[i];
                            r !== a && r !== t || n(e.target);
                        }
                    }));
                }));
            return r.observe(document, { childList: !0, subtree: !0 }), r;
        }

        function rn (e, t, n) {
            const i = e.canvas, a = i && dt(i);
            if (!a) return;
            const r = new MutationObserver((e => {
                e.forEach((e => {
                    for (let t = 0; t <
                    e.removedNodes.length; t++) if (e.removedNodes[t] === i) {
                        n();
                        break;
                    }
                }));
            }));
            return r.observe(a, { childList: !0 }), r;
        }

        const on = new Map;
        let sn = 0;

        function ln () {
            const e = window.devicePixelRatio;
            e !== sn && (sn = e, on.forEach(
                ((t, n) => {n.currentDevicePixelRatio !== e && t();})));
        }

        function cn (e, n, i) {
            const a = e.canvas, r = a && dt(a);
            if (!r) return;
            const o = t(((e, t) => {
                const n = r.clientWidth;
                i(e, t), n < r.clientWidth && i();
            }), window), s = new ResizeObserver((e => {
                const t = e[0], n = t.contentRect.width,
                    i = t.contentRect.height;
                0 === n && 0 === i || o(n, i);
            }));
            return s.observe(r), function (e, t) {
                on.size || window.addEventListener('resize', ln), on.set(e, t);
            }(e, o), s;
        }

        function un (e, t, n) {
            n && n.disconnect(), 'resize' === t && function (e) {
                on.delete(e), on.size ||
                window.removeEventListener('resize', ln);
            }(e);
        }

        function dn (e, n, i) {
            const a = e.canvas, r = t((t => {
                null !== e.ctx && i(function (e, t) {
                    const n = Qt[e.type] || e.type, {
                        x: i,
                        y: a,
                    } = vt(e, t);
                    return {
                        type: n,
                        chart: t,
                        native: e,
                        x: void 0 !== i ? i : null,
                        y: void 0 !== a ? a : null,
                    };
                }(t, e));
            }), e, (e => {
                const t = e[0];
                return [t, t.offsetX, t.offsetY];
            }));
            return function (e, t, n) {e.addEventListener(t, n, tn);}(a, n,
                r), r;
        }

        class hn extends Kt {
            acquireContext (e, t) {
                const n = e && e.getContext && e.getContext('2d');
                return n && n.canvas === e ? (function (
                    e, t) {
                    const n = e.style, i = e.getAttribute('height'),
                        a = e.getAttribute('width');
                    if (e.$chartjs = {
                        initial: {
                            height: i,
                            width: a,
                            style: {
                                display: n.display,
                                height: n.height,
                                width: n.width,
                            },
                        },
                    }, n.display = n.display ||
                        'block', n.boxSizing = n.boxSizing || 'border-box', en(
                        a)) {
                        const t = wt(e, 'width');
                        void 0 !== t && (e.width = t);
                    }
                    if (en(i)) if ('' === e.style.height) e.height = e.width /
                        (t || 2); else {
                        const t = wt(e, 'height');
                        void 0 !== t && (e.height = t);
                    }
                }(e, t), n) : null;
            }

            releaseContext (e) {
                const t = e.canvas;
                if (!t.$chartjs) return !1;
                const n = t.$chartjs.initial;
                ['height', 'width'].forEach((e => {
                    const i = n[e];
                    V(i) ? t.removeAttribute(e) : t.setAttribute(e, i);
                }));
                const i = n.style || {};
                return Object.keys(i).
                    forEach(
                        (e => {t.style[e] = i[e];})), t.width = t.width, delete t.$chartjs, !0;
            }

            addEventListener (e, t, n) {
                this.removeEventListener(e, t);
                const i = e.$proxies || (e.$proxies = {}),
                    a = { attach: an, detach: rn, resize: cn }[t] || dn;
                i[t] = a(e, t, n);
            }

            removeEventListener (e, t) {
                const n = e.$proxies || (e.$proxies = {}), i = n[t];
                if (!i) return;
                ({ attach: un, detach: un, resize: un }[t] || nn)(e, t,
                    i), n[t] = void 0;
            }

            getDevicePixelRatio () {return window.devicePixelRatio;}

            getMaximumSize (e, t, n, i) {return bt(e, t, n, i);}

            isAttached (e) {
                const t = dt(e);
                return !(!t || !dt(t));
            }
        }

        var fn = Object.freeze({
            __proto__: null,
            BasePlatform: Kt,
            BasicPlatform: Jt,
            DomPlatform: hn,
        });
        const pn = e => 0 === e || 1 === e,
            mn = (e, t, n) => -Math.pow(2, 10 * (e -= 1)) *
                Math.sin((e - t) * be / n),
            gn = (e, t, n) => Math.pow(2, -10 * e) *
                Math.sin((e - t) * be / n) + 1, vn = {
                linear: e => e,
                easeInQuad: e => e * e,
                easeOutQuad: e => -e * (e - 2),
                easeInOutQuad: e => (e /= .5) < 1 ? .5 * e * e : -.5 *
                    (--e * (e - 2) - 1),
                easeInCubic: e => e * e * e,
                easeOutCubic: e => (e -= 1) * e * e + 1,
                easeInOutCubic: e => (e /= .5) < 1 ? .5 * e * e * e : .5 *
                    ((e -= 2) * e * e + 2),
                easeInQuart: e => e * e * e * e,
                easeOutQuart: e => -((e -= 1) * e * e * e - 1),
                easeInOutQuart: e => (e /= .5) < 1 ? .5 * e * e * e * e : -.5 *
                    ((e -= 2) * e * e * e - 2),
                easeInQuint: e => e * e * e * e * e,
                easeOutQuint: e => (e -= 1) * e * e * e * e + 1,
                easeInOutQuint: e => (e /= .5) < 1 ? .5 * e * e * e * e * e : .5 *
                    ((e -= 2) * e * e * e * e + 2),
                easeInSine: e => 1 - Math.cos(e * ke),
                easeOutSine: e => Math.sin(e * ke),
                easeInOutSine: e => -.5 * (Math.cos(ye * e) - 1),
                easeInExpo: e => 0 === e ? 0 : Math.pow(2, 10 * (e - 1)),
                easeOutExpo: e => 1 === e ? 1 : 1 - Math.pow(2, -10 * e),
                easeInOutExpo: e => pn(e) ? e : e < .5 ? .5 *
                    Math.pow(2, 10 * (2 * e - 1)) : .5 *
                    (2 - Math.pow(2, -10 * (2 * e - 1))),
                easeInCirc: e => e >= 1 ? e : -(Math.sqrt(1 - e * e) - 1),
                easeOutCirc: e => Math.sqrt(1 - (e -= 1) * e),
                easeInOutCirc: e => (e /= .5) < 1
                    ? -.5 * (Math.sqrt(1 - e * e) - 1)
                    : .5 * (Math.sqrt(1 - (e -= 2) * e) + 1),
                easeInElastic: e => pn(e) ? e : mn(e, .075, .3),
                easeOutElastic: e => pn(e) ? e : gn(e, .075, .3),
                easeInOutElastic (e) {
                    const t = .1125;
                    return pn(e) ? e : e < .5 ? .5 * mn(2 * e, t, .45) : .5 + .5 *
                        gn(2 * e - 1, t, .45);
                },
                easeInBack (e) {
                    const t = 1.70158;
                    return e * e * ((t + 1) * e - t);
                },
                easeOutBack (e) {
                    const t = 1.70158;
                    return (e -= 1) * e * ((t + 1) * e + t) + 1;
                },
                easeInOutBack (e) {
                    let t = 1.70158;
                    return (e /= .5) < 1
                        ? e * e * ((1 + (t *= 1.525)) * e - t) * .5
                        : .5 * ((e -= 2) * e * ((1 + (t *= 1.525)) * e + t) + 2);
                },
                easeInBounce: e => 1 - vn.easeOutBounce(1 - e),
                easeOutBounce (e) {
                    const t = 7.5625, n = 2.75;
                    return e < 1 / n ? t * e * e : e < 2 / n ? t * (e -= 1.5 / n) *
                        e + .75 : e < 2.5 / n
                        ? t * (e -= 2.25 / n) * e + .9375
                        : t * (e -= 2.625 / n) * e + .984375;
                },
                easeInOutBounce: e => e < .5 ? .5 * vn.easeInBounce(2 * e) : .5 *
                    vn.easeOutBounce(2 * e - 1) + .5,
            }, yn = 'transparent', bn = {
                boolean: (e, t, n) => n > .5 ? t : e,
                color (e, t, n) {
                    const i = R(e || yn), a = i.valid && R(t || yn);
                    return a && a.valid ? a.mix(i, n).hexString() : t;
                },
                number: (e, t, n) => e + (t - e) * n,
            };

        class xn {
            constructor (e, t, n, i) {
                const a = t[n];
                i = Ht([e.to, i, a, e.from]);
                const r = Ht([e.from, a, i]);
                this._active = !0, this._fn = e.fn ||
                    bn[e.type || typeof r], this._easing = vn[e.easing] ||
                    vn.linear, this._start = Math.floor(Date.now() +
                    (e.delay || 0)), this._duration = this._total = Math.floor(
                    e.duration), this._loop = !!e.loop, this._target = t, this._prop = n, this._from = r, this._to = i, this._promises = void 0;
            }

            active () {return this._active;}

            update (e, t, n) {
                const i = this;
                if (i._active) {
                    i._notify(!1);
                    const a = i._target[i._prop], r = n - i._start,
                        o = i._duration - r;
                    i._start = n, i._duration = Math.floor(Math.max(o,
                        e.duration)), i._total += r, i._loop = !!e.loop, i._to = Ht(
                        [e.to, t, a, e.from]), i._from = Ht([e.from, a, t]);
                }
            }

            cancel () {
                const e = this;
                e._active &&
                (e.tick(Date.now()), e._active = !1, e._notify(!1));
            }

            tick (e) {
                const t = this, n = e - t._start, i = t._duration, a = t._prop,
                    r = t._from, o = t._loop, s = t._to;
                let l;
                if (t._active = r !== s && (o || n <
                    i), !t._active) return t._target[a] = s, void t._notify(!0);
                n < 0 ? t._target[a] = r : (l = n / i % 2, l = o && l > 1 ? 2 -
                    l : l, l = t._easing(
                    Math.min(1, Math.max(0, l))), t._target[a] = t._fn(r, s,
                    l));
            }

            wait () {
                const e = this._promises || (this._promises = []);
                return new Promise(((t, n) => {e.push({ res: t, rej: n });}));
            }

            _notify (e) {
                const t = e ? 'res' : 'rej', n = this._promises || [];
                for (let e = 0; e < n.length; e++) n[e][t]();
            }
        }

        ve.set('animation', {
            delay: void 0,
            duration: 1e3,
            easing: 'easeOutQuart',
            fn: void 0,
            from: void 0,
            loop: void 0,
            to: void 0,
            type: void 0,
        });
        const _n = Object.keys(ve.animation);
        ve.describe('animation', {
            _fallback: !1,
            _indexable: !1,
            _scriptable: e => 'onProgress' !== e && 'onComplete' !== e &&
                'fn' !== e,
        }), ve.set('animations', {
            colors: {
                type: 'color',
                properties: ['color', 'borderColor', 'backgroundColor'],
            },
            numbers: {
                type: 'number',
                properties: ['x', 'y', 'borderWidth', 'radius', 'tension'],
            },
        }), ve.describe('animations', { _fallback: 'animation' }), ve.set(
            'transitions', {
                active: { animation: { duration: 400 } },
                resize: { animation: { duration: 0 } },
                show: {
                    animations: {
                        colors: { from: 'transparent' },
                        visible: { type: 'boolean', duration: 0 },
                    },
                },
                hide: {
                    animations: {
                        colors: { to: 'transparent' },
                        visible: {
                            type: 'boolean',
                            easing: 'linear',
                            fn: e => 0 | e,
                        },
                    },
                },
            });

        class wn {
            constructor (
                e, t) {
                this._chart = e, this._properties = new Map, this.configure(t);
            }

            configure (e) {
                if (!U(e)) return;
                const t = this._properties;
                Object.getOwnPropertyNames(e).forEach((n => {
                    const i = e[n];
                    if (!U(i)) return;
                    const a = {};
                    for (const e of _n) a[e] = i[e];
                    (q(i.properties) && i.properties || [n]).forEach(
                        (e => {e !== n && t.has(e) || t.set(e, a);}));
                }));
            }

            _animateOptions (e, t) {
                const n = t.options, i = function (e, t) {
                    if (!t) return;
                    let n = e.options;
                    if (!n) return void (e.options = t);
                    n.$shared && (e.options = n = Object.assign({}, n,
                        { $shared: !1, $animations: {} }));
                    return n;
                }(e, n);
                if (!i) return [];
                const a = this._createAnimations(i, n);
                return n.$shared && function (e, t) {
                    const n = [], i = Object.keys(t);
                    for (let t = 0; t < i.length; t++) {
                        const a = e[i[t]];
                        a && a.active() && n.push(a.wait());
                    }
                    return Promise.all(n);
                }(e.options.$animations, n).
                    then((() => {e.options = n;}), (() => {})), a;
            }

            _createAnimations (e, t) {
                const n = this._properties, i = [],
                    a = e.$animations || (e.$animations = {}),
                    r = Object.keys(t), o = Date.now();
                let s;
                for (s = r.length - 1; s >= 0; --s) {
                    const l = r[s];
                    if ('$' === l.charAt(0)) continue;
                    if ('options' === l) {
                        i.push(...this._animateOptions(e, t));
                        continue;
                    }
                    const c = t[l];
                    let u = a[l];
                    const d = n.get(l);
                    if (u) {
                        if (d && u.active()) {
                            u.update(d, c, o);
                            continue;
                        }
                        u.cancel();
                    }
                    d && d.duration
                        ? (a[l] = u = new xn(d, e, l, c), i.push(u))
                        : e[l] = c;
                }
                return i;
            }

            update (e, t) {
                if (0 === this._properties.size) return void Object.assign(e,
                    t);
                const n = this._createAnimations(e, t);
                return n.length ? (o.add(this._chart, n), !0) : void 0;
            }
        }

        function kn (e, t) {
            const n = e && e.options || {}, i = n.reverse,
                a = void 0 === n.min ? t : 0, r = void 0 === n.max ? t : 0;
            return { start: i ? r : a, end: i ? a : r };
        }

        function Mn (e, t) {
            const n = [], i = e._getSortedDatasetMetas(t);
            let a, r;
            for (a = 0, r = i.length; a < r; ++a) n.push(i[a].index);
            return n;
        }

        function Ln (e, t, n, i) {
            const a = e.keys, r = 'single' === i.mode;
            let o, s, l, c;
            if (null !== t) {
                for (o = 0, s = a.length; o < s; ++o) {
                    if (l = +a[o], l === n) {
                        if (i.all) continue;
                        break;
                    }
                    c = e.values[l], X(c) &&
                    (r || 0 === t || Te(t) === Te(c)) && (t += c);
                }
                return t;
            }
        }

        function Sn (e, t) {
            const n = e && e.options.stacked;
            return n || void 0 === n && void 0 !== t.stack;
        }

        function Tn (e, t, n) {
            const i = e[t] || (e[t] = {});
            return i[n] || (i[n] = {});
        }

        function An (e, t, n) {
            for (const i of t.getMatchingVisibleMetas('bar').
                reverse()) {
                const t = e[i.index];
                if (n && t > 0 || !n && t < 0) return i.index;
            }
            return null;
        }

        function Dn (e, t) {
            const { chart: n, _cachedMeta: i } = e,
                a = n._stacks || (n._stacks = {}), {
                    iScale: r,
                    vScale: o,
                    index: s,
                } = i, l = r.axis, c = o.axis, u = function (e, t, n) {
                    return `${e.id}.${t.id}.${n.stack || n.type}`;
                }(r, o, i), d = t.length;
            let h;
            for (let e = 0; e < d; ++e) {
                const n = t[e], { [l]: i, [c]: r } = n;
                h = (n._stacks || (n._stacks = {}))[c] = Tn(a, u,
                    i), h[s] = r, h._top = An(h, o, !0), h._bottom = An(h, o,
                    !1);
            }
        }

        function Cn (e, t) {
            const n = e.scales;
            return Object.keys(n).filter((e => n[e].axis === t)).shift();
        }

        function En (e, t) {
            const n = e.vScale && e.vScale.axis;
            if (n) {
                t = t || e._parsed;
                for (const i of t) {
                    const t = i._stacks;
                    if (!t || void 0 === t[n] || void 0 ===
                        t[n][e.index]) return;
                    delete t[n][e.index];
                }
            }
        }

        const On = e => 'reset' === e || 'none' === e,
            Yn = (e, t) => t ? e : Object.assign({}, e);

        class Pn {
            constructor (
                e,
                t) {this.chart = e, this._ctx = e.ctx, this.index = t, this._cachedDataOpts = {}, this._cachedMeta = this.getMeta(), this._type = this._cachedMeta.type, this.options = void 0, this._parsing = !1, this._data = void 0, this._objectData = void 0, this._sharedOptions = void 0, this._drawStart = void 0, this._drawCount = void 0, this.enableOptionSharing = !1, this.$context = void 0, this._syncList = [], this.initialize();}

            initialize () {
                const e = this, t = e._cachedMeta;
                e.configure(), e.linkScales(), t._stacked = Sn(t.vScale,
                    t), e.addElements();
            }

            updateIndex (e) {
                this.index !== e && En(this._cachedMeta), this.index = e;
            }

            linkScales () {
                const e = this, t = e.chart, n = e._cachedMeta,
                    i = e.getDataset(),
                    a = (e, t, n, i) => 'x' === e ? t : 'r' === e ? i : n,
                    r = n.xAxisID = G(i.xAxisID, Cn(t, 'x')),
                    o = n.yAxisID = G(i.yAxisID, Cn(t, 'y')),
                    s = n.rAxisID = G(i.rAxisID, Cn(t, 'r')), l = n.indexAxis,
                    c = n.iAxisID = a(l, r, o, s),
                    u = n.vAxisID = a(l, o, r, s);
                n.xScale = e.getScaleForId(r), n.yScale = e.getScaleForId(
                    o), n.rScale = e.getScaleForId(
                    s), n.iScale = e.getScaleForId(
                    c), n.vScale = e.getScaleForId(u);
            }

            getDataset () {return this.chart.data.datasets[this.index];}

            getMeta () {return this.chart.getDatasetMeta(this.index);}

            getScaleForId (e) {return this.chart.scales[e];}

            _getOtherScale (e) {
                const t = this._cachedMeta;
                return e === t.iScale ? t.vScale : t.iScale;
            }

            reset () {this._update('reset');}

            _destroy () {
                const e = this._cachedMeta;
                this._data && ct(this._data, this), e._stacked && En(e);
            }

            _dataCheck () {
                const e = this, t = e.getDataset(), n = t.data || (t.data = []),
                    i = e._data;
                if (U(n)) e._data = function (e) {
                    const t = Object.keys(e), n = new Array(t.length);
                    let i, a, r;
                    for (i = 0, a = t.length; i <
                    a; ++i) r = t[i], n[i] = { x: r, y: e[r] };
                    return n;
                }(n); else if (i !== n) {
                    if (i) {
                        ct(i, e);
                        const t = e._cachedMeta;
                        En(t), t._parsed = [];
                    }
                    n && Object.isExtensible(n) &&
                    lt(n, e), e._syncList = [], e._data = n;
                }
            }

            addElements () {
                const e = this, t = e._cachedMeta;
                e._dataCheck(), e.datasetElementType &&
                (t.dataset = new e.datasetElementType);
            }

            buildOrUpdateElements (e) {
                const t = this, n = t._cachedMeta, i = t.getDataset();
                let a = !1;
                t._dataCheck();
                const r = n._stacked;
                n._stacked = Sn(n.vScale, n), n.stack !== i.stack &&
                (a = !0, En(n), n.stack = i.stack), t._resyncElements(e), (a ||
                    r !== n._stacked) && Dn(t, n._parsed);
            }

            configure () {
                const e = this, t = e.chart.config,
                    n = t.datasetScopeKeys(e._type),
                    i = t.getOptionScopes(e.getDataset(), n, !0);
                e.options = t.createResolver(i,
                    e.getContext()), e._parsing = e.options.parsing;
            }

            parse (e, t) {
                const n = this, {
                    _cachedMeta: i,
                    _data: a,
                } = n, { iScale: r, _stacked: o } = i, s = r.axis;
                let l, c, u, d = 0 === e && t === a.length || i._sorted,
                    h = e > 0 && i._parsed[e - 1];
                if (!1 ===
                    n._parsing) i._parsed = a, i._sorted = !0, u = a; else {
                    u = q(a[e]) ? n.parseArrayData(i, a, e, t) : U(a[e])
                        ? n.parseObjectData(i, a, e, t)
                        : n.parsePrimitiveData(i, a, e, t);
                    const r = () => null === c[s] || h && c[s] < h[s];
                    for (l = 0; l < t; ++l) i._parsed[l + e] = c = u[l], d &&
                    (r() && (d = !1), h = c);
                    i._sorted = d;
                }
                o && Dn(n, u);
            }

            parsePrimitiveData (e, t, n, i) {
                const { iScale: a, vScale: r } = e, o = a.axis, s = r.axis,
                    l = a.getLabels(), c = a === r, u = new Array(i);
                let d, h, f;
                for (d = 0, h = i; d < h; ++d) f = d + n, u[d] = {
                    [o]: c || a.parse(l[f], f), [s]: r.parse(t[f], f),
                };
                return u;
            }

            parseArrayData (e, t, n, i) {
                const { xScale: a, yScale: r } = e, o = new Array(i);
                let s, l, c, u;
                for (s = 0, l = i; s < l; ++s) c = s + n, u = t[c], o[s] = {
                    x: a.parse(u[0], c),
                    y: r.parse(u[1], c),
                };
                return o;
            }

            parseObjectData (e, t, n, i) {
                const {
                        xScale: a,
                        yScale: r,
                    } = e, { xAxisKey: o = 'x', yAxisKey: s = 'y' } = this._parsing,
                    l = new Array(i);
                let c, u, d, h;
                for (c = 0, u = i; c < u; ++c) d = c + n, h = t[d], l[c] = {
                    x: a.parse(le(h, o), d),
                    y: r.parse(le(h, s), d),
                };
                return l;
            }

            getParsed (e) {return this._cachedMeta._parsed[e];}

            getDataElement (e) {return this._cachedMeta.data[e];}

            applyStack (e, t, n) {
                const i = this.chart, a = this._cachedMeta, r = t[e.axis];
                return Ln({ keys: Mn(i, !0), values: t._stacks[e.axis] }, r,
                    a.index, { mode: n });
            }

            updateRangeFromParsed (e, t, n, i) {
                const a = n[t.axis];
                let r = null === a ? NaN : a;
                const o = i && n._stacks[t.axis];
                i && o &&
                (i.values = o, e.min = Math.min(e.min, r), e.max = Math.max(
                    e.max, r), r = Ln(i, a, this._cachedMeta.index,
                    { all: !0 })), e.min = Math.min(e.min, r), e.max = Math.max(
                    e.max, r);
            }

            getMinMax (e, t) {
                const n = this, i = n._cachedMeta, a = i._parsed,
                    r = i._sorted && e === i.iScale, o = a.length,
                    s = n._getOtherScale(e), l = t && i._stacked &&
                    { keys: Mn(n.chart, !0), values: null }, c = {
                        min: Number.POSITIVE_INFINITY,
                        max: Number.NEGATIVE_INFINITY,
                    }, { min: u, max: d } = function (e) {
                        const {
                            min: t,
                            max: n,
                            minDefined: i,
                            maxDefined: a,
                        } = e.getUserBounds();
                        return {
                            min: i ? t : Number.NEGATIVE_INFINITY,
                            max: a ? n : Number.POSITIVE_INFINITY,
                        };
                    }(s);
                let h, f, p, m;

                function g () {
                    return p = a[h], f = p[e.axis], m = p[s.axis], !X(f) || u >
                    m || d < m;
                }

                for (h = 0; h < o &&
                (g() || (n.updateRangeFromParsed(c, e, p, l), !r)); ++h) ;
                if (r) for (h = o - 1; h >= 0; --h) if (!g()) {
                    n.updateRangeFromParsed(c, e, p, l);
                    break;
                }
                return c;
            }

            getAllParsedValues (e) {
                const t = this._cachedMeta._parsed, n = [];
                let i, a, r;
                for (i = 0, a = t.length; i < a; ++i) r = t[i][e.axis], X(r) &&
                n.push(r);
                return n;
            }

            getMaxOverflow () {return !1;}

            getLabelAndValue (e) {
                const t = this._cachedMeta, n = t.iScale, i = t.vScale,
                    a = this.getParsed(e);
                return {
                    label: n ? '' + n.getLabelForValue(a[n.axis]) : '',
                    value: i ? '' + i.getLabelForValue(a[i.axis]) : '',
                };
            }

            _update (e) {
                const t = this, n = t._cachedMeta;
                t.configure(), t._cachedDataOpts = {}, t.update(
                    e || 'default'), n._clip = function (e) {
                    let t, n, i, a;
                    return U(e)
                        ? (t = e.top, n = e.right, i = e.bottom, a = e.left)
                        : t = n = i = a = e, {
                        top: t,
                        right: n,
                        bottom: i,
                        left: a,
                    };
                }(G(t.options.clip, function (e, t, n) {
                    if (!1 === n) return !1;
                    const i = kn(e, n), a = kn(t, n);
                    return {
                        top: a.end,
                        right: i.end,
                        bottom: a.start,
                        left: i.start,
                    };
                }(n.xScale, n.yScale, t.getMaxOverflow())));
            }

            update (e) {}

            draw () {
                const e = this, t = e._ctx, n = e.chart, i = e._cachedMeta,
                    a = i.data || [], r = n.chartArea, o = [],
                    s = e._drawStart || 0, l = e._drawCount || a.length - s;
                let c;
                for (i.dataset && i.dataset.draw(t, r, s, l), c = s; c < s +
                l; ++c) {
                    const e = a[c];
                    e.active ? o.push(e) : e.draw(t, r);
                }
                for (c = 0; c < o.length; ++c) o[c].draw(t, r);
            }

            getStyle (e, t) {
                const n = t ? 'active' : 'default';
                return void 0 === e && this._cachedMeta.dataset
                    ? this.resolveDatasetElementOptions(n)
                    : this.resolveDataElementOptions(e || 0, n);
            }

            getContext (e, t, n) {
                const i = this, a = i.getDataset();
                let r;
                if (e >= 0 && e < i._cachedMeta.data.length) {
                    const t = i._cachedMeta.data[e];
                    r = t.$context || (t.$context = function (e, t, n) {
                        return Object.assign(Object.create(e), {
                            active: !1,
                            dataIndex: t,
                            parsed: void 0,
                            raw: void 0,
                            element: n,
                            index: t,
                            mode: 'default',
                            type: 'data',
                        });
                    }(i.getContext(), e, t)), r.parsed = i.getParsed(
                        e), r.raw = a.data[e], r.index = r.dataIndex = e;
                } else r = i.$context || (i.$context = function (e, t) {
                    return Object.assign(Object.create(e), {
                        active: !1,
                        dataset: void 0,
                        datasetIndex: t,
                        index: t,
                        mode: 'default',
                        type: 'dataset',
                    });
                }(i.chart.getContext(),
                    i.index)), r.dataset = a, r.index = r.datasetIndex = i.index;
                return r.active = !!t, r.mode = n, r;
            }

            resolveDatasetElementOptions (e) {
                return this._resolveElementOptions(this.datasetElementType.id,
                    e);
            }

            resolveDataElementOptions (
                e, t) {
                return this._resolveElementOptions(this.dataElementType.id, t,
                    e);
            }

            _resolveElementOptions (e, t = 'default', n) {
                const i = this, a = 'active' === t, r = i._cachedDataOpts,
                    o = e + '-' + t, s = r[o],
                    l = i.enableOptionSharing && ue(n);
                if (s) return Yn(s, l);
                const c = i.chart.config,
                    u = c.datasetElementScopeKeys(i._type, e),
                    d = a ? [`${e}Hover`, 'hover', e, ''] : [e, ''],
                    h = c.getOptionScopes(i.getDataset(), u),
                    f = Object.keys(ve.elements[e]),
                    p = c.resolveNamedOptions(h, f, (() => i.getContext(n, a)),
                        d);
                return p.$shared &&
                (p.$shared = l, r[o] = Object.freeze(Yn(p, l))), p;
            }

            _resolveAnimations (e, t, n) {
                const i = this, a = i.chart, r = i._cachedDataOpts,
                    o = `animation-${t}`, s = r[o];
                if (s) return s;
                let l;
                if (!1 !== a.options.animation) {
                    const a = i.chart.config,
                        r = a.datasetAnimationScopeKeys(i._type, t),
                        o = a.getOptionScopes(i.getDataset(), r);
                    l = a.createResolver(o, i.getContext(e, n, t));
                }
                const c = new wn(a, l && l.animations);
                return l && l._cacheable && (r[o] = Object.freeze(c)), c;
            }

            getSharedOptions (e) {
                if (e.$shared) return this._sharedOptions ||
                    (this._sharedOptions = Object.assign({}, e));
            }

            includeOptions (e, t) {
                return !t || On(e) || this.chart._animationsDisabled;
            }

            updateElement (e, t, n, i) {
                On(i)
                    ? Object.assign(e, n)
                    : this._resolveAnimations(t, i).update(e, n);
            }

            updateSharedOptions (e, t, n) {
                e && !On(t) && this._resolveAnimations(void 0, t).update(e, n);
            }

            _setStyle (e, t, n, i) {
                e.active = i;
                const a = this.getStyle(t, i);
                this._resolveAnimations(t, n, i).
                    update(e, { options: !i && this.getSharedOptions(a) || a });
            }

            removeHoverStyle (e, t, n) {this._setStyle(e, n, 'active', !1);}

            setHoverStyle (e, t, n) {this._setStyle(e, n, 'active', !0);}

            _removeDatasetHoverStyle () {
                const e = this._cachedMeta.dataset;
                e && this._setStyle(e, void 0, 'active', !1);
            }

            _setDatasetHoverStyle () {
                const e = this._cachedMeta.dataset;
                e && this._setStyle(e, void 0, 'active', !0);
            }

            _resyncElements (e) {
                const t = this, n = t._data, i = t._cachedMeta.data;
                for (const [e, n, i] of t._syncList) t[e](n, i);
                t._syncList = [];
                const a = i.length, r = n.length, o = Math.min(r, a);
                o && t.parse(0, o), r > a ? t._insertElements(a, r - a, e) : r <
                    a && t._removeElements(r, a - r);
            }

            _insertElements (e, t, n = !0) {
                const i = this, a = i._cachedMeta, r = a.data, o = e + t;
                let s;
                const l = e => {
                    for (e.length += t, s = e.length - 1; s >=
                    o; s--) e[s] = e[s - t];
                };
                for (l(r), s = e; s < o; ++s) r[s] = new i.dataElementType;
                i._parsing && l(a._parsed), i.parse(e, t), n &&
                i.updateElements(r, e, t, 'reset');
            }

            updateElements (e, t, n, i) {}

            _removeElements (e, t) {
                const n = this._cachedMeta;
                if (this._parsing) {
                    const i = n._parsed.splice(e, t);
                    n._stacked && En(n, i);
                }
                n.data.splice(e, t);
            }

            _onDataPush () {
                const e = arguments.length;
                this._syncList.push(
                    ['_insertElements', this.getDataset().data.length - e, e]);
            }

            _onDataPop () {
                this._syncList.push(
                    ['_removeElements', this._cachedMeta.data.length - 1, 1]);
            }

            _onDataShift () {this._syncList.push(['_removeElements', 0, 1]);}

            _onDataSplice (e, t) {
                this._syncList.push(
                    ['_removeElements', e, t]), this._syncList.push(
                    ['_insertElements', e, arguments.length - 2]);
            }

            _onDataUnshift () {
                this._syncList.push(['_insertElements', 0, arguments.length]);
            }
        }

        Pn.defaults = {}, Pn.prototype.datasetElementType = null, Pn.prototype.dataElementType = null;

        class In {
            constructor () {this.x = void 0, this.y = void 0, this.active = !1, this.options = void 0, this.$animations = void 0;}

            tooltipPosition (e) {
                const { x: t, y: n } = this.getProps(['x', 'y'], e);
                return { x: t, y: n };
            }

            hasValue () {return Ce(this.x) && Ce(this.y);}

            getProps (e, t) {
                const n = this, i = this.$animations;
                if (!t || !i) return n;
                const a = {};
                return e.forEach(
                    (e => {
                        a[e] = i[e] && i[e].active()
                            ? i[e]._to
                            : n[e];
                    })), a;
            }
        }

        In.defaults = {}, In.defaultRoutes = void 0;
        const jn = new Map;

        function Nn (e, t, n) {
            return function (e, t) {
                t = t || {};
                const n = e + JSON.stringify(t);
                let i = jn.get(n);
                return i || (i = new Intl.NumberFormat(e, t), jn.set(n, i)), i;
            }(t, n).format(e);
        }

        const Hn = {
            values: e => q(e) ? e : '' + e,
            numeric (e, t, n) {
                if (0 === e) return '0';
                const i = this.chart.options.locale;
                let a, r = e;
                if (n.length > 1) {
                    const t = Math.max(Math.abs(n[0].value),
                        Math.abs(n[n.length - 1].value));
                    (t < 1e-4 || t > 1e15) &&
                    (a = 'scientific'), r = function (e, t) {
                        let n = t.length > 3
                            ? t[2].value - t[1].value
                            : t[1].value - t[0].value;
                        Math.abs(n) >= 1 && e !== Math.floor(e) &&
                        (n = e - Math.floor(e));
                        return n;
                    }(e, n);
                }
                const o = Se(Math.abs(r)),
                    s = Math.max(Math.min(-1 * Math.floor(o), 20), 0), l = {
                        notation: a,
                        minimumFractionDigits: s,
                        maximumFractionDigits: s,
                    };
                return Object.assign(l, this.options.ticks.format), Nn(e, i, l);
            },
            logarithmic (e, t, n) {
                if (0 === e) return '0';
                const i = e / Math.pow(10, Math.floor(Se(e)));
                return 1 === i || 2 === i || 5 === i ? Hn.numeric.call(this, e,
                    t, n) : '';
            },
        };
        var Fn = { formatters: Hn };

        function Rn (e, t) {
            const n = e.options.ticks, i = n.maxTicksLimit || function (e) {
                const t = e.options.offset, n = e._tickSize(),
                    i = e._length / n + (t ? 0 : 1), a = e._maxLength / n;
                return Math.floor(Math.min(i, a));
            }(e), a = n.major.enabled ? function (e) {
                const t = [];
                let n, i;
                for (n = 0, i = e.length; n < i; n++) e[n].major && t.push(n);
                return t;
            }(t) : [], r = a.length, o = a[0], s = a[r - 1], l = [];
            if (r > i) return function (e, t, n, i) {
                let a, r = 0, o = n[0];
                for (i = Math.ceil(i), a = 0; a < e.length; a++) a === o &&
                (t.push(e[a]), r++, o = n[r * i]);
            }(t, l, a, r / i), l;
            const c = function (
                e, t, n) {
                const i = function (e) {
                    const t = e.length;
                    let n, i;
                    if (t < 2) return !1;
                    for (i = e[0], n = 1; n < t; ++n) if (e[n] - e[n - 1] !==
                        i) return !1;
                    return i;
                }(e), a = t.length / n;
                if (!i) return Math.max(a, 1);
                const r = De(i);
                for (let e = 0, t = r.length - 1; e < t; e++) {
                    const t = r[e];
                    if (t > a) return t;
                }
                return Math.max(a, 1);
            }(a, t, i);
            if (r > 0) {
                let e, n;
                const i = r > 1 ? Math.round((s - o) / (r - 1)) : null;
                for (zn(t, l, c, V(i) ? 0 : o - i, o), e = 0, n = r - 1; e <
                n; e++) zn(t, l, c, a[e], a[e + 1]);
                return zn(t, l, c, s, V(i) ? t.length : s + i), l;
            }
            return zn(t, l, c), l;
        }

        function zn (e, t, n, i, a) {
            const r = G(i, 0), o = Math.min(G(a, e.length), e.length);
            let s, l, c, u = 0;
            for (n = Math.ceil(n), a &&
            (s = a - i, n = s / Math.floor(s / n)), c = r; c <
                 0;) u++, c = Math.round(r + u * n);
            for (l = Math.max(r, 0); l < o; l++) l === c &&
            (t.push(e[l]), u++, c = Math.round(r + u * n));
        }

        ve.set('scale', {
            display: !0,
            offset: !1,
            reverse: !1,
            beginAtZero: !1,
            bounds: 'ticks',
            grace: 0,
            grid: {
                display: !0,
                lineWidth: 1,
                drawBorder: !0,
                drawOnChartArea: !0,
                drawTicks: !0,
                tickLength: 8,
                tickWidth: (e, t) => t.lineWidth,
                tickColor: (e, t) => t.color,
                offset: !1,
                borderDash: [],
                borderDashOffset: 0,
                borderWidth: 1,
            },
            title: { display: !1, text: '', padding: { top: 4, bottom: 4 } },
            ticks: {
                minRotation: 0,
                maxRotation: 50,
                mirror: !1,
                textStrokeWidth: 0,
                textStrokeColor: '',
                padding: 3,
                display: !0,
                autoSkip: !0,
                autoSkipPadding: 3,
                labelOffset: 0,
                callback: Fn.formatters.values,
                minor: {},
                major: {},
                align: 'center',
                crossAlign: 'near',
                showLabelBackdrop: !1,
                backdropColor: 'rgba(255, 255, 255, 0.75)',
                backdropPadding: 2,
            },
        }), ve.route('scale.ticks', 'color', '', 'color'), ve.route(
            'scale.grid', 'color', '', 'borderColor'), ve.route('scale.grid',
            'borderColor', '', 'borderColor'), ve.route('scale.title', 'color',
            '', 'color'), ve.describe('scale', {
            _fallback: !1,
            _scriptable: e => !e.startsWith('before') &&
                !e.startsWith('after') && 'callback' !== e && 'parser' !== e,
            _indexable: e => 'borderDash' !== e && 'tickBorderDash' !== e,
        }), ve.describe('scales', { _fallback: 'scale' });
        const Bn = (e, t, n) => 'top' === t || 'left' === t ? e[t] + n : e[t] -
            n;

        function Wn (e, t) {
            const n = [], i = e.length / t, a = e.length;
            let r = 0;
            for (; r < a; r += i) n.push(e[Math.floor(r)]);
            return n;
        }

        function Vn (e, t, n) {
            const i = e.ticks.length, a = Math.min(t, i - 1), r = e._startPixel,
                o = e._endPixel, s = 1e-6;
            let l, c = e.getPixelForTick(a);
            if (!(n && (l = 1 === i ? Math.max(c - r, o - c) : 0 === t
                ? (e.getPixelForTick(1) - c) / 2
                : (c - e.getPixelForTick(a - 1)) / 2, c += a < t ? l : -l, c <
            r - s || c > o + s))) return c;
        }

        function qn (e) {return e.drawTicks ? e.tickLength : 0;}

        function Un (e, t) {
            if (!e.display) return 0;
            const n = Nt(e.font, t), i = jt(e.padding);
            return (q(e.text) ? e.text.length : 1) * n.lineHeight + i.height;
        }

        function Xn (e, t, n) {
            let a = i(e);
            return (n && 'right' !== t || !n && 'right' === t) &&
            (a = (e => 'left' === e ? 'right' : 'right' === e ? 'left' : e)(
                a)), a;
        }

        class $n extends In {
            constructor (e) {
                super(), this.id = e.id, this.type = e.type, this.options = void 0, this.ctx = e.ctx, this.chart = e.chart, this.top = void 0, this.bottom = void 0, this.left = void 0, this.right = void 0, this.width = void 0, this.height = void 0, this._margins = {
                    left: 0,
                    right: 0,
                    top: 0,
                    bottom: 0,
                }, this.maxWidth = void 0, this.maxHeight = void 0, this.paddingTop = void 0, this.paddingBottom = void 0, this.paddingLeft = void 0, this.paddingRight = void 0, this.axis = void 0, this.labelRotation = void 0, this.min = void 0, this.max = void 0, this._range = void 0, this.ticks = [], this._gridLineItems = null, this._labelItems = null, this._labelSizes = null, this._length = 0, this._maxLength = 0, this._longestTextCache = {}, this._startPixel = void 0, this._endPixel = void 0, this._reversePixels = !1, this._userMax = void 0, this._userMin = void 0, this._suggestedMax = void 0, this._suggestedMin = void 0, this._ticksLength = 0, this._borderValue = 0, this._cache = {}, this._dataLimitsCached = !1, this.$context = void 0;
            }

            init (e) {
                const t = this;
                t.options = e.setContext(
                    t.getContext()), t.axis = e.axis, t._userMin = t.parse(
                    e.min), t._userMax = t.parse(
                    e.max), t._suggestedMin = t.parse(
                    e.suggestedMin), t._suggestedMax = t.parse(e.suggestedMax);
            }

            parse (e, t) {return e;}

            getUserBounds () {
                let {
                    _userMin: e,
                    _userMax: t,
                    _suggestedMin: n,
                    _suggestedMax: i,
                } = this;
                return e = $(e, Number.POSITIVE_INFINITY), t = $(t,
                    Number.NEGATIVE_INFINITY), n = $(n,
                    Number.POSITIVE_INFINITY), i = $(i,
                    Number.NEGATIVE_INFINITY), {
                    min: $(e, n),
                    max: $(t, i),
                    minDefined: X(e),
                    maxDefined: X(t),
                };
            }

            getMinMax (e) {
                const t = this;
                let n, {
                    min: i,
                    max: a,
                    minDefined: r,
                    maxDefined: o,
                } = t.getUserBounds();
                if (r && o) return { min: i, max: a };
                const s = t.getMatchingVisibleMetas();
                for (let l = 0, c = s.length; l <
                c; ++l) n = s[l].controller.getMinMax(t, e), r ||
                (i = Math.min(i, n.min)), o || (a = Math.max(a, n.max));
                return { min: $(i, $(a, i)), max: $(a, $(i, a)) };
            }

            getPadding () {
                const e = this;
                return {
                    left: e.paddingLeft || 0,
                    top: e.paddingTop || 0,
                    right: e.paddingRight || 0,
                    bottom: e.paddingBottom || 0,
                };
            }

            getTicks () {return this.ticks;}

            getLabels () {
                const e = this.chart.data;
                return this.options.labels ||
                    (this.isHorizontal() ? e.xLabels : e.yLabels) || e.labels ||
                    [];
            }

            beforeLayout () {this._cache = {}, this._dataLimitsCached = !1;}

            beforeUpdate () {J(this.options.beforeUpdate, [this]);}

            update (e, t, n) {
                const i = this, a = i.options.ticks, r = a.sampleSize;
                i.beforeUpdate(), i.maxWidth = e, i.maxHeight = t, i._margins = n = Object.assign(
                    { left: 0, right: 0, top: 0, bottom: 0 },
                    n), i.ticks = null, i._labelSizes = null, i._gridLineItems = null, i._labelItems = null, i.beforeSetDimensions(), i.setDimensions(), i.afterSetDimensions(), i._maxLength = i.isHorizontal()
                    ? i.width + n.left + n.right
                    : i.height + n.top + n.bottom, i._dataLimitsCached ||
                (i.beforeDataLimits(), i.determineDataLimits(), i.afterDataLimits(), i._range = Ft(
                    i,
                    i.options.grace), i._dataLimitsCached = !0), i.beforeBuildTicks(), i.ticks = i.buildTicks() ||
                    [], i.afterBuildTicks();
                const o = r < i.ticks.length;
                i._convertTicksToLabels(o
                    ? Wn(i.ticks, r)
                    : i.ticks), i.configure(), i.beforeCalculateLabelRotation(), i.calculateLabelRotation(), i.afterCalculateLabelRotation(), a.display &&
                (a.autoSkip || 'auto' === a.source) &&
                (i.ticks = Rn(i, i.ticks), i._labelSizes = null), o &&
                i._convertTicksToLabels(
                    i.ticks), i.beforeFit(), i.fit(), i.afterFit(), i.afterUpdate();
            }

            configure () {
                const e = this;
                let t, n, i = e.options.reverse;
                e.isHorizontal()
                    ? (t = e.left, n = e.right)
                    : (t = e.top, n = e.bottom, i = !i), e._startPixel = t, e._endPixel = n, e._reversePixels = i, e._length = n -
                    t, e._alignToPixels = e.options.alignToPixels;
            }

            afterUpdate () {J(this.options.afterUpdate, [this]);}

            beforeSetDimensions () {
                J(this.options.beforeSetDimensions, [this]);
            }

            setDimensions () {
                const e = this;
                e.isHorizontal()
                    ? (e.width = e.maxWidth, e.left = 0, e.right = e.width)
                    : (e.height = e.maxHeight, e.top = 0, e.bottom = e.height), e.paddingLeft = 0, e.paddingTop = 0, e.paddingRight = 0, e.paddingBottom = 0;
            }

            afterSetDimensions () {J(this.options.afterSetDimensions, [this]);}

            _callHooks (e) {
                const t = this;
                t.chart.notifyPlugins(e, t.getContext()), J(t.options[e], [t]);
            }

            beforeDataLimits () {this._callHooks('beforeDataLimits');}

            determineDataLimits () {}

            afterDataLimits () {this._callHooks('afterDataLimits');}

            beforeBuildTicks () {this._callHooks('beforeBuildTicks');}

            buildTicks () {return [];}

            afterBuildTicks () {this._callHooks('afterBuildTicks');}

            beforeTickToLabelConversion () {
                J(this.options.beforeTickToLabelConversion, [this]);
            }

            generateTickLabels (e) {
                const t = this, n = t.options.ticks;
                let i, a, r;
                for (i = 0, a = e.length; i < a; i++) r = e[i], r.label = J(
                    n.callback, [r.value, i, e], t);
                for (i = 0; i < a; i++) V(e[i].label) &&
                (e.splice(i, 1), a--, i--);
            }

            afterTickToLabelConversion () {
                J(this.options.afterTickToLabelConversion, [this]);
            }

            beforeCalculateLabelRotation () {
                J(this.options.beforeCalculateLabelRotation, [this]);
            }

            calculateLabelRotation () {
                const e = this, t = e.options, n = t.ticks, i = e.ticks.length,
                    a = n.minRotation || 0, r = n.maxRotation;
                let o, s, l, c = a;
                if (!e._isVisible() || !n.display || a >= r || i <= 1 ||
                    !e.isHorizontal()) return void (e.labelRotation = a);
                const u = e._getLabelSizes(), d = u.widest.width,
                    h = u.highest.height,
                    f = Be(e.chart.width - d, 0, e.maxWidth);
                o = t.offset ? e.maxWidth / i : f / (i - 1), d + 6 > o &&
                (o = f / (i - (t.offset ? .5 : 1)), s = e.maxHeight -
                    qn(t.grid) - n.padding -
                    Un(t.title, e.chart.options.font), l = Math.sqrt(
                    d * d + h * h), c = Ie(
                    Math.min(Math.asin(Math.min((u.highest.height + 6) / o, 1)),
                        Math.asin(Math.min(s / l, 1)) -
                        Math.asin(h / l))), c = Math.max(a,
                    Math.min(r, c))), e.labelRotation = c;
            }

            afterCalculateLabelRotation () {
                J(this.options.afterCalculateLabelRotation, [this]);
            }

            beforeFit () {J(this.options.beforeFit, [this]);}

            fit () {
                const e = this, t = { width: 0, height: 0 }, {
                    chart: n,
                    options: { ticks: i, title: a, grid: r },
                } = e, o = e._isVisible(), s = e.isHorizontal();
                if (o) {
                    const o = Un(a, n.options.font);
                    if (s
                        ? (t.width = e.maxWidth, t.height = qn(r) + o)
                        : (t.height = e.maxHeight, t.width = qn(r) +
                            o), i.display && e.ticks.length) {
                        const {
                                first: n,
                                last: a,
                                widest: r,
                                highest: o,
                            } = e._getLabelSizes(), l = 2 * i.padding,
                            c = Pe(e.labelRotation), u = Math.cos(c),
                            d = Math.sin(c);
                        if (s) {
                            const n = i.mirror ? 0 : d * r.width + u * o.height;
                            t.height = Math.min(e.maxHeight, t.height + n + l);
                        } else {
                            const n = i.mirror ? 0 : u * r.width + d * o.height;
                            t.width = Math.min(e.maxWidth, t.width + n + l);
                        }
                        e._calculatePadding(n, a, d, u);
                    }
                }
                e._handleMargins(), s
                    ? (e.width = e._length = n.width - e._margins.left -
                        e._margins.right, e.height = t.height)
                    : (e.width = t.width, e.height = e._length = n.height -
                        e._margins.top - e._margins.bottom);
            }

            _calculatePadding (e, t, n, i) {
                const a = this, {
                        ticks: {
                            align: r,
                            padding: o,
                        }, position: s,
                    } = a.options, l = 0 !== a.labelRotation,
                    c = 'top' !== s && 'x' === a.axis;
                if (a.isHorizontal()) {
                    const s = a.getPixelForTick(0) - a.left,
                        u = a.right - a.getPixelForTick(a.ticks.length - 1);
                    let d = 0, h = 0;
                    l ? c ? (d = i * e.width, h = n * t.height) : (d = n *
                        e.height, h = i * t.width) : 'start' === r
                        ? h = t.width
                        : 'end' === r ? d = e.width : (d = e.width /
                            2, h = t.width / 2), a.paddingLeft = Math.max(
                        (d - s + o) * a.width / (a.width - s),
                        0), a.paddingRight = Math.max(
                        (h - u + o) * a.width / (a.width - u), 0);
                } else {
                    let n = t.height / 2, i = e.height / 2;
                    'start' === r ? (n = 0, i = e.height) : 'end' === r &&
                        (n = t.height, i = 0), a.paddingTop = n +
                        o, a.paddingBottom = i + o;
                }
            }

            _handleMargins () {
                const e = this;
                e._margins && (e._margins.left = Math.max(e.paddingLeft,
                    e._margins.left), e._margins.top = Math.max(e.paddingTop,
                    e._margins.top), e._margins.right = Math.max(e.paddingRight,
                    e._margins.right), e._margins.bottom = Math.max(
                    e.paddingBottom, e._margins.bottom));
            }

            afterFit () {J(this.options.afterFit, [this]);}

            isHorizontal () {
                const { axis: e, position: t } = this.options;
                return 'top' === t || 'bottom' === t || 'x' === e;
            }

            isFullSize () {return this.options.fullSize;}

            _convertTicksToLabels (e) {
                const t = this;
                t.beforeTickToLabelConversion(), t.generateTickLabels(
                    e), t.afterTickToLabelConversion();
            }

            _getLabelSizes () {
                const e = this;
                let t = e._labelSizes;
                if (!t) {
                    const n = e.options.ticks.sampleSize;
                    let i = e.ticks;
                    n < i.length &&
                    (i = Wn(i, n)), e._labelSizes = t = e._computeLabelSizes(i,
                        i.length);
                }
                return t;
            }

            _computeLabelSizes (e, t) {
                const {
                    ctx: n,
                    _longestTextCache: i,
                } = this, a = [], r = [];
                let o, s, l, c, u, d, h, f, p, m, g, v = 0, y = 0;
                for (o = 0; o < t; ++o) {
                    if (c = e[o].label, u = this._resolveTickFontOptions(
                        o), n.font = d = u.string, h = i[d] = i[d] ||
                        { data: {}, gc: [] }, f = u.lineHeight, p = m = 0, V(
                        c) || q(c)) {
                        if (q(c)) for (s = 0, l = c.length; s <
                        l; ++s) g = c[s], V(g) || q(g) ||
                        (p = qe(n, h.data, h.gc, p, g), m += f);
                    } else p = qe(n, h.data, h.gc, p, c), m = f;
                    a.push(p), r.push(m), v = Math.max(p, v), y = Math.max(m,
                        y);
                }
                !function (e, t) {
                    Q(e, (e => {
                        const n = e.gc, i = n.length / 2;
                        let a;
                        if (i > t) {
                            for (a = 0; a < i; ++a) delete e.data[n[a]];
                            n.splice(0, i);
                        }
                    }));
                }(i, t);
                const b = a.indexOf(v), x = r.indexOf(y),
                    _ = e => ({ width: a[e] || 0, height: r[e] || 0 });
                return {
                    first: _(0),
                    last: _(t - 1),
                    widest: _(b),
                    highest: _(x),
                    widths: a,
                    heights: r,
                };
            }

            getLabelForValue (e) {return e;}

            getPixelForValue (e, t) {return NaN;}

            getValueForPixel (e) {}

            getPixelForTick (e) {
                const t = this.ticks;
                return e < 0 || e > t.length - 1 ? null : this.getPixelForValue(
                    t[e].value);
            }

            getPixelForDecimal (e) {
                const t = this;
                t._reversePixels && (e = 1 - e);
                const n = t._startPixel + e * t._length;
                return We(t._alignToPixels ? Xe(t.chart, n, 0) : n);
            }

            getDecimalForPixel (e) {
                const t = (e - this._startPixel) / this._length;
                return this._reversePixels ? 1 - t : t;
            }

            getBasePixel () {return this.getPixelForValue(this.getBaseValue());}

            getBaseValue () {
                const { min: e, max: t } = this;
                return e < 0 && t < 0 ? t : e > 0 && t > 0 ? e : 0;
            }

            getContext (e) {
                const t = this, n = t.ticks || [];
                if (e >= 0 && e < n.length) {
                    const i = n[e];
                    return i.$context || (i.$context = function (e, t, n) {
                        return Object.assign(Object.create(e),
                            { tick: n, index: t, type: 'tick' });
                    }(t.getContext(), e, i));
                }
                return t.$context ||
                    (t.$context = (i = t.chart.getContext(), a = t, Object.assign(
                        Object.create(i), { scale: a, type: 'scale' })));
                var i, a;
            }

            _tickSize () {
                const e = this, t = e.options.ticks, n = Pe(e.labelRotation),
                    i = Math.abs(Math.cos(n)), a = Math.abs(Math.sin(n)),
                    r = e._getLabelSizes(), o = t.autoSkipPadding || 0,
                    s = r ? r.widest.width + o : 0,
                    l = r ? r.highest.height + o : 0;
                return e.isHorizontal() ? l * i > s * a ? s / i : l / a : l *
                a < s * i ? l / i : s / a;
            }

            _isVisible () {
                const e = this.options.display;
                return 'auto' !== e
                    ? !!e
                    : this.getMatchingVisibleMetas().length > 0;
            }

            _computeGridLineItems (e) {
                const t = this, n = t.axis, i = t.chart,
                    a = t.options, { grid: r, position: o } = a, s = r.offset,
                    l = t.isHorizontal(), c = t.ticks.length + (s ? 1 : 0),
                    u = qn(r), d = [], h = r.setContext(t.getContext()),
                    f = h.drawBorder ? h.borderWidth : 0, p = f / 2,
                    m = function (e) {return Xe(i, e, f);};
                let g, v, y, b, x, _, w, k, M, L, S, T;
                if ('top' === o) g = m(t.bottom), _ = t.bottom - u, k = g -
                    p, L = m(e.top) + p, T = e.bottom; else if ('bottom' ===
                    o) g = m(t.top), L = e.top, T = m(e.bottom) - p, _ = g +
                    p, k = t.top + u; else if ('left' === o) g = m(
                    t.right), x = t.right - u, w = g - p, M = m(e.left) +
                    p, S = e.right; else if ('right' === o) g = m(
                    t.left), M = e.left, S = m(e.right) - p, x = g +
                    p, w = t.left + u; else if ('x' === n) {
                    if ('center' === o) g = m(
                        (e.top + e.bottom) / 2 + .5); else if (U(o)) {
                        const e = Object.keys(o)[0], n = o[e];
                        g = m(t.chart.scales[e].getPixelForValue(n));
                    }
                    L = e.top, T = e.bottom, _ = g + p, k = _ + u;
                } else if ('y' === n) {
                    if ('center' === o) g = m(
                        (e.left + e.right) / 2); else if (U(o)) {
                        const e = Object.keys(o)[0], n = o[e];
                        g = m(t.chart.scales[e].getPixelForValue(n));
                    }
                    x = g - p, w = x - u, M = e.left, S = e.right;
                }
                for (v = 0; v < c; ++v) {
                    const e = r.setContext(t.getContext(v)), n = e.lineWidth,
                        a = e.color, o = r.borderDash || [],
                        c = e.borderDashOffset, u = e.tickWidth,
                        h = e.tickColor, f = e.tickBorderDash || [],
                        p = e.tickBorderDashOffset;
                    y = Vn(t, v, s), void 0 !== y && (b = Xe(i, y, n), l
                        ? x = w = M = S = b
                        : _ = k = L = T = b, d.push({
                        tx1: x,
                        ty1: _,
                        tx2: w,
                        ty2: k,
                        x1: M,
                        y1: L,
                        x2: S,
                        y2: T,
                        width: n,
                        color: a,
                        borderDash: o,
                        borderDashOffset: c,
                        tickWidth: u,
                        tickColor: h,
                        tickBorderDash: f,
                        tickBorderDashOffset: p,
                    }));
                }
                return t._ticksLength = c, t._borderValue = g, d;
            }

            _computeLabelItems (e) {
                const t = this, n = t.axis, i = t.options, {
                        position: a,
                        ticks: r,
                    } = i, o = t.isHorizontal(), s = t.ticks, {
                        align: l,
                        crossAlign: c,
                        padding: u,
                        mirror: d,
                    } = r, h = qn(i.grid), f = h + u, p = d ? -u : f,
                    m = -Pe(t.labelRotation), g = [];
                let v, y, b, x, _, w, k, M, L, S, T, A, D = 'middle';
                if ('top' === a) w = t.bottom -
                    p, k = t._getXAxisLabelAlignment(); else if ('bottom' ===
                    a) w = t.top +
                    p, k = t._getXAxisLabelAlignment(); else if ('left' === a) {
                    const e = t._getYAxisLabelAlignment(h);
                    k = e.textAlign, _ = e.x;
                } else if ('right' === a) {
                    const e = t._getYAxisLabelAlignment(h);
                    k = e.textAlign, _ = e.x;
                } else if ('x' === n) {
                    if ('center' === a) w = (e.top + e.bottom) / 2 +
                        f; else if (U(a)) {
                        const e = Object.keys(a)[0], n = a[e];
                        w = t.chart.scales[e].getPixelForValue(n) + f;
                    }
                    k = t._getXAxisLabelAlignment();
                } else if ('y' === n) {
                    if ('center' === a) _ = (e.left + e.right) / 2 -
                        f; else if (U(a)) {
                        const e = Object.keys(a)[0], n = a[e];
                        _ = t.chart.scales[e].getPixelForValue(n);
                    }
                    k = t._getYAxisLabelAlignment(h).textAlign;
                }
                'y' === n &&
                ('start' === l ? D = 'top' : 'end' === l && (D = 'bottom'));
                const C = t._getLabelSizes();
                for (v = 0, y = s.length; v < y; ++v) {
                    b = s[v], x = b.label;
                    const e = r.setContext(t.getContext(v));
                    M = t.getPixelForTick(v) +
                        r.labelOffset, L = t._resolveTickFontOptions(
                        v), S = L.lineHeight, T = q(x) ? x.length : 1;
                    const n = T / 2, i = e.color, l = e.textStrokeColor,
                        u = e.textStrokeWidth;
                    let h;
                    if (o
                        ? (_ = M, A = 'top' === a ? 'near' === c || 0 !== m
                            ? -T * S + S / 2
                            : 'center' === c
                                ? -C.highest.height / 2 - n * S + S
                                : -C.highest.height + S / 2 : 'near' === c ||
                        0 !== m ? S / 2 : 'center' === c
                            ? C.highest.height / 2 - n * S
                            : C.highest.height - T * S, d && (A *= -1))
                        : (w = M, A = (1 - T) * S / 2), e.showLabelBackdrop) {
                        const t = jt(e.backdropPadding), n = C.heights[v],
                            i = C.widths[v];
                        let a = w + A - t.top, r = _ - t.left;
                        switch (D) {
                            case'middle':
                                a -= n / 2;
                                break;
                            case'bottom':
                                a -= n;
                        }
                        switch (k) {
                            case'center':
                                r -= i / 2;
                                break;
                            case'right':
                                r -= i;
                        }
                        h = {
                            left: r,
                            top: a,
                            width: i + t.width,
                            height: n + t.height,
                            color: e.backdropColor,
                        };
                    }
                    g.push({
                        rotation: m,
                        label: x,
                        font: L,
                        color: i,
                        strokeColor: l,
                        strokeWidth: u,
                        textOffset: A,
                        textAlign: k,
                        textBaseline: D,
                        translation: [_, w],
                        backdrop: h,
                    });
                }
                return g;
            }

            _getXAxisLabelAlignment () {
                const {
                    position: e,
                    ticks: t,
                } = this.options;
                if (-Pe(this.labelRotation)) return 'top' === e
                    ? 'left'
                    : 'right';
                let n = 'center';
                return 'start' === t.align ? n = 'left' : 'end' === t.align &&
                    (n = 'right'), n;
            }

            _getYAxisLabelAlignment (e) {
                const t = this, {
                    position: n,
                    ticks: { crossAlign: i, mirror: a, padding: r },
                } = t.options, o = e + r, s = t._getLabelSizes().widest.width;
                let l, c;
                return 'left' === n ? a
                    ? (l = 'left', c = t.right + r)
                    : (c = t.right - o, 'near' === i
                        ? l = 'right'
                        : 'center' === i
                            ? (l = 'center', c -= s / 2)
                            : (l = 'left', c = t.left)) : 'right' === n
                    ? a
                        ? (l = 'right', c = t.left + r)
                        : (c = t.left + o, 'near' === i
                            ? l = 'left'
                            : 'center' === i
                                ? (l = 'center', c += s / 2)
                                : (l = 'right', c = t.right))
                    : l = 'right', { textAlign: l, x: c };
            }

            _computeLabelArea () {
                const e = this;
                if (e.options.ticks.mirror) return;
                const t = e.chart, n = e.options.position;
                return 'left' === n || 'right' === n ? {
                    top: 0,
                    left: e.left,
                    bottom: t.height,
                    right: e.right,
                } : 'top' === n || 'bottom' === n ? {
                    top: e.top,
                    left: 0,
                    bottom: e.bottom,
                    right: t.width,
                } : void 0;
            }

            drawBackground () {
                const {
                    ctx: e,
                    options: { backgroundColor: t },
                    left: n,
                    top: i,
                    width: a,
                    height: r,
                } = this;
                t &&
                (e.save(), e.fillStyle = t, e.fillRect(n, i, a,
                    r), e.restore());
            }

            getLineWidthForValue (e) {
                const t = this, n = t.options.grid;
                if (!t._isVisible() || !n.display) return 0;
                const i = t.ticks.findIndex((t => t.value === e));
                if (i >= 0) {return n.setContext(t.getContext(i)).lineWidth;}
                return 0;
            }

            drawGrid (e) {
                const t = this, n = t.options.grid, i = t.ctx,
                    a = t._gridLineItems ||
                        (t._gridLineItems = t._computeGridLineItems(e));
                let r, o;
                const s = (e, t, n) => {
                    n.width && n.color &&
                    (i.save(), i.lineWidth = n.width, i.strokeStyle = n.color, i.setLineDash(
                        n.borderDash ||
                        []), i.lineDashOffset = n.borderDashOffset, i.beginPath(), i.moveTo(
                        e.x, e.y), i.lineTo(t.x, t.y), i.stroke(), i.restore());
                };
                if (n.display) for (r = 0, o = a.length; r < o; ++r) {
                    const e = a[r];
                    n.drawOnChartArea &&
                    s({ x: e.x1, y: e.y1 }, { x: e.x2, y: e.y2 },
                        e), n.drawTicks &&
                    s({ x: e.tx1, y: e.ty1 }, { x: e.tx2, y: e.ty2 }, {
                        color: e.tickColor,
                        width: e.tickWidth,
                        borderDash: e.tickBorderDash,
                        borderDashOffset: e.tickBorderDashOffset,
                    });
                }
            }

            drawBorder () {
                const e = this, {
                        chart: t,
                        ctx: n,
                        options: { grid: i },
                    } = e, a = i.setContext(e.getContext()),
                    r = i.drawBorder ? a.borderWidth : 0;
                if (!r) return;
                const o = i.setContext(e.getContext(0)).lineWidth,
                    s = e._borderValue;
                let l, c, u, d;
                e.isHorizontal() ? (l = Xe(t, e.left, r) - r / 2, c = Xe(t,
                    e.right, o) + o / 2, u = d = s) : (u = Xe(t, e.top, r) - r /
                    2, d = Xe(t, e.bottom, o) + o /
                    2, l = c = s), n.save(), n.lineWidth = a.borderWidth, n.strokeStyle = a.borderColor, n.beginPath(), n.moveTo(
                    l, u), n.lineTo(c, d), n.stroke(), n.restore();
            }

            drawLabels (e) {
                const t = this;
                if (!t.options.ticks.display) return;
                const n = t.ctx, i = t._computeLabelArea();
                i && Ke(n, i);
                const a = t._labelItems ||
                    (t._labelItems = t._computeLabelItems(e));
                let r, o;
                for (r = 0, o = a.length; r < o; ++r) {
                    const e = a[r], t = e.font, i = e.label;
                    e.backdrop &&
                    (n.fillStyle = e.backdrop.color, n.fillRect(e.backdrop.left,
                        e.backdrop.top, e.backdrop.width,
                        e.backdrop.height)), tt(n, i, 0, e.textOffset, t, e);
                }
                i && Je(n);
            }

            drawTitle () {
                const {
                    ctx: e,
                    options: { position: t, title: n, reverse: i },
                } = this;
                if (!n.display) return;
                const r = Nt(n.font), o = jt(n.padding), s = n.align;
                let l = r.lineHeight / 2;
                'bottom' === t ? (l += o.bottom, q(n.text) &&
                (l += r.lineHeight * (n.text.length - 1))) : l += o.top;
                const {
                    titleX: c,
                    titleY: u,
                    maxWidth: d,
                    rotation: h,
                } = function (e, t, n, i) {
                    const {
                        top: r,
                        left: o,
                        bottom: s,
                        right: l,
                    } = e;
                    let c, u, d, h = 0;
                    return e.isHorizontal() ? (u = a(i, o, l), d = Bn(e, n,
                        t), c = l - o) : (u = Bn(e, n, t), d = a(i, s,
                        r), h = 'left' === n ? -ke : ke), {
                        titleX: u,
                        titleY: d,
                        maxWidth: c,
                        rotation: h,
                    };
                }(this, l, t, s);
                tt(e, n.text, 0, 0, r, {
                    color: n.color,
                    maxWidth: d,
                    rotation: h,
                    textAlign: Xn(s, t, i),
                    textBaseline: 'middle',
                    translation: [c, u],
                });
            }

            draw (e) {
                const t = this;
                t._isVisible() && (t.drawBackground(), t.drawGrid(
                    e), t.drawBorder(), t.drawTitle(), t.drawLabels(e));
            }

            _layers () {
                const e = this, t = e.options, n = t.ticks && t.ticks.z || 0,
                    i = t.grid && t.grid.z || 0;
                return e._isVisible() && e.draw === $n.prototype.draw ? [
                    {
                        z: i,
                        draw (t) {
                            e.drawBackground(), e.drawGrid(t), e.drawTitle();
                        },
                    },
                    { z: i + 1, draw () {e.drawBorder();} },
                    { z: n, draw (t) {e.drawLabels(t);} }] : [
                    {
                        z: n,
                        draw (t) {e.draw(t);},
                    }];
            }

            getMatchingVisibleMetas (e) {
                const t = this, n = t.chart.getSortedVisibleDatasetMetas(),
                    i = t.axis + 'AxisID', a = [];
                let r, o;
                for (r = 0, o = n.length; r < o; ++r) {
                    const o = n[r];
                    o[i] !== t.id || e && o.type !== e || a.push(o);
                }
                return a;
            }

            _resolveTickFontOptions (e) {
                return Nt(
                    this.options.ticks.setContext(this.getContext(e)).font);
            }

            _maxDigits () {
                const e = this, t = e._resolveTickFontOptions(0).lineHeight;
                return (e.isHorizontal() ? e.width : e.height) / t;
            }
        }

        function Gn (e, t = [''], n = e, i, a = (() => e[0])) {
            ue(i) || (i = oi('_fallback', e));
            const r = {
                [Symbol.toStringTag]: 'Object',
                _cacheable: !0,
                _scopes: e,
                _rootScopes: n,
                _fallback: i,
                _getTarget: a,
                override: a => Gn([a, ...e], t, n, i),
            };
            return new Proxy(r, {
                deleteProperty: (
                    t,
                    n) => (delete t[n], delete t._keys, delete e[0][n], !0),
                get: (n, i) => ei(n, i, (() => function (e, t, n, i) {
                    let a;
                    for (const r of t) if (a = oi(Jn(r, e), n), ue(
                        a)) return Qn(e, a) ? ai(n, i, e, a) : a;
                }(i, t, e, n))),
                getOwnPropertyDescriptor: (
                    e,
                    t) => Reflect.getOwnPropertyDescriptor(
                    e._scopes[0], t),
                getPrototypeOf: () => Reflect.getPrototypeOf(e[0]),
                has: (e, t) => si(e).includes(t),
                ownKeys: e => si(e),
                set: (e, t, n) => ((e._storage ||
                    (e._storage = a()))[t] = n, delete e[t], delete e._keys, !0),
            });
        }

        function Zn (e, t, n, i) {
            const a = {
                _cacheable: !1,
                _proxy: e,
                _context: t,
                _subProxy: n,
                _stack: new Set,
                _descriptors: Kn(e, i),
                setContext: t => Zn(e, t, n, i),
                override: a => Zn(e.override(a), t, n, i),
            };
            return new Proxy(a, {
                deleteProperty: (t, n) => (delete t[n], delete e[n], !0),
                get: (e, t, n) => ei(e, t, (() => function (e, t, n) {
                    const {
                        _proxy: i,
                        _context: a,
                        _subProxy: r,
                        _descriptors: o,
                    } = e;
                    let s = i[t];
                    de(s) && o.isScriptable(t) && (s = function (e, t, n, i) {
                        const {
                            _proxy: a,
                            _context: r,
                            _subProxy: o,
                            _stack: s,
                        } = n;
                        if (s.has(e)) throw new Error(
                            'Recursion detected: ' + [...s].join('->') + '->' +
                            e);
                        s.add(e), t = t(r, o || i), s.delete(e), U(t) &&
                        (t = ai(a._scopes, a, e, t));
                        return t;
                    }(t, s, e, n));
                    q(s) && s.length && (s = function (e, t, n, i) {
                        const {
                            _proxy: a,
                            _context: r,
                            _subProxy: o,
                            _descriptors: s,
                        } = n;
                        if (ue(r.index) && i(e)) t = t[r.index %
                        t.length]; else if (U(t[0])) {
                            const n = t, i = a._scopes.filter((e => e !== n));
                            t = [];
                            for (const l of n) {
                                const n = ai(i, a, e, l);
                                t.push(Zn(n, r, o && o[e], s));
                            }
                        }
                        return t;
                    }(t, s, e, o.isIndexable));
                    Qn(t, s) && (s = Zn(s, a, r && r[t], o));
                    return s;
                }(e, t, n))),
                getOwnPropertyDescriptor: (t, n) => t._descriptors.allKeys
                    ? Reflect.has(e, n)
                        ? { enumerable: !0, configurable: !0 }
                        : void 0
                    : Reflect.getOwnPropertyDescriptor(e, n),
                getPrototypeOf: () => Reflect.getPrototypeOf(e),
                has: (t, n) => Reflect.has(e, n),
                ownKeys: () => Reflect.ownKeys(e),
                set: (t, n, i) => (e[n] = i, delete t[n], !0),
            });
        }

        function Kn (
            e, t = {
                scriptable: !0,
                indexable: !0,
            }) {
            const {
                _scriptable: n = t.scriptable,
                _indexable: i = t.indexable,
                _allKeys: a = t.allKeys,
            } = e;
            return {
                allKeys: a,
                scriptable: n,
                indexable: i,
                isScriptable: de(n) ? n : () => n,
                isIndexable: de(i) ? i : () => i,
            };
        }

        const Jn = (e, t) => e ? e + ce(t) : t,
            Qn = (e, t) => U(t) && 'adapters' !== e;

        function ei (e, t, n) {
            let i = e[t];
            return ue(i) || (i = n(), ue(i) && (e[t] = i)), i;
        }

        function ti (e, t, n) {return de(e) ? e(t, n) : e;}

        const ni = (e, t) => !0 === e ? t : 'string' == typeof e
            ? le(t, e)
            : void 0;

        function ii (e, t, n, i) {
            for (const a of t) {
                const t = ni(n, a);
                if (t) {
                    e.add(t);
                    const a = ti(t._fallback, n, t);
                    if (ue(a) && a !== n && a !== i) return a;
                } else if (!1 === t && ue(i) && n !== i) return null;
            }
            return !1;
        }

        function ai (e, t, n, i) {
            const a = t._rootScopes, r = ti(t._fallback, n, i),
                o = [...e, ...a], s = new Set;
            s.add(i);
            let l = ri(s, o, n, r || n);
            return null !== l &&
                ((!ue(r) || r === n || (l = ri(s, o, r, l), null !== l)) &&
                    Gn([...s], [''], a, r, (() => function (e, t, n) {
                        const i = e._getTarget();
                        t in i || (i[t] = {});
                        const a = i[t];
                        if (q(a) && U(n)) return n;
                        return a;
                    }(t, n, i))));
        }

        function ri (e, t, n, i) {
            for (; n;) n = ii(e, t, n, i);
            return n;
        }

        function oi (e, t) {
            for (const n of t) {
                if (!n) continue;
                const t = n[e];
                if (ue(t)) return t;
            }
        }

        function si (e) {
            let t = e._keys;
            return t || (t = e._keys = function (e) {
                const t = new Set;
                for (const n of e) for (const e of Object.keys(n).
                    filter((e => !e.startsWith('_')))) t.add(e);
                return [...t];
            }(e._scopes)), t;
        }

        const li = Number.EPSILON || 1e-14,
            ci = (e, t) => t < e.length && !e[t].skip && e[t],
            ui = e => 'x' === e ? 'y' : 'x';

        function di (e, t, n, i) {
            const a = e.skip ? t : e, r = t, o = n.skip ? t : n, s = He(r, a),
                l = He(o, r);
            let c = s / (s + l), u = l / (s + l);
            c = isNaN(c) ? 0 : c, u = isNaN(u) ? 0 : u;
            const d = i * c, h = i * u;
            return {
                previous: {
                    x: r.x - d * (o.x - a.x),
                    y: r.y - d * (o.y - a.y),
                }, next: { x: r.x + h * (o.x - a.x), y: r.y + h * (o.y - a.y) },
            };
        }

        function hi (e, t = 'x') {
            const n = ui(t), i = e.length, a = Array(i).fill(0), r = Array(i);
            let o, s, l, c = ci(e, 0);
            for (o = 0; o < i; ++o) if (s = l, l = c, c = ci(e, o + 1), l) {
                if (c) {
                    const e = c[t] - l[t];
                    a[o] = 0 !== e ? (c[n] - l[n]) / e : 0;
                }
                r[o] = s ? c ? Te(a[o - 1]) !== Te(a[o]) ? 0 : (a[o - 1] +
                    a[o]) / 2 : a[o - 1] : a[o];
            }
            !function (e, t, n) {
                const i = e.length;
                let a, r, o, s, l, c = ci(e, 0);
                for (let u = 0; u < i - 1; ++u) l = c, c = ci(e, u + 1), l &&
                c && (Ee(t[u], 0, li) ? n[u] = n[u + 1] = 0 : (a = n[u] /
                    t[u], r = n[u + 1] / t[u], s = Math.pow(a, 2) +
                    Math.pow(r, 2), s <= 9 ||
                (o = 3 / Math.sqrt(s), n[u] = a * o * t[u], n[u + 1] = r * o *
                    t[u])));
            }(e, a, r), function (e, t, n = 'x') {
                const i = ui(n), a = e.length;
                let r, o, s, l = ci(e, 0);
                for (let c = 0; c < a; ++c) {
                    if (o = s, s = l, l = ci(e, c + 1), !s) continue;
                    const a = s[n], u = s[i];
                    o && (r = (a - o[n]) / 3, s[`cp1${n}`] = a -
                        r, s[`cp1${i}`] = u - r * t[c]), l &&
                    (r = (l[n] - a) / 3, s[`cp2${n}`] = a +
                        r, s[`cp2${i}`] = u + r * t[c]);
                }
            }(e, r, t);
        }

        function fi (e, t, n) {return Math.max(Math.min(e, n), t);}

        function pi (e, t, n, i, a) {
            let r, o, s, l;
            if (t.spanGaps && (e = e.filter((e => !e.skip))), 'monotone' ===
            t.cubicInterpolationMode) hi(e, a); else {
                let n = i ? e[e.length - 1] : e[0];
                for (r = 0, o = e.length; r < o; ++r) s = e[r], l = di(n, s,
                    e[Math.min(r + 1, o - (i ? 0 : 1)) % o],
                    t.tension), s.cp1x = l.previous.x, s.cp1y = l.previous.y, s.cp2x = l.next.x, s.cp2y = l.next.y, n = s;
            }
            t.capBezierPoints && function (e, t) {
                let n, i, a, r, o, s = Ze(e[0], t);
                for (n = 0, i = e.length; n < i; ++n) o = r, r = s, s = n < i -
                    1 && Ze(e[n + 1], t), r && (a = e[n], o &&
                (a.cp1x = fi(a.cp1x, t.left, t.right), a.cp1y = fi(a.cp1y,
                    t.top, t.bottom)), s &&
                (a.cp2x = fi(a.cp2x, t.left, t.right), a.cp2y = fi(a.cp2y,
                    t.top, t.bottom)));
            }(e, n);
        }

        function mi (e, t, n, i) {
            return {
                x: e.x + n * (t.x - e.x),
                y: e.y + n * (t.y - e.y),
            };
        }

        function gi (e, t, n, i) {
            return {
                x: e.x + n * (t.x - e.x),
                y: 'middle' === i ? n < .5 ? e.y : t.y : 'after' === i ? n < 1
                    ? e.y
                    : t.y : n > 0 ? t.y : e.y,
            };
        }

        function vi (e, t, n, i) {
            const a = { x: e.cp2x, y: e.cp2y }, r = { x: t.cp1x, y: t.cp1y },
                o = mi(e, a, n), s = mi(a, r, n), l = mi(r, t, n),
                c = mi(o, s, n), u = mi(s, l, n);
            return mi(c, u, n);
        }

        function yi (e, t, n) {
            return e ? function (e, t) {
                return {
                    x: n => e + e + t - n,
                    setWidth (e) {t = e;},
                    textAlign: e => 'center' === e ? e : 'right' === e
                        ? 'left'
                        : 'right',
                    xPlus: (e, t) => e - t,
                    leftForLtr: (e, t) => e - t,
                };
            }(t, n) : {
                x: e => e,
                setWidth (e) {},
                textAlign: e => e,
                xPlus: (e, t) => e + t,
                leftForLtr: (e, t) => e,
            };
        }

        function bi (e, t) {
            let n, i;
            'ltr' !== t && 'rtl' !== t || (n = e.canvas.style, i = [
                n.getPropertyValue('direction'),
                n.getPropertyPriority('direction')], n.setProperty('direction',
                t, 'important'), e.prevTextDirection = i);
        }

        function xi (e, t) {
            void 0 !== t &&
            (delete e.prevTextDirection, e.canvas.style.setProperty('direction',
                t[0], t[1]));
        }

        function _i (e) {
            return 'angle' === e ? {
                between: ze,
                compare: Fe,
                normalize: Re,
            } : {
                between: (e, t, n) => e >= Math.min(t, n) && e <=
                    Math.max(n, t),
                compare: (e, t) => e - t,
                normalize: e => e,
            };
        }

        function wi ({
                         start: e,
                         end: t,
                         count: n,
                         loop: i,
                         style: a,
                     }) {
            return {
                start: e % n,
                end: t % n,
                loop: i && (t - e + 1) % n == 0,
                style: a,
            };
        }

        function ki (e, t, n) {
            if (!n) return [e];
            const { property: i, start: a, end: r } = n,
                o = t.length, { compare: s, between: l, normalize: c } = _i(
                i), { start: u, end: d, loop: h, style: f } = function (
                e, t, n) {
                    const {
                        property: i,
                        start: a,
                        end: r,
                    } = n, { between: o, normalize: s } = _i(i), l = t.length;
                    let c, u, { start: d, end: h, loop: f } = e;
                    if (f) {
                        for (d += l, h += l, c = 0, u = l; c < u &&
                        o(s(t[d % l][i]), a, r); ++c) d--, h--;
                        d %= l, h %= l;
                    }
                    return h < d && (h += l), {
                        start: d,
                        end: h,
                        loop: f,
                        style: e.style,
                    };
                }(e, t, n), p = [];
            let m, g, v, y = !1, b = null;
            const x = () => y || l(a, v, m) && 0 !== s(a, v),
                _ = () => !y || 0 === s(r, m) || l(r, v, m);
            for (let e = u, n = u; e <= d; ++e) g = t[e % o], g.skip ||
            (m = c(g[i]), m !== v && (y = l(m, a, r), null === b && x() &&
            (b = 0 === s(m, a) ? e : n), null !== b && _() && (p.push(wi({
                start: b,
                end: e,
                loop: h,
                count: o,
                style: f,
            })), b = null), n = e, v = m));
            return null !== b &&
            p.push(wi({ start: b, end: d, loop: h, count: o, style: f })), p;
        }

        function Mi (e, t) {
            const n = [], i = e.segments;
            for (let a = 0; a < i.length; a++) {
                const r = ki(i[a], e.points, t);
                r.length && n.push(...r);
            }
            return n;
        }

        function Li (e, t) {
            const n = e.points, i = e.options.spanGaps, a = n.length;
            if (!a) return [];
            const r = !!e._loop, { start: o, end: s } = function (
                e, t, n, i) {
                let a = 0, r = t - 1;
                if (n && !i) for (; a < t && !e[a].skip;) a++;
                for (; a < t && e[a].skip;) a++;
                for (a %= t, n && (r += a); r > a && e[r % t].skip;) r--;
                return r %= t, { start: a, end: r };
            }(n, a, r, i);
            if (!0 === i) return Si([{ start: o, end: s, loop: r }], n, t);
            return Si(function (e, t, n, i) {
                    const a = e.length, r = [];
                    let o, s = t, l = e[t];
                    for (o = t + 1; o <= n; ++o) {
                        const n = e[o % a];
                        n.skip || n.stop ? l.skip || (i = !1, r.push({
                            start: t % a,
                            end: (o - 1) % a,
                            loop: i,
                        }), t = s = n.stop ? o : null) : (s = o, l.skip &&
                        (t = o)), l = n;
                    }
                    return null !== s &&
                    r.push({ start: t % a, end: s % a, loop: i }), r;
                }(n, o, s < o ? s + a : s, !!e._fullLoop && 0 === o && s === a - 1),
                n, t);
        }

        function Si (e, t, n) {
            return n && n.setContext && t ? function (
                e, t, n) {
                const i = t.length, a = [];
                let r = e[0].start, o = r;
                for (const s of e) {
                    let e, l, c = t[r % i];
                    for (o = r + 1; o <= s.end; o++) {
                        const u = t[o % i];
                        l = Ti(n.setContext(
                            { type: 'segment', p0: c, p1: u })), Ai(l, e) &&
                        (a.push({
                            start: r,
                            end: o - 1,
                            loop: s.loop,
                            style: e,
                        }), e = l, r = o - 1), c = u, e = l;
                    }
                    r < o - 1 && (a.push({
                        start: r,
                        end: o - 1,
                        loop: s.loop,
                        style: l,
                    }), r = o - 1);
                }
                return a;
            }(e, t, n) : e;
        }

        function Ti (e) {
            return {
                backgroundColor: e.backgroundColor,
                borderCapStyle: e.borderCapStyle,
                borderDash: e.borderDash,
                borderDashOffset: e.borderDashOffset,
                borderJoinStyle: e.borderJoinStyle,
                borderWidth: e.borderWidth,
                borderColor: e.borderColor,
            };
        }

        function Ai (e, t) {
            return t && JSON.stringify(e) !== JSON.stringify(t);
        }

        var Di = Object.freeze({
            __proto__: null,
            easingEffects: vn,
            color: R,
            getHoverColor: z,
            noop: B,
            uid: W,
            isNullOrUndef: V,
            isArray: q,
            isObject: U,
            isFinite: X,
            finiteOrDefault: $,
            valueOrDefault: G,
            toPercentage: Z,
            toDimension: K,
            callback: J,
            each: Q,
            _elementsEqual: ee,
            clone: te,
            _merger: ie,
            merge: ae,
            mergeIf: re,
            _mergerIf: oe,
            _deprecated: function (e, t, n, i) {
                void 0 !== t && console.warn(
                    e + ': "' + n + '" is deprecated. Please use "' + i +
                    '" instead');
            },
            resolveObjectKey: le,
            _capitalize: ce,
            defined: ue,
            isFunction: de,
            setsEqual: he,
            toFontString: Ve,
            _measureText: qe,
            _longestText: Ue,
            _alignPixel: Xe,
            clearCanvas: $e,
            drawPoint: Ge,
            _isPointInArea: Ze,
            clipArea: Ke,
            unclipArea: Je,
            _steppedLineTo: Qe,
            _bezierCurveTo: et,
            renderText: tt,
            addRoundedRectPath: nt,
            _lookup: it,
            _lookupByKey: at,
            _rlookupByKey: rt,
            _filterBetween: ot,
            listenArrayEvents: lt,
            unlistenArrayEvents: ct,
            _arrayUnique: ut,
            _createResolver: Gn,
            _attachContext: Zn,
            _descriptors: Kn,
            splineCurve: di,
            splineCurveMonotone: hi,
            _updateBezierControlPoints: pi,
            _getParentNode: dt,
            getStyle: pt,
            getRelativePosition: vt,
            getMaximumSize: bt,
            retinaScale: xt,
            supportsEventListenerOptions: _t,
            readUsedSize: wt,
            fontString: function (e, t, n) {return t + ' ' + e + 'px ' + n;},
            requestAnimFrame: e,
            throttled: t,
            debounce: n,
            _toLeftRightCenter: i,
            _alignStartEnd: a,
            _textX: r,
            _pointInLine: mi,
            _steppedInterpolation: gi,
            _bezierInterpolation: vi,
            formatNumber: Nn,
            toLineHeight: Ot,
            _readValueToProps: Yt,
            toTRBL: Pt,
            toTRBLCorners: It,
            toPadding: jt,
            toFont: Nt,
            resolve: Ht,
            _addGrace: Ft,
            PI: ye,
            TAU: be,
            PITAU: xe,
            INFINITY: _e,
            RAD_PER_DEG: we,
            HALF_PI: ke,
            QUARTER_PI: Me,
            TWO_THIRDS_PI: Le,
            log10: Se,
            sign: Te,
            niceNum: Ae,
            _factorize: De,
            isNumber: Ce,
            almostEquals: Ee,
            almostWhole: Oe,
            _setMinAndMaxByKey: Ye,
            toRadians: Pe,
            toDegrees: Ie,
            _decimalPlaces: je,
            getAngleFromPoint: Ne,
            distanceBetweenPoints: He,
            _angleDiff: Fe,
            _normalizeAngle: Re,
            _angleBetween: ze,
            _limitValue: Be,
            _int16Range: We,
            getRtlAdapter: yi,
            overrideTextDirection: bi,
            restoreTextDirection: xi,
            _boundSegment: ki,
            _boundSegments: Mi,
            _computeSegments: Li,
        });

        class Ci {
            constructor (
                e, t, n) {
                this.type = e, this.scope = t, this.override = n, this.items = Object.create(
                    null);
            }

            isForType (e) {
                return Object.prototype.isPrototypeOf.call(this.type.prototype,
                    e.prototype);
            }

            register (e) {
                const t = this, n = Object.getPrototypeOf(e);
                let i;
                (function (e) {return 'id' in e && 'defaults' in e;})(n) &&
                (i = t.register(n));
                const a = t.items, r = e.id, o = t.scope + '.' + r;
                if (!r) throw new Error('class does not have id: ' + e);
                return r in a || (a[r] = e, function (e, t, n) {
                    const i = ae(Object.create(null),
                        [n ? ve.get(n) : {}, ve.get(t), e.defaults]);
                    ve.set(t, i), e.defaultRoutes && function (e, t) {
                        Object.keys(t).
                            forEach((n => {
                                const i = n.split('.'), a = i.pop(),
                                    r = [e].concat(i).join('.'),
                                    o = t[n].split('.'), s = o.pop(),
                                    l = o.join('.');
                                ve.route(r, a, l, s);
                            }));
                    }(t, e.defaultRoutes);
                    e.descriptors && ve.describe(t, e.descriptors);
                }(e, o, i), t.override && ve.override(e.id, e.overrides)), o;
            }

            get (e) {return this.items[e];}

            unregister (e) {
                const t = this.items, n = e.id, i = this.scope;
                n in t && delete t[n], i && n in ve[i] &&
                (delete ve[i][n], this.override && delete fe[n]);
            }
        }

        var Ei = new class {
            constructor () {
                this.controllers = new Ci(Pn, 'datasets',
                    !0), this.elements = new Ci(In,
                    'elements'), this.plugins = new Ci(Object,
                    'plugins'), this.scales = new Ci($n,
                    'scales'), this._typedRegistries = [
                    this.controllers,
                    this.scales,
                    this.elements];
            }

            add (...e) {this._each('register', e);}

            remove (...e) {this._each('unregister', e);}

            addControllers (...e) {this._each('register', e, this.controllers);}

            addElements (...e) {this._each('register', e, this.elements);}

            addPlugins (...e) {this._each('register', e, this.plugins);}

            addScales (...e) {this._each('register', e, this.scales);}

            getController (e) {
                return this._get(e, this.controllers, 'controller');
            }

            getElement (e) {return this._get(e, this.elements, 'element');}

            getPlugin (e) {return this._get(e, this.plugins, 'plugin');}

            getScale (e) {return this._get(e, this.scales, 'scale');}

            removeControllers (...e) {
                this._each('unregister', e, this.controllers);
            }

            removeElements (...e) {this._each('unregister', e, this.elements);}

            removePlugins (...e) {this._each('unregister', e, this.plugins);}

            removeScales (...e) {this._each('unregister', e, this.scales);}

            _each (e, t, n) {
                const i = this;
                [...t].forEach((t => {
                    const a = n || i._getRegistryForType(t);
                    n || a.isForType(t) || a === i.plugins && t.id ? i._exec(e,
                        a, t) : Q(t, (t => {
                        const a = n || i._getRegistryForType(t);
                        i._exec(e, a, t);
                    }));
                }));
            }

            _exec (e, t, n) {
                const i = ce(e);
                J(n['before' + i], [], n), t[e](n), J(n['after' + i], [], n);
            }

            _getRegistryForType (e) {
                for (let t = 0; t < this._typedRegistries.length; t++) {
                    const n = this._typedRegistries[t];
                    if (n.isForType(e)) return n;
                }
                return this.plugins;
            }

            _get (e, t, n) {
                const i = t.get(e);
                if (void 0 === i) throw new Error(
                    '"' + e + '" is not a registered ' + n + '.');
                return i;
            }
        };

        class Oi {
            constructor () {this._init = [];}

            notify (e, t, n, i) {
                const a = this;
                'beforeInit' === t &&
                (a._init = a._createDescriptors(e, !0), a._notify(a._init, e,
                    'install'));
                const r = i ? a._descriptors(e).filter(i) : a._descriptors(e),
                    o = a._notify(r, e, t, n);
                return 'destroy' === t &&
                (a._notify(r, e, 'stop'), a._notify(a._init, e,
                    'uninstall')), o;
            }

            _notify (e, t, n, i) {
                i = i || {};
                for (const a of e) {
                    const e = a.plugin;
                    if (!1 === J(e[n], [t, i, a.options], e) &&
                        i.cancelable) return !1;
                }
                return !0;
            }

            invalidate () {
                V(this._cache) ||
                (this._oldCache = this._cache, this._cache = void 0);
            }

            _descriptors (e) {
                if (this._cache) return this._cache;
                const t = this._cache = this._createDescriptors(e);
                return this._notifyStateChanges(e), t;
            }

            _createDescriptors (e, t) {
                const n = e && e.config,
                    i = G(n.options && n.options.plugins, {}),
                    a = function (e) {
                        const t = [], n = Object.keys(Ei.plugins.items);
                        for (let e = 0; e < n.length; e++) t.push(
                            Ei.getPlugin(n[e]));
                        const i = e.plugins || [];
                        for (let e = 0; e < i.length; e++) {
                            const n = i[e];
                            -1 === t.indexOf(n) && t.push(n);
                        }
                        return t;
                    }(n);
                return !1 !== i || t ? function (e, t, n, i) {
                    const a = [], r = e.getContext();
                    for (let o = 0; o < t.length; o++) {
                        const s = t[o], l = Yi(n[s.id], i);
                        null !== l &&
                        a.push({ plugin: s, options: Pi(e.config, s, l, r) });
                    }
                    return a;
                }(e, a, i, t) : [];
            }

            _notifyStateChanges (e) {
                const t = this._oldCache || [], n = this._cache,
                    i = (e, t) => e.filter(
                        (e => !t.some((t => e.plugin.id === t.plugin.id))));
                this._notify(i(t, n), e, 'stop'), this._notify(i(n, t), e,
                    'start');
            }
        }

        function Yi (e, t) {return t || !1 !== e ? !0 === e ? {} : e : null;}

        function Pi (e, t, n, i) {
            const a = e.pluginScopeKeys(t), r = e.getOptionScopes(n, a);
            return e.createResolver(r, i, [''],
                { scriptable: !1, indexable: !1, allKeys: !0 });
        }

        function Ii (e, t) {
            const n = ve.datasets[e] || {};
            return ((t.datasets || {})[e] || {}).indexAxis || t.indexAxis ||
                n.indexAxis || 'x';
        }

        function ji (e, t) {
            return 'x' === e || 'y' === e ? e : t.axis ||
                ('top' === (n = t.position) || 'bottom' === n ? 'x' : 'left' ===
                n || 'right' === n ? 'y' : void 0) || e.charAt(0).toLowerCase();
            var n;
        }

        function Ni (e) {
            const t = e.options || (e.options = {});
            t.plugins = G(t.plugins, {}), t.scales = function (
                e, t) {
                const n = fe[e.type] || { scales: {} }, i = t.scales || {},
                    a = Ii(e.type, t), r = Object.create(null),
                    o = Object.create(null);
                return Object.keys(i).
                    forEach((e => {
                        const t = i[e], s = ji(e, t), l = function (e, t) {
                            return e === t
                                ? '_index_'
                                : '_value_';
                        }(s, a), c = n.scales || {};
                        r[s] = r[s] || e, o[e] = re(Object.create(null),
                            [{ axis: s }, t, c[s], c[l]]);
                    })), e.data.datasets.forEach((n => {
                    const a = n.type || e.type, s = n.indexAxis || Ii(a, t),
                        l = (fe[a] || {}).scales || {};
                    Object.keys(l).
                        forEach((e => {
                            const t = function (e, t) {
                                let n = e;
                                return '_index_' === e ? n = t : '_value_' ===
                                    e && (n = 'x' === t ? 'y' : 'x'), n;
                            }(e, s), a = n[t + 'AxisID'] || r[t] || t;
                            o[a] = o[a] || Object.create(null), re(o[a],
                                [{ axis: t }, i[a], l[e]]);
                        }));
                })), Object.keys(o).forEach((e => {
                    const t = o[e];
                    re(t, [ve.scales[t.type], ve.scale]);
                })), o;
            }(e, t);
        }

        function Hi (e) {
            return (e = e || {}).datasets = e.datasets ||
                [], e.labels = e.labels || [], e;
        }

        const Fi = new Map, Ri = new Set;

        function zi (e, t) {
            let n = Fi.get(e);
            return n || (n = t(), Fi.set(e, n), Ri.add(n)), n;
        }

        const Bi = (e, t, n) => {
            const i = le(t, n);
            void 0 !== i && e.add(i);
        };

        class Wi {
            constructor (e) {
                this._config = function (e) {
                    return (e = e || {}).data = Hi(e.data), Ni(e), e;
                }(e), this._scopeCache = new Map, this._resolverCache = new Map;
            }

            get type () {return this._config.type;}

            set type (e) {this._config.type = e;}

            get data () {return this._config.data;}

            set data (e) {this._config.data = Hi(e);}

            get options () {return this._config.options;}

            set options (e) {this._config.options = e;}

            get plugins () {return this._config.plugins;}

            update () {
                const e = this._config;
                this.clearCache(), Ni(e);
            }

            clearCache () {this._scopeCache.clear(), this._resolverCache.clear();}

            datasetScopeKeys (e) {
                return zi(e, (() => [[`datasets.${e}`, '']]));
            }

            datasetAnimationScopeKeys (e, t) {
                return zi(`${e}.transition.${t}`, (() => [
                    [`datasets.${e}.transitions.${t}`, `transitions.${t}`],
                    [`datasets.${e}`, '']]));
            }

            datasetElementScopeKeys (e, t) {
                return zi(`${e}-${t}`, (() => [
                    [
                        `datasets.${e}.elements.${t}`,
                        `datasets.${e}`,
                        `elements.${t}`,
                        '']]));
            }

            pluginScopeKeys (e) {
                const t = e.id;
                return zi(`${this.type}-plugin-${t}`, (() => [
                    [
                        `plugins.${t}`,
                        ...e.additionalOptionScopes || []]]));
            }

            _cachedScopes (e, t) {
                const n = this._scopeCache;
                let i = n.get(e);
                return i && !t || (i = new Map, n.set(e, i)), i;
            }

            getOptionScopes (e, t, n) {
                const { options: i, type: a } = this,
                    r = this._cachedScopes(e, n), o = r.get(t);
                if (o) return o;
                const s = new Set;
                t.forEach((t => {
                    e && (s.add(e), t.forEach((t => Bi(s, e, t)))), t.forEach(
                        (e => Bi(s, i, e))), t.forEach(
                        (e => Bi(s, fe[a] || {}, e))), t.forEach(
                        (e => Bi(s, ve, e))), t.forEach((e => Bi(s, pe, e)));
                }));
                const l = [...s];
                return Ri.has(t) && r.set(t, l), l;
            }

            chartOptionScopes () {
                const { options: e, type: t } = this;
                return [
                    e,
                    fe[t] || {},
                    ve.datasets[t] || {},
                    { type: t },
                    ve,
                    pe];
            }

            resolveNamedOptions (
                e, t, n, i = ['']) {
                const a = { $shared: !0 }, {
                    resolver: r,
                    subPrefixes: o,
                } = Vi(this._resolverCache, e, i);
                let s = r;
                if (function (e, t) {
                    const {
                        isScriptable: n,
                        isIndexable: i,
                    } = Kn(e);
                    for (const a of t) if (n(a) && de(e[a]) || i(a) &&
                        q(e[a])) return !0;
                    return !1;
                }(r, t)) {
                    a.$shared = !1;
                    s = Zn(r, n = de(n) ? n() : n,
                        this.createResolver(e, n, o));
                }
                for (const e of t) a[e] = s[e];
                return a;
            }

            createResolver (e, t, n = [''], i) {
                const { resolver: a } = Vi(this._resolverCache, e, n);
                return U(t) ? Zn(a, t, void 0, i) : a;
            }
        }

        function Vi (e, t, n) {
            let i = e.get(t);
            i || (i = new Map, e.set(t, i));
            const a = n.join();
            let r = i.get(a);
            if (!r) {
                r = {
                    resolver: Gn(t, n),
                    subPrefixes: n.filter(
                        (e => !e.toLowerCase().includes('hover'))),
                }, i.set(a, r);
            }
            return r;
        }

        const qi = ['top', 'bottom', 'left', 'right', 'chartArea'];

        function Ui (e, t) {
            return 'top' === e || 'bottom' === e || -1 === qi.indexOf(e) &&
                'x' === t;
        }

        function Xi (e, t) {
            return function (n, i) {
                return n[e] === i[e]
                    ? n[t] - i[t]
                    : n[e] - i[e];
            };
        }

        function $i (e) {
            const t = e.chart, n = t.options.animation;
            t.notifyPlugins('afterRender'), J(n && n.onComplete, [e], t);
        }

        function Gi (e) {
            const t = e.chart, n = t.options.animation;
            J(n && n.onProgress, [e], t);
        }

        function Zi () {
            return 'undefined' != typeof window && 'undefined' !=
                typeof document;
        }

        function Ki (e) {
            return Zi() && 'string' == typeof e
                ? e = document.getElementById(e)
                : e && e.length && (e = e[0]), e && e.canvas &&
            (e = e.canvas), e;
        }

        const Ji = {}, Qi = e => {
            const t = Ki(e);
            return Object.values(Ji).filter((e => e.canvas === t)).pop();
        };

        class ea {
            constructor (e, t) {
                const i = this;
                this.config = t = new Wi(t);
                const a = Ki(e), r = Qi(a);
                if (r) throw new Error(
                    'Canvas is already in use. Chart with ID \'' + r.id +
                    '\' must be destroyed before the canvas can be reused.');
                const s = t.createResolver(t.chartOptionScopes(),
                    i.getContext());
                this.platform = i._initializePlatform(a, t);
                const l = i.platform.acquireContext(a, s.aspectRatio),
                    c = l && l.canvas, u = c && c.height, d = c && c.width;
                this.id = W(), this.ctx = l, this.canvas = c, this.width = d, this.height = u, this._options = s, this._aspectRatio = this.aspectRatio, this._layers = [], this._metasets = [], this._stacks = void 0, this.boxes = [], this.currentDevicePixelRatio = void 0, this.chartArea = void 0, this._active = [], this._lastEvent = void 0, this._listeners = {}, this._responsiveListeners = void 0, this._sortedMetasets = [], this.scales = {}, this.scale = void 0, this._plugins = new Oi, this.$proxies = {}, this._hiddenIndices = {}, this.attached = !1, this._animationsDisabled = void 0, this.$context = void 0, this._doResize = n(
                    (() => this.update('resize')),
                    s.resizeDelay || 0), Ji[i.id] = i, l && c
                    ? (o.listen(i, 'complete', $i), o.listen(i, 'progress',
                        Gi), i._initialize(), i.attached && i.update())
                    : console.error(
                        'Failed to create chart: can\'t acquire context from the given item');
            }

            get aspectRatio () {
                const {
                    options: {
                        aspectRatio: e,
                        maintainAspectRatio: t,
                    }, width: n, height: i, _aspectRatio: a,
                } = this;
                return V(e) ? t && a ? a : i ? n / i : null : e;
            }

            get data () {return this.config.data;}

            set data (e) {this.config.data = e;}

            get options () {return this._options;}

            set options (e) {this.config.options = e;}

            _initialize () {
                const e = this;
                return e.notifyPlugins('beforeInit'), e.options.responsive
                    ? e.resize()
                    : xt(e,
                        e.options.devicePixelRatio), e.bindEvents(), e.notifyPlugins(
                    'afterInit'), e;
            }

            _initializePlatform (e, t) {
                return t.platform
                    ? new t.platform
                    : !Zi() || 'undefined' != typeof OffscreenCanvas &&
                    e instanceof OffscreenCanvas ? new Jt : new hn;
            }

            clear () {return $e(this.canvas, this.ctx), this;}

            stop () {return o.stop(this), this;}

            resize (e, t) {
                o.running(this)
                    ? this._resizeBeforeDraw = { width: e, height: t }
                    : this._resize(e, t);
            }

            _resize (e, t) {
                const n = this, i = n.options, a = n.canvas,
                    r = i.maintainAspectRatio && n.aspectRatio,
                    o = n.platform.getMaximumSize(a, e, t, r),
                    s = i.devicePixelRatio || n.platform.getDevicePixelRatio();
                n.width = o.width, n.height = o.height, n._aspectRatio = n.aspectRatio, xt(
                    n, s, !0) &&
                (n.notifyPlugins('resize', { size: o }), J(i.onResize, [n, o],
                    n), n.attached && n._doResize() && n.render());
            }

            ensureScalesHaveIDs () {
                Q(this.options.scales || {}, ((e, t) => {e.id = t;}));
            }

            buildOrUpdateScales () {
                const e = this, t = e.options, n = t.scales, i = e.scales,
                    a = Object.keys(i).reduce(((e, t) => (e[t] = !1, e)), {});
                let r = [];
                n && (r = r.concat(Object.keys(n).
                    map((e => {
                        const t = n[e], i = ji(e, t), a = 'r' === i,
                            r = 'x' === i;
                        return {
                            options: t,
                            dposition: a ? 'chartArea' : r ? 'bottom' : 'left',
                            dtype: a ? 'radialLinear' : r
                                ? 'category'
                                : 'linear',
                        };
                    })))), Q(r, (n => {
                    const r = n.options, o = r.id, s = ji(o, r),
                        l = G(r.type, n.dtype);
                    void 0 !== r.position && Ui(r.position, s) ===
                    Ui(n.dposition) || (r.position = n.dposition), a[o] = !0;
                    let c = null;
                    if (o in i && i[o].type === l) c = i[o]; else {
                        c = new (Ei.getScale(l))({
                            id: o,
                            type: l,
                            ctx: e.ctx,
                            chart: e,
                        }), i[c.id] = c;
                    }
                    c.init(r, t);
                })), Q(a, ((e, t) => {e || delete i[t];})), Q(i,
                    (t => {Zt.configure(e, t, t.options), Zt.addBox(e, t);}));
            }

            _updateMetasets () {
                const e = this, t = e._metasets, n = e.data.datasets.length,
                    i = t.length;
                if (t.sort(((e, t) => e.index - t.index)), i > n) {
                    for (let t = n; t < i; ++t) e._destroyDatasetMeta(t);
                    t.splice(n, i - n);
                }
                e._sortedMetasets = t.slice(0).sort(Xi('order', 'index'));
            }

            _removeUnreferencedMetasets () {
                const e = this, {
                    _metasets: t,
                    data: { datasets: n },
                } = e;
                t.length > n.length && delete e._stacks, t.forEach(((t, i) => {
                    0 === n.filter((e => e === t._dataset)).length &&
                    e._destroyDatasetMeta(i);
                }));
            }

            buildOrUpdateControllers () {
                const e = this, t = [], n = e.data.datasets;
                let i, a;
                for (e._removeUnreferencedMetasets(), i = 0, a = n.length; i <
                a; i++) {
                    const a = n[i];
                    let r = e.getDatasetMeta(i);
                    const o = a.type || e.config.type;
                    if (r.type && r.type !== o &&
                    (e._destroyDatasetMeta(i), r = e.getDatasetMeta(
                        i)), r.type = o, r.indexAxis = a.indexAxis ||
                        Ii(o, e.options), r.order = a.order ||
                        0, r.index = i, r.label = '' +
                        a.label, r.visible = e.isDatasetVisible(
                        i), r.controller) r.controller.updateIndex(
                        i), r.controller.linkScales(); else {
                        const n = Ei.getController(o), {
                            datasetElementType: a,
                            dataElementType: s,
                        } = ve.datasets[o];
                        Object.assign(n.prototype, {
                            dataElementType: Ei.getElement(s),
                            datasetElementType: a && Ei.getElement(a),
                        }), r.controller = new n(e, i), t.push(r.controller);
                    }
                }
                return e._updateMetasets(), t;
            }

            _resetElements () {
                const e = this;
                Q(e.data.datasets,
                    ((t, n) => {e.getDatasetMeta(n).controller.reset();}), e);
            }

            reset () {this._resetElements(), this.notifyPlugins('reset');}

            update (e) {
                const t = this, n = t.config;
                n.update(), t._options = n.createResolver(n.chartOptionScopes(),
                    t.getContext()), Q(t.scales, (e => {Zt.removeBox(t, e);}));
                const i = t._animationsDisabled = !t.options.animation;
                t.ensureScalesHaveIDs(), t.buildOrUpdateScales();
                const a = new Set(Object.keys(t._listeners)),
                    r = new Set(t.options.events);
                if (he(a, r) && !!this._responsiveListeners ===
                t.options.responsive ||
                (t.unbindEvents(), t.bindEvents()), t._plugins.invalidate(), !1 ===
                t.notifyPlugins('beforeUpdate',
                    { mode: e, cancelable: !0 })) return;
                const o = t.buildOrUpdateControllers();
                t.notifyPlugins('beforeElementsUpdate');
                let s = 0;
                for (let e = 0, n = t.data.datasets.length; e < n; e++) {
                    const { controller: n } = t.getDatasetMeta(e),
                        a = !i && -1 === o.indexOf(n);
                    n.buildOrUpdateElements(a), s = Math.max(
                        +n.getMaxOverflow(), s);
                }
                t._minPadding = s, t._updateLayout(s), i ||
                Q(o, (e => {e.reset();})), t._updateDatasets(
                    e), t.notifyPlugins(
                    'afterUpdate', { mode: e }), t._layers.sort(
                    Xi('z', '_idx')), t._lastEvent &&
                t._eventHandler(t._lastEvent, !0), t.render();
            }

            _updateLayout (e) {
                const t = this;
                if (!1 ===
                    t.notifyPlugins('beforeLayout', { cancelable: !0 })) return;
                Zt.update(t, t.width, t.height, e);
                const n = t.chartArea, i = n.width <= 0 || n.height <= 0;
                t._layers = [], Q(t.boxes, (e => {
                    i && 'chartArea' === e.position ||
                    (e.configure && e.configure(), t._layers.push(
                        ...e._layers()));
                }), t), t._layers.forEach(
                    ((e, t) => {e._idx = t;})), t.notifyPlugins('afterLayout');
            }

            _updateDatasets (e) {
                const t = this, n = 'function' == typeof e;
                if (!1 !== t.notifyPlugins('beforeDatasetsUpdate', {
                    mode: e,
                    cancelable: !0,
                })) {
                    for (let i = 0, a = t.data.datasets.length; i <
                    a; ++i) t._updateDataset(i, n ? e({ datasetIndex: i }) : e);
                    t.notifyPlugins('afterDatasetsUpdate', { mode: e });
                }
            }

            _updateDataset (e, t) {
                const n = this, i = n.getDatasetMeta(e),
                    a = { meta: i, index: e, mode: t, cancelable: !0 };
                !1 !== n.notifyPlugins('beforeDatasetUpdate', a) &&
                (i.controller._update(t), a.cancelable = !1, n.notifyPlugins(
                    'afterDatasetUpdate', a));
            }

            render () {
                const e = this;
                !1 !== e.notifyPlugins('beforeRender', { cancelable: !0 }) &&
                (o.has(e)
                    ? e.attached && !o.running(e) && o.start(e)
                    : (e.draw(), $i({ chart: e })));
            }

            draw () {
                const e = this;
                let t;
                if (e._resizeBeforeDraw) {
                    const {
                        width: t,
                        height: n,
                    } = e._resizeBeforeDraw;
                    e._resize(t, n), e._resizeBeforeDraw = null;
                }
                if (e.clear(), e.width <= 0 || e.height <= 0) return;
                if (!1 ===
                    e.notifyPlugins('beforeDraw', { cancelable: !0 })) return;
                const n = e._layers;
                for (t = 0; t < n.length && n[t].z <= 0; ++t) n[t].draw(
                    e.chartArea);
                for (e._drawDatasets(); t < n.length; ++t) n[t].draw(
                    e.chartArea);
                e.notifyPlugins('afterDraw');
            }

            _getSortedDatasetMetas (e) {
                const t = this._sortedMetasets, n = [];
                let i, a;
                for (i = 0, a = t.length; i < a; ++i) {
                    const a = t[i];
                    e && !a.visible || n.push(a);
                }
                return n;
            }

            getSortedVisibleDatasetMetas () {
                return this._getSortedDatasetMetas(!0);
            }

            _drawDatasets () {
                const e = this;
                if (!1 === e.notifyPlugins('beforeDatasetsDraw',
                    { cancelable: !0 })) return;
                const t = e.getSortedVisibleDatasetMetas();
                for (let n = t.length - 1; n >= 0; --n) e._drawDataset(t[n]);
                e.notifyPlugins('afterDatasetsDraw');
            }

            _drawDataset (e) {
                const t = this, n = t.ctx, i = e._clip, a = t.chartArea,
                    r = { meta: e, index: e.index, cancelable: !0 };
                !1 !== t.notifyPlugins('beforeDatasetDraw', r) && (Ke(n, {
                    left: !1 === i.left ? 0 : a.left - i.left,
                    right: !1 === i.right ? t.width : a.right + i.right,
                    top: !1 === i.top ? 0 : a.top - i.top,
                    bottom: !1 === i.bottom ? t.height : a.bottom + i.bottom,
                }), e.controller.draw(), Je(
                    n), r.cancelable = !1, t.notifyPlugins('afterDatasetDraw',
                    r));
            }

            getElementsAtEventForMode (e, t, n, i) {
                const a = Dt.modes[t];
                return 'function' == typeof a ? a(this, e, n, i) : [];
            }

            getDatasetMeta (e) {
                const t = this.data.datasets[e], n = this._metasets;
                let i = n.filter((e => e && e._dataset === t)).pop();
                return i || (i = {
                    type: null,
                    data: [],
                    dataset: null,
                    controller: null,
                    hidden: null,
                    xAxisID: null,
                    yAxisID: null,
                    order: t && t.order || 0,
                    index: e,
                    _dataset: t,
                    _parsed: [],
                    _sorted: !1,
                }, n.push(i)), i;
            }

            getContext () {
                return this.$context ||
                    (this.$context = { chart: this, type: 'chart' });
            }

            getVisibleDatasetCount () {return this.getSortedVisibleDatasetMetas().length;}

            isDatasetVisible (e) {
                const t = this.data.datasets[e];
                if (!t) return !1;
                const n = this.getDatasetMeta(e);
                return 'boolean' == typeof n.hidden ? !n.hidden : !t.hidden;
            }

            setDatasetVisibility (e, t) {this.getDatasetMeta(e).hidden = !t;}

            toggleDataVisibility (e) {this._hiddenIndices[e] = !this._hiddenIndices[e];}

            getDataVisibility (e) {return !this._hiddenIndices[e];}

            _updateDatasetVisibility (e, t) {
                const n = this, i = t ? 'show' : 'hide',
                    a = n.getDatasetMeta(e),
                    r = a.controller._resolveAnimations(void 0, i);
                n.setDatasetVisibility(e, t), r.update(a,
                    { visible: t }), n.update(
                    (t => t.datasetIndex === e ? i : void 0));
            }

            hide (e) {this._updateDatasetVisibility(e, !1);}

            show (e) {this._updateDatasetVisibility(e, !0);}

            _destroyDatasetMeta (e) {
                const t = this, n = t._metasets && t._metasets[e];
                n && n.controller &&
                (n.controller._destroy(), delete t._metasets[e]);
            }

            destroy () {
                const e = this, { canvas: t, ctx: n } = e;
                let i, a;
                for (e.stop(), o.remove(
                    e), i = 0, a = e.data.datasets.length; i <
                     a; ++i) e._destroyDatasetMeta(i);
                e.config.clearCache(), t &&
                (e.unbindEvents(), $e(t, n), e.platform.releaseContext(
                    n), e.canvas = null, e.ctx = null), e.notifyPlugins(
                    'destroy'), delete Ji[e.id];
            }

            toBase64Image (...e) {return this.canvas.toDataURL(...e);}

            bindEvents () {
                this.bindUserEvents(), this.options.responsive
                    ? this.bindResponsiveEvents()
                    : this.attached = !0;
            }

            bindUserEvents () {
                const e = this, t = e._listeners, n = e.platform,
                    i = function (t, n, i) {
                        t.offsetX = n, t.offsetY = i, e._eventHandler(t);
                    };
                Q(e.options.events,
                    (a => ((i, a) => {n.addEventListener(e, i, a), t[i] = a;})(
                        a,
                        i)));
            }

            bindResponsiveEvents () {
                const e = this;
                e._responsiveListeners || (e._responsiveListeners = {});
                const t = e._responsiveListeners, n = e.platform,
                    i = (i, a) => {n.addEventListener(e, i, a), t[i] = a;},
                    a = (i, a) => {
                        t[i] && (n.removeEventListener(e, i, a), delete t[i]);
                    }, r = (t, n) => {e.canvas && e.resize(t, n);};
                let o;
                const s = () => {
                    a('attach', s), e.attached = !0, e.resize(), i('resize',
                        r), i('detach', o);
                };
                o = () => {
                    e.attached = !1, a('resize', r), i('attach', s);
                }, n.isAttached(e.canvas) ? s() : o();
            }

            unbindEvents () {
                const e = this;
                Q(e._listeners, ((t, n) => {
                    e.platform.removeEventListener(e, n, t);
                })), e._listeners = {}, Q(e._responsiveListeners, ((t, n) => {
                    e.platform.removeEventListener(e, n, t);
                })), e._responsiveListeners = void 0;
            }

            updateHoverStyle (e, t, n) {
                const i = n ? 'set' : 'remove';
                let a, r, o, s;
                for ('dataset' === t && (a = this.getDatasetMeta(
                    e[0].datasetIndex), a.controller['_' + i +
                'DatasetHoverStyle']()), o = 0, s = e.length; o < s; ++o) {
                    r = e[o];
                    const t = r &&
                        this.getDatasetMeta(r.datasetIndex).controller;
                    t &&
                    t[i + 'HoverStyle'](r.element, r.datasetIndex, r.index);
                }
            }

            getActiveElements () {return this._active || [];}

            setActiveElements (e) {
                const t = this, n = t._active || [], i = e.map((({
                                                                     datasetIndex: e,
                                                                     index: n,
                                                                 }) => {
                    const i = t.getDatasetMeta(e);
                    if (!i) throw new Error('No dataset found at index ' + e);
                    return { datasetIndex: e, element: i.data[n], index: n };
                }));
                !ee(i, n) && (t._active = i, t._updateHoverStyles(i, n));
            }

            notifyPlugins (e, t, n) {
                return this._plugins.notify(this, e, t, n);
            }

            _updateHoverStyles (e, t, n) {
                const i = this, a = i.options.hover, r = (e, t) => e.filter(
                    (e => !t.some(
                        (t => e.datasetIndex === t.datasetIndex && e.index ===
                            t.index)))), o = r(t, e), s = n ? e : r(e, t);
                o.length && i.updateHoverStyle(o, a.mode, !1), s.length &&
                a.mode && i.updateHoverStyle(s, a.mode, !0);
            }

            _eventHandler (e, t) {
                const n = this, i = { event: e, replay: t, cancelable: !0 },
                    a = t => (t.options.events || this.options.events).includes(
                        e.type);
                if (!1 === n.notifyPlugins('beforeEvent', i, a)) return;
                const r = n._handleEvent(e, t);
                return i.cancelable = !1, n.notifyPlugins('afterEvent', i,
                    a), (r || i.changed) && n.render(), n;
            }

            _handleEvent (e, t) {
                const n = this, {
                    _active: i = [],
                    options: a,
                } = n, r = a.hover, o = t;
                let s = [], l = !1, c = null;
                return 'mouseout' !== e.type &&
                (s = n.getElementsAtEventForMode(e, r.mode, r,
                    o), c = 'click' === e.type
                    ? n._lastEvent
                    : e), n._lastEvent = null, Ze(e, n.chartArea,
                    n._minPadding) &&
                (J(a.onHover, [e, s, n], n), 'mouseup' !== e.type && 'click' !==
                e.type && 'contextmenu' !== e.type ||
                J(a.onClick, [e, s, n], n)), l = !ee(s, i), (l || t) &&
                (n._active = s, n._updateHoverStyles(s, i,
                    t)), n._lastEvent = c, l;
            }
        }

        const ta = () => Q(ea.instances, (e => e._plugins.invalidate())),
            na = !0;

        function ia () {
            throw new Error(
                'This method is not implemented: Check that a complete date adapter is provided.');
        }

        Object.defineProperties(ea, {
            defaults: { enumerable: na, value: ve },
            instances: { enumerable: na, value: Ji },
            overrides: { enumerable: na, value: fe },
            registry: { enumerable: na, value: Ei },
            version: { enumerable: na, value: '3.3.2' },
            getChart: { enumerable: na, value: Qi },
            register: {
                enumerable: na,
                value: (...e) => {Ei.add(...e), ta();},
            },
            unregister: {
                enumerable: na,
                value: (...e) => {Ei.remove(...e), ta();},
            },
        });

        class aa {
            constructor (e) {this.options = e || {};}

            formats () {return ia();}

            parse (e, t) {return ia();}

            format (e, t) {return ia();}

            add (e, t, n) {return ia();}

            diff (e, t, n) {return ia();}

            startOf (e, t, n) {return ia();}

            endOf (e, t) {return ia();}
        }

        aa.override = function (e) {Object.assign(aa.prototype, e);};
        var ra = { _date: aa };

        function oa (e) {
            const t = function (e) {
                if (!e._cache.$bar) {
                    const t = e.getMatchingVisibleMetas('bar');
                    let n = [];
                    for (let i = 0, a = t.length; i < a; i++) n = n.concat(
                        t[i].controller.getAllParsedValues(e));
                    e._cache.$bar = ut(n.sort(((e, t) => e - t)));
                }
                return e._cache.$bar;
            }(e);
            let n, i, a, r, o = e._length;
            const s = () => {
                32767 !== a && -32768 !== a &&
                (ue(r) && (o = Math.min(o, Math.abs(a - r) || o)), r = a);
            };
            for (n = 0, i = t.length; n < i; ++n) a = e.getPixelForValue(
                t[n]), s();
            for (r = void 0, n = 0, i = e.ticks.length; n <
            i; ++n) a = e.getPixelForTick(n), s();
            return o;
        }

        function sa (e, t, n, i) {
            return q(e) ? function (
                e, t, n, i) {
                const a = n.parse(e[0], i), r = n.parse(e[1], i),
                    o = Math.min(a, r), s = Math.max(a, r);
                let l = o, c = s;
                Math.abs(o) > Math.abs(s) &&
                (l = s, c = o), t[n.axis] = c, t._custom = {
                    barStart: l,
                    barEnd: c,
                    start: a,
                    end: r,
                    min: o,
                    max: s,
                };
            }(e, t, n, i) : t[n.axis] = n.parse(e, i), t;
        }

        function la (e, t, n, i) {
            const a = e.iScale, r = e.vScale, o = a.getLabels(), s = a === r,
                l = [];
            let c, u, d, h;
            for (c = n, u = n + i; c <
            u; ++c) h = t[c], d = {}, d[a.axis] = s || a.parse(o[c], c), l.push(
                sa(h, d, r, c));
            return l;
        }

        function ca (e) {
            return e && void 0 !== e.barStart && void 0 !== e.barEnd;
        }

        class ua extends Pn {
            parsePrimitiveData (e, t, n, i) {return la(e, t, n, i);}

            parseArrayData (e, t, n, i) {return la(e, t, n, i);}

            parseObjectData (e, t, n, i) {
                const {
                        iScale: a,
                        vScale: r,
                    } = e, { xAxisKey: o = 'x', yAxisKey: s = 'y' } = this._parsing,
                    l = 'x' === a.axis ? o : s, c = 'x' === r.axis ? o : s,
                    u = [];
                let d, h, f, p;
                for (d = n, h = n + i; d <
                h; ++d) p = t[d], f = {}, f[a.axis] = a.parse(le(p, l),
                    d), u.push(sa(le(p, c), f, r, d));
                return u;
            }

            updateRangeFromParsed (e, t, n, i) {
                super.updateRangeFromParsed(e, t, n, i);
                const a = n._custom;
                a && t === this._cachedMeta.vScale &&
                (e.min = Math.min(e.min, a.min), e.max = Math.max(e.max,
                    a.max));
            }

            getLabelAndValue (e) {
                const t = this._cachedMeta, {
                        iScale: n,
                        vScale: i,
                    } = t, a = this.getParsed(e), r = a._custom,
                    o = ca(r) ? '[' + r.start + ', ' + r.end + ']' : '' +
                        i.getLabelForValue(a[i.axis]);
                return { label: '' + n.getLabelForValue(a[n.axis]), value: o };
            }

            initialize () {
                const e = this;
                e.enableOptionSharing = !0, super.initialize();
                e._cachedMeta.stack = e.getDataset().stack;
            }

            update (e) {
                const t = this._cachedMeta;
                this.updateElements(t.data, 0, t.data.length, e);
            }

            updateElements (e, t, n, i) {
                const a = this, r = 'reset' === i, o = a._cachedMeta.vScale,
                    s = o.getBasePixel(), l = o.isHorizontal(),
                    c = a._getRuler(), u = a.resolveDataElementOptions(t, i),
                    d = a.getSharedOptions(u), h = a.includeOptions(i, d);
                a.updateSharedOptions(d, i, u);
                for (let u = t; u < t + n; u++) {
                    const t = a.getParsed(u), n = r || V(t[o.axis])
                        ? { base: s, head: s }
                        : a._calculateBarValuePixels(u),
                        f = a._calculateBarIndexPixels(u, c),
                        p = (t._stacks || {})[o.axis], m = {
                            horizontal: l,
                            base: n.base,
                            enableBorderRadius: !p || ca(t._custom) || a.index ===
                                p._top || a.index === p._bottom,
                            x: l ? n.head : f.center,
                            y: l ? f.center : n.head,
                            height: l ? f.size : void 0,
                            width: l ? void 0 : f.size,
                        };
                    h && (m.options = d ||
                        a.resolveDataElementOptions(u, i)), a.updateElement(
                        e[u], u, m, i);
                }
            }

            _getStacks (e, t) {
                const n = this._cachedMeta.iScale,
                    i = n.getMatchingVisibleMetas(this._type),
                    a = n.options.stacked, r = i.length, o = [];
                let s, l;
                for (s = 0; s < r; ++s) {
                    if (l = i[s], void 0 !== t) {
                        const e = l.controller.getParsed(
                            t)[l.controller._cachedMeta.vScale.axis];
                        if (V(e) || isNaN(e)) continue;
                    }
                    if ((!1 === a || -1 === o.indexOf(l.stack) || void 0 ===
                        a && void 0 === l.stack) && o.push(l.stack), l.index ===
                    e) break;
                }
                return o.length || o.push(void 0), o;
            }

            _getStackCount (e) {return this._getStacks(void 0, e).length;}

            _getStackIndex (e, t, n) {
                const i = this._getStacks(e, n),
                    a = void 0 !== t ? i.indexOf(t) : -1;
                return -1 === a ? i.length - 1 : a;
            }

            _getRuler () {
                const e = this, t = e.options, n = e._cachedMeta, i = n.iScale,
                    a = [];
                let r, o;
                for (r = 0, o = n.data.length; r < o; ++r) a.push(
                    i.getPixelForValue(e.getParsed(r)[i.axis], r));
                const s = t.barThickness;
                return {
                    min: s || oa(i),
                    pixels: a,
                    start: i._startPixel,
                    end: i._endPixel,
                    stackCount: e._getStackCount(),
                    scale: i,
                    grouped: t.grouped,
                    ratio: s ? 1 : t.categoryPercentage * t.barPercentage,
                };
            }

            _calculateBarValuePixels (e) {
                const t = this, {
                        vScale: n,
                        _stacked: i,
                    } = t._cachedMeta, { base: a, minBarLength: r } = t.options,
                    o = t.getParsed(e), s = o._custom, l = ca(s);
                let c, u, d = o[n.axis], h = 0,
                    f = i ? t.applyStack(n, o, i) : d;
                f !== d && (h = f - d, f = d), l &&
                (d = s.barStart, f = s.barEnd - s.barStart, 0 !== d && Te(d) !==
                Te(s.barEnd) && (h = 0), h += d);
                const p = V(a) || l ? h : a;
                let m = n.getPixelForValue(p);
                c = this.chart.getDataVisibility(e)
                    ? n.getPixelForValue(h + f)
                    : m, u = c - m, void 0 !== r && Math.abs(u) < r &&
                (u = u < 0 ? -r : r, 0 === d && (m -= u / 2), c = m + u);
                const g = a || 0;
                if (m === n.getPixelForValue(g)) {
                    const e = n.getLineWidthForValue(g) / 2;
                    u > 0 ? (m += e, u -= e) : u < 0 && (m -= e, u += e);
                }
                return { size: u, base: m, head: c, center: c + u / 2 };
            }

            _calculateBarIndexPixels (e, t) {
                const n = this, i = t.scale, a = n.options, r = a.skipNull,
                    o = G(a.maxBarThickness, 1 / 0);
                let s, l;
                if (t.grouped) {
                    const i = r
                        ? n._getStackCount(e)
                        : t.stackCount,
                        c = 'flex' === a.barThickness ? function (e, t, n, i) {
                            const a = t.pixels, r = a[e];
                            let o = e > 0 ? a[e - 1] : null,
                                s = e < a.length - 1 ? a[e + 1] : null;
                            const l = n.categoryPercentage;
                            null === o && (o = r -
                                (null === s ? t.end - t.start : s -
                                    r)), null === s && (s = r + r - o);
                            const c = r - (r - Math.min(o, s)) / 2 * l;
                            return {
                                chunk: Math.abs(s - o) / 2 * l / i,
                                ratio: n.barPercentage,
                                start: c,
                            };
                        }(e, t, a, i) : function (e, t, n, i) {
                            const a = n.barThickness;
                            let r, o;
                            return V(a)
                                ? (r = t.min *
                                    n.categoryPercentage, o = n.barPercentage)
                                : (r = a * i, o = 1), {
                                chunk: r / i,
                                ratio: o,
                                start: t.pixels[e] - r / 2,
                            };
                        }(e, t, a, i),
                        u = n._getStackIndex(n.index, n._cachedMeta.stack,
                            r ? e : void 0);
                    s = c.start + c.chunk * u + c.chunk / 2, l = Math.min(o,
                        c.chunk * c.ratio);
                } else s = i.getPixelForValue(n.getParsed(e)[i.axis],
                    e), l = Math.min(o, t.min * t.ratio);
                return { base: s - l / 2, head: s + l / 2, center: s, size: l };
            }

            draw () {
                const e = this, t = e.chart, n = e._cachedMeta, i = n.vScale,
                    a = n.data, r = a.length;
                let o = 0;
                for (Ke(t.ctx, t.chartArea); o < r; ++o) null !==
                e.getParsed(o)[i.axis] && a[o].draw(e._ctx);
                Je(t.ctx);
            }
        }

        ua.id = 'bar', ua.defaults = {
            datasetElementType: !1,
            dataElementType: 'bar',
            categoryPercentage: .8,
            barPercentage: .9,
            grouped: !0,
            animations: {
                numbers: {
                    type: 'number',
                    properties: ['x', 'y', 'base', 'width', 'height'],
                },
            },
        }, ua.overrides = {
            interaction: { mode: 'index' },
            scales: {
                _index_: {
                    type: 'category',
                    offset: !0,
                    grid: { offset: !0 },
                }, _value_: { type: 'linear', beginAtZero: !0 },
            },
        };

        class da extends Pn {
            initialize () {this.enableOptionSharing = !0, super.initialize();}

            parseObjectData (e, t, n, i) {
                const {
                        xScale: a,
                        yScale: r,
                    } = e, { xAxisKey: o = 'x', yAxisKey: s = 'y' } = this._parsing,
                    l = [];
                let c, u, d;
                for (c = n, u = n + i; c < u; ++c) d = t[c], l.push({
                    x: a.parse(le(d, o), c),
                    y: r.parse(le(d, s), c),
                    _custom: d && d.r && +d.r,
                });
                return l;
            }

            getMaxOverflow () {
                const { data: e, _parsed: t } = this._cachedMeta;
                let n = 0;
                for (let i = e.length - 1; i >= 0; --i) n = Math.max(n,
                    e[i].size() / 2, t[i]._custom);
                return n > 0 && n;
            }

            getLabelAndValue (e) {
                const t = this._cachedMeta, {
                        xScale: n,
                        yScale: i,
                    } = t, a = this.getParsed(e), r = n.getLabelForValue(a.x),
                    o = i.getLabelForValue(a.y), s = a._custom;
                return {
                    label: t.label,
                    value: '(' + r + ', ' + o + (s ? ', ' + s : '') + ')',
                };
            }

            update (e) {
                const t = this._cachedMeta.data;
                this.updateElements(t, 0, t.length, e);
            }

            updateElements (e, t, n, i) {
                const a = this, r = 'reset' === i, {
                        iScale: o,
                        vScale: s,
                    } = a._cachedMeta, l = a.resolveDataElementOptions(t, i),
                    c = a.getSharedOptions(l), u = a.includeOptions(i, c),
                    d = o.axis, h = s.axis;
                for (let l = t; l < t + n; l++) {
                    const t = e[l], n = !r && a.getParsed(l), c = {},
                        f = c[d] = r
                            ? o.getPixelForDecimal(.5)
                            : o.getPixelForValue(n[d]),
                        p = c[h] = r ? s.getBasePixel() : s.getPixelForValue(
                            n[h]);
                    c.skip = isNaN(f) || isNaN(p), u &&
                    (c.options = a.resolveDataElementOptions(l, i), r &&
                    (c.options.radius = 0)), a.updateElement(t, l, c, i);
                }
                a.updateSharedOptions(c, i, l);
            }

            resolveDataElementOptions (e, t) {
                const n = this.getParsed(e);
                let i = super.resolveDataElementOptions(e, t);
                i.$shared && (i = Object.assign({}, i, { $shared: !1 }));
                const a = i.radius;
                return 'active' !== t && (i.radius = 0), i.radius += G(
                    n && n._custom, a), i;
            }
        }

        da.id = 'bubble', da.defaults = {
            datasetElementType: !1,
            dataElementType: 'point',
            animations: {
                numbers: {
                    type: 'number',
                    properties: ['x', 'y', 'borderWidth', 'radius'],
                },
            },
        }, da.overrides = {
            scales: {
                x: { type: 'linear' },
                y: { type: 'linear' },
            }, plugins: { tooltip: { callbacks: { title: () => '' } } },
        };

        class ha extends Pn {
            constructor (e, t) {
                super(e,
                    t), this.enableOptionSharing = !0, this.innerRadius = void 0, this.outerRadius = void 0, this.offsetX = void 0, this.offsetY = void 0;
            }

            linkScales () {}

            parse (e, t) {
                const n = this.getDataset().data, i = this._cachedMeta;
                let a, r;
                for (a = e, r = e + t; a < r; ++a) i._parsed[a] = +n[a];
            }

            _getRotation () {return Pe(this.options.rotation - 90);}

            _getCircumference () {return Pe(this.options.circumference);}

            _getRotationExtents () {
                let e = be, t = -be;
                const n = this;
                for (let i = 0; i <
                n.chart.data.datasets.length; ++i) if (n.chart.isDatasetVisible(
                    i)) {
                    const a = n.chart.getDatasetMeta(i).controller,
                        r = a._getRotation(), o = a._getCircumference();
                    e = Math.min(e, r), t = Math.max(t, r + o);
                }
                return { rotation: e, circumference: t - e };
            }

            update (e) {
                const t = this, n = t.chart, { chartArea: i } = n,
                    a = t._cachedMeta, r = a.data,
                    o = t.getMaxBorderWidth() + t.getMaxOffset(r),
                    s = Math.max((Math.min(i.width, i.height) - o) / 2, 0),
                    l = Math.min(Z(t.options.cutout, s), 1),
                    c = t._getRingWeight(t.index), {
                        circumference: u,
                        rotation: d,
                    } = t._getRotationExtents(), {
                        ratioX: h,
                        ratioY: f,
                        offsetX: p,
                        offsetY: m,
                    } = function (e, t, n) {
                        let i = 1, a = 1, r = 0, o = 0;
                        if (t < be) {
                            const s = e, l = s + t, c = Math.cos(s),
                                u = Math.sin(s), d = Math.cos(l), h = Math.sin(l),
                                f = (e, t, i) => ze(e, s, l, !0) ? 1 : Math.max(t,
                                    t * n, i, i * n),
                                p = (e, t, i) => ze(e, s, l, !0) ? -1 : Math.min(t,
                                    t * n, i, i * n), m = f(0, c, d),
                                g = f(ke, u, h), v = p(ye, c, d),
                                y = p(ye + ke, u, h);
                            i = (m - v) / 2, a = (g - y) / 2, r = -(m + v) /
                                2, o = -(g + y) / 2;
                        }
                        return { ratioX: i, ratioY: a, offsetX: r, offsetY: o };
                    }(d, u, l), g = (i.width - o) / h, v = (i.height - o) / f,
                    y = Math.max(Math.min(g, v) / 2, 0),
                    b = K(t.options.radius, y), x = (b - Math.max(b * l, 0)) /
                    t._getVisibleDatasetWeightTotal();
                t.offsetX = p * b, t.offsetY = m *
                    b, a.total = t.calculateTotal(), t.outerRadius = b - x *
                    t._getRingWeightOffset(t.index), t.innerRadius = Math.max(
                    t.outerRadius - x * c, 0), t.updateElements(r, 0, r.length,
                    e);
            }

            _circumference (e, t) {
                const n = this, i = n.options, a = n._cachedMeta,
                    r = n._getCircumference();
                return t && i.animation.animateRotate ||
                !this.chart.getDataVisibility(e) || null === a._parsed[e]
                    ? 0
                    : n.calculateCircumference(a._parsed[e] * r / be);
            }

            updateElements (e, t, n, i) {
                const a = this, r = 'reset' === i, o = a.chart, s = o.chartArea,
                    l = o.options.animation, c = (s.left + s.right) / 2,
                    u = (s.top + s.bottom) / 2, d = r && l.animateScale,
                    h = d ? 0 : a.innerRadius, f = d ? 0 : a.outerRadius,
                    p = a.resolveDataElementOptions(t, i),
                    m = a.getSharedOptions(p), g = a.includeOptions(i, m);
                let v, y = a._getRotation();
                for (v = 0; v < t; ++v) y += a._circumference(v, r);
                for (v = t; v < t + n; ++v) {
                    const t = a._circumference(v, r), n = e[v], o = {
                        x: c + a.offsetX,
                        y: u + a.offsetY,
                        startAngle: y,
                        endAngle: y + t,
                        circumference: t,
                        outerRadius: f,
                        innerRadius: h,
                    };
                    g && (o.options = m || a.resolveDataElementOptions(v,
                        i)), y += t, a.updateElement(n, v, o, i);
                }
                a.updateSharedOptions(m, i, p);
            }

            calculateTotal () {
                const e = this._cachedMeta, t = e.data;
                let n, i = 0;
                for (n = 0; n < t.length; n++) {
                    const t = e._parsed[n];
                    null !== t && !isNaN(t) &&
                    this.chart.getDataVisibility(n) && (i += Math.abs(t));
                }
                return i;
            }

            calculateCircumference (e) {
                const t = this._cachedMeta.total;
                return t > 0 && !isNaN(e) ? be * (Math.abs(e) / t) : 0;
            }

            getLabelAndValue (e) {
                const t = this._cachedMeta, n = this.chart,
                    i = n.data.labels || [],
                    a = Nn(t._parsed[e], n.options.locale);
                return { label: i[e] || '', value: a };
            }

            getMaxBorderWidth (e) {
                const t = this;
                let n = 0;
                const i = t.chart;
                let a, r, o, s, l;
                if (!e) for (a = 0, r = i.data.datasets.length; a <
                r; ++a) if (i.isDatasetVisible(a)) {
                    o = i.getDatasetMeta(a), e = o.data, s = o.controller, s !==
                    t && s.configure();
                    break;
                }
                if (!e) return 0;
                for (a = 0, r = e.length; a <
                r; ++a) l = s.resolveDataElementOptions(a), 'inner' !==
                l.borderAlign &&
                (n = Math.max(n, l.borderWidth || 0, l.hoverBorderWidth || 0));
                return n;
            }

            getMaxOffset (e) {
                let t = 0;
                for (let n = 0, i = e.length; n < i; ++n) {
                    const e = this.resolveDataElementOptions(n);
                    t = Math.max(t, e.offset || 0, e.hoverOffset || 0);
                }
                return t;
            }

            _getRingWeightOffset (e) {
                let t = 0;
                for (let n = 0; n < e; ++n) this.chart.isDatasetVisible(n) &&
                (t += this._getRingWeight(n));
                return t;
            }

            _getRingWeight (e) {
                return Math.max(G(this.chart.data.datasets[e].weight, 1), 0);
            }

            _getVisibleDatasetWeightTotal () {
                return this._getRingWeightOffset(
                    this.chart.data.datasets.length) || 1;
            }
        }

        ha.id = 'doughnut', ha.defaults = {
            datasetElementType: !1,
            dataElementType: 'arc',
            animation: { animateRotate: !0, animateScale: !1 },
            animations: {
                numbers: {
                    type: 'number',
                    properties: [
                        'circumference',
                        'endAngle',
                        'innerRadius',
                        'outerRadius',
                        'startAngle',
                        'x',
                        'y',
                        'offset',
                        'borderWidth'],
                },
            },
            cutout: '50%',
            rotation: 0,
            circumference: 360,
            radius: '100%',
            indexAxis: 'r',
        }, ha.overrides = {
            aspectRatio: 1,
            plugins: {
                legend: {
                    labels: {
                        generateLabels (e) {
                            const t = e.data;
                            return t.labels.length && t.datasets.length
                                ? t.labels.map(((t, n) => {
                                    const i = e.getDatasetMeta(0).
                                        controller.
                                        getStyle(n);
                                    return {
                                        text: t,
                                        fillStyle: i.backgroundColor,
                                        strokeStyle: i.borderColor,
                                        lineWidth: i.borderWidth,
                                        hidden: !e.getDataVisibility(n),
                                        index: n,
                                    };
                                }))
                                : [];
                        },
                    },
                    onClick (e, t, n) {
                        n.chart.toggleDataVisibility(t.index), n.chart.update();
                    },
                },
                tooltip: {
                    callbacks: {
                        title: () => '',
                        label (e) {
                            let t = e.label;
                            const n = ': ' + e.formattedValue;
                            return q(t)
                                ? (t = t.slice(), t[0] += n)
                                : t += n, t;
                        },
                    },
                },
            },
        };

        class fa extends Pn {
            initialize () {this.enableOptionSharing = !0, super.initialize();}

            update (e) {
                const t = this, n = t._cachedMeta, {
                    dataset: i,
                    data: a = [],
                    _dataset: r,
                } = n, o = t.chart._animationsDisabled;
                let { start: s, count: l } = function (
                    e, t, n) {
                    const i = t.length;
                    let a = 0, r = i;
                    if (e._sorted) {
                        const { iScale: o, _parsed: s } = e, l = o.axis, {
                            min: c,
                            max: u,
                            minDefined: d,
                            maxDefined: h,
                        } = o.getUserBounds();
                        d && (a = Be(Math.min(at(s, o.axis, c).lo,
                            n ? i : at(t, l, o.getPixelForValue(c)).lo), 0,
                            i - 1)), r = h ? Be(
                            Math.max(at(s, o.axis, u).hi + 1,
                                n ? 0 : at(t, l, o.getPixelForValue(u)).hi + 1),
                            a, i) - a : i - a;
                    }
                    return { start: a, count: r };
                }(n, a, o);
                t._drawStart = s, t._drawCount = l, function (e) {
                    const {
                        xScale: t,
                        yScale: n,
                        _scaleRanges: i,
                    } = e, a = {
                        xmin: t.min,
                        xmax: t.max,
                        ymin: n.min,
                        ymax: n.max,
                    };
                    if (!i) return e._scaleRanges = a, !0;
                    const r = i.xmin !== t.min || i.xmax !== t.max || i.ymin !==
                        n.min || i.ymax !== n.max;
                    return Object.assign(i, a), r;
                }(n) &&
                (s = 0, l = a.length), i._decimated = !!r._decimated, i.points = a;
                const c = t.resolveDatasetElementOptions(e);
                t.options.showLine ||
                (c.borderWidth = 0), c.segment = t.options.segment, t.updateElement(
                    i, void 0, { animated: !o, options: c },
                    e), t.updateElements(a, s, l, e);
            }

            updateElements (e, t, n, i) {
                const a = this, r = 'reset' === i, {
                        iScale: o,
                        vScale: s,
                        _stacked: l,
                    } = a._cachedMeta, c = a.resolveDataElementOptions(t, i),
                    u = a.getSharedOptions(c), d = a.includeOptions(i, u),
                    h = o.axis, f = s.axis, p = a.options.spanGaps,
                    m = Ce(p) ? p : Number.POSITIVE_INFINITY,
                    g = a.chart._animationsDisabled || r || 'none' === i;
                let v = t > 0 && a.getParsed(t - 1);
                for (let c = t; c < t + n; ++c) {
                    const t = e[c], n = a.getParsed(c), p = g ? t : {},
                        y = V(n[f]), b = p[h] = o.getPixelForValue(n[h], c),
                        x = p[f] = r || y
                            ? s.getBasePixel()
                            : s.getPixelForValue(
                                l ? a.applyStack(s, n, l) : n[f], c);
                    p.skip = isNaN(b) || isNaN(x) || y, p.stop = c > 0 && n[h] -
                        v[h] > m, p.parsed = n, d &&
                    (p.options = u || a.resolveDataElementOptions(c, i)), g ||
                    a.updateElement(t, c, p, i), v = n;
                }
                a.updateSharedOptions(u, i, c);
            }

            getMaxOverflow () {
                const e = this, t = e._cachedMeta, n = t.dataset,
                    i = n.options && n.options.borderWidth || 0,
                    a = t.data || [];
                if (!a.length) return i;
                const r = a[0].size(e.resolveDataElementOptions(0)),
                    o = a[a.length - 1].size(
                        e.resolveDataElementOptions(a.length - 1));
                return Math.max(i, r, o) / 2;
            }

            draw () {
                const e = this._cachedMeta;
                e.dataset.updateControlPoints(this.chart.chartArea,
                    e.iScale.axis), super.draw();
            }
        }

        fa.id = 'line', fa.defaults = {
            datasetElementType: 'line',
            dataElementType: 'point',
            showLine: !0,
            spanGaps: !1,
        }, fa.overrides = {
            scales: {
                _index_: { type: 'category' },
                _value_: { type: 'linear' },
            },
        };

        class pa extends Pn {
            constructor (e, t) {
                super(e,
                    t), this.innerRadius = void 0, this.outerRadius = void 0;
            }

            getLabelAndValue (e) {
                const t = this._cachedMeta, n = this.chart,
                    i = n.data.labels || [],
                    a = Nn(t._parsed[e].r, n.options.locale);
                return { label: i[e] || '', value: a };
            }

            update (e) {
                const t = this._cachedMeta.data;
                this._updateRadius(), this.updateElements(t, 0, t.length, e);
            }

            _updateRadius () {
                const e = this, t = e.chart, n = t.chartArea, i = t.options,
                    a = Math.min(n.right - n.left, n.bottom - n.top),
                    r = Math.max(a / 2, 0), o = (r - Math.max(
                    i.cutoutPercentage ? r / 100 * i.cutoutPercentage : 1, 0)) /
                    t.getVisibleDatasetCount();
                e.outerRadius = r - o * e.index, e.innerRadius = e.outerRadius -
                    o;
            }

            updateElements (e, t, n, i) {
                const a = this, r = 'reset' === i, o = a.chart,
                    s = a.getDataset(), l = o.options.animation,
                    c = a._cachedMeta.rScale, u = c.xCenter, d = c.yCenter,
                    h = c.getIndexAngle(0) - .5 * ye;
                let f, p = h;
                const m = 360 / a.countVisibleElements();
                for (f = 0; f < t; ++f) p += a._computeAngle(f, i, m);
                for (f = t; f < t + n; f++) {
                    const t = e[f];
                    let n = p, g = p + a._computeAngle(f, i, m),
                        v = o.getDataVisibility(f)
                            ? c.getDistanceFromCenterForValue(s.data[f])
                            : 0;
                    p = g, r &&
                    (l.animateScale && (v = 0), l.animateRotate && (n = g = h));
                    const y = {
                        x: u,
                        y: d,
                        innerRadius: 0,
                        outerRadius: v,
                        startAngle: n,
                        endAngle: g,
                        options: a.resolveDataElementOptions(f, i),
                    };
                    a.updateElement(t, f, y, i);
                }
            }

            countVisibleElements () {
                const e = this.getDataset(), t = this._cachedMeta;
                let n = 0;
                return t.data.forEach(((t, i) => {
                    !isNaN(e.data[i]) && this.chart.getDataVisibility(i) && n++;
                })), n;
            }

            _computeAngle (e, t, n) {
                return this.chart.getDataVisibility(e)
                    ? Pe(this.resolveDataElementOptions(e, t).angle || n)
                    : 0;
            }
        }

        pa.id = 'polarArea', pa.defaults = {
            dataElementType: 'arc',
            animation: { animateRotate: !0, animateScale: !0 },
            animations: {
                numbers: {
                    type: 'number',
                    properties: [
                        'x',
                        'y',
                        'startAngle',
                        'endAngle',
                        'innerRadius',
                        'outerRadius'],
                },
            },
            indexAxis: 'r',
            startAngle: 0,
        }, pa.overrides = {
            aspectRatio: 1,
            plugins: {
                legend: {
                    labels: {
                        generateLabels (e) {
                            const t = e.data;
                            return t.labels.length && t.datasets.length
                                ? t.labels.map(((t, n) => {
                                    const i = e.getDatasetMeta(0).
                                        controller.
                                        getStyle(n);
                                    return {
                                        text: t,
                                        fillStyle: i.backgroundColor,
                                        strokeStyle: i.borderColor,
                                        lineWidth: i.borderWidth,
                                        hidden: !e.getDataVisibility(n),
                                        index: n,
                                    };
                                }))
                                : [];
                        },
                    },
                    onClick (e, t, n) {
                        n.chart.toggleDataVisibility(t.index), n.chart.update();
                    },
                },
                tooltip: {
                    callbacks: {
                        title: () => '',
                        label: e => e.chart.data.labels[e.dataIndex] + ': ' +
                            e.formattedValue,
                    },
                },
            },
            scales: {
                r: {
                    type: 'radialLinear',
                    angleLines: { display: !1 },
                    beginAtZero: !0,
                    grid: { circular: !0 },
                    pointLabels: { display: !1 },
                    startAngle: 0,
                },
            },
        };

        class ma extends ha {}

        ma.id = 'pie', ma.defaults = {
            cutout: 0,
            rotation: 0,
            circumference: 360,
            radius: '100%',
        };

        class ga extends Pn {
            getLabelAndValue (e) {
                const t = this._cachedMeta.vScale, n = this.getParsed(e);
                return {
                    label: t.getLabels()[e],
                    value: '' + t.getLabelForValue(n[t.axis]),
                };
            }

            update (e) {
                const t = this, n = t._cachedMeta, i = n.dataset,
                    a = n.data || [], r = n.iScale.getLabels();
                if (i.points = a, 'resize' !== e) {
                    const n = t.resolveDatasetElementOptions(e);
                    t.options.showLine || (n.borderWidth = 0);
                    const o = {
                        _loop: !0,
                        _fullLoop: r.length === a.length,
                        options: n,
                    };
                    t.updateElement(i, void 0, o, e);
                }
                t.updateElements(a, 0, a.length, e);
            }

            updateElements (e, t, n, i) {
                const a = this, r = a.getDataset(), o = a._cachedMeta.rScale,
                    s = 'reset' === i;
                for (let l = t; l < t + n; l++) {
                    const t = e[l], n = a.resolveDataElementOptions(l, i),
                        c = o.getPointPositionForValue(l, r.data[l]),
                        u = s ? o.xCenter : c.x, d = s ? o.yCenter : c.y, h = {
                            x: u,
                            y: d,
                            angle: c.angle,
                            skip: isNaN(u) || isNaN(d),
                            options: n,
                        };
                    a.updateElement(t, l, h, i);
                }
            }
        }

        ga.id = 'radar', ga.defaults = {
            datasetElementType: 'line',
            dataElementType: 'point',
            indexAxis: 'r',
            showLine: !0,
            elements: { line: { fill: 'start' } },
        }, ga.overrides = {
            aspectRatio: 1,
            scales: { r: { type: 'radialLinear' } },
        };

        class va extends fa {}

        va.id = 'scatter', va.defaults = {
            showLine: !1,
            fill: !1,
        }, va.overrides = {
            interaction: { mode: 'point' },
            plugins: {
                tooltip: {
                    callbacks: {
                        title: () => '',
                        label: e => '(' + e.label + ', ' + e.formattedValue +
                            ')',
                    },
                },
            },
            scales: { x: { type: 'linear' }, y: { type: 'linear' } },
        };
        var ya = Object.freeze({
            __proto__: null,
            BarController: ua,
            BubbleController: da,
            DoughnutController: ha,
            LineController: fa,
            PolarAreaController: pa,
            PieController: ma,
            RadarController: ga,
            ScatterController: va,
        });

        function ba (e, t, n) {
            const {
                startAngle: i,
                pixelMargin: a,
                x: r,
                y: o,
                outerRadius: s,
                innerRadius: l,
            } = t;
            let c = a / s;
            e.beginPath(), e.arc(r, o, s, i - c, n + c), l > a ? (c = a /
                l, e.arc(r, o, l, n + c, i - c, !0)) : e.arc(r, o, a, n + ke,
                i - ke), e.closePath(), e.clip();
        }

        function xa (e, t, n, i) {
            const a = Yt(e.options.borderRadius,
                ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);
            const r = (n - t) / 2, o = Math.min(r, i * t / 2), s = e => {
                const t = (n - Math.min(r, e)) * i / 2;
                return Be(e, 0, Math.min(r, t));
            };
            return {
                outerStart: s(a.outerStart),
                outerEnd: s(a.outerEnd),
                innerStart: Be(a.innerStart, 0, o),
                innerEnd: Be(a.innerEnd, 0, o),
            };
        }

        function _a (e, t, n, i) {
            return {
                x: n + e * Math.cos(t),
                y: i + e * Math.sin(t),
            };
        }

        function wa (e, t, n, i) {
            const {
                    x: a,
                    y: r,
                    startAngle: o,
                    pixelMargin: s,
                    innerRadius: l,
                } = t, c = Math.max(t.outerRadius + n - s, 0),
                u = l > 0 ? l + n + s : 0, d = i - o,
                h = (d - Math.max(.001, d * c - n / ye) / c) / 2, f = o + h,
                p = i - h, {
                    outerStart: m,
                    outerEnd: g,
                    innerStart: v,
                    innerEnd: y,
                } = xa(t, u, c, p - f), b = c - m, x = c - g, _ = f + m / b,
                w = p - g / x, k = u + v, M = u + y, L = f + v / k,
                S = p - y / M;
            if (e.beginPath(), e.arc(a, r, c, _, w), g > 0) {
                const t = _a(x, w, a, r);
                e.arc(t.x, t.y, g, w, p + ke);
            }
            const T = _a(M, p, a, r);
            if (e.lineTo(T.x, T.y), y > 0) {
                const t = _a(M, S, a, r);
                e.arc(t.x, t.y, y, p + ke, S + Math.PI);
            }
            if (e.arc(a, r, u, p - y / u, f + v / u, !0), v > 0) {
                const t = _a(k, L, a, r);
                e.arc(t.x, t.y, v, L + Math.PI, f - ke);
            }
            const A = _a(b, f, a, r);
            if (e.lineTo(A.x, A.y), m > 0) {
                const t = _a(b, _, a, r);
                e.arc(t.x, t.y, m, f - ke, _);
            }
            e.closePath();
        }

        function ka (e, t, n, i) {
            const { options: a } = t, r = 'inner' === a.borderAlign;
            a.borderWidth && (r
                ? (e.lineWidth = 2 * a.borderWidth, e.lineJoin = 'round')
                : (e.lineWidth = a.borderWidth, e.lineJoin = 'bevel'), t.fullCircles &&
            function (e, t, n) {
                const {
                        x: i,
                        y: a,
                        startAngle: r,
                        pixelMargin: o,
                        fullCircles: s,
                    } = t, l = Math.max(t.outerRadius - o, 0),
                    c = t.innerRadius + o;
                let u;
                for (n && ba(e, t, r + be), e.beginPath(), e.arc(i, a, c,
                    r + be, r, !0), u = 0; u < s; ++u) e.stroke();
                for (e.beginPath(), e.arc(i, a, l, r, r + be), u = 0; u <
                s; ++u) e.stroke();
            }(e, t, r), r && ba(e, t, i), wa(e, t, n, i), e.stroke());
        }

        class Ma extends In {
            constructor (e) {
                super(), this.options = void 0, this.circumference = void 0, this.startAngle = void 0, this.endAngle = void 0, this.innerRadius = void 0, this.outerRadius = void 0, this.pixelMargin = 0, this.fullCircles = 0, e &&
                Object.assign(this, e);
            }

            inRange (e, t, n) {
                const i = this.getProps(['x', 'y'], n), {
                    angle: a,
                    distance: r,
                } = Ne(i, { x: e, y: t }), {
                    startAngle: o,
                    endAngle: s,
                    innerRadius: l,
                    outerRadius: c,
                    circumference: u,
                } = this.getProps([
                    'startAngle',
                    'endAngle',
                    'innerRadius',
                    'outerRadius',
                    'circumference'], n);
                return (u >= be || ze(a, o, s)) && (r >= l && r <= c);
            }

            getCenterPoint (e) {
                const {
                    x: t,
                    y: n,
                    startAngle: i,
                    endAngle: a,
                    innerRadius: r,
                    outerRadius: o,
                } = this.getProps([
                    'x',
                    'y',
                    'startAngle',
                    'endAngle',
                    'innerRadius',
                    'outerRadius',
                    'circumference'], e), s = (i + a) / 2, l = (r + o) / 2;
                return { x: t + Math.cos(s) * l, y: n + Math.sin(s) * l };
            }

            tooltipPosition (e) {return this.getCenterPoint(e);}

            draw (e) {
                const t = this, { options: n, circumference: i } = t,
                    a = (n.offset || 0) / 2;
                if (t.pixelMargin = 'inner' === n.borderAlign
                    ? .33
                    : 0, t.fullCircles = i > be ? Math.floor(i / be) : 0, 0 ===
                i || t.innerRadius < 0 || t.outerRadius < 0) return;
                e.save();
                let r = 0;
                if (a) {
                    r = a / 2;
                    const n = (t.startAngle + t.endAngle) / 2;
                    e.translate(Math.cos(n) * r,
                        Math.sin(n) * r), t.circumference >= ye && (r = a);
                }
                e.fillStyle = n.backgroundColor, e.strokeStyle = n.borderColor;
                const o = function (e, t, n) {
                    const {
                        fullCircles: i,
                        startAngle: a,
                        circumference: r,
                    } = t;
                    let o = t.endAngle;
                    if (i) {
                        wa(e, t, n, a + be);
                        for (let t = 0; t < i; ++t) e.fill();
                        isNaN(r) || (o = a + r % be, r % be == 0 && (o += be));
                    }
                    return wa(e, t, n, o), e.fill(), o;
                }(e, t, r);
                ka(e, t, r, o), e.restore();
            }
        }

        function La (e, t, n = t) {
            e.lineCap = G(n.borderCapStyle, t.borderCapStyle), e.setLineDash(
                G(n.borderDash, t.borderDash)), e.lineDashOffset = G(
                n.borderDashOffset, t.borderDashOffset), e.lineJoin = G(
                n.borderJoinStyle, t.borderJoinStyle), e.lineWidth = G(
                n.borderWidth, t.borderWidth), e.strokeStyle = G(n.borderColor,
                t.borderColor);
        }

        function Sa (e, t, n) {e.lineTo(n.x, n.y);}

        function Ta (e, t, n = {}) {
            const i = e.length, {
                    start: a = 0,
                    end: r = i - 1,
                } = n, { start: o, end: s } = t, l = Math.max(a, o),
                c = Math.min(r, s), u = a < o && r < o || a > s && r > s;
            return {
                count: i,
                start: l,
                loop: t.loop,
                ilen: c < l && !u ? i + c - l : c - l,
            };
        }

        function Aa (e, t, n, i) {
            const {
                    points: a,
                    options: r,
                } = t, { count: o, start: s, loop: l, ilen: c } = Ta(a, n, i),
                u = function (e) {
                    return e.stepped ? Qe : e.tension || 'monotone' ===
                    e.cubicInterpolationMode ? et : Sa;
                }(r);
            let d, h, f, { move: p = !0, reverse: m } = i || {};
            for (d = 0; d <= c; ++d) h = a[(s + (m ? c - d : d)) % o], h.skip ||
            (p ? (e.moveTo(h.x, h.y), p = !1) : u(e, f, h, m,
                r.stepped), f = h);
            return l &&
            (h = a[(s + (m ? c : 0)) % o], u(e, f, h, m, r.stepped)), !!l;
        }

        function Da (e, t, n, i) {
            const a = t.points, {
                count: r,
                start: o,
                ilen: s,
            } = Ta(a, n, i), { move: l = !0, reverse: c } = i || {};
            let u, d, h, f, p, m, g = 0, v = 0;
            const y = e => (o + (c ? s - e : e)) % r, b = () => {
                f !== p && (e.lineTo(g, p), e.lineTo(g, f), e.lineTo(g, m));
            };
            for (l && (d = a[y(0)], e.moveTo(d.x, d.y)), u = 0; u <= s; ++u) {
                if (d = a[y(u)], d.skip) continue;
                const t = d.x, n = d.y, i = 0 | t;
                i === h ? (n < f ? f = n : n > p && (p = n), g = (v * g + t) /
                    ++v) : (b(), e.lineTo(t,
                    n), h = i, v = 0, f = p = n), m = n;
            }
            b();
        }

        function Ca (e) {
            const t = e.options, n = t.borderDash && t.borderDash.length;
            return !(e._decimated || e._loop || t.tension || 'monotone' ===
                t.cubicInterpolationMode || t.stepped || n) ? Da : Aa;
        }

        Ma.id = 'arc', Ma.defaults = {
            borderAlign: 'center',
            borderColor: '#fff',
            borderRadius: 0,
            borderWidth: 2,
            offset: 0,
            angle: void 0,
        }, Ma.defaultRoutes = { backgroundColor: 'backgroundColor' };
        const Ea = 'function' == typeof Path2D;

        function Oa (e, t, n, i) {
            Ea && 1 === t.segments.length ? function (
                e, t, n, i) {
                let a = t._path;
                a || (a = t._path = new Path2D, t.path(a, n, i) &&
                a.closePath()), La(e, t.options), e.stroke(a);
            }(e, t, n, i) : function (e, t, n, i) {
                const {
                    segments: a,
                    options: r,
                } = t, o = Ca(t);
                for (const s of a) La(e, r, s.style), e.beginPath(), o(e, t, s,
                    { start: n, end: n + i - 1 }) && e.closePath(), e.stroke();
            }(e, t, n, i);
        }

        class Ya extends In {
            constructor (e) {
                super(), this.animated = !0, this.options = void 0, this._loop = void 0, this._fullLoop = void 0, this._path = void 0, this._points = void 0, this._segments = void 0, this._decimated = !1, this._pointsUpdated = !1, e &&
                Object.assign(this, e);
            }

            updateControlPoints (e, t) {
                const n = this, i = n.options;
                if ((i.tension || 'monotone' === i.cubicInterpolationMode) &&
                    !i.stepped && !n._pointsUpdated) {
                    const a = i.spanGaps
                        ? n._loop
                        : n._fullLoop;
                    pi(n._points, i, e, a, t), n._pointsUpdated = !0;
                }
            }

            set points (e) {
                const t = this;
                t._points = e, delete t._segments, delete t._path, t._pointsUpdated = !1;
            }

            get points () {return this._points;}

            get segments () {
                return this._segments ||
                    (this._segments = Li(this, this.options.segment));
            }

            first () {
                const e = this.segments, t = this.points;
                return e.length && t[e[0].start];
            }

            last () {
                const e = this.segments, t = this.points, n = e.length;
                return n && t[e[n - 1].end];
            }

            interpolate (e, t) {
                const n = this, i = n.options, a = e[t], r = n.points,
                    o = Mi(n, { property: t, start: a, end: a });
                if (!o.length) return;
                const s = [], l = function (e) {
                    return e.stepped ? gi : e.tension || 'monotone' ===
                    e.cubicInterpolationMode ? vi : mi;
                }(i);
                let c, u;
                for (c = 0, u = o.length; c < u; ++c) {
                    const {
                        start: n,
                        end: u,
                    } = o[c], d = r[n], h = r[u];
                    if (d === h) {
                        s.push(d);
                        continue;
                    }
                    const f = l(d, h, Math.abs((a - d[t]) / (h[t] - d[t])),
                        i.stepped);
                    f[t] = e[t], s.push(f);
                }
                return 1 === s.length ? s[0] : s;
            }

            pathSegment (e, t, n) {return Ca(this)(e, this, t, n);}

            path (e, t, n) {
                const i = this, a = i.segments, r = Ca(i);
                let o = i._loop;
                t = t || 0, n = n || i.points.length - t;
                for (const s of a) o &= r(e, i, s,
                    { start: t, end: t + n - 1 });
                return !!o;
            }

            draw (e, t, n, i) {
                const a = this, r = a.options || {};
                (a.points || []).length && r.borderWidth &&
                (e.save(), Oa(e, a, n, i), e.restore(), a.animated &&
                (a._pointsUpdated = !1, a._path = void 0));
            }
        }

        function Pa (e, t, n, i) {
            const a = e.options, { [n]: r } = e.getProps([n], i);
            return Math.abs(t - r) < a.radius + a.hitRadius;
        }

        Ya.id = 'line', Ya.defaults = {
            borderCapStyle: 'butt',
            borderDash: [],
            borderDashOffset: 0,
            borderJoinStyle: 'miter',
            borderWidth: 3,
            capBezierPoints: !0,
            cubicInterpolationMode: 'default',
            fill: !1,
            spanGaps: !1,
            stepped: !1,
            tension: 0,
        }, Ya.defaultRoutes = {
            backgroundColor: 'backgroundColor',
            borderColor: 'borderColor',
        }, Ya.descriptors = {
            _scriptable: !0,
            _indexable: e => 'borderDash' !== e && 'fill' !== e,
        };

        class Ia extends In {
            constructor (e) {
                super(), this.options = void 0, this.parsed = void 0, this.skip = void 0, this.stop = void 0, e &&
                Object.assign(this, e);
            }

            inRange (e, t, n) {
                const i = this.options, {
                    x: a,
                    y: r,
                } = this.getProps(['x', 'y'], n);
                return Math.pow(e - a, 2) + Math.pow(t - r, 2) <
                    Math.pow(i.hitRadius + i.radius, 2);
            }

            inXRange (e, t) {return Pa(this, e, 'x', t);}

            inYRange (e, t) {return Pa(this, e, 'y', t);}

            getCenterPoint (e) {
                const { x: t, y: n } = this.getProps(['x', 'y'], e);
                return { x: t, y: n };
            }

            size (e) {
                let t = (e = e || this.options || {}).radius || 0;
                t = Math.max(t, t && e.hoverRadius || 0);
                return 2 * (t + (t && e.borderWidth || 0));
            }

            draw (e) {
                const t = this, n = t.options;
                t.skip || n.radius < .1 ||
                (e.strokeStyle = n.borderColor, e.lineWidth = n.borderWidth, e.fillStyle = n.backgroundColor, Ge(
                    e, n, t.x, t.y));
            }

            getRange () {
                const e = this.options || {};
                return e.radius + e.hitRadius;
            }
        }

        function ja (e, t) {
            const {
                x: n,
                y: i,
                base: a,
                width: r,
                height: o,
            } = e.getProps(['x', 'y', 'base', 'width', 'height'], t);
            let s, l, c, u, d;
            return e.horizontal ? (d = o / 2, s = Math.min(n, a), l = Math.max(
                n, a), c = i - d, u = i + d) : (d = r / 2, s = n - d, l = n +
                d, c = Math.min(i, a), u = Math.max(i, a)), {
                left: s,
                top: c,
                right: l,
                bottom: u,
            };
        }

        function Na (e) {
            let t = e.options.borderSkipped;
            const n = {};
            return t ? (t = e.horizontal
                ? Ha(t, 'left', 'right', e.base > e.x)
                : Ha(t, 'bottom', 'top', e.base < e.y), n[t] = !0, n) : n;
        }

        function Ha (e, t, n, i) {
            var a, r, o;
            return i ? (o = n, e = Fa(
                e = (a = e) === (r = t) ? o : a === o ? r : a, n, t)) : e = Fa(
                e, t, n), e;
        }

        function Fa (e, t, n) {return 'start' === e ? t : 'end' === e ? n : e;}

        function Ra (e, t, n, i) {return e ? 0 : Math.max(Math.min(t, i), n);}

        function za (e) {
            const t = ja(e), n = t.right - t.left, i = t.bottom - t.top,
                a = function (e, t, n) {
                    const i = e.options.borderWidth, a = Na(e), r = Pt(i);
                    return {
                        t: Ra(a.top, r.top, 0, n),
                        r: Ra(a.right, r.right, 0, t),
                        b: Ra(a.bottom, r.bottom, 0, n),
                        l: Ra(a.left, r.left, 0, t),
                    };
                }(e, n / 2, i / 2), r = function (e, t, n) {
                    const { enableBorderRadius: i } = e.getProps(
                        ['enableBorderRadius']), a = e.options.borderRadius,
                        r = It(a), o = Math.min(t, n), s = Na(e), l = i || U(a);
                    return {
                        topLeft: Ra(!l || s.top || s.left, r.topLeft, 0, o),
                        topRight: Ra(!l || s.top || s.right, r.topRight, 0, o),
                        bottomLeft: Ra(!l || s.bottom || s.left, r.bottomLeft, 0,
                            o),
                        bottomRight: Ra(!l || s.bottom || s.right, r.bottomRight, 0,
                            o),
                    };
                }(e, n / 2, i / 2);
            return {
                outer: { x: t.left, y: t.top, w: n, h: i, radius: r },
                inner: {
                    x: t.left + a.l,
                    y: t.top + a.t,
                    w: n - a.l - a.r,
                    h: i - a.t - a.b,
                    radius: {
                        topLeft: Math.max(0, r.topLeft - Math.max(a.t, a.l)),
                        topRight: Math.max(0, r.topRight - Math.max(a.t, a.r)),
                        bottomLeft: Math.max(0,
                            r.bottomLeft - Math.max(a.b, a.l)),
                        bottomRight: Math.max(0,
                            r.bottomRight - Math.max(a.b, a.r)),
                    },
                },
            };
        }

        function Ba (e, t, n, i) {
            const a = null === t, r = null === n,
                o = e && !(a && r) && ja(e, i);
            return o && (a || t >= o.left && t <= o.right) &&
                (r || n >= o.top && n <= o.bottom);
        }

        function Wa (e, t) {e.rect(t.x, t.y, t.w, t.h);}

        Ia.id = 'point', Ia.defaults = {
            borderWidth: 1,
            hitRadius: 1,
            hoverBorderWidth: 1,
            hoverRadius: 4,
            pointStyle: 'circle',
            radius: 3,
            rotation: 0,
        }, Ia.defaultRoutes = {
            backgroundColor: 'backgroundColor',
            borderColor: 'borderColor',
        };

        class Va extends In {
            constructor (e) {
                super(), this.options = void 0, this.horizontal = void 0, this.base = void 0, this.width = void 0, this.height = void 0, e &&
                Object.assign(this, e);
            }

            draw (e) {
                const t = this.options, { inner: n, outer: i } = za(this),
                    a = (r = i.radius).topLeft || r.topRight || r.bottomLeft ||
                    r.bottomRight ? nt : Wa;
                var r;
                e.save(), i.w === n.w && i.h === n.h ||
                (e.beginPath(), a(e, i), e.clip(), a(e,
                    n), e.fillStyle = t.borderColor, e.fill(
                    'evenodd')), e.beginPath(), a(e,
                    n), e.fillStyle = t.backgroundColor, e.fill(), e.restore();
            }

            inRange (e, t, n) {return Ba(this, e, t, n);}

            inXRange (e, t) {return Ba(this, e, null, t);}

            inYRange (e, t) {return Ba(this, null, e, t);}

            getCenterPoint (e) {
                const {
                    x: t,
                    y: n,
                    base: i,
                    horizontal: a,
                } = this.getProps(['x', 'y', 'base', 'horizontal'], e);
                return { x: a ? (t + i) / 2 : t, y: a ? n : (n + i) / 2 };
            }

            getRange (e) {return 'x' === e ? this.width / 2 : this.height / 2;}
        }

        Va.id = 'bar', Va.defaults = {
            borderSkipped: 'start',
            borderWidth: 0,
            borderRadius: 0,
            enableBorderRadius: !0,
            pointStyle: void 0,
        }, Va.defaultRoutes = {
            backgroundColor: 'backgroundColor',
            borderColor: 'borderColor',
        };
        var qa = Object.freeze({
            __proto__: null,
            ArcElement: Ma,
            LineElement: Ya,
            PointElement: Ia,
            BarElement: Va,
        });

        function Ua (e) {
            if (e._decimated) {
                const t = e._data;
                delete e._decimated, delete e._data, Object.defineProperty(e,
                    'data', { value: t });
            }
        }

        function Xa (e) {e.data.datasets.forEach((e => {Ua(e);}));}

        var $a = {
            id: 'decimation',
            defaults: { algorithm: 'min-max', enabled: !1 },
            beforeElementsUpdate: (e, t, n) => {
                if (!n.enabled) return void Xa(e);
                const i = e.width;
                e.data.datasets.forEach(((t, a) => {
                    const { _data: r, indexAxis: o } = t,
                        s = e.getDatasetMeta(a), l = r || t.data;
                    if ('y' === Ht([o, e.options.indexAxis])) return;
                    if ('line' !== s.type) return;
                    const c = e.scales[s.xAxisID];
                    if ('linear' !== c.type && 'time' !== c.type) return;
                    if (e.options.parsing) return;
                    let u, { start: d, count: h } = function (
                        e, t) {
                        const n = t.length;
                        let i, a = 0;
                        const { iScale: r } = e, {
                            min: o,
                            max: s,
                            minDefined: l,
                            maxDefined: c,
                        } = r.getUserBounds();
                        return l &&
                        (a = Be(at(t, r.axis, o).lo, 0, n - 1)), i = c ? Be(
                            at(t, r.axis, s).hi + 1, a, n) - a : n -
                            a, { start: a, count: i };
                    }(s, l);
                    if (h <= 4 * i) Ua(t); else {
                        switch (V(r) &&
                        (t._data = l, delete t.data, Object.defineProperty(t,
                            'data', {
                                configurable: !0,
                                enumerable: !0,
                                get: function () {return this._decimated;},
                                set: function (e) {this._data = e;},
                            })), n.algorithm) {
                            case'lttb':
                                u = function (
                                    e, t, n, i, a) {
                                    const r = a.samples || i;
                                    if (r >= n) return e.slice(t, t + n);
                                    const o = [], s = (n - 2) / (r - 2);
                                    let l = 0;
                                    const c = t + n - 1;
                                    let u, d, h, f, p, m = t;
                                    for (o[l++] = e[m], u = 0; u < r - 2; u++) {
                                        let i, a = 0, r = 0;
                                        const c = Math.floor((u + 1) * s) + 1 +
                                            t, g = Math.min(
                                            Math.floor((u + 2) * s) + 1, n) + t,
                                            v = g - c;
                                        for (i = c; i <
                                        g; i++) a += e[i].x, r += e[i].y;
                                        a /= v, r /= v;
                                        const y = Math.floor(u * s) + 1 + t,
                                            b = Math.floor((u + 1) * s) + 1 +
                                                t, { x: x, y: _ } = e[m];
                                        for (h = f = -1, i = y; i <
                                        b; i++) f = .5 * Math.abs(
                                            (x - a) * (e[i].y - _) -
                                            (x - e[i].x) * (r - _)), f > h &&
                                        (h = f, d = e[i], p = i);
                                        o[l++] = d, m = p;
                                    }
                                    return o[l++] = e[c], o;
                                }(l, d, h, i, n);
                                break;
                            case'min-max':
                                u = function (e, t, n, i) {
                                    let a, r, o, s, l, c, u, d, h, f, p = 0,
                                        m = 0;
                                    const g = [], v = t + n - 1, y = e[t].x,
                                        b = e[v].x - y;
                                    for (a = t; a < t + n; ++a) {
                                        r = e[a], o = (r.x - y) / b *
                                            i, s = r.y;
                                        const t = 0 | o;
                                        if (t === l) s < h
                                            ? (h = s, c = a)
                                            : s > f && (f = s, u = a), p = (m *
                                            p + r.x) / ++m; else {
                                            const n = a - 1;
                                            if (!V(c) && !V(u)) {
                                                const t = Math.min(c, u),
                                                    i = Math.max(c, u);
                                                t !== d && t !== n &&
                                                g.push({ ...e[t], x: p }), i !==
                                                d && i !== n &&
                                                g.push({ ...e[i], x: p });
                                            }
                                            a > 0 && n !== d &&
                                            g.push(e[n]), g.push(
                                                r), l = t, m = 0, h = f = s, c = u = d = a;
                                        }
                                    }
                                    return g;
                                }(l, d, h, i);
                                break;
                            default:
                                throw new Error(
                                    `Unsupported decimation algorithm '${n.algorithm}'`);
                        }
                        t._decimated = u;
                    }
                }));
            },
            destroy (e) {Xa(e);},
        };

        function Ga (e, t, n) {
            const i = function (e) {
                const t = e.options, n = t.fill;
                let i = G(n && n.target, n);
                return void 0 === i && (i = !!t.backgroundColor), !1 !== i &&
                null !== i && (!0 === i ? 'origin' : i);
            }(e);
            if (U(i)) return !isNaN(i.value) && i;
            let a = parseFloat(i);
            return X(a) && Math.floor(a) === a
                ? ('-' !== i[0] && '+' !== i[0] || (a = t + a), !(a === t || a <
                    0 || a >= n) && a)
                : ['origin', 'start', 'end', 'stack'].indexOf(i) >= 0 && i;
        }

        class Za {
            constructor (e) {this.x = e.x, this.y = e.y, this.radius = e.radius;}

            pathSegment (e, t, n) {
                const { x: i, y: a, radius: r } = this;
                return t = t || { start: 0, end: be }, e.arc(i, a, r, t.end,
                    t.start, !0), !n.bounds;
            }

            interpolate (e) {
                const { x: t, y: n, radius: i } = this, a = e.angle;
                return {
                    x: t + Math.cos(a) * i,
                    y: n + Math.sin(a) * i,
                    angle: a,
                };
            }
        }

        function Ka (e) {
            return (e.scale || {}).getPointPositionForValue
                ? function (e) {
                    const { scale: t, fill: n } = e, i = t.options,
                        a = t.getLabels().length, r = [],
                        o = i.reverse ? t.max : t.min,
                        s = i.reverse ? t.min : t.max;
                    let l, c, u;
                    if (u = 'start' === n ? o : 'end' === n ? s : U(n)
                        ? n.value
                        : t.getBaseValue(), i.grid.circular) return c = t.getPointPositionForValue(
                        0, o), new Za({
                        x: c.x,
                        y: c.y,
                        radius: t.getDistanceFromCenterForValue(u),
                    });
                    for (l = 0; l < a; ++l) r.push(
                        t.getPointPositionForValue(l, u));
                    return r;
                }(e)
                : function (e) {
                    const { scale: t = {}, fill: n } = e;
                    let i, a = null;
                    return 'start' === n ? a = t.bottom : 'end' === n
                        ? a = t.top
                        : U(n)
                            ? a = t.getPixelForValue(n.value)
                            : t.getBasePixel && (a = t.getBasePixel()), X(a)
                        ? (i = t.isHorizontal(), {
                            x: i ? a : null,
                            y: i ? null : a,
                        })
                        : null;
                }(e);
        }

        function Ja (e) {
            const { chart: t, scale: n, index: i, line: a } = e, r = [],
                o = a.segments, s = a.points, l = function (e, t) {
                    const n = [], i = e.getSortedVisibleDatasetMetas();
                    for (let e = 0; e < i.length; e++) {
                        const a = i[e];
                        if (a.index === t) break;
                        Qa(a) && n.unshift(a.dataset);
                    }
                    return n;
                }(t, i);
            l.push(nr({ x: null, y: n.bottom }, a));
            for (let e = 0; e < o.length; e++) {
                const t = o[e];
                for (let e = t.start; e <= t.end; e++) er(r, s[e], l);
            }
            return new Ya({ points: r, options: {} });
        }

        const Qa = e => 'line' === e.type && !e.hidden;

        function er (e, t, n) {
            const i = [];
            for (let a = 0; a < n.length; a++) {
                const r = n[a], {
                    first: o,
                    last: s,
                    point: l,
                } = tr(r, t, 'x');
                if (!(!l || o && s)) if (o) i.unshift(l); else if (e.push(
                    l), !s) break;
            }
            e.push(...i);
        }

        function tr (e, t, n) {
            const i = e.interpolate(t, n);
            if (!i) return {};
            const a = i[n], r = e.segments, o = e.points;
            let s = !1, l = !1;
            for (let e = 0; e < r.length; e++) {
                const t = r[e], i = o[t.start][n], c = o[t.end][n];
                if (a >= i && a <= c) {
                    s = a === i, l = a === c;
                    break;
                }
            }
            return { first: s, last: l, point: i };
        }

        function nr (e, t) {
            let n = [], i = !1;
            return q(e) ? (i = !0, n = e) : n = function (
                e, t) {
                const {
                    x: n = null,
                    y: i = null,
                } = e || {}, a = t.points, r = [];
                return t.segments.forEach((e => {
                    const t = a[e.start], o = a[e.end];
                    null !== i ? (r.push({ x: t.x, y: i }), r.push(
                        { x: o.x, y: i })) : null !== n &&
                        (r.push({ x: n, y: t.y }), r.push({ x: n, y: o.y }));
                })), r;
            }(e, t), n.length
                ? new Ya({
                    points: n,
                    options: { tension: 0 },
                    _loop: i,
                    _fullLoop: i,
                })
                : null;
        }

        function ir (e, t, n) {
            let i = e[t].fill;
            const a = [t];
            let r;
            if (!n) return i;
            for (; !1 !== i && -1 === a.indexOf(i);) {
                if (!X(i)) return i;
                if (r = e[i], !r) return !1;
                if (r.visible) return i;
                a.push(i), i = r.fill;
            }
            return !1;
        }

        function ar (e, t, n) {
            e.beginPath(), t.path(e), e.lineTo(t.last().x, n), e.lineTo(
                t.first().x, n), e.closePath(), e.clip();
        }

        function rr (e, t, n, i) {
            if (i) return;
            let a = t[e], r = n[e];
            return 'angle' === e && (a = Re(a), r = Re(r)), {
                property: e,
                start: a,
                end: r,
            };
        }

        function or (e, t, n, i) {
            return e && t ? i(e[n], t[n]) : e ? e[n] : t
                ? t[n]
                : 0;
        }

        function sr (e, t, n) {
            const {
                top: i,
                bottom: a,
            } = t.chart.chartArea, { property: r, start: o, end: s } = n || {};
            'x' === r && (e.beginPath(), e.rect(o, i, s - o, a - i), e.clip());
        }

        function lr (e, t, n, i) {
            const a = t.interpolate(n, i);
            a && e.lineTo(a.x, a.y);
        }

        function cr (e, t) {
            const {
                line: n,
                target: i,
                property: a,
                color: r,
                scale: o,
            } = t, s = function (e, t, n) {
                const i = e.segments, a = e.points, r = t.points, o = [];
                for (const e of i) {
                    const i = rr(n, a[e.start], a[e.end], e.loop);
                    if (!t.segments) {
                        o.push({
                            source: e,
                            target: i,
                            start: a[e.start],
                            end: a[e.end],
                        });
                        continue;
                    }
                    const s = Mi(t, i);
                    for (const t of s) {
                        const s = rr(n, r[t.start], r[t.end], t.loop),
                            l = ki(e, a, s);
                        for (const e of l) o.push({
                            source: e,
                            target: t,
                            start: { [n]: or(i, s, 'start', Math.max) },
                            end: { [n]: or(i, s, 'end', Math.min) },
                        });
                    }
                }
                return o;
            }(n, i, a);
            for (const {
                source: t,
                target: l,
                start: c,
                end: u
            } of s) {
                const { style: { backgroundColor: s = r } = {} } = t;
                e.save(), e.fillStyle = s, sr(e, o, rr(a, c, u)), e.beginPath();
                const d = !!n.pathSegment(e, t);
                d ? e.closePath() : lr(e, i, u, a);
                const h = !!i.pathSegment(e, l, { move: d, reverse: !0 }),
                    f = d && h;
                f || lr(e, i, c, a), e.closePath(), e.fill(
                    f ? 'evenodd' : 'nonzero'), e.restore();
            }
        }

        function ur (e, t, n) {
            const i = function (e) {
                    const {
                        chart: t,
                        fill: n,
                        line: i,
                    } = e;
                    if (X(n)) return function (e, t) {
                        const n = e.getDatasetMeta(t);
                        return n && e.isDatasetVisible(t) ? n.dataset : null;
                    }(t, n);
                    if ('stack' === n) return Ja(e);
                    const a = Ka(e);
                    return a instanceof Za ? a : nr(a, i);
                }(t), { line: a, scale: r, axis: o } = t, s = a.options, l = s.fill,
                c = s.backgroundColor, { above: u = c, below: d = c } = l || {};
            i && a.points.length && (Ke(e, n), function (e, t) {
                const {
                    line: n,
                    target: i,
                    above: a,
                    below: r,
                    area: o,
                    scale: s,
                } = t, l = n._loop ? 'angle' : t.axis;
                e.save(), 'x' === l && r !== a && (ar(e, i, o.top), cr(e, {
                    line: n,
                    target: i,
                    color: a,
                    scale: s,
                    property: l,
                }), e.restore(), e.save(), ar(e, i, o.bottom)), cr(e, {
                    line: n,
                    target: i,
                    color: r,
                    scale: s,
                    property: l,
                }), e.restore();
            }(e, {
                line: a,
                target: i,
                above: u,
                below: d,
                area: n,
                scale: r,
                axis: o,
            }), Je(e));
        }

        var dr = {
            id: 'filler',
            afterDatasetsUpdate (e, t, n) {
                const i = (e.data.datasets || []).length, a = [];
                let r, o, s, l;
                for (o = 0; o < i; ++o) r = e.getDatasetMeta(
                    o), s = r.dataset, l = null, s && s.options && s instanceof
                Ya && (l = {
                    visible: e.isDatasetVisible(o),
                    index: o,
                    fill: Ga(s, o, i),
                    chart: e,
                    axis: r.controller.options.indexAxis,
                    scale: r.vScale,
                    line: s,
                }), r.$filler = l, a.push(l);
                for (o = 0; o < i; ++o) l = a[o], l && !1 !== l.fill &&
                (l.fill = ir(a, o, n.propagate));
            },
            beforeDraw (e, t, n) {
                const i = 'beforeDraw' === n.drawTime,
                    a = e.getSortedVisibleDatasetMetas(), r = e.chartArea;
                for (let t = a.length - 1; t >= 0; --t) {
                    const n = a[t].$filler;
                    n && (n.line.updateControlPoints(r, n.axis), i &&
                    ur(e.ctx, n, r));
                }
            },
            beforeDatasetsDraw (e, t, n) {
                if ('beforeDatasetsDraw' !== n.drawTime) return;
                const i = e.getSortedVisibleDatasetMetas();
                for (let t = i.length - 1; t >= 0; --t) {
                    const n = i[t].$filler;
                    n && ur(e.ctx, n, e.chartArea);
                }
            },
            beforeDatasetDraw (e, t, n) {
                const i = t.meta.$filler;
                i && !1 !== i.fill && 'beforeDatasetDraw' === n.drawTime &&
                ur(e.ctx, i, e.chartArea);
            },
            defaults: { propagate: !0, drawTime: 'beforeDatasetDraw' },
        };
        const hr = (e, t) => {
            let { boxHeight: n = t, boxWidth: i = t } = e;
            return e.usePointStyle &&
            (n = Math.min(n, t), i = Math.min(i, t)), {
                boxWidth: i,
                boxHeight: n,
                itemHeight: Math.max(t, n),
            };
        };

        class fr extends In {
            constructor (e) {super(), this._added = !1, this.legendHitBoxes = [], this._hoveredItem = null, this.doughnutMode = !1, this.chart = e.chart, this.options = e.options, this.ctx = e.ctx, this.legendItems = void 0, this.columnSizes = void 0, this.lineWidths = void 0, this.maxHeight = void 0, this.maxWidth = void 0, this.top = void 0, this.bottom = void 0, this.left = void 0, this.right = void 0, this.height = void 0, this.width = void 0, this._margins = void 0, this.position = void 0, this.weight = void 0, this.fullSize = void 0;}

            update (e, t, n) {
                const i = this;
                i.maxWidth = e, i.maxHeight = t, i._margins = n, i.setDimensions(), i.buildLabels(), i.fit();
            }

            setDimensions () {
                const e = this;
                e.isHorizontal()
                    ? (e.width = e.maxWidth, e.left = 0, e.right = e.width)
                    : (e.height = e.maxHeight, e.top = 0, e.bottom = e.height);
            }

            buildLabels () {
                const e = this, t = e.options.labels || {};
                let n = J(t.generateLabels, [e.chart], e) || [];
                t.filter &&
                (n = n.filter((n => t.filter(n, e.chart.data)))), t.sort &&
                (n = n.sort(((n, i) => t.sort(n, i,
                    e.chart.data)))), e.options.reverse &&
                n.reverse(), e.legendItems = n;
            }

            fit () {
                const e = this, { options: t, ctx: n } = e;
                if (!t.display) return void (e.width = e.height = 0);
                const i = t.labels, a = Nt(i.font), r = a.size,
                    o = e._computeTitleHeight(), {
                        boxWidth: s,
                        itemHeight: l,
                    } = hr(i, r);
                let c, u;
                n.font = a.string, e.isHorizontal()
                    ? (c = e.maxWidth, u = e._fitRows(o, r, s, l) + 10)
                    : (u = e.maxHeight, c = e._fitCols(o, r, s, l) +
                        10), e.width = Math.min(c,
                    t.maxWidth || e.maxWidth), e.height = Math.min(u,
                    t.maxHeight || e.maxHeight);
            }

            _fitRows (e, t, n, i) {
                const a = this, {
                        ctx: r,
                        maxWidth: o,
                        options: { labels: { padding: s } },
                    } = a, l = a.legendHitBoxes = [], c = a.lineWidths = [0],
                    u = i + s;
                let d = e;
                r.textAlign = 'left', r.textBaseline = 'middle';
                let h = -1, f = -u;
                return a.legendItems.forEach(((e, a) => {
                    const p = n + t / 2 + r.measureText(e.text).width;
                    (0 === a || c[c.length - 1] + p + 2 * s > o) &&
                    (d += u, c[c.length -
                    (a > 0 ? 0 : 1)] = 0, f += u, h++), l[a] = {
                        left: 0,
                        top: f,
                        row: h,
                        width: p,
                        height: i,
                    }, c[c.length - 1] += p + s;
                })), d;
            }

            _fitCols (e, t, n, i) {
                const a = this, {
                        ctx: r,
                        maxHeight: o,
                        options: { labels: { padding: s } },
                    } = a, l = a.legendHitBoxes = [], c = a.columnSizes = [],
                    u = o - e;
                let d = s, h = 0, f = 0, p = 0, m = 0, g = 0;
                return a.legendItems.forEach(((e, a) => {
                    const o = n + t / 2 + r.measureText(e.text).width;
                    a > 0 && f + t + 2 * s > u &&
                    (d += h + s, c.push({ width: h, height: f }), p += h +
                        s, g++, m = 0, h = f = 0), h = Math.max(h, o), f += t +
                        s, l[a] = {
                        left: p,
                        top: m,
                        col: g,
                        width: o,
                        height: i,
                    }, m += i + s;
                })), d += h, c.push({ width: h, height: f }), d;
            }

            adjustHitBoxes () {
                const e = this;
                if (!e.options.display) return;
                const t = e._computeTitleHeight(), {
                    legendHitBoxes: n,
                    options: { align: i, labels: { padding: r } },
                } = e;
                if (this.isHorizontal()) {
                    let o = 0, s = a(i, e.left + r, e.right - e.lineWidths[o]);
                    for (const l of n) o !== l.row &&
                    (o = l.row, s = a(i, e.left + r,
                        e.right - e.lineWidths[o])), l.top += e.top + t +
                        r, l.left = s, s += l.width + r;
                } else {
                    let o = 0, s = a(i, e.top + t + r,
                        e.bottom - e.columnSizes[o].height);
                    for (const l of n) l.col !== o &&
                    (o = l.col, s = a(i, e.top + t + r, e.bottom -
                        e.columnSizes[o].height)), l.top = s, l.left += e.left +
                        r, s += l.height + r;
                }
            }

            isHorizontal () {
                return 'top' === this.options.position || 'bottom' ===
                    this.options.position;
            }

            draw () {
                const e = this;
                if (e.options.display) {
                    const t = e.ctx;
                    Ke(t, e), e._draw(), Je(t);
                }
            }

            _draw () {
                const e = this, {
                        options: t,
                        columnSizes: n,
                        lineWidths: i,
                        ctx: o,
                    } = e, { align: s, labels: l } = t, c = ve.color,
                    u = yi(t.rtl, e.left, e.width), d = Nt(l.font), {
                        color: h,
                        padding: f,
                    } = l, p = d.size, m = p / 2;
                let g;
                e.drawTitle(), o.textAlign = u.textAlign(
                    'left'), o.textBaseline = 'middle', o.lineWidth = .5, o.font = d.string;
                const { boxWidth: v, boxHeight: y, itemHeight: b } = hr(l, p),
                    x = e.isHorizontal(), _ = this._computeTitleHeight();
                g = x ? {
                    x: a(s, e.left + f, e.right - i[0]),
                    y: e.top + f + _,
                    line: 0,
                } : {
                    x: e.left + f,
                    y: a(s, e.top + _ + f, e.bottom - n[0].height),
                    line: 0,
                }, bi(e.ctx, t.textDirection);
                const w = b + f;
                e.legendItems.forEach(((t, k) => {
                    o.strokeStyle = t.fontColor ||
                        h, o.fillStyle = t.fontColor || h;
                    const M = o.measureText(t.text).width, L = u.textAlign(
                        t.textAlign || (t.textAlign = l.textAlign)),
                        S = v + p / 2 + M;
                    let T = g.x, A = g.y;
                    u.setWidth(e.width), x ? k > 0 && T + S + f > e.right &&
                        (A = g.y += w, g.line++, T = g.x = a(s, e.left + f,
                            e.right - i[g.line])) : k > 0 && A + w > e.bottom &&
                        (T = g.x = T + n[g.line].width +
                            f, g.line++, A = g.y = a(s, e.top + _ + f,
                            e.bottom - n[g.line].height));
                    !function (e, t, n) {
                        if (isNaN(v) || v <= 0 || isNaN(y) || y < 0) return;
                        o.save();
                        const i = G(n.lineWidth, 1);
                        if (o.fillStyle = G(n.fillStyle, c), o.lineCap = G(
                            n.lineCap, 'butt'), o.lineDashOffset = G(
                            n.lineDashOffset, 0), o.lineJoin = G(n.lineJoin,
                            'miter'), o.lineWidth = i, o.strokeStyle = G(
                            n.strokeStyle, c), o.setLineDash(G(n.lineDash,
                            [])), l.usePointStyle) {
                            const a = {
                                radius: v * Math.SQRT2 / 2,
                                pointStyle: n.pointStyle,
                                rotation: n.rotation,
                                borderWidth: i,
                            }, r = u.xPlus(e, v / 2);
                            Ge(o, a, r, t + m);
                        } else {
                            const a = t + Math.max((p - y) / 2, 0),
                                r = u.leftForLtr(e, v), s = It(n.borderRadius);
                            o.beginPath(), Object.values(s).some((e => 0 !== e))
                                ? nt(o, { x: r, y: a, w: v, h: y, radius: s })
                                : o.rect(r, a, v, y), o.fill(), 0 !== i &&
                            o.stroke();
                        }
                        o.restore();
                    }(u.x(T), A, t), T = r(L, T + v + m, e.right), function (
                        e, t, n) {
                        tt(o, n.text, e, t + b / 2, d,
                            {
                                strikethrough: n.hidden,
                                textAlign: n.textAlign,
                            });
                    }(u.x(T), A, t), x ? g.x += S + f : g.y += w;
                })), xi(e.ctx, t.textDirection);
            }

            drawTitle () {
                const e = this, t = e.options, n = t.title, r = Nt(n.font),
                    o = jt(n.padding);
                if (!n.display) return;
                const s = yi(t.rtl, e.left, e.width), l = e.ctx, c = n.position,
                    u = r.size / 2, d = o.top + u;
                let h, f = e.left, p = e.width;
                if (this.isHorizontal()) p = Math.max(
                    ...e.lineWidths), h = e.top + d, f = a(t.align, f,
                    e.right - p); else {
                    const n = e.columnSizes.reduce(
                        ((e, t) => Math.max(e, t.height)), 0);
                    h = d + a(t.align, e.top, e.bottom - n - t.labels.padding -
                        e._computeTitleHeight());
                }
                const m = a(c, f, f + p);
                l.textAlign = s.textAlign(
                    i(c)), l.textBaseline = 'middle', l.strokeStyle = n.color, l.fillStyle = n.color, l.font = r.string, tt(
                    l, n.text, m, h, r);
            }

            _computeTitleHeight () {
                const e = this.options.title, t = Nt(e.font), n = jt(e.padding);
                return e.display ? t.lineHeight + n.height : 0;
            }

            _getLegendItemAt (e, t) {
                const n = this;
                let i, a, r;
                if (e >= n.left && e <= n.right && t >= n.top && t <=
                    n.bottom) for (r = n.legendHitBoxes, i = 0; i <
                r.length; ++i) if (a = r[i], e >= a.left && e <= a.left +
                a.width && t >= a.top && t <= a.top +
                a.height) return n.legendItems[i];
                return null;
            }

            handleEvent (e) {
                const t = this, n = t.options;
                if (!function (e, t) {
                    if ('mousemove' === e &&
                        (t.onHover || t.onLeave)) return !0;
                    if (t.onClick &&
                        ('click' === e || 'mouseup' === e)) return !0;
                    return !1;
                }(e.type, n)) return;
                const i = t._getLegendItemAt(e.x, e.y);
                if ('mousemove' === e.type) {
                    const o = t._hoveredItem,
                        s = (r = i, null !== (a = o) && null !== r &&
                        a.datasetIndex === r.datasetIndex && a.index ===
                        r.index);
                    o && !s &&
                    J(n.onLeave, [e, o, t], t), t._hoveredItem = i, i && !s &&
                    J(n.onHover, [e, i, t], t);
                } else i && J(n.onClick, [e, i, t], t);
                var a, r;
            }
        }

        var pr = {
            id: 'legend',
            _element: fr,
            start (e, t, n) {
                const i = e.legend = new fr(
                    { ctx: e.ctx, options: n, chart: e });
                Zt.configure(e, i, n), Zt.addBox(e, i);
            },
            stop (e) {Zt.removeBox(e, e.legend), delete e.legend;},
            beforeUpdate (e, t, n) {
                const i = e.legend;
                Zt.configure(e, i, n), i.options = n;
            },
            afterUpdate (e) {
                const t = e.legend;
                t.buildLabels(), t.adjustHitBoxes();
            },
            afterEvent (e, t) {t.replay || e.legend.handleEvent(t.event);},
            defaults: {
                display: !0,
                position: 'top',
                align: 'center',
                fullSize: !0,
                reverse: !1,
                weight: 1e3,
                onClick (e, t, n) {
                    const i = t.datasetIndex, a = n.chart;
                    a.isDatasetVisible(i)
                        ? (a.hide(i), t.hidden = !0)
                        : (a.show(i), t.hidden = !1);
                },
                onHover: null,
                onLeave: null,
                labels: {
                    color: e => e.chart.options.color,
                    boxWidth: 40,
                    padding: 10,
                    generateLabels (e) {
                        const t = e.data.datasets, {
                            labels: {
                                usePointStyle: n,
                                pointStyle: i,
                                textAlign: a,
                                color: r,
                            },
                        } = e.legend.options;
                        return e._getSortedDatasetMetas().
                            map((e => {
                                const o = e.controller.getStyle(n ? 0 : void 0),
                                    s = jt(o.borderWidth);
                                return {
                                    text: t[e.index].label,
                                    fillStyle: o.backgroundColor,
                                    fontColor: r,
                                    hidden: !e.visible,
                                    lineCap: o.borderCapStyle,
                                    lineDash: o.borderDash,
                                    lineDashOffset: o.borderDashOffset,
                                    lineJoin: o.borderJoinStyle,
                                    lineWidth: (s.width + s.height) / 4,
                                    strokeStyle: o.borderColor,
                                    pointStyle: i || o.pointStyle,
                                    rotation: o.rotation,
                                    textAlign: a || o.textAlign,
                                    borderRadius: 0,
                                    datasetIndex: e.index,
                                };
                            }), this);
                    },
                },
                title: {
                    color: e => e.chart.options.color,
                    display: !1,
                    position: 'center',
                    text: '',
                },
            },
            descriptors: {
                _scriptable: e => !e.startsWith('on'),
                labels: {
                    _scriptable: e => ![
                        'generateLabels',
                        'filter',
                        'sort'].includes(e),
                },
            },
        };

        class mr extends In {
            constructor (e) {super(), this.chart = e.chart, this.options = e.options, this.ctx = e.ctx, this._padding = void 0, this.top = void 0, this.bottom = void 0, this.left = void 0, this.right = void 0, this.width = void 0, this.height = void 0, this.position = void 0, this.weight = void 0, this.fullSize = void 0;}

            update (e, t) {
                const n = this, i = n.options;
                if (n.left = 0, n.top = 0, !i.display) return void (n.width = n.height = n.right = n.bottom = 0);
                n.width = n.right = e, n.height = n.bottom = t;
                const a = q(i.text) ? i.text.length : 1;
                n._padding = jt(i.padding);
                const r = a * Nt(i.font).lineHeight + n._padding.height;
                n.isHorizontal() ? n.height = r : n.width = r;
            }

            isHorizontal () {
                const e = this.options.position;
                return 'top' === e || 'bottom' === e;
            }

            _drawArgs (e) {
                const {
                    top: t,
                    left: n,
                    bottom: i,
                    right: r,
                    options: o,
                } = this, s = o.align;
                let l, c, u, d = 0;
                return this.isHorizontal() ? (c = a(s, n, r), u = t + e, l = r -
                    n) : ('left' === o.position ? (c = n + e, u = a(s, i,
                    t), d = -.5 * ye) : (c = r - e, u = a(s, t, i), d = .5 *
                    ye), l = i - t), {
                    titleX: c,
                    titleY: u,
                    maxWidth: l,
                    rotation: d,
                };
            }

            draw () {
                const e = this, t = e.ctx, n = e.options;
                if (!n.display) return;
                const a = Nt(n.font), r = a.lineHeight / 2 + e._padding.top, {
                    titleX: o,
                    titleY: s,
                    maxWidth: l,
                    rotation: c,
                } = e._drawArgs(r);
                tt(t, n.text, 0, 0, a, {
                    color: n.color,
                    maxWidth: l,
                    rotation: c,
                    textAlign: i(n.align),
                    textBaseline: 'middle',
                    translation: [o, s],
                });
            }
        }

        var gr = {
            id: 'title',
            _element: mr,
            start (e, t, n) {
                !function (e, t) {
                    const n = new mr({ ctx: e.ctx, options: t, chart: e });
                    Zt.configure(e, n, t), Zt.addBox(e, n), e.titleBlock = n;
                }(e, n);
            },
            stop (e) {
                const t = e.titleBlock;
                Zt.removeBox(e, t), delete e.titleBlock;
            },
            beforeUpdate (e, t, n) {
                const i = e.titleBlock;
                Zt.configure(e, i, n), i.options = n;
            },
            defaults: {
                align: 'center',
                display: !1,
                font: { weight: 'bold' },
                fullSize: !0,
                padding: 10,
                position: 'top',
                text: '',
                weight: 2e3,
            },
            defaultRoutes: { color: 'color' },
            descriptors: { _scriptable: !0, _indexable: !1 },
        };
        const vr = {
            average (e) {
                if (!e.length) return !1;
                let t, n, i = 0, a = 0, r = 0;
                for (t = 0, n = e.length; t < n; ++t) {
                    const n = e[t].element;
                    if (n && n.hasValue()) {
                        const e = n.tooltipPosition();
                        i += e.x, a += e.y, ++r;
                    }
                }
                return { x: i / r, y: a / r };
            }, nearest (e, t) {
                if (!e.length) return !1;
                let n, i, a, r = t.x, o = t.y, s = Number.POSITIVE_INFINITY;
                for (n = 0, i = e.length; n < i; ++n) {
                    const i = e[n].element;
                    if (i && i.hasValue()) {
                        const e = He(t, i.getCenterPoint());
                        e < s && (s = e, a = i);
                    }
                }
                if (a) {
                    const e = a.tooltipPosition();
                    r = e.x, o = e.y;
                }
                return { x: r, y: o };
            },
        };

        function yr (e, t) {
            return t &&
            (q(t) ? Array.prototype.push.apply(e, t) : e.push(t)), e;
        }

        function br (e) {
            return ('string' == typeof e || e instanceof String) &&
            e.indexOf('\n') > -1 ? e.split('\n') : e;
        }

        function xr (e, t) {
            const { element: n, datasetIndex: i, index: a } = t,
                r = e.getDatasetMeta(i).controller, {
                    label: o,
                    value: s,
                } = r.getLabelAndValue(a);
            return {
                chart: e,
                label: o,
                parsed: r.getParsed(a),
                raw: e.data.datasets[i].data[a],
                formattedValue: s,
                dataset: r.getDataset(),
                dataIndex: a,
                datasetIndex: i,
                element: n,
            };
        }

        function _r (e, t) {
            const n = e._chart.ctx, {
                    body: i,
                    footer: a,
                    title: r,
                } = e, { boxWidth: o, boxHeight: s } = t, l = Nt(t.bodyFont),
                c = Nt(t.titleFont), u = Nt(t.footerFont), d = r.length,
                h = a.length, f = i.length, p = jt(t.padding);
            let m = p.height, g = 0, v = i.reduce(
                ((e, t) => e + t.before.length + t.lines.length +
                    t.after.length), 0);
            if (v += e.beforeBody.length + e.afterBody.length, d &&
            (m += d * c.lineHeight + (d - 1) * t.titleSpacing +
                t.titleMarginBottom), v) {
                m += f * (t.displayColors
                    ? Math.max(s, l.lineHeight)
                    : l.lineHeight) + (v - f) * l.lineHeight + (v - 1) *
                    t.bodySpacing;
            }
            h && (m += t.footerMarginTop + h * u.lineHeight + (h - 1) *
                t.footerSpacing);
            let y = 0;
            const b = function (e) {
                g = Math.max(g, n.measureText(e).width + y);
            };
            return n.save(), n.font = c.string, Q(e.title,
                b), n.font = l.string, Q(e.beforeBody.concat(e.afterBody),
                b), y = t.displayColors ? o + 2 : 0, Q(i, (e => {
                Q(e.before, b), Q(e.lines, b), Q(e.after, b);
            })), y = 0, n.font = u.string, Q(e.footer,
                b), n.restore(), g += p.width, { width: g, height: m };
        }

        function wr (e, t, n, i) {
            const { x: a, width: r } = n, {
                width: o,
                chartArea: { left: s, right: l },
            } = e;
            let c = 'center';
            return 'center' === i
                ? c = a <= (s + l) / 2 ? 'left' : 'right'
                : a <= r / 2 ? c = 'left' : a >= o - r / 2 &&
                    (c = 'right'), function (e, t, n, i) {
                const {
                    x: a,
                    width: r,
                } = i, o = n.caretSize + n.caretPadding;
                return 'left' === e && a + r + o > t.width || 'right' === e &&
                    a - r - o < 0 || void 0;
            }(c, e, t, n) && (c = 'center'), c;
        }

        function kr (e, t, n) {
            const i = t.yAlign || function (e, t) {
                const { y: n, height: i } = t;
                return n < i / 2 ? 'top' : n > e.height - i / 2
                    ? 'bottom'
                    : 'center';
            }(e, n);
            return { xAlign: t.xAlign || wr(e, t, n, i), yAlign: i };
        }

        function Mr (e, t, n, i) {
            const {
                caretSize: a,
                caretPadding: r,
                cornerRadius: o,
            } = e, { xAlign: s, yAlign: l } = n, c = a + r, u = o + r;
            let d = function (e, t) {
                let { x: n, width: i } = e;
                return 'right' === t ? n -= i : 'center' === t &&
                    (n -= i / 2), n;
            }(t, s);
            const h = function (e, t, n) {
                let { y: i, height: a } = e;
                return 'top' === t ? i += n : i -= 'bottom' === t ? a + n : a /
                    2, i;
            }(t, l, c);
            return 'center' === l ? 'left' === s ? d += c : 'right' === s &&
                (d -= c) : 'left' === s ? d -= u : 'right' === s && (d += u), {
                x: Be(d, 0, i.width - t.width),
                y: Be(h, 0, i.height - t.height),
            };
        }

        function Lr (e, t, n) {
            const i = jt(n.padding);
            return 'center' === t ? e.x + e.width / 2 : 'right' === t ? e.x +
                e.width - i.right : e.x + i.left;
        }

        function Sr (e) {return yr([], br(e));}

        function Tr (e, t) {
            const n = t && t.dataset && t.dataset.tooltip &&
                t.dataset.tooltip.callbacks;
            return n ? e.override(n) : e;
        }

        class Ar extends In {
            constructor (e) {super(), this.opacity = 0, this._active = [], this._chart = e._chart, this._eventPosition = void 0, this._size = void 0, this._cachedAnimations = void 0, this._tooltipItems = [], this.$animations = void 0, this.$context = void 0, this.options = e.options, this.dataPoints = void 0, this.title = void 0, this.beforeBody = void 0, this.body = void 0, this.afterBody = void 0, this.footer = void 0, this.xAlign = void 0, this.yAlign = void 0, this.x = void 0, this.y = void 0, this.height = void 0, this.width = void 0, this.caretX = void 0, this.caretY = void 0, this.labelColors = void 0, this.labelPointStyles = void 0, this.labelTextColors = void 0;}

            initialize (e) {this.options = e, this._cachedAnimations = void 0, this.$context = void 0;}

            _resolveAnimations () {
                const e = this, t = e._cachedAnimations;
                if (t) return t;
                const n = e._chart, i = e.options.setContext(e.getContext()),
                    a = i.enabled && n.options.animation && i.animations,
                    r = new wn(e._chart, a);
                return a._cacheable &&
                (e._cachedAnimations = Object.freeze(r)), r;
            }

            getContext () {
                const e = this;
                return e.$context ||
                    (e.$context = (t = e._chart.getContext(), n = e, i = e._tooltipItems, Object.assign(
                        Object.create(t),
                        { tooltip: n, tooltipItems: i, type: 'tooltip' })));
                var t, n, i;
            }

            getTitle (e, t) {
                const n = this, { callbacks: i } = t,
                    a = i.beforeTitle.apply(n, [e]), r = i.title.apply(n, [e]),
                    o = i.afterTitle.apply(n, [e]);
                let s = [];
                return s = yr(s, br(a)), s = yr(s, br(r)), s = yr(s, br(o)), s;
            }

            getBeforeBody (e, t) {
                return Sr(t.callbacks.beforeBody.apply(this, [e]));
            }

            getBody (e, t) {
                const n = this, { callbacks: i } = t, a = [];
                return Q(e, (e => {
                    const t = { before: [], lines: [], after: [] },
                        r = Tr(i, e);
                    yr(t.before, br(r.beforeLabel.call(n, e))), yr(t.lines,
                        r.label.call(n, e)), yr(t.after,
                        br(r.afterLabel.call(n, e))), a.push(t);
                })), a;
            }

            getAfterBody (e, t) {
                return Sr(t.callbacks.afterBody.apply(this, [e]));
            }

            getFooter (e, t) {
                const n = this, { callbacks: i } = t,
                    a = i.beforeFooter.apply(n, [e]),
                    r = i.footer.apply(n, [e]), o = i.afterFooter.apply(n, [e]);
                let s = [];
                return s = yr(s, br(a)), s = yr(s, br(r)), s = yr(s, br(o)), s;
            }

            _createItems (e) {
                const t = this, n = t._active, i = t._chart.data, a = [],
                    r = [], o = [];
                let s, l, c = [];
                for (s = 0, l = n.length; s < l; ++s) c.push(
                    xr(t._chart, n[s]));
                return e.filter && (c = c.filter(
                    ((t, n, a) => e.filter(t, n, a, i)))), e.itemSort &&
                (c = c.sort(((t, n) => e.itemSort(t, n, i)))), Q(c, (n => {
                    const i = Tr(e.callbacks, n);
                    a.push(i.labelColor.call(t, n)), r.push(
                        i.labelPointStyle.call(t, n)), o.push(
                        i.labelTextColor.call(t, n));
                })), t.labelColors = a, t.labelPointStyles = r, t.labelTextColors = o, t.dataPoints = c, c;
            }

            update (e, t) {
                const n = this, i = n.options.setContext(n.getContext()),
                    a = n._active;
                let r, o = [];
                if (a.length) {
                    const e = vr[i.position].call(n, a, n._eventPosition);
                    o = n._createItems(i), n.title = n.getTitle(o,
                        i), n.beforeBody = n.getBeforeBody(o,
                        i), n.body = n.getBody(o,
                        i), n.afterBody = n.getAfterBody(o,
                        i), n.footer = n.getFooter(o, i);
                    const t = n._size = _r(n, i), s = Object.assign({}, e, t),
                        l = kr(n._chart, i, s), c = Mr(i, s, l, n._chart);
                    n.xAlign = l.xAlign, n.yAlign = l.yAlign, r = {
                        opacity: 1,
                        x: c.x,
                        y: c.y,
                        width: t.width,
                        height: t.height,
                        caretX: e.x,
                        caretY: e.y,
                    };
                } else 0 !== n.opacity && (r = { opacity: 0 });
                n._tooltipItems = o, n.$context = void 0, r &&
                n._resolveAnimations().update(n, r), e && i.external &&
                i.external.call(n, { chart: n._chart, tooltip: n, replay: t });
            }

            drawCaret (e, t, n, i) {
                const a = this.getCaretPosition(e, n, i);
                t.lineTo(a.x1, a.y1), t.lineTo(a.x2, a.y2), t.lineTo(a.x3,
                    a.y3);
            }

            getCaretPosition (e, t, n) {
                const {
                    xAlign: i,
                    yAlign: a,
                } = this, { cornerRadius: r, caretSize: o } = n, {
                    x: s,
                    y: l,
                } = e, { width: c, height: u } = t;
                let d, h, f, p, m, g;
                return 'center' === a
                    ? (m = l + u / 2, 'left' === i
                        ? (d = s, h = d - o, p = m + o, g = m - o)
                        : (d = s + c, h = d + o, p = m - o, g = m + o), f = d)
                    : (h = 'left' === i ? s + r + o : 'right' === i ? s + c -
                        r - o : this.caretX, 'top' === a ? (p = l, m = p -
                        o, d = h - o, f = h + o) : (p = l + u, m = p +
                        o, d = h + o, f = h - o), g = p), {
                    x1: d,
                    x2: h,
                    x3: f,
                    y1: p,
                    y2: m,
                    y3: g,
                };
            }

            drawTitle (e, t, n) {
                const i = this, a = i.title, r = a.length;
                let o, s, l;
                if (r) {
                    const c = yi(n.rtl, i.x, i.width);
                    for (e.x = Lr(i, n.titleAlign,
                        n), t.textAlign = c.textAlign(
                        n.titleAlign), t.textBaseline = 'middle', o = Nt(
                        n.titleFont), s = n.titleSpacing, t.fillStyle = n.titleColor, t.font = o.string, l = 0; l <
                         r; ++l) t.fillText(a[l], c.x(e.x),
                        e.y + o.lineHeight / 2), e.y += o.lineHeight + s, l +
                    1 === r && (e.y += n.titleMarginBottom - s);
                }
            }

            _drawColorBox (e, t, n, i, a) {
                const r = this, o = r.labelColors[n],
                    s = r.labelPointStyles[n], {
                        boxHeight: l,
                        boxWidth: c,
                    } = a, u = Nt(a.bodyFont), d = Lr(r, 'left', a), h = i.x(d),
                    f = l < u.lineHeight ? (u.lineHeight - l) / 2 : 0,
                    p = t.y + f;
                if (a.usePointStyle) {
                    const t = {
                        radius: Math.min(c, l) / 2,
                        pointStyle: s.pointStyle,
                        rotation: s.rotation,
                        borderWidth: 1,
                    }, n = i.leftForLtr(h, c) + c / 2, r = p + l / 2;
                    e.strokeStyle = a.multiKeyBackground, e.fillStyle = a.multiKeyBackground, Ge(
                        e, t, n,
                        r), e.strokeStyle = o.borderColor, e.fillStyle = o.backgroundColor, Ge(
                        e, t, n, r);
                } else {
                    e.lineWidth = o.borderWidth ||
                        1, e.strokeStyle = o.borderColor, e.setLineDash(
                        o.borderDash ||
                        []), e.lineDashOffset = o.borderDashOffset || 0;
                    const t = i.leftForLtr(h, c),
                        n = i.leftForLtr(i.xPlus(h, 1), c - 2),
                        r = It(o.borderRadius);
                    Object.values(r).some((e => 0 !== e))
                        ? (e.beginPath(), e.fillStyle = a.multiKeyBackground, nt(
                        e, {
                            x: t,
                            y: p,
                            w: c,
                            h: l,
                            radius: r,
                        }), e.fill(), e.stroke(), e.fillStyle = o.backgroundColor, e.beginPath(), nt(
                        e, {
                            x: n,
                            y: p + 1,
                            w: c - 2,
                            h: l - 2,
                            radius: r,
                        }), e.fill())
                        : (e.fillStyle = a.multiKeyBackground, e.fillRect(t, p,
                        c, l), e.strokeRect(t, p, c,
                        l), e.fillStyle = o.backgroundColor, e.fillRect(n,
                        p + 1, c - 2, l - 2));
                }
                e.fillStyle = r.labelTextColors[n];
            }

            drawBody (
                e, t, n) {
                const i = this, { body: a } = i, {
                    bodySpacing: r,
                    bodyAlign: o,
                    displayColors: s,
                    boxHeight: l,
                    boxWidth: c,
                } = n, u = Nt(n.bodyFont);
                let d = u.lineHeight, h = 0;
                const f = yi(n.rtl, i.x, i.width), p = function (n) {
                    t.fillText(n, f.x(e.x + h), e.y + d / 2), e.y += d + r;
                }, m = f.textAlign(o);
                let g, v, y, b, x, _, w;
                for (t.textAlign = o, t.textBaseline = 'middle', t.font = u.string, e.x = Lr(
                    i, m, n), t.fillStyle = n.bodyColor, Q(i.beforeBody,
                    p), h = s && 'right' !== m ? 'center' === o
                    ? c / 2 + 1
                    : c + 2 : 0, b = 0, _ = a.length; b < _; ++b) {
                    for (g = a[b], v = i.labelTextColors[b], t.fillStyle = v, Q(
                        g.before, p), y = g.lines, s && y.length &&
                    (i._drawColorBox(t, e, b, f, n), d = Math.max(u.lineHeight,
                        l)), x = 0, w = y.length; x < w; ++x) p(
                        y[x]), d = u.lineHeight;
                    Q(g.after, p);
                }
                h = 0, d = u.lineHeight, Q(i.afterBody, p), e.y -= r;
            }

            drawFooter (e, t, n) {
                const i = this, a = i.footer, r = a.length;
                let o, s;
                if (r) {
                    const l = yi(n.rtl, i.x, i.width);
                    for (e.x = Lr(i, n.footerAlign,
                        n), e.y += n.footerMarginTop, t.textAlign = l.textAlign(
                        n.footerAlign), t.textBaseline = 'middle', o = Nt(
                        n.footerFont), t.fillStyle = n.footerColor, t.font = o.string, s = 0; s <
                         r; ++s) t.fillText(a[s], l.x(e.x),
                        e.y + o.lineHeight / 2), e.y += o.lineHeight +
                        n.footerSpacing;
                }
            }

            drawBackground (e, t, n, i) {
                const {
                        xAlign: a,
                        yAlign: r,
                    } = this, { x: o, y: s } = e, { width: l, height: c } = n,
                    u = i.cornerRadius;
                t.fillStyle = i.backgroundColor, t.strokeStyle = i.borderColor, t.lineWidth = i.borderWidth, t.beginPath(), t.moveTo(
                    o + u, s), 'top' === r &&
                this.drawCaret(e, t, n, i), t.lineTo(o + l - u,
                    s), t.quadraticCurveTo(o + l, s, o + l, s + u), 'center' ===
                r && 'right' === a && this.drawCaret(e, t, n, i), t.lineTo(
                    o + l, s + c - u), t.quadraticCurveTo(o + l, s + c,
                    o + l - u, s + c), 'bottom' === r &&
                this.drawCaret(e, t, n, i), t.lineTo(o + u,
                    s + c), t.quadraticCurveTo(o, s + c, o,
                    s + c - u), 'center' === r && 'left' === a &&
                this.drawCaret(e, t, n, i), t.lineTo(o,
                    s + u), t.quadraticCurveTo(o, s, o + u,
                    s), t.closePath(), t.fill(), i.borderWidth > 0 &&
                t.stroke();
            }

            _updateAnimationTarget (e) {
                const t = this, n = t._chart, i = t.$animations, a = i && i.x,
                    r = i && i.y;
                if (a || r) {
                    const i = vr[e.position].call(t, t._active,
                        t._eventPosition);
                    if (!i) return;
                    const o = t._size = _r(t, e),
                        s = Object.assign({}, i, t._size), l = kr(n, e, s),
                        c = Mr(e, s, l, n);
                    a._to === c.x && r._to === c.y ||
                    (t.xAlign = l.xAlign, t.yAlign = l.yAlign, t.width = o.width, t.height = o.height, t.caretX = i.x, t.caretY = i.y, t._resolveAnimations().
                        update(t, c));
                }
            }

            draw (e) {
                const t = this, n = t.options.setContext(t.getContext());
                let i = t.opacity;
                if (!i) return;
                t._updateAnimationTarget(n);
                const a = { width: t.width, height: t.height },
                    r = { x: t.x, y: t.y };
                i = Math.abs(i) < .001 ? 0 : i;
                const o = jt(n.padding),
                    s = t.title.length || t.beforeBody.length ||
                        t.body.length || t.afterBody.length || t.footer.length;
                n.enabled && s &&
                (e.save(), e.globalAlpha = i, t.drawBackground(r, e, a, n), bi(
                    e, n.textDirection), r.y += o.top, t.drawTitle(r, e,
                    n), t.drawBody(r, e, n), t.drawFooter(r, e, n), xi(e,
                    n.textDirection), e.restore());
            }

            getActiveElements () {return this._active || [];}

            setActiveElements (e, t) {
                const n = this, i = n._active, a = e.map((({
                                                               datasetIndex: e,
                                                               index: t,
                                                           }) => {
                    const i = n._chart.getDatasetMeta(e);
                    if (!i) throw new Error(
                        'Cannot find a dataset at index ' + e);
                    return { datasetIndex: e, element: i.data[t], index: t };
                })), r = !ee(i, a), o = n._positionChanged(a, t);
                (r || o) && (n._active = a, n._eventPosition = t, n.update(!0));
            }

            handleEvent (e, t) {
                const n = this, i = n.options, a = n._active || [];
                let r = !1, o = [];
                'mouseout' !== e.type &&
                (o = n._chart.getElementsAtEventForMode(e, i.mode, i,
                    t), i.reverse && o.reverse());
                const s = n._positionChanged(o, e);
                return r = t || !ee(o, a) || s, r &&
                (n._active = o, (i.enabled || i.external) &&
                (n._eventPosition = { x: e.x, y: e.y }, n.update(!0, t))), r;
            }

            _positionChanged (e, t) {
                const {
                    caretX: n,
                    caretY: i,
                    options: a,
                } = this, r = vr[a.position].call(this, e, t);
                return !1 !== r && (n !== r.x || i !== r.y);
            }
        }

        Ar.positioners = vr;
        var Dr = {
            id: 'tooltip',
            _element: Ar,
            positioners: vr,
            afterInit (e, t, n) {
                n && (e.tooltip = new Ar({ _chart: e, options: n }));
            },
            beforeUpdate (e, t, n) {e.tooltip && e.tooltip.initialize(n);},
            reset (e, t, n) {e.tooltip && e.tooltip.initialize(n);},
            afterDraw (e) {
                const t = e.tooltip, n = { tooltip: t };
                !1 !== e.notifyPlugins('beforeTooltipDraw', n) &&
                (t && t.draw(e.ctx), e.notifyPlugins('afterTooltipDraw', n));
            },
            afterEvent (e, t) {
                if (e.tooltip) {
                    const n = t.replay;
                    e.tooltip.handleEvent(t.event, n) && (t.changed = !0);
                }
            },
            defaults: {
                enabled: !0,
                external: null,
                position: 'average',
                backgroundColor: 'rgba(0,0,0,0.8)',
                titleColor: '#fff',
                titleFont: { weight: 'bold' },
                titleSpacing: 2,
                titleMarginBottom: 6,
                titleAlign: 'left',
                bodyColor: '#fff',
                bodySpacing: 2,
                bodyFont: {},
                bodyAlign: 'left',
                footerColor: '#fff',
                footerSpacing: 2,
                footerMarginTop: 6,
                footerFont: { weight: 'bold' },
                footerAlign: 'left',
                padding: 6,
                caretPadding: 2,
                caretSize: 5,
                cornerRadius: 6,
                boxHeight: (e, t) => t.bodyFont.size,
                boxWidth: (e, t) => t.bodyFont.size,
                multiKeyBackground: '#fff',
                displayColors: !0,
                borderColor: 'rgba(0,0,0,0)',
                borderWidth: 0,
                animation: { duration: 400, easing: 'easeOutQuart' },
                animations: {
                    numbers: {
                        type: 'number',
                        properties: [
                            'x',
                            'y',
                            'width',
                            'height',
                            'caretX',
                            'caretY'],
                    }, opacity: { easing: 'linear', duration: 200 },
                },
                callbacks: {
                    beforeTitle: B,
                    title (e) {
                        if (e.length > 0) {
                            const t = e[0], n = t.chart.data.labels,
                                i = n ? n.length : 0;
                            if (this && this.options && 'dataset' ===
                                this.options.mode) return t.dataset.label || '';
                            if (t.label) return t.label;
                            if (i > 0 && t.dataIndex < i) return n[t.dataIndex];
                        }
                        return '';
                    },
                    afterTitle: B,
                    beforeBody: B,
                    beforeLabel: B,
                    label (e) {
                        if (this && this.options && 'dataset' ===
                            this.options.mode) return e.label + ': ' +
                            e.formattedValue || e.formattedValue;
                        let t = e.dataset.label || '';
                        t && (t += ': ');
                        const n = e.formattedValue;
                        return V(n) || (t += n), t;
                    },
                    labelColor (e) {
                        const t = e.chart.getDatasetMeta(e.datasetIndex).
                            controller.
                            getStyle(e.dataIndex);
                        return {
                            borderColor: t.borderColor,
                            backgroundColor: t.backgroundColor,
                            borderWidth: t.borderWidth,
                            borderDash: t.borderDash,
                            borderDashOffset: t.borderDashOffset,
                            borderRadius: 0,
                        };
                    },
                    labelTextColor () {return this.options.bodyColor;},
                    labelPointStyle (e) {
                        const t = e.chart.getDatasetMeta(e.datasetIndex).
                            controller.
                            getStyle(e.dataIndex);
                        return {
                            pointStyle: t.pointStyle,
                            rotation: t.rotation,
                        };
                    },
                    afterLabel: B,
                    afterBody: B,
                    beforeFooter: B,
                    footer: B,
                    afterFooter: B,
                },
            },
            defaultRoutes: {
                bodyFont: 'font',
                footerFont: 'font',
                titleFont: 'font',
            },
            descriptors: {
                _scriptable: e => 'filter' !== e && 'itemSort' !== e &&
                    'external' !== e,
                _indexable: !1,
                callbacks: { _scriptable: !1, _indexable: !1 },
                animation: { _fallback: !1 },
                animations: { _fallback: 'animation' },
            },
            additionalOptionScopes: ['interaction'],
        }, Cr = Object.freeze({
            __proto__: null,
            Decimation: $a,
            Filler: dr,
            Legend: pr,
            Title: gr,
            Tooltip: Dr,
        });

        function Er (e, t, n) {
            const i = e.indexOf(t);
            if (-1 === i) return ((e, t, n) => 'string' == typeof t ? e.push(
                t) - 1 : isNaN(t) ? null : n)(e, t, n);
            return i !== e.lastIndexOf(t) ? n : i;
        }

        class Or extends $n {
            constructor (e) {
                super(e), this._startValue = void 0, this._valueRange = 0;
            }

            parse (e, t) {
                if (V(e)) return null;
                const n = this.getLabels();
                return ((e, t) => null === e ? null : Be(Math.round(e), 0, t))(
                    t = isFinite(t) && n[t] === e ? t : Er(n, e, G(t, e)),
                    n.length - 1);
            }

            determineDataLimits () {
                const e = this, {
                    minDefined: t,
                    maxDefined: n,
                } = e.getUserBounds();
                let { min: i, max: a } = e.getMinMax(!0);
                'ticks' === e.options.bounds && (t || (i = 0), n ||
                (a = e.getLabels().length - 1)), e.min = i, e.max = a;
            }

            buildTicks () {
                const e = this, t = e.min, n = e.max, i = e.options.offset,
                    a = [];
                let r = e.getLabels();
                r = 0 === t && n === r.length - 1 ? r : r.slice(t,
                    n + 1), e._valueRange = Math.max(r.length - (i ? 0 : 1),
                    1), e._startValue = e.min - (i ? .5 : 0);
                for (let e = t; e <= n; e++) a.push({ value: e });
                return a;
            }

            getLabelForValue (e) {
                const t = this.getLabels();
                return e >= 0 && e < t.length ? t[e] : e;
            }

            configure () {
                const e = this;
                super.configure(), e.isHorizontal() ||
                (e._reversePixels = !e._reversePixels);
            }

            getPixelForValue (e) {
                const t = this;
                return 'number' != typeof e && (e = t.parse(e)), null === e
                    ? NaN
                    : t.getPixelForDecimal((e - t._startValue) / t._valueRange);
            }

            getPixelForTick (e) {
                const t = this.ticks;
                return e < 0 || e > t.length - 1 ? null : this.getPixelForValue(
                    t[e].value);
            }

            getValueForPixel (e) {
                const t = this;
                return Math.round(
                    t._startValue + t.getDecimalForPixel(e) * t._valueRange);
            }

            getBasePixel () {return this.bottom;}
        }

        function Yr (e, t, { horizontal: n, minRotation: i }) {
            const a = Pe(i), r = (n ? Math.sin(a) : Math.cos(a)) || .001,
                o = .75 * t * ('' + e).length;
            return Math.min(t / r, o);
        }

        Or.id = 'category', Or.defaults = { ticks: { callback: Or.prototype.getLabelForValue } };

        class Pr extends $n {
            constructor (e) {
                super(
                    e), this.start = void 0, this.end = void 0, this._startValue = void 0, this._endValue = void 0, this._valueRange = 0;
            }

            parse (e, t) {
                return V(e) || ('number' == typeof e || e instanceof Number) &&
                !isFinite(+e)
                    ? null
                    : +e;
            }

            handleTickRangeOptions () {
                const e = this, { beginAtZero: t } = e.options, {
                    minDefined: n,
                    maxDefined: i,
                } = e.getUserBounds();
                let { min: a, max: r } = e;
                const o = e => a = n ? a : e, s = e => r = i ? r : e;
                if (t) {
                    const e = Te(a), t = Te(r);
                    e < 0 && t < 0 ? s(0) : e > 0 && t > 0 && o(0);
                }
                a === r && (s(r + 1), t || o(a - 1)), e.min = a, e.max = r;
            }

            getTickLimit () {
                const e = this, t = e.options.ticks;
                let n, { maxTicksLimit: i, stepSize: a } = t;
                return a
                    ? n = Math.ceil(e.max / a) - Math.floor(e.min / a) + 1
                    : (n = e.computeTickLimit(), i = i || 11), i &&
                (n = Math.min(i, n)), n;
            }

            computeTickLimit () {return Number.POSITIVE_INFINITY;}

            buildTicks () {
                const e = this, t = e.options, n = t.ticks;
                let i = e.getTickLimit();
                i = Math.max(2, i);
                const a = function (e, t) {
                    const n = [], {
                            bounds: i,
                            step: a,
                            min: r,
                            max: o,
                            precision: s,
                            count: l,
                            maxTicks: c,
                            maxDigits: u,
                            includeBounds: d,
                        } = e, h = a || 1, f = c - 1, { min: p, max: m } = t,
                        g = !V(r), v = !V(o), y = !V(l), b = (m - p) / (u + 1);
                    let x, _, w, k, M = Ae((m - p) / f / h) * h;
                    if (M < 1e-14 && !g && !v) return [
                        { value: p },
                        { value: m }];
                    k = Math.ceil(m / M) - Math.floor(p / M), k > f &&
                    (M = Ae(k * M / f / h) * h), V(s) ||
                    (x = Math.pow(10, s), M = Math.ceil(M * x) / x), 'ticks' ===
                    i
                        ? (_ = Math.floor(p / M) * M, w = Math.ceil(m / M) * M)
                        : (_ = p, w = m), g && v && a &&
                    Oe((o - r) / a, M / 1e3) ? (k = Math.min((o - r) / M,
                        c), M = (o - r) / k, _ = r, w = o) : y
                        ? (_ = g
                            ? r
                            : _, w = v ? o : w, k = l - 1, M = (w - _) / k)
                        : (k = (w - _) / M, k = Ee(k, Math.round(k), M / 1e3)
                            ? Math.round(k)
                            : Math.ceil(k));
                    const L = Math.max(je(M), je(_));
                    x = Math.pow(10, V(s) ? L : s), _ = Math.round(_ * x) /
                        x, w = Math.round(w * x) / x;
                    let S = 0;
                    for (g && (d && _ !== r ? (n.push({ value: r }), _ < r &&
                    S++, Ee(Math.round((_ + S * M) * x) / x, r, Yr(r, b, e)) &&
                    S++) : _ < r && S++); S < k; ++S) n.push(
                        { value: Math.round((_ + S * M) * x) / x });
                    return v && d && w !== o ? Ee(n[n.length - 1].value, o,
                        Yr(o, b, e)) ? n[n.length - 1].value = o : n.push(
                        { value: o }) : v && w !== o || n.push({ value: w }), n;
                }({
                    maxTicks: i,
                    bounds: t.bounds,
                    min: t.min,
                    max: t.max,
                    precision: n.precision,
                    step: n.stepSize,
                    count: n.count,
                    maxDigits: e._maxDigits(),
                    horizontal: e.isHorizontal(),
                    minRotation: n.minRotation || 0,
                    includeBounds: !1 !== n.includeBounds,
                }, e._range || e);
                return 'ticks' === t.bounds && Ye(a, e, 'value'), t.reverse
                    ? (a.reverse(), e.start = e.max, e.end = e.min)
                    : (e.start = e.min, e.end = e.max), a;
            }

            configure () {
                const e = this, t = e.ticks;
                let n = e.min, i = e.max;
                if (super.configure(), e.options.offset && t.length) {
                    const e = (i - n) / Math.max(t.length - 1, 1) / 2;
                    n -= e, i += e;
                }
                e._startValue = n, e._endValue = i, e._valueRange = i - n;
            }

            getLabelForValue (e) {return Nn(e, this.chart.options.locale);}
        }

        class Ir extends Pr {
            determineDataLimits () {
                const e = this, {
                    min: t,
                    max: n,
                } = e.getMinMax(!0);
                e.min = X(t) ? t : 0, e.max = X(n)
                    ? n
                    : 1, e.handleTickRangeOptions();
            }

            computeTickLimit () {
                const e = this, t = e.isHorizontal(),
                    n = t ? e.width : e.height,
                    i = Pe(e.options.ticks.minRotation),
                    a = (t ? Math.sin(i) : Math.cos(i)) || .001,
                    r = e._resolveTickFontOptions(0);
                return Math.ceil(n / Math.min(40, r.lineHeight / a));
            }

            getPixelForValue (e) {
                return null === e
                    ? NaN
                    : this.getPixelForDecimal(
                        (e - this._startValue) / this._valueRange);
            }

            getValueForPixel (e) {
                return this._startValue + this.getDecimalForPixel(e) *
                    this._valueRange;
            }
        }

        function jr (e) {return 1 === e / Math.pow(10, Math.floor(Se(e)));}

        Ir.id = 'linear', Ir.defaults = { ticks: { callback: Fn.formatters.numeric } };

        class Nr extends $n {
            constructor (e) {
                super(
                    e), this.start = void 0, this.end = void 0, this._startValue = void 0, this._valueRange = 0;
            }

            parse (e, t) {
                const n = Pr.prototype.parse.apply(this, [e, t]);
                if (0 !== n) return X(n) && n > 0 ? n : null;
                this._zero = !0;
            }

            determineDataLimits () {
                const e = this, {
                    min: t,
                    max: n,
                } = e.getMinMax(!0);
                e.min = X(t) ? Math.max(0, t) : null, e.max = X(n) ? Math.max(0,
                    n) : null, e.options.beginAtZero &&
                (e._zero = !0), e.handleTickRangeOptions();
            }

            handleTickRangeOptions () {
                const e = this, {
                    minDefined: t,
                    maxDefined: n,
                } = e.getUserBounds();
                let i = e.min, a = e.max;
                const r = e => i = t ? i : e, o = e => a = n ? a : e,
                    s = (e, t) => Math.pow(10, Math.floor(Se(e)) + t);
                i === a &&
                (i <= 0 ? (r(1), o(10)) : (r(s(i, -1)), o(s(a, 1)))), i <= 0 &&
                r(s(a, -1)), a <= 0 && o(s(i, 1)), e._zero && e.min !==
                e._suggestedMin && i === s(e.min, 0) &&
                r(s(i, -1)), e.min = i, e.max = a;
            }

            buildTicks () {
                const e = this, t = e.options, n = function (e, t) {
                    const n = Math.floor(Se(t.max)),
                        i = Math.ceil(t.max / Math.pow(10, n)), a = [];
                    let r = $(e.min, Math.pow(10, Math.floor(Se(t.min)))),
                        o = Math.floor(Se(r)),
                        s = Math.floor(r / Math.pow(10, o)),
                        l = o < 0 ? Math.pow(10, Math.abs(o)) : 1;
                    do {
                        a.push({ value: r, major: jr(r) }), ++s, 10 === s &&
                        (s = 1, ++o, l = o >= 0 ? 1 : l), r = Math.round(
                            s * Math.pow(10, o) * l) / l;
                    } while (o < n || o === n && s < i);
                    const c = $(e.max, r);
                    return a.push({ value: c, major: jr(r) }), a;
                }({ min: e._userMin, max: e._userMax }, e);
                return 'ticks' === t.bounds && Ye(n, e, 'value'), t.reverse
                    ? (n.reverse(), e.start = e.max, e.end = e.min)
                    : (e.start = e.min, e.end = e.max), n;
            }

            getLabelForValue (e) {
                return void 0 === e ? '0' : Nn(e, this.chart.options.locale);
            }

            configure () {
                const e = this, t = e.min;
                super.configure(), e._startValue = Se(t), e._valueRange = Se(
                    e.max) - Se(t);
            }

            getPixelForValue (e) {
                const t = this;
                return void 0 !== e && 0 !== e || (e = t.min), null === e ||
                isNaN(e) ? NaN : t.getPixelForDecimal(
                    e === t.min ? 0 : (Se(e) - t._startValue) / t._valueRange);
            }

            getValueForPixel (e) {
                const t = this, n = t.getDecimalForPixel(e);
                return Math.pow(10, t._startValue + n * t._valueRange);
            }
        }

        function Hr (e) {
            const t = e.ticks;
            if (t.display && e.display) {
                const e = jt(t.backdropPadding);
                return G(t.font && t.font.size, ve.font.size) + e.height;
            }
            return 0;
        }

        function Fr (e, t, n, i, a) {
            return e === i || e === a ? {
                start: t - n / 2, end: t + n / 2,
            } : e < i || e > a ? { start: t - n, end: t } : {
                start: t,
                end: t + n,
            };
        }

        function Rr (e) {
            return 0 === e || 180 === e ? 'center' : e < 180
                ? 'left'
                : 'right';
        }

        function zr (e, t, n) {
            90 === e || 270 === e ? n.y -= t.h / 2 : (e > 270 || e < 90) &&
                (n.y -= t.h);
        }

        function Br (e, t, n, i) {
            const { ctx: a } = e;
            if (n) a.arc(e.xCenter, e.yCenter, t, 0, be); else {
                let n = e.getPointPosition(0, t);
                a.moveTo(n.x, n.y);
                for (let r = 1; r < i; r++) n = e.getPointPosition(r,
                    t), a.lineTo(n.x, n.y);
            }
        }

        function Wr (e) {return Ce(e) ? e : 0;}

        Nr.id = 'logarithmic', Nr.defaults = {
            ticks: {
                callback: Fn.formatters.logarithmic,
                major: { enabled: !0 },
            },
        };

        class Vr extends Pr {
            constructor (e) {
                super(
                    e), this.xCenter = void 0, this.yCenter = void 0, this.drawingArea = void 0, this._pointLabels = [], this._pointLabelItems = [];
            }

            setDimensions () {
                const e = this;
                e.width = e.maxWidth, e.height = e.maxHeight, e.paddingTop = Hr(
                    e.options) / 2, e.xCenter = Math.floor(
                    e.width / 2), e.yCenter = Math.floor(
                    (e.height - e.paddingTop) / 2), e.drawingArea = Math.min(
                    e.height - e.paddingTop, e.width) / 2;
            }

            determineDataLimits () {
                const e = this, {
                    min: t,
                    max: n,
                } = e.getMinMax(!1);
                e.min = X(t) && !isNaN(t) ? t : 0, e.max = X(n) && !isNaN(n)
                    ? n
                    : 0, e.handleTickRangeOptions();
            }

            computeTickLimit () {
                return Math.ceil(this.drawingArea / Hr(this.options));
            }

            generateTickLabels (e) {
                const t = this;
                Pr.prototype.generateTickLabels.call(t,
                    e), t._pointLabels = t.getLabels().
                    map(((e, n) => {
                        const i = J(t.options.pointLabels.callback, [e, n], t);
                        return i || 0 === i ? i : '';
                    }));
            }

            fit () {
                const e = this, t = e.options;
                t.display && t.pointLabels.display ? function (e) {
                    const t = {
                        l: 0,
                        r: e.width,
                        t: 0,
                        b: e.height - e.paddingTop,
                    }, n = {};
                    let i, a, r;
                    const o = [], s = [], l = e.getLabels().length;
                    for (i = 0; i < l; i++) {
                        const l = e.options.pointLabels.setContext(
                            e.getContext(i));
                        s[i] = l.padding, r = e.getPointPosition(i,
                            e.drawingArea + s[i]);
                        const h = Nt(l.font);
                        e.ctx.font = h.string, c = e.ctx, u = h.lineHeight, a = q(
                            d = e._pointLabels[i]) ? {
                            w: Ue(c, c.font, d),
                            h: d.length * u,
                        } : { w: c.measureText(d).width, h: u }, o[i] = a;
                        const f = e.getIndexAngle(i), p = Ie(f),
                            m = Fr(p, r.x, a.w, 0, 180),
                            g = Fr(p, r.y, a.h, 90, 270);
                        m.start < t.l && (t.l = m.start, n.l = f), m.end >
                        t.r && (t.r = m.end, n.r = f), g.start < t.t &&
                        (t.t = g.start, n.t = f), g.end > t.b &&
                        (t.b = g.end, n.b = f);
                    }
                    var c, u, d;
                    e._setReductions(e.drawingArea, t,
                        n), e._pointLabelItems = [];
                    const h = e.options, f = Hr(h),
                        p = e.getDistanceFromCenterForValue(
                            h.ticks.reverse ? e.min : e.max);
                    for (i = 0; i < l; i++) {
                        const t = 0 === i ? f / 2 : 0,
                            n = e.getPointPosition(i, p + t + s[i]),
                            a = Ie(e.getIndexAngle(i)), r = o[i];
                        zr(a, r, n);
                        const l = Rr(a);
                        let c;
                        c = 'left' === l ? n.x : 'center' === l
                            ? n.x - r.w / 2
                            : n.x - r.w;
                        const u = c + r.w;
                        e._pointLabelItems[i] = {
                            x: n.x,
                            y: n.y,
                            textAlign: l,
                            left: c,
                            top: n.y,
                            right: u,
                            bottom: n.y + r.h,
                        };
                    }
                }(e) : e.setCenterPoint(0, 0, 0, 0);
            }

            _setReductions (e, t, n) {
                const i = this;
                let a = t.l / Math.sin(n.l),
                    r = Math.max(t.r - i.width, 0) / Math.sin(n.r),
                    o = -t.t / Math.cos(n.t),
                    s = -Math.max(t.b - (i.height - i.paddingTop), 0) /
                        Math.cos(n.b);
                a = Wr(a), r = Wr(r), o = Wr(o), s = Wr(
                    s), i.drawingArea = Math.max(e / 2,
                    Math.min(Math.floor(e - (a + r) / 2),
                        Math.floor(e - (o + s) / 2))), i.setCenterPoint(a, r, o,
                    s);
            }

            setCenterPoint (e, t, n, i) {
                const a = this, r = a.width - t - a.drawingArea,
                    o = e + a.drawingArea, s = n + a.drawingArea,
                    l = a.height - a.paddingTop - i - a.drawingArea;
                a.xCenter = Math.floor(
                    (o + r) / 2 + a.left), a.yCenter = Math.floor(
                    (s + l) / 2 + a.top + a.paddingTop);
            }

            getIndexAngle (e) {
                return Re(e * (be / this.getLabels().length) +
                    Pe(this.options.startAngle || 0));
            }

            getDistanceFromCenterForValue (e) {
                const t = this;
                if (V(e)) return NaN;
                const n = t.drawingArea / (t.max - t.min);
                return t.options.reverse ? (t.max - e) * n : (e - t.min) * n;
            }

            getValueForDistanceFromCenter (e) {
                if (V(e)) return NaN;
                const t = this, n = e / (t.drawingArea / (t.max - t.min));
                return t.options.reverse ? t.max - n : t.min + n;
            }

            getPointPosition (e, t) {
                const n = this, i = n.getIndexAngle(e) - ke;
                return {
                    x: Math.cos(i) * t + n.xCenter,
                    y: Math.sin(i) * t + n.yCenter,
                    angle: i,
                };
            }

            getPointPositionForValue (e, t) {
                return this.getPointPosition(e,
                    this.getDistanceFromCenterForValue(t));
            }

            getBasePosition (e) {
                return this.getPointPositionForValue(e || 0,
                    this.getBaseValue());
            }

            getPointLabelPosition (e) {
                const {
                    left: t,
                    top: n,
                    right: i,
                    bottom: a,
                } = this._pointLabelItems[e];
                return { left: t, top: n, right: i, bottom: a };
            }

            drawBackground () {
                const e = this, {
                    backgroundColor: t,
                    grid: { circular: n },
                } = e.options;
                if (t) {
                    const i = e.ctx;
                    i.save(), i.beginPath(), Br(e,
                        e.getDistanceFromCenterForValue(e._endValue), n,
                        e.getLabels().length), i.closePath(), i.fillStyle = t, i.fill(), i.restore();
                }
            }

            drawGrid () {
                const e = this, t = e.ctx, n = e.options, {
                    angleLines: i,
                    grid: a,
                } = n, r = e.getLabels().length;
                let o, s, l;
                if (n.pointLabels.display && function (e, t) {
                    const {
                        ctx: n,
                        options: { pointLabels: i },
                    } = e;
                    for (let a = t - 1; a >= 0; a--) {
                        const t = i.setContext(e.getContext(a)),
                            r = Nt(t.font), {
                                x: o,
                                y: s,
                                textAlign: l,
                                left: c,
                                top: u,
                                right: d,
                                bottom: h,
                            } = e._pointLabelItems[a], { backdropColor: f } = t;
                        if (!V(f)) {
                            const e = jt(t.backdropPadding);
                            n.fillStyle = f, n.fillRect(c - e.left, u - e.top,
                                d - c + e.width, h - u + e.height);
                        }
                        tt(n, e._pointLabels[a], o, s + r.lineHeight / 2, r, {
                            color: t.color,
                            textAlign: l,
                            textBaseline: 'middle',
                        });
                    }
                }(e, r), a.display && e.ticks.forEach(((t, n) => {
                    if (0 !== n) {
                        s = e.getDistanceFromCenterForValue(t.value);
                        const i = a.setContext(e.getContext(n - 1));
                        !function (e, t, n, i) {
                            const a = e.ctx, r = t.circular, {
                                color: o,
                                lineWidth: s,
                            } = t;
                            !r && !i || !o || !s || n < 0 ||
                            (a.save(), a.strokeStyle = o, a.lineWidth = s, a.setLineDash(
                                t.borderDash), a.lineDashOffset = t.borderDashOffset, a.beginPath(), Br(
                                e, n, r,
                                i), a.closePath(), a.stroke(), a.restore());
                        }(e, i, s, r);
                    }
                })), i.display) {
                    for (t.save(), o = e.getLabels().length - 1; o >= 0; o--) {
                        const a = i.setContext(e.getContext(o)), {
                            color: r,
                            lineWidth: c,
                        } = a;
                        c && r &&
                        (t.lineWidth = c, t.strokeStyle = r, t.setLineDash(
                            a.borderDash), t.lineDashOffset = a.borderDashOffset, s = e.getDistanceFromCenterForValue(
                            n.ticks.reverse
                                ? e.min
                                : e.max), l = e.getPointPosition(o,
                            s), t.beginPath(), t.moveTo(e.xCenter,
                            e.yCenter), t.lineTo(l.x, l.y), t.stroke());
                    }
                    t.restore();
                }
            }

            drawBorder () {}

            drawLabels () {
                const e = this, t = e.ctx, n = e.options, i = n.ticks;
                if (!i.display) return;
                const a = e.getIndexAngle(0);
                let r, o;
                t.save(), t.translate(e.xCenter, e.yCenter), t.rotate(
                    a), t.textAlign = 'center', t.textBaseline = 'middle', e.ticks.forEach(
                    ((a, s) => {
                        if (0 === s && !n.reverse) return;
                        const l = i.setContext(e.getContext(s)), c = Nt(l.font);
                        if (r = e.getDistanceFromCenterForValue(
                            e.ticks[s].value), l.showLabelBackdrop) {
                            o = t.measureText(
                                a.label).width, t.fillStyle = l.backdropColor;
                            const e = jt(l.backdropPadding);
                            t.fillRect(-o / 2 - e.left, -r - c.size / 2 - e.top,
                                o + e.width, c.size + e.height);
                        }
                        tt(t, a.label, 0, -r, c, { color: l.color });
                    })), t.restore();
            }

            drawTitle () {}
        }

        Vr.id = 'radialLinear', Vr.defaults = {
            display: !0,
            animate: !0,
            position: 'chartArea',
            angleLines: {
                display: !0,
                lineWidth: 1,
                borderDash: [],
                borderDashOffset: 0,
            },
            grid: { circular: !1 },
            startAngle: 0,
            ticks: { showLabelBackdrop: !0, callback: Fn.formatters.numeric },
            pointLabels: {
                backdropColor: void 0,
                backdropPadding: 2,
                display: !0,
                font: { size: 10 },
                callback: e => e,
                padding: 5,
            },
        }, Vr.defaultRoutes = {
            'angleLines.color': 'borderColor',
            'pointLabels.color': 'color',
            'ticks.color': 'color',
        }, Vr.descriptors = { angleLines: { _fallback: 'grid' } };
        const qr = {
            millisecond: { common: !0, size: 1, steps: 1e3 },
            second: { common: !0, size: 1e3, steps: 60 },
            minute: { common: !0, size: 6e4, steps: 60 },
            hour: { common: !0, size: 36e5, steps: 24 },
            day: { common: !0, size: 864e5, steps: 30 },
            week: { common: !1, size: 6048e5, steps: 4 },
            month: { common: !0, size: 2628e6, steps: 12 },
            quarter: { common: !1, size: 7884e6, steps: 4 },
            year: { common: !0, size: 3154e7 },
        }, Ur = Object.keys(qr);

        function Xr (e, t) {return e - t;}

        function $r (e, t) {
            if (V(t)) return null;
            const n = e._adapter, {
                parser: i,
                round: a,
                isoWeekday: r,
            } = e._parseOpts;
            let o = t;
            return 'function' == typeof i && (o = i(o)), X(o) ||
            (o = 'string' == typeof i ? n.parse(o, i) : n.parse(o)), null === o
                ? null
                : (a && (o = 'week' !== a || !Ce(r) && !0 !== r
                    ? n.startOf(o, a)
                    : n.startOf(o, 'isoWeek', r)), +o);
        }

        function Gr (e, t, n, i) {
            const a = Ur.length;
            for (let r = Ur.indexOf(e); r < a - 1; ++r) {
                const e = qr[Ur[r]],
                    a = e.steps ? e.steps : Number.MAX_SAFE_INTEGER;
                if (e.common && Math.ceil((n - t) / (a * e.size)) <=
                    i) return Ur[r];
            }
            return Ur[a - 1];
        }

        function Zr (e, t, n) {
            if (n) {
                if (n.length) {
                    const {
                        lo: i,
                        hi: a,
                    } = it(n, t);
                    e[n[i] >= t ? n[i] : n[a]] = !0;
                }
            } else e[t] = !0;
        }

        function Kr (e, t, n) {
            const i = [], a = {}, r = t.length;
            let o, s;
            for (o = 0; o < r; ++o) s = t[o], a[s] = o, i.push(
                { value: s, major: !1 });
            return 0 !== r && n ? function (e, t, n, i) {
                const a = e._adapter, r = +a.startOf(t[0].value, i),
                    o = t[t.length - 1].value;
                let s, l;
                for (s = r; s <= o; s = +a.add(s, 1, i)) l = n[s], l >= 0 &&
                (t[l].major = !0);
                return t;
            }(e, i, a, n) : i;
        }

        class Jr extends $n {
            constructor (e) {
                super(e), this._cache = {
                    data: [],
                    labels: [],
                    all: [],
                }, this._unit = 'day', this._majorUnit = void 0, this._offsets = {}, this._normalized = !1, this._parseOpts = void 0;
            }

            init (e, t) {
                const n = e.time || (e.time = {}),
                    i = this._adapter = new ra._date(e.adapters.date);
                re(n.displayFormats, i.formats()), this._parseOpts = {
                    parser: n.parser,
                    round: n.round,
                    isoWeekday: n.isoWeekday,
                }, super.init(e), this._normalized = t.normalized;
            }

            parse (e, t) {return void 0 === e ? null : $r(this, e);}

            beforeLayout () {
                super.beforeLayout(), this._cache = {
                    data: [],
                    labels: [],
                    all: [],
                };
            }

            determineDataLimits () {
                const e = this, t = e.options, n = e._adapter,
                    i = t.time.unit || 'day';
                let {
                    min: a,
                    max: r,
                    minDefined: o,
                    maxDefined: s,
                } = e.getUserBounds();

                function l (e) {
                    o || isNaN(e.min) || (a = Math.min(a, e.min)), s ||
                    isNaN(e.max) || (r = Math.max(r, e.max));
                }

                o && s ||
                (l(e._getLabelBounds()), 'ticks' === t.bounds && 'labels' ===
                t.ticks.source || l(e.getMinMax(!1))), a = X(a) && !isNaN(a)
                    ? a
                    : +n.startOf(Date.now(), i), r = X(r) && !isNaN(r)
                    ? r
                    : +n.endOf(Date.now(), i) + 1, e.min = Math.min(a,
                    r - 1), e.max = Math.max(a + 1, r);
            }

            _getLabelBounds () {
                const e = this.getLabelTimestamps();
                let t = Number.POSITIVE_INFINITY, n = Number.NEGATIVE_INFINITY;
                return e.length && (t = e[0], n = e[e.length - 1]), {
                    min: t,
                    max: n,
                };
            }

            buildTicks () {
                const e = this, t = e.options, n = t.time, i = t.ticks,
                    a = 'labels' === i.source
                        ? e.getLabelTimestamps()
                        : e._generate();
                'ticks' === t.bounds && a.length &&
                (e.min = e._userMin || a[0], e.max = e._userMax ||
                    a[a.length - 1]);
                const r = e.min, o = ot(a, r, e.max);
                return e._unit = n.unit ||
                    (i.autoSkip ? Gr(n.minUnit, e.min, e.max,
                        e._getLabelCapacity(r)) : function (
                        e, t, n, i, a) {
                        for (let r = Ur.length - 1; r >= Ur.indexOf(n); r--) {
                            const n = Ur[r];
                            if (qr[n].common && e._adapter.diff(a, i, n) >= t -
                                1) return n;
                        }
                        return Ur[n ? Ur.indexOf(n) : 0];
                    }(e, o.length, n.minUnit, e.min,
                        e.max)), e._majorUnit = i.major.enabled && 'year' !==
                e._unit ? function (e) {
                    for (let t = Ur.indexOf(e) + 1, n = Ur.length; t <
                    n; ++t) if (qr[Ur[t]].common) return Ur[t];
                }(e._unit) : void 0, e.initOffsets(a), t.reverse &&
                o.reverse(), Kr(e, o, e._majorUnit);
            }

            initOffsets (e) {
                const t = this;
                let n, i, a = 0, r = 0;
                t.options.offset && e.length &&
                (n = t.getDecimalForValue(e[0]), a = 1 === e.length
                    ? 1 - n
                    : (t.getDecimalForValue(e[1]) - n) /
                    2, i = t.getDecimalForValue(e[e.length - 1]), r = 1 ===
                e.length ? i : (i - t.getDecimalForValue(e[e.length - 2])) / 2);
                const o = e.length < 3 ? .5 : .25;
                a = Be(a, 0, o), r = Be(r, 0, o), t._offsets = {
                    start: a,
                    end: r,
                    factor: 1 / (a + 1 + r),
                };
            }

            _generate () {
                const e = this, t = e._adapter, n = e.min, i = e.max,
                    a = e.options, r = a.time,
                    o = r.unit || Gr(r.minUnit, n, i, e._getLabelCapacity(n)),
                    s = G(r.stepSize, 1), l = 'week' === o && r.isoWeekday,
                    c = Ce(l) || !0 === l, u = {};
                let d, h, f = n;
                if (c && (f = +t.startOf(f, 'isoWeek', l)), f = +t.startOf(f,
                    c ? 'day' : o), t.diff(i, n, o) > 1e5 * s) throw new Error(
                    n + ' and ' + i + ' are too far apart with stepSize of ' +
                    s + ' ' + o);
                const p = 'data' === a.ticks.source && e.getDataTimestamps();
                for (d = f, h = 0; d < i; d = +t.add(d, s, o), h++) Zr(u, d, p);
                return d !== i && 'ticks' !== a.bounds && 1 !== h ||
                Zr(u, d, p), Object.keys(u).
                    sort(((e, t) => e - t)).
                    map((e => +e));
            }

            getLabelForValue (e) {
                const t = this._adapter, n = this.options.time;
                return n.tooltipFormat
                    ? t.format(e, n.tooltipFormat)
                    : t.format(e, n.displayFormats.datetime);
            }

            _tickFormatFunction (e, t, n, i) {
                const a = this, r = a.options, o = r.time.displayFormats,
                    s = a._unit, l = a._majorUnit, c = s && o[s], u = l && o[l],
                    d = n[t], h = l && u && d && d.major,
                    f = a._adapter.format(e, i || (h ? u : c)),
                    p = r.ticks.callback;
                return p ? J(p, [f, t, n], a) : f;
            }

            generateTickLabels (e) {
                let t, n, i;
                for (t = 0, n = e.length; t <
                n; ++t) i = e[t], i.label = this._tickFormatFunction(i.value, t,
                    e);
            }

            getDecimalForValue (e) {
                const t = this;
                return null === e ? NaN : (e - t.min) / (t.max - t.min);
            }

            getPixelForValue (e) {
                const t = this, n = t._offsets, i = t.getDecimalForValue(e);
                return t.getPixelForDecimal((n.start + i) * n.factor);
            }

            getValueForPixel (e) {
                const t = this, n = t._offsets,
                    i = t.getDecimalForPixel(e) / n.factor - n.end;
                return t.min + i * (t.max - t.min);
            }

            _getLabelSize (e) {
                const t = this, n = t.options.ticks,
                    i = t.ctx.measureText(e).width,
                    a = Pe(t.isHorizontal() ? n.maxRotation : n.minRotation),
                    r = Math.cos(a), o = Math.sin(a),
                    s = t._resolveTickFontOptions(0).size;
                return { w: i * r + s * o, h: i * o + s * r };
            }

            _getLabelCapacity (e) {
                const t = this, n = t.options.time, i = n.displayFormats,
                    a = i[n.unit] || i.millisecond,
                    r = t._tickFormatFunction(e, 0, Kr(t, [e], t._majorUnit),
                        a), o = t._getLabelSize(r), s = Math.floor(
                    t.isHorizontal() ? t.width / o.w : t.height / o.h) - 1;
                return s > 0 ? s : 1;
            }

            getDataTimestamps () {
                const e = this;
                let t, n, i = e._cache.data || [];
                if (i.length) return i;
                const a = e.getMatchingVisibleMetas();
                if (e._normalized &&
                    a.length) return e._cache.data = a[0].controller.getAllParsedValues(
                    e);
                for (t = 0, n = a.length; t < n; ++t) i = i.concat(
                    a[t].controller.getAllParsedValues(e));
                return e._cache.data = e.normalize(i);
            }

            getLabelTimestamps () {
                const e = this, t = e._cache.labels || [];
                let n, i;
                if (t.length) return t;
                const a = e.getLabels();
                for (n = 0, i = a.length; n < i; ++n) t.push($r(e, a[n]));
                return e._cache.labels = e._normalized ? t : e.normalize(t);
            }

            normalize (e) {return ut(e.sort(Xr));}
        }

        function Qr (e, t, n) {
            let i, a, r, o;
            if (n) i = Math.floor(t), a = Math.ceil(
                t), r = e[i], o = e[a]; else {
                const n = it(e, t);
                r = n.lo, o = n.hi, i = e[r], a = e[o];
            }
            const s = a - i;
            return s ? r + (o - r) * (t - i) / s : r;
        }

        Jr.id = 'time', Jr.defaults = {
            bounds: 'data',
            adapters: {},
            time: {
                parser: !1,
                unit: !1,
                round: !1,
                isoWeekday: !1,
                minUnit: 'millisecond',
                displayFormats: {},
            },
            ticks: { source: 'auto', major: { enabled: !1 } },
        };

        class eo extends Jr {
            constructor (e) {
                super(e), this._table = [], this._maxIndex = void 0;
            }

            initOffsets () {
                const e = this, t = e._getTimestampsForTable();
                e._table = e.buildLookupTable(
                    t), e._maxIndex = e._table.length - 1, super.initOffsets(t);
            }

            buildLookupTable (e) {
                const { min: t, max: n } = this;
                if (!e.length) return [
                    { time: t, pos: 0 },
                    { time: n, pos: 1 }];
                const i = [t];
                let a, r, o;
                for (a = 0, r = e.length; a < r; ++a) o = e[a], o > t && o <
                n && i.push(o);
                return i.push(n), i;
            }

            _getTimestampsForTable () {
                const e = this;
                let t = e._cache.all || [];
                if (t.length) return t;
                const n = e.getDataTimestamps(), i = e.getLabelTimestamps();
                return t = n.length && i.length
                    ? e.normalize(n.concat(i))
                    : n.length ? n : i, t = e._cache.all = t, t;
            }

            getPixelForValue (e, t) {
                const n = this, i = n._offsets,
                    a = n._normalized && n._maxIndex > 0 && !V(t)
                        ? t / n._maxIndex
                        : n.getDecimalForValue(e);
                return n.getPixelForDecimal((i.start + a) * i.factor);
            }

            getDecimalForValue (e) {return Qr(this._table, e) / this._maxIndex;}

            getValueForPixel (e) {
                const t = this, n = t._offsets,
                    i = t.getDecimalForPixel(e) / n.factor - n.end;
                return Qr(t._table, i * this._maxIndex, !0);
            }
        }

        eo.id = 'timeseries', eo.defaults = Jr.defaults;
        var to = Object.freeze({
            __proto__: null,
            CategoryScale: Or,
            LinearScale: Ir,
            LogarithmicScale: Nr,
            RadialLinearScale: Vr,
            TimeScale: Jr,
            TimeSeriesScale: eo,
        });
        return ea.register(ya, to, qa,
            Cr), ea.helpers = { ...Di }, ea._adapters = ra, ea.Animation = xn, ea.Animations = wn, ea.animator = o, ea.controllers = Ei.controllers.items, ea.DatasetController = Pn, ea.Element = In, ea.elements = qa, ea.Interaction = Dt, ea.layouts = Zt, ea.platforms = fn, ea.Scale = $n, ea.Ticks = Fn, Object.assign(
            ea, ya, to, qa, Cr, fn), ea.Chart = ea, 'undefined' !=
        typeof window && (window.Chart = ea), ea;
    })), function (e, t) {
    'object' == typeof exports && 'undefined' != typeof module
        ? t(exports)
        : 'function' == typeof define && define.amd
        ? define(['exports'], t)
        : t((e = e || self).countUp = {});
}(this, (function (e) {
    'use strict';
    var t = function () {
        return (t = Object.assign || function (e) {
            for (var t, n = 1, i = arguments.length; n <
            i; n++) for (var a in t = arguments[n]) Object.prototype.hasOwnProperty.call(
                t, a) && (e[a] = t[a]);
            return e;
        }).apply(this, arguments);
    }, n = function () {
        function e (e, n, i) {
            var a = this;
            this.target = e, this.endVal = n, this.options = i, this.version = '2.0.7', this.defaults = {
                startVal: 0,
                decimalPlaces: 0,
                duration: 2,
                useEasing: !0,
                useGrouping: !0,
                smartEasingThreshold: 999,
                smartEasingAmount: 333,
                separator: ',',
                decimal: '.',
                prefix: '',
                suffix: '',
            }, this.finalEndVal = null, this.useEasing = !0, this.countDown = !1, this.error = '', this.startVal = 0, this.paused = !0, this.count = function (e) {
                a.startTime || (a.startTime = e);
                var t = e - a.startTime;
                a.remaining = a.duration - t, a.useEasing ? a.countDown
                    ? a.frameVal = a.startVal -
                        a.easingFn(t, 0, a.startVal - a.endVal, a.duration)
                    : a.frameVal = a.easingFn(t, a.startVal,
                        a.endVal - a.startVal, a.duration) : a.countDown
                    ? a.frameVal = a.startVal - (a.startVal - a.endVal) *
                        (t / a.duration)
                    : a.frameVal = a.startVal + (a.endVal - a.startVal) *
                        (t / a.duration), a.countDown
                    ? a.frameVal = a.frameVal < a.endVal ? a.endVal : a.frameVal
                    : a.frameVal = a.frameVal > a.endVal
                        ? a.endVal
                        : a.frameVal, a.frameVal = Number(
                    a.frameVal.toFixed(a.options.decimalPlaces)), a.printValue(
                    a.frameVal), t < a.duration ? a.rAF = requestAnimationFrame(
                    a.count) : null !== a.finalEndVal
                    ? a.update(a.finalEndVal)
                    : a.callback && a.callback();
            }, this.formatNumber = function (e) {
                var t, n, i, r, o, s = e < 0 ? '-' : '';
                if (t = Math.abs(e).
                    toFixed(a.options.decimalPlaces), i = (n = (t += '').split(
                    '.'))[0], r = n.length > 1
                    ? a.options.decimal + n[1]
                    : '', a.options.useGrouping) {
                    o = '';
                    for (var l = 0, c = i.length; l < c; ++l) 0 !== l && l %
                    3 == 0 && (o = a.options.separator + o), o = i[c - l - 1] +
                        o;
                    i = o;
                }
                return a.options.numerals && a.options.numerals.length &&
                (i = i.replace(/[0-9]/g,
                    (function (e) {return a.options.numerals[+e];})), r = r.replace(
                    /[0-9]/g,
                    (function (e) {return a.options.numerals[+e];}))), s +
                a.options.prefix + i + r + a.options.suffix;
            }, this.easeOutExpo = function (e, t, n, i) {
                return n * (1 - Math.pow(2, -10 * e / i)) * 1024 / 1023 + t;
            }, this.options = t(t({}, this.defaults),
                i), this.formattingFn = this.options.formattingFn
                ? this.options.formattingFn
                : this.formatNumber, this.easingFn = this.options.easingFn
                ? this.options.easingFn
                : this.easeOutExpo, this.startVal = this.validateValue(
                this.options.startVal), this.frameVal = this.startVal, this.endVal = this.validateValue(
                n), this.options.decimalPlaces = Math.max(
                this.options.decimalPlaces), this.resetDuration(), this.options.separator = String(
                this.options.separator), this.useEasing = this.options.useEasing, '' ===
            this.options.separator &&
            (this.options.useGrouping = !1), this.el = 'string' == typeof e
                ? document.getElementById(e)
                : e, this.el
                ? this.printValue(this.startVal)
                : this.error = '[CountUp] target is null or undefined';
        }

        return e.prototype.determineDirectionAndSmartEasing = function () {
            var e = this.finalEndVal
                ? this.finalEndVal
                : this.endVal;
            this.countDown = this.startVal > e;
            var t = e - this.startVal;
            if (Math.abs(t) > this.options.smartEasingThreshold) {
                this.finalEndVal = e;
                var n = this.countDown ? 1 : -1;
                this.endVal = e + n *
                    this.options.smartEasingAmount, this.duration = this.duration /
                    2;
            } else this.endVal = e, this.finalEndVal = null;
            this.finalEndVal
                ? this.useEasing = !1
                : this.useEasing = this.options.useEasing;
        }, e.prototype.start = function (e) {
            this.error || (this.callback = e, this.duration > 0
                ? (this.determineDirectionAndSmartEasing(), this.paused = !1, this.rAF = requestAnimationFrame(
                    this.count))
                : this.printValue(this.endVal));
        }, e.prototype.pauseResume = function () {
            this.paused
                ? (this.startTime = null, this.duration = this.remaining, this.startVal = this.frameVal, this.determineDirectionAndSmartEasing(), this.rAF = requestAnimationFrame(
                this.count))
                : cancelAnimationFrame(this.rAF), this.paused = !this.paused;
        }, e.prototype.reset = function () {
            cancelAnimationFrame(
                this.rAF), this.paused = !0, this.resetDuration(), this.startVal = this.validateValue(
                this.options.startVal), this.frameVal = this.startVal, this.printValue(
                this.startVal);
        }, e.prototype.update = function (e) {
            cancelAnimationFrame(
                this.rAF), this.startTime = null, this.endVal = this.validateValue(
                e), this.endVal !== this.frameVal &&
            (this.startVal = this.frameVal, this.finalEndVal ||
            this.resetDuration(), this.finalEndVal = null, this.determineDirectionAndSmartEasing(), this.rAF = requestAnimationFrame(
                this.count));
        }, e.prototype.printValue = function (e) {
            var t = this.formattingFn(e);
            'INPUT' === this.el.tagName ? this.el.value = t : 'text' ===
            this.el.tagName || 'tspan' === this.el.tagName
                ? this.el.textContent = t
                : this.el.innerHTML = t;
        }, e.prototype.ensureNumber = function (e) {
            return 'number' == typeof e && !isNaN(e);
        }, e.prototype.validateValue = function (e) {
            var t = Number(e);
            return this.ensureNumber(t)
                ? t
                : (this.error = '[CountUp] invalid start or end value: ' +
                    e, null);
        }, e.prototype.resetDuration = function () {
            this.startTime = null, this.duration = 1e3 *
                Number(this.options.duration), this.remaining = this.duration;
        }, e;
    }();
    e.CountUp = n, Object.defineProperty(e, '__esModule', { value: !0 });
})), function (e) {
    function t () {
        for (var e = 0; e < w.length; e++) w[e][0](w[e][1]);
        w = [], m = !1;
    }

    function n (e, n) {w.push([e, n]), m || (m = !0, _(t, 0));}

    function i (e) {
        var t = (n = e.owner).state_, n = n.data_, i = e[t];
        if (e = e.then, 'function' == typeof i) {
            t = y;
            try {n = i(n);} catch (t) {s(e, t);}
        }
        a(e, n) || (t === y && r(e, n), t === b && s(e, n));
    }

    function a (e, t) {
        var n;
        try {
            if (e === t) throw new TypeError(
                'A promises callback cannot return that same promise.');
            if (t && ('function' == typeof t || 'object' == typeof t)) {
                var i = t.then;
                if ('function' == typeof i) return i.call(t,
                    (function (i) {
                        n || (n = !0, t !== i ? r(e, i) : o(e, i));
                    }),
                    (function (t) {n || (n = !0, s(e, t));})), !0;
            }
        } catch (t) {return n || s(e, t), !0;}
        return !1;
    }

    function r (e, t) {e !== t && a(e, t) || o(e, t);}

    function o (e, t) {e.state_ === g && (e.state_ = v, e.data_ = t, n(c, e));}

    function s (e, t) {e.state_ === g && (e.state_ = v, e.data_ = t, n(u, e));}

    function l (e) {
        var t = e.then_;
        for (e.then_ = void 0, e = 0; e < t.length; e++) i(t[e]);
    }

    function c (e) {e.state_ = y, l(e);}

    function u (e) {e.state_ = b, l(e);}

    function d (e) {
        if ('function' != typeof e) throw new TypeError(
            'Promise constructor takes a function argument');
        if (!1 == this instanceof d) throw new TypeError(
            'Failed to construct \'Promise\': Please use the \'new\' operator, this object constructor cannot be called as a function.');
        this.then_ = [], function (e, t) {
            function n (e) {s(t, e);}

            try {e((function (e) {r(t, e);}), n);} catch (e) {n(e);}
        }(e, this);
    }

    var h, f = e.Promise,
        p = f && 'resolve' in f && 'reject' in f && 'all' in f && 'race' in f &&
            (new f((function (e) {h = e;})), 'function' == typeof h);
    'undefined' != typeof exports && exports ? (exports.Promise = p
        ? f
        : d, exports.Polyfill = d) : 'function' == typeof define && define.amd
        ? define((function () {return p ? f : d;}))
        : p || (e.Promise = d);
    var m, g = 'pending', v = 'sealed', y = 'fulfilled', b = 'rejected',
        x = function () {},
        _ = 'undefined' != typeof setImmediate ? setImmediate : setTimeout,
        w = [];
    d.prototype = {
        constructor: d,
        state_: g,
        then_: null,
        data_: void 0,
        then: function (e, t) {
            var a = {
                owner: this,
                then: new this.constructor(x),
                fulfilled: e,
                rejected: t,
            };
            return this.state_ === y || this.state_ === b
                ? n(i, a)
                : this.then_.push(a), a.then;
        },
        catch: function (e) {return this.then(null, e);},
    }, d.all = function (e) {
        if ('[object Array]' !==
            Object.prototype.toString.call(e)) throw new TypeError(
            'You must pass an array to Promise.all().');
        return new this((function (t, n) {
            function i (e) {
                return o++, function (n) {
                    r[e] = n, --o || t(r);
                };
            }

            for (var a, r = [], o = 0, s = 0; s < e.length; s++) (a = e[s]) &&
            'function' == typeof a.then ? a.then(i(s), n) : r[s] = a;
            o || t(r);
        }));
    }, d.race = function (e) {
        if ('[object Array]' !==
            Object.prototype.toString.call(e)) throw new TypeError(
            'You must pass an array to Promise.race().');
        return new this((function (t, n) {
            for (var i, a = 0; a < e.length; a++) (i = e[a]) && 'function' ==
            typeof i.then ? i.then(t, n) : t(i);
        }));
    }, d.resolve = function (e) {
        return e && 'object' == typeof e && e.constructor === this
            ? e
            : new this((function (t) {t(e);}));
    }, d.reject = function (e) {return new this((function (t, n) {n(e);}));};
}('undefined' != typeof window ? window : 'undefined' != typeof global
    ? global
    : 'undefined' != typeof self ? self : this), function (e, t) {
    'object' == typeof exports && 'undefined' != typeof module
        ? module.exports = t()
        : 'function' == typeof define && define.amd ? define(t) : (e = e ||
        self).Sweetalert2 = t();
}(this, (function () {
    'use strict';

    function e (t) {
        return (e = 'function' == typeof Symbol && 'symbol' ==
        typeof Symbol.iterator
            ? function (e) {return typeof e;}
            : function (e) {
                return e && 'function' == typeof Symbol && e.constructor ===
                Symbol && e !== Symbol.prototype ? 'symbol' : typeof e;
            })(t);
    }

    function t (e, t) {
        if (!(e instanceof t)) throw new TypeError(
            'Cannot call a class as a function');
    }

    function n (e, t) {
        for (var n = 0; n < t.length; n++) {
            var i = t[n];
            i.enumerable = i.enumerable || !1, i.configurable = !0, 'value' in
            i && (i.writable = !0), Object.defineProperty(e, i.key, i);
        }
    }

    function i (e, t, i) {return t && n(e.prototype, t), i && n(e, i), e;}

    function a () {
        return (a = Object.assign || function (e) {
            for (var t = 1; t < arguments.length; t++) {
                var n, i = arguments[t];
                for (n in i) Object.prototype.hasOwnProperty.call(i, n) &&
                (e[n] = i[n]);
            }
            return e;
        }).apply(this, arguments);
    }

    function r (e) {
        return (r = Object.setPrototypeOf
            ? Object.getPrototypeOf
            : function (e) {return e.__proto__ || Object.getPrototypeOf(e);})(
            e);
    }

    function o (e, t) {
        return (o = Object.setPrototypeOf ||
            function (e, t) {return e.__proto__ = t, e;})(e, t);
    }

    function s () {
        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 (e) {return !1;}
    }

    function l (e, t, n) {
        return (l = s() ? Reflect.construct : function (
            e, t, n) {
            var i = [null];
            return i.push.apply(i, t), i = new (Function.bind.apply(e, i)), n &&
            o(i, n.prototype), i;
        }).apply(null, arguments);
    }

    function c (e, t) {
        return !t || 'object' != typeof t && 'function' != typeof t
            ? function (e) {
                if (void 0 === e) throw new ReferenceError(
                    'this hasn\'t been initialised - super() hasn\'t been called');
                return e;
            }(e)
            : t;
    }

    function u (e, t, n) {
        return (u = 'undefined' != typeof Reflect && Reflect.get
            ? Reflect.get
            : function (e, t, n) {
                if (e = function (
                    e, t) {
                    for (; !Object.prototype.hasOwnProperty.call(e, t) &&
                           null !== (e = r(e));) ;
                    return e;
                }(e, t)) return (t = Object.getOwnPropertyDescriptor(e, t)).get
                    ? t.get.call(n)
                    : t.value;
            })(e, t, n || e);
    }

    function d (e) {return e.charAt(0).toUpperCase() + e.slice(1);}

    function h (e) {return Object.keys(e).map((function (t) {return e[t];}));}

    function f (e) {return Array.prototype.slice.call(e);}

    function p (e, t) {
        t = '"'.concat(e,
            '" is deprecated and will be removed in the next major release. Please use "').
            concat(t, '" instead.'), -1 === X.indexOf(t) && (X.push(t), q(t));
    }

    function m (e) {return e && 'function' == typeof e.toPromise;}

    function g (e) {return m(e) ? e.toPromise() : Promise.resolve(e);}

    function v (e) {return e && Promise.resolve(e) === e;}

    function y (t) {
        return t instanceof Element || 'object' === e(t = t) && t.jquery;
    }

    function b () {return document.body.querySelector('.'.concat(Z.container));}

    function x (e) {
        var t = b();
        return t ? t.querySelector(e) : null;
    }

    function _ (e) {return x('.'.concat(e));}

    function w () {return _(Z.popup);}

    function k () {return _(Z.icon);}

    function M () {return _(Z.title);}

    function L () {return _(Z.content);}

    function S () {return _(Z['html-container']);}

    function T () {return _(Z.image);}

    function A () {return _(Z['progress-steps']);}

    function D () {return _(Z['validation-message']);}

    function C () {return x('.'.concat(Z.actions, ' .').concat(Z.confirm));}

    function E () {return x('.'.concat(Z.actions, ' .').concat(Z.deny));}

    function O () {return x('.'.concat(Z.loader));}

    function Y () {return x('.'.concat(Z.actions, ' .').concat(Z.cancel));}

    function P () {return _(Z.actions);}

    function I () {return _(Z.header);}

    function j () {return _(Z.footer);}

    function N () {return _(Z['timer-progress-bar']);}

    function H () {return _(Z.close);}

    function F () {
        var e = f(w().
            querySelectorAll(
                '[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).
            sort((function (e, t) {
                return e = parseInt(e.getAttribute('tabindex')), (t = parseInt(
                    t.getAttribute('tabindex'))) < e ? 1 : e < t ? -1 : 0;
            })), t = f(w().
            querySelectorAll(
                '\n  a[href],\n  area[href],\n  input:not([disabled]),\n  select:not([disabled]),\n  textarea:not([disabled]),\n  button:not([disabled]),\n  iframe,\n  object,\n  embed,\n  [tabindex="0"],\n  [contenteditable],\n  audio[controls],\n  video[controls],\n  summary\n')).
            filter(
                (function (e) {return '-1' !== e.getAttribute('tabindex');}));
        return function (e) {
            for (var t = [], n = 0; n < e.length; n++) -1 === t.indexOf(e[n]) &&
            t.push(e[n]);
            return t;
        }(e.concat(t)).filter((function (e) {return ye(e);}));
    }

    function R () {
        return !J() && !document.body.classList.contains(Z['no-backdrop']);
    }

    function z (e, t) {
        e.textContent = '', t &&
        (f((t = (new DOMParser).parseFromString(t, 'text/html')).querySelector(
            'head').childNodes).forEach((function (t) {e.appendChild(t);})), f(
            t.querySelector('body').childNodes).
            forEach((function (t) {e.appendChild(t);})));
    }

    function B (e, t) {
        if (t) {
            for (var n = t.split(/\s+/), i = 0; i <
            n.length; i++) if (!e.classList.contains(n[i])) return;
            return 1;
        }
    }

    function W (t, n, i) {
        var a, r;
        if (r = n, f((a = t).classList).
            forEach((function (e) {
                -1 === h(Z).indexOf(e) && -1 === h(K).indexOf(e) && -1 ===
                h(r.showClass).indexOf(e) && a.classList.remove(e);
            })), n.customClass && n.customClass[i]) {
            if ('string' != typeof n.customClass[i] &&
                !n.customClass[i].forEach) return q(
                'Invalid type of customClass.'.concat(i,
                    '! Expected string or iterable object, got "').
                    concat(e(n.customClass[i]), '"'));
            me(t, n.customClass[i]);
        }
    }

    var V = 'SweetAlert2:', q = function (t) {
            console.warn(
                ''.concat(V, ' ').concat('object' === e(t) ? t.join(' ') : t));
        }, U = function (e) {console.error(''.concat(V, ' ').concat(e));}, X = [],
        $ = function (e) {return 'function' == typeof e ? e() : e;},
        G = Object.freeze({
            cancel: 'cancel',
            backdrop: 'backdrop',
            close: 'close',
            esc: 'esc',
            timer: 'timer',
        }), Z = (en = function (e) {
            var t, n = {};
            for (t in e) n[e[t]] = 'swal2-' + e[t];
            return n;
        })([
            'container',
            'shown',
            'height-auto',
            'iosfix',
            'popup',
            'modal',
            'no-backdrop',
            'no-transition',
            'toast',
            'toast-shown',
            'show',
            'hide',
            'close',
            'title',
            'header',
            'content',
            'html-container',
            'actions',
            'confirm',
            'deny',
            'cancel',
            'footer',
            'icon',
            'icon-content',
            'image',
            'input',
            'file',
            'range',
            'select',
            'radio',
            'checkbox',
            'label',
            'textarea',
            'inputerror',
            'input-label',
            'validation-message',
            'progress-steps',
            'active-progress-step',
            'progress-step',
            'progress-step-line',
            'loader',
            'loading',
            'styled',
            'top',
            'top-start',
            'top-end',
            'top-left',
            'top-right',
            'center',
            'center-start',
            'center-end',
            'center-left',
            'center-right',
            'bottom',
            'bottom-start',
            'bottom-end',
            'bottom-left',
            'bottom-right',
            'grow-row',
            'grow-column',
            'grow-fullscreen',
            'rtl',
            'timer-progress-bar',
            'timer-progress-bar-container',
            'scrollbar-measure',
            'icon-success',
            'icon-warning',
            'icon-info',
            'icon-question',
            'icon-error']),
        K = en(['success', 'warning', 'info', 'question', 'error']),
        J = function () {
            return document.body.classList.contains(Z['toast-shown']);
        }, Q = { previousBodyPadding: null };

    function ee (e, t) {
        if (!t) return null;
        switch (t) {
            case'select':
            case'textarea':
            case'file':
                return ve(e, Z[t]);
            case'checkbox':
                return e.querySelector('.'.concat(Z.checkbox, ' input'));
            case'radio':
                return e.querySelector('.'.concat(Z.radio, ' input:checked')) ||
                    e.querySelector('.'.concat(Z.radio, ' input:first-child'));
            case'range':
                return e.querySelector('.'.concat(Z.range, ' input'));
            default:
                return ve(e, Z.input);
        }
    }

    function te (e) {
        var t;
        e.focus(), 'file' !== e.type &&
        (t = e.value, e.value = '', e.value = t);
    }

    function ne (e, t, n) {
        e && t &&
        (t = 'string' == typeof t ? t.split(/\s+/).filter(Boolean) : t).forEach(
            (function (t) {
                e.forEach
                    ? e.forEach((function (e) {
                        n ? e.classList.add(t) : e.classList.remove(t);
                    }))
                    : n ? e.classList.add(t) : e.classList.remove(t);
            }));
    }

    function ie (e, t, n) {
        (n = n === ''.concat(parseInt(n))
            ? parseInt(n)
            : n) || 0 === parseInt(n) ? e.style[t] = 'number' == typeof n
            ? ''.concat(n, 'px')
            : n : e.style.removeProperty(t);
    }

    function ae (e) {
        e.style.display = 1 < arguments.length && void 0 !== arguments[1]
            ? arguments[1]
            : 'flex';
    }

    function re (e) {e.style.display = 'none';}

    function oe (e, t, n, i) {(t = e.querySelector(t)) && (t.style[n] = i);}

    function se (e, t, n) {t ? ae(e, n) : re(e);}

    function le (e) {return !!(e.scrollHeight > e.clientHeight);}

    function ce (e) {
        var t = window.getComputedStyle(e);
        e = parseFloat(
            t.getPropertyValue('animation-duration') || '0'), t = parseFloat(
            t.getPropertyValue('transition-duration') || '0');
        return 0 < e || 0 < t;
    }

    function ue (e) {
        var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1],
            n = N();
        ye(n) &&
        (t && (n.style.transition = 'none', n.style.width = '100%'), setTimeout(
            (function () {
                n.style.transition = 'width '.concat(e / 1e3,
                    's linear'), n.style.width = '0%';
            }), 10));
    }

    function de () {
        return 'undefined' == typeof window || 'undefined' == typeof document;
    }

    function he (e) {
        nn.isVisible() && pe !== e.target.value &&
        nn.resetValidationMessage(), pe = e.target.value;
    }

    function fe (t, n) {
        t instanceof HTMLElement
            ? n.appendChild(t)
            : 'object' === e(t) ? xe(t, n) : t && z(n, t);
    }

    var pe, me = function (e, t) {ne(e, t, !0);},
        ge = function (e, t) {ne(e, t, !1);}, ve = function (e, t) {
            for (var n = 0; n < e.childNodes.length; n++) if (B(e.childNodes[n],
                t)) return e.childNodes[n];
        }, ye = function (e) {
            return !(!e ||
                !(e.offsetWidth || e.offsetHeight || e.getClientRects().length));
        }, be = '\n <div aria-labelledby="'.concat(Z.title, '" aria-describedby="').
            concat(Z.content, '" class="').
            concat(Z.popup, '" tabindex="-1">\n   <div class="').
            concat(Z.header, '">\n     <ul class="').
            concat(Z['progress-steps'], '"></ul>\n     <div class="').
            concat(Z.icon, '"></div>\n     <img class="').
            concat(Z.image, '" />\n     <h2 class="').
            concat(Z.title, '" id="').
            concat(Z.title, '"></h2>\n     <button type="button" class="').
            concat(Z.close, '"></button>\n   </div>\n   <div class="').
            concat(Z.content, '">\n     <div id="').
            concat(Z.content, '" class="').
            concat(Z['html-container'], '"></div>\n     <input class="').
            concat(Z.input, '" />\n     <input type="file" class="').
            concat(Z.file, '" />\n     <div class="').
            concat(Z.range,
                '">\n       <input type="range" />\n       <output></output>\n     </div>\n     <select class="').
            concat(Z.select, '"></select>\n     <div class="').
            concat(Z.radio, '"></div>\n     <label for="').
            concat(Z.checkbox, '" class="').
            concat(Z.checkbox,
                '">\n       <input type="checkbox" />\n       <span class="').
            concat(Z.label, '"></span>\n     </label>\n     <textarea class="').
            concat(Z.textarea, '"></textarea>\n     <div class="').
            concat(Z['validation-message'], '" id="').
            concat(Z['validation-message'], '"></div>\n   </div>\n   <div class="').
            concat(Z.actions, '">\n     <div class="').
            concat(Z.loader, '"></div>\n     <button type="button" class="').
            concat(Z.confirm, '"></button>\n     <button type="button" class="').
            concat(Z.deny, '"></button>\n     <button type="button" class="').
            concat(Z.cancel, '"></button>\n   </div>\n   <div class="').
            concat(Z.footer, '"></div>\n   <div class="').
            concat(Z['timer-progress-bar-container'], '">\n     <div class="').
            concat(Z['timer-progress-bar'], '"></div>\n   </div>\n </div>\n').
            replace(/(^|\n)\s*/g, ''),
        xe = function (e, t) {e.jquery ? _e(t, e) : z(t, e.toString());},
        _e = function (e, t) {
            if (e.textContent = '', 0 in t) for (var n = 0; n in
            t; n++) e.appendChild(t[n].cloneNode(!0)); else e.appendChild(
                t.cloneNode(!0));
        }, we = function () {
            if (de()) return !1;
            var e, t = document.createElement('div'), n = {
                WebkitAnimation: 'webkitAnimationEnd',
                OAnimation: 'oAnimationEnd oanimationend',
                animation: 'animationend',
            };
            for (e in n) if (Object.prototype.hasOwnProperty.call(n, e) &&
                void 0 !== t.style[e]) return n[e];
            return !1;
        }();

    function ke (e, t, n) {
        se(e, n['show'.concat(d(t), 'Button')], 'inline-block'), z(e,
            n[''.concat(t, 'ButtonText')]), e.setAttribute('aria-label',
            n[''.concat(t, 'ButtonAriaLabel')]), e.className = Z[t], W(e, n,
            ''.concat(t, 'Button')), me(e, n[''.concat(t, 'ButtonClass')]);
    }

    function Me (e, t) {
        e.placeholder && !t.inputPlaceholder ||
        (e.placeholder = t.inputPlaceholder);
    }

    function Le (e, t, n) {
        var i, a;
        n.inputLabel && (e.id = Z.input, i = document.createElement(
            'label'), a = Z['input-label'], i.setAttribute('for',
            e.id), i.className = a, me(i,
            n.customClass.inputLabel), i.innerText = n.inputLabel, t.insertAdjacentElement(
            'beforebegin', i));
    }

    var Se = {
            promise: new WeakMap,
            innerParams: new WeakMap,
            domCache: new WeakMap,
        }, Te = [
            'input',
            'file',
            'range',
            'select',
            'radio',
            'checkbox',
            'textarea'],
        Ae = function (e) {return e = Z[e] || Z.input, ve(L(), e);},
        De = {};

    function Ce (e, t) {
        var n, i, a, r = S();
        W(r, t, 'htmlContainer'), t.html
            ? (fe(t.html, r), ae(r, 'block'))
            : t.text ? (r.textContent = t.text, ae(r, 'block')) : re(
                r), e = e, n = t, i = L(), e = Se.innerParams.get(e), a = !e ||
            n.input !== e.input, Te.forEach((function (e) {
            var t = Z[e], r = ve(i, t);
            (function (e, t) {
                var n = ee(L(), e);
                if (n) for (var i in function (e) {
                    for (var t = 0; t < e.attributes.length; t++) {
                        var n = e.attributes[t].name;
                        -1 === ['type', 'value', 'style'].indexOf(n) &&
                        e.removeAttribute(n);
                    }
                }(n), t) 'range' === e && 'placeholder' === i ||
                n.setAttribute(i, t[i]);
            })(e, n.inputAttributes), r.className = t, a && re(r);
        })), n.input && (a && function (e) {
            if (!De[e.input]) return U(
                'Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(
                    e.input, '"'));
            var t = Ae(e.input), n = De[e.input](t, e);
            ae(n), setTimeout((function () {te(n);}));
        }(n), function (e) {
            var t = Ae(e.input);
            e.customClass && me(t, e.customClass.input);
        }(n)), W(L(), t, 'content');
    }

    function Ee () {return b() && b().getAttribute('data-queue-step');}

    function Oe (e, t) {
        var n = A();
        if (!t.progressSteps || 0 === t.progressSteps.length) return re(n), 0;
        ae(n), n.textContent = '';
        var i = parseInt(
            void 0 === t.currentProgressStep ? Ee() : t.currentProgressStep);
        i >= t.progressSteps.length &&
        q('Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)'), t.progressSteps.forEach(
            (function (e, a) {
                var r;
                r = e, e = document.createElement('li'), me(e,
                    Z['progress-step']), z(e, r), e = e;
                n.appendChild(e), a === i &&
                me(e, Z['active-progress-step']), a !== t.progressSteps.length -
                1 && (e = t, a = document.createElement('li'), me(a,
                    Z['progress-step-line']), e.progressStepsDistance &&
                (a.style.width = e.progressStepsDistance), n.appendChild(a));
            }));
    }

    function Ye (e, t) {
        var n, i, a;
        a = t, n = b(), i = w(), a.toast ? (ie(n, 'width',
            a.width), i.style.width = '100%') : ie(i, 'width', a.width), ie(i,
            'padding', a.padding), a.background &&
        (i.style.background = a.background), re(D()), ze(i, a), function (
            e, t) {
            var n, i, a = b();
            a && (i = a, 'string' == typeof (n = t.backdrop)
                ? i.style.background = n
                : n || me([document.documentElement, document.body],
                Z['no-backdrop']), !t.backdrop && t.allowOutsideClick &&
            q('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'), i = a, (n = t.position) in
            Z ? me(i, Z[n]) : (q(
                'The "position" parameter is not valid, defaulting to "center"'), me(
                i, Z.center)), n = a, !(i = t.grow) || 'string' != typeof i ||
            (i = 'grow-'.concat(i)) in Z && me(n, Z[i]), W(a, t,
                'container'), (t = document.body.getAttribute(
                'data-swal2-queue-step')) && (a.setAttribute('data-queue-step',
                t), document.body.removeAttribute('data-swal2-queue-step')));
        }(0, t), function (e, t) {
            var n, i = I();
            W(i, t, 'header'), Oe(0, t), n = e, i = t, e = Se.innerParams.get(
                n), n = k(), e && i.icon === e.icon
                ? (Ne(n, i), Ie(n, i))
                : i.icon || i.iconHtml ? i.icon && -1 ===
                Object.keys(K).indexOf(i.icon) ? (U(
                    'Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(
                        i.icon, '"')), re(n)) : (ae(n), Ne(n, i), Ie(n, i), me(
                    n, i.showClass.icon)) : re(n), function (e) {
                var t = T();
                if (!e.imageUrl) return re(t);
                ae(t, ''), t.setAttribute('src', e.imageUrl), t.setAttribute(
                    'alt', e.imageAlt), ie(t, 'width', e.imageWidth), ie(t,
                    'height', e.imageHeight), t.className = Z.image, W(t, e,
                    'image');
            }(t), i = t, se(n = M(), i.title || i.titleText,
                'block'), i.title && fe(i.title, n), i.titleText &&
            (n.innerText = i.titleText), W(n, i, 'title'), i = t, z(t = H(),
                i.closeButtonHtml), W(t, i, 'closeButton'), se(t,
                i.showCloseButton), t.setAttribute('aria-label',
                i.closeButtonAriaLabel);
        }(e, t), Ce(e, t), function (e, t) {
            var n = P(), i = O(), a = C(), r = E(), o = Y();
            t.showConfirmButton || t.showDenyButton || t.showCancelButton ||
            re(n), W(n, t, 'actions'), ke(a, 'confirm', t), ke(r, 'deny',
                t), ke(o, 'cancel', t), function (
                e, t, n, i) {
                if (!i.buttonsStyling) return ge([e, t, n], Z.styled);
                me([e, t, n], Z.styled), i.confirmButtonColor &&
                (e.style.backgroundColor = i.confirmButtonColor), i.denyButtonColor &&
                (t.style.backgroundColor = i.denyButtonColor), i.cancelButtonColor &&
                (n.style.backgroundColor = i.cancelButtonColor);
            }(a, r, o, t), t.reverseButtons &&
            (n.insertBefore(o, i), n.insertBefore(r, i), n.insertBefore(a,
                i)), z(i, t.loaderHtml), W(i, t, 'loader');
        }(0, t), a = t, se(e = j(), a.footer), a.footer && fe(a.footer, e), W(e,
            a, 'footer'), 'function' == typeof t.didRender
            ? t.didRender(w())
            : 'function' == typeof t.onRender && t.onRender(w());
    }

    function Pe () {return C() && C().click();}

    De.text = De.email = De.password = De.number = De.tel = De.url = function (
        t, n) {
        return 'string' == typeof n.inputValue || 'number' ==
        typeof n.inputValue
            ? t.value = n.inputValue
            : v(n.inputValue) ||
            q('Unexpected type of inputValue! Expected "string", "number" or "Promise", got "'.concat(
                e(n.inputValue), '"')), Le(t, t, n), Me(t,
            n), t.type = n.input, t;
    }, De.file = function (e, t) {
        return Le(e, e, t), Me(e, t), e;
    }, De.range = function (e, t) {
        var n = e.querySelector('input'), i = e.querySelector('output');
        return n.value = t.inputValue, n.type = t.input, i.value = t.inputValue, Le(
            n, e, t), e;
    }, De.select = function (e, t) {
        var n;
        return e.textContent = '', t.inputPlaceholder &&
        (z(n = document.createElement('option'),
            t.inputPlaceholder), n.value = '', n.disabled = !0, n.selected = !0, e.appendChild(
            n)), Le(e, e, t), e;
    }, De.radio = function (e) {return e.textContent = '', e;}, De.checkbox = function (
        e, t) {
        var n = ee(L(), 'checkbox');
        return n.value = 1, n.id = Z.checkbox, n.checked = Boolean(
            t.inputValue), z(n = e.querySelector('span'),
            t.inputPlaceholder), e;
    }, De.textarea = function (e, t) {
        function n (e) {
            return parseInt(window.getComputedStyle(e).paddingLeft) +
                parseInt(window.getComputedStyle(e).paddingRight);
        }

        var i;
        return e.value = t.inputValue, Me(e, t), Le(e, e,
            t), 'MutationObserver' in window &&
        (i = parseInt(window.getComputedStyle(w()).width), new MutationObserver(
            (function () {
                var t = e.offsetWidth + n(w()) + n(L());
                w().style.width = i < t ? ''.concat(t, 'px') : null;
            })).observe(e, { attributes: !0, attributeFilter: ['style'] })), e;
    };
    var Ie = function (e, t) {
        for (var n in K) t.icon !== n && ge(e, K[n]);
        me(e, K[t.icon]), He(e, t), je(), W(e, t, 'icon');
    }, je = function () {
        for (var e = w(), t = window.getComputedStyle(e).
            getPropertyValue('background-color'), n = e.querySelectorAll(
            '[class^=swal2-success-circular-line], .swal2-success-fix'), i = 0; i <
             n.length; i++) n[i].style.backgroundColor = t;
    }, Ne = function (e, t) {
        e.textContent = '', t.iconHtml ? z(e, Fe(t.iconHtml)) : 'success' ===
        t.icon
            ? z(e,
                '\n      <div class="swal2-success-circular-line-left"></div>\n      <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n      <div class="swal2-success-ring"></div> <div class="swal2-success-fix"></div>\n      <div class="swal2-success-circular-line-right"></div>\n    ')
            : 'error' === t.icon
                ? z(e,
                    '\n      <span class="swal2-x-mark">\n        <span class="swal2-x-mark-line-left"></span>\n        <span class="swal2-x-mark-line-right"></span>\n      </span>\n    ')
                : z(e, Fe({ question: '?', warning: '!', info: 'i' }[t.icon]));
    }, He = function (e, t) {
        if (t.iconColor) {
            e.style.color = t.iconColor, e.style.borderColor = t.iconColor;
            for (var n = 0, i = [
                '.swal2-success-line-tip',
                '.swal2-success-line-long',
                '.swal2-x-mark-line-left',
                '.swal2-x-mark-line-right']; n < i.length; n++) oe(e, i[n],
                'backgroundColor', t.iconColor);
            oe(e, '.swal2-success-ring', 'borderColor', t.iconColor);
        }
    }, Fe = function (e) {
        return '<div class="'.concat(Z['icon-content'], '">').
            concat(e, '</div>');
    }, Re = [], ze = function (e, t) {
        e.className = ''.concat(Z.popup, ' ').
            concat(ye(e) ? t.showClass.popup : ''), t.toast ? (me(
            [document.documentElement, document.body], Z['toast-shown']), me(e,
            Z.toast)) : me(e, Z.modal), W(e, t, 'popup'), 'string' ==
        typeof t.customClass && me(e, t.customClass), t.icon &&
        me(e, Z['icon-'.concat(t.icon)]);
    };

    function Be (e) {
        (t = w()) || nn.fire();
        var t = w(), n = P(), i = O();
        !e && ye(C()) && (e = C()), ae(n), e &&
        (re(e), i.setAttribute('data-button-to-replace',
            e.className)), i.parentNode.insertBefore(i, e), me([t, n],
            Z.loading), ae(i), t.setAttribute('data-loading',
            !0), t.setAttribute('aria-busy', !0), t.focus();
    }

    function We () {
        if (qe.timeout) return function () {
            var e = N(), t = parseInt(window.getComputedStyle(e).width);
            e.style.removeProperty('transition'), e.style.width = '100%';
            var n = parseInt(window.getComputedStyle(e).width);
            n = parseInt(t / n * 100);
            e.style.removeProperty('transition'), e.style.width = ''.concat(n,
                '%');
        }(), qe.timeout.stop();
    }

    function Ve () {
        if (qe.timeout) {
            var e = qe.timeout.start();
            return ue(e), e;
        }
    }

    var qe = {}, Ue = !1, Xe = {};

    function $e (e) {
        for (var t = e.target; t && t !==
        document; t = t.parentNode) for (var n in Xe) {
            var i = t.getAttribute(n);
            if (i) return void Xe[n].fire({ template: i });
        }
    }

    function Ge (e) {return Object.prototype.hasOwnProperty.call(Je, e);}

    function Ze (e) {return et[e];}

    function Ke (e) {
        for (var t in e) Ge(n = t) ||
        q('Unknown parameter "'.concat(n, '"')), e.toast &&
        (n = t, -1 !== tt.indexOf(n) &&
        q('The parameter "'.concat(n, '" is incompatible with toasts'))), Ze(
            t = t) && p(t, Ze(t));
        var n;
    }

    var Je = {
        title: '',
        titleText: '',
        text: '',
        html: '',
        footer: '',
        icon: void 0,
        iconColor: void 0,
        iconHtml: void 0,
        template: void 0,
        toast: !1,
        animation: !0,
        showClass: {
            popup: 'swal2-show',
            backdrop: 'swal2-backdrop-show',
            icon: 'swal2-icon-show',
        },
        hideClass: {
            popup: 'swal2-hide',
            backdrop: 'swal2-backdrop-hide',
            icon: 'swal2-icon-hide',
        },
        customClass: {},
        target: 'body',
        backdrop: !0,
        heightAuto: !0,
        allowOutsideClick: !0,
        allowEscapeKey: !0,
        allowEnterKey: !0,
        stopKeydownPropagation: !0,
        keydownListenerCapture: !1,
        showConfirmButton: !0,
        showDenyButton: !1,
        showCancelButton: !1,
        preConfirm: void 0,
        preDeny: void 0,
        confirmButtonText: 'OK',
        confirmButtonAriaLabel: '',
        confirmButtonColor: void 0,
        denyButtonText: 'No',
        denyButtonAriaLabel: '',
        denyButtonColor: void 0,
        cancelButtonText: 'Cancel',
        cancelButtonAriaLabel: '',
        cancelButtonColor: void 0,
        buttonsStyling: !0,
        reverseButtons: !1,
        focusConfirm: !0,
        focusDeny: !1,
        focusCancel: !1,
        returnFocus: !0,
        showCloseButton: !1,
        closeButtonHtml: '&times;',
        closeButtonAriaLabel: 'Close this dialog',
        loaderHtml: '',
        showLoaderOnConfirm: !1,
        showLoaderOnDeny: !1,
        imageUrl: void 0,
        imageWidth: void 0,
        imageHeight: void 0,
        imageAlt: '',
        timer: void 0,
        timerProgressBar: !1,
        width: void 0,
        padding: void 0,
        background: void 0,
        input: void 0,
        inputPlaceholder: '',
        inputLabel: '',
        inputValue: '',
        inputOptions: {},
        inputAutoTrim: !0,
        inputAttributes: {},
        inputValidator: void 0,
        returnInputValueOnDeny: !1,
        validationMessage: void 0,
        grow: !1,
        position: 'center',
        progressSteps: [],
        currentProgressStep: void 0,
        progressStepsDistance: void 0,
        onBeforeOpen: void 0,
        onOpen: void 0,
        willOpen: void 0,
        didOpen: void 0,
        onRender: void 0,
        didRender: void 0,
        onClose: void 0,
        onAfterClose: void 0,
        willClose: void 0,
        didClose: void 0,
        onDestroy: void 0,
        didDestroy: void 0,
        scrollbarPadding: !0,
    }, Qe = [
        'allowEscapeKey',
        'allowOutsideClick',
        'background',
        'buttonsStyling',
        'cancelButtonAriaLabel',
        'cancelButtonColor',
        'cancelButtonText',
        'closeButtonAriaLabel',
        'closeButtonHtml',
        'confirmButtonAriaLabel',
        'confirmButtonColor',
        'confirmButtonText',
        'currentProgressStep',
        'customClass',
        'denyButtonAriaLabel',
        'denyButtonColor',
        'denyButtonText',
        'didClose',
        'didDestroy',
        'footer',
        'hideClass',
        'html',
        'icon',
        'iconColor',
        'iconHtml',
        'imageAlt',
        'imageHeight',
        'imageUrl',
        'imageWidth',
        'onAfterClose',
        'onClose',
        'onDestroy',
        'progressSteps',
        'returnFocus',
        'reverseButtons',
        'showCancelButton',
        'showCloseButton',
        'showConfirmButton',
        'showDenyButton',
        'text',
        'title',
        'titleText',
        'willClose'], et = {
        animation: 'showClass" and "hideClass',
        onBeforeOpen: 'willOpen',
        onOpen: 'didOpen',
        onRender: 'didRender',
        onClose: 'willClose',
        onAfterClose: 'didClose',
        onDestroy: 'didDestroy',
    }, tt = [
        'allowOutsideClick',
        'allowEnterKey',
        'backdrop',
        'focusConfirm',
        'focusDeny',
        'focusCancel',
        'returnFocus',
        'heightAuto',
        'keydownListenerCapture'], nt = Object.freeze({
        isValidParameter: Ge,
        isUpdatableParameter: function (e) {return -1 !== Qe.indexOf(e);},
        isDeprecatedParameter: Ze,
        argsToParams: function (t) {
            var n = {};
            return 'object' !== e(t[0]) || y(t[0]) ? [
                'title',
                'html',
                'icon'].forEach((function (i, a) {
                'string' == typeof (a = t[a]) || y(a)
                    ? n[i] = a
                    : void 0 !== a && U('Unexpected type of '.concat(i,
                    '! Expected "string" or "Element", got ').concat(e(a)));
            })) : a(n, t[0]), n;
        },
        isVisible: function () {return ye(w());},
        clickConfirm: Pe,
        clickDeny: function () {return E() && E().click();},
        clickCancel: function () {return Y() && Y().click();},
        getContainer: b,
        getPopup: w,
        getTitle: M,
        getContent: L,
        getHtmlContainer: S,
        getImage: T,
        getIcon: k,
        getInputLabel: function () {return _(Z['input-label']);},
        getCloseButton: H,
        getActions: P,
        getConfirmButton: C,
        getDenyButton: E,
        getCancelButton: Y,
        getLoader: O,
        getHeader: I,
        getFooter: j,
        getTimerProgressBar: N,
        getFocusableElements: F,
        getValidationMessage: D,
        isLoading: function () {return w().hasAttribute('data-loading');},
        fire: function () {
            for (var e = arguments.length, t = new Array(e), n = 0; n <
            e; n++) t[n] = arguments[n];
            return l(this, t);
        },
        mixin: function (e) {
            return function (n) {
                !function (e, t) {
                    if ('function' != typeof t && null !==
                        t) throw new TypeError(
                        'Super expression must either be null or a function');
                    e.prototype = Object.create(t && t.prototype, {
                        constructor: {
                            value: e,
                            writable: !0,
                            configurable: !0,
                        },
                    }), t && o(e, t);
                }(f, n);
                var l, d, h = (l = f, d = s(), function () {
                    var e, t = r(l);
                    return c(this,
                        d ? (e = r(this).constructor, Reflect.construct(t,
                            arguments, e)) : t.apply(this, arguments));
                });

                function f () {return t(this, f), h.apply(this, arguments);}

                return i(f, [
                    {
                        key: '_main',
                        value: function (t, n) {
                            return u(r(f.prototype), '_main', this).
                                call(this, t, a({}, e, n));
                        },
                    }]), f;
            }(this);
        },
        queue: function (e) {
            p('Swal.queue()', 'async/await');
            var t = this;

            function n (e, t) {Re = [], e(t);}

            Re = e;
            var i = [];
            return new Promise((function (e) {
                !function a (r, o) {
                    r < Re.length
                        ? (document.body.setAttribute('data-swal2-queue-step',
                        r), t.fire(Re[r]).
                            then((function (t) {
                                void 0 !== t.value
                                    ? (i.push(t.value), a(r + 1, o))
                                    : n(e, { dismiss: t.dismiss });
                            })))
                        : n(e, { value: i });
                }(0);
            }));
        },
        getQueueStep: Ee,
        insertQueueStep: function (e, t) {
            return t && t < Re.length ? Re.splice(t, 0, e) : Re.push(e);
        },
        deleteQueueStep: function (e) {void 0 !== Re[e] && Re.splice(e, 1);},
        showLoading: Be,
        enableLoading: Be,
        getTimerLeft: function () {
            return qe.timeout && qe.timeout.getTimerLeft();
        },
        stopTimer: We,
        resumeTimer: Ve,
        toggleTimer: function () {
            var e = qe.timeout;
            return e && (e.running ? We : Ve)();
        },
        increaseTimer: function (e) {
            if (qe.timeout) return ue(e = qe.timeout.increase(e), !0), e;
        },
        isTimerRunning: function () {
            return qe.timeout && qe.timeout.isRunning();
        },
        bindClickHandler: function () {
            Xe[0 < arguments.length && void 0 !== arguments[0]
                ? arguments[0]
                : 'data-swal-template'] = this, Ue ||
            (document.body.addEventListener('click', $e), Ue = !0);
        },
    });

    function it () {
        var e, t;
        Se.innerParams.get(this) && (re((e = Se.domCache.get(
            this)).loader), (t = e.popup.getElementsByClassName(
            e.loader.getAttribute('data-button-to-replace'))).length ? ae(t[0],
            'inline-block') : ye(C()) || ye(E()) || ye(Y()) ||
            re(e.actions), ge([e.popup, e.actions],
            Z.loading), e.popup.removeAttribute(
            'aria-busy'), e.popup.removeAttribute(
            'data-loading'), e.confirmButton.disabled = !1, e.denyButton.disabled = !1, e.cancelButton.disabled = !1);
    }

    function at () {
        return !!window.MSInputMethodContext && !!document.documentMode;
    }

    function rt () {
        var e = b(), t = w();
        e.style.removeProperty('align-items'), t.offsetTop < 0 &&
        (e.style.alignItems = 'flex-start');
    }

    var ot = function (e) {
            var t = e.target, n = b();
            return !(st(e) || lt(e) || t !== n &&
                (le(n) || 'INPUT' === t.tagName || le(L()) && L().contains(t)));
        }, st = function (e) {
            return e.touches && e.touches.length && 'stylus' ===
                e.touches[0].touchType;
        }, lt = function (e) {return e.touches && 1 < e.touches.length;},
        ct = { swalPromiseResolve: new WeakMap };

    function ut (e, t, n, i) {
        J() ? pt(e, i) : (function (e) {
            return new Promise((function (t) {
                if (!e) return t();
                var n = window.scrollX, i = window.scrollY;
                qe.restoreFocusTimeout = setTimeout((function () {
                    qe.previousActiveElement && qe.previousActiveElement.focus
                        ? (qe.previousActiveElement.focus(), qe.previousActiveElement = null)
                        : document.body && document.body.focus(), t();
                }), 100), void 0 !== n && void 0 !== i && window.scrollTo(n, i);
            }));
        }(n).
            then((function () {
                return pt(e, i);
            })), qe.keydownTarget.removeEventListener('keydown',
            qe.keydownHandler,
            { capture: qe.keydownListenerCapture }), qe.keydownHandlerAdded = !1), t.parentNode &&
        !document.body.getAttribute('data-swal2-queue-step') &&
        t.parentNode.removeChild(t), R() && (null !== Q.previousBodyPadding &&
        (document.body.style.paddingRight = ''.concat(Q.previousBodyPadding,
            'px'), Q.previousBodyPadding = null), B(document.body, Z.iosfix) &&
        (t = parseInt(document.body.style.top, 10), ge(document.body,
            Z.iosfix), document.body.style.top = '', document.body.scrollTop = -1 *
            t), 'undefined' != typeof window && at() &&
        window.removeEventListener('resize', rt), f(document.body.children).
            forEach((function (e) {
                e.hasAttribute('data-previous-aria-hidden')
                    ? (e.setAttribute('aria-hidden', e.getAttribute(
                    'data-previous-aria-hidden')), e.removeAttribute(
                    'data-previous-aria-hidden'))
                    : e.removeAttribute('aria-hidden');
            }))), ge([document.documentElement, document.body],
            [Z.shown, Z['height-auto'], Z['no-backdrop'], Z['toast-shown']]);
    }

    function dt (e) {
        var t, n, i, r = w();
        r && (e = function (e) {
            return void 0 === e ? {
                isConfirmed: !1,
                isDenied: !1,
                isDismissed: !0,
            } : a({ isConfirmed: !1, isDenied: !1, isDismissed: !1 }, e);
        }(e), (t = Se.innerParams.get(this)) && !B(r, t.hideClass.popup) &&
        (n = ct.swalPromiseResolve.get(this), ge(r, t.showClass.popup), me(r,
            t.hideClass.popup), i = b(), ge(i, t.showClass.backdrop), me(i,
            t.hideClass.backdrop), function (e, t, n) {
            var i = b(), a = we && ce(t), r = n.onClose, o = n.onAfterClose,
                s = n.willClose, l = n.didClose;
            ht(t, s, r), a ? ft(e, t, i, n.returnFocus, l || o) : ut(e, i,
                n.returnFocus, l || o);
        }(this, r, t), n(e)));
    }

    var ht = function (e, t, n) {
        null !== t && 'function' == typeof t
            ? t(e)
            : null !== n && 'function' == typeof n && n(e);
    }, ft = function (e, t, n, i, a) {
        qe.swalCloseEventFinishedCallback = ut.bind(null, e, n, i,
            a), t.addEventListener(we, (function (e) {
            e.target === t &&
            (qe.swalCloseEventFinishedCallback(), delete qe.swalCloseEventFinishedCallback);
        }));
    }, pt = function (e, t) {
        setTimeout(
            (function () {'function' == typeof t && t(), e._destroy();}));
    };

    function mt (e, t, n) {
        var i = Se.domCache.get(e);
        t.forEach((function (e) {i[e].disabled = n;}));
    }

    function gt (e, t) {
        if (!e) return !1;
        if ('radio' ===
            e.type) for (var n = e.parentNode.parentNode.querySelectorAll(
            'input'), i = 0; i <
                         n.length; i++) n[i].disabled = t; else e.disabled = t;
    }

    var vt = function () {
        function e (n, i) {
            t(this,
                e), this.callback = n, this.remaining = i, this.running = !1, this.start();
        }

        return i(e, [
            {
                key: 'start',
                value: function () {
                    return this.running ||
                    (this.running = !0, this.started = new Date, this.id = setTimeout(
                        this.callback, this.remaining)), this.remaining;
                },
            },
            {
                key: 'stop',
                value: function () {
                    return this.running && (this.running = !1, clearTimeout(
                        this.id), this.remaining -= new Date -
                        this.started), this.remaining;
                },
            },
            {
                key: 'increase', value: function (e) {
                    var t = this.running;
                    return t && this.stop(), this.remaining += e, t &&
                    this.start(), this.remaining;
                },
            },
            {
                key: 'getTimerLeft',
                value: function () {
                    return this.running &&
                    (this.stop(), this.start()), this.remaining;
                },
            },
            {
                key: 'isRunning',
                value: function () {return this.running;},
            }]), e;
    }(), yt = {
        email: function (e, t) {
            return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(
                e) ? Promise.resolve() : Promise.resolve(
                t || 'Invalid email address');
        },
        url: function (e, t) {
            return /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(
                e) ? Promise.resolve() : Promise.resolve(t || 'Invalid URL');
        },
    };

    function bt (e) {
        var t, n;
        (t = e).inputValidator || Object.keys(yt).
            forEach((function (e) {
                t.input === e && (t.inputValidator = yt[e]);
            })), e.showLoaderOnConfirm && !e.preConfirm &&
        q('showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request'), e.animation = $(
            e.animation), (n = e).target &&
        ('string' != typeof n.target || document.querySelector(n.target)) &&
        ('string' == typeof n.target || n.target.appendChild) ||
        (q('Target parameter is not valid, defaulting to "body"'), n.target = 'body'), 'string' ==
        typeof e.title &&
        (e.title = e.title.split('\n').join('<br />')), function (e) {
            var t, n, i, a, r, o = !!(a = b()) &&
                (a.parentNode.removeChild(a), ge(
                    [document.documentElement, document.body],
                    [Z['no-backdrop'], Z['toast-shown'], Z['has-column']]), !0);
            de()
                ? U('SweetAlert2 requires document to initialize')
                : ((r = document.createElement(
                'div')).className = Z.container, o &&
                me(r, Z['no-transition']), z(r, be), (a = 'string' ==
                typeof (t = e.target) ? document.querySelector(t) : t).appendChild(
                r), o = e, (t = w()).setAttribute('role',
                o.toast ? 'alert' : 'dialog'), t.setAttribute('aria-live',
                o.toast ? 'polite' : 'assertive'), o.toast ||
                t.setAttribute('aria-modal', 'true'), r = a, 'rtl' ===
                window.getComputedStyle(r).direction &&
                me(b(), Z.rtl), e = L(), o = ve(e, Z.input), t = ve(e,
                Z.file), n = e.querySelector(
                '.'.concat(Z.range, ' input')), i = e.querySelector(
                '.'.concat(Z.range, ' output')), a = ve(e,
                Z.select), r = e.querySelector(
                '.'.concat(Z.checkbox, ' input')), e = ve(e,
                Z.textarea), o.oninput = he, t.onchange = he, a.onchange = he, r.onchange = he, e.oninput = he, n.oninput = function (e) {
                    he(e), i.value = n.value;
                }, n.onchange = function (e) {
                    he(e), n.nextSibling.value = n.value;
                });
        }(e);
    }

    function xt (e) {
        var t = w();
        e.target === t &&
        (e = b(), t.removeEventListener(we, xt), e.style.overflowY = 'auto');
    }

    function _t (e, t) {e.closePopup({ isConfirmed: !0, value: t });}

    function wt (e, t, n) {
        var i = F();
        if (i.length) return (t += n) === i.length ? t = 0 : -1 === t &&
            (t = i.length - 1), i[t].focus();
        w().focus();
    }

    var kt = ['swal-title', 'swal-html', 'swal-footer'], Mt = function (e, t) {
            f(e.attributes).
                forEach((function (n) {
                    -1 === t.indexOf(n.name) && q([
                        'Unrecognized attribute "'.concat(n.name, '" on <').
                            concat(e.tagName.toLowerCase(), '>.'),
                        ''.concat(t.length
                            ? 'Allowed attributes are: '.concat(t.join(', '))
                            : 'To set the value, use HTML within the element.')]);
                }));
        }, Lt = function (e, t) {
            'function' == typeof t.didOpen ? setTimeout(
                (function () {return t.didOpen(e);})) : 'function' ==
                typeof t.onOpen && setTimeout((function () {return t.onOpen(e);}));
        }, St = function (e, t) {
            we && ce(t)
                ? (e.style.overflowY = 'hidden', t.addEventListener(we, xt))
                : e.style.overflowY = 'auto';
        }, Tt = function (e, t, n) {
            var i;
            (/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream ||
                'MacIntel' === navigator.platform && 1 <
                navigator.maxTouchPoints) && !B(document.body, Z.iosfix) &&
            (i = document.body.scrollTop, document.body.style.top = ''.concat(
                -1 * i, 'px'), me(document.body, Z.iosfix), function () {
                var e, t = b();
                t.ontouchstart = function (t) {
                    e = ot(t);
                }, t.ontouchmove = function (t) {
                    e && (t.preventDefault(), t.stopPropagation());
                };
            }(), navigator.userAgent.match(
                /(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i) || w().scrollHeight >
            window.innerHeight - 44 &&
            (b().style.paddingBottom = ''.concat(44, 'px'))), 'undefined' !=
            typeof window && at() &&
            (rt(), window.addEventListener('resize', rt)), t && 'hidden' !== n &&
            null === Q.previousBodyPadding && document.body.scrollHeight >
            window.innerHeight && (Q.previousBodyPadding = parseInt(
                window.getComputedStyle(document.body).
                    getPropertyValue(
                        'padding-right')), document.body.style.paddingRight = ''.concat(
                Q.previousBodyPadding + function () {
                    var e = document.createElement('div');
                    e.className = Z['scrollbar-measure'], document.body.appendChild(e);
                    var t = e.getBoundingClientRect().width - e.clientWidth;
                    return document.body.removeChild(e), t;
                }(), 'px')), setTimeout((function () {e.scrollTop = 0;}));
        }, At = function (e, t, n) {
            me(e, n.showClass.backdrop), t.style.setProperty('opacity', '0',
                'important'), ae(t), setTimeout((function () {
                me(t, n.showClass.popup), t.style.removeProperty('opacity');
            }), 10), me([document.documentElement, document.body],
                Z.shown), n.heightAuto && n.backdrop && !n.toast &&
            me([document.documentElement, document.body], Z['height-auto']);
        }, Dt = function (t, n) {
            function i (e) {return Ct[n.input](a, Et(e), n);}

            var a = L();
            m(n.inputOptions) || v(n.inputOptions) ? (Be(C()), g(n.inputOptions).
                then((function (e) {t.hideLoading(), i(e);}))) : 'object' ===
            e(n.inputOptions) ? i(n.inputOptions) : U(
                'Unexpected type of inputOptions! Expected object, Map or Promise, got '.concat(
                    e(n.inputOptions)));
        }, Ct = {
            select: function (e, t, n) {
                function i (e, t, i) {
                    var a = document.createElement('option');
                    a.value = i, z(a, t), a.selected = Ot(i,
                        n.inputValue), e.appendChild(a);
                }

                var a = ve(e, Z.select);
                t.forEach((function (e) {
                    var t, n = e[0];
                    e = e[1];
                    Array.isArray(e)
                        ? ((t = document.createElement(
                        'optgroup')).label = n, t.disabled = !1, a.appendChild(
                        t), e.forEach((function (e) {return i(t, e[1], e[0]);})))
                        : i(a, e, n);
                })), a.focus();
            }, radio: function (e, t, n) {
                var i = ve(e, Z.radio);
                t.forEach((function (e) {
                    var t = e[0], a = e[1], r = document.createElement('input');
                    e = document.createElement('label');
                    r.type = 'radio', r.name = Z.radio, r.value = t, Ot(t,
                        n.inputValue) && (r.checked = !0), z(
                        t = document.createElement('span'),
                        a), t.className = Z.label, e.appendChild(r), e.appendChild(
                        t), i.appendChild(e);
                })), (t = i.querySelectorAll('input')).length && t[0].focus();
            },
        }, Et = function t (n) {
            var i = [];
            return 'undefined' != typeof Map && n instanceof Map
                ? n.forEach((function (n, a) {
                    'object' === e(n) && (n = t(n)), i.push([a, n]);
                }))
                : Object.keys(n).forEach((function (a) {
                    var r = n[a];
                    'object' === e(r) && (r = t(r)), i.push([a, r]);
                })), i;
        }, Ot = function (e, t) {return t && t.toString() === e.toString();},
        Yt = function (e, t, n) {
            var i = function (e, t) {
                var n = e.getInput();
                if (!n) return null;
                switch (t.input) {
                    case'checkbox':
                        return function (e) {return e.checked ? 1 : 0;}(n);
                    case'radio':
                        return function (e) {
                            return e.checked
                                ? e.value
                                : null;
                        }(
                            n);
                    case'file':
                        return function (e) {
                            return e.files.length
                                ? null !== e.getAttribute('multiple')
                                    ? e.files
                                    : e.files[0]
                                : null;
                        }(n);
                    default:
                        return t.inputAutoTrim ? n.value.trim() : n.value;
                }
            }(e, t);
            t.inputValidator ? Pt(e, t, i) : e.getInput().checkValidity()
                ? ('deny' === n ? It : jt)(e, t, i)
                : (e.enableButtons(), e.showValidationMessage(
                    t.validationMessage));
        }, Pt = function (e, t, n) {
            e.disableInput(), Promise.resolve().
                then((function () {
                    return g(t.inputValidator(n, t.validationMessage));
                })).
                then((function (i) {
                    e.enableButtons(), e.enableInput(), i
                        ? e.showValidationMessage(i)
                        : jt(e, t, n);
                }));
        }, It = function (e, t, n) {
            t.showLoaderOnDeny && Be(E()), t.preDeny
                ? Promise.resolve().
                    then((function () {
                        return g(t.preDeny(n, t.validationMessage));
                    })).
                    then((function (t) {
                        !1 === t ? e.hideLoading() : e.closePopup(
                            { isDenied: !0, value: void 0 === t ? n : t });
                    }))
                : e.closePopup({ isDenied: !0, value: n });
        }, jt = function (e, t, n) {
            t.showLoaderOnConfirm && Be(), t.preConfirm
                ? (e.resetValidationMessage(), Promise.resolve().
                    then((function () {
                        return g(t.preConfirm(n, t.validationMessage));
                    })).
                    then((function (t) {
                        ye(D()) || !1 === t ? e.hideLoading() : _t(e,
                            void 0 === t ? n : t);
                    })))
                : _t(e, n);
        }, Nt = ['ArrowRight', 'ArrowDown', 'Right', 'Down'],
        Ht = ['ArrowLeft', 'ArrowUp', 'Left', 'Up'], Ft = ['Escape', 'Esc'],
        Rt = function (e, t, n) {
            t.isComposing || t.target && e.getInput() && t.target.outerHTML ===
            e.getInput().outerHTML && -1 ===
            ['textarea', 'file'].indexOf(n.input) && (Pe(), t.preventDefault());
        }, zt = function (e, t) {
            for (var n = e.target, i = F(), a = -1, r = 0; r <
            i.length; r++) if (n === i[r]) {
                a = r;
                break;
            }
            e.shiftKey ? wt(0, a, -1) : wt(0, a,
                1), e.stopPropagation(), e.preventDefault();
        }, Bt = function (e) {
            -1 !== [C(), E(), Y()].indexOf(document.activeElement) &&
            (e = -1 !== Nt.indexOf(e)
                ? 'nextElementSibling'
                : 'previousElementSibling', (e = document.activeElement[e]) &&
            e.focus());
        }, Wt = function (e, t, n) {
            $(t.allowEscapeKey) && (e.preventDefault(), n(G.esc));
        }, Vt = !1;

    function qt (t, n) {
        var i = function (t) {
            return (t = 'string' == typeof t.template ? document.querySelector(
                t.template) : t.template) ? (function (e) {
                var t = kt.concat([
                    'swal-param',
                    'swal-button',
                    'swal-image',
                    'swal-icon',
                    'swal-input',
                    'swal-input-option']);
                f(e.querySelectorAll('*')).
                    forEach((function (n) {
                        n.parentNode === e &&
                        (n = n.tagName.toLowerCase(), -1 === t.indexOf(n) &&
                        q('Unrecognized element <'.concat(n, '>')));
                    }));
            }(t = t.content || t), a(function (t) {
                var n = {};
                return f(t.querySelectorAll('swal-param')).
                    forEach((function (t) {
                        Mt(t, ['name', 'value']);
                        var i = t.getAttribute('name');
                        t = t.getAttribute('value'), 'boolean' ==
                        typeof Je[i] && 'false' === t && (t = !1), 'object' ===
                        e(Je[i]) && (t = JSON.parse(t)), n[i] = t;
                    })), n;
            }(t), function (e) {
                var t = {};
                return f(e.querySelectorAll('swal-button')).
                    forEach((function (e) {
                        Mt(e, ['type', 'color', 'aria-label']);
                        var n = e.getAttribute('type');
                        t[''.concat(n,
                            'ButtonText')] = e.innerHTML, t['show'.concat(d(n),
                            'Button')] = !0, e.hasAttribute('color') &&
                        (t[''.concat(n, 'ButtonColor')] = e.getAttribute(
                            'color')), e.hasAttribute('aria-label') &&
                        (t[''.concat(n, 'ButtonAriaLabel')] = e.getAttribute(
                            'aria-label'));
                    })), t;
            }(t), function (e) {
                var t = {};
                return (e = e.querySelector('swal-image')) &&
                (Mt(e, ['src', 'width', 'height', 'alt']), e.hasAttribute(
                    'src') &&
                (t.imageUrl = e.getAttribute('src')), e.hasAttribute('width') &&
                (t.imageWidth = e.getAttribute('width')), e.hasAttribute(
                    'height') &&
                (t.imageHeight = e.getAttribute('height')), e.hasAttribute(
                    'alt') && (t.imageAlt = e.getAttribute('alt'))), t;
            }(t), function (e) {
                var t = {};
                return (e = e.querySelector('swal-icon')) &&
                (Mt(e, ['type', 'color']), e.hasAttribute('type') &&
                (t.icon = e.getAttribute('type')), e.hasAttribute('color') &&
                (t.iconColor = e.getAttribute(
                    'color')), t.iconHtml = e.innerHTML), t;
            }(t), function (e) {
                var t = {}, n = e.querySelector('swal-input');
                return n && (Mt(n, [
                    'type',
                    'label',
                    'placeholder',
                    'value']), t.input = n.getAttribute('type') ||
                    'text', n.hasAttribute('label') &&
                (t.inputLabel = n.getAttribute('label')), n.hasAttribute(
                    'placeholder') && (t.inputPlaceholder = n.getAttribute(
                    'placeholder')), n.hasAttribute('value') &&
                (t.inputValue = n.getAttribute(
                    'value'))), (e = e.querySelectorAll(
                    'swal-input-option')).length && (t.inputOptions = {}, f(e).
                    forEach((function (e) {
                        Mt(e, ['value']);
                        var n = e.getAttribute('value');
                        e = e.innerHTML, t.inputOptions[n] = e;
                    }))), t;
            }(t), function (e, t) {
                var n, i = {};
                for (n in t) {
                    var a = t[n], r = e.querySelector(a);
                    r &&
                    (Mt(r, []), i[a.replace(/^swal-/,
                        '')] = r.innerHTML.trim());
                }
                return i;
            }(t, kt))) : {};
        }(t);
        return (i = a({}, Je, n, i, t)).showClass = a({}, Je.showClass,
            i.showClass), i.hideClass = a({}, Je.hideClass, i.hideClass), !1 ===
        t.animation && (i.showClass = {
            popup: 'swal2-noanimation',
            backdrop: 'swal2-noanimation',
        }, i.hideClass = {}), i;
    }

    function Ut (e, t, n) {
        return new Promise((function (i) {
            function a (t) {e.closePopup({ isDismissed: !0, dismiss: t });}

            var r, o, s, l;
            ct.swalPromiseResolve.set(e,
                i), t.confirmButton.onclick = function () {
                return i = n, (t = e).disableButtons(), void (i.input
                    ? Yt(t, i, 'confirm')
                    : jt(t, i, !0));
                var t, i;
            }, t.denyButton.onclick = function () {
                return i = n, (t = e).disableButtons(), void (i.returnInputValueOnDeny
                    ? Yt(t, i, 'deny')
                    : It(t, i, !1));
                var t, i;
            }, t.cancelButton.onclick = function () {
                return t = a, e.disableButtons(), void t(G.cancel);
                var t;
            }, t.closeButton.onclick = function () {
                return a(G.close);
            }, r = e, l = t, i = a, Se.innerParams.get(r).toast
                ? function (
                    e, t, n) {
                    t.popup.onclick = function () {
                        var t = Se.innerParams.get(e);
                        t.showConfirmButton || t.showDenyButton ||
                        t.showCancelButton || t.showCloseButton || t.timer ||
                        t.input || n(G.close);
                    };
                }(r, l, i)
                : (function (e) {
                    e.popup.onmousedown = function () {
                        e.container.onmouseup = function (t) {
                            e.container.onmouseup = void 0, t.target ===
                            e.container && (Vt = !0);
                        };
                    };
                }(l), function (e) {
                    e.container.onmousedown = function () {
                        e.popup.onmouseup = function (t) {
                            e.popup.onmouseup = void 0, t.target !== e.popup &&
                            !e.popup.contains(t.target) || (Vt = !0);
                        };
                    };
                }(l), function (
                    e, t, n) {
                    t.container.onclick = function (i) {
                        var a = Se.innerParams.get(e);
                        Vt ? Vt = !1 : i.target === t.container &&
                            $(a.allowOutsideClick) && n(G.backdrop);
                    };
                }(r, l, i)), o = e, l = n, s = a, (i = qe).keydownTarget &&
            i.keydownHandlerAdded &&
            (i.keydownTarget.removeEventListener('keydown', i.keydownHandler,
                { capture: i.keydownListenerCapture }), i.keydownHandlerAdded = !1), l.toast ||
            (i.keydownHandler = function (e) {
                return function (e, t, n) {
                    var i = Se.innerParams.get(e);
                    i && (i.stopKeydownPropagation &&
                    t.stopPropagation(), 'Enter' === t.key
                        ? Rt(e, t, i)
                        : 'Tab' === t.key ? zt(t, i) : -1 !==
                        [].concat(Nt, Ht).indexOf(t.key) ? Bt(t.key) : -1 !==
                            Ft.indexOf(t.key) && Wt(t, i, n));
                }(o, e, s);
            }, i.keydownTarget = l.keydownListenerCapture
                ? window
                : w(), i.keydownListenerCapture = l.keydownListenerCapture, i.keydownTarget.addEventListener(
                'keydown', i.keydownHandler,
                { capture: i.keydownListenerCapture }), i.keydownHandlerAdded = !0), l = e, 'select' ===
            (i = n).input || 'radio' === i.input ? Dt(l, i) : -1 !==
                ['text', 'email', 'number', 'tel', 'textarea'].indexOf(
                    i.input) && (m(i.inputValue) || v(i.inputValue)) &&
                function (e, t) {
                    var n = e.getInput();
                    re(n), g(t.inputValue).
                        then((function (i) {
                            n.value = 'number' === t.input
                                ? parseFloat(i) || 0
                                : ''.concat(i), ae(
                                n), n.focus(), e.hideLoading();
                        })).
                        catch((function (t) {
                            U('Error in inputValue promise: '.concat(
                                t)), n.value = '', ae(
                                n), n.focus(), e.hideLoading();
                        }));
                }(l, i), function (e) {
                var t = b(), n = w();
                'function' == typeof e.willOpen ? e.willOpen(n) : 'function' ==
                    typeof e.onBeforeOpen && e.onBeforeOpen(n);
                var i = window.getComputedStyle(document.body).overflowY;
                At(t, n, e), setTimeout((function () {St(t, n);}), 10), R() &&
                (Tt(t, e.scrollbarPadding, i), f(document.body.children).
                    forEach((function (e) {
                        e === b() || function (e, t) {
                            if ('function' ==
                                typeof e.contains) return e.contains(t);
                        }(e, b()) || (e.hasAttribute('aria-hidden') &&
                        e.setAttribute('data-previous-aria-hidden',
                            e.getAttribute('aria-hidden')), e.setAttribute(
                            'aria-hidden', 'true'));
                    }))), J() || qe.previousActiveElement ||
                (qe.previousActiveElement = document.activeElement), Lt(n,
                    e), ge(t, Z['no-transition']);
            }(n), $t(qe, n, a), Gt(t, n), setTimeout(
                (function () {t.container.scrollTop = 0;}));
        }));
    }

    function Xt (e) {
        var t = {
            popup: w(),
            container: b(),
            content: L(),
            actions: P(),
            confirmButton: C(),
            denyButton: E(),
            cancelButton: Y(),
            loader: O(),
            closeButton: H(),
            validationMessage: D(),
            progressSteps: A(),
        };
        return Se.domCache.set(e, t), t;
    }

    var $t = function (e, t, n) {
        var i = N();
        re(i), t.timer &&
        (e.timeout = new vt((function () {n('timer'), delete e.timeout;}),
            t.timer), t.timerProgressBar && (ae(i), setTimeout(
            (function () {e.timeout && e.timeout.running && ue(t.timer);}))));
    }, Gt = function (e, t) {
        if (!t.toast) return $(t.allowEnterKey)
            ? void (Zt(e, t) || wt(0, -1, 1))
            : Kt();
    }, Zt = function (e, t) {
        return t.focusDeny && ye(e.denyButton)
            ? (e.denyButton.focus(), !0)
            : t.focusCancel && ye(e.cancelButton)
                ? (e.cancelButton.focus(), !0)
                : !(!t.focusConfirm || !ye(e.confirmButton) ||
                    (e.confirmButton.focus(), 0));
    }, Kt = function () {
        document.activeElement && 'function' ==
        typeof document.activeElement.blur && document.activeElement.blur();
    };
    var Jt, Qt = function (e) {for (var t in e) e[t] = new WeakMap;},
        en = Object.freeze({
            hideLoading: it,
            disableLoading: it,
            getInput: function (e) {
                var t = Se.innerParams.get(e || this);
                return (e = Se.domCache.get(e || this))
                    ? ee(e.content, t.input)
                    : null;
            },
            close: dt,
            closePopup: dt,
            closeModal: dt,
            closeToast: dt,
            enableButtons: function () {
                mt(this, ['confirmButton', 'denyButton', 'cancelButton'], !1);
            },
            disableButtons: function () {
                mt(this, ['confirmButton', 'denyButton', 'cancelButton'], !0);
            },
            enableInput: function () {return gt(this.getInput(), !1);},
            disableInput: function () {return gt(this.getInput(), !0);},
            showValidationMessage: function (e) {
                var t = Se.domCache.get(this), n = Se.innerParams.get(this);
                z(t.validationMessage,
                    e), t.validationMessage.className = Z['validation-message'], n.customClass &&
                n.customClass.validationMessage &&
                me(t.validationMessage, n.customClass.validationMessage), ae(
                    t.validationMessage), (t = this.getInput()) &&
                (t.setAttribute('aria-invalid', !0), t.setAttribute(
                    'aria-describedBy', Z['validation-message']), te(t), me(t,
                    Z.inputerror));
            },
            resetValidationMessage: function () {
                var e = Se.domCache.get(this);
                e.validationMessage &&
                re(e.validationMessage), (e = this.getInput()) &&
                (e.removeAttribute('aria-invalid'), e.removeAttribute(
                    'aria-describedBy'), ge(e, Z.inputerror));
            },
            getProgressSteps: function () {
                return Se.domCache.get(this).progressSteps;
            },
            _main: function (e) {
                var t = 1 < arguments.length && void 0 !== arguments[1]
                    ? arguments[1]
                    : {};
                return Ke(a({}, t, e)), qe.currentInstance &&
                qe.currentInstance._destroy(), qe.currentInstance = this, bt(
                    e = qt(e, t)), Object.freeze(e), qe.timeout &&
                (qe.timeout.stop(), delete qe.timeout), clearTimeout(
                    qe.restoreFocusTimeout), t = Xt(this), Ye(this,
                    e), Se.innerParams.set(this, e), Ut(this, t, e);
            },
            update: function (e) {
                var t = w(), n = Se.innerParams.get(this);
                if (!t || B(t, n.hideClass.popup)) return q(
                    'You\'re trying to update the closed or closing popup, that won\'t work. Use the update() method in preConfirm parameter or show a new popup.');
                var i = {};
                Object.keys(e).
                    forEach((function (t) {
                        nn.isUpdatableParameter(t)
                            ? i[t] = e[t]
                            : q('Invalid parameter to update: "'.concat(t,
                            '". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\n\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md'));
                    })), Ye(this, n = a({}, n, i)), Se.innerParams.set(this,
                    n), Object.defineProperties(this, {
                    params: {
                        value: a({}, this.params, e),
                        writable: !1,
                        enumerable: !0,
                    },
                });
            },
            _destroy: function () {
                var e = Se.domCache.get(this), t = Se.innerParams.get(this);
                t && (e.popup && qe.swalCloseEventFinishedCallback &&
                (qe.swalCloseEventFinishedCallback(), delete qe.swalCloseEventFinishedCallback), qe.deferDisposalTimer &&
                (clearTimeout(
                    qe.deferDisposalTimer), delete qe.deferDisposalTimer), function (e) {
                    'function' == typeof e.didDestroy
                        ? e.didDestroy()
                        : 'function' == typeof e.onDestroy && e.onDestroy();
                }(t), function (e) {
                    delete e.params, delete qe.keydownHandler, delete qe.keydownTarget, Qt(
                        Se), Qt(ct);
                }(this));
            },
        }), tn = function () {
            function e () {
                if (t(this, e), 'undefined' != typeof window) {
                    'undefined' == typeof Promise &&
                    U('This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)'), Jt = this;
                    for (var n = arguments.length, i = new Array(n), a = 0; a <
                    n; a++) i[a] = arguments[a];
                    var r = Object.freeze(this.constructor.argsToParams(i));
                    Object.defineProperties(this, {
                        params: {
                            value: r,
                            writable: !1,
                            enumerable: !0,
                            configurable: !0,
                        },
                    }), r = this._main(this.params), Se.promise.set(this, r);
                }
            }

            return i(e, [
                {
                    key: 'then',
                    value: function (e) {return Se.promise.get(this).then(e);},
                },
                {
                    key: 'finally',
                    value: function (e) {return Se.promise.get(this).finally(e);},
                }]), e;
        }();
    a(tn.prototype, en), a(tn, nt), Object.keys(en).
        forEach((function (e) {
            tn[e] = function () {
                if (Jt) return Jt[e].apply(Jt, arguments);
            };
        })), tn.DismissReason = G, tn.version = '10.16.9';
    var nn = tn;
    return nn.default = nn;
})), void 0 !== this && this.Sweetalert2 &&
(this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2), swal.mixin(
    {
        width: 400,
        heightAuto: !1,
        padding: '2.5rem',
        buttonsStyling: !1,
        confirmButtonClass: 'btn btn-success',
        confirmButtonColor: null,
        cancelButtonClass: 'btn btn-secondary',
        cancelButtonColor: null,
    });

Spamworldpro Mini