Greasy Fork is available in English.

吾爱论坛自动签到、目录滚动、回帖折叠

吾爱论坛自动签到、目录滚动、回帖折叠并灰度处理水贴

// ==UserScript==
// @name         吾爱论坛自动签到、目录滚动、回帖折叠
// @namespace    https://www.52pojie.cn/thread-712090-1-1.html
// @version      0.1
// @description  吾爱论坛自动签到、目录滚动、回帖折叠并灰度处理水贴
// @author       Ganlv
// @match        https://www.52pojie.cn/*
// @icon         https://www.52pojie.cn/favicon.ico
// @grant        none
// ==/UserScript==

// 自动签到
(function() {
    'use strict';

    var img = document.querySelector('img[src="https://www.52pojie.cn/static/image/common/qds.png"]');
    if (img) {
        var href = img.parentElement.href;

        var div = document.createElement('div');
        div.style.display = 'none';
        div.style.position = 'fixed';
        div.style.top = '112px';
        div.style.right = '12px';
        div.style.width = '626px';
        div.style.height = '98px';
        div.style.overflow = 'hidden';
        div.style.zIndex = '9999';
        div.style.boxShadow = '0 3px 6px #999';
        div.onscroll = function () {
            div.scrollLeft = 0;
            div.scrollTop = 0;
        };

        let iframe = document.createElement('iframe');
        iframe.style.border = 'none';
        iframe.width = '1280';
        iframe.height = '5000';
        iframe.onload = function () {
            iframe.style.position = 'absolute';
            iframe.style.left = '-328px';
            iframe.style.top = '-264px';
            img.src = 'https://www.52pojie.cn/static/image/common/wbs.png';
            div.style.display = '';
            setTimeout(function () {
                div.remove();
            }, 1000);
        };
        div.appendChild(iframe);

        var wrapper = document.createElement('div');
        wrapper.style.position = 'absolute';
        wrapper.style.left = '0';
        wrapper.style.top = '0';
        wrapper.style.width = '1280px';
        wrapper.style.height = '5000px';
        wrapper.style.zIndex = '10000';
        wrapper.onclick = function () {
            div.remove();
        };
        div.appendChild(wrapper);

        document.body.appendChild(div);

        iframe.src = href;
    }
})();

// 文章左侧目录移到右边
(function () {
    'use stricit';

    function getOffset( el ) {
        var _x = 0;
        var _y = 0;
        while( el && !isNaN( el.offsetLeft ) && !isNaN( el.offsetTop ) ) {
            _x += el.offsetLeft - el.scrollLeft;
            _y += el.offsetTop - el.scrollTop;
            el = el.offsetParent;
        }
        return { top: _y, left: _x };
    }

    // toc 对象
    function Toc(tocElement) {
        // toc 元素
        this.tocElement = tocElement;
        var matches = this.tocElement.id.match(/^markdown_toc_(\d+)$/);
        if (!matches) {
            return null;
        }
        // post 元素
        this.postId = parseInt(matches[1]);
        this.postElement = document.getElementById('postmessage_' + this.postId);
        this.tocElement.className += ' toc-side-right';
        this.tocElement.style.maxHeight = (window.innerHeight - 112) + 'px'
        // 创建 container
        this.container = document.createElement('div');
        this.container.className = 'toc-container';
        this.container.append(this.tocElement);
        this.container.style.right = '0';
        // 移动到 post 元素中
        this.postElement.prepend(this.container);
        this.scroll();
    }

    // 当 window.onscroll 触发时调用这个函数可以自动调整 toc 的位置
    Toc.prototype.scroll = function () {
        var offsetTop = getOffset(this.postElement).top;
        if (document.documentElement.scrollTop < offsetTop) {
            // 还未看过这一楼层
            this.container.style.position = 'absolute';
            this.container.style.top = offsetTop + 'px';
        } else {
            var scrollTopMax = offsetTop + this.postElement.offsetHeight - this.container.offsetHeight;
            if (document.documentElement.scrollTop > scrollTopMax) {
                // 已经看完这一楼层
                this.container.style.position = 'absolute';
                this.container.style.top = scrollTopMax + 'px';
            } else {
                // 正在看这一楼层
                this.container.style.position = 'fixed';
                this.container.style.top = '0';
            }
        }
    }

    // 添加样式
    var style = document.createElement('style');
    style.textContent = '.toc-container .toc-side.toc-side-right { width: 240px; margin: 0 -240px 0 0; padding: 20px; background-color: #f9f9f9; border: 1px solid #999; overflow-y: scroll; }'
        + '.toc-container { padding-top: 52px; padding-right: 56px; overflow: hidden; }'
        + '.toc-container:hover .toc-side.toc-side-right { margin-right: initial; }';
    document.querySelector('head').appendChild(style);

    // 获取全部 toc 元素
    var tocSideElements = document.querySelectorAll('.toc-side');
    var tocs = [];
    tocSideElements.forEach(function (el) {
        // 没有内容则不修改
        if (!el.textContent.match(/^\S*$/)) {
            tocs.push(new Toc(el));
        }
    });

    // 添加 scroll 事件
    window.addEventListener('scroll', function (e) {
        for (var i = 0; i < tocs.length; ++i) {
            tocs[i].scroll();
        }
    });
})();

// 目录滚动&回帖折叠
!function(t) {
                    var n = {};
                    function r(e) {
                        if (n[e])
                            return n[e].exports;
                        var i = n[e] = {
                            i: e,
                            l: !1,
                            exports: {}
                        };
                        return t[e].call(i.exports, i, i.exports, r),
                        i.l = !0,
                        i.exports
                    }
                    r.m = t,
                    r.c = n,
                    r.d = function(t, n, e) {
                        r.o(t, n) || Object.defineProperty(t, n, {
                            configurable: !1,
                            enumerable: !0,
                            get: e
                        })
                    }
                    ,
                    r.r = function(t) {
                        Object.defineProperty(t, "__esModule", {
                            value: !0
                        })
                    }
                    ,
                    r.n = function(t) {
                        var n = t && t.__esModule ? function() {
                            return t.default
                        }
                        : function() {
                            return t
                        }
                        ;
                        return r.d(n, "a", n),
                        n
                    }
                    ,
                    r.o = function(t, n) {
                        return Object.prototype.hasOwnProperty.call(t, n)
                    }
                    ,
                    r.p = "",
                    r(r.s = 9)
                }([function(t, n, r) {
                    (function(t, e) {
                        var i;
                        (function() {
                            var u, o = 200, f = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", a = "Expected a function", c = "__lodash_hash_undefined__", s = 500, l = "__lodash_placeholder__", h = 1, p = 2, v = 4, d = 1, g = 2, _ = 1, y = 2, m = 4, b = 8, w = 16, x = 32, E = 64, j = 128, A = 256, $ = 512, O = 30, S = "...", C = 800, k = 16, I = 1, T = 2, z = 1 / 0, L = 9007199254740991, N = 1.7976931348623157e308, R = NaN, P = 4294967295, B = P - 1, D = P >>> 1, W = [["ary", j], ["bind", _], ["bindKey", y], ["curry", b], ["curryRight", w], ["flip", $], ["partial", x], ["partialRight", E], ["rearg", A]], M = "[object Arguments]", U = "[object Array]", q = "[object AsyncFunction]", F = "[object Boolean]", Z = "[object Date]", H = "[object DOMException]", V = "[object Error]", Y = "[object Function]", J = "[object GeneratorFunction]", K = "[object Map]", G = "[object Number]", X = "[object Null]", Q = "[object Object]", tt = "[object Proxy]", nt = "[object RegExp]", rt = "[object Set]", et = "[object String]", it = "[object Symbol]", ut = "[object Undefined]", ot = "[object WeakMap]", ft = "[object WeakSet]", at = "[object ArrayBuffer]", ct = "[object DataView]", st = "[object Float32Array]", lt = "[object Float64Array]", ht = "[object Int8Array]", pt = "[object Int16Array]", vt = "[object Int32Array]", dt = "[object Uint8Array]", gt = "[object Uint8ClampedArray]", _t = "[object Uint16Array]", yt = "[object Uint32Array]", mt = /\b__p \+= '';/g, bt = /\b(__p \+=) '' \+/g, wt = /(__e\(.*?\)|\b__t\)) \+\n'';/g, xt = /&(?:amp|lt|gt|quot|#39);/g, Et = /[&<>"']/g, jt = RegExp(xt.source), At = RegExp(Et.source), $t = /<%-([\s\S]+?)%>/g, Ot = /<%([\s\S]+?)%>/g, St = /<%=([\s\S]+?)%>/g, Ct = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, kt = /^\w*$/, It = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, Tt = /[\\^$.*+?()[\]{}|]/g, zt = RegExp(Tt.source), Lt = /^\s+|\s+$/g, Nt = /^\s+/, Rt = /\s+$/, Pt = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, Bt = /\{\n\/\* \[wrapped with (.+)\] \*/, Dt = /,? & /, Wt = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g, Mt = /\\(\\)?/g, Ut = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g, qt = /\w*$/, Ft = /^[-+]0x[0-9a-f]+$/i, Zt = /^0b[01]+$/i, Ht = /^\[object .+?Constructor\]$/, Vt = /^0o[0-7]+$/i, Yt = /^(?:0|[1-9]\d*)$/, Jt = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g, Kt = /($^)/, Gt = /['\n\r\u2028\u2029\\]/g, Xt = "\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff", Qt = "\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", tn = "[\\ud800-\\udfff]", nn = "[" + Qt + "]", rn = "[" + Xt + "]", en = "\\d+", un = "[\\u2700-\\u27bf]", on = "[a-z\\xdf-\\xf6\\xf8-\\xff]", fn = "[^\\ud800-\\udfff" + Qt + en + "\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]", an = "\\ud83c[\\udffb-\\udfff]", cn = "[^\\ud800-\\udfff]", sn = "(?:\\ud83c[\\udde6-\\uddff]){2}", ln = "[\\ud800-\\udbff][\\udc00-\\udfff]", hn = "[A-Z\\xc0-\\xd6\\xd8-\\xde]", pn = "(?:" + on + "|" + fn + ")", vn = "(?:" + hn + "|" + fn + ")", dn = "(?:" + rn + "|" + an + ")" + "?", gn = "[\\ufe0e\\ufe0f]?" + dn + ("(?:\\u200d(?:" + [cn, sn, ln].join("|") + ")[\\ufe0e\\ufe0f]?" + dn + ")*"), _n = "(?:" + [un, sn, ln].join("|") + ")" + gn, yn = "(?:" + [cn + rn + "?", rn, sn, ln, tn].join("|") + ")", mn = RegExp("['’]", "g"), bn = RegExp(rn, "g"), wn = RegExp(an + "(?=" + an + ")|" + yn + gn, "g"), xn = RegExp([hn + "?" + on + "+(?:['’](?:d|ll|m|re|s|t|ve))?(?=" + [nn, hn, "$"].join("|") + ")", vn + "+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=" + [nn, hn + pn, "$"].join("|") + ")", hn + "?" + pn + "+(?:['’](?:d|ll|m|re|s|t|ve))?", hn + "+(?:['’](?:D|LL|M|RE|S|T|VE))?", "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", en, _n].join("|"), "g"), En = RegExp("[\\u200d\\ud800-\\udfff" + Xt + "\\ufe0e\\ufe0f]"), jn = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/, An = ["Array", "Buffer", "DataView", "Date", "Error", "Float32Array", "Float64Array", "Function", "Int8Array", "Int16Array", "Int32Array", "Map", "Math", "Object", "Promise", "RegExp", "Set", "String", "Symbol", "TypeError", "Uint8Array", "Uint8ClampedArray", "Uint16Array", "Uint32Array", "WeakMap", "_", "clearTimeout", "isFinite", "parseInt", "setTimeout"], $n = -1, On = {};
                            On[st] = On[lt] = On[ht] = On[pt] = On[vt] = On[dt] = On[gt] = On[_t] = On[yt] = !0,
                            On[M] = On[U] = On[at] = On[F] = On[ct] = On[Z] = On[V] = On[Y] = On[K] = On[G] = On[Q] = On[nt] = On[rt] = On[et] = On[ot] = !1;
                            var Sn = {};
                            Sn[M] = Sn[U] = Sn[at] = Sn[ct] = Sn[F] = Sn[Z] = Sn[st] = Sn[lt] = Sn[ht] = Sn[pt] = Sn[vt] = Sn[K] = Sn[G] = Sn[Q] = Sn[nt] = Sn[rt] = Sn[et] = Sn[it] = Sn[dt] = Sn[gt] = Sn[_t] = Sn[yt] = !0,
                            Sn[V] = Sn[Y] = Sn[ot] = !1;
                            var Cn = {
                                "\\": "\\",
                                "'": "'",
                                "\n": "n",
                                "\r": "r",
                                "\u2028": "u2028",
                                "\u2029": "u2029"
                            }
                              , kn = parseFloat
                              , In = parseInt
                              , Tn = "object" == typeof t && t && t.Object === Object && t
                              , zn = "object" == typeof self && self && self.Object === Object && self
                              , Ln = Tn || zn || Function("return this")()
                              , Nn = "object" == typeof n && n && !n.nodeType && n
                              , Rn = Nn && "object" == typeof e && e && !e.nodeType && e
                              , Pn = Rn && Rn.exports === Nn
                              , Bn = Pn && Tn.process
                              , Dn = function() {
                                try {
                                    var t = Rn && Rn.require && Rn.require("util").types;
                                    return t || Bn && Bn.binding && Bn.binding("util")
                                } catch (t) {}
                            }()
                              , Wn = Dn && Dn.isArrayBuffer
                              , Mn = Dn && Dn.isDate
                              , Un = Dn && Dn.isMap
                              , qn = Dn && Dn.isRegExp
                              , Fn = Dn && Dn.isSet
                              , Zn = Dn && Dn.isTypedArray;
                            function Hn(t, n, r) {
                                switch (r.length) {
                                case 0:
                                    return t.call(n);
                                case 1:
                                    return t.call(n, r[0]);
                                case 2:
                                    return t.call(n, r[0], r[1]);
                                case 3:
                                    return t.call(n, r[0], r[1], r[2])
                                }
                                return t.apply(n, r)
                            }
                            function Vn(t, n, r, e) {
                                for (var i = -1, u = null == t ? 0 : t.length; ++i < u; ) {
                                    var o = t[i];
                                    n(e, o, r(o), t)
                                }
                                return e
                            }
                            function Yn(t, n) {
                                for (var r = -1, e = null == t ? 0 : t.length; ++r < e && !1 !== n(t[r], r, t); )
                                    ;
                                return t
                            }
                            function Jn(t, n) {
                                for (var r = null == t ? 0 : t.length; r-- && !1 !== n(t[r], r, t); )
                                    ;
                                return t
                            }
                            function Kn(t, n) {
                                for (var r = -1, e = null == t ? 0 : t.length; ++r < e; )
                                    if (!n(t[r], r, t))
                                        return !1;
                                return !0
                            }
                            function Gn(t, n) {
                                for (var r = -1, e = null == t ? 0 : t.length, i = 0, u = []; ++r < e; ) {
                                    var o = t[r];
                                    n(o, r, t) && (u[i++] = o)
                                }
                                return u
                            }
                            function Xn(t, n) {
                                return !!(null == t ? 0 : t.length) && ar(t, n, 0) > -1
                            }
                            function Qn(t, n, r) {
                                for (var e = -1, i = null == t ? 0 : t.length; ++e < i; )
                                    if (r(n, t[e]))
                                        return !0;
                                return !1
                            }
                            function tr(t, n) {
                                for (var r = -1, e = null == t ? 0 : t.length, i = Array(e); ++r < e; )
                                    i[r] = n(t[r], r, t);
                                return i
                            }
                            function nr(t, n) {
                                for (var r = -1, e = n.length, i = t.length; ++r < e; )
                                    t[i + r] = n[r];
                                return t
                            }
                            function rr(t, n, r, e) {
                                var i = -1
                                  , u = null == t ? 0 : t.length;
                                for (e && u && (r = t[++i]); ++i < u; )
                                    r = n(r, t[i], i, t);
                                return r
                            }
                            function er(t, n, r, e) {
                                var i = null == t ? 0 : t.length;
                                for (e && i && (r = t[--i]); i--; )
                                    r = n(r, t[i], i, t);
                                return r
                            }
                            function ir(t, n) {
                                for (var r = -1, e = null == t ? 0 : t.length; ++r < e; )
                                    if (n(t[r], r, t))
                                        return !0;
                                return !1
                            }
                            var ur = hr("length");
                            function or(t, n, r) {
                                var e;
                                return r(t, function(t, r, i) {
                                    if (n(t, r, i))
                                        return e = r,
                                        !1
                                }),
                                e
                            }
                            function fr(t, n, r, e) {
                                for (var i = t.length, u = r + (e ? 1 : -1); e ? u-- : ++u < i; )
                                    if (n(t[u], u, t))
                                        return u;
                                return -1
                            }
                            function ar(t, n, r) {
                                return n == n ? function(t, n, r) {
                                    var e = r - 1
                                      , i = t.length;
                                    for (; ++e < i; )
                                        if (t[e] === n)
                                            return e;
                                    return -1
                                }(t, n, r) : fr(t, sr, r)
                            }
                            function cr(t, n, r, e) {
                                for (var i = r - 1, u = t.length; ++i < u; )
                                    if (e(t[i], n))
                                        return i;
                                return -1
                            }
                            function sr(t) {
                                return t != t
                            }
                            function lr(t, n) {
                                var r = null == t ? 0 : t.length;
                                return r ? dr(t, n) / r : R
                            }
                            function hr(t) {
                                return function(n) {
                                    return null == n ? u : n[t]
                                }
                            }
                            function pr(t) {
                                return function(n) {
                                    return null == t ? u : t[n]
                                }
                            }
                            function vr(t, n, r, e, i) {
                                return i(t, function(t, i, u) {
                                    r = e ? (e = !1,
                                    t) : n(r, t, i, u)
                                }),
                                r
                            }
                            function dr(t, n) {
                                for (var r, e = -1, i = t.length; ++e < i; ) {
                                    var o = n(t[e]);
                                    o !== u && (r = r === u ? o : r + o)
                                }
                                return r
                            }
                            function gr(t, n) {
                                for (var r = -1, e = Array(t); ++r < t; )
                                    e[r] = n(r);
                                return e
                            }
                            function _r(t) {
                                return function(n) {
                                    return t(n)
                                }
                            }
                            function yr(t, n) {
                                return tr(n, function(n) {
                                    return t[n]
                                })
                            }
                            function mr(t, n) {
                                return t.has(n)
                            }
                            function br(t, n) {
                                for (var r = -1, e = t.length; ++r < e && ar(n, t[r], 0) > -1; )
                                    ;
                                return r
                            }
                            function wr(t, n) {
                                for (var r = t.length; r-- && ar(n, t[r], 0) > -1; )
                                    ;
                                return r
                            }
                            var xr = pr({
                                "À": "A",
                                "Á": "A",
                                "Â": "A",
                                "Ã": "A",
                                "Ä": "A",
                                "Å": "A",
                                "à": "a",
                                "á": "a",
                                "â": "a",
                                "ã": "a",
                                "ä": "a",
                                "å": "a",
                                "Ç": "C",
                                "ç": "c",
                                "Ð": "D",
                                "ð": "d",
                                "È": "E",
                                "É": "E",
                                "Ê": "E",
                                "Ë": "E",
                                "è": "e",
                                "é": "e",
                                "ê": "e",
                                "ë": "e",
                                "Ì": "I",
                                "Í": "I",
                                "Î": "I",
                                "Ï": "I",
                                "ì": "i",
                                "í": "i",
                                "î": "i",
                                "ï": "i",
                                "Ñ": "N",
                                "ñ": "n",
                                "Ò": "O",
                                "Ó": "O",
                                "Ô": "O",
                                "Õ": "O",
                                "Ö": "O",
                                "Ø": "O",
                                "ò": "o",
                                "ó": "o",
                                "ô": "o",
                                "õ": "o",
                                "ö": "o",
                                "ø": "o",
                                "Ù": "U",
                                "Ú": "U",
                                "Û": "U",
                                "Ü": "U",
                                "ù": "u",
                                "ú": "u",
                                "û": "u",
                                "ü": "u",
                                "Ý": "Y",
                                "ý": "y",
                                "ÿ": "y",
                                "Æ": "Ae",
                                "æ": "ae",
                                "Þ": "Th",
                                "þ": "th",
                                "ß": "ss",
                                "Ā": "A",
                                "Ă": "A",
                                "Ą": "A",
                                "ā": "a",
                                "ă": "a",
                                "ą": "a",
                                "Ć": "C",
                                "Ĉ": "C",
                                "Ċ": "C",
                                "Č": "C",
                                "ć": "c",
                                "ĉ": "c",
                                "ċ": "c",
                                "č": "c",
                                "Ď": "D",
                                "Đ": "D",
                                "ď": "d",
                                "đ": "d",
                                "Ē": "E",
                                "Ĕ": "E",
                                "Ė": "E",
                                "Ę": "E",
                                "Ě": "E",
                                "ē": "e",
                                "ĕ": "e",
                                "ė": "e",
                                "ę": "e",
                                "ě": "e",
                                "Ĝ": "G",
                                "Ğ": "G",
                                "Ġ": "G",
                                "Ģ": "G",
                                "ĝ": "g",
                                "ğ": "g",
                                "ġ": "g",
                                "ģ": "g",
                                "Ĥ": "H",
                                "Ħ": "H",
                                "ĥ": "h",
                                "ħ": "h",
                                "Ĩ": "I",
                                "Ī": "I",
                                "Ĭ": "I",
                                "Į": "I",
                                "İ": "I",
                                "ĩ": "i",
                                "ī": "i",
                                "ĭ": "i",
                                "į": "i",
                                "ı": "i",
                                "Ĵ": "J",
                                "ĵ": "j",
                                "Ķ": "K",
                                "ķ": "k",
                                "ĸ": "k",
                                "Ĺ": "L",
                                "Ļ": "L",
                                "Ľ": "L",
                                "Ŀ": "L",
                                "Ł": "L",
                                "ĺ": "l",
                                "ļ": "l",
                                "ľ": "l",
                                "ŀ": "l",
                                "ł": "l",
                                "Ń": "N",
                                "Ņ": "N",
                                "Ň": "N",
                                "Ŋ": "N",
                                "ń": "n",
                                "ņ": "n",
                                "ň": "n",
                                "ŋ": "n",
                                "Ō": "O",
                                "Ŏ": "O",
                                "Ő": "O",
                                "ō": "o",
                                "ŏ": "o",
                                "ő": "o",
                                "Ŕ": "R",
                                "Ŗ": "R",
                                "Ř": "R",
                                "ŕ": "r",
                                "ŗ": "r",
                                "ř": "r",
                                "Ś": "S",
                                "Ŝ": "S",
                                "Ş": "S",
                                "Š": "S",
                                "ś": "s",
                                "ŝ": "s",
                                "ş": "s",
                                "š": "s",
                                "Ţ": "T",
                                "Ť": "T",
                                "Ŧ": "T",
                                "ţ": "t",
                                "ť": "t",
                                "ŧ": "t",
                                "Ũ": "U",
                                "Ū": "U",
                                "Ŭ": "U",
                                "Ů": "U",
                                "Ű": "U",
                                "Ų": "U",
                                "ũ": "u",
                                "ū": "u",
                                "ŭ": "u",
                                "ů": "u",
                                "ű": "u",
                                "ų": "u",
                                "Ŵ": "W",
                                "ŵ": "w",
                                "Ŷ": "Y",
                                "ŷ": "y",
                                "Ÿ": "Y",
                                "Ź": "Z",
                                "Ż": "Z",
                                "Ž": "Z",
                                "ź": "z",
                                "ż": "z",
                                "ž": "z",
                                "IJ": "IJ",
                                "ij": "ij",
                                "Œ": "Oe",
                                "œ": "oe",
                                "ʼn": "'n",
                                "ſ": "s"
                            })
                              , Er = pr({
                                "&": "&amp;",
                                "<": "&lt;",
                                ">": "&gt;",
                                '"': "&quot;",
                                "'": "&#39;"
                            });
                            function jr(t) {
                                return "\\" + Cn[t]
                            }
                            function Ar(t) {
                                return En.test(t)
                            }
                            function $r(t) {
                                var n = -1
                                  , r = Array(t.size);
                                return t.forEach(function(t, e) {
                                    r[++n] = [e, t]
                                }),
                                r
                            }
                            function Or(t, n) {
                                return function(r) {
                                    return t(n(r))
                                }
                            }
                            function Sr(t, n) {
                                for (var r = -1, e = t.length, i = 0, u = []; ++r < e; ) {
                                    var o = t[r];
                                    o !== n && o !== l || (t[r] = l,
                                    u[i++] = r)
                                }
                                return u
                            }
                            function Cr(t, n) {
                                return "__proto__" == n ? u : t[n]
                            }
                            function kr(t) {
                                var n = -1
                                  , r = Array(t.size);
                                return t.forEach(function(t) {
                                    r[++n] = t
                                }),
                                r
                            }
                            function Ir(t) {
                                var n = -1
                                  , r = Array(t.size);
                                return t.forEach(function(t) {
                                    r[++n] = [t, t]
                                }),
                                r
                            }
                            function Tr(t) {
                                return Ar(t) ? function(t) {
                                    var n = wn.lastIndex = 0;
                                    for (; wn.test(t); )
                                        ++n;
                                    return n
                                }(t) : ur(t)
                            }
                            function zr(t) {
                                return Ar(t) ? function(t) {
                                    return t.match(wn) || []
                                }(t) : function(t) {
                                    return t.split("")
                                }(t)
                            }
                            var Lr = pr({
                                "&amp;": "&",
                                "&lt;": "<",
                                "&gt;": ">",
                                "&quot;": '"',
                                "&#39;": "'"
                            });
                            var Nr = function t(n) {
                                var r, e = (n = null == n ? Ln : Nr.defaults(Ln.Object(), n, Nr.pick(Ln, An))).Array, i = n.Date, Xt = n.Error, Qt = n.Function, tn = n.Math, nn = n.Object, rn = n.RegExp, en = n.String, un = n.TypeError, on = e.prototype, fn = Qt.prototype, an = nn.prototype, cn = n["__core-js_shared__"], sn = fn.toString, ln = an.hasOwnProperty, hn = 0, pn = (r = /[^.]+$/.exec(cn && cn.keys && cn.keys.IE_PROTO || "")) ? "Symbol(src)_1." + r : "", vn = an.toString, dn = sn.call(nn), gn = Ln._, _n = rn("^" + sn.call(ln).replace(Tt, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"), yn = Pn ? n.Buffer : u, wn = n.Symbol, En = n.Uint8Array, Cn = yn ? yn.allocUnsafe : u, Tn = Or(nn.getPrototypeOf, nn), zn = nn.create, Nn = an.propertyIsEnumerable, Rn = on.splice, Bn = wn ? wn.isConcatSpreadable : u, Dn = wn ? wn.iterator : u, ur = wn ? wn.toStringTag : u, pr = function() {
                                    try {
                                        var t = Du(nn, "defineProperty");
                                        return t({}, "", {}),
                                        t
                                    } catch (t) {}
                                }(), Rr = n.clearTimeout !== Ln.clearTimeout && n.clearTimeout, Pr = i && i.now !== Ln.Date.now && i.now, Br = n.setTimeout !== Ln.setTimeout && n.setTimeout, Dr = tn.ceil, Wr = tn.floor, Mr = nn.getOwnPropertySymbols, Ur = yn ? yn.isBuffer : u, qr = n.isFinite, Fr = on.join, Zr = Or(nn.keys, nn), Hr = tn.max, Vr = tn.min, Yr = i.now, Jr = n.parseInt, Kr = tn.random, Gr = on.reverse, Xr = Du(n, "DataView"), Qr = Du(n, "Map"), te = Du(n, "Promise"), ne = Du(n, "Set"), re = Du(n, "WeakMap"), ee = Du(nn, "create"), ie = re && new re, ue = {}, oe = so(Xr), fe = so(Qr), ae = so(te), ce = so(ne), se = so(re), le = wn ? wn.prototype : u, he = le ? le.valueOf : u, pe = le ? le.toString : u;
                                function ve(t) {
                                    if (Cf(t) && !yf(t) && !(t instanceof ye)) {
                                        if (t instanceof _e)
                                            return t;
                                        if (ln.call(t, "__wrapped__"))
                                            return lo(t)
                                    }
                                    return new _e(t)
                                }
                                var de = function() {
                                    function t() {}
                                    return function(n) {
                                        if (!Sf(n))
                                            return {};
                                        if (zn)
                                            return zn(n);
                                        t.prototype = n;
                                        var r = new t;
                                        return t.prototype = u,
                                        r
                                    }
                                }();
                                function ge() {}
                                function _e(t, n) {
                                    this.__wrapped__ = t,
                                    this.__actions__ = [],
                                    this.__chain__ = !!n,
                                    this.__index__ = 0,
                                    this.__values__ = u
                                }
                                function ye(t) {
                                    this.__wrapped__ = t,
                                    this.__actions__ = [],
                                    this.__dir__ = 1,
                                    this.__filtered__ = !1,
                                    this.__iteratees__ = [],
                                    this.__takeCount__ = P,
                                    this.__views__ = []
                                }
                                function me(t) {
                                    var n = -1
                                      , r = null == t ? 0 : t.length;
                                    for (this.clear(); ++n < r; ) {
                                        var e = t[n];
                                        this.set(e[0], e[1])
                                    }
                                }
                                function be(t) {
                                    var n = -1
                                      , r = null == t ? 0 : t.length;
                                    for (this.clear(); ++n < r; ) {
                                        var e = t[n];
                                        this.set(e[0], e[1])
                                    }
                                }
                                function we(t) {
                                    var n = -1
                                      , r = null == t ? 0 : t.length;
                                    for (this.clear(); ++n < r; ) {
                                        var e = t[n];
                                        this.set(e[0], e[1])
                                    }
                                }
                                function xe(t) {
                                    var n = -1
                                      , r = null == t ? 0 : t.length;
                                    for (this.__data__ = new we; ++n < r; )
                                        this.add(t[n])
                                }
                                function Ee(t) {
                                    var n = this.__data__ = new be(t);
                                    this.size = n.size
                                }
                                function je(t, n) {
                                    var r = yf(t)
                                      , e = !r && _f(t)
                                      , i = !r && !e && xf(t)
                                      , u = !r && !e && !i && Pf(t)
                                      , o = r || e || i || u
                                      , f = o ? gr(t.length, en) : []
                                      , a = f.length;
                                    for (var c in t)
                                        !n && !ln.call(t, c) || o && ("length" == c || i && ("offset" == c || "parent" == c) || u && ("buffer" == c || "byteLength" == c || "byteOffset" == c) || Hu(c, a)) || f.push(c);
                                    return f
                                }
                                function Ae(t) {
                                    var n = t.length;
                                    return n ? t[xi(0, n - 1)] : u
                                }
                                function $e(t, n) {
                                    return fo(eu(t), Ne(n, 0, t.length))
                                }
                                function Oe(t) {
                                    return fo(eu(t))
                                }
                                function Se(t, n, r) {
                                    (r === u || vf(t[n], r)) && (r !== u || n in t) || ze(t, n, r)
                                }
                                function Ce(t, n, r) {
                                    var e = t[n];
                                    ln.call(t, n) && vf(e, r) && (r !== u || n in t) || ze(t, n, r)
                                }
                                function ke(t, n) {
                                    for (var r = t.length; r--; )
                                        if (vf(t[r][0], n))
                                            return r;
                                    return -1
                                }
                                function Ie(t, n, r, e) {
                                    return We(t, function(t, i, u) {
                                        n(e, t, r(t), u)
                                    }),
                                    e
                                }
                                function Te(t, n) {
                                    return t && iu(n, ua(n), t)
                                }
                                function ze(t, n, r) {
                                    "__proto__" == n && pr ? pr(t, n, {
                                        configurable: !0,
                                        enumerable: !0,
                                        value: r,
                                        writable: !0
                                    }) : t[n] = r
                                }
                                function Le(t, n) {
                                    for (var r = -1, i = n.length, o = e(i), f = null == t; ++r < i; )
                                        o[r] = f ? u : ta(t, n[r]);
                                    return o
                                }
                                function Ne(t, n, r) {
                                    return t == t && (r !== u && (t = t <= r ? t : r),
                                    n !== u && (t = t >= n ? t : n)),
                                    t
                                }
                                function Re(t, n, r, e, i, o) {
                                    var f, a = n & h, c = n & p, s = n & v;
                                    if (r && (f = i ? r(t, e, i, o) : r(t)),
                                    f !== u)
                                        return f;
                                    if (!Sf(t))
                                        return t;
                                    var l = yf(t);
                                    if (l) {
                                        if (f = function(t) {
                                            var n = t.length
                                              , r = new t.constructor(n);
                                            return n && "string" == typeof t[0] && ln.call(t, "index") && (r.index = t.index,
                                            r.input = t.input),
                                            r
                                        }(t),
                                        !a)
                                            return eu(t, f)
                                    } else {
                                        var d = Uu(t)
                                          , g = d == Y || d == J;
                                        if (xf(t))
                                            return Gi(t, a);
                                        if (d == Q || d == M || g && !i) {
                                            if (f = c || g ? {} : Fu(t),
                                            !a)
                                                return c ? function(t, n) {
                                                    return iu(t, Mu(t), n)
                                                }(t, function(t, n) {
                                                    return t && iu(n, oa(n), t)
                                                }(f, t)) : function(t, n) {
                                                    return iu(t, Wu(t), n)
                                                }(t, Te(f, t))
                                        } else {
                                            if (!Sn[d])
                                                return i ? t : {};
                                            f = function(t, n, r) {
                                                var e, i, u, o = t.constructor;
                                                switch (n) {
                                                case at:
                                                    return Xi(t);
                                                case F:
                                                case Z:
                                                    return new o(+t);
                                                case ct:
                                                    return function(t, n) {
                                                        var r = n ? Xi(t.buffer) : t.buffer;
                                                        return new t.constructor(r,t.byteOffset,t.byteLength)
                                                    }(t, r);
                                                case st:
                                                case lt:
                                                case ht:
                                                case pt:
                                                case vt:
                                                case dt:
                                                case gt:
                                                case _t:
                                                case yt:
                                                    return Qi(t, r);
                                                case K:
                                                    return new o;
                                                case G:
                                                case et:
                                                    return new o(t);
                                                case nt:
                                                    return (u = new (i = t).constructor(i.source,qt.exec(i))).lastIndex = i.lastIndex,
                                                    u;
                                                case rt:
                                                    return new o;
                                                case it:
                                                    return e = t,
                                                    he ? nn(he.call(e)) : {}
                                                }
                                            }(t, d, a)
                                        }
                                    }
                                    o || (o = new Ee);
                                    var _ = o.get(t);
                                    if (_)
                                        return _;
                                    if (o.set(t, f),
                                    Lf(t))
                                        return t.forEach(function(e) {
                                            f.add(Re(e, n, r, e, t, o))
                                        }),
                                        f;
                                    if (kf(t))
                                        return t.forEach(function(e, i) {
                                            f.set(i, Re(e, n, r, i, t, o))
                                        }),
                                        f;
                                    var y = l ? u : (s ? c ? Tu : Iu : c ? oa : ua)(t);
                                    return Yn(y || t, function(e, i) {
                                        y && (e = t[i = e]),
                                        Ce(f, i, Re(e, n, r, i, t, o))
                                    }),
                                    f
                                }
                                function Pe(t, n, r) {
                                    var e = r.length;
                                    if (null == t)
                                        return !e;
                                    for (t = nn(t); e--; ) {
                                        var i = r[e]
                                          , o = n[i]
                                          , f = t[i];
                                        if (f === u && !(i in t) || !o(f))
                                            return !1
                                    }
                                    return !0
                                }
                                function Be(t, n, r) {
                                    if ("function" != typeof t)
                                        throw new un(a);
                                    return eo(function() {
                                        t.apply(u, r)
                                    }, n)
                                }
                                function De(t, n, r, e) {
                                    var i = -1
                                      , u = Xn
                                      , f = !0
                                      , a = t.length
                                      , c = []
                                      , s = n.length;
                                    if (!a)
                                        return c;
                                    r && (n = tr(n, _r(r))),
                                    e ? (u = Qn,
                                    f = !1) : n.length >= o && (u = mr,
                                    f = !1,
                                    n = new xe(n));
                                    t: for (; ++i < a; ) {
                                        var l = t[i]
                                          , h = null == r ? l : r(l);
                                        if (l = e || 0 !== l ? l : 0,
                                        f && h == h) {
                                            for (var p = s; p--; )
                                                if (n[p] === h)
                                                    continue t;
                                            c.push(l)
                                        } else
                                            u(n, h, e) || c.push(l)
                                    }
                                    return c
                                }
                                ve.templateSettings = {
                                    escape: $t,
                                    evaluate: Ot,
                                    interpolate: St,
                                    variable: "",
                                    imports: {
                                        _: ve
                                    }
                                },
                                ve.prototype = ge.prototype,
                                ve.prototype.constructor = ve,
                                _e.prototype = de(ge.prototype),
                                _e.prototype.constructor = _e,
                                ye.prototype = de(ge.prototype),
                                ye.prototype.constructor = ye,
                                me.prototype.clear = function() {
                                    this.__data__ = ee ? ee(null) : {},
                                    this.size = 0
                                }
                                ,
                                me.prototype.delete = function(t) {
                                    var n = this.has(t) && delete this.__data__[t];
                                    return this.size -= n ? 1 : 0,
                                    n
                                }
                                ,
                                me.prototype.get = function(t) {
                                    var n = this.__data__;
                                    if (ee) {
                                        var r = n[t];
                                        return r === c ? u : r
                                    }
                                    return ln.call(n, t) ? n[t] : u
                                }
                                ,
                                me.prototype.has = function(t) {
                                    var n = this.__data__;
                                    return ee ? n[t] !== u : ln.call(n, t)
                                }
                                ,
                                me.prototype.set = function(t, n) {
                                    var r = this.__data__;
                                    return this.size += this.has(t) ? 0 : 1,
                                    r[t] = ee && n === u ? c : n,
                                    this
                                }
                                ,
                                be.prototype.clear = function() {
                                    this.__data__ = [],
                                    this.size = 0
                                }
                                ,
                                be.prototype.delete = function(t) {
                                    var n = this.__data__
                                      , r = ke(n, t);
                                    return !(r < 0 || (r == n.length - 1 ? n.pop() : Rn.call(n, r, 1),
                                    --this.size,
                                    0))
                                }
                                ,
                                be.prototype.get = function(t) {
                                    var n = this.__data__
                                      , r = ke(n, t);
                                    return r < 0 ? u : n[r][1]
                                }
                                ,
                                be.prototype.has = function(t) {
                                    return ke(this.__data__, t) > -1
                                }
                                ,
                                be.prototype.set = function(t, n) {
                                    var r = this.__data__
                                      , e = ke(r, t);
                                    return e < 0 ? (++this.size,
                                    r.push([t, n])) : r[e][1] = n,
                                    this
                                }
                                ,
                                we.prototype.clear = function() {
                                    this.size = 0,
                                    this.__data__ = {
                                        hash: new me,
                                        map: new (Qr || be),
                                        string: new me
                                    }
                                }
                                ,
                                we.prototype.delete = function(t) {
                                    var n = Pu(this, t).delete(t);
                                    return this.size -= n ? 1 : 0,
                                    n
                                }
                                ,
                                we.prototype.get = function(t) {
                                    return Pu(this, t).get(t)
                                }
                                ,
                                we.prototype.has = function(t) {
                                    return Pu(this, t).has(t)
                                }
                                ,
                                we.prototype.set = function(t, n) {
                                    var r = Pu(this, t)
                                      , e = r.size;
                                    return r.set(t, n),
                                    this.size += r.size == e ? 0 : 1,
                                    this
                                }
                                ,
                                xe.prototype.add = xe.prototype.push = function(t) {
                                    return this.__data__.set(t, c),
                                    this
                                }
                                ,
                                xe.prototype.has = function(t) {
                                    return this.__data__.has(t)
                                }
                                ,
                                Ee.prototype.clear = function() {
                                    this.__data__ = new be,
                                    this.size = 0
                                }
                                ,
                                Ee.prototype.delete = function(t) {
                                    var n = this.__data__
                                      , r = n.delete(t);
                                    return this.size = n.size,
                                    r
                                }
                                ,
                                Ee.prototype.get = function(t) {
                                    return this.__data__.get(t)
                                }
                                ,
                                Ee.prototype.has = function(t) {
                                    return this.__data__.has(t)
                                }
                                ,
                                Ee.prototype.set = function(t, n) {
                                    var r = this.__data__;
                                    if (r instanceof be) {
                                        var e = r.__data__;
                                        if (!Qr || e.length < o - 1)
                                            return e.push([t, n]),
                                            this.size = ++r.size,
                                            this;
                                        r = this.__data__ = new we(e)
                                    }
                                    return r.set(t, n),
                                    this.size = r.size,
                                    this
                                }
                                ;
                                var We = fu(Ye)
                                  , Me = fu(Je, !0);
                                function Ue(t, n) {
                                    var r = !0;
                                    return We(t, function(t, e, i) {
                                        return r = !!n(t, e, i)
                                    }),
                                    r
                                }
                                function qe(t, n, r) {
                                    for (var e = -1, i = t.length; ++e < i; ) {
                                        var o = t[e]
                                          , f = n(o);
                                        if (null != f && (a === u ? f == f && !Rf(f) : r(f, a)))
                                            var a = f
                                              , c = o
                                    }
                                    return c
                                }
                                function Fe(t, n) {
                                    var r = [];
                                    return We(t, function(t, e, i) {
                                        n(t, e, i) && r.push(t)
                                    }),
                                    r
                                }
                                function Ze(t, n, r, e, i) {
                                    var u = -1
                                      , o = t.length;
                                    for (r || (r = Zu),
                                    i || (i = []); ++u < o; ) {
                                        var f = t[u];
                                        n > 0 && r(f) ? n > 1 ? Ze(f, n - 1, r, e, i) : nr(i, f) : e || (i[i.length] = f)
                                    }
                                    return i
                                }
                                var He = au()
                                  , Ve = au(!0);
                                function Ye(t, n) {
                                    return t && He(t, n, ua)
                                }
                                function Je(t, n) {
                                    return t && Ve(t, n, ua)
                                }
                                function Ke(t, n) {
                                    return Gn(n, function(n) {
                                        return Af(t[n])
                                    })
                                }
                                function Ge(t, n) {
                                    for (var r = 0, e = (n = Vi(n, t)).length; null != t && r < e; )
                                        t = t[co(n[r++])];
                                    return r && r == e ? t : u
                                }
                                function Xe(t, n, r) {
                                    var e = n(t);
                                    return yf(t) ? e : nr(e, r(t))
                                }
                                function Qe(t) {
                                    return null == t ? t === u ? ut : X : ur && ur in nn(t) ? function(t) {
                                        var n = ln.call(t, ur)
                                          , r = t[ur];
                                        try {
                                            t[ur] = u;
                                            var e = !0
                                        } catch (t) {}
                                        var i = vn.call(t);
                                        return e && (n ? t[ur] = r : delete t[ur]),
                                        i
                                    }(t) : function(t) {
                                        return vn.call(t)
                                    }(t)
                                }
                                function ti(t, n) {
                                    return t > n
                                }
                                function ni(t, n) {
                                    return null != t && ln.call(t, n)
                                }
                                function ri(t, n) {
                                    return null != t && n in nn(t)
                                }
                                function ei(t, n, r) {
                                    for (var i = r ? Qn : Xn, o = t[0].length, f = t.length, a = f, c = e(f), s = 1 / 0, l = []; a--; ) {
                                        var h = t[a];
                                        a && n && (h = tr(h, _r(n))),
                                        s = Vr(h.length, s),
                                        c[a] = !r && (n || o >= 120 && h.length >= 120) ? new xe(a && h) : u
                                    }
                                    h = t[0];
                                    var p = -1
                                      , v = c[0];
                                    t: for (; ++p < o && l.length < s; ) {
                                        var d = h[p]
                                          , g = n ? n(d) : d;
                                        if (d = r || 0 !== d ? d : 0,
                                        !(v ? mr(v, g) : i(l, g, r))) {
                                            for (a = f; --a; ) {
                                                var _ = c[a];
                                                if (!(_ ? mr(_, g) : i(t[a], g, r)))
                                                    continue t
                                            }
                                            v && v.push(g),
                                            l.push(d)
                                        }
                                    }
                                    return l
                                }
                                function ii(t, n, r) {
                                    var e = null == (t = no(t, n = Vi(n, t))) ? t : t[co(Eo(n))];
                                    return null == e ? u : Hn(e, t, r)
                                }
                                function ui(t) {
                                    return Cf(t) && Qe(t) == M
                                }
                                function oi(t, n, r, e, i) {
                                    return t === n || (null == t || null == n || !Cf(t) && !Cf(n) ? t != t && n != n : function(t, n, r, e, i, o) {
                                        var f = yf(t)
                                          , a = yf(n)
                                          , c = f ? U : Uu(t)
                                          , s = a ? U : Uu(n)
                                          , l = (c = c == M ? Q : c) == Q
                                          , h = (s = s == M ? Q : s) == Q
                                          , p = c == s;
                                        if (p && xf(t)) {
                                            if (!xf(n))
                                                return !1;
                                            f = !0,
                                            l = !1
                                        }
                                        if (p && !l)
                                            return o || (o = new Ee),
                                            f || Pf(t) ? Cu(t, n, r, e, i, o) : function(t, n, r, e, i, u, o) {
                                                switch (r) {
                                                case ct:
                                                    if (t.byteLength != n.byteLength || t.byteOffset != n.byteOffset)
                                                        return !1;
                                                    t = t.buffer,
                                                    n = n.buffer;
                                                case at:
                                                    return !(t.byteLength != n.byteLength || !u(new En(t), new En(n)));
                                                case F:
                                                case Z:
                                                case G:
                                                    return vf(+t, +n);
                                                case V:
                                                    return t.name == n.name && t.message == n.message;
                                                case nt:
                                                case et:
                                                    return t == n + "";
                                                case K:
                                                    var f = $r;
                                                case rt:
                                                    var a = e & d;
                                                    if (f || (f = kr),
                                                    t.size != n.size && !a)
                                                        return !1;
                                                    var c = o.get(t);
                                                    if (c)
                                                        return c == n;
                                                    e |= g,
                                                    o.set(t, n);
                                                    var s = Cu(f(t), f(n), e, i, u, o);
                                                    return o.delete(t),
                                                    s;
                                                case it:
                                                    if (he)
                                                        return he.call(t) == he.call(n)
                                                }
                                                return !1
                                            }(t, n, c, r, e, i, o);
                                        if (!(r & d)) {
                                            var v = l && ln.call(t, "__wrapped__")
                                              , _ = h && ln.call(n, "__wrapped__");
                                            if (v || _) {
                                                var y = v ? t.value() : t
                                                  , m = _ ? n.value() : n;
                                                return o || (o = new Ee),
                                                i(y, m, r, e, o)
                                            }
                                        }
                                        return !!p && (o || (o = new Ee),
                                        function(t, n, r, e, i, o) {
                                            var f = r & d
                                              , a = Iu(t)
                                              , c = a.length
                                              , s = Iu(n).length;
                                            if (c != s && !f)
                                                return !1;
                                            for (var l = c; l--; ) {
                                                var h = a[l];
                                                if (!(f ? h in n : ln.call(n, h)))
                                                    return !1
                                            }
                                            var p = o.get(t);
                                            if (p && o.get(n))
                                                return p == n;
                                            var v = !0;
                                            o.set(t, n),
                                            o.set(n, t);
                                            for (var g = f; ++l < c; ) {
                                                h = a[l];
                                                var _ = t[h]
                                                  , y = n[h];
                                                if (e)
                                                    var m = f ? e(y, _, h, n, t, o) : e(_, y, h, t, n, o);
                                                if (!(m === u ? _ === y || i(_, y, r, e, o) : m)) {
                                                    v = !1;
                                                    break
                                                }
                                                g || (g = "constructor" == h)
                                            }
                                            if (v && !g) {
                                                var b = t.constructor
                                                  , w = n.constructor;
                                                b != w && "constructor"in t && "constructor"in n && !("function" == typeof b && b instanceof b && "function" == typeof w && w instanceof w) && (v = !1)
                                            }
                                            return o.delete(t),
                                            o.delete(n),
                                            v
                                        }(t, n, r, e, i, o))
                                    }(t, n, r, e, oi, i))
                                }
                                function fi(t, n, r, e) {
                                    var i = r.length
                                      , o = i
                                      , f = !e;
                                    if (null == t)
                                        return !o;
                                    for (t = nn(t); i--; ) {
                                        var a = r[i];
                                        if (f && a[2] ? a[1] !== t[a[0]] : !(a[0]in t))
                                            return !1
                                    }
                                    for (; ++i < o; ) {
                                        var c = (a = r[i])[0]
                                          , s = t[c]
                                          , l = a[1];
                                        if (f && a[2]) {
                                            if (s === u && !(c in t))
                                                return !1
                                        } else {
                                            var h = new Ee;
                                            if (e)
                                                var p = e(s, l, c, t, n, h);
                                            if (!(p === u ? oi(l, s, d | g, e, h) : p))
                                                return !1
                                        }
                                    }
                                    return !0
                                }
                                function ai(t) {
                                    return !(!Sf(t) || pn && pn in t) && (Af(t) ? _n : Ht).test(so(t))
                                }
                                function ci(t) {
                                    return "function" == typeof t ? t : null == t ? Ia : "object" == typeof t ? yf(t) ? di(t[0], t[1]) : vi(t) : Wa(t)
                                }
                                function si(t) {
                                    if (!Gu(t))
                                        return Zr(t);
                                    var n = [];
                                    for (var r in nn(t))
                                        ln.call(t, r) && "constructor" != r && n.push(r);
                                    return n
                                }
                                function li(t) {
                                    if (!Sf(t))
                                        return function(t) {
                                            var n = [];
                                            if (null != t)
                                                for (var r in nn(t))
                                                    n.push(r);
                                            return n
                                        }(t);
                                    var n = Gu(t)
                                      , r = [];
                                    for (var e in t)
                                        ("constructor" != e || !n && ln.call(t, e)) && r.push(e);
                                    return r
                                }
                                function hi(t, n) {
                                    return t < n
                                }
                                function pi(t, n) {
                                    var r = -1
                                      , i = bf(t) ? e(t.length) : [];
                                    return We(t, function(t, e, u) {
                                        i[++r] = n(t, e, u)
                                    }),
                                    i
                                }
                                function vi(t) {
                                    var n = Bu(t);
                                    return 1 == n.length && n[0][2] ? Qu(n[0][0], n[0][1]) : function(r) {
                                        return r === t || fi(r, t, n)
                                    }
                                }
                                function di(t, n) {
                                    return Yu(t) && Xu(n) ? Qu(co(t), n) : function(r) {
                                        var e = ta(r, t);
                                        return e === u && e === n ? na(r, t) : oi(n, e, d | g)
                                    }
                                }
                                function gi(t, n, r, e, i) {
                                    t !== n && He(n, function(o, f) {
                                        if (Sf(o))
                                            i || (i = new Ee),
                                            function(t, n, r, e, i, o, f) {
                                                var a = Cr(t, r)
                                                  , c = Cr(n, r)
                                                  , s = f.get(c);
                                                if (s)
                                                    Se(t, r, s);
                                                else {
                                                    var l = o ? o(a, c, r + "", t, n, f) : u
                                                      , h = l === u;
                                                    if (h) {
                                                        var p = yf(c)
                                                          , v = !p && xf(c)
                                                          , d = !p && !v && Pf(c);
                                                        l = c,
                                                        p || v || d ? yf(a) ? l = a : wf(a) ? l = eu(a) : v ? (h = !1,
                                                        l = Gi(c, !0)) : d ? (h = !1,
                                                        l = Qi(c, !0)) : l = [] : Tf(c) || _f(c) ? (l = a,
                                                        _f(a) ? l = Zf(a) : (!Sf(a) || e && Af(a)) && (l = Fu(c))) : h = !1
                                                    }
                                                    h && (f.set(c, l),
                                                    i(l, c, e, o, f),
                                                    f.delete(c)),
                                                    Se(t, r, l)
                                                }
                                            }(t, n, f, r, gi, e, i);
                                        else {
                                            var a = e ? e(Cr(t, f), o, f + "", t, n, i) : u;
                                            a === u && (a = o),
                                            Se(t, f, a)
                                        }
                                    }, oa)
                                }
                                function _i(t, n) {
                                    var r = t.length;
                                    if (r)
                                        return Hu(n += n < 0 ? r : 0, r) ? t[n] : u
                                }
                                function yi(t, n, r) {
                                    var e = -1;
                                    return n = tr(n.length ? n : [Ia], _r(Ru())),
                                    function(t, n) {
                                        var r = t.length;
                                        for (t.sort(n); r--; )
                                            t[r] = t[r].value;
                                        return t
                                    }(pi(t, function(t, r, i) {
                                        return {
                                            criteria: tr(n, function(n) {
                                                return n(t)
                                            }),
                                            index: ++e,
                                            value: t
                                        }
                                    }), function(t, n) {
                                        return function(t, n, r) {
                                            for (var e = -1, i = t.criteria, u = n.criteria, o = i.length, f = r.length; ++e < o; ) {
                                                var a = tu(i[e], u[e]);
                                                if (a) {
                                                    if (e >= f)
                                                        return a;
                                                    var c = r[e];
                                                    return a * ("desc" == c ? -1 : 1)
                                                }
                                            }
                                            return t.index - n.index
                                        }(t, n, r)
                                    })
                                }
                                function mi(t, n, r) {
                                    for (var e = -1, i = n.length, u = {}; ++e < i; ) {
                                        var o = n[e]
                                          , f = Ge(t, o);
                                        r(f, o) && Oi(u, Vi(o, t), f)
                                    }
                                    return u
                                }
                                function bi(t, n, r, e) {
                                    var i = e ? cr : ar
                                      , u = -1
                                      , o = n.length
                                      , f = t;
                                    for (t === n && (n = eu(n)),
                                    r && (f = tr(t, _r(r))); ++u < o; )
                                        for (var a = 0, c = n[u], s = r ? r(c) : c; (a = i(f, s, a, e)) > -1; )
                                            f !== t && Rn.call(f, a, 1),
                                            Rn.call(t, a, 1);
                                    return t
                                }
                                function wi(t, n) {
                                    for (var r = t ? n.length : 0, e = r - 1; r--; ) {
                                        var i = n[r];
                                        if (r == e || i !== u) {
                                            var u = i;
                                            Hu(i) ? Rn.call(t, i, 1) : Di(t, i)
                                        }
                                    }
                                    return t
                                }
                                function xi(t, n) {
                                    return t + Wr(Kr() * (n - t + 1))
                                }
                                function Ei(t, n) {
                                    var r = "";
                                    if (!t || n < 1 || n > L)
                                        return r;
                                    do {
                                        n % 2 && (r += t),
                                        (n = Wr(n / 2)) && (t += t)
                                    } while (n);return r
                                }
                                function ji(t, n) {
                                    return io(to(t, n, Ia), t + "")
                                }
                                function Ai(t) {
                                    return Ae(va(t))
                                }
                                function $i(t, n) {
                                    var r = va(t);
                                    return fo(r, Ne(n, 0, r.length))
                                }
                                function Oi(t, n, r, e) {
                                    if (!Sf(t))
                                        return t;
                                    for (var i = -1, o = (n = Vi(n, t)).length, f = o - 1, a = t; null != a && ++i < o; ) {
                                        var c = co(n[i])
                                          , s = r;
                                        if (i != f) {
                                            var l = a[c];
                                            (s = e ? e(l, c, a) : u) === u && (s = Sf(l) ? l : Hu(n[i + 1]) ? [] : {})
                                        }
                                        Ce(a, c, s),
                                        a = a[c]
                                    }
                                    return t
                                }
                                var Si = ie ? function(t, n) {
                                    return ie.set(t, n),
                                    t
                                }
                                : Ia
                                  , Ci = pr ? function(t, n) {
                                    return pr(t, "toString", {
                                        configurable: !0,
                                        enumerable: !1,
                                        value: Sa(n),
                                        writable: !0
                                    })
                                }
                                : Ia;
                                function ki(t) {
                                    return fo(va(t))
                                }
                                function Ii(t, n, r) {
                                    var i = -1
                                      , u = t.length;
                                    n < 0 && (n = -n > u ? 0 : u + n),
                                    (r = r > u ? u : r) < 0 && (r += u),
                                    u = n > r ? 0 : r - n >>> 0,
                                    n >>>= 0;
                                    for (var o = e(u); ++i < u; )
                                        o[i] = t[i + n];
                                    return o
                                }
                                function Ti(t, n) {
                                    var r;
                                    return We(t, function(t, e, i) {
                                        return !(r = n(t, e, i))
                                    }),
                                    !!r
                                }
                                function zi(t, n, r) {
                                    var e = 0
                                      , i = null == t ? e : t.length;
                                    if ("number" == typeof n && n == n && i <= D) {
                                        for (; e < i; ) {
                                            var u = e + i >>> 1
                                              , o = t[u];
                                            null !== o && !Rf(o) && (r ? o <= n : o < n) ? e = u + 1 : i = u
                                        }
                                        return i
                                    }
                                    return Li(t, n, Ia, r)
                                }
                                function Li(t, n, r, e) {
                                    n = r(n);
                                    for (var i = 0, o = null == t ? 0 : t.length, f = n != n, a = null === n, c = Rf(n), s = n === u; i < o; ) {
                                        var l = Wr((i + o) / 2)
                                          , h = r(t[l])
                                          , p = h !== u
                                          , v = null === h
                                          , d = h == h
                                          , g = Rf(h);
                                        if (f)
                                            var _ = e || d;
                                        else
                                            _ = s ? d && (e || p) : a ? d && p && (e || !v) : c ? d && p && !v && (e || !g) : !v && !g && (e ? h <= n : h < n);
                                        _ ? i = l + 1 : o = l
                                    }
                                    return Vr(o, B)
                                }
                                function Ni(t, n) {
                                    for (var r = -1, e = t.length, i = 0, u = []; ++r < e; ) {
                                        var o = t[r]
                                          , f = n ? n(o) : o;
                                        if (!r || !vf(f, a)) {
                                            var a = f;
                                            u[i++] = 0 === o ? 0 : o
                                        }
                                    }
                                    return u
                                }
                                function Ri(t) {
                                    return "number" == typeof t ? t : Rf(t) ? R : +t
                                }
                                function Pi(t) {
                                    if ("string" == typeof t)
                                        return t;
                                    if (yf(t))
                                        return tr(t, Pi) + "";
                                    if (Rf(t))
                                        return pe ? pe.call(t) : "";
                                    var n = t + "";
                                    return "0" == n && 1 / t == -z ? "-0" : n
                                }
                                function Bi(t, n, r) {
                                    var e = -1
                                      , i = Xn
                                      , u = t.length
                                      , f = !0
                                      , a = []
                                      , c = a;
                                    if (r)
                                        f = !1,
                                        i = Qn;
                                    else if (u >= o) {
                                        var s = n ? null : Eu(t);
                                        if (s)
                                            return kr(s);
                                        f = !1,
                                        i = mr,
                                        c = new xe
                                    } else
                                        c = n ? [] : a;
                                    t: for (; ++e < u; ) {
                                        var l = t[e]
                                          , h = n ? n(l) : l;
                                        if (l = r || 0 !== l ? l : 0,
                                        f && h == h) {
                                            for (var p = c.length; p--; )
                                                if (c[p] === h)
                                                    continue t;
                                            n && c.push(h),
                                            a.push(l)
                                        } else
                                            i(c, h, r) || (c !== a && c.push(h),
                                            a.push(l))
                                    }
                                    return a
                                }
                                function Di(t, n) {
                                    return null == (t = no(t, n = Vi(n, t))) || delete t[co(Eo(n))]
                                }
                                function Wi(t, n, r, e) {
                                    return Oi(t, n, r(Ge(t, n)), e)
                                }
                                function Mi(t, n, r, e) {
                                    for (var i = t.length, u = e ? i : -1; (e ? u-- : ++u < i) && n(t[u], u, t); )
                                        ;
                                    return r ? Ii(t, e ? 0 : u, e ? u + 1 : i) : Ii(t, e ? u + 1 : 0, e ? i : u)
                                }
                                function Ui(t, n) {
                                    var r = t;
                                    return r instanceof ye && (r = r.value()),
                                    rr(n, function(t, n) {
                                        return n.func.apply(n.thisArg, nr([t], n.args))
                                    }, r)
                                }
                                function qi(t, n, r) {
                                    var i = t.length;
                                    if (i < 2)
                                        return i ? Bi(t[0]) : [];
                                    for (var u = -1, o = e(i); ++u < i; )
                                        for (var f = t[u], a = -1; ++a < i; )
                                            a != u && (o[u] = De(o[u] || f, t[a], n, r));
                                    return Bi(Ze(o, 1), n, r)
                                }
                                function Fi(t, n, r) {
                                    for (var e = -1, i = t.length, o = n.length, f = {}; ++e < i; ) {
                                        var a = e < o ? n[e] : u;
                                        r(f, t[e], a)
                                    }
                                    return f
                                }
                                function Zi(t) {
                                    return wf(t) ? t : []
                                }
                                function Hi(t) {
                                    return "function" == typeof t ? t : Ia
                                }
                                function Vi(t, n) {
                                    return yf(t) ? t : Yu(t, n) ? [t] : ao(Hf(t))
                                }
                                var Yi = ji;
                                function Ji(t, n, r) {
                                    var e = t.length;
                                    return r = r === u ? e : r,
                                    !n && r >= e ? t : Ii(t, n, r)
                                }
                                var Ki = Rr || function(t) {
                                    return Ln.clearTimeout(t)
                                }
                                ;
                                function Gi(t, n) {
                                    if (n)
                                        return t.slice();
                                    var r = t.length
                                      , e = Cn ? Cn(r) : new t.constructor(r);
                                    return t.copy(e),
                                    e
                                }
                                function Xi(t) {
                                    var n = new t.constructor(t.byteLength);
                                    return new En(n).set(new En(t)),
                                    n
                                }
                                function Qi(t, n) {
                                    var r = n ? Xi(t.buffer) : t.buffer;
                                    return new t.constructor(r,t.byteOffset,t.length)
                                }
                                function tu(t, n) {
                                    if (t !== n) {
                                        var r = t !== u
                                          , e = null === t
                                          , i = t == t
                                          , o = Rf(t)
                                          , f = n !== u
                                          , a = null === n
                                          , c = n == n
                                          , s = Rf(n);
                                        if (!a && !s && !o && t > n || o && f && c && !a && !s || e && f && c || !r && c || !i)
                                            return 1;
                                        if (!e && !o && !s && t < n || s && r && i && !e && !o || a && r && i || !f && i || !c)
                                            return -1
                                    }
                                    return 0
                                }
                                function nu(t, n, r, i) {
                                    for (var u = -1, o = t.length, f = r.length, a = -1, c = n.length, s = Hr(o - f, 0), l = e(c + s), h = !i; ++a < c; )
                                        l[a] = n[a];
                                    for (; ++u < f; )
                                        (h || u < o) && (l[r[u]] = t[u]);
                                    for (; s--; )
                                        l[a++] = t[u++];
                                    return l
                                }
                                function ru(t, n, r, i) {
                                    for (var u = -1, o = t.length, f = -1, a = r.length, c = -1, s = n.length, l = Hr(o - a, 0), h = e(l + s), p = !i; ++u < l; )
                                        h[u] = t[u];
                                    for (var v = u; ++c < s; )
                                        h[v + c] = n[c];
                                    for (; ++f < a; )
                                        (p || u < o) && (h[v + r[f]] = t[u++]);
                                    return h
                                }
                                function eu(t, n) {
                                    var r = -1
                                      , i = t.length;
                                    for (n || (n = e(i)); ++r < i; )
                                        n[r] = t[r];
                                    return n
                                }
                                function iu(t, n, r, e) {
                                    var i = !r;
                                    r || (r = {});
                                    for (var o = -1, f = n.length; ++o < f; ) {
                                        var a = n[o]
                                          , c = e ? e(r[a], t[a], a, r, t) : u;
                                        c === u && (c = t[a]),
                                        i ? ze(r, a, c) : Ce(r, a, c)
                                    }
                                    return r
                                }
                                function uu(t, n) {
                                    return function(r, e) {
                                        var i = yf(r) ? Vn : Ie
                                          , u = n ? n() : {};
                                        return i(r, t, Ru(e, 2), u)
                                    }
                                }
                                function ou(t) {
                                    return ji(function(n, r) {
                                        var e = -1
                                          , i = r.length
                                          , o = i > 1 ? r[i - 1] : u
                                          , f = i > 2 ? r[2] : u;
                                        for (o = t.length > 3 && "function" == typeof o ? (i--,
                                        o) : u,
                                        f && Vu(r[0], r[1], f) && (o = i < 3 ? u : o,
                                        i = 1),
                                        n = nn(n); ++e < i; ) {
                                            var a = r[e];
                                            a && t(n, a, e, o)
                                        }
                                        return n
                                    })
                                }
                                function fu(t, n) {
                                    return function(r, e) {
                                        if (null == r)
                                            return r;
                                        if (!bf(r))
                                            return t(r, e);
                                        for (var i = r.length, u = n ? i : -1, o = nn(r); (n ? u-- : ++u < i) && !1 !== e(o[u], u, o); )
                                            ;
                                        return r
                                    }
                                }
                                function au(t) {
                                    return function(n, r, e) {
                                        for (var i = -1, u = nn(n), o = e(n), f = o.length; f--; ) {
                                            var a = o[t ? f : ++i];
                                            if (!1 === r(u[a], a, u))
                                                break
                                        }
                                        return n
                                    }
                                }
                                function cu(t) {
                                    return function(n) {
                                        var r = Ar(n = Hf(n)) ? zr(n) : u
                                          , e = r ? r[0] : n.charAt(0)
                                          , i = r ? Ji(r, 1).join("") : n.slice(1);
                                        return e[t]() + i
                                    }
                                }
                                function su(t) {
                                    return function(n) {
                                        return rr(Aa(_a(n).replace(mn, "")), t, "")
                                    }
                                }
                                function lu(t) {
                                    return function() {
                                        var n = arguments;
                                        switch (n.length) {
                                        case 0:
                                            return new t;
                                        case 1:
                                            return new t(n[0]);
                                        case 2:
                                            return new t(n[0],n[1]);
                                        case 3:
                                            return new t(n[0],n[1],n[2]);
                                        case 4:
                                            return new t(n[0],n[1],n[2],n[3]);
                                        case 5:
                                            return new t(n[0],n[1],n[2],n[3],n[4]);
                                        case 6:
                                            return new t(n[0],n[1],n[2],n[3],n[4],n[5]);
                                        case 7:
                                            return new t(n[0],n[1],n[2],n[3],n[4],n[5],n[6])
                                        }
                                        var r = de(t.prototype)
                                          , e = t.apply(r, n);
                                        return Sf(e) ? e : r
                                    }
                                }
                                function hu(t) {
                                    return function(n, r, e) {
                                        var i = nn(n);
                                        if (!bf(n)) {
                                            var o = Ru(r, 3);
                                            n = ua(n),
                                            r = function(t) {
                                                return o(i[t], t, i)
                                            }
                                        }
                                        var f = t(n, r, e);
                                        return f > -1 ? i[o ? n[f] : f] : u
                                    }
                                }
                                function pu(t) {
                                    return ku(function(n) {
                                        var r = n.length
                                          , e = r
                                          , i = _e.prototype.thru;
                                        for (t && n.reverse(); e--; ) {
                                            var o = n[e];
                                            if ("function" != typeof o)
                                                throw new un(a);
                                            if (i && !f && "wrapper" == Lu(o))
                                                var f = new _e([],!0)
                                        }
                                        for (e = f ? e : r; ++e < r; ) {
                                            var c = Lu(o = n[e])
                                              , s = "wrapper" == c ? zu(o) : u;
                                            f = s && Ju(s[0]) && s[1] == (j | b | x | A) && !s[4].length && 1 == s[9] ? f[Lu(s[0])].apply(f, s[3]) : 1 == o.length && Ju(o) ? f[c]() : f.thru(o)
                                        }
                                        return function() {
                                            var t = arguments
                                              , e = t[0];
                                            if (f && 1 == t.length && yf(e))
                                                return f.plant(e).value();
                                            for (var i = 0, u = r ? n[i].apply(this, t) : e; ++i < r; )
                                                u = n[i].call(this, u);
                                            return u
                                        }
                                    })
                                }
                                function vu(t, n, r, i, o, f, a, c, s, l) {
                                    var h = n & j
                                      , p = n & _
                                      , v = n & y
                                      , d = n & (b | w)
                                      , g = n & $
                                      , m = v ? u : lu(t);
                                    return function _() {
                                        for (var y = arguments.length, b = e(y), w = y; w--; )
                                            b[w] = arguments[w];
                                        if (d)
                                            var x = Nu(_)
                                              , E = function(t, n) {
                                                for (var r = t.length, e = 0; r--; )
                                                    t[r] === n && ++e;
                                                return e
                                            }(b, x);
                                        if (i && (b = nu(b, i, o, d)),
                                        f && (b = ru(b, f, a, d)),
                                        y -= E,
                                        d && y < l) {
                                            var j = Sr(b, x);
                                            return wu(t, n, vu, _.placeholder, r, b, j, c, s, l - y)
                                        }
                                        var A = p ? r : this
                                          , $ = v ? A[t] : t;
                                        return y = b.length,
                                        c ? b = function(t, n) {
                                            for (var r = t.length, e = Vr(n.length, r), i = eu(t); e--; ) {
                                                var o = n[e];
                                                t[e] = Hu(o, r) ? i[o] : u
                                            }
                                            return t
                                        }(b, c) : g && y > 1 && b.reverse(),
                                        h && s < y && (b.length = s),
                                        this && this !== Ln && this instanceof _ && ($ = m || lu($)),
                                        $.apply(A, b)
                                    }
                                }
                                function du(t, n) {
                                    return function(r, e) {
                                        return function(t, n, r, e) {
                                            return Ye(t, function(t, i, u) {
                                                n(e, r(t), i, u)
                                            }),
                                            e
                                        }(r, t, n(e), {})
                                    }
                                }
                                function gu(t, n) {
                                    return function(r, e) {
                                        var i;
                                        if (r === u && e === u)
                                            return n;
                                        if (r !== u && (i = r),
                                        e !== u) {
                                            if (i === u)
                                                return e;
                                            "string" == typeof r || "string" == typeof e ? (r = Pi(r),
                                            e = Pi(e)) : (r = Ri(r),
                                            e = Ri(e)),
                                            i = t(r, e)
                                        }
                                        return i
                                    }
                                }
                                function _u(t) {
                                    return ku(function(n) {
                                        return n = tr(n, _r(Ru())),
                                        ji(function(r) {
                                            var e = this;
                                            return t(n, function(t) {
                                                return Hn(t, e, r)
                                            })
                                        })
                                    })
                                }
                                function yu(t, n) {
                                    var r = (n = n === u ? " " : Pi(n)).length;
                                    if (r < 2)
                                        return r ? Ei(n, t) : n;
                                    var e = Ei(n, Dr(t / Tr(n)));
                                    return Ar(n) ? Ji(zr(e), 0, t).join("") : e.slice(0, t)
                                }
                                function mu(t) {
                                    return function(n, r, i) {
                                        return i && "number" != typeof i && Vu(n, r, i) && (r = i = u),
                                        n = Mf(n),
                                        r === u ? (r = n,
                                        n = 0) : r = Mf(r),
                                        function(t, n, r, i) {
                                            for (var u = -1, o = Hr(Dr((n - t) / (r || 1)), 0), f = e(o); o--; )
                                                f[i ? o : ++u] = t,
                                                t += r;
                                            return f
                                        }(n, r, i = i === u ? n < r ? 1 : -1 : Mf(i), t)
                                    }
                                }
                                function bu(t) {
                                    return function(n, r) {
                                        return "string" == typeof n && "string" == typeof r || (n = Ff(n),
                                        r = Ff(r)),
                                        t(n, r)
                                    }
                                }
                                function wu(t, n, r, e, i, o, f, a, c, s) {
                                    var l = n & b;
                                    n |= l ? x : E,
                                    (n &= ~(l ? E : x)) & m || (n &= ~(_ | y));
                                    var h = [t, n, i, l ? o : u, l ? f : u, l ? u : o, l ? u : f, a, c, s]
                                      , p = r.apply(u, h);
                                    return Ju(t) && ro(p, h),
                                    p.placeholder = e,
                                    uo(p, t, n)
                                }
                                function xu(t) {
                                    var n = tn[t];
                                    return function(t, r) {
                                        if (t = Ff(t),
                                        r = null == r ? 0 : Vr(Uf(r), 292)) {
                                            var e = (Hf(t) + "e").split("e");
                                            return +((e = (Hf(n(e[0] + "e" + (+e[1] + r))) + "e").split("e"))[0] + "e" + (+e[1] - r))
                                        }
                                        return n(t)
                                    }
                                }
                                var Eu = ne && 1 / kr(new ne([, -0]))[1] == z ? function(t) {
                                    return new ne(t)
                                }
                                : Ra;
                                function ju(t) {
                                    return function(n) {
                                        var r = Uu(n);
                                        return r == K ? $r(n) : r == rt ? Ir(n) : function(t, n) {
                                            return tr(n, function(n) {
                                                return [n, t[n]]
                                            })
                                        }(n, t(n))
                                    }
                                }
                                function Au(t, n, r, i, o, f, c, s) {
                                    var h = n & y;
                                    if (!h && "function" != typeof t)
                                        throw new un(a);
                                    var p = i ? i.length : 0;
                                    if (p || (n &= ~(x | E),
                                    i = o = u),
                                    c = c === u ? c : Hr(Uf(c), 0),
                                    s = s === u ? s : Uf(s),
                                    p -= o ? o.length : 0,
                                    n & E) {
                                        var v = i
                                          , d = o;
                                        i = o = u
                                    }
                                    var g = h ? u : zu(t)
                                      , $ = [t, n, r, i, o, v, d, f, c, s];
                                    if (g && function(t, n) {
                                        var r = t[1]
                                          , e = n[1]
                                          , i = r | e
                                          , u = i < (_ | y | j)
                                          , o = e == j && r == b || e == j && r == A && t[7].length <= n[8] || e == (j | A) && n[7].length <= n[8] && r == b;
                                        if (!u && !o)
                                            return t;
                                        e & _ && (t[2] = n[2],
                                        i |= r & _ ? 0 : m);
                                        var f = n[3];
                                        if (f) {
                                            var a = t[3];
                                            t[3] = a ? nu(a, f, n[4]) : f,
                                            t[4] = a ? Sr(t[3], l) : n[4]
                                        }
                                        (f = n[5]) && (a = t[5],
                                        t[5] = a ? ru(a, f, n[6]) : f,
                                        t[6] = a ? Sr(t[5], l) : n[6]),
                                        (f = n[7]) && (t[7] = f),
                                        e & j && (t[8] = null == t[8] ? n[8] : Vr(t[8], n[8])),
                                        null == t[9] && (t[9] = n[9]),
                                        t[0] = n[0],
                                        t[1] = i
                                    }($, g),
                                    t = $[0],
                                    n = $[1],
                                    r = $[2],
                                    i = $[3],
                                    o = $[4],
                                    !(s = $[9] = $[9] === u ? h ? 0 : t.length : Hr($[9] - p, 0)) && n & (b | w) && (n &= ~(b | w)),
                                    n && n != _)
                                        O = n == b || n == w ? function(t, n, r) {
                                            var i = lu(t);
                                            return function o() {
                                                for (var f = arguments.length, a = e(f), c = f, s = Nu(o); c--; )
                                                    a[c] = arguments[c];
                                                var l = f < 3 && a[0] !== s && a[f - 1] !== s ? [] : Sr(a, s);
                                                return (f -= l.length) < r ? wu(t, n, vu, o.placeholder, u, a, l, u, u, r - f) : Hn(this && this !== Ln && this instanceof o ? i : t, this, a)
                                            }
                                        }(t, n, s) : n != x && n != (_ | x) || o.length ? vu.apply(u, $) : function(t, n, r, i) {
                                            var u = n & _
                                              , o = lu(t);
                                            return function n() {
                                                for (var f = -1, a = arguments.length, c = -1, s = i.length, l = e(s + a), h = this && this !== Ln && this instanceof n ? o : t; ++c < s; )
                                                    l[c] = i[c];
                                                for (; a--; )
                                                    l[c++] = arguments[++f];
                                                return Hn(h, u ? r : this, l)
                                            }
                                        }(t, n, r, i);
                                    else
                                        var O = function(t, n, r) {
                                            var e = n & _
                                              , i = lu(t);
                                            return function n() {
                                                return (this && this !== Ln && this instanceof n ? i : t).apply(e ? r : this, arguments)
                                            }
                                        }(t, n, r);
                                    return uo((g ? Si : ro)(O, $), t, n)
                                }
                                function $u(t, n, r, e) {
                                    return t === u || vf(t, an[r]) && !ln.call(e, r) ? n : t
                                }
                                function Ou(t, n, r, e, i, o) {
                                    return Sf(t) && Sf(n) && (o.set(n, t),
                                    gi(t, n, u, Ou, o),
                                    o.delete(n)),
                                    t
                                }
                                function Su(t) {
                                    return Tf(t) ? u : t
                                }
                                function Cu(t, n, r, e, i, o) {
                                    var f = r & d
                                      , a = t.length
                                      , c = n.length;
                                    if (a != c && !(f && c > a))
                                        return !1;
                                    var s = o.get(t);
                                    if (s && o.get(n))
                                        return s == n;
                                    var l = -1
                                      , h = !0
                                      , p = r & g ? new xe : u;
                                    for (o.set(t, n),
                                    o.set(n, t); ++l < a; ) {
                                        var v = t[l]
                                          , _ = n[l];
                                        if (e)
                                            var y = f ? e(_, v, l, n, t, o) : e(v, _, l, t, n, o);
                                        if (y !== u) {
                                            if (y)
                                                continue;
                                            h = !1;
                                            break
                                        }
                                        if (p) {
                                            if (!ir(n, function(t, n) {
                                                if (!mr(p, n) && (v === t || i(v, t, r, e, o)))
                                                    return p.push(n)
                                            })) {
                                                h = !1;
                                                break
                                            }
                                        } else if (v !== _ && !i(v, _, r, e, o)) {
                                            h = !1;
                                            break
                                        }
                                    }
                                    return o.delete(t),
                                    o.delete(n),
                                    h
                                }
                                function ku(t) {
                                    return io(to(t, u, yo), t + "")
                                }
                                function Iu(t) {
                                    return Xe(t, ua, Wu)
                                }
                                function Tu(t) {
                                    return Xe(t, oa, Mu)
                                }
                                var zu = ie ? function(t) {
                                    return ie.get(t)
                                }
                                : Ra;
                                function Lu(t) {
                                    for (var n = t.name + "", r = ue[n], e = ln.call(ue, n) ? r.length : 0; e--; ) {
                                        var i = r[e]
                                          , u = i.func;
                                        if (null == u || u == t)
                                            return i.name
                                    }
                                    return n
                                }
                                function Nu(t) {
                                    return (ln.call(ve, "placeholder") ? ve : t).placeholder
                                }
                                function Ru() {
                                    var t = ve.iteratee || Ta;
                                    return t = t === Ta ? ci : t,
                                    arguments.length ? t(arguments[0], arguments[1]) : t
                                }
                                function Pu(t, n) {
                                    var r, e, i = t.__data__;
                                    return ("string" == (e = typeof (r = n)) || "number" == e || "symbol" == e || "boolean" == e ? "__proto__" !== r : null === r) ? i["string" == typeof n ? "string" : "hash"] : i.map
                                }
                                function Bu(t) {
                                    for (var n = ua(t), r = n.length; r--; ) {
                                        var e = n[r]
                                          , i = t[e];
                                        n[r] = [e, i, Xu(i)]
                                    }
                                    return n
                                }
                                function Du(t, n) {
                                    var r = function(t, n) {
                                        return null == t ? u : t[n]
                                    }(t, n);
                                    return ai(r) ? r : u
                                }
                                var Wu = Mr ? function(t) {
                                    return null == t ? [] : (t = nn(t),
                                    Gn(Mr(t), function(n) {
                                        return Nn.call(t, n)
                                    }))
                                }
                                : qa
                                  , Mu = Mr ? function(t) {
                                    for (var n = []; t; )
                                        nr(n, Wu(t)),
                                        t = Tn(t);
                                    return n
                                }
                                : qa
                                  , Uu = Qe;
                                function qu(t, n, r) {
                                    for (var e = -1, i = (n = Vi(n, t)).length, u = !1; ++e < i; ) {
                                        var o = co(n[e]);
                                        if (!(u = null != t && r(t, o)))
                                            break;
                                        t = t[o]
                                    }
                                    return u || ++e != i ? u : !!(i = null == t ? 0 : t.length) && Of(i) && Hu(o, i) && (yf(t) || _f(t))
                                }
                                function Fu(t) {
                                    return "function" != typeof t.constructor || Gu(t) ? {} : de(Tn(t))
                                }
                                function Zu(t) {
                                    return yf(t) || _f(t) || !!(Bn && t && t[Bn])
                                }
                                function Hu(t, n) {
                                    var r = typeof t;
                                    return !!(n = null == n ? L : n) && ("number" == r || "symbol" != r && Yt.test(t)) && t > -1 && t % 1 == 0 && t < n
                                }
                                function Vu(t, n, r) {
                                    if (!Sf(r))
                                        return !1;
                                    var e = typeof n;
                                    return !!("number" == e ? bf(r) && Hu(n, r.length) : "string" == e && n in r) && vf(r[n], t)
                                }
                                function Yu(t, n) {
                                    if (yf(t))
                                        return !1;
                                    var r = typeof t;
                                    return !("number" != r && "symbol" != r && "boolean" != r && null != t && !Rf(t)) || kt.test(t) || !Ct.test(t) || null != n && t in nn(n)
                                }
                                function Ju(t) {
                                    var n = Lu(t)
                                      , r = ve[n];
                                    if ("function" != typeof r || !(n in ye.prototype))
                                        return !1;
                                    if (t === r)
                                        return !0;
                                    var e = zu(r);
                                    return !!e && t === e[0]
                                }
                                (Xr && Uu(new Xr(new ArrayBuffer(1))) != ct || Qr && Uu(new Qr) != K || te && "[object Promise]" != Uu(te.resolve()) || ne && Uu(new ne) != rt || re && Uu(new re) != ot) && (Uu = function(t) {
                                    var n = Qe(t)
                                      , r = n == Q ? t.constructor : u
                                      , e = r ? so(r) : "";
                                    if (e)
                                        switch (e) {
                                        case oe:
                                            return ct;
                                        case fe:
                                            return K;
                                        case ae:
                                            return "[object Promise]";
                                        case ce:
                                            return rt;
                                        case se:
                                            return ot
                                        }
                                    return n
                                }
                                );
                                var Ku = cn ? Af : Fa;
                                function Gu(t) {
                                    var n = t && t.constructor;
                                    return t === ("function" == typeof n && n.prototype || an)
                                }
                                function Xu(t) {
                                    return t == t && !Sf(t)
                                }
                                function Qu(t, n) {
                                    return function(r) {
                                        return null != r && r[t] === n && (n !== u || t in nn(r))
                                    }
                                }
                                function to(t, n, r) {
                                    return n = Hr(n === u ? t.length - 1 : n, 0),
                                    function() {
                                        for (var i = arguments, u = -1, o = Hr(i.length - n, 0), f = e(o); ++u < o; )
                                            f[u] = i[n + u];
                                        u = -1;
                                        for (var a = e(n + 1); ++u < n; )
                                            a[u] = i[u];
                                        return a[n] = r(f),
                                        Hn(t, this, a)
                                    }
                                }
                                function no(t, n) {
                                    return n.length < 2 ? t : Ge(t, Ii(n, 0, -1))
                                }
                                var ro = oo(Si)
                                  , eo = Br || function(t, n) {
                                    return Ln.setTimeout(t, n)
                                }
                                  , io = oo(Ci);
                                function uo(t, n, r) {
                                    var e = n + "";
                                    return io(t, function(t, n) {
                                        var r = n.length;
                                        if (!r)
                                            return t;
                                        var e = r - 1;
                                        return n[e] = (r > 1 ? "& " : "") + n[e],
                                        n = n.join(r > 2 ? ", " : " "),
                                        t.replace(Pt, "{\n/* [wrapped with " + n + "] */\n")
                                    }(e, function(t, n) {
                                        return Yn(W, function(r) {
                                            var e = "_." + r[0];
                                            n & r[1] && !Xn(t, e) && t.push(e)
                                        }),
                                        t.sort()
                                    }(function(t) {
                                        var n = t.match(Bt);
                                        return n ? n[1].split(Dt) : []
                                    }(e), r)))
                                }
                                function oo(t) {
                                    var n = 0
                                      , r = 0;
                                    return function() {
                                        var e = Yr()
                                          , i = k - (e - r);
                                        if (r = e,
                                        i > 0) {
                                            if (++n >= C)
                                                return arguments[0]
                                        } else
                                            n = 0;
                                        return t.apply(u, arguments)
                                    }
                                }
                                function fo(t, n) {
                                    var r = -1
                                      , e = t.length
                                      , i = e - 1;
                                    for (n = n === u ? e : n; ++r < n; ) {
                                        var o = xi(r, i)
                                          , f = t[o];
                                        t[o] = t[r],
                                        t[r] = f
                                    }
                                    return t.length = n,
                                    t
                                }
                                var ao = function(t) {
                                    var n = af(t, function(t) {
                                        return r.size === s && r.clear(),
                                        t
                                    })
                                      , r = n.cache;
                                    return n
                                }(function(t) {
                                    var n = [];
                                    return 46 === t.charCodeAt(0) && n.push(""),
                                    t.replace(It, function(t, r, e, i) {
                                        n.push(e ? i.replace(Mt, "$1") : r || t)
                                    }),
                                    n
                                });
                                function co(t) {
                                    if ("string" == typeof t || Rf(t))
                                        return t;
                                    var n = t + "";
                                    return "0" == n && 1 / t == -z ? "-0" : n
                                }
                                function so(t) {
                                    if (null != t) {
                                        try {
                                            return sn.call(t)
                                        } catch (t) {}
                                        try {
                                            return t + ""
                                        } catch (t) {}
                                    }
                                    return ""
                                }
                                function lo(t) {
                                    if (t instanceof ye)
                                        return t.clone();
                                    var n = new _e(t.__wrapped__,t.__chain__);
                                    return n.__actions__ = eu(t.__actions__),
                                    n.__index__ = t.__index__,
                                    n.__values__ = t.__values__,
                                    n
                                }
                                var ho = ji(function(t, n) {
                                    return wf(t) ? De(t, Ze(n, 1, wf, !0)) : []
                                })
                                  , po = ji(function(t, n) {
                                    var r = Eo(n);
                                    return wf(r) && (r = u),
                                    wf(t) ? De(t, Ze(n, 1, wf, !0), Ru(r, 2)) : []
                                })
                                  , vo = ji(function(t, n) {
                                    var r = Eo(n);
                                    return wf(r) && (r = u),
                                    wf(t) ? De(t, Ze(n, 1, wf, !0), u, r) : []
                                });
                                function go(t, n, r) {
                                    var e = null == t ? 0 : t.length;
                                    if (!e)
                                        return -1;
                                    var i = null == r ? 0 : Uf(r);
                                    return i < 0 && (i = Hr(e + i, 0)),
                                    fr(t, Ru(n, 3), i)
                                }
                                function _o(t, n, r) {
                                    var e = null == t ? 0 : t.length;
                                    if (!e)
                                        return -1;
                                    var i = e - 1;
                                    return r !== u && (i = Uf(r),
                                    i = r < 0 ? Hr(e + i, 0) : Vr(i, e - 1)),
                                    fr(t, Ru(n, 3), i, !0)
                                }
                                function yo(t) {
                                    return null != t && t.length ? Ze(t, 1) : []
                                }
                                function mo(t) {
                                    return t && t.length ? t[0] : u
                                }
                                var bo = ji(function(t) {
                                    var n = tr(t, Zi);
                                    return n.length && n[0] === t[0] ? ei(n) : []
                                })
                                  , wo = ji(function(t) {
                                    var n = Eo(t)
                                      , r = tr(t, Zi);
                                    return n === Eo(r) ? n = u : r.pop(),
                                    r.length && r[0] === t[0] ? ei(r, Ru(n, 2)) : []
                                })
                                  , xo = ji(function(t) {
                                    var n = Eo(t)
                                      , r = tr(t, Zi);
                                    return (n = "function" == typeof n ? n : u) && r.pop(),
                                    r.length && r[0] === t[0] ? ei(r, u, n) : []
                                });
                                function Eo(t) {
                                    var n = null == t ? 0 : t.length;
                                    return n ? t[n - 1] : u
                                }
                                var jo = ji(Ao);
                                function Ao(t, n) {
                                    return t && t.length && n && n.length ? bi(t, n) : t
                                }
                                var $o = ku(function(t, n) {
                                    var r = null == t ? 0 : t.length
                                      , e = Le(t, n);
                                    return wi(t, tr(n, function(t) {
                                        return Hu(t, r) ? +t : t
                                    }).sort(tu)),
                                    e
                                });
                                function Oo(t) {
                                    return null == t ? t : Gr.call(t)
                                }
                                var So = ji(function(t) {
                                    return Bi(Ze(t, 1, wf, !0))
                                })
                                  , Co = ji(function(t) {
                                    var n = Eo(t);
                                    return wf(n) && (n = u),
                                    Bi(Ze(t, 1, wf, !0), Ru(n, 2))
                                })
                                  , ko = ji(function(t) {
                                    var n = Eo(t);
                                    return n = "function" == typeof n ? n : u,
                                    Bi(Ze(t, 1, wf, !0), u, n)
                                });
                                function Io(t) {
                                    if (!t || !t.length)
                                        return [];
                                    var n = 0;
                                    return t = Gn(t, function(t) {
                                        if (wf(t))
                                            return n = Hr(t.length, n),
                                            !0
                                    }),
                                    gr(n, function(n) {
                                        return tr(t, hr(n))
                                    })
                                }
                                function To(t, n) {
                                    if (!t || !t.length)
                                        return [];
                                    var r = Io(t);
                                    return null == n ? r : tr(r, function(t) {
                                        return Hn(n, u, t)
                                    })
                                }
                                var zo = ji(function(t, n) {
                                    return wf(t) ? De(t, n) : []
                                })
                                  , Lo = ji(function(t) {
                                    return qi(Gn(t, wf))
                                })
                                  , No = ji(function(t) {
                                    var n = Eo(t);
                                    return wf(n) && (n = u),
                                    qi(Gn(t, wf), Ru(n, 2))
                                })
                                  , Ro = ji(function(t) {
                                    var n = Eo(t);
                                    return n = "function" == typeof n ? n : u,
                                    qi(Gn(t, wf), u, n)
                                })
                                  , Po = ji(Io);
                                var Bo = ji(function(t) {
                                    var n = t.length
                                      , r = n > 1 ? t[n - 1] : u;
                                    return To(t, r = "function" == typeof r ? (t.pop(),
                                    r) : u)
                                });
                                function Do(t) {
                                    var n = ve(t);
                                    return n.__chain__ = !0,
                                    n
                                }
                                function Wo(t, n) {
                                    return n(t)
                                }
                                var Mo = ku(function(t) {
                                    var n = t.length
                                      , r = n ? t[0] : 0
                                      , e = this.__wrapped__
                                      , i = function(n) {
                                        return Le(n, t)
                                    };
                                    return !(n > 1 || this.__actions__.length) && e instanceof ye && Hu(r) ? ((e = e.slice(r, +r + (n ? 1 : 0))).__actions__.push({
                                        func: Wo,
                                        args: [i],
                                        thisArg: u
                                    }),
                                    new _e(e,this.__chain__).thru(function(t) {
                                        return n && !t.length && t.push(u),
                                        t
                                    })) : this.thru(i)
                                });
                                var Uo = uu(function(t, n, r) {
                                    ln.call(t, r) ? ++t[r] : ze(t, r, 1)
                                });
                                var qo = hu(go)
                                  , Fo = hu(_o);
                                function Zo(t, n) {
                                    return (yf(t) ? Yn : We)(t, Ru(n, 3))
                                }
                                function Ho(t, n) {
                                    return (yf(t) ? Jn : Me)(t, Ru(n, 3))
                                }
                                var Vo = uu(function(t, n, r) {
                                    ln.call(t, r) ? t[r].push(n) : ze(t, r, [n])
                                });
                                var Yo = ji(function(t, n, r) {
                                    var i = -1
                                      , u = "function" == typeof n
                                      , o = bf(t) ? e(t.length) : [];
                                    return We(t, function(t) {
                                        o[++i] = u ? Hn(n, t, r) : ii(t, n, r)
                                    }),
                                    o
                                })
                                  , Jo = uu(function(t, n, r) {
                                    ze(t, r, n)
                                });
                                function Ko(t, n) {
                                    return (yf(t) ? tr : pi)(t, Ru(n, 3))
                                }
                                var Go = uu(function(t, n, r) {
                                    t[r ? 0 : 1].push(n)
                                }, function() {
                                    return [[], []]
                                });
                                var Xo = ji(function(t, n) {
                                    if (null == t)
                                        return [];
                                    var r = n.length;
                                    return r > 1 && Vu(t, n[0], n[1]) ? n = [] : r > 2 && Vu(n[0], n[1], n[2]) && (n = [n[0]]),
                                    yi(t, Ze(n, 1), [])
                                })
                                  , Qo = Pr || function() {
                                    return Ln.Date.now()
                                }
                                ;
                                function tf(t, n, r) {
                                    return n = r ? u : n,
                                    n = t && null == n ? t.length : n,
                                    Au(t, j, u, u, u, u, n)
                                }
                                function nf(t, n) {
                                    var r;
                                    if ("function" != typeof n)
                                        throw new un(a);
                                    return t = Uf(t),
                                    function() {
                                        return --t > 0 && (r = n.apply(this, arguments)),
                                        t <= 1 && (n = u),
                                        r
                                    }
                                }
                                var rf = ji(function(t, n, r) {
                                    var e = _;
                                    if (r.length) {
                                        var i = Sr(r, Nu(rf));
                                        e |= x
                                    }
                                    return Au(t, e, n, r, i)
                                })
                                  , ef = ji(function(t, n, r) {
                                    var e = _ | y;
                                    if (r.length) {
                                        var i = Sr(r, Nu(ef));
                                        e |= x
                                    }
                                    return Au(n, e, t, r, i)
                                });
                                function uf(t, n, r) {
                                    var e, i, o, f, c, s, l = 0, h = !1, p = !1, v = !0;
                                    if ("function" != typeof t)
                                        throw new un(a);
                                    function d(n) {
                                        var r = e
                                          , o = i;
                                        return e = i = u,
                                        l = n,
                                        f = t.apply(o, r)
                                    }
                                    function g(t) {
                                        var r = t - s;
                                        return s === u || r >= n || r < 0 || p && t - l >= o
                                    }
                                    function _() {
                                        var t = Qo();
                                        if (g(t))
                                            return y(t);
                                        c = eo(_, function(t) {
                                            var r = n - (t - s);
                                            return p ? Vr(r, o - (t - l)) : r
                                        }(t))
                                    }
                                    function y(t) {
                                        return c = u,
                                        v && e ? d(t) : (e = i = u,
                                        f)
                                    }
                                    function m() {
                                        var t = Qo()
                                          , r = g(t);
                                        if (e = arguments,
                                        i = this,
                                        s = t,
                                        r) {
                                            if (c === u)
                                                return function(t) {
                                                    return l = t,
                                                    c = eo(_, n),
                                                    h ? d(t) : f
                                                }(s);
                                            if (p)
                                                return c = eo(_, n),
                                                d(s)
                                        }
                                        return c === u && (c = eo(_, n)),
                                        f
                                    }
                                    return n = Ff(n) || 0,
                                    Sf(r) && (h = !!r.leading,
                                    o = (p = "maxWait"in r) ? Hr(Ff(r.maxWait) || 0, n) : o,
                                    v = "trailing"in r ? !!r.trailing : v),
                                    m.cancel = function() {
                                        c !== u && Ki(c),
                                        l = 0,
                                        e = s = i = c = u
                                    }
                                    ,
                                    m.flush = function() {
                                        return c === u ? f : y(Qo())
                                    }
                                    ,
                                    m
                                }
                                var of = ji(function(t, n) {
                                    return Be(t, 1, n)
                                })
                                  , ff = ji(function(t, n, r) {
                                    return Be(t, Ff(n) || 0, r)
                                });
                                function af(t, n) {
                                    if ("function" != typeof t || null != n && "function" != typeof n)
                                        throw new un(a);
                                    var r = function() {
                                        var e = arguments
                                          , i = n ? n.apply(this, e) : e[0]
                                          , u = r.cache;
                                        if (u.has(i))
                                            return u.get(i);
                                        var o = t.apply(this, e);
                                        return r.cache = u.set(i, o) || u,
                                        o
                                    };
                                    return r.cache = new (af.Cache || we),
                                    r
                                }
                                function cf(t) {
                                    if ("function" != typeof t)
                                        throw new un(a);
                                    return function() {
                                        var n = arguments;
                                        switch (n.length) {
                                        case 0:
                                            return !t.call(this);
                                        case 1:
                                            return !t.call(this, n[0]);
                                        case 2:
                                            return !t.call(this, n[0], n[1]);
                                        case 3:
                                            return !t.call(this, n[0], n[1], n[2])
                                        }
                                        return !t.apply(this, n)
                                    }
                                }
                                af.Cache = we;
                                var sf = Yi(function(t, n) {
                                    var r = (n = 1 == n.length && yf(n[0]) ? tr(n[0], _r(Ru())) : tr(Ze(n, 1), _r(Ru()))).length;
                                    return ji(function(e) {
                                        for (var i = -1, u = Vr(e.length, r); ++i < u; )
                                            e[i] = n[i].call(this, e[i]);
                                        return Hn(t, this, e)
                                    })
                                })
                                  , lf = ji(function(t, n) {
                                    var r = Sr(n, Nu(lf));
                                    return Au(t, x, u, n, r)
                                })
                                  , hf = ji(function(t, n) {
                                    var r = Sr(n, Nu(hf));
                                    return Au(t, E, u, n, r)
                                })
                                  , pf = ku(function(t, n) {
                                    return Au(t, A, u, u, u, n)
                                });
                                function vf(t, n) {
                                    return t === n || t != t && n != n
                                }
                                var df = bu(ti)
                                  , gf = bu(function(t, n) {
                                    return t >= n
                                })
                                  , _f = ui(function() {
                                    return arguments
                                }()) ? ui : function(t) {
                                    return Cf(t) && ln.call(t, "callee") && !Nn.call(t, "callee")
                                }
                                  , yf = e.isArray
                                  , mf = Wn ? _r(Wn) : function(t) {
                                    return Cf(t) && Qe(t) == at
                                }
                                ;
                                function bf(t) {
                                    return null != t && Of(t.length) && !Af(t)
                                }
                                function wf(t) {
                                    return Cf(t) && bf(t)
                                }
                                var xf = Ur || Fa
                                  , Ef = Mn ? _r(Mn) : function(t) {
                                    return Cf(t) && Qe(t) == Z
                                }
                                ;
                                function jf(t) {
                                    if (!Cf(t))
                                        return !1;
                                    var n = Qe(t);
                                    return n == V || n == H || "string" == typeof t.message && "string" == typeof t.name && !Tf(t)
                                }
                                function Af(t) {
                                    if (!Sf(t))
                                        return !1;
                                    var n = Qe(t);
                                    return n == Y || n == J || n == q || n == tt
                                }
                                function $f(t) {
                                    return "number" == typeof t && t == Uf(t)
                                }
                                function Of(t) {
                                    return "number" == typeof t && t > -1 && t % 1 == 0 && t <= L
                                }
                                function Sf(t) {
                                    var n = typeof t;
                                    return null != t && ("object" == n || "function" == n)
                                }
                                function Cf(t) {
                                    return null != t && "object" == typeof t
                                }
                                var kf = Un ? _r(Un) : function(t) {
                                    return Cf(t) && Uu(t) == K
                                }
                                ;
                                function If(t) {
                                    return "number" == typeof t || Cf(t) && Qe(t) == G
                                }
                                function Tf(t) {
                                    if (!Cf(t) || Qe(t) != Q)
                                        return !1;
                                    var n = Tn(t);
                                    if (null === n)
                                        return !0;
                                    var r = ln.call(n, "constructor") && n.constructor;
                                    return "function" == typeof r && r instanceof r && sn.call(r) == dn
                                }
                                var zf = qn ? _r(qn) : function(t) {
                                    return Cf(t) && Qe(t) == nt
                                }
                                ;
                                var Lf = Fn ? _r(Fn) : function(t) {
                                    return Cf(t) && Uu(t) == rt
                                }
                                ;
                                function Nf(t) {
                                    return "string" == typeof t || !yf(t) && Cf(t) && Qe(t) == et
                                }
                                function Rf(t) {
                                    return "symbol" == typeof t || Cf(t) && Qe(t) == it
                                }
                                var Pf = Zn ? _r(Zn) : function(t) {
                                    return Cf(t) && Of(t.length) && !!On[Qe(t)]
                                }
                                ;
                                var Bf = bu(hi)
                                  , Df = bu(function(t, n) {
                                    return t <= n
                                });
                                function Wf(t) {
                                    if (!t)
                                        return [];
                                    if (bf(t))
                                        return Nf(t) ? zr(t) : eu(t);
                                    if (Dn && t[Dn])
                                        return function(t) {
                                            for (var n, r = []; !(n = t.next()).done; )
                                                r.push(n.value);
                                            return r
                                        }(t[Dn]());
                                    var n = Uu(t);
                                    return (n == K ? $r : n == rt ? kr : va)(t)
                                }
                                function Mf(t) {
                                    return t ? (t = Ff(t)) === z || t === -z ? (t < 0 ? -1 : 1) * N : t == t ? t : 0 : 0 === t ? t : 0
                                }
                                function Uf(t) {
                                    var n = Mf(t)
                                      , r = n % 1;
                                    return n == n ? r ? n - r : n : 0
                                }
                                function qf(t) {
                                    return t ? Ne(Uf(t), 0, P) : 0
                                }
                                function Ff(t) {
                                    if ("number" == typeof t)
                                        return t;
                                    if (Rf(t))
                                        return R;
                                    if (Sf(t)) {
                                        var n = "function" == typeof t.valueOf ? t.valueOf() : t;
                                        t = Sf(n) ? n + "" : n
                                    }
                                    if ("string" != typeof t)
                                        return 0 === t ? t : +t;
                                    t = t.replace(Lt, "");
                                    var r = Zt.test(t);
                                    return r || Vt.test(t) ? In(t.slice(2), r ? 2 : 8) : Ft.test(t) ? R : +t
                                }
                                function Zf(t) {
                                    return iu(t, oa(t))
                                }
                                function Hf(t) {
                                    return null == t ? "" : Pi(t)
                                }
                                var Vf = ou(function(t, n) {
                                    if (Gu(n) || bf(n))
                                        iu(n, ua(n), t);
                                    else
                                        for (var r in n)
                                            ln.call(n, r) && Ce(t, r, n[r])
                                })
                                  , Yf = ou(function(t, n) {
                                    iu(n, oa(n), t)
                                })
                                  , Jf = ou(function(t, n, r, e) {
                                    iu(n, oa(n), t, e)
                                })
                                  , Kf = ou(function(t, n, r, e) {
                                    iu(n, ua(n), t, e)
                                })
                                  , Gf = ku(Le);
                                var Xf = ji(function(t, n) {
                                    t = nn(t);
                                    var r = -1
                                      , e = n.length
                                      , i = e > 2 ? n[2] : u;
                                    for (i && Vu(n[0], n[1], i) && (e = 1); ++r < e; )
                                        for (var o = n[r], f = oa(o), a = -1, c = f.length; ++a < c; ) {
                                            var s = f[a]
                                              , l = t[s];
                                            (l === u || vf(l, an[s]) && !ln.call(t, s)) && (t[s] = o[s])
                                        }
                                    return t
                                })
                                  , Qf = ji(function(t) {
                                    return t.push(u, Ou),
                                    Hn(aa, u, t)
                                });
                                function ta(t, n, r) {
                                    var e = null == t ? u : Ge(t, n);
                                    return e === u ? r : e
                                }
                                function na(t, n) {
                                    return null != t && qu(t, n, ri)
                                }
                                var ra = du(function(t, n, r) {
                                    null != n && "function" != typeof n.toString && (n = vn.call(n)),
                                    t[n] = r
                                }, Sa(Ia))
                                  , ea = du(function(t, n, r) {
                                    null != n && "function" != typeof n.toString && (n = vn.call(n)),
                                    ln.call(t, n) ? t[n].push(r) : t[n] = [r]
                                }, Ru)
                                  , ia = ji(ii);
                                function ua(t) {
                                    return bf(t) ? je(t) : si(t)
                                }
                                function oa(t) {
                                    return bf(t) ? je(t, !0) : li(t)
                                }
                                var fa = ou(function(t, n, r) {
                                    gi(t, n, r)
                                })
                                  , aa = ou(function(t, n, r, e) {
                                    gi(t, n, r, e)
                                })
                                  , ca = ku(function(t, n) {
                                    var r = {};
                                    if (null == t)
                                        return r;
                                    var e = !1;
                                    n = tr(n, function(n) {
                                        return n = Vi(n, t),
                                        e || (e = n.length > 1),
                                        n
                                    }),
                                    iu(t, Tu(t), r),
                                    e && (r = Re(r, h | p | v, Su));
                                    for (var i = n.length; i--; )
                                        Di(r, n[i]);
                                    return r
                                });
                                var sa = ku(function(t, n) {
                                    return null == t ? {} : function(t, n) {
                                        return mi(t, n, function(n, r) {
                                            return na(t, r)
                                        })
                                    }(t, n)
                                });
                                function la(t, n) {
                                    if (null == t)
                                        return {};
                                    var r = tr(Tu(t), function(t) {
                                        return [t]
                                    });
                                    return n = Ru(n),
                                    mi(t, r, function(t, r) {
                                        return n(t, r[0])
                                    })
                                }
                                var ha = ju(ua)
                                  , pa = ju(oa);
                                function va(t) {
                                    return null == t ? [] : yr(t, ua(t))
                                }
                                var da = su(function(t, n, r) {
                                    return n = n.toLowerCase(),
                                    t + (r ? ga(n) : n)
                                });
                                function ga(t) {
                                    return ja(Hf(t).toLowerCase())
                                }
                                function _a(t) {
                                    return (t = Hf(t)) && t.replace(Jt, xr).replace(bn, "")
                                }
                                var ya = su(function(t, n, r) {
                                    return t + (r ? "-" : "") + n.toLowerCase()
                                })
                                  , ma = su(function(t, n, r) {
                                    return t + (r ? " " : "") + n.toLowerCase()
                                })
                                  , ba = cu("toLowerCase");
                                var wa = su(function(t, n, r) {
                                    return t + (r ? "_" : "") + n.toLowerCase()
                                });
                                var xa = su(function(t, n, r) {
                                    return t + (r ? " " : "") + ja(n)
                                });
                                var Ea = su(function(t, n, r) {
                                    return t + (r ? " " : "") + n.toUpperCase()
                                })
                                  , ja = cu("toUpperCase");
                                function Aa(t, n, r) {
                                    return t = Hf(t),
                                    (n = r ? u : n) === u ? function(t) {
                                        return jn.test(t)
                                    }(t) ? function(t) {
                                        return t.match(xn) || []
                                    }(t) : function(t) {
                                        return t.match(Wt) || []
                                    }(t) : t.match(n) || []
                                }
                                var $a = ji(function(t, n) {
                                    try {
                                        return Hn(t, u, n)
                                    } catch (t) {
                                        return jf(t) ? t : new Xt(t)
                                    }
                                })
                                  , Oa = ku(function(t, n) {
                                    return Yn(n, function(n) {
                                        n = co(n),
                                        ze(t, n, rf(t[n], t))
                                    }),
                                    t
                                });
                                function Sa(t) {
                                    return function() {
                                        return t
                                    }
                                }
                                var Ca = pu()
                                  , ka = pu(!0);
                                function Ia(t) {
                                    return t
                                }
                                function Ta(t) {
                                    return ci("function" == typeof t ? t : Re(t, h))
                                }
                                var za = ji(function(t, n) {
                                    return function(r) {
                                        return ii(r, t, n)
                                    }
                                })
                                  , La = ji(function(t, n) {
                                    return function(r) {
                                        return ii(t, r, n)
                                    }
                                });
                                function Na(t, n, r) {
                                    var e = ua(n)
                                      , i = Ke(n, e);
                                    null != r || Sf(n) && (i.length || !e.length) || (r = n,
                                    n = t,
                                    t = this,
                                    i = Ke(n, ua(n)));
                                    var u = !(Sf(r) && "chain"in r && !r.chain)
                                      , o = Af(t);
                                    return Yn(i, function(r) {
                                        var e = n[r];
                                        t[r] = e,
                                        o && (t.prototype[r] = function() {
                                            var n = this.__chain__;
                                            if (u || n) {
                                                var r = t(this.__wrapped__);
                                                return (r.__actions__ = eu(this.__actions__)).push({
                                                    func: e,
                                                    args: arguments,
                                                    thisArg: t
                                                }),
                                                r.__chain__ = n,
                                                r
                                            }
                                            return e.apply(t, nr([this.value()], arguments))
                                        }
                                        )
                                    }),
                                    t
                                }
                                function Ra() {}
                                var Pa = _u(tr)
                                  , Ba = _u(Kn)
                                  , Da = _u(ir);
                                function Wa(t) {
                                    return Yu(t) ? hr(co(t)) : function(t) {
                                        return function(n) {
                                            return Ge(n, t)
                                        }
                                    }(t)
                                }
                                var Ma = mu()
                                  , Ua = mu(!0);
                                function qa() {
                                    return []
                                }
                                function Fa() {
                                    return !1
                                }
                                var Za = gu(function(t, n) {
                                    return t + n
                                }, 0)
                                  , Ha = xu("ceil")
                                  , Va = gu(function(t, n) {
                                    return t / n
                                }, 1)
                                  , Ya = xu("floor");
                                var Ja, Ka = gu(function(t, n) {
                                    return t * n
                                }, 1), Ga = xu("round"), Xa = gu(function(t, n) {
                                    return t - n
                                }, 0);
                                return ve.after = function(t, n) {
                                    if ("function" != typeof n)
                                        throw new un(a);
                                    return t = Uf(t),
                                    function() {
                                        if (--t < 1)
                                            return n.apply(this, arguments)
                                    }
                                }
                                ,
                                ve.ary = tf,
                                ve.assign = Vf,
                                ve.assignIn = Yf,
                                ve.assignInWith = Jf,
                                ve.assignWith = Kf,
                                ve.at = Gf,
                                ve.before = nf,
                                ve.bind = rf,
                                ve.bindAll = Oa,
                                ve.bindKey = ef,
                                ve.castArray = function() {
                                    if (!arguments.length)
                                        return [];
                                    var t = arguments[0];
                                    return yf(t) ? t : [t]
                                }
                                ,
                                ve.chain = Do,
                                ve.chunk = function(t, n, r) {
                                    n = (r ? Vu(t, n, r) : n === u) ? 1 : Hr(Uf(n), 0);
                                    var i = null == t ? 0 : t.length;
                                    if (!i || n < 1)
                                        return [];
                                    for (var o = 0, f = 0, a = e(Dr(i / n)); o < i; )
                                        a[f++] = Ii(t, o, o += n);
                                    return a
                                }
                                ,
                                ve.compact = function(t) {
                                    for (var n = -1, r = null == t ? 0 : t.length, e = 0, i = []; ++n < r; ) {
                                        var u = t[n];
                                        u && (i[e++] = u)
                                    }
                                    return i
                                }
                                ,
                                ve.concat = function() {
                                    var t = arguments.length;
                                    if (!t)
                                        return [];
                                    for (var n = e(t - 1), r = arguments[0], i = t; i--; )
                                        n[i - 1] = arguments[i];
                                    return nr(yf(r) ? eu(r) : [r], Ze(n, 1))
                                }
                                ,
                                ve.cond = function(t) {
                                    var n = null == t ? 0 : t.length
                                      , r = Ru();
                                    return t = n ? tr(t, function(t) {
                                        if ("function" != typeof t[1])
                                            throw new un(a);
                                        return [r(t[0]), t[1]]
                                    }) : [],
                                    ji(function(r) {
                                        for (var e = -1; ++e < n; ) {
                                            var i = t[e];
                                            if (Hn(i[0], this, r))
                                                return Hn(i[1], this, r)
                                        }
                                    })
                                }
                                ,
                                ve.conforms = function(t) {
                                    return function(t) {
                                        var n = ua(t);
                                        return function(r) {
                                            return Pe(r, t, n)
                                        }
                                    }(Re(t, h))
                                }
                                ,
                                ve.constant = Sa,
                                ve.countBy = Uo,
                                ve.create = function(t, n) {
                                    var r = de(t);
                                    return null == n ? r : Te(r, n)
                                }
                                ,
                                ve.curry = function t(n, r, e) {
                                    var i = Au(n, b, u, u, u, u, u, r = e ? u : r);
                                    return i.placeholder = t.placeholder,
                                    i
                                }
                                ,
                                ve.curryRight = function t(n, r, e) {
                                    var i = Au(n, w, u, u, u, u, u, r = e ? u : r);
                                    return i.placeholder = t.placeholder,
                                    i
                                }
                                ,
                                ve.debounce = uf,
                                ve.defaults = Xf,
                                ve.defaultsDeep = Qf,
                                ve.defer = of,
                                ve.delay = ff,
                                ve.difference = ho,
                                ve.differenceBy = po,
                                ve.differenceWith = vo,
                                ve.drop = function(t, n, r) {
                                    var e = null == t ? 0 : t.length;
                                    return e ? Ii(t, (n = r || n === u ? 1 : Uf(n)) < 0 ? 0 : n, e) : []
                                }
                                ,
                                ve.dropRight = function(t, n, r) {
                                    var e = null == t ? 0 : t.length;
                                    return e ? Ii(t, 0, (n = e - (n = r || n === u ? 1 : Uf(n))) < 0 ? 0 : n) : []
                                }
                                ,
                                ve.dropRightWhile = function(t, n) {
                                    return t && t.length ? Mi(t, Ru(n, 3), !0, !0) : []
                                }
                                ,
                                ve.dropWhile = function(t, n) {
                                    return t && t.length ? Mi(t, Ru(n, 3), !0) : []
                                }
                                ,
                                ve.fill = function(t, n, r, e) {
                                    var i = null == t ? 0 : t.length;
                                    return i ? (r && "number" != typeof r && Vu(t, n, r) && (r = 0,
                                    e = i),
                                    function(t, n, r, e) {
                                        var i = t.length;
                                        for ((r = Uf(r)) < 0 && (r = -r > i ? 0 : i + r),
                                        (e = e === u || e > i ? i : Uf(e)) < 0 && (e += i),
                                        e = r > e ? 0 : qf(e); r < e; )
                                            t[r++] = n;
                                        return t
                                    }(t, n, r, e)) : []
                                }
                                ,
                                ve.filter = function(t, n) {
                                    return (yf(t) ? Gn : Fe)(t, Ru(n, 3))
                                }
                                ,
                                ve.flatMap = function(t, n) {
                                    return Ze(Ko(t, n), 1)
                                }
                                ,
                                ve.flatMapDeep = function(t, n) {
                                    return Ze(Ko(t, n), z)
                                }
                                ,
                                ve.flatMapDepth = function(t, n, r) {
                                    return r = r === u ? 1 : Uf(r),
                                    Ze(Ko(t, n), r)
                                }
                                ,
                                ve.flatten = yo,
                                ve.flattenDeep = function(t) {
                                    return null != t && t.length ? Ze(t, z) : []
                                }
                                ,
                                ve.flattenDepth = function(t, n) {
                                    return null != t && t.length ? Ze(t, n = n === u ? 1 : Uf(n)) : []
                                }
                                ,
                                ve.flip = function(t) {
                                    return Au(t, $)
                                }
                                ,
                                ve.flow = Ca,
                                ve.flowRight = ka,
                                ve.fromPairs = function(t) {
                                    for (var n = -1, r = null == t ? 0 : t.length, e = {}; ++n < r; ) {
                                        var i = t[n];
                                        e[i[0]] = i[1]
                                    }
                                    return e
                                }
                                ,
                                ve.functions = function(t) {
                                    return null == t ? [] : Ke(t, ua(t))
                                }
                                ,
                                ve.functionsIn = function(t) {
                                    return null == t ? [] : Ke(t, oa(t))
                                }
                                ,
                                ve.groupBy = Vo,
                                ve.initial = function(t) {
                                    return null != t && t.length ? Ii(t, 0, -1) : []
                                }
                                ,
                                ve.intersection = bo,
                                ve.intersectionBy = wo,
                                ve.intersectionWith = xo,
                                ve.invert = ra,
                                ve.invertBy = ea,
                                ve.invokeMap = Yo,
                                ve.iteratee = Ta,
                                ve.keyBy = Jo,
                                ve.keys = ua,
                                ve.keysIn = oa,
                                ve.map = Ko,
                                ve.mapKeys = function(t, n) {
                                    var r = {};
                                    return n = Ru(n, 3),
                                    Ye(t, function(t, e, i) {
                                        ze(r, n(t, e, i), t)
                                    }),
                                    r
                                }
                                ,
                                ve.mapValues = function(t, n) {
                                    var r = {};
                                    return n = Ru(n, 3),
                                    Ye(t, function(t, e, i) {
                                        ze(r, e, n(t, e, i))
                                    }),
                                    r
                                }
                                ,
                                ve.matches = function(t) {
                                    return vi(Re(t, h))
                                }
                                ,
                                ve.matchesProperty = function(t, n) {
                                    return di(t, Re(n, h))
                                }
                                ,
                                ve.memoize = af,
                                ve.merge = fa,
                                ve.mergeWith = aa,
                                ve.method = za,
                                ve.methodOf = La,
                                ve.mixin = Na,
                                ve.negate = cf,
                                ve.nthArg = function(t) {
                                    return t = Uf(t),
                                    ji(function(n) {
                                        return _i(n, t)
                                    })
                                }
                                ,
                                ve.omit = ca,
                                ve.omitBy = function(t, n) {
                                    return la(t, cf(Ru(n)))
                                }
                                ,
                                ve.once = function(t) {
                                    return nf(2, t)
                                }
                                ,
                                ve.orderBy = function(t, n, r, e) {
                                    return null == t ? [] : (yf(n) || (n = null == n ? [] : [n]),
                                    yf(r = e ? u : r) || (r = null == r ? [] : [r]),
                                    yi(t, n, r))
                                }
                                ,
                                ve.over = Pa,
                                ve.overArgs = sf,
                                ve.overEvery = Ba,
                                ve.overSome = Da,
                                ve.partial = lf,
                                ve.partialRight = hf,
                                ve.partition = Go,
                                ve.pick = sa,
                                ve.pickBy = la,
                                ve.property = Wa,
                                ve.propertyOf = function(t) {
                                    return function(n) {
                                        return null == t ? u : Ge(t, n)
                                    }
                                }
                                ,
                                ve.pull = jo,
                                ve.pullAll = Ao,
                                ve.pullAllBy = function(t, n, r) {
                                    return t && t.length && n && n.length ? bi(t, n, Ru(r, 2)) : t
                                }
                                ,
                                ve.pullAllWith = function(t, n, r) {
                                    return t && t.length && n && n.length ? bi(t, n, u, r) : t
                                }
                                ,
                                ve.pullAt = $o,
                                ve.range = Ma,
                                ve.rangeRight = Ua,
                                ve.rearg = pf,
                                ve.reject = function(t, n) {
                                    return (yf(t) ? Gn : Fe)(t, cf(Ru(n, 3)))
                                }
                                ,
                                ve.remove = function(t, n) {
                                    var r = [];
                                    if (!t || !t.length)
                                        return r;
                                    var e = -1
                                      , i = []
                                      , u = t.length;
                                    for (n = Ru(n, 3); ++e < u; ) {
                                        var o = t[e];
                                        n(o, e, t) && (r.push(o),
                                        i.push(e))
                                    }
                                    return wi(t, i),
                                    r
                                }
                                ,
                                ve.rest = function(t, n) {
                                    if ("function" != typeof t)
                                        throw new un(a);
                                    return ji(t, n = n === u ? n : Uf(n))
                                }
                                ,
                                ve.reverse = Oo,
                                ve.sampleSize = function(t, n, r) {
                                    return n = (r ? Vu(t, n, r) : n === u) ? 1 : Uf(n),
                                    (yf(t) ? $e : $i)(t, n)
                                }
                                ,
                                ve.set = function(t, n, r) {
                                    return null == t ? t : Oi(t, n, r)
                                }
                                ,
                                ve.setWith = function(t, n, r, e) {
                                    return e = "function" == typeof e ? e : u,
                                    null == t ? t : Oi(t, n, r, e)
                                }
                                ,
                                ve.shuffle = function(t) {
                                    return (yf(t) ? Oe : ki)(t)
                                }
                                ,
                                ve.slice = function(t, n, r) {
                                    var e = null == t ? 0 : t.length;
                                    return e ? (r && "number" != typeof r && Vu(t, n, r) ? (n = 0,
                                    r = e) : (n = null == n ? 0 : Uf(n),
                                    r = r === u ? e : Uf(r)),
                                    Ii(t, n, r)) : []
                                }
                                ,
                                ve.sortBy = Xo,
                                ve.sortedUniq = function(t) {
                                    return t && t.length ? Ni(t) : []
                                }
                                ,
                                ve.sortedUniqBy = function(t, n) {
                                    return t && t.length ? Ni(t, Ru(n, 2)) : []
                                }
                                ,
                                ve.split = function(t, n, r) {
                                    return r && "number" != typeof r && Vu(t, n, r) && (n = r = u),
                                    (r = r === u ? P : r >>> 0) ? (t = Hf(t)) && ("string" == typeof n || null != n && !zf(n)) && !(n = Pi(n)) && Ar(t) ? Ji(zr(t), 0, r) : t.split(n, r) : []
                                }
                                ,
                                ve.spread = function(t, n) {
                                    if ("function" != typeof t)
                                        throw new un(a);
                                    return n = null == n ? 0 : Hr(Uf(n), 0),
                                    ji(function(r) {
                                        var e = r[n]
                                          , i = Ji(r, 0, n);
                                        return e && nr(i, e),
                                        Hn(t, this, i)
                                    })
                                }
                                ,
                                ve.tail = function(t) {
                                    var n = null == t ? 0 : t.length;
                                    return n ? Ii(t, 1, n) : []
                                }
                                ,
                                ve.take = function(t, n, r) {
                                    return t && t.length ? Ii(t, 0, (n = r || n === u ? 1 : Uf(n)) < 0 ? 0 : n) : []
                                }
                                ,
                                ve.takeRight = function(t, n, r) {
                                    var e = null == t ? 0 : t.length;
                                    return e ? Ii(t, (n = e - (n = r || n === u ? 1 : Uf(n))) < 0 ? 0 : n, e) : []
                                }
                                ,
                                ve.takeRightWhile = function(t, n) {
                                    return t && t.length ? Mi(t, Ru(n, 3), !1, !0) : []
                                }
                                ,
                                ve.takeWhile = function(t, n) {
                                    return t && t.length ? Mi(t, Ru(n, 3)) : []
                                }
                                ,
                                ve.tap = function(t, n) {
                                    return n(t),
                                    t
                                }
                                ,
                                ve.throttle = function(t, n, r) {
                                    var e = !0
                                      , i = !0;
                                    if ("function" != typeof t)
                                        throw new un(a);
                                    return Sf(r) && (e = "leading"in r ? !!r.leading : e,
                                    i = "trailing"in r ? !!r.trailing : i),
                                    uf(t, n, {
                                        leading: e,
                                        maxWait: n,
                                        trailing: i
                                    })
                                }
                                ,
                                ve.thru = Wo,
                                ve.toArray = Wf,
                                ve.toPairs = ha,
                                ve.toPairsIn = pa,
                                ve.toPath = function(t) {
                                    return yf(t) ? tr(t, co) : Rf(t) ? [t] : eu(ao(Hf(t)))
                                }
                                ,
                                ve.toPlainObject = Zf,
                                ve.transform = function(t, n, r) {
                                    var e = yf(t)
                                      , i = e || xf(t) || Pf(t);
                                    if (n = Ru(n, 4),
                                    null == r) {
                                        var u = t && t.constructor;
                                        r = i ? e ? new u : [] : Sf(t) && Af(u) ? de(Tn(t)) : {}
                                    }
                                    return (i ? Yn : Ye)(t, function(t, e, i) {
                                        return n(r, t, e, i)
                                    }),
                                    r
                                }
                                ,
                                ve.unary = function(t) {
                                    return tf(t, 1)
                                }
                                ,
                                ve.union = So,
                                ve.unionBy = Co,
                                ve.unionWith = ko,
                                ve.uniq = function(t) {
                                    return t && t.length ? Bi(t) : []
                                }
                                ,
                                ve.uniqBy = function(t, n) {
                                    return t && t.length ? Bi(t, Ru(n, 2)) : []
                                }
                                ,
                                ve.uniqWith = function(t, n) {
                                    return n = "function" == typeof n ? n : u,
                                    t && t.length ? Bi(t, u, n) : []
                                }
                                ,
                                ve.unset = function(t, n) {
                                    return null == t || Di(t, n)
                                }
                                ,
                                ve.unzip = Io,
                                ve.unzipWith = To,
                                ve.update = function(t, n, r) {
                                    return null == t ? t : Wi(t, n, Hi(r))
                                }
                                ,
                                ve.updateWith = function(t, n, r, e) {
                                    return e = "function" == typeof e ? e : u,
                                    null == t ? t : Wi(t, n, Hi(r), e)
                                }
                                ,
                                ve.values = va,
                                ve.valuesIn = function(t) {
                                    return null == t ? [] : yr(t, oa(t))
                                }
                                ,
                                ve.without = zo,
                                ve.words = Aa,
                                ve.wrap = function(t, n) {
                                    return lf(Hi(n), t)
                                }
                                ,
                                ve.xor = Lo,
                                ve.xorBy = No,
                                ve.xorWith = Ro,
                                ve.zip = Po,
                                ve.zipObject = function(t, n) {
                                    return Fi(t || [], n || [], Ce)
                                }
                                ,
                                ve.zipObjectDeep = function(t, n) {
                                    return Fi(t || [], n || [], Oi)
                                }
                                ,
                                ve.zipWith = Bo,
                                ve.entries = ha,
                                ve.entriesIn = pa,
                                ve.extend = Yf,
                                ve.extendWith = Jf,
                                Na(ve, ve),
                                ve.add = Za,
                                ve.attempt = $a,
                                ve.camelCase = da,
                                ve.capitalize = ga,
                                ve.ceil = Ha,
                                ve.clamp = function(t, n, r) {
                                    return r === u && (r = n,
                                    n = u),
                                    r !== u && (r = (r = Ff(r)) == r ? r : 0),
                                    n !== u && (n = (n = Ff(n)) == n ? n : 0),
                                    Ne(Ff(t), n, r)
                                }
                                ,
                                ve.clone = function(t) {
                                    return Re(t, v)
                                }
                                ,
                                ve.cloneDeep = function(t) {
                                    return Re(t, h | v)
                                }
                                ,
                                ve.cloneDeepWith = function(t, n) {
                                    return Re(t, h | v, n = "function" == typeof n ? n : u)
                                }
                                ,
                                ve.cloneWith = function(t, n) {
                                    return Re(t, v, n = "function" == typeof n ? n : u)
                                }
                                ,
                                ve.conformsTo = function(t, n) {
                                    return null == n || Pe(t, n, ua(n))
                                }
                                ,
                                ve.deburr = _a,
                                ve.defaultTo = function(t, n) {
                                    return null == t || t != t ? n : t
                                }
                                ,
                                ve.divide = Va,
                                ve.endsWith = function(t, n, r) {
                                    t = Hf(t),
                                    n = Pi(n);
                                    var e = t.length
                                      , i = r = r === u ? e : Ne(Uf(r), 0, e);
                                    return (r -= n.length) >= 0 && t.slice(r, i) == n
                                }
                                ,
                                ve.eq = vf,
                                ve.escape = function(t) {
                                    return (t = Hf(t)) && At.test(t) ? t.replace(Et, Er) : t
                                }
                                ,
                                ve.escapeRegExp = function(t) {
                                    return (t = Hf(t)) && zt.test(t) ? t.replace(Tt, "\\$&") : t
                                }
                                ,
                                ve.every = function(t, n, r) {
                                    var e = yf(t) ? Kn : Ue;
                                    return r && Vu(t, n, r) && (n = u),
                                    e(t, Ru(n, 3))
                                }
                                ,
                                ve.find = qo,
                                ve.findIndex = go,
                                ve.findKey = function(t, n) {
                                    return or(t, Ru(n, 3), Ye)
                                }
                                ,
                                ve.findLast = Fo,
                                ve.findLastIndex = _o,
                                ve.findLastKey = function(t, n) {
                                    return or(t, Ru(n, 3), Je)
                                }
                                ,
                                ve.floor = Ya,
                                ve.forEach = Zo,
                                ve.forEachRight = Ho,
                                ve.forIn = function(t, n) {
                                    return null == t ? t : He(t, Ru(n, 3), oa)
                                }
                                ,
                                ve.forInRight = function(t, n) {
                                    return null == t ? t : Ve(t, Ru(n, 3), oa)
                                }
                                ,
                                ve.forOwn = function(t, n) {
                                    return t && Ye(t, Ru(n, 3))
                                }
                                ,
                                ve.forOwnRight = function(t, n) {
                                    return t && Je(t, Ru(n, 3))
                                }
                                ,
                                ve.get = ta,
                                ve.gt = df,
                                ve.gte = gf,
                                ve.has = function(t, n) {
                                    return null != t && qu(t, n, ni)
                                }
                                ,
                                ve.hasIn = na,
                                ve.head = mo,
                                ve.identity = Ia,
                                ve.includes = function(t, n, r, e) {
                                    t = bf(t) ? t : va(t),
                                    r = r && !e ? Uf(r) : 0;
                                    var i = t.length;
                                    return r < 0 && (r = Hr(i + r, 0)),
                                    Nf(t) ? r <= i && t.indexOf(n, r) > -1 : !!i && ar(t, n, r) > -1
                                }
                                ,
                                ve.indexOf = function(t, n, r) {
                                    var e = null == t ? 0 : t.length;
                                    if (!e)
                                        return -1;
                                    var i = null == r ? 0 : Uf(r);
                                    return i < 0 && (i = Hr(e + i, 0)),
                                    ar(t, n, i)
                                }
                                ,
                                ve.inRange = function(t, n, r) {
                                    return n = Mf(n),
                                    r === u ? (r = n,
                                    n = 0) : r = Mf(r),
                                    function(t, n, r) {
                                        return t >= Vr(n, r) && t < Hr(n, r)
                                    }(t = Ff(t), n, r)
                                }
                                ,
                                ve.invoke = ia,
                                ve.isArguments = _f,
                                ve.isArray = yf,
                                ve.isArrayBuffer = mf,
                                ve.isArrayLike = bf,
                                ve.isArrayLikeObject = wf,
                                ve.isBoolean = function(t) {
                                    return !0 === t || !1 === t || Cf(t) && Qe(t) == F
                                }
                                ,
                                ve.isBuffer = xf,
                                ve.isDate = Ef,
                                ve.isElement = function(t) {
                                    return Cf(t) && 1 === t.nodeType && !Tf(t)
                                }
                                ,
                                ve.isEmpty = function(t) {
                                    if (null == t)
                                        return !0;
                                    if (bf(t) && (yf(t) || "string" == typeof t || "function" == typeof t.splice || xf(t) || Pf(t) || _f(t)))
                                        return !t.length;
                                    var n = Uu(t);
                                    if (n == K || n == rt)
                                        return !t.size;
                                    if (Gu(t))
                                        return !si(t).length;
                                    for (var r in t)
                                        if (ln.call(t, r))
                                            return !1;
                                    return !0
                                }
                                ,
                                ve.isEqual = function(t, n) {
                                    return oi(t, n)
                                }
                                ,
                                ve.isEqualWith = function(t, n, r) {
                                    var e = (r = "function" == typeof r ? r : u) ? r(t, n) : u;
                                    return e === u ? oi(t, n, u, r) : !!e
                                }
                                ,
                                ve.isError = jf,
                                ve.isFinite = function(t) {
                                    return "number" == typeof t && qr(t)
                                }
                                ,
                                ve.isFunction = Af,
                                ve.isInteger = $f,
                                ve.isLength = Of,
                                ve.isMap = kf,
                                ve.isMatch = function(t, n) {
                                    return t === n || fi(t, n, Bu(n))
                                }
                                ,
                                ve.isMatchWith = function(t, n, r) {
                                    return r = "function" == typeof r ? r : u,
                                    fi(t, n, Bu(n), r)
                                }
                                ,
                                ve.isNaN = function(t) {
                                    return If(t) && t != +t
                                }
                                ,
                                ve.isNative = function(t) {
                                    if (Ku(t))
                                        throw new Xt(f);
                                    return ai(t)
                                }
                                ,
                                ve.isNil = function(t) {
                                    return null == t
                                }
                                ,
                                ve.isNull = function(t) {
                                    return null === t
                                }
                                ,
                                ve.isNumber = If,
                                ve.isObject = Sf,
                                ve.isObjectLike = Cf,
                                ve.isPlainObject = Tf,
                                ve.isRegExp = zf,
                                ve.isSafeInteger = function(t) {
                                    return $f(t) && t >= -L && t <= L
                                }
                                ,
                                ve.isSet = Lf,
                                ve.isString = Nf,
                                ve.isSymbol = Rf,
                                ve.isTypedArray = Pf,
                                ve.isUndefined = function(t) {
                                    return t === u
                                }
                                ,
                                ve.isWeakMap = function(t) {
                                    return Cf(t) && Uu(t) == ot
                                }
                                ,
                                ve.isWeakSet = function(t) {
                                    return Cf(t) && Qe(t) == ft
                                }
                                ,
                                ve.join = function(t, n) {
                                    return null == t ? "" : Fr.call(t, n)
                                }
                                ,
                                ve.kebabCase = ya,
                                ve.last = Eo,
                                ve.lastIndexOf = function(t, n, r) {
                                    var e = null == t ? 0 : t.length;
                                    if (!e)
                                        return -1;
                                    var i = e;
                                    return r !== u && (i = (i = Uf(r)) < 0 ? Hr(e + i, 0) : Vr(i, e - 1)),
                                    n == n ? function(t, n, r) {
                                        for (var e = r + 1; e--; )
                                            if (t[e] === n)
                                                return e;
                                        return e
                                    }(t, n, i) : fr(t, sr, i, !0)
                                }
                                ,
                                ve.lowerCase = ma,
                                ve.lowerFirst = ba,
                                ve.lt = Bf,
                                ve.lte = Df,
                                ve.max = function(t) {
                                    return t && t.length ? qe(t, Ia, ti) : u
                                }
                                ,
                                ve.maxBy = function(t, n) {
                                    return t && t.length ? qe(t, Ru(n, 2), ti) : u
                                }
                                ,
                                ve.mean = function(t) {
                                    return lr(t, Ia)
                                }
                                ,
                                ve.meanBy = function(t, n) {
                                    return lr(t, Ru(n, 2))
                                }
                                ,
                                ve.min = function(t) {
                                    return t && t.length ? qe(t, Ia, hi) : u
                                }
                                ,
                                ve.minBy = function(t, n) {
                                    return t && t.length ? qe(t, Ru(n, 2), hi) : u
                                }
                                ,
                                ve.stubArray = qa,
                                ve.stubFalse = Fa,
                                ve.stubObject = function() {
                                    return {}
                                }
                                ,
                                ve.stubString = function() {
                                    return ""
                                }
                                ,
                                ve.stubTrue = function() {
                                    return !0
                                }
                                ,
                                ve.multiply = Ka,
                                ve.nth = function(t, n) {
                                    return t && t.length ? _i(t, Uf(n)) : u
                                }
                                ,
                                ve.noConflict = function() {
                                    return Ln._ === this && (Ln._ = gn),
                                    this
                                }
                                ,
                                ve.noop = Ra,
                                ve.now = Qo,
                                ve.pad = function(t, n, r) {
                                    t = Hf(t);
                                    var e = (n = Uf(n)) ? Tr(t) : 0;
                                    if (!n || e >= n)
                                        return t;
                                    var i = (n - e) / 2;
                                    return yu(Wr(i), r) + t + yu(Dr(i), r)
                                }
                                ,
                                ve.padEnd = function(t, n, r) {
                                    t = Hf(t);
                                    var e = (n = Uf(n)) ? Tr(t) : 0;
                                    return n && e < n ? t + yu(n - e, r) : t
                                }
                                ,
                                ve.padStart = function(t, n, r) {
                                    t = Hf(t);
                                    var e = (n = Uf(n)) ? Tr(t) : 0;
                                    return n && e < n ? yu(n - e, r) + t : t
                                }
                                ,
                                ve.parseInt = function(t, n, r) {
                                    return r || null == n ? n = 0 : n && (n = +n),
                                    Jr(Hf(t).replace(Nt, ""), n || 0)
                                }
                                ,
                                ve.random = function(t, n, r) {
                                    if (r && "boolean" != typeof r && Vu(t, n, r) && (n = r = u),
                                    r === u && ("boolean" == typeof n ? (r = n,
                                    n = u) : "boolean" == typeof t && (r = t,
                                    t = u)),
                                    t === u && n === u ? (t = 0,
                                    n = 1) : (t = Mf(t),
                                    n === u ? (n = t,
                                    t = 0) : n = Mf(n)),
                                    t > n) {
                                        var e = t;
                                        t = n,
                                        n = e
                                    }
                                    if (r || t % 1 || n % 1) {
                                        var i = Kr();
                                        return Vr(t + i * (n - t + kn("1e-" + ((i + "").length - 1))), n)
                                    }
                                    return xi(t, n)
                                }
                                ,
                                ve.reduce = function(t, n, r) {
                                    var e = yf(t) ? rr : vr
                                      , i = arguments.length < 3;
                                    return e(t, Ru(n, 4), r, i, We)
                                }
                                ,
                                ve.reduceRight = function(t, n, r) {
                                    var e = yf(t) ? er : vr
                                      , i = arguments.length < 3;
                                    return e(t, Ru(n, 4), r, i, Me)
                                }
                                ,
                                ve.repeat = function(t, n, r) {
                                    return n = (r ? Vu(t, n, r) : n === u) ? 1 : Uf(n),
                                    Ei(Hf(t), n)
                                }
                                ,
                                ve.replace = function() {
                                    var t = arguments
                                      , n = Hf(t[0]);
                                    return t.length < 3 ? n : n.replace(t[1], t[2])
                                }
                                ,
                                ve.result = function(t, n, r) {
                                    var e = -1
                                      , i = (n = Vi(n, t)).length;
                                    for (i || (i = 1,
                                    t = u); ++e < i; ) {
                                        var o = null == t ? u : t[co(n[e])];
                                        o === u && (e = i,
                                        o = r),
                                        t = Af(o) ? o.call(t) : o
                                    }
                                    return t
                                }
                                ,
                                ve.round = Ga,
                                ve.runInContext = t,
                                ve.sample = function(t) {
                                    return (yf(t) ? Ae : Ai)(t)
                                }
                                ,
                                ve.size = function(t) {
                                    if (null == t)
                                        return 0;
                                    if (bf(t))
                                        return Nf(t) ? Tr(t) : t.length;
                                    var n = Uu(t);
                                    return n == K || n == rt ? t.size : si(t).length
                                }
                                ,
                                ve.snakeCase = wa,
                                ve.some = function(t, n, r) {
                                    var e = yf(t) ? ir : Ti;
                                    return r && Vu(t, n, r) && (n = u),
                                    e(t, Ru(n, 3))
                                }
                                ,
                                ve.sortedIndex = function(t, n) {
                                    return zi(t, n)
                                }
                                ,
                                ve.sortedIndexBy = function(t, n, r) {
                                    return Li(t, n, Ru(r, 2))
                                }
                                ,
                                ve.sortedIndexOf = function(t, n) {
                                    var r = null == t ? 0 : t.length;
                                    if (r) {
                                        var e = zi(t, n);
                                        if (e < r && vf(t[e], n))
                                            return e
                                    }
                                    return -1
                                }
                                ,
                                ve.sortedLastIndex = function(t, n) {
                                    return zi(t, n, !0)
                                }
                                ,
                                ve.sortedLastIndexBy = function(t, n, r) {
                                    return Li(t, n, Ru(r, 2), !0)
                                }
                                ,
                                ve.sortedLastIndexOf = function(t, n) {
                                    if (null != t && t.length) {
                                        var r = zi(t, n, !0) - 1;
                                        if (vf(t[r], n))
                                            return r
                                    }
                                    return -1
                                }
                                ,
                                ve.startCase = xa,
                                ve.startsWith = function(t, n, r) {
                                    return t = Hf(t),
                                    r = null == r ? 0 : Ne(Uf(r), 0, t.length),
                                    n = Pi(n),
                                    t.slice(r, r + n.length) == n
                                }
                                ,
                                ve.subtract = Xa,
                                ve.sum = function(t) {
                                    return t && t.length ? dr(t, Ia) : 0
                                }
                                ,
                                ve.sumBy = function(t, n) {
                                    return t && t.length ? dr(t, Ru(n, 2)) : 0
                                }
                                ,
                                ve.template = function(t, n, r) {
                                    var e = ve.templateSettings;
                                    r && Vu(t, n, r) && (n = u),
                                    t = Hf(t),
                                    n = Jf({}, n, e, $u);
                                    var i, o, f = Jf({}, n.imports, e.imports, $u), a = ua(f), c = yr(f, a), s = 0, l = n.interpolate || Kt, h = "__p += '", p = rn((n.escape || Kt).source + "|" + l.source + "|" + (l === St ? Ut : Kt).source + "|" + (n.evaluate || Kt).source + "|$", "g"), v = "//# sourceURL=" + ("sourceURL"in n ? n.sourceURL : "lodash.templateSources[" + ++$n + "]") + "\n";
                                    t.replace(p, function(n, r, e, u, f, a) {
                                        return e || (e = u),
                                        h += t.slice(s, a).replace(Gt, jr),
                                        r && (i = !0,
                                        h += "' +\n__e(" + r + ") +\n'"),
                                        f && (o = !0,
                                        h += "';\n" + f + ";\n__p += '"),
                                        e && (h += "' +\n((__t = (" + e + ")) == null ? '' : __t) +\n'"),
                                        s = a + n.length,
                                        n
                                    }),
                                    h += "';\n";
                                    var d = n.variable;
                                    d || (h = "with (obj) {\n" + h + "\n}\n"),
                                    h = (o ? h.replace(mt, "") : h).replace(bt, "$1").replace(wt, "$1;"),
                                    h = "function(" + (d || "obj") + ") {\n" + (d ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (i ? ", __e = _.escape" : "") + (o ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + h + "return __p\n}";
                                    var g = $a(function() {
                                        return Qt(a, v + "return " + h).apply(u, c)
                                    });
                                    if (g.source = h,
                                    jf(g))
                                        throw g;
                                    return g
                                }
                                ,
                                ve.times = function(t, n) {
                                    if ((t = Uf(t)) < 1 || t > L)
                                        return [];
                                    var r = P
                                      , e = Vr(t, P);
                                    n = Ru(n),
                                    t -= P;
                                    for (var i = gr(e, n); ++r < t; )
                                        n(r);
                                    return i
                                }
                                ,
                                ve.toFinite = Mf,
                                ve.toInteger = Uf,
                                ve.toLength = qf,
                                ve.toLower = function(t) {
                                    return Hf(t).toLowerCase()
                                }
                                ,
                                ve.toNumber = Ff,
                                ve.toSafeInteger = function(t) {
                                    return t ? Ne(Uf(t), -L, L) : 0 === t ? t : 0
                                }
                                ,
                                ve.toString = Hf,
                                ve.toUpper = function(t) {
                                    return Hf(t).toUpperCase()
                                }
                                ,
                                ve.trim = function(t, n, r) {
                                    if ((t = Hf(t)) && (r || n === u))
                                        return t.replace(Lt, "");
                                    if (!t || !(n = Pi(n)))
                                        return t;
                                    var e = zr(t)
                                      , i = zr(n);
                                    return Ji(e, br(e, i), wr(e, i) + 1).join("")
                                }
                                ,
                                ve.trimEnd = function(t, n, r) {
                                    if ((t = Hf(t)) && (r || n === u))
                                        return t.replace(Rt, "");
                                    if (!t || !(n = Pi(n)))
                                        return t;
                                    var e = zr(t);
                                    return Ji(e, 0, wr(e, zr(n)) + 1).join("")
                                }
                                ,
                                ve.trimStart = function(t, n, r) {
                                    if ((t = Hf(t)) && (r || n === u))
                                        return t.replace(Nt, "");
                                    if (!t || !(n = Pi(n)))
                                        return t;
                                    var e = zr(t);
                                    return Ji(e, br(e, zr(n))).join("")
                                }
                                ,
                                ve.truncate = function(t, n) {
                                    var r = O
                                      , e = S;
                                    if (Sf(n)) {
                                        var i = "separator"in n ? n.separator : i;
                                        r = "length"in n ? Uf(n.length) : r,
                                        e = "omission"in n ? Pi(n.omission) : e
                                    }
                                    var o = (t = Hf(t)).length;
                                    if (Ar(t)) {
                                        var f = zr(t);
                                        o = f.length
                                    }
                                    if (r >= o)
                                        return t;
                                    var a = r - Tr(e);
                                    if (a < 1)
                                        return e;
                                    var c = f ? Ji(f, 0, a).join("") : t.slice(0, a);
                                    if (i === u)
                                        return c + e;
                                    if (f && (a += c.length - a),
                                    zf(i)) {
                                        if (t.slice(a).search(i)) {
                                            var s, l = c;
                                            for (i.global || (i = rn(i.source, Hf(qt.exec(i)) + "g")),
                                            i.lastIndex = 0; s = i.exec(l); )
                                                var h = s.index;
                                            c = c.slice(0, h === u ? a : h)
                                        }
                                    } else if (t.indexOf(Pi(i), a) != a) {
                                        var p = c.lastIndexOf(i);
                                        p > -1 && (c = c.slice(0, p))
                                    }
                                    return c + e
                                }
                                ,
                                ve.unescape = function(t) {
                                    return (t = Hf(t)) && jt.test(t) ? t.replace(xt, Lr) : t
                                }
                                ,
                                ve.uniqueId = function(t) {
                                    var n = ++hn;
                                    return Hf(t) + n
                                }
                                ,
                                ve.upperCase = Ea,
                                ve.upperFirst = ja,
                                ve.each = Zo,
                                ve.eachRight = Ho,
                                ve.first = mo,
                                Na(ve, (Ja = {},
                                Ye(ve, function(t, n) {
                                    ln.call(ve.prototype, n) || (Ja[n] = t)
                                }),
                                Ja), {
                                    chain: !1
                                }),
                                ve.VERSION = "4.17.10",
                                Yn(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(t) {
                                    ve[t].placeholder = ve
                                }),
                                Yn(["drop", "take"], function(t, n) {
                                    ye.prototype[t] = function(r) {
                                        r = r === u ? 1 : Hr(Uf(r), 0);
                                        var e = this.__filtered__ && !n ? new ye(this) : this.clone();
                                        return e.__filtered__ ? e.__takeCount__ = Vr(r, e.__takeCount__) : e.__views__.push({
                                            size: Vr(r, P),
                                            type: t + (e.__dir__ < 0 ? "Right" : "")
                                        }),
                                        e
                                    }
                                    ,
                                    ye.prototype[t + "Right"] = function(n) {
                                        return this.reverse()[t](n).reverse()
                                    }
                                }),
                                Yn(["filter", "map", "takeWhile"], function(t, n) {
                                    var r = n + 1
                                      , e = r == I || 3 == r;
                                    ye.prototype[t] = function(t) {
                                        var n = this.clone();
                                        return n.__iteratees__.push({
                                            iteratee: Ru(t, 3),
                                            type: r
                                        }),
                                        n.__filtered__ = n.__filtered__ || e,
                                        n
                                    }
                                }),
                                Yn(["head", "last"], function(t, n) {
                                    var r = "take" + (n ? "Right" : "");
                                    ye.prototype[t] = function() {
                                        return this[r](1).value()[0]
                                    }
                                }),
                                Yn(["initial", "tail"], function(t, n) {
                                    var r = "drop" + (n ? "" : "Right");
                                    ye.prototype[t] = function() {
                                        return this.__filtered__ ? new ye(this) : this[r](1)
                                    }
                                }),
                                ye.prototype.compact = function() {
                                    return this.filter(Ia)
                                }
                                ,
                                ye.prototype.find = function(t) {
                                    return this.filter(t).head()
                                }
                                ,
                                ye.prototype.findLast = function(t) {
                                    return this.reverse().find(t)
                                }
                                ,
                                ye.prototype.invokeMap = ji(function(t, n) {
                                    return "function" == typeof t ? new ye(this) : this.map(function(r) {
                                        return ii(r, t, n)
                                    })
                                }),
                                ye.prototype.reject = function(t) {
                                    return this.filter(cf(Ru(t)))
                                }
                                ,
                                ye.prototype.slice = function(t, n) {
                                    t = Uf(t);
                                    var r = this;
                                    return r.__filtered__ && (t > 0 || n < 0) ? new ye(r) : (t < 0 ? r = r.takeRight(-t) : t && (r = r.drop(t)),
                                    n !== u && (r = (n = Uf(n)) < 0 ? r.dropRight(-n) : r.take(n - t)),
                                    r)
                                }
                                ,
                                ye.prototype.takeRightWhile = function(t) {
                                    return this.reverse().takeWhile(t).reverse()
                                }
                                ,
                                ye.prototype.toArray = function() {
                                    return this.take(P)
                                }
                                ,
                                Ye(ye.prototype, function(t, n) {
                                    var r = /^(?:filter|find|map|reject)|While$/.test(n)
                                      , e = /^(?:head|last)$/.test(n)
                                      , i = ve[e ? "take" + ("last" == n ? "Right" : "") : n]
                                      , o = e || /^find/.test(n);
                                    i && (ve.prototype[n] = function() {
                                        var n = this.__wrapped__
                                          , f = e ? [1] : arguments
                                          , a = n instanceof ye
                                          , c = f[0]
                                          , s = a || yf(n)
                                          , l = function(t) {
                                            var n = i.apply(ve, nr([t], f));
                                            return e && h ? n[0] : n
                                        };
                                        s && r && "function" == typeof c && 1 != c.length && (a = s = !1);
                                        var h = this.__chain__
                                          , p = !!this.__actions__.length
                                          , v = o && !h
                                          , d = a && !p;
                                        if (!o && s) {
                                            n = d ? n : new ye(this);
                                            var g = t.apply(n, f);
                                            return g.__actions__.push({
                                                func: Wo,
                                                args: [l],
                                                thisArg: u
                                            }),
                                            new _e(g,h)
                                        }
                                        return v && d ? t.apply(this, f) : (g = this.thru(l),
                                        v ? e ? g.value()[0] : g.value() : g)
                                    }
                                    )
                                }),
                                Yn(["pop", "push", "shift", "sort", "splice", "unshift"], function(t) {
                                    var n = on[t]
                                      , r = /^(?:push|sort|unshift)$/.test(t) ? "tap" : "thru"
                                      , e = /^(?:pop|shift)$/.test(t);
                                    ve.prototype[t] = function() {
                                        var t = arguments;
                                        if (e && !this.__chain__) {
                                            var i = this.value();
                                            return n.apply(yf(i) ? i : [], t)
                                        }
                                        return this[r](function(r) {
                                            return n.apply(yf(r) ? r : [], t)
                                        })
                                    }
                                }),
                                Ye(ye.prototype, function(t, n) {
                                    var r = ve[n];
                                    if (r) {
                                        var e = r.name + "";
                                        (ue[e] || (ue[e] = [])).push({
                                            name: n,
                                            func: r
                                        })
                                    }
                                }),
                                ue[vu(u, y).name] = [{
                                    name: "wrapper",
                                    func: u
                                }],
                                ye.prototype.clone = function() {
                                    var t = new ye(this.__wrapped__);
                                    return t.__actions__ = eu(this.__actions__),
                                    t.__dir__ = this.__dir__,
                                    t.__filtered__ = this.__filtered__,
                                    t.__iteratees__ = eu(this.__iteratees__),
                                    t.__takeCount__ = this.__takeCount__,
                                    t.__views__ = eu(this.__views__),
                                    t
                                }
                                ,
                                ye.prototype.reverse = function() {
                                    if (this.__filtered__) {
                                        var t = new ye(this);
                                        t.__dir__ = -1,
                                        t.__filtered__ = !0
                                    } else
                                        (t = this.clone()).__dir__ *= -1;
                                    return t
                                }
                                ,
                                ye.prototype.value = function() {
                                    var t = this.__wrapped__.value()
                                      , n = this.__dir__
                                      , r = yf(t)
                                      , e = n < 0
                                      , i = r ? t.length : 0
                                      , u = function(t, n, r) {
                                        for (var e = -1, i = r.length; ++e < i; ) {
                                            var u = r[e]
                                              , o = u.size;
                                            switch (u.type) {
                                            case "drop":
                                                t += o;
                                                break;
                                            case "dropRight":
                                                n -= o;
                                                break;
                                            case "take":
                                                n = Vr(n, t + o);
                                                break;
                                            case "takeRight":
                                                t = Hr(t, n - o)
                                            }
                                        }
                                        return {
                                            start: t,
                                            end: n
                                        }
                                    }(0, i, this.__views__)
                                      , o = u.start
                                      , f = u.end
                                      , a = f - o
                                      , c = e ? f : o - 1
                                      , s = this.__iteratees__
                                      , l = s.length
                                      , h = 0
                                      , p = Vr(a, this.__takeCount__);
                                    if (!r || !e && i == a && p == a)
                                        return Ui(t, this.__actions__);
                                    var v = [];
                                    t: for (; a-- && h < p; ) {
                                        for (var d = -1, g = t[c += n]; ++d < l; ) {
                                            var _ = s[d]
                                              , y = _.iteratee
                                              , m = _.type
                                              , b = y(g);
                                            if (m == T)
                                                g = b;
                                            else if (!b) {
                                                if (m == I)
                                                    continue t;
                                                break t
                                            }
                                        }
                                        v[h++] = g
                                    }
                                    return v
                                }
                                ,
                                ve.prototype.at = Mo,
                                ve.prototype.chain = function() {
                                    return Do(this)
                                }
                                ,
                                ve.prototype.commit = function() {
                                    return new _e(this.value(),this.__chain__)
                                }
                                ,
                                ve.prototype.next = function() {
                                    this.__values__ === u && (this.__values__ = Wf(this.value()));
                                    var t = this.__index__ >= this.__values__.length;
                                    return {
                                        done: t,
                                        value: t ? u : this.__values__[this.__index__++]
                                    }
                                }
                                ,
                                ve.prototype.plant = function(t) {
                                    for (var n, r = this; r instanceof ge; ) {
                                        var e = lo(r);
                                        e.__index__ = 0,
                                        e.__values__ = u,
                                        n ? i.__wrapped__ = e : n = e;
                                        var i = e;
                                        r = r.__wrapped__
                                    }
                                    return i.__wrapped__ = t,
                                    n
                                }
                                ,
                                ve.prototype.reverse = function() {
                                    var t = this.__wrapped__;
                                    if (t instanceof ye) {
                                        var n = t;
                                        return this.__actions__.length && (n = new ye(this)),
                                        (n = n.reverse()).__actions__.push({
                                            func: Wo,
                                            args: [Oo],
                                            thisArg: u
                                        }),
                                        new _e(n,this.__chain__)
                                    }
                                    return this.thru(Oo)
                                }
                                ,
                                ve.prototype.toJSON = ve.prototype.valueOf = ve.prototype.value = function() {
                                    return Ui(this.__wrapped__, this.__actions__)
                                }
                                ,
                                ve.prototype.first = ve.prototype.head,
                                Dn && (ve.prototype[Dn] = function() {
                                    return this
                                }
                                ),
                                ve
                            }();
                            Ln._ = Nr,
                            (i = function() {
                                return Nr
                            }
                            .call(n, r, n, e)) === u || (e.exports = i)
                        }
                        ).call(this)
                    }
                    ).call(this, r(6), r(5)(t))
                }
                , function(t, n, r) {
                    "use strict";
                    var e = r(0);
                    n.addHook = function() {
                        e.each(document.querySelectorAll("img.qq_bind"), function(t) {
                            t.src.indexOf("image/common/qds.png") >= 0 && t.parentNode instanceof HTMLAnchorElement && t.parentNode.href.indexOf("home.php?mod=task&do=apply&id=2") >= 0 && function() {
                                var t = document.createElement("div");
                                t.style.display = "none",
                                t.style.position = "fixed",
                                t.style.top = "112px",
                                t.style.right = "12px",
                                t.style.width = "626px",
                                t.style.height = "98px",
                                t.style.overflow = "hidden",
                                t.style.zIndex = "9999",
                                t.style.boxShadow = "0 3px 6px #999",
                                t.onscroll = function() {
                                    t.scrollLeft = 0,
                                    t.scrollTop = 0
                                }
                                ;
                                var n = document.createElement("iframe");
                                n.style.border = "none",
                                n.width = "1280",
                                n.height = "5000",
                                n.onload = function() {
                                    n.style.position = "absolute",
                                    n.style.left = "-328px",
                                    n.style.top = "-264px",
                                    t.style.display = "",
                                    setTimeout(function() {
                                        t.remove()
                                    }, 3e3)
                                }
                                ,
                                t.appendChild(n);
                                var r = document.createElement("div");
                                r.style.position = "absolute",
                                r.style.left = "0",
                                r.style.top = "0",
                                r.style.width = "1280px",
                                r.style.height = "5000px",
                                r.style.zIndex = "10000",
                                r.onclick = function() {
                                    t.remove()
                                }
                                ,
                                t.appendChild(r),
                                document.body.appendChild(t),
                                n.src = "https://www.52pojie.cn/home.php?mod=task&do=apply&id=2"
                            }()
                        })
                    }
                }
                , function(t, n, r) {
                    "use strict";
                    var e = r(0)
                      , i = ["谢谢", "感谢", "多谢", "支持", "楼主", "老哥", "老铁", "大佬", "大神", "大牛", "高手", "技术帝", "分享", "辛苦", "好东西", "正好需要", "不错", "方便", "实用", "有用", "管用", "好用", "厉害", "厉害了", "666", "利害", "膜拜", "可以", "牛逼", "佩服", "不明觉厉", "很牛", "顶一下", "详细", "易懂", "回复看隐藏", "先回复", "占位", "收藏", "Mark", "先占位", "坐下", "躺下", "路过", "慢看", "看看", "慢慢看", "看隐藏", "学到", "学习", "学学", "受教", "受益", "研究", "试一试", "刚好需要", "有空", "找个", "没看懂", "看不懂", "涨姿势", "姿势", "期待", "希望", "帮忙", "就更好了", "这个", "一下", "了", "啊", "哦", "哟", "的", "哇", "卧槽", "非常", "很", "挺", "好多", "慢慢", "Thanks", "感谢发布原创作品", "吾爱破解论坛因你更精彩", "吾爱破解论坛有你更精彩", "我很赞同", "热心回复", "用心讨论", "共获提升", "感谢您对吾爱破解论坛的支持"];
                    n.isSpam = function(t) {
                        return function(t) {
                            var n = 0;
                            return e.each(i, function(r) {
                                for (var e = 0; (e = t.indexOf(r, e)) >= 0; )
                                    n += r.length,
                                    ++e
                            }),
                            n / t.length
                        }(t = function(t) {
                            return t.replace(/[吧吗呢啦嘛呐地得嘿嗨]/g, "")
                        }(t = function(t) {
                            return t.replace(/[,.\/#!$%^&*;:'"{}=\-_+`~()\[\]|@\s]/g, "").replace(/[、,。?!:;()《》【】“”‘’¥…—·]/g, "")
                        }(t))) > .65
                    }
                }
                , function(t, n) {
                    !function(t) {
                        var n, r = 1, e = Array.prototype.slice, i = t.isFunction, u = function(t) {
                            return "string" == typeof t
                        }, o = {}, f = {}, a = "onfocusin"in window, c = {
                            focus: "focusin",
                            blur: "focusout"
                        }, s = {
                            mouseenter: "mouseover",
                            mouseleave: "mouseout"
                        };
                        function l(t) {
                            return t._zid || (t._zid = r++)
                        }
                        function h(t, n, r, e) {
                            if ((n = p(n)).ns)
                                var i = (u = n.ns,
                                new RegExp("(?:^| )" + u.replace(" ", " .* ?") + "(?: |$)"));
                            var u;
                            return (o[l(t)] || []).filter(function(t) {
                                return t && (!n.e || t.e == n.e) && (!n.ns || i.test(t.ns)) && (!r || l(t.fn) === l(r)) && (!e || t.sel == e)
                            })
                        }
                        function p(t) {
                            var n = ("" + t).split(".");
                            return {
                                e: n[0],
                                ns: n.slice(1).sort().join(" ")
                            }
                        }
                        function v(t, n) {
                            return t.del && !a && t.e in c || !!n
                        }
                        function d(t) {
                            return s[t] || a && c[t] || t
                        }
                        function g(r, e, i, u, f, a, c) {
                            var h = l(r)
                              , g = o[h] || (o[h] = []);
                            e.split(/\s/).forEach(function(e) {
                                if ("ready" == e)
                                    return t(document).ready(i);
                                var o = p(e);
                                o.fn = i,
                                o.sel = f,
                                o.e in s && (i = function(n) {
                                    var r = n.relatedTarget;
                                    if (!r || r !== this && !t.contains(this, r))
                                        return o.fn.apply(this, arguments)
                                }
                                ),
                                o.del = a;
                                var l = a || i;
                                o.proxy = function(t) {
                                    if (!(t = x(t)).isImmediatePropagationStopped()) {
                                        t.data = u;
                                        var e = l.apply(r, t._args == n ? [t] : [t].concat(t._args));
                                        return !1 === e && (t.preventDefault(),
                                        t.stopPropagation()),
                                        e
                                    }
                                }
                                ,
                                o.i = g.length,
                                g.push(o),
                                "addEventListener"in r && r.addEventListener(d(o.e), o.proxy, v(o, c))
                            })
                        }
                        function _(t, n, r, e, i) {
                            var u = l(t);
                            (n || "").split(/\s/).forEach(function(n) {
                                h(t, n, r, e).forEach(function(n) {
                                    delete o[u][n.i],
                                    "removeEventListener"in t && t.removeEventListener(d(n.e), n.proxy, v(n, i))
                                })
                            })
                        }
                        f.click = f.mousedown = f.mouseup = f.mousemove = "MouseEvents",
                        t.event = {
                            add: g,
                            remove: _
                        },
                        t.proxy = function(n, r) {
                            var o = 2 in arguments && e.call(arguments, 2);
                            if (i(n)) {
                                var f = function() {
                                    return n.apply(r, o ? o.concat(e.call(arguments)) : arguments)
                                };
                                return f._zid = l(n),
                                f
                            }
                            if (u(r))
                                return o ? (o.unshift(n[r], n),
                                t.proxy.apply(null, o)) : t.proxy(n[r], n);
                            throw new TypeError("expected function")
                        }
                        ,
                        t.fn.bind = function(t, n, r) {
                            return this.on(t, n, r)
                        }
                        ,
                        t.fn.unbind = function(t, n) {
                            return this.off(t, n)
                        }
                        ,
                        t.fn.one = function(t, n, r, e) {
                            return this.on(t, n, r, e, 1)
                        }
                        ;
                        var y = function() {
                            return !0
                        }
                          , m = function() {
                            return !1
                        }
                          , b = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/
                          , w = {
                            preventDefault: "isDefaultPrevented",
                            stopImmediatePropagation: "isImmediatePropagationStopped",
                            stopPropagation: "isPropagationStopped"
                        };
                        function x(r, e) {
                            return !e && r.isDefaultPrevented || (e || (e = r),
                            t.each(w, function(t, n) {
                                var i = e[t];
                                r[t] = function() {
                                    return this[n] = y,
                                    i && i.apply(e, arguments)
                                }
                                ,
                                r[n] = m
                            }),
                            r.timeStamp || (r.timeStamp = Date.now()),
                            (e.defaultPrevented !== n ? e.defaultPrevented : "returnValue"in e ? !1 === e.returnValue : e.getPreventDefault && e.getPreventDefault()) && (r.isDefaultPrevented = y)),
                            r
                        }
                        function E(t) {
                            var r, e = {
                                originalEvent: t
                            };
                            for (r in t)
                                b.test(r) || t[r] === n || (e[r] = t[r]);
                            return x(e, t)
                        }
                        t.fn.delegate = function(t, n, r) {
                            return this.on(n, t, r)
                        }
                        ,
                        t.fn.undelegate = function(t, n, r) {
                            return this.off(n, t, r)
                        }
                        ,
                        t.fn.live = function(n, r) {
                            return t(document.body).delegate(this.selector, n, r),
                            this
                        }
                        ,
                        t.fn.die = function(n, r) {
                            return t(document.body).undelegate(this.selector, n, r),
                            this
                        }
                        ,
                        t.fn.on = function(r, o, f, a, c) {
                            var s, l, h = this;
                            return r && !u(r) ? (t.each(r, function(t, n) {
                                h.on(t, o, f, n, c)
                            }),
                            h) : (u(o) || i(a) || !1 === a || (a = f,
                            f = o,
                            o = n),
                            a !== n && !1 !== f || (a = f,
                            f = n),
                            !1 === a && (a = m),
                            h.each(function(n, i) {
                                c && (s = function(t) {
                                    return _(i, t.type, a),
                                    a.apply(this, arguments)
                                }
                                ),
                                o && (l = function(n) {
                                    var r, u = t(n.target).closest(o, i).get(0);
                                    if (u && u !== i)
                                        return r = t.extend(E(n), {
                                            currentTarget: u,
                                            liveFired: i
                                        }),
                                        (s || a).apply(u, [r].concat(e.call(arguments, 1)))
                                }
                                ),
                                g(i, r, a, f, o, l || s)
                            }))
                        }
                        ,
                        t.fn.off = function(r, e, o) {
                            var f = this;
                            return r && !u(r) ? (t.each(r, function(t, n) {
                                f.off(t, e, n)
                            }),
                            f) : (u(e) || i(o) || !1 === o || (o = e,
                            e = n),
                            !1 === o && (o = m),
                            f.each(function() {
                                _(this, r, o, e)
                            }))
                        }
                        ,
                        t.fn.trigger = function(n, r) {
                            return (n = u(n) || t.isPlainObject(n) ? t.Event(n) : x(n))._args = r,
                            this.each(function() {
                                n.type in c && "function" == typeof this[n.type] ? this[n.type]() : "dispatchEvent"in this ? this.dispatchEvent(n) : t(this).triggerHandler(n, r)
                            })
                        }
                        ,
                        t.fn.triggerHandler = function(n, r) {
                            var e, i;
                            return this.each(function(o, f) {
                                (e = E(u(n) ? t.Event(n) : n))._args = r,
                                e.target = f,
                                t.each(h(f, n.type || n), function(t, n) {
                                    if (i = n.proxy(e),
                                    e.isImmediatePropagationStopped())
                                        return !1
                                })
                            }),
                            i
                        }
                        ,
                        "focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(n) {
                            t.fn[n] = function(t) {
                                return 0 in arguments ? this.bind(n, t) : this.trigger(n)
                            }
                        }),
                        t.Event = function(t, n) {
                            u(t) || (t = (n = t).type);
                            var r = document.createEvent(f[t] || "Events")
                              , e = !0;
                            if (n)
                                for (var i in n)
                                    "bubbles" == i ? e = !!n[i] : r[i] = n[i];
                            return r.initEvent(t, e, !0),
                            x(r)
                        }
                    }(Zepto)
                }
                , function(t, n) {
                    var r = function() {
                        var t, n, r, e, i, u, o = [], f = o.concat, a = o.filter, c = o.slice, s = window.document, l = {}, h = {}, p = {
                            "column-count": 1,
                            columns: 1,
                            "font-weight": 1,
                            "line-height": 1,
                            opacity: 1,
                            "z-index": 1,
                            zoom: 1
                        }, v = /^\s*<(\w+|!)[^>]*>/, d = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, g = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, _ = /^(?:body|html)$/i, y = /([A-Z])/g, m = ["val", "css", "html", "text", "data", "width", "height", "offset"], b = s.createElement("table"), w = s.createElement("tr"), x = {
                            tr: s.createElement("tbody"),
                            tbody: b,
                            thead: b,
                            tfoot: b,
                            td: w,
                            th: w,
                            "*": s.createElement("div")
                        }, E = /complete|loaded|interactive/, j = /^[\w-]*$/, A = {}, $ = A.toString, O = {}, S = s.createElement("div"), C = {
                            tabindex: "tabIndex",
                            readonly: "readOnly",
                            for: "htmlFor",
                            class: "className",
                            maxlength: "maxLength",
                            cellspacing: "cellSpacing",
                            cellpadding: "cellPadding",
                            rowspan: "rowSpan",
                            colspan: "colSpan",
                            usemap: "useMap",
                            frameborder: "frameBorder",
                            contenteditable: "contentEditable"
                        }, k = Array.isArray || function(t) {
                            return t instanceof Array
                        }
                        ;
                        function I(t) {
                            return null == t ? String(t) : A[$.call(t)] || "object"
                        }
                        function T(t) {
                            return "function" == I(t)
                        }
                        function z(t) {
                            return null != t && t == t.window
                        }
                        function L(t) {
                            return null != t && t.nodeType == t.DOCUMENT_NODE
                        }
                        function N(t) {
                            return "object" == I(t)
                        }
                        function R(t) {
                            return N(t) && !z(t) && Object.getPrototypeOf(t) == Object.prototype
                        }
                        function P(t) {
                            var n = !!t && "length"in t && t.length
                              , e = r.type(t);
                            return "function" != e && !z(t) && ("array" == e || 0 === n || "number" == typeof n && n > 0 && n - 1 in t)
                        }
                        function B(t) {
                            return t.replace(/::/g, "/").replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2").replace(/([a-z\d])([A-Z])/g, "$1_$2").replace(/_/g, "-").toLowerCase()
                        }
                        function D(t) {
                            return t in h ? h[t] : h[t] = new RegExp("(^|\\s)" + t + "(\\s|$)")
                        }
                        function W(t, n) {
                            return "number" != typeof n || p[B(t)] ? n : n + "px"
                        }
                        function M(t) {
                            return "children"in t ? c.call(t.children) : r.map(t.childNodes, function(t) {
                                if (1 == t.nodeType)
                                    return t
                            })
                        }
                        function U(t, n) {
                            var r, e = t ? t.length : 0;
                            for (r = 0; r < e; r++)
                                this[r] = t[r];
                            this.length = e,
                            this.selector = n || ""
                        }
                        function q(t, n) {
                            return null == n ? r(t) : r(t).filter(n)
                        }
                        function F(t, n, r, e) {
                            return T(n) ? n.call(t, r, e) : n
                        }
                        function Z(t, n, r) {
                            null == r ? t.removeAttribute(n) : t.setAttribute(n, r)
                        }
                        function H(n, r) {
                            var e = n.className || ""
                              , i = e && e.baseVal !== t;
                            if (r === t)
                                return i ? e.baseVal : e;
                            i ? e.baseVal = r : n.className = r
                        }
                        function V(t) {
                            try {
                                return t ? "true" == t || "false" != t && ("null" == t ? null : +t + "" == t ? +t : /^[\[\{]/.test(t) ? r.parseJSON(t) : t) : t
                            } catch (n) {
                                return t
                            }
                        }
                        return O.matches = function(t, n) {
                            if (!n || !t || 1 !== t.nodeType)
                                return !1;
                            var r = t.matches || t.webkitMatchesSelector || t.mozMatchesSelector || t.oMatchesSelector || t.matchesSelector;
                            if (r)
                                return r.call(t, n);
                            var e, i = t.parentNode, u = !i;
                            return u && (i = S).appendChild(t),
                            e = ~O.qsa(i, n).indexOf(t),
                            u && S.removeChild(t),
                            e
                        }
                        ,
                        i = function(t) {
                            return t.replace(/-+(.)?/g, function(t, n) {
                                return n ? n.toUpperCase() : ""
                            })
                        }
                        ,
                        u = function(t) {
                            return a.call(t, function(n, r) {
                                return t.indexOf(n) == r
                            })
                        }
                        ,
                        O.fragment = function(n, e, i) {
                            var u, o, f;
                            return d.test(n) && (u = r(s.createElement(RegExp.$1))),
                            u || (n.replace && (n = n.replace(g, "<$1></$2>")),
                            e === t && (e = v.test(n) && RegExp.$1),
                            e in x || (e = "*"),
                            (f = x[e]).innerHTML = "" + n,
                            u = r.each(c.call(f.childNodes), function() {
                                f.removeChild(this)
                            })),
                            R(i) && (o = r(u),
                            r.each(i, function(t, n) {
                                m.indexOf(t) > -1 ? o[t](n) : o.attr(t, n)
                            })),
                            u
                        }
                        ,
                        O.Z = function(t, n) {
                            return new U(t,n)
                        }
                        ,
                        O.isZ = function(t) {
                            return t instanceof O.Z
                        }
                        ,
                        O.init = function(n, e) {
                            var i, u;
                            if (!n)
                                return O.Z();
                            if ("string" == typeof n)
                                if ("<" == (n = n.trim())[0] && v.test(n))
                                    i = O.fragment(n, RegExp.$1, e),
                                    n = null;
                                else {
                                    if (e !== t)
                                        return r(e).find(n);
                                    i = O.qsa(s, n)
                                }
                            else {
                                if (T(n))
                                    return r(s).ready(n);
                                if (O.isZ(n))
                                    return n;
                                if (k(n))
                                    u = n,
                                    i = a.call(u, function(t) {
                                        return null != t
                                    });
                                else if (N(n))
                                    i = [n],
                                    n = null;
                                else if (v.test(n))
                                    i = O.fragment(n.trim(), RegExp.$1, e),
                                    n = null;
                                else {
                                    if (e !== t)
                                        return r(e).find(n);
                                    i = O.qsa(s, n)
                                }
                            }
                            return O.Z(i, n)
                        }
                        ,
                        (r = function(t, n) {
                            return O.init(t, n)
                        }
                        ).extend = function(r) {
                            var e, i = c.call(arguments, 1);
                            return "boolean" == typeof r && (e = r,
                            r = i.shift()),
                            i.forEach(function(i) {
                                !function r(e, i, u) {
                                    for (n in i)
                                        u && (R(i[n]) || k(i[n])) ? (R(i[n]) && !R(e[n]) && (e[n] = {}),
                                        k(i[n]) && !k(e[n]) && (e[n] = []),
                                        r(e[n], i[n], u)) : i[n] !== t && (e[n] = i[n])
                                }(r, i, e)
                            }),
                            r
                        }
                        ,
                        O.qsa = function(t, n) {
                            var r, e = "#" == n[0], i = !e && "." == n[0], u = e || i ? n.slice(1) : n, o = j.test(u);
                            return t.getElementById && o && e ? (r = t.getElementById(u)) ? [r] : [] : 1 !== t.nodeType && 9 !== t.nodeType && 11 !== t.nodeType ? [] : c.call(o && !e && t.getElementsByClassName ? i ? t.getElementsByClassName(u) : t.getElementsByTagName(n) : t.querySelectorAll(n))
                        }
                        ,
                        r.contains = s.documentElement.contains ? function(t, n) {
                            return t !== n && t.contains(n)
                        }
                        : function(t, n) {
                            for (; n && (n = n.parentNode); )
                                if (n === t)
                                    return !0;
                            return !1
                        }
                        ,
                        r.type = I,
                        r.isFunction = T,
                        r.isWindow = z,
                        r.isArray = k,
                        r.isPlainObject = R,
                        r.isEmptyObject = function(t) {
                            var n;
                            for (n in t)
                                return !1;
                            return !0
                        }
                        ,
                        r.isNumeric = function(t) {
                            var n = Number(t)
                              , r = typeof t;
                            return null != t && "boolean" != r && ("string" != r || t.length) && !isNaN(n) && isFinite(n) || !1
                        }
                        ,
                        r.inArray = function(t, n, r) {
                            return o.indexOf.call(n, t, r)
                        }
                        ,
                        r.camelCase = i,
                        r.trim = function(t) {
                            return null == t ? "" : String.prototype.trim.call(t)
                        }
                        ,
                        r.uuid = 0,
                        r.support = {},
                        r.expr = {},
                        r.noop = function() {}
                        ,
                        r.map = function(t, n) {
                            var e, i, u, o, f = [];
                            if (P(t))
                                for (i = 0; i < t.length; i++)
                                    null != (e = n(t[i], i)) && f.push(e);
                            else
                                for (u in t)
                                    null != (e = n(t[u], u)) && f.push(e);
                            return (o = f).length > 0 ? r.fn.concat.apply([], o) : o
                        }
                        ,
                        r.each = function(t, n) {
                            var r, e;
                            if (P(t)) {
                                for (r = 0; r < t.length; r++)
                                    if (!1 === n.call(t[r], r, t[r]))
                                        return t
                            } else
                                for (e in t)
                                    if (!1 === n.call(t[e], e, t[e]))
                                        return t;
                            return t
                        }
                        ,
                        r.grep = function(t, n) {
                            return a.call(t, n)
                        }
                        ,
                        window.JSON && (r.parseJSON = JSON.parse),
                        r.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(t, n) {
                            A["[object " + n + "]"] = n.toLowerCase()
                        }),
                        r.fn = {
                            constructor: O.Z,
                            length: 0,
                            forEach: o.forEach,
                            reduce: o.reduce,
                            push: o.push,
                            sort: o.sort,
                            splice: o.splice,
                            indexOf: o.indexOf,
                            concat: function() {
                                var t, n, r = [];
                                for (t = 0; t < arguments.length; t++)
                                    n = arguments[t],
                                    r[t] = O.isZ(n) ? n.toArray() : n;
                                return f.apply(O.isZ(this) ? this.toArray() : this, r)
                            },
                            map: function(t) {
                                return r(r.map(this, function(n, r) {
                                    return t.call(n, r, n)
                                }))
                            },
                            slice: function() {
                                return r(c.apply(this, arguments))
                            },
                            ready: function(t) {
                                return E.test(s.readyState) && s.body ? t(r) : s.addEventListener("DOMContentLoaded", function() {
                                    t(r)
                                }, !1),
                                this
                            },
                            get: function(n) {
                                return n === t ? c.call(this) : this[n >= 0 ? n : n + this.length]
                            },
                            toArray: function() {
                                return this.get()
                            },
                            size: function() {
                                return this.length
                            },
                            remove: function() {
                                return this.each(function() {
                                    null != this.parentNode && this.parentNode.removeChild(this)
                                })
                            },
                            each: function(t) {
                                return o.every.call(this, function(n, r) {
                                    return !1 !== t.call(n, r, n)
                                }),
                                this
                            },
                            filter: function(t) {
                                return T(t) ? this.not(this.not(t)) : r(a.call(this, function(n) {
                                    return O.matches(n, t)
                                }))
                            },
                            add: function(t, n) {
                                return r(u(this.concat(r(t, n))))
                            },
                            is: function(t) {
                                return this.length > 0 && O.matches(this[0], t)
                            },
                            not: function(n) {
                                var e = [];
                                if (T(n) && n.call !== t)
                                    this.each(function(t) {
                                        n.call(this, t) || e.push(this)
                                    });
                                else {
                                    var i = "string" == typeof n ? this.filter(n) : P(n) && T(n.item) ? c.call(n) : r(n);
                                    this.forEach(function(t) {
                                        i.indexOf(t) < 0 && e.push(t)
                                    })
                                }
                                return r(e)
                            },
                            has: function(t) {
                                return this.filter(function() {
                                    return N(t) ? r.contains(this, t) : r(this).find(t).size()
                                })
                            },
                            eq: function(t) {
                                return -1 === t ? this.slice(t) : this.slice(t, +t + 1)
                            },
                            first: function() {
                                var t = this[0];
                                return t && !N(t) ? t : r(t)
                            },
                            last: function() {
                                var t = this[this.length - 1];
                                return t && !N(t) ? t : r(t)
                            },
                            find: function(t) {
                                var n = this;
                                return t ? "object" == typeof t ? r(t).filter(function() {
                                    var t = this;
                                    return o.some.call(n, function(n) {
                                        return r.contains(n, t)
                                    })
                                }) : 1 == this.length ? r(O.qsa(this[0], t)) : this.map(function() {
                                    return O.qsa(this, t)
                                }) : r()
                            },
                            closest: function(t, n) {
                                var e = []
                                  , i = "object" == typeof t && r(t);
                                return this.each(function(r, u) {
                                    for (; u && !(i ? i.indexOf(u) >= 0 : O.matches(u, t)); )
                                        u = u !== n && !L(u) && u.parentNode;
                                    u && e.indexOf(u) < 0 && e.push(u)
                                }),
                                r(e)
                            },
                            parents: function(t) {
                                for (var n = [], e = this; e.length > 0; )
                                    e = r.map(e, function(t) {
                                        if ((t = t.parentNode) && !L(t) && n.indexOf(t) < 0)
                                            return n.push(t),
                                            t
                                    });
                                return q(n, t)
                            },
                            parent: function(t) {
                                return q(u(this.pluck("parentNode")), t)
                            },
                            children: function(t) {
                                return q(this.map(function() {
                                    return M(this)
                                }), t)
                            },
                            contents: function() {
                                return this.map(function() {
                                    return this.contentDocument || c.call(this.childNodes)
                                })
                            },
                            siblings: function(t) {
                                return q(this.map(function(t, n) {
                                    return a.call(M(n.parentNode), function(t) {
                                        return t !== n
                                    })
                                }), t)
                            },
                            empty: function() {
                                return this.each(function() {
                                    this.innerHTML = ""
                                })
                            },
                            pluck: function(t) {
                                return r.map(this, function(n) {
                                    return n[t]
                                })
                            },
                            show: function() {
                                return this.each(function() {
                                    var t, n, r;
                                    "none" == this.style.display && (this.style.display = ""),
                                    "none" == getComputedStyle(this, "").getPropertyValue("display") && (this.style.display = (t = this.nodeName,
                                    l[t] || (n = s.createElement(t),
                                    s.body.appendChild(n),
                                    r = getComputedStyle(n, "").getPropertyValue("display"),
                                    n.parentNode.removeChild(n),
                                    "none" == r && (r = "block"),
                                    l[t] = r),
                                    l[t]))
                                })
                            },
                            replaceWith: function(t) {
                                return this.before(t).remove()
                            },
                            wrap: function(t) {
                                var n = T(t);
                                if (this[0] && !n)
                                    var e = r(t).get(0)
                                      , i = e.parentNode || this.length > 1;
                                return this.each(function(u) {
                                    r(this).wrapAll(n ? t.call(this, u) : i ? e.cloneNode(!0) : e)
                                })
                            },
                            wrapAll: function(t) {
                                if (this[0]) {
                                    var n;
                                    for (r(this[0]).before(t = r(t)); (n = t.children()).length; )
                                        t = n.first();
                                    r(t).append(this)
                                }
                                return this
                            },
                            wrapInner: function(t) {
                                var n = T(t);
                                return this.each(function(e) {
                                    var i = r(this)
                                      , u = i.contents()
                                      , o = n ? t.call(this, e) : t;
                                    u.length ? u.wrapAll(o) : i.append(o)
                                })
                            },
                            unwrap: function() {
                                return this.parent().each(function() {
                                    r(this).replaceWith(r(this).children())
                                }),
                                this
                            },
                            clone: function() {
                                return this.map(function() {
                                    return this.cloneNode(!0)
                                })
                            },
                            hide: function() {
                                return this.css("display", "none")
                            },
                            toggle: function(n) {
                                return this.each(function() {
                                    var e = r(this);
                                    (n === t ? "none" == e.css("display") : n) ? e.show() : e.hide()
                                })
                            },
                            prev: function(t) {
                                return r(this.pluck("previousElementSibling")).filter(t || "*")
                            },
                            next: function(t) {
                                return r(this.pluck("nextElementSibling")).filter(t || "*")
                            },
                            html: function(t) {
                                return 0 in arguments ? this.each(function(n) {
                                    var e = this.innerHTML;
                                    r(this).empty().append(F(this, t, n, e))
                                }) : 0 in this ? this[0].innerHTML : null
                            },
                            text: function(t) {
                                return 0 in arguments ? this.each(function(n) {
                                    var r = F(this, t, n, this.textContent);
                                    this.textContent = null == r ? "" : "" + r
                                }) : 0 in this ? this.pluck("textContent").join("") : null
                            },
                            attr: function(r, e) {
                                var i;
                                return "string" != typeof r || 1 in arguments ? this.each(function(t) {
                                    if (1 === this.nodeType)
                                        if (N(r))
                                            for (n in r)
                                                Z(this, n, r[n]);
                                        else
                                            Z(this, r, F(this, e, t, this.getAttribute(r)))
                                }) : 0 in this && 1 == this[0].nodeType && null != (i = this[0].getAttribute(r)) ? i : t
                            },
                            removeAttr: function(t) {
                                return this.each(function() {
                                    1 === this.nodeType && t.split(" ").forEach(function(t) {
                                        Z(this, t)
                                    }, this)
                                })
                            },
                            prop: function(t, n) {
                                return t = C[t] || t,
                                1 in arguments ? this.each(function(r) {
                                    this[t] = F(this, n, r, this[t])
                                }) : this[0] && this[0][t]
                            },
                            removeProp: function(t) {
                                return t = C[t] || t,
                                this.each(function() {
                                    delete this[t]
                                })
                            },
                            data: function(n, r) {
                                var e = "data-" + n.replace(y, "-$1").toLowerCase()
                                  , i = 1 in arguments ? this.attr(e, r) : this.attr(e);
                                return null !== i ? V(i) : t
                            },
                            val: function(t) {
                                return 0 in arguments ? (null == t && (t = ""),
                                this.each(function(n) {
                                    this.value = F(this, t, n, this.value)
                                })) : this[0] && (this[0].multiple ? r(this[0]).find("option").filter(function() {
                                    return this.selected
                                }).pluck("value") : this[0].value)
                            },
                            offset: function(t) {
                                if (t)
                                    return this.each(function(n) {
                                        var e = r(this)
                                          , i = F(this, t, n, e.offset())
                                          , u = e.offsetParent().offset()
                                          , o = {
                                            top: i.top - u.top,
                                            left: i.left - u.left
                                        };
                                        "static" == e.css("position") && (o.position = "relative"),
                                        e.css(o)
                                    });
                                if (!this.length)
                                    return null;
                                if (s.documentElement !== this[0] && !r.contains(s.documentElement, this[0]))
                                    return {
                                        top: 0,
                                        left: 0
                                    };
                                var n = this[0].getBoundingClientRect();
                                return {
                                    left: n.left + window.pageXOffset,
                                    top: n.top + window.pageYOffset,
                                    width: Math.round(n.width),
                                    height: Math.round(n.height)
                                }
                            },
                            css: function(t, e) {
                                if (arguments.length < 2) {
                                    var u = this[0];
                                    if ("string" == typeof t) {
                                        if (!u)
                                            return;
                                        return u.style[i(t)] || getComputedStyle(u, "").getPropertyValue(t)
                                    }
                                    if (k(t)) {
                                        if (!u)
                                            return;
                                        var o = {}
                                          , f = getComputedStyle(u, "");
                                        return r.each(t, function(t, n) {
                                            o[n] = u.style[i(n)] || f.getPropertyValue(n)
                                        }),
                                        o
                                    }
                                }
                                var a = "";
                                if ("string" == I(t))
                                    e || 0 === e ? a = B(t) + ":" + W(t, e) : this.each(function() {
                                        this.style.removeProperty(B(t))
                                    });
                                else
                                    for (n in t)
                                        t[n] || 0 === t[n] ? a += B(n) + ":" + W(n, t[n]) + ";" : this.each(function() {
                                            this.style.removeProperty(B(n))
                                        });
                                return this.each(function() {
                                    this.style.cssText += ";" + a
                                })
                            },
                            index: function(t) {
                                return t ? this.indexOf(r(t)[0]) : this.parent().children().indexOf(this[0])
                            },
                            hasClass: function(t) {
                                return !!t && o.some.call(this, function(t) {
                                    return this.test(H(t))
                                }, D(t))
                            },
                            addClass: function(t) {
                                return t ? this.each(function(n) {
                                    if ("className"in this) {
                                        e = [];
                                        var i = H(this);
                                        F(this, t, n, i).split(/\s+/g).forEach(function(t) {
                                            r(this).hasClass(t) || e.push(t)
                                        }, this),
                                        e.length && H(this, i + (i ? " " : "") + e.join(" "))
                                    }
                                }) : this
                            },
                            removeClass: function(n) {
                                return this.each(function(r) {
                                    if ("className"in this) {
                                        if (n === t)
                                            return H(this, "");
                                        e = H(this),
                                        F(this, n, r, e).split(/\s+/g).forEach(function(t) {
                                            e = e.replace(D(t), " ")
                                        }),
                                        H(this, e.trim())
                                    }
                                })
                            },
                            toggleClass: function(n, e) {
                                return n ? this.each(function(i) {
                                    var u = r(this);
                                    F(this, n, i, H(this)).split(/\s+/g).forEach(function(n) {
                                        (e === t ? !u.hasClass(n) : e) ? u.addClass(n) : u.removeClass(n)
                                    })
                                }) : this
                            },
                            scrollTop: function(n) {
                                if (this.length) {
                                    var r = "scrollTop"in this[0];
                                    return n === t ? r ? this[0].scrollTop : this[0].pageYOffset : this.each(r ? function() {
                                        this.scrollTop = n
                                    }
                                    : function() {
                                        this.scrollTo(this.scrollX, n)
                                    }
                                    )
                                }
                            },
                            scrollLeft: function(n) {
                                if (this.length) {
                                    var r = "scrollLeft"in this[0];
                                    return n === t ? r ? this[0].scrollLeft : this[0].pageXOffset : this.each(r ? function() {
                                        this.scrollLeft = n
                                    }
                                    : function() {
                                        this.scrollTo(n, this.scrollY)
                                    }
                                    )
                                }
                            },
                            position: function() {
                                if (this.length) {
                                    var t = this[0]
                                      , n = this.offsetParent()
                                      , e = this.offset()
                                      , i = _.test(n[0].nodeName) ? {
                                        top: 0,
                                        left: 0
                                    } : n.offset();
                                    return e.top -= parseFloat(r(t).css("margin-top")) || 0,
                                    e.left -= parseFloat(r(t).css("margin-left")) || 0,
                                    i.top += parseFloat(r(n[0]).css("border-top-width")) || 0,
                                    i.left += parseFloat(r(n[0]).css("border-left-width")) || 0,
                                    {
                                        top: e.top - i.top,
                                        left: e.left - i.left
                                    }
                                }
                            },
                            offsetParent: function() {
                                return this.map(function() {
                                    for (var t = this.offsetParent || s.body; t && !_.test(t.nodeName) && "static" == r(t).css("position"); )
                                        t = t.offsetParent;
                                    return t
                                })
                            }
                        },
                        r.fn.detach = r.fn.remove,
                        ["width", "height"].forEach(function(n) {
                            var e = n.replace(/./, function(t) {
                                return t[0].toUpperCase()
                            });
                            r.fn[n] = function(i) {
                                var u, o = this[0];
                                return i === t ? z(o) ? o["inner" + e] : L(o) ? o.documentElement["scroll" + e] : (u = this.offset()) && u[n] : this.each(function(t) {
                                    (o = r(this)).css(n, F(this, i, t, o[n]()))
                                })
                            }
                        }),
                        ["after", "prepend", "before", "append"].forEach(function(n, e) {
                            var i = e % 2;
                            r.fn[n] = function() {
                                var n, u, o = r.map(arguments, function(e) {
                                    var i = [];
                                    return "array" == (n = I(e)) ? (e.forEach(function(n) {
                                        return n.nodeType !== t ? i.push(n) : r.zepto.isZ(n) ? i = i.concat(n.get()) : void (i = i.concat(O.fragment(n)))
                                    }),
                                    i) : "object" == n || null == e ? e : O.fragment(e)
                                }), f = this.length > 1;
                                return o.length < 1 ? this : this.each(function(t, n) {
                                    u = i ? n : n.parentNode,
                                    n = 0 == e ? n.nextSibling : 1 == e ? n.firstChild : 2 == e ? n : null;
                                    var a = r.contains(s.documentElement, u);
                                    o.forEach(function(t) {
                                        if (f)
                                            t = t.cloneNode(!0);
                                        else if (!u)
                                            return r(t).remove();
                                        u.insertBefore(t, n),
                                        a && function t(n, r) {
                                            r(n);
                                            for (var e = 0, i = n.childNodes.length; e < i; e++)
                                                t(n.childNodes[e], r)
                                        }(t, function(t) {
                                            if (!(null == t.nodeName || "SCRIPT" !== t.nodeName.toUpperCase() || t.type && "text/javascript" !== t.type || t.src)) {
                                                var n = t.ownerDocument ? t.ownerDocument.defaultView : window;
                                                n.eval.call(n, t.innerHTML)
                                            }
                                        })
                                    })
                                })
                            }
                            ,
                            r.fn[i ? n + "To" : "insert" + (e ? "Before" : "After")] = function(t) {
                                return r(t)[n](this),
                                this
                            }
                        }),
                        O.Z.prototype = U.prototype = r.fn,
                        O.uniq = u,
                        O.deserializeValue = V,
                        r.zepto = O,
                        r
                    }();
                    window.Zepto = r,
                    void 0 === window.$ && (window.$ = r)
                }
                , function(t, n) {
                    t.exports = function(t) {
                        return t.webpackPolyfill || (t.deprecate = function() {}
                        ,
                        t.paths = [],
                        t.children || (t.children = []),
                        Object.defineProperty(t, "loaded", {
                            enumerable: !0,
                            get: function() {
                                return t.l
                            }
                        }),
                        Object.defineProperty(t, "id", {
                            enumerable: !0,
                            get: function() {
                                return t.i
                            }
                        }),
                        t.webpackPolyfill = 1),
                        t
                    }
                }
                , function(t, n) {
                    var r;
                    r = function() {
                        return this
                    }();
                    try {
                        r = r || Function("return this")() || (0,
                        eval)("this")
                    } catch (t) {
                        "object" == typeof window && (r = window)
                    }
                    t.exports = r
                }
                , function(t, n, r) {
                    "use strict";
                    var e = r(0);
                    r(4),
                    r(3);
                    var i = window.Zepto
                      , u = r(2);
                    function o(t) {
                        this.post = t,
                        this.$post = i(this.post),
                        this.$userinfo = this.$post.find(".pls.favatar"),
                        this.$avatar = this.$userinfo.find(".avatar"),
                        this.$authInfo = this.$post.find(".authi"),
                        this.$authIcon = this.$post.find(".authicn"),
                        this.$content = this.$post.find(".t_f"),
                        this.$contentContainer = this.$post.find(".t_fsz"),
                        this.$body = this.$post.find(".pcb"),
                        this.$bodyContainer = this.$body.closest(".plc"),
                        this.$postInfo = this.$bodyContainer.find(".pi"),
                        this.$sign = this.$post.find(".sign"),
                        this.$operation = this.$post.find(".po"),
                        this.$operationLeft = this.$operation.find(".pob > em"),
                        this.bodyText = this.$body.text().replace(/\s/g, ""),
                        this.authInfoText = this.$authInfo.text(),
                        this.authIconSrc = this.$authIcon.attr("src"),
                        this.isSpam = u.isSpam(this.bodyText)
                    }
                    o.prototype.needCollapse = function() {
                        return !(this.$body.height() > 100 || this.bodyText.length > 40 || this.authInfoText.indexOf("自己") >= 0 || this.authInfoText.indexOf("楼主") >= 0 || this.authIconSrc.indexOf("icn_lz") >= 0 || this.authIconSrc.indexOf("fanyiyin") >= 0 || this.authIconSrc.indexOf("fanyinwen") >= 0)
                    }
                    ,
                    o.prototype.getBodyContainerHeight = function() {
                        var t = 0;
                        return this.$bodyContainer.children().each(function() {
                            t += this.getBoundingClientRect().height
                        }),
                        t
                    }
                    ,
                    o.prototype.collapse = function() {
                        this.isSpam && (this.$userinfo.css("opacity", "0.1"),
                        this.$body.css("opacity", "0.1")),
                        this.$contentContainer.css("min-height", "0"),
                        this.$postInfo.css("padding", "0").height(0).css("border-bottom", "none"),
                        this.$sign.hide(),
                        this.$operationLeft.hide(),
                        this.$operation.css("border-top", "none").css("margin-top", -this.$operation.height()),
                        this.$avatar.hide(),
                        this.$userinfo.css("overflow", "hidden").height(this.getBodyContainerHeight())
                    }
                    ,
                    o.prototype.expand = function() {
                        this.$userinfo.css("opacity", ""),
                        this.$body.css("opacity", ""),
                        this.$contentContainer.css("min-height", ""),
                        this.$postInfo.css("padding", "").css("height", "").css("border-bottom", ""),
                        this.$sign.show(),
                        this.$operationLeft.show(),
                        this.$operation.css("border-top", "").css("margin-top", ""),
                        this.$avatar.show(),
                        this.$userinfo.css("overflow", "").css("height", "")
                    }
                    ,
                    n.addHook = function() {
                        var t = e.map(e.filter(document.querySelectorAll("#postlist > div"), function(t) {
                            return /^post_\d+$/.test(t.id)
                        }), function(t) {
                            return new o(t)
                        });
                        e.each(t, function(t) {
                            try {
                                t.needCollapse() && (t.collapse(),
                                t.$post.on("click", function(n) {
                                    t.expand(),
                                    i(this).on("mouseleave", function n(r) {
                                        t.collapse(),
                                        i(this).off("mouseleave", n)
                                    })
                                }))
                            } catch (t) {
                                console.log(t)
                            }
                        })
                    }
                }
                , function(t, n, r) {
                    "use strict";
                    n.addHook = function() {
                        var t = document.querySelectorAll(".toc-side");
                        window.addEventListener("scroll", function(n) {
                            for (var r = 0; r < t.length; ++r) {
                                var e = t[r]
                                  , i = e.getBoundingClientRect()
                                  , u = parseInt(window.getComputedStyle(e).getPropertyValue("margin-bottom"))
                                  , o = window.innerHeight - u - i.top;
                                o < e.scrollHeight ? e.style.height = o + "px" : e.style.height = ""
                            }
                        });
                        for (var n = 0; n < t.length; ++n)
                            !function(t) {
                                t.addEventListener("wheel", function(n) {
                                    (n.deltaY > 0 && t.scrollTop + t.offsetHeight > t.scrollHeight - 1 || n.deltaY < 0 && t.scrollTop < 1) && n.preventDefault()
                                })
                            }(t[n]);
                        var r = document.createElement("style");
                        r.textContent = ".toc-side { overflow-y: scroll; } .toc-side::-webkit-scrollbar { width: 0 !important; }",
                        document.querySelector("head").appendChild(r)
                    }
                }
                , function(t, n, r) {
                    "use strict";
                    var e = r(8)
                      , i = r(7)
                      , u = r(1);
                    e.addHook(),
                    i.addHook(),
                    u.addHook()
                }
                ]);