Advertisement
Guest User

https://d22e57szuniygl.cloudfront.net/vendor-f8f90d774b9a1a7

a guest
Oct 25th, 2016
448
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ! function(e, t) {
  2.     "use strict";
  3.     "object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function(e) {
  4.         if (!e.document) throw new Error("jQuery requires a window with a document");
  5.         return t(e)
  6.     } : t(e)
  7. }("undefined" != typeof window ? window : this, function(e, t) {
  8.     "use strict";
  9.  
  10.     function n(e, t) {
  11.         t = t || te;
  12.         var n = t.createElement("script");
  13.         n.text = e, t.head.appendChild(n).parentNode.removeChild(n)
  14.     }
  15.  
  16.     function r(e) {
  17.         var t = !!e && "length" in e && e.length,
  18.             n = de.type(e);
  19.         return "function" !== n && !de.isWindow(e) && ("array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e)
  20.     }
  21.  
  22.     function i(e, t, n) {
  23.         return de.isFunction(t) ? de.grep(e, function(e, r) {
  24.             return !!t.call(e, r, e) !== n
  25.         }) : t.nodeType ? de.grep(e, function(e) {
  26.             return e === t !== n
  27.         }) : "string" != typeof t ? de.grep(e, function(e) {
  28.             return ae.call(t, e) > -1 !== n
  29.         }) : Te.test(t) ? de.filter(t, e, n) : (t = de.filter(t, e), de.grep(e, function(e) {
  30.             return ae.call(t, e) > -1 !== n && 1 === e.nodeType
  31.         }))
  32.     }
  33.  
  34.     function o(e, t) {
  35.         for (;
  36.             (e = e[t]) && 1 !== e.nodeType;);
  37.         return e
  38.     }
  39.  
  40.     function a(e) {
  41.         var t = {};
  42.         return de.each(e.match(Ne) || [], function(e, n) {
  43.             t[n] = !0
  44.         }), t
  45.     }
  46.  
  47.     function s(e) {
  48.         return e
  49.     }
  50.  
  51.     function u(e) {
  52.         throw e
  53.     }
  54.  
  55.     function c(e, t, n) {
  56.         var r;
  57.         try {
  58.             e && de.isFunction(r = e.promise) ? r.call(e).done(t).fail(n) : e && de.isFunction(r = e.then) ? r.call(e, t, n) : t.call(void 0, e)
  59.         } catch (e) {
  60.             n.call(void 0, e)
  61.         }
  62.     }
  63.  
  64.     function l() {
  65.         te.removeEventListener("DOMContentLoaded", l), e.removeEventListener("load", l), de.ready()
  66.     }
  67.  
  68.     function f() {
  69.         this.expando = de.expando + f.uid++
  70.     }
  71.  
  72.     function p(e) {
  73.         return "true" === e || "false" !== e && ("null" === e ? null : e === +e + "" ? +e : He.test(e) ? JSON.parse(e) : e)
  74.     }
  75.  
  76.     function h(e, t, n) {
  77.         var r;
  78.         if (void 0 === n && 1 === e.nodeType)
  79.             if (r = "data-" + t.replace(Ie, "-$&").toLowerCase(), n = e.getAttribute(r), "string" == typeof n) {
  80.                 try {
  81.                     n = p(n)
  82.                 } catch (i) {}
  83.                 qe.set(e, t, n)
  84.             } else n = void 0;
  85.         return n
  86.     }
  87.  
  88.     function d(e, t, n, r) {
  89.         var i, o = 1,
  90.             a = 20,
  91.             s = r ? function() {
  92.                 return r.cur()
  93.             } : function() {
  94.                 return de.css(e, t, "")
  95.             },
  96.             u = s(),
  97.             c = n && n[3] || (de.cssNumber[t] ? "" : "px"),
  98.             l = (de.cssNumber[t] || "px" !== c && +u) && $e.exec(de.css(e, t));
  99.         if (l && l[3] !== c) {
  100.             c = c || l[3], n = n || [], l = +u || 1;
  101.             do o = o || ".5", l /= o, de.style(e, t, l + c); while (o !== (o = s() / u) && 1 !== o && --a)
  102.         }
  103.         return n && (l = +l || +u || 0, i = n[1] ? l + (n[1] + 1) * n[2] : +n[2], r && (r.unit = c, r.start = l, r.end = i)), i
  104.     }
  105.  
  106.     function g(e) {
  107.         var t, n = e.ownerDocument,
  108.             r = e.nodeName,
  109.             i = Be[r];
  110.         return i ? i : (t = n.body.appendChild(n.createElement(r)), i = de.css(t, "display"), t.parentNode.removeChild(t), "none" === i && (i = "block"), Be[r] = i, i)
  111.     }
  112.  
  113.     function m(e, t) {
  114.         for (var n, r, i = [], o = 0, a = e.length; o < a; o++) r = e[o], r.style && (n = r.style.display, t ? ("none" === n && (i[o] = Oe.get(r, "display") || null, i[o] || (r.style.display = "")), "" === r.style.display && We(r) && (i[o] = g(r))) : "none" !== n && (i[o] = "none", Oe.set(r, "display", n)));
  115.         for (o = 0; o < a; o++) null != i[o] && (e[o].style.display = i[o]);
  116.         return e
  117.     }
  118.  
  119.     function v(e, t) {
  120.         var n;
  121.         return n = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : [], void 0 === t || t && de.nodeName(e, t) ? de.merge([e], n) : n
  122.     }
  123.  
  124.     function y(e, t) {
  125.         for (var n = 0, r = e.length; n < r; n++) Oe.set(e[n], "globalEval", !t || Oe.get(t[n], "globalEval"))
  126.     }
  127.  
  128.     function b(e, t, n, r, i) {
  129.         for (var o, a, s, u, c, l, f = t.createDocumentFragment(), p = [], h = 0, d = e.length; h < d; h++)
  130.             if (o = e[h], o || 0 === o)
  131.                 if ("object" === de.type(o)) de.merge(p, o.nodeType ? [o] : o);
  132.                 else if (Je.test(o)) {
  133.             for (a = a || f.appendChild(t.createElement("div")), s = (Ue.exec(o) || ["", ""])[1].toLowerCase(), u = Ye[s] || Ye._default, a.innerHTML = u[1] + de.htmlPrefilter(o) + u[2], l = u[0]; l--;) a = a.lastChild;
  134.             de.merge(p, a.childNodes), a = f.firstChild, a.textContent = ""
  135.         } else p.push(t.createTextNode(o));
  136.         for (f.textContent = "", h = 0; o = p[h++];)
  137.             if (r && de.inArray(o, r) > -1) i && i.push(o);
  138.             else if (c = de.contains(o.ownerDocument, o), a = v(f.appendChild(o), "script"), c && y(a), n)
  139.             for (l = 0; o = a[l++];) Xe.test(o.type || "") && n.push(o);
  140.         return f
  141.     }
  142.  
  143.     function w() {
  144.         return !0
  145.     }
  146.  
  147.     function x() {
  148.         return !1
  149.     }
  150.  
  151.     function _() {
  152.         try {
  153.             return te.activeElement
  154.         } catch (e) {}
  155.     }
  156.  
  157.     function k(e, t, n, r, i, o) {
  158.         var a, s;
  159.         if ("object" == typeof t) {
  160.             "string" != typeof n && (r = r || n, n = void 0);
  161.             for (s in t) k(e, s, n, r, t[s], o);
  162.             return e
  163.         }
  164.         if (null == r && null == i ? (i = n, r = n = void 0) : null == i && ("string" == typeof n ? (i = r, r = void 0) : (i = r, r = n, n = void 0)), i === !1) i = x;
  165.         else if (!i) return e;
  166.         return 1 === o && (a = i, i = function(e) {
  167.             return de().off(e), a.apply(this, arguments)
  168.         }, i.guid = a.guid || (a.guid = de.guid++)), e.each(function() {
  169.             de.event.add(this, t, i, r, n)
  170.         })
  171.     }
  172.  
  173.     function T(e, t) {
  174.         return de.nodeName(e, "table") && de.nodeName(11 !== t.nodeType ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e : e
  175.     }
  176.  
  177.     function C(e) {
  178.         return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e
  179.     }
  180.  
  181.     function S(e) {
  182.         var t = rt.exec(e.type);
  183.         return t ? e.type = t[1] : e.removeAttribute("type"), e
  184.     }
  185.  
  186.     function E(e, t) {
  187.         var n, r, i, o, a, s, u, c;
  188.         if (1 === t.nodeType) {
  189.             if (Oe.hasData(e) && (o = Oe.access(e), a = Oe.set(t, o), c = o.events)) {
  190.                 delete a.handle, a.events = {};
  191.                 for (i in c)
  192.                     for (n = 0, r = c[i].length; n < r; n++) de.event.add(t, i, c[i][n])
  193.             }
  194.             qe.hasData(e) && (s = qe.access(e), u = de.extend({}, s), qe.set(t, u))
  195.         }
  196.     }
  197.  
  198.     function j(e, t) {
  199.         var n = t.nodeName.toLowerCase();
  200.         "input" === n && Ke.test(e.type) ? t.checked = e.checked : "input" !== n && "textarea" !== n || (t.defaultValue = e.defaultValue)
  201.     }
  202.  
  203.     function A(e, t, r, i) {
  204.         t = ie.apply([], t);
  205.         var o, a, s, u, c, l, f = 0,
  206.             p = e.length,
  207.             h = p - 1,
  208.             d = t[0],
  209.             g = de.isFunction(d);
  210.         if (g || p > 1 && "string" == typeof d && !pe.checkClone && nt.test(d)) return e.each(function(n) {
  211.             var o = e.eq(n);
  212.             g && (t[0] = d.call(this, n, o.html())), A(o, t, r, i)
  213.         });
  214.         if (p && (o = b(t, e[0].ownerDocument, !1, e, i), a = o.firstChild, 1 === o.childNodes.length && (o = a), a || i)) {
  215.             for (s = de.map(v(o, "script"), C), u = s.length; f < p; f++) c = o, f !== h && (c = de.clone(c, !0, !0), u && de.merge(s, v(c, "script"))), r.call(e[f], c, f);
  216.             if (u)
  217.                 for (l = s[s.length - 1].ownerDocument, de.map(s, S), f = 0; f < u; f++) c = s[f], Xe.test(c.type || "") && !Oe.access(c, "globalEval") && de.contains(l, c) && (c.src ? de._evalUrl && de._evalUrl(c.src) : n(c.textContent.replace(it, ""), l))
  218.         }
  219.         return e
  220.     }
  221.  
  222.     function N(e, t, n) {
  223.         for (var r, i = t ? de.filter(t, e) : e, o = 0; null != (r = i[o]); o++) n || 1 !== r.nodeType || de.cleanData(v(r)), r.parentNode && (n && de.contains(r.ownerDocument, r) && y(v(r, "script")), r.parentNode.removeChild(r));
  224.         return e
  225.     }
  226.  
  227.     function D(e, t, n) {
  228.         var r, i, o, a, s = e.style;
  229.         return n = n || st(e), n && (a = n.getPropertyValue(t) || n[t], "" !== a || de.contains(e.ownerDocument, e) || (a = de.style(e, t)), !pe.pixelMarginRight() && at.test(a) && ot.test(t) && (r = s.width, i = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = r, s.minWidth = i, s.maxWidth = o)), void 0 !== a ? a + "" : a
  230.     }
  231.  
  232.     function F(e, t) {
  233.         return {
  234.             get: function() {
  235.                 return e() ? void delete this.get : (this.get = t).apply(this, arguments)
  236.             }
  237.         }
  238.     }
  239.  
  240.     function L(e) {
  241.         if (e in pt) return e;
  242.         for (var t = e[0].toUpperCase() + e.slice(1), n = ft.length; n--;)
  243.             if (e = ft[n] + t, e in pt) return e
  244.     }
  245.  
  246.     function R(e, t, n) {
  247.         var r = $e.exec(t);
  248.         return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t
  249.     }
  250.  
  251.     function O(e, t, n, r, i) {
  252.         var o, a = 0;
  253.         for (o = n === (r ? "border" : "content") ? 4 : "width" === t ? 1 : 0; o < 4; o += 2) "margin" === n && (a += de.css(e, n + Me[o], !0, i)), r ? ("content" === n && (a -= de.css(e, "padding" + Me[o], !0, i)), "margin" !== n && (a -= de.css(e, "border" + Me[o] + "Width", !0, i))) : (a += de.css(e, "padding" + Me[o], !0, i), "padding" !== n && (a += de.css(e, "border" + Me[o] + "Width", !0, i)));
  254.         return a
  255.     }
  256.  
  257.     function q(e, t, n) {
  258.         var r, i = !0,
  259.             o = st(e),
  260.             a = "border-box" === de.css(e, "boxSizing", !1, o);
  261.         if (e.getClientRects().length && (r = e.getBoundingClientRect()[t]), r <= 0 || null == r) {
  262.             if (r = D(e, t, o), (r < 0 || null == r) && (r = e.style[t]), at.test(r)) return r;
  263.             i = a && (pe.boxSizingReliable() || r === e.style[t]), r = parseFloat(r) || 0
  264.         }
  265.         return r + O(e, t, n || (a ? "border" : "content"), i, o) + "px"
  266.     }
  267.  
  268.     function H(e, t, n, r, i) {
  269.         return new H.prototype.init(e, t, n, r, i)
  270.     }
  271.  
  272.     function I() {
  273.         dt && (e.requestAnimationFrame(I), de.fx.tick())
  274.     }
  275.  
  276.     function P() {
  277.         return e.setTimeout(function() {
  278.             ht = void 0
  279.         }), ht = de.now()
  280.     }
  281.  
  282.     function $(e, t) {
  283.         var n, r = 0,
  284.             i = {
  285.                 height: e
  286.             };
  287.         for (t = t ? 1 : 0; r < 4; r += 2 - t) n = Me[r], i["margin" + n] = i["padding" + n] = e;
  288.         return t && (i.opacity = i.width = e), i
  289.     }
  290.  
  291.     function M(e, t, n) {
  292.         for (var r, i = (B.tweeners[t] || []).concat(B.tweeners["*"]), o = 0, a = i.length; o < a; o++)
  293.             if (r = i[o].call(n, t, e)) return r
  294.     }
  295.  
  296.     function W(e, t, n) {
  297.         var r, i, o, a, s, u, c, l, f = "width" in t || "height" in t,
  298.             p = this,
  299.             h = {},
  300.             d = e.style,
  301.             g = e.nodeType && We(e),
  302.             v = Oe.get(e, "fxshow");
  303.         n.queue || (a = de._queueHooks(e, "fx"), null == a.unqueued && (a.unqueued = 0, s = a.empty.fire, a.empty.fire = function() {
  304.             a.unqueued || s()
  305.         }), a.unqueued++, p.always(function() {
  306.             p.always(function() {
  307.                 a.unqueued--, de.queue(e, "fx").length || a.empty.fire()
  308.             })
  309.         }));
  310.         for (r in t)
  311.             if (i = t[r], gt.test(i)) {
  312.                 if (delete t[r], o = o || "toggle" === i, i === (g ? "hide" : "show")) {
  313.                     if ("show" !== i || !v || void 0 === v[r]) continue;
  314.                     g = !0
  315.                 }
  316.                 h[r] = v && v[r] || de.style(e, r)
  317.             }
  318.         if (u = !de.isEmptyObject(t), u || !de.isEmptyObject(h)) {
  319.             f && 1 === e.nodeType && (n.overflow = [d.overflow, d.overflowX, d.overflowY], c = v && v.display, null == c && (c = Oe.get(e, "display")), l = de.css(e, "display"), "none" === l && (c ? l = c : (m([e], !0), c = e.style.display || c, l = de.css(e, "display"), m([e]))), ("inline" === l || "inline-block" === l && null != c) && "none" === de.css(e, "float") && (u || (p.done(function() {
  320.                 d.display = c
  321.             }), null == c && (l = d.display, c = "none" === l ? "" : l)), d.display = "inline-block")), n.overflow && (d.overflow = "hidden", p.always(function() {
  322.                 d.overflow = n.overflow[0], d.overflowX = n.overflow[1], d.overflowY = n.overflow[2]
  323.             })), u = !1;
  324.             for (r in h) u || (v ? "hidden" in v && (g = v.hidden) : v = Oe.access(e, "fxshow", {
  325.                 display: c
  326.             }), o && (v.hidden = !g), g && m([e], !0), p.done(function() {
  327.                 g || m([e]), Oe.remove(e, "fxshow");
  328.                 for (r in h) de.style(e, r, h[r])
  329.             })), u = M(g ? v[r] : 0, r, p), r in v || (v[r] = u.start, g && (u.end = u.start, u.start = 0))
  330.         }
  331.     }
  332.  
  333.     function z(e, t) {
  334.         var n, r, i, o, a;
  335.         for (n in e)
  336.             if (r = de.camelCase(n), i = t[r], o = e[n], de.isArray(o) && (i = o[1], o = e[n] = o[0]), n !== r && (e[r] = o, delete e[n]), a = de.cssHooks[r], a && "expand" in a) {
  337.                 o = a.expand(o), delete e[r];
  338.                 for (n in o) n in e || (e[n] = o[n], t[n] = i)
  339.             } else t[r] = i
  340.     }
  341.  
  342.     function B(e, t, n) {
  343.         var r, i, o = 0,
  344.             a = B.prefilters.length,
  345.             s = de.Deferred().always(function() {
  346.                 delete u.elem
  347.             }),
  348.             u = function() {
  349.                 if (i) return !1;
  350.                 for (var t = ht || P(), n = Math.max(0, c.startTime + c.duration - t), r = n / c.duration || 0, o = 1 - r, a = 0, u = c.tweens.length; a < u; a++) c.tweens[a].run(o);
  351.                 return s.notifyWith(e, [c, o, n]), o < 1 && u ? n : (s.resolveWith(e, [c]), !1)
  352.             },
  353.             c = s.promise({
  354.                 elem: e,
  355.                 props: de.extend({}, t),
  356.                 opts: de.extend(!0, {
  357.                     specialEasing: {},
  358.                     easing: de.easing._default
  359.                 }, n),
  360.                 originalProperties: t,
  361.                 originalOptions: n,
  362.                 startTime: ht || P(),
  363.                 duration: n.duration,
  364.                 tweens: [],
  365.                 createTween: function(t, n) {
  366.                     var r = de.Tween(e, c.opts, t, n, c.opts.specialEasing[t] || c.opts.easing);
  367.                     return c.tweens.push(r), r
  368.                 },
  369.                 stop: function(t) {
  370.                     var n = 0,
  371.                         r = t ? c.tweens.length : 0;
  372.                     if (i) return this;
  373.                     for (i = !0; n < r; n++) c.tweens[n].run(1);
  374.                     return t ? (s.notifyWith(e, [c, 1, 0]), s.resolveWith(e, [c, t])) : s.rejectWith(e, [c, t]), this
  375.                 }
  376.             }),
  377.             l = c.props;
  378.         for (z(l, c.opts.specialEasing); o < a; o++)
  379.             if (r = B.prefilters[o].call(c, e, l, c.opts)) return de.isFunction(r.stop) && (de._queueHooks(c.elem, c.opts.queue).stop = de.proxy(r.stop, r)), r;
  380.         return de.map(l, M, c), de.isFunction(c.opts.start) && c.opts.start.call(e, c), de.fx.timer(de.extend(u, {
  381.             elem: e,
  382.             anim: c,
  383.             queue: c.opts.queue
  384.         })), c.progress(c.opts.progress).done(c.opts.done, c.opts.complete).fail(c.opts.fail).always(c.opts.always)
  385.     }
  386.  
  387.     function K(e) {
  388.         var t = e.match(Ne) || [];
  389.         return t.join(" ")
  390.     }
  391.  
  392.     function U(e) {
  393.         return e.getAttribute && e.getAttribute("class") || ""
  394.     }
  395.  
  396.     function X(e, t, n, r) {
  397.         var i;
  398.         if (de.isArray(t)) de.each(t, function(t, i) {
  399.             n || St.test(e) ? r(e, i) : X(e + "[" + ("object" == typeof i && null != i ? t : "") + "]", i, n, r)
  400.         });
  401.         else if (n || "object" !== de.type(t)) r(e, t);
  402.         else
  403.             for (i in t) X(e + "[" + i + "]", t[i], n, r)
  404.     }
  405.  
  406.     function Y(e) {
  407.         return function(t, n) {
  408.             "string" != typeof t && (n = t, t = "*");
  409.             var r, i = 0,
  410.                 o = t.toLowerCase().match(Ne) || [];
  411.             if (de.isFunction(n))
  412.                 for (; r = o[i++];) "+" === r[0] ? (r = r.slice(1) || "*", (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n)
  413.         }
  414.     }
  415.  
  416.     function J(e, t, n, r) {
  417.         function i(s) {
  418.             var u;
  419.             return o[s] = !0, de.each(e[s] || [], function(e, s) {
  420.                 var c = s(t, n, r);
  421.                 return "string" != typeof c || a || o[c] ? a ? !(u = c) : void 0 : (t.dataTypes.unshift(c), i(c), !1)
  422.             }), u
  423.         }
  424.         var o = {},
  425.             a = e === It;
  426.         return i(t.dataTypes[0]) || !o["*"] && i("*")
  427.     }
  428.  
  429.     function V(e, t) {
  430.         var n, r, i = de.ajaxSettings.flatOptions || {};
  431.         for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]);
  432.         return r && de.extend(!0, e, r), e
  433.     }
  434.  
  435.     function G(e, t, n) {
  436.         for (var r, i, o, a, s = e.contents, u = e.dataTypes;
  437.             "*" === u[0];) u.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type"));
  438.         if (r)
  439.             for (i in s)
  440.                 if (s[i] && s[i].test(r)) {
  441.                     u.unshift(i);
  442.                     break
  443.                 }
  444.         if (u[0] in n) o = u[0];
  445.         else {
  446.             for (i in n) {
  447.                 if (!u[0] || e.converters[i + " " + u[0]]) {
  448.                     o = i;
  449.                     break
  450.                 }
  451.                 a || (a = i)
  452.             }
  453.             o = o || a
  454.         }
  455.         if (o) return o !== u[0] && u.unshift(o), n[o]
  456.     }
  457.  
  458.     function Q(e, t, n, r) {
  459.         var i, o, a, s, u, c = {},
  460.             l = e.dataTypes.slice();
  461.         if (l[1])
  462.             for (a in e.converters) c[a.toLowerCase()] = e.converters[a];
  463.         for (o = l.shift(); o;)
  464.             if (e.responseFields[o] && (n[e.responseFields[o]] = t), !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), u = o, o = l.shift())
  465.                 if ("*" === o) o = u;
  466.                 else if ("*" !== u && u !== o) {
  467.             if (a = c[u + " " + o] || c["* " + o], !a)
  468.                 for (i in c)
  469.                     if (s = i.split(" "), s[1] === o && (a = c[u + " " + s[0]] || c["* " + s[0]])) {
  470.                         a === !0 ? a = c[i] : c[i] !== !0 && (o = s[0], l.unshift(s[1]));
  471.                         break
  472.                     }
  473.             if (a !== !0)
  474.                 if (a && e["throws"]) t = a(t);
  475.                 else try {
  476.                     t = a(t)
  477.                 } catch (f) {
  478.                     return {
  479.                         state: "parsererror",
  480.                         error: a ? f : "No conversion from " + u + " to " + o
  481.                     }
  482.                 }
  483.         }
  484.         return {
  485.             state: "success",
  486.             data: t
  487.         }
  488.     }
  489.  
  490.     function Z(e) {
  491.         return de.isWindow(e) ? e : 9 === e.nodeType && e.defaultView
  492.     }
  493.     var ee = [],
  494.         te = e.document,
  495.         ne = Object.getPrototypeOf,
  496.         re = ee.slice,
  497.         ie = ee.concat,
  498.         oe = ee.push,
  499.         ae = ee.indexOf,
  500.         se = {},
  501.         ue = se.toString,
  502.         ce = se.hasOwnProperty,
  503.         le = ce.toString,
  504.         fe = le.call(Object),
  505.         pe = {},
  506.         he = "3.1.1",
  507.         de = function(e, t) {
  508.             return new de.fn.init(e, t)
  509.         },
  510.         ge = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
  511.         me = /^-ms-/,
  512.         ve = /-([a-z])/g,
  513.         ye = function(e, t) {
  514.             return t.toUpperCase()
  515.         };
  516.     de.fn = de.prototype = {
  517.         jquery: he,
  518.         constructor: de,
  519.         length: 0,
  520.         toArray: function() {
  521.             return re.call(this)
  522.         },
  523.         get: function(e) {
  524.             return null == e ? re.call(this) : e < 0 ? this[e + this.length] : this[e]
  525.         },
  526.         pushStack: function(e) {
  527.             var t = de.merge(this.constructor(), e);
  528.             return t.prevObject = this, t
  529.         },
  530.         each: function(e) {
  531.             return de.each(this, e)
  532.         },
  533.         map: function(e) {
  534.             return this.pushStack(de.map(this, function(t, n) {
  535.                 return e.call(t, n, t)
  536.             }))
  537.         },
  538.         slice: function() {
  539.             return this.pushStack(re.apply(this, arguments))
  540.         },
  541.         first: function() {
  542.             return this.eq(0)
  543.         },
  544.         last: function() {
  545.             return this.eq(-1)
  546.         },
  547.         eq: function(e) {
  548.             var t = this.length,
  549.                 n = +e + (e < 0 ? t : 0);
  550.             return this.pushStack(n >= 0 && n < t ? [this[n]] : [])
  551.         },
  552.         end: function() {
  553.             return this.prevObject || this.constructor()
  554.         },
  555.         push: oe,
  556.         sort: ee.sort,
  557.         splice: ee.splice
  558.     }, de.extend = de.fn.extend = function() {
  559.         var e, t, n, r, i, o, a = arguments[0] || {},
  560.             s = 1,
  561.             u = arguments.length,
  562.             c = !1;
  563.         for ("boolean" == typeof a && (c = a, a = arguments[s] || {}, s++), "object" == typeof a || de.isFunction(a) || (a = {}), s === u && (a = this, s--); s < u; s++)
  564.             if (null != (e = arguments[s]))
  565.                 for (t in e) n = a[t], r = e[t], a !== r && (c && r && (de.isPlainObject(r) || (i = de.isArray(r))) ? (i ? (i = !1, o = n && de.isArray(n) ? n : []) : o = n && de.isPlainObject(n) ? n : {}, a[t] = de.extend(c, o, r)) : void 0 !== r && (a[t] = r));
  566.         return a
  567.     }, de.extend({
  568.         expando: "jQuery" + (he + Math.random()).replace(/\D/g, ""),
  569.         isReady: !0,
  570.         error: function(e) {
  571.             throw new Error(e)
  572.         },
  573.         noop: function() {},
  574.         isFunction: function(e) {
  575.             return "function" === de.type(e)
  576.         },
  577.         isArray: Array.isArray,
  578.         isWindow: function(e) {
  579.             return null != e && e === e.window
  580.         },
  581.         isNumeric: function(e) {
  582.             var t = de.type(e);
  583.             return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e))
  584.         },
  585.         isPlainObject: function(e) {
  586.             var t, n;
  587.             return !(!e || "[object Object]" !== ue.call(e)) && (!(t = ne(e)) || (n = ce.call(t, "constructor") && t.constructor, "function" == typeof n && le.call(n) === fe))
  588.         },
  589.         isEmptyObject: function(e) {
  590.             var t;
  591.             for (t in e) return !1;
  592.             return !0
  593.         },
  594.         type: function(e) {
  595.             return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? se[ue.call(e)] || "object" : typeof e
  596.         },
  597.         globalEval: function(e) {
  598.             n(e)
  599.         },
  600.         camelCase: function(e) {
  601.             return e.replace(me, "ms-").replace(ve, ye)
  602.         },
  603.         nodeName: function(e, t) {
  604.             return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
  605.         },
  606.         each: function(e, t) {
  607.             var n, i = 0;
  608.             if (r(e))
  609.                 for (n = e.length; i < n && t.call(e[i], i, e[i]) !== !1; i++);
  610.             else
  611.                 for (i in e)
  612.                     if (t.call(e[i], i, e[i]) === !1) break; return e
  613.         },
  614.         trim: function(e) {
  615.             return null == e ? "" : (e + "").replace(ge, "")
  616.         },
  617.         makeArray: function(e, t) {
  618.             var n = t || [];
  619.             return null != e && (r(Object(e)) ? de.merge(n, "string" == typeof e ? [e] : e) : oe.call(n, e)), n
  620.         },
  621.         inArray: function(e, t, n) {
  622.             return null == t ? -1 : ae.call(t, e, n)
  623.         },
  624.         merge: function(e, t) {
  625.             for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r];
  626.             return e.length = i, e
  627.         },
  628.         grep: function(e, t, n) {
  629.             for (var r, i = [], o = 0, a = e.length, s = !n; o < a; o++) r = !t(e[o], o), r !== s && i.push(e[o]);
  630.             return i
  631.         },
  632.         map: function(e, t, n) {
  633.             var i, o, a = 0,
  634.                 s = [];
  635.             if (r(e))
  636.                 for (i = e.length; a < i; a++) o = t(e[a], a, n), null != o && s.push(o);
  637.             else
  638.                 for (a in e) o = t(e[a], a, n), null != o && s.push(o);
  639.             return ie.apply([], s)
  640.         },
  641.         guid: 1,
  642.         proxy: function(e, t) {
  643.             var n, r, i;
  644.             if ("string" == typeof t && (n = e[t], t = e, e = n), de.isFunction(e)) return r = re.call(arguments, 2), i = function() {
  645.                 return e.apply(t || this, r.concat(re.call(arguments)))
  646.             }, i.guid = e.guid = e.guid || de.guid++, i
  647.         },
  648.         now: Date.now,
  649.         support: pe
  650.     }), "function" == typeof Symbol && (de.fn[Symbol.iterator] = ee[Symbol.iterator]), de.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t) {
  651.         se["[object " + t + "]"] = t.toLowerCase()
  652.     });
  653.     var be = function(e) {
  654.         function t(e, t, n, r) {
  655.             var i, o, a, s, u, c, l, p = t && t.ownerDocument,
  656.                 d = t ? t.nodeType : 9;
  657.             if (n = n || [], "string" != typeof e || !e || 1 !== d && 9 !== d && 11 !== d) return n;
  658.             if (!r && ((t ? t.ownerDocument || t : M) !== L && F(t), t = t || L, O)) {
  659.                 if (11 !== d && (u = ve.exec(e)))
  660.                     if (i = u[1]) {
  661.                         if (9 === d) {
  662.                             if (!(a = t.getElementById(i))) return n;
  663.                             if (a.id === i) return n.push(a), n
  664.                         } else if (p && (a = p.getElementById(i)) && P(t, a) && a.id === i) return n.push(a), n
  665.                     } else {
  666.                         if (u[2]) return Q.apply(n, t.getElementsByTagName(e)), n;
  667.                         if ((i = u[3]) && _.getElementsByClassName && t.getElementsByClassName) return Q.apply(n, t.getElementsByClassName(i)), n
  668.                     }
  669.                 if (_.qsa && !U[e + " "] && (!q || !q.test(e))) {
  670.                     if (1 !== d) p = t, l = e;
  671.                     else if ("object" !== t.nodeName.toLowerCase()) {
  672.                         for ((s = t.getAttribute("id")) ? s = s.replace(xe, _e) : t.setAttribute("id", s = $), c = S(e), o = c.length; o--;) c[o] = "#" + s + " " + h(c[o]);
  673.                         l = c.join(","), p = ye.test(e) && f(t.parentNode) || t
  674.                     }
  675.                     if (l) try {
  676.                         return Q.apply(n, p.querySelectorAll(l)), n
  677.                     } catch (g) {} finally {
  678.                         s === $ && t.removeAttribute("id")
  679.                     }
  680.                 }
  681.             }
  682.             return j(e.replace(se, "$1"), t, n, r)
  683.         }
  684.  
  685.         function n() {
  686.             function e(n, r) {
  687.                 return t.push(n + " ") > k.cacheLength && delete e[t.shift()], e[n + " "] = r
  688.             }
  689.             var t = [];
  690.             return e
  691.         }
  692.  
  693.         function r(e) {
  694.             return e[$] = !0, e
  695.         }
  696.  
  697.         function i(e) {
  698.             var t = L.createElement("fieldset");
  699.             try {
  700.                 return !!e(t)
  701.             } catch (n) {
  702.                 return !1
  703.             } finally {
  704.                 t.parentNode && t.parentNode.removeChild(t), t = null
  705.             }
  706.         }
  707.  
  708.         function o(e, t) {
  709.             for (var n = e.split("|"), r = n.length; r--;) k.attrHandle[n[r]] = t
  710.         }
  711.  
  712.         function a(e, t) {
  713.             var n = t && e,
  714.                 r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex;
  715.             if (r) return r;
  716.             if (n)
  717.                 for (; n = n.nextSibling;)
  718.                     if (n === t) return -1;
  719.             return e ? 1 : -1
  720.         }
  721.  
  722.         function s(e) {
  723.             return function(t) {
  724.                 var n = t.nodeName.toLowerCase();
  725.                 return "input" === n && t.type === e
  726.             }
  727.         }
  728.  
  729.         function u(e) {
  730.             return function(t) {
  731.                 var n = t.nodeName.toLowerCase();
  732.                 return ("input" === n || "button" === n) && t.type === e
  733.             }
  734.         }
  735.  
  736.         function c(e) {
  737.             return function(t) {
  738.                 return "form" in t ? t.parentNode && t.disabled === !1 ? "label" in t ? "label" in t.parentNode ? t.parentNode.disabled === e : t.disabled === e : t.isDisabled === e || t.isDisabled !== !e && Te(t) === e : t.disabled === e : "label" in t && t.disabled === e
  739.             }
  740.         }
  741.  
  742.         function l(e) {
  743.             return r(function(t) {
  744.                 return t = +t, r(function(n, r) {
  745.                     for (var i, o = e([], n.length, t), a = o.length; a--;) n[i = o[a]] && (n[i] = !(r[i] = n[i]))
  746.                 })
  747.             })
  748.         }
  749.  
  750.         function f(e) {
  751.             return e && "undefined" != typeof e.getElementsByTagName && e
  752.         }
  753.  
  754.         function p() {}
  755.  
  756.         function h(e) {
  757.             for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value;
  758.             return r
  759.         }
  760.  
  761.         function d(e, t, n) {
  762.             var r = t.dir,
  763.                 i = t.next,
  764.                 o = i || r,
  765.                 a = n && "parentNode" === o,
  766.                 s = z++;
  767.             return t.first ? function(t, n, i) {
  768.                 for (; t = t[r];)
  769.                     if (1 === t.nodeType || a) return e(t, n, i);
  770.                 return !1
  771.             } : function(t, n, u) {
  772.                 var c, l, f, p = [W, s];
  773.                 if (u) {
  774.                     for (; t = t[r];)
  775.                         if ((1 === t.nodeType || a) && e(t, n, u)) return !0
  776.                 } else
  777.                     for (; t = t[r];)
  778.                         if (1 === t.nodeType || a)
  779.                             if (f = t[$] || (t[$] = {}), l = f[t.uniqueID] || (f[t.uniqueID] = {}), i && i === t.nodeName.toLowerCase()) t = t[r] || t;
  780.                             else {
  781.                                 if ((c = l[o]) && c[0] === W && c[1] === s) return p[2] = c[2];
  782.                                 if (l[o] = p, p[2] = e(t, n, u)) return !0
  783.                             } return !1
  784.             }
  785.         }
  786.  
  787.         function g(e) {
  788.             return e.length > 1 ? function(t, n, r) {
  789.                 for (var i = e.length; i--;)
  790.                     if (!e[i](t, n, r)) return !1;
  791.                 return !0
  792.             } : e[0]
  793.         }
  794.  
  795.         function m(e, n, r) {
  796.             for (var i = 0, o = n.length; i < o; i++) t(e, n[i], r);
  797.             return r
  798.         }
  799.  
  800.         function v(e, t, n, r, i) {
  801.             for (var o, a = [], s = 0, u = e.length, c = null != t; s < u; s++)(o = e[s]) && (n && !n(o, r, i) || (a.push(o), c && t.push(s)));
  802.             return a
  803.         }
  804.  
  805.         function y(e, t, n, i, o, a) {
  806.             return i && !i[$] && (i = y(i)), o && !o[$] && (o = y(o, a)), r(function(r, a, s, u) {
  807.                 var c, l, f, p = [],
  808.                     h = [],
  809.                     d = a.length,
  810.                     g = r || m(t || "*", s.nodeType ? [s] : s, []),
  811.                     y = !e || !r && t ? g : v(g, p, e, s, u),
  812.                     b = n ? o || (r ? e : d || i) ? [] : a : y;
  813.                 if (n && n(y, b, s, u), i)
  814.                     for (c = v(b, h), i(c, [], s, u), l = c.length; l--;)(f = c[l]) && (b[h[l]] = !(y[h[l]] = f));
  815.                 if (r) {
  816.                     if (o || e) {
  817.                         if (o) {
  818.                             for (c = [], l = b.length; l--;)(f = b[l]) && c.push(y[l] = f);
  819.                             o(null, b = [], c, u)
  820.                         }
  821.                         for (l = b.length; l--;)(f = b[l]) && (c = o ? ee(r, f) : p[l]) > -1 && (r[c] = !(a[c] = f))
  822.                     }
  823.                 } else b = v(b === a ? b.splice(d, b.length) : b), o ? o(null, a, b, u) : Q.apply(a, b)
  824.             })
  825.         }
  826.  
  827.         function b(e) {
  828.             for (var t, n, r, i = e.length, o = k.relative[e[0].type], a = o || k.relative[" "], s = o ? 1 : 0, u = d(function(e) {
  829.                     return e === t
  830.                 }, a, !0), c = d(function(e) {
  831.                     return ee(t, e) > -1
  832.                 }, a, !0), l = [function(e, n, r) {
  833.                     var i = !o && (r || n !== A) || ((t = n).nodeType ? u(e, n, r) : c(e, n, r));
  834.                     return t = null, i
  835.                 }]; s < i; s++)
  836.                 if (n = k.relative[e[s].type]) l = [d(g(l), n)];
  837.                 else {
  838.                     if (n = k.filter[e[s].type].apply(null, e[s].matches), n[$]) {
  839.                         for (r = ++s; r < i && !k.relative[e[r].type]; r++);
  840.                         return y(s > 1 && g(l), s > 1 && h(e.slice(0, s - 1).concat({
  841.                             value: " " === e[s - 2].type ? "*" : ""
  842.                         })).replace(se, "$1"), n, s < r && b(e.slice(s, r)), r < i && b(e = e.slice(r)), r < i && h(e))
  843.                     }
  844.                     l.push(n)
  845.                 }
  846.             return g(l)
  847.         }
  848.  
  849.         function w(e, n) {
  850.             var i = n.length > 0,
  851.                 o = e.length > 0,
  852.                 a = function(r, a, s, u, c) {
  853.                     var l, f, p, h = 0,
  854.                         d = "0",
  855.                         g = r && [],
  856.                         m = [],
  857.                         y = A,
  858.                         b = r || o && k.find.TAG("*", c),
  859.                         w = W += null == y ? 1 : Math.random() || .1,
  860.                         x = b.length;
  861.                     for (c && (A = a === L || a || c); d !== x && null != (l = b[d]); d++) {
  862.                         if (o && l) {
  863.                             for (f = 0, a || l.ownerDocument === L || (F(l), s = !O); p = e[f++];)
  864.                                 if (p(l, a || L, s)) {
  865.                                     u.push(l);
  866.                                     break
  867.                                 }
  868.                             c && (W = w)
  869.                         }
  870.                         i && ((l = !p && l) && h--, r && g.push(l))
  871.                     }
  872.                     if (h += d, i && d !== h) {
  873.                         for (f = 0; p = n[f++];) p(g, m, a, s);
  874.                         if (r) {
  875.                             if (h > 0)
  876.                                 for (; d--;) g[d] || m[d] || (m[d] = V.call(u));
  877.                             m = v(m)
  878.                         }
  879.                         Q.apply(u, m), c && !r && m.length > 0 && h + n.length > 1 && t.uniqueSort(u)
  880.                     }
  881.                     return c && (W = w, A = y), g
  882.                 };
  883.             return i ? r(a) : a
  884.         }
  885.         var x, _, k, T, C, S, E, j, A, N, D, F, L, R, O, q, H, I, P, $ = "sizzle" + 1 * new Date,
  886.             M = e.document,
  887.             W = 0,
  888.             z = 0,
  889.             B = n(),
  890.             K = n(),
  891.             U = n(),
  892.             X = function(e, t) {
  893.                 return e === t && (D = !0), 0
  894.             },
  895.             Y = {}.hasOwnProperty,
  896.             J = [],
  897.             V = J.pop,
  898.             G = J.push,
  899.             Q = J.push,
  900.             Z = J.slice,
  901.             ee = function(e, t) {
  902.                 for (var n = 0, r = e.length; n < r; n++)
  903.                     if (e[n] === t) return n;
  904.                 return -1
  905.             },
  906.             te = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
  907.             ne = "[\\x20\\t\\r\\n\\f]",
  908.             re = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
  909.             ie = "\\[" + ne + "*(" + re + ")(?:" + ne + "*([*^$|!~]?=)" + ne + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + re + "))|)" + ne + "*\\]",
  910.             oe = ":(" + re + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + ie + ")*)|.*)\\)|)",
  911.             ae = new RegExp(ne + "+", "g"),
  912.             se = new RegExp("^" + ne + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ne + "+$", "g"),
  913.             ue = new RegExp("^" + ne + "*," + ne + "*"),
  914.             ce = new RegExp("^" + ne + "*([>+~]|" + ne + ")" + ne + "*"),
  915.             le = new RegExp("=" + ne + "*([^\\]'\"]*?)" + ne + "*\\]", "g"),
  916.             fe = new RegExp(oe),
  917.             pe = new RegExp("^" + re + "$"),
  918.             he = {
  919.                 ID: new RegExp("^#(" + re + ")"),
  920.                 CLASS: new RegExp("^\\.(" + re + ")"),
  921.                 TAG: new RegExp("^(" + re + "|[*])"),
  922.                 ATTR: new RegExp("^" + ie),
  923.                 PSEUDO: new RegExp("^" + oe),
  924.                 CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ne + "*(even|odd|(([+-]|)(\\d*)n|)" + ne + "*(?:([+-]|)" + ne + "*(\\d+)|))" + ne + "*\\)|)", "i"),
  925.                 bool: new RegExp("^(?:" + te + ")$", "i"),
  926.                 needsContext: new RegExp("^" + ne + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ne + "*((?:-\\d)?\\d*)" + ne + "*\\)|)(?=[^-]|$)", "i")
  927.             },
  928.             de = /^(?:input|select|textarea|button)$/i,
  929.             ge = /^h\d$/i,
  930.             me = /^[^{]+\{\s*\[native \w/,
  931.             ve = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
  932.             ye = /[+~]/,
  933.             be = new RegExp("\\\\([\\da-f]{1,6}" + ne + "?|(" + ne + ")|.)", "ig"),
  934.             we = function(e, t, n) {
  935.                 var r = "0x" + t - 65536;
  936.                 return r !== r || n ? t : r < 0 ? String.fromCharCode(r + 65536) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320)
  937.             },
  938.             xe = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
  939.             _e = function(e, t) {
  940.                 return t ? "\0" === e ? "�" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e
  941.             },
  942.             ke = function() {
  943.                 F()
  944.             },
  945.             Te = d(function(e) {
  946.                 return e.disabled === !0 && ("form" in e || "label" in e)
  947.             }, {
  948.                 dir: "parentNode",
  949.                 next: "legend"
  950.             });
  951.         try {
  952.             Q.apply(J = Z.call(M.childNodes), M.childNodes), J[M.childNodes.length].nodeType
  953.         } catch (Ce) {
  954.             Q = {
  955.                 apply: J.length ? function(e, t) {
  956.                     G.apply(e, Z.call(t))
  957.                 } : function(e, t) {
  958.                     for (var n = e.length, r = 0; e[n++] = t[r++];);
  959.                     e.length = n - 1
  960.                 }
  961.             }
  962.         }
  963.         _ = t.support = {}, C = t.isXML = function(e) {
  964.             var t = e && (e.ownerDocument || e).documentElement;
  965.             return !!t && "HTML" !== t.nodeName
  966.         }, F = t.setDocument = function(e) {
  967.             var t, n, r = e ? e.ownerDocument || e : M;
  968.             return r !== L && 9 === r.nodeType && r.documentElement ? (L = r, R = L.documentElement, O = !C(L), M !== L && (n = L.defaultView) && n.top !== n && (n.addEventListener ? n.addEventListener("unload", ke, !1) : n.attachEvent && n.attachEvent("onunload", ke)), _.attributes = i(function(e) {
  969.                 return e.className = "i", !e.getAttribute("className")
  970.             }), _.getElementsByTagName = i(function(e) {
  971.                 return e.appendChild(L.createComment("")), !e.getElementsByTagName("*").length
  972.             }), _.getElementsByClassName = me.test(L.getElementsByClassName), _.getById = i(function(e) {
  973.                 return R.appendChild(e).id = $, !L.getElementsByName || !L.getElementsByName($).length
  974.             }), _.getById ? (k.filter.ID = function(e) {
  975.                 var t = e.replace(be, we);
  976.                 return function(e) {
  977.                     return e.getAttribute("id") === t
  978.                 }
  979.             }, k.find.ID = function(e, t) {
  980.                 if ("undefined" != typeof t.getElementById && O) {
  981.                     var n = t.getElementById(e);
  982.                     return n ? [n] : []
  983.                 }
  984.             }) : (k.filter.ID = function(e) {
  985.                 var t = e.replace(be, we);
  986.                 return function(e) {
  987.                     var n = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id");
  988.                     return n && n.value === t
  989.                 }
  990.             }, k.find.ID = function(e, t) {
  991.                 if ("undefined" != typeof t.getElementById && O) {
  992.                     var n, r, i, o = t.getElementById(e);
  993.                     if (o) {
  994.                         if (n = o.getAttributeNode("id"), n && n.value === e) return [o];
  995.                         for (i = t.getElementsByName(e), r = 0; o = i[r++];)
  996.                             if (n = o.getAttributeNode("id"), n && n.value === e) return [o]
  997.                     }
  998.                     return []
  999.                 }
  1000.             }), k.find.TAG = _.getElementsByTagName ? function(e, t) {
  1001.                 return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : _.qsa ? t.querySelectorAll(e) : void 0
  1002.             } : function(e, t) {
  1003.                 var n, r = [],
  1004.                     i = 0,
  1005.                     o = t.getElementsByTagName(e);
  1006.                 if ("*" === e) {
  1007.                     for (; n = o[i++];) 1 === n.nodeType && r.push(n);
  1008.                     return r
  1009.                 }
  1010.                 return o
  1011.             }, k.find.CLASS = _.getElementsByClassName && function(e, t) {
  1012.                 if ("undefined" != typeof t.getElementsByClassName && O) return t.getElementsByClassName(e)
  1013.             }, H = [], q = [], (_.qsa = me.test(L.querySelectorAll)) && (i(function(e) {
  1014.                 R.appendChild(e).innerHTML = "<a id='" + $ + "'></a><select id='" + $ + "-\r\\' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && q.push("[*^$]=" + ne + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || q.push("\\[" + ne + "*(?:value|" + te + ")"), e.querySelectorAll("[id~=" + $ + "-]").length || q.push("~="), e.querySelectorAll(":checked").length || q.push(":checked"), e.querySelectorAll("a#" + $ + "+*").length || q.push(".#.+[+~]")
  1015.             }), i(function(e) {
  1016.                 e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";
  1017.                 var t = L.createElement("input");
  1018.                 t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && q.push("name" + ne + "*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && q.push(":enabled", ":disabled"), R.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && q.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), q.push(",.*:")
  1019.             })), (_.matchesSelector = me.test(I = R.matches || R.webkitMatchesSelector || R.mozMatchesSelector || R.oMatchesSelector || R.msMatchesSelector)) && i(function(e) {
  1020.                 _.disconnectedMatch = I.call(e, "*"), I.call(e, "[s!='']:x"), H.push("!=", oe)
  1021.             }), q = q.length && new RegExp(q.join("|")), H = H.length && new RegExp(H.join("|")), t = me.test(R.compareDocumentPosition), P = t || me.test(R.contains) ? function(e, t) {
  1022.                 var n = 9 === e.nodeType ? e.documentElement : e,
  1023.                     r = t && t.parentNode;
  1024.                 return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)))
  1025.             } : function(e, t) {
  1026.                 if (t)
  1027.                     for (; t = t.parentNode;)
  1028.                         if (t === e) return !0;
  1029.                 return !1
  1030.             }, X = t ? function(e, t) {
  1031.                 if (e === t) return D = !0, 0;
  1032.                 var n = !e.compareDocumentPosition - !t.compareDocumentPosition;
  1033.                 return n ? n : (n = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1, 1 & n || !_.sortDetached && t.compareDocumentPosition(e) === n ? e === L || e.ownerDocument === M && P(M, e) ? -1 : t === L || t.ownerDocument === M && P(M, t) ? 1 : N ? ee(N, e) - ee(N, t) : 0 : 4 & n ? -1 : 1)
  1034.             } : function(e, t) {
  1035.                 if (e === t) return D = !0, 0;
  1036.                 var n, r = 0,
  1037.                     i = e.parentNode,
  1038.                     o = t.parentNode,
  1039.                     s = [e],
  1040.                     u = [t];
  1041.                 if (!i || !o) return e === L ? -1 : t === L ? 1 : i ? -1 : o ? 1 : N ? ee(N, e) - ee(N, t) : 0;
  1042.                 if (i === o) return a(e, t);
  1043.                 for (n = e; n = n.parentNode;) s.unshift(n);
  1044.                 for (n = t; n = n.parentNode;) u.unshift(n);
  1045.                 for (; s[r] === u[r];) r++;
  1046.                 return r ? a(s[r], u[r]) : s[r] === M ? -1 : u[r] === M ? 1 : 0
  1047.             }, L) : L
  1048.         }, t.matches = function(e, n) {
  1049.             return t(e, null, null, n)
  1050.         }, t.matchesSelector = function(e, n) {
  1051.             if ((e.ownerDocument || e) !== L && F(e), n = n.replace(le, "='$1']"), _.matchesSelector && O && !U[n + " "] && (!H || !H.test(n)) && (!q || !q.test(n))) try {
  1052.                 var r = I.call(e, n);
  1053.                 if (r || _.disconnectedMatch || e.document && 11 !== e.document.nodeType) return r
  1054.             } catch (i) {}
  1055.             return t(n, L, null, [e]).length > 0
  1056.         }, t.contains = function(e, t) {
  1057.             return (e.ownerDocument || e) !== L && F(e), P(e, t)
  1058.         }, t.attr = function(e, t) {
  1059.             (e.ownerDocument || e) !== L && F(e);
  1060.             var n = k.attrHandle[t.toLowerCase()],
  1061.                 r = n && Y.call(k.attrHandle, t.toLowerCase()) ? n(e, t, !O) : void 0;
  1062.             return void 0 !== r ? r : _.attributes || !O ? e.getAttribute(t) : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
  1063.         }, t.escape = function(e) {
  1064.             return (e + "").replace(xe, _e)
  1065.         }, t.error = function(e) {
  1066.             throw new Error("Syntax error, unrecognized expression: " + e)
  1067.         }, t.uniqueSort = function(e) {
  1068.             var t, n = [],
  1069.                 r = 0,
  1070.                 i = 0;
  1071.             if (D = !_.detectDuplicates, N = !_.sortStable && e.slice(0), e.sort(X), D) {
  1072.                 for (; t = e[i++];) t === e[i] && (r = n.push(i));
  1073.                 for (; r--;) e.splice(n[r], 1)
  1074.             }
  1075.             return N = null, e
  1076.         }, T = t.getText = function(e) {
  1077.             var t, n = "",
  1078.                 r = 0,
  1079.                 i = e.nodeType;
  1080.             if (i) {
  1081.                 if (1 === i || 9 === i || 11 === i) {
  1082.                     if ("string" == typeof e.textContent) return e.textContent;
  1083.                     for (e = e.firstChild; e; e = e.nextSibling) n += T(e)
  1084.                 } else if (3 === i || 4 === i) return e.nodeValue
  1085.             } else
  1086.                 for (; t = e[r++];) n += T(t);
  1087.             return n
  1088.         }, k = t.selectors = {
  1089.             cacheLength: 50,
  1090.             createPseudo: r,
  1091.             match: he,
  1092.             attrHandle: {},
  1093.             find: {},
  1094.             relative: {
  1095.                 ">": {
  1096.                     dir: "parentNode",
  1097.                     first: !0
  1098.                 },
  1099.                 " ": {
  1100.                     dir: "parentNode"
  1101.                 },
  1102.                 "+": {
  1103.                     dir: "previousSibling",
  1104.                     first: !0
  1105.                 },
  1106.                 "~": {
  1107.                     dir: "previousSibling"
  1108.                 }
  1109.             },
  1110.             preFilter: {
  1111.                 ATTR: function(e) {
  1112.                     return e[1] = e[1].replace(be, we), e[3] = (e[3] || e[4] || e[5] || "").replace(be, we), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4)
  1113.                 },
  1114.                 CHILD: function(e) {
  1115.                     return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || t.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && t.error(e[0]), e
  1116.                 },
  1117.                 PSEUDO: function(e) {
  1118.                     var t, n = !e[6] && e[2];
  1119.                     return he.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && fe.test(n) && (t = S(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3))
  1120.                 }
  1121.             },
  1122.             filter: {
  1123.                 TAG: function(e) {
  1124.                     var t = e.replace(be, we).toLowerCase();
  1125.                     return "*" === e ? function() {
  1126.                         return !0
  1127.                     } : function(e) {
  1128.                         return e.nodeName && e.nodeName.toLowerCase() === t
  1129.                     }
  1130.                 },
  1131.                 CLASS: function(e) {
  1132.                     var t = B[e + " "];
  1133.                     return t || (t = new RegExp("(^|" + ne + ")" + e + "(" + ne + "|$)")) && B(e, function(e) {
  1134.                         return t.test("string" == typeof e.className && e.className || "undefined" != typeof e.getAttribute && e.getAttribute("class") || "")
  1135.                     })
  1136.                 },
  1137.                 ATTR: function(e, n, r) {
  1138.                     return function(i) {
  1139.                         var o = t.attr(i, e);
  1140.                         return null == o ? "!=" === n : !n || (o += "", "=" === n ? o === r : "!=" === n ? o !== r : "^=" === n ? r && 0 === o.indexOf(r) : "*=" === n ? r && o.indexOf(r) > -1 : "$=" === n ? r && o.slice(-r.length) === r : "~=" === n ? (" " + o.replace(ae, " ") + " ").indexOf(r) > -1 : "|=" === n && (o === r || o.slice(0, r.length + 1) === r + "-"))
  1141.                     }
  1142.                 },
  1143.                 CHILD: function(e, t, n, r, i) {
  1144.                     var o = "nth" !== e.slice(0, 3),
  1145.                         a = "last" !== e.slice(-4),
  1146.                         s = "of-type" === t;
  1147.                     return 1 === r && 0 === i ? function(e) {
  1148.                         return !!e.parentNode
  1149.                     } : function(t, n, u) {
  1150.                         var c, l, f, p, h, d, g = o !== a ? "nextSibling" : "previousSibling",
  1151.                             m = t.parentNode,
  1152.                             v = s && t.nodeName.toLowerCase(),
  1153.                             y = !u && !s,
  1154.                             b = !1;
  1155.                         if (m) {
  1156.                             if (o) {
  1157.                                 for (; g;) {
  1158.                                     for (p = t; p = p[g];)
  1159.                                         if (s ? p.nodeName.toLowerCase() === v : 1 === p.nodeType) return !1;
  1160.                                     d = g = "only" === e && !d && "nextSibling"
  1161.                                 }
  1162.                                 return !0
  1163.                             }
  1164.                             if (d = [a ? m.firstChild : m.lastChild], a && y) {
  1165.                                 for (p = m, f = p[$] || (p[$] = {}), l = f[p.uniqueID] || (f[p.uniqueID] = {}), c = l[e] || [], h = c[0] === W && c[1], b = h && c[2], p = h && m.childNodes[h]; p = ++h && p && p[g] || (b = h = 0) || d.pop();)
  1166.                                     if (1 === p.nodeType && ++b && p === t) {
  1167.                                         l[e] = [W, h, b];
  1168.                                         break
  1169.                                     }
  1170.                             } else if (y && (p = t, f = p[$] || (p[$] = {}), l = f[p.uniqueID] || (f[p.uniqueID] = {}), c = l[e] || [], h = c[0] === W && c[1], b = h), b === !1)
  1171.                                 for (;
  1172.                                     (p = ++h && p && p[g] || (b = h = 0) || d.pop()) && ((s ? p.nodeName.toLowerCase() !== v : 1 !== p.nodeType) || !++b || (y && (f = p[$] || (p[$] = {}), l = f[p.uniqueID] || (f[p.uniqueID] = {}), l[e] = [W, b]), p !== t)););
  1173.                             return b -= i, b === r || b % r === 0 && b / r >= 0
  1174.                         }
  1175.                     }
  1176.                 },
  1177.                 PSEUDO: function(e, n) {
  1178.                     var i, o = k.pseudos[e] || k.setFilters[e.toLowerCase()] || t.error("unsupported pseudo: " + e);
  1179.                     return o[$] ? o(n) : o.length > 1 ? (i = [e, e, "", n], k.setFilters.hasOwnProperty(e.toLowerCase()) ? r(function(e, t) {
  1180.                         for (var r, i = o(e, n), a = i.length; a--;) r = ee(e, i[a]), e[r] = !(t[r] = i[a])
  1181.                     }) : function(e) {
  1182.                         return o(e, 0, i)
  1183.                     }) : o
  1184.                 }
  1185.             },
  1186.             pseudos: {
  1187.                 not: r(function(e) {
  1188.                     var t = [],
  1189.                         n = [],
  1190.                         i = E(e.replace(se, "$1"));
  1191.                     return i[$] ? r(function(e, t, n, r) {
  1192.                         for (var o, a = i(e, null, r, []), s = e.length; s--;)(o = a[s]) && (e[s] = !(t[s] = o))
  1193.                     }) : function(e, r, o) {
  1194.                         return t[0] = e, i(t, null, o, n), t[0] = null, !n.pop()
  1195.                     }
  1196.                 }),
  1197.                 has: r(function(e) {
  1198.                     return function(n) {
  1199.                         return t(e, n).length > 0
  1200.                     }
  1201.                 }),
  1202.                 contains: r(function(e) {
  1203.                     return e = e.replace(be, we),
  1204.                         function(t) {
  1205.                             return (t.textContent || t.innerText || T(t)).indexOf(e) > -1
  1206.                         }
  1207.                 }),
  1208.                 lang: r(function(e) {
  1209.                     return pe.test(e || "") || t.error("unsupported lang: " + e), e = e.replace(be, we).toLowerCase(),
  1210.                         function(t) {
  1211.                             var n;
  1212.                             do
  1213.                                 if (n = O ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return n = n.toLowerCase(), n === e || 0 === n.indexOf(e + "-");
  1214.                             while ((t = t.parentNode) && 1 === t.nodeType);
  1215.                             return !1;
  1216.                         }
  1217.                 }),
  1218.                 target: function(t) {
  1219.                     var n = e.location && e.location.hash;
  1220.                     return n && n.slice(1) === t.id
  1221.                 },
  1222.                 root: function(e) {
  1223.                     return e === R
  1224.                 },
  1225.                 focus: function(e) {
  1226.                     return e === L.activeElement && (!L.hasFocus || L.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
  1227.                 },
  1228.                 enabled: c(!1),
  1229.                 disabled: c(!0),
  1230.                 checked: function(e) {
  1231.                     var t = e.nodeName.toLowerCase();
  1232.                     return "input" === t && !!e.checked || "option" === t && !!e.selected
  1233.                 },
  1234.                 selected: function(e) {
  1235.                     return e.parentNode && e.parentNode.selectedIndex, e.selected === !0
  1236.                 },
  1237.                 empty: function(e) {
  1238.                     for (e = e.firstChild; e; e = e.nextSibling)
  1239.                         if (e.nodeType < 6) return !1;
  1240.                     return !0
  1241.                 },
  1242.                 parent: function(e) {
  1243.                     return !k.pseudos.empty(e)
  1244.                 },
  1245.                 header: function(e) {
  1246.                     return ge.test(e.nodeName)
  1247.                 },
  1248.                 input: function(e) {
  1249.                     return de.test(e.nodeName)
  1250.                 },
  1251.                 button: function(e) {
  1252.                     var t = e.nodeName.toLowerCase();
  1253.                     return "input" === t && "button" === e.type || "button" === t
  1254.                 },
  1255.                 text: function(e) {
  1256.                     var t;
  1257.                     return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
  1258.                 },
  1259.                 first: l(function() {
  1260.                     return [0]
  1261.                 }),
  1262.                 last: l(function(e, t) {
  1263.                     return [t - 1]
  1264.                 }),
  1265.                 eq: l(function(e, t, n) {
  1266.                     return [n < 0 ? n + t : n]
  1267.                 }),
  1268.                 even: l(function(e, t) {
  1269.                     for (var n = 0; n < t; n += 2) e.push(n);
  1270.                     return e
  1271.                 }),
  1272.                 odd: l(function(e, t) {
  1273.                     for (var n = 1; n < t; n += 2) e.push(n);
  1274.                     return e
  1275.                 }),
  1276.                 lt: l(function(e, t, n) {
  1277.                     for (var r = n < 0 ? n + t : n; --r >= 0;) e.push(r);
  1278.                     return e
  1279.                 }),
  1280.                 gt: l(function(e, t, n) {
  1281.                     for (var r = n < 0 ? n + t : n; ++r < t;) e.push(r);
  1282.                     return e
  1283.                 })
  1284.             }
  1285.         }, k.pseudos.nth = k.pseudos.eq;
  1286.         for (x in {
  1287.                 radio: !0,
  1288.                 checkbox: !0,
  1289.                 file: !0,
  1290.                 password: !0,
  1291.                 image: !0
  1292.             }) k.pseudos[x] = s(x);
  1293.         for (x in {
  1294.                 submit: !0,
  1295.                 reset: !0
  1296.             }) k.pseudos[x] = u(x);
  1297.         return p.prototype = k.filters = k.pseudos, k.setFilters = new p, S = t.tokenize = function(e, n) {
  1298.             var r, i, o, a, s, u, c, l = K[e + " "];
  1299.             if (l) return n ? 0 : l.slice(0);
  1300.             for (s = e, u = [], c = k.preFilter; s;) {
  1301.                 r && !(i = ue.exec(s)) || (i && (s = s.slice(i[0].length) || s), u.push(o = [])), r = !1, (i = ce.exec(s)) && (r = i.shift(), o.push({
  1302.                     value: r,
  1303.                     type: i[0].replace(se, " ")
  1304.                 }), s = s.slice(r.length));
  1305.                 for (a in k.filter) !(i = he[a].exec(s)) || c[a] && !(i = c[a](i)) || (r = i.shift(), o.push({
  1306.                     value: r,
  1307.                     type: a,
  1308.                     matches: i
  1309.                 }), s = s.slice(r.length));
  1310.                 if (!r) break
  1311.             }
  1312.             return n ? s.length : s ? t.error(e) : K(e, u).slice(0)
  1313.         }, E = t.compile = function(e, t) {
  1314.             var n, r = [],
  1315.                 i = [],
  1316.                 o = U[e + " "];
  1317.             if (!o) {
  1318.                 for (t || (t = S(e)), n = t.length; n--;) o = b(t[n]), o[$] ? r.push(o) : i.push(o);
  1319.                 o = U(e, w(i, r)), o.selector = e
  1320.             }
  1321.             return o
  1322.         }, j = t.select = function(e, t, n, r) {
  1323.             var i, o, a, s, u, c = "function" == typeof e && e,
  1324.                 l = !r && S(e = c.selector || e);
  1325.             if (n = n || [], 1 === l.length) {
  1326.                 if (o = l[0] = l[0].slice(0), o.length > 2 && "ID" === (a = o[0]).type && 9 === t.nodeType && O && k.relative[o[1].type]) {
  1327.                     if (t = (k.find.ID(a.matches[0].replace(be, we), t) || [])[0], !t) return n;
  1328.                     c && (t = t.parentNode), e = e.slice(o.shift().value.length)
  1329.                 }
  1330.                 for (i = he.needsContext.test(e) ? 0 : o.length; i-- && (a = o[i], !k.relative[s = a.type]);)
  1331.                     if ((u = k.find[s]) && (r = u(a.matches[0].replace(be, we), ye.test(o[0].type) && f(t.parentNode) || t))) {
  1332.                         if (o.splice(i, 1), e = r.length && h(o), !e) return Q.apply(n, r), n;
  1333.                         break
  1334.                     }
  1335.             }
  1336.             return (c || E(e, l))(r, t, !O, n, !t || ye.test(e) && f(t.parentNode) || t), n
  1337.         }, _.sortStable = $.split("").sort(X).join("") === $, _.detectDuplicates = !!D, F(), _.sortDetached = i(function(e) {
  1338.             return 1 & e.compareDocumentPosition(L.createElement("fieldset"))
  1339.         }), i(function(e) {
  1340.             return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href")
  1341.         }) || o("type|href|height|width", function(e, t, n) {
  1342.             if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2)
  1343.         }), _.attributes && i(function(e) {
  1344.             return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value")
  1345.         }) || o("value", function(e, t, n) {
  1346.             if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue
  1347.         }), i(function(e) {
  1348.             return null == e.getAttribute("disabled")
  1349.         }) || o(te, function(e, t, n) {
  1350.             var r;
  1351.             if (!n) return e[t] === !0 ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
  1352.         }), t
  1353.     }(e);
  1354.     de.find = be, de.expr = be.selectors, de.expr[":"] = de.expr.pseudos, de.uniqueSort = de.unique = be.uniqueSort, de.text = be.getText, de.isXMLDoc = be.isXML, de.contains = be.contains, de.escapeSelector = be.escape;
  1355.     var we = function(e, t, n) {
  1356.             for (var r = [], i = void 0 !== n;
  1357.                 (e = e[t]) && 9 !== e.nodeType;)
  1358.                 if (1 === e.nodeType) {
  1359.                     if (i && de(e).is(n)) break;
  1360.                     r.push(e)
  1361.                 }
  1362.             return r
  1363.         },
  1364.         xe = function(e, t) {
  1365.             for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
  1366.             return n
  1367.         },
  1368.         _e = de.expr.match.needsContext,
  1369.         ke = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,
  1370.         Te = /^.[^:#\[\.,]*$/;
  1371.     de.filter = function(e, t, n) {
  1372.         var r = t[0];
  1373.         return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? de.find.matchesSelector(r, e) ? [r] : [] : de.find.matches(e, de.grep(t, function(e) {
  1374.             return 1 === e.nodeType
  1375.         }))
  1376.     }, de.fn.extend({
  1377.         find: function(e) {
  1378.             var t, n, r = this.length,
  1379.                 i = this;
  1380.             if ("string" != typeof e) return this.pushStack(de(e).filter(function() {
  1381.                 for (t = 0; t < r; t++)
  1382.                     if (de.contains(i[t], this)) return !0
  1383.             }));
  1384.             for (n = this.pushStack([]), t = 0; t < r; t++) de.find(e, i[t], n);
  1385.             return r > 1 ? de.uniqueSort(n) : n
  1386.         },
  1387.         filter: function(e) {
  1388.             return this.pushStack(i(this, e || [], !1))
  1389.         },
  1390.         not: function(e) {
  1391.             return this.pushStack(i(this, e || [], !0))
  1392.         },
  1393.         is: function(e) {
  1394.             return !!i(this, "string" == typeof e && _e.test(e) ? de(e) : e || [], !1).length
  1395.         }
  1396.     });
  1397.     var Ce, Se = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
  1398.         Ee = de.fn.init = function(e, t, n) {
  1399.             var r, i;
  1400.             if (!e) return this;
  1401.             if (n = n || Ce, "string" == typeof e) {
  1402.                 if (r = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [null, e, null] : Se.exec(e), !r || !r[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e);
  1403.                 if (r[1]) {
  1404.                     if (t = t instanceof de ? t[0] : t, de.merge(this, de.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : te, !0)), ke.test(r[1]) && de.isPlainObject(t))
  1405.                         for (r in t) de.isFunction(this[r]) ? this[r](t[r]) : this.attr(r, t[r]);
  1406.                     return this
  1407.                 }
  1408.                 return i = te.getElementById(r[2]), i && (this[0] = i, this.length = 1), this
  1409.             }
  1410.             return e.nodeType ? (this[0] = e, this.length = 1, this) : de.isFunction(e) ? void 0 !== n.ready ? n.ready(e) : e(de) : de.makeArray(e, this)
  1411.         };
  1412.     Ee.prototype = de.fn, Ce = de(te);
  1413.     var je = /^(?:parents|prev(?:Until|All))/,
  1414.         Ae = {
  1415.             children: !0,
  1416.             contents: !0,
  1417.             next: !0,
  1418.             prev: !0
  1419.         };
  1420.     de.fn.extend({
  1421.         has: function(e) {
  1422.             var t = de(e, this),
  1423.                 n = t.length;
  1424.             return this.filter(function() {
  1425.                 for (var e = 0; e < n; e++)
  1426.                     if (de.contains(this, t[e])) return !0
  1427.             })
  1428.         },
  1429.         closest: function(e, t) {
  1430.             var n, r = 0,
  1431.                 i = this.length,
  1432.                 o = [],
  1433.                 a = "string" != typeof e && de(e);
  1434.             if (!_e.test(e))
  1435.                 for (; r < i; r++)
  1436.                     for (n = this[r]; n && n !== t; n = n.parentNode)
  1437.                         if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && de.find.matchesSelector(n, e))) {
  1438.                             o.push(n);
  1439.                             break
  1440.                         }
  1441.             return this.pushStack(o.length > 1 ? de.uniqueSort(o) : o)
  1442.         },
  1443.         index: function(e) {
  1444.             return e ? "string" == typeof e ? ae.call(de(e), this[0]) : ae.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
  1445.         },
  1446.         add: function(e, t) {
  1447.             return this.pushStack(de.uniqueSort(de.merge(this.get(), de(e, t))))
  1448.         },
  1449.         addBack: function(e) {
  1450.             return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
  1451.         }
  1452.     }), de.each({
  1453.         parent: function(e) {
  1454.             var t = e.parentNode;
  1455.             return t && 11 !== t.nodeType ? t : null
  1456.         },
  1457.         parents: function(e) {
  1458.             return we(e, "parentNode")
  1459.         },
  1460.         parentsUntil: function(e, t, n) {
  1461.             return we(e, "parentNode", n)
  1462.         },
  1463.         next: function(e) {
  1464.             return o(e, "nextSibling")
  1465.         },
  1466.         prev: function(e) {
  1467.             return o(e, "previousSibling")
  1468.         },
  1469.         nextAll: function(e) {
  1470.             return we(e, "nextSibling")
  1471.         },
  1472.         prevAll: function(e) {
  1473.             return we(e, "previousSibling")
  1474.         },
  1475.         nextUntil: function(e, t, n) {
  1476.             return we(e, "nextSibling", n)
  1477.         },
  1478.         prevUntil: function(e, t, n) {
  1479.             return we(e, "previousSibling", n)
  1480.         },
  1481.         siblings: function(e) {
  1482.             return xe((e.parentNode || {}).firstChild, e)
  1483.         },
  1484.         children: function(e) {
  1485.             return xe(e.firstChild)
  1486.         },
  1487.         contents: function(e) {
  1488.             return e.contentDocument || de.merge([], e.childNodes)
  1489.         }
  1490.     }, function(e, t) {
  1491.         de.fn[e] = function(n, r) {
  1492.             var i = de.map(this, t, n);
  1493.             return "Until" !== e.slice(-5) && (r = n), r && "string" == typeof r && (i = de.filter(r, i)), this.length > 1 && (Ae[e] || de.uniqueSort(i), je.test(e) && i.reverse()), this.pushStack(i)
  1494.         }
  1495.     });
  1496.     var Ne = /[^\x20\t\r\n\f]+/g;
  1497.     de.Callbacks = function(e) {
  1498.         e = "string" == typeof e ? a(e) : de.extend({}, e);
  1499.         var t, n, r, i, o = [],
  1500.             s = [],
  1501.             u = -1,
  1502.             c = function() {
  1503.                 for (i = e.once, r = t = !0; s.length; u = -1)
  1504.                     for (n = s.shift(); ++u < o.length;) o[u].apply(n[0], n[1]) === !1 && e.stopOnFalse && (u = o.length, n = !1);
  1505.                 e.memory || (n = !1), t = !1, i && (o = n ? [] : "")
  1506.             },
  1507.             l = {
  1508.                 add: function() {
  1509.                     return o && (n && !t && (u = o.length - 1, s.push(n)), function r(t) {
  1510.                         de.each(t, function(t, n) {
  1511.                             de.isFunction(n) ? e.unique && l.has(n) || o.push(n) : n && n.length && "string" !== de.type(n) && r(n)
  1512.                         })
  1513.                     }(arguments), n && !t && c()), this
  1514.                 },
  1515.                 remove: function() {
  1516.                     return de.each(arguments, function(e, t) {
  1517.                         for (var n;
  1518.                             (n = de.inArray(t, o, n)) > -1;) o.splice(n, 1), n <= u && u--
  1519.                     }), this
  1520.                 },
  1521.                 has: function(e) {
  1522.                     return e ? de.inArray(e, o) > -1 : o.length > 0
  1523.                 },
  1524.                 empty: function() {
  1525.                     return o && (o = []), this
  1526.                 },
  1527.                 disable: function() {
  1528.                     return i = s = [], o = n = "", this
  1529.                 },
  1530.                 disabled: function() {
  1531.                     return !o
  1532.                 },
  1533.                 lock: function() {
  1534.                     return i = s = [], n || t || (o = n = ""), this
  1535.                 },
  1536.                 locked: function() {
  1537.                     return !!i
  1538.                 },
  1539.                 fireWith: function(e, n) {
  1540.                     return i || (n = n || [], n = [e, n.slice ? n.slice() : n], s.push(n), t || c()), this
  1541.                 },
  1542.                 fire: function() {
  1543.                     return l.fireWith(this, arguments), this
  1544.                 },
  1545.                 fired: function() {
  1546.                     return !!r
  1547.                 }
  1548.             };
  1549.         return l
  1550.     }, de.extend({
  1551.         Deferred: function(t) {
  1552.             var n = [
  1553.                     ["notify", "progress", de.Callbacks("memory"), de.Callbacks("memory"), 2],
  1554.                     ["resolve", "done", de.Callbacks("once memory"), de.Callbacks("once memory"), 0, "resolved"],
  1555.                     ["reject", "fail", de.Callbacks("once memory"), de.Callbacks("once memory"), 1, "rejected"]
  1556.                 ],
  1557.                 r = "pending",
  1558.                 i = {
  1559.                     state: function() {
  1560.                         return r
  1561.                     },
  1562.                     always: function() {
  1563.                         return o.done(arguments).fail(arguments), this
  1564.                     },
  1565.                     "catch": function(e) {
  1566.                         return i.then(null, e)
  1567.                     },
  1568.                     pipe: function() {
  1569.                         var e = arguments;
  1570.                         return de.Deferred(function(t) {
  1571.                             de.each(n, function(n, r) {
  1572.                                 var i = de.isFunction(e[r[4]]) && e[r[4]];
  1573.                                 o[r[1]](function() {
  1574.                                     var e = i && i.apply(this, arguments);
  1575.                                     e && de.isFunction(e.promise) ? e.promise().progress(t.notify).done(t.resolve).fail(t.reject) : t[r[0] + "With"](this, i ? [e] : arguments)
  1576.                                 })
  1577.                             }), e = null
  1578.                         }).promise()
  1579.                     },
  1580.                     then: function(t, r, i) {
  1581.                         function o(t, n, r, i) {
  1582.                             return function() {
  1583.                                 var c = this,
  1584.                                     l = arguments,
  1585.                                     f = function() {
  1586.                                         var e, f;
  1587.                                         if (!(t < a)) {
  1588.                                             if (e = r.apply(c, l), e === n.promise()) throw new TypeError("Thenable self-resolution");
  1589.                                             f = e && ("object" == typeof e || "function" == typeof e) && e.then, de.isFunction(f) ? i ? f.call(e, o(a, n, s, i), o(a, n, u, i)) : (a++, f.call(e, o(a, n, s, i), o(a, n, u, i), o(a, n, s, n.notifyWith))) : (r !== s && (c = void 0, l = [e]), (i || n.resolveWith)(c, l))
  1590.                                         }
  1591.                                     },
  1592.                                     p = i ? f : function() {
  1593.                                         try {
  1594.                                             f()
  1595.                                         } catch (e) {
  1596.                                             de.Deferred.exceptionHook && de.Deferred.exceptionHook(e, p.stackTrace), t + 1 >= a && (r !== u && (c = void 0, l = [e]), n.rejectWith(c, l))
  1597.                                         }
  1598.                                     };
  1599.                                 t ? p() : (de.Deferred.getStackHook && (p.stackTrace = de.Deferred.getStackHook()), e.setTimeout(p))
  1600.                             }
  1601.                         }
  1602.                         var a = 0;
  1603.                         return de.Deferred(function(e) {
  1604.                             n[0][3].add(o(0, e, de.isFunction(i) ? i : s, e.notifyWith)), n[1][3].add(o(0, e, de.isFunction(t) ? t : s)), n[2][3].add(o(0, e, de.isFunction(r) ? r : u))
  1605.                         }).promise()
  1606.                     },
  1607.                     promise: function(e) {
  1608.                         return null != e ? de.extend(e, i) : i
  1609.                     }
  1610.                 },
  1611.                 o = {};
  1612.             return de.each(n, function(e, t) {
  1613.                 var a = t[2],
  1614.                     s = t[5];
  1615.                 i[t[1]] = a.add, s && a.add(function() {
  1616.                     r = s
  1617.                 }, n[3 - e][2].disable, n[0][2].lock), a.add(t[3].fire), o[t[0]] = function() {
  1618.                     return o[t[0] + "With"](this === o ? void 0 : this, arguments), this
  1619.                 }, o[t[0] + "With"] = a.fireWith
  1620.             }), i.promise(o), t && t.call(o, o), o
  1621.         },
  1622.         when: function(e) {
  1623.             var t = arguments.length,
  1624.                 n = t,
  1625.                 r = Array(n),
  1626.                 i = re.call(arguments),
  1627.                 o = de.Deferred(),
  1628.                 a = function(e) {
  1629.                     return function(n) {
  1630.                         r[e] = this, i[e] = arguments.length > 1 ? re.call(arguments) : n, --t || o.resolveWith(r, i)
  1631.                     }
  1632.                 };
  1633.             if (t <= 1 && (c(e, o.done(a(n)).resolve, o.reject), "pending" === o.state() || de.isFunction(i[n] && i[n].then))) return o.then();
  1634.             for (; n--;) c(i[n], a(n), o.reject);
  1635.             return o.promise()
  1636.         }
  1637.     });
  1638.     var De = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
  1639.     de.Deferred.exceptionHook = function(t, n) {
  1640.         e.console && e.console.warn && t && De.test(t.name) && e.console.warn("jQuery.Deferred exception: " + t.message, t.stack, n)
  1641.     }, de.readyException = function(t) {
  1642.         e.setTimeout(function() {
  1643.             throw t
  1644.         })
  1645.     };
  1646.     var Fe = de.Deferred();
  1647.     de.fn.ready = function(e) {
  1648.         return Fe.then(e)["catch"](function(e) {
  1649.             de.readyException(e)
  1650.         }), this
  1651.     }, de.extend({
  1652.         isReady: !1,
  1653.         readyWait: 1,
  1654.         holdReady: function(e) {
  1655.             e ? de.readyWait++ : de.ready(!0)
  1656.         },
  1657.         ready: function(e) {
  1658.             (e === !0 ? --de.readyWait : de.isReady) || (de.isReady = !0, e !== !0 && --de.readyWait > 0 || Fe.resolveWith(te, [de]))
  1659.         }
  1660.     }), de.ready.then = Fe.then, "complete" === te.readyState || "loading" !== te.readyState && !te.documentElement.doScroll ? e.setTimeout(de.ready) : (te.addEventListener("DOMContentLoaded", l), e.addEventListener("load", l));
  1661.     var Le = function(e, t, n, r, i, o, a) {
  1662.             var s = 0,
  1663.                 u = e.length,
  1664.                 c = null == n;
  1665.             if ("object" === de.type(n)) {
  1666.                 i = !0;
  1667.                 for (s in n) Le(e, t, s, n[s], !0, o, a)
  1668.             } else if (void 0 !== r && (i = !0, de.isFunction(r) || (a = !0), c && (a ? (t.call(e, r), t = null) : (c = t, t = function(e, t, n) {
  1669.                     return c.call(de(e), n)
  1670.                 })), t))
  1671.                 for (; s < u; s++) t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n)));
  1672.             return i ? e : c ? t.call(e) : u ? t(e[0], n) : o
  1673.         },
  1674.         Re = function(e) {
  1675.             return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType
  1676.         };
  1677.     f.uid = 1, f.prototype = {
  1678.         cache: function(e) {
  1679.             var t = e[this.expando];
  1680.             return t || (t = {}, Re(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, {
  1681.                 value: t,
  1682.                 configurable: !0
  1683.             }))), t
  1684.         },
  1685.         set: function(e, t, n) {
  1686.             var r, i = this.cache(e);
  1687.             if ("string" == typeof t) i[de.camelCase(t)] = n;
  1688.             else
  1689.                 for (r in t) i[de.camelCase(r)] = t[r];
  1690.             return i
  1691.         },
  1692.         get: function(e, t) {
  1693.             return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][de.camelCase(t)]
  1694.         },
  1695.         access: function(e, t, n) {
  1696.             return void 0 === t || t && "string" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t)
  1697.         },
  1698.         remove: function(e, t) {
  1699.             var n, r = e[this.expando];
  1700.             if (void 0 !== r) {
  1701.                 if (void 0 !== t) {
  1702.                     de.isArray(t) ? t = t.map(de.camelCase) : (t = de.camelCase(t), t = t in r ? [t] : t.match(Ne) || []), n = t.length;
  1703.                     for (; n--;) delete r[t[n]]
  1704.                 }(void 0 === t || de.isEmptyObject(r)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando])
  1705.             }
  1706.         },
  1707.         hasData: function(e) {
  1708.             var t = e[this.expando];
  1709.             return void 0 !== t && !de.isEmptyObject(t)
  1710.         }
  1711.     };
  1712.     var Oe = new f,
  1713.         qe = new f,
  1714.         He = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
  1715.         Ie = /[A-Z]/g;
  1716.     de.extend({
  1717.         hasData: function(e) {
  1718.             return qe.hasData(e) || Oe.hasData(e)
  1719.         },
  1720.         data: function(e, t, n) {
  1721.             return qe.access(e, t, n)
  1722.         },
  1723.         removeData: function(e, t) {
  1724.             qe.remove(e, t)
  1725.         },
  1726.         _data: function(e, t, n) {
  1727.             return Oe.access(e, t, n)
  1728.         },
  1729.         _removeData: function(e, t) {
  1730.             Oe.remove(e, t)
  1731.         }
  1732.     }), de.fn.extend({
  1733.         data: function(e, t) {
  1734.             var n, r, i, o = this[0],
  1735.                 a = o && o.attributes;
  1736.             if (void 0 === e) {
  1737.                 if (this.length && (i = qe.get(o), 1 === o.nodeType && !Oe.get(o, "hasDataAttrs"))) {
  1738.                     for (n = a.length; n--;) a[n] && (r = a[n].name, 0 === r.indexOf("data-") && (r = de.camelCase(r.slice(5)), h(o, r, i[r])));
  1739.                     Oe.set(o, "hasDataAttrs", !0)
  1740.                 }
  1741.                 return i
  1742.             }
  1743.             return "object" == typeof e ? this.each(function() {
  1744.                 qe.set(this, e)
  1745.             }) : Le(this, function(t) {
  1746.                 var n;
  1747.                 if (o && void 0 === t) {
  1748.                     if (n = qe.get(o, e), void 0 !== n) return n;
  1749.                     if (n = h(o, e), void 0 !== n) return n
  1750.                 } else this.each(function() {
  1751.                     qe.set(this, e, t)
  1752.                 })
  1753.             }, null, t, arguments.length > 1, null, !0)
  1754.         },
  1755.         removeData: function(e) {
  1756.             return this.each(function() {
  1757.                 qe.remove(this, e)
  1758.             })
  1759.         }
  1760.     }), de.extend({
  1761.         queue: function(e, t, n) {
  1762.             var r;
  1763.             if (e) return t = (t || "fx") + "queue", r = Oe.get(e, t), n && (!r || de.isArray(n) ? r = Oe.access(e, t, de.makeArray(n)) : r.push(n)), r || []
  1764.         },
  1765.         dequeue: function(e, t) {
  1766.             t = t || "fx";
  1767.             var n = de.queue(e, t),
  1768.                 r = n.length,
  1769.                 i = n.shift(),
  1770.                 o = de._queueHooks(e, t),
  1771.                 a = function() {
  1772.                     de.dequeue(e, t)
  1773.                 };
  1774.             "inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, a, o)), !r && o && o.empty.fire()
  1775.         },
  1776.         _queueHooks: function(e, t) {
  1777.             var n = t + "queueHooks";
  1778.             return Oe.get(e, n) || Oe.access(e, n, {
  1779.                 empty: de.Callbacks("once memory").add(function() {
  1780.                     Oe.remove(e, [t + "queue", n])
  1781.                 })
  1782.             })
  1783.         }
  1784.     }), de.fn.extend({
  1785.         queue: function(e, t) {
  1786.             var n = 2;
  1787.             return "string" != typeof e && (t = e, e = "fx", n--), arguments.length < n ? de.queue(this[0], e) : void 0 === t ? this : this.each(function() {
  1788.                 var n = de.queue(this, e, t);
  1789.                 de._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && de.dequeue(this, e)
  1790.             })
  1791.         },
  1792.         dequeue: function(e) {
  1793.             return this.each(function() {
  1794.                 de.dequeue(this, e)
  1795.             })
  1796.         },
  1797.         clearQueue: function(e) {
  1798.             return this.queue(e || "fx", [])
  1799.         },
  1800.         promise: function(e, t) {
  1801.             var n, r = 1,
  1802.                 i = de.Deferred(),
  1803.                 o = this,
  1804.                 a = this.length,
  1805.                 s = function() {
  1806.                     --r || i.resolveWith(o, [o])
  1807.                 };
  1808.             for ("string" != typeof e && (t = e, e = void 0), e = e || "fx"; a--;) n = Oe.get(o[a], e + "queueHooks"), n && n.empty && (r++, n.empty.add(s));
  1809.             return s(), i.promise(t)
  1810.         }
  1811.     });
  1812.     var Pe = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
  1813.         $e = new RegExp("^(?:([+-])=|)(" + Pe + ")([a-z%]*)$", "i"),
  1814.         Me = ["Top", "Right", "Bottom", "Left"],
  1815.         We = function(e, t) {
  1816.             return e = t || e, "none" === e.style.display || "" === e.style.display && de.contains(e.ownerDocument, e) && "none" === de.css(e, "display")
  1817.         },
  1818.         ze = function(e, t, n, r) {
  1819.             var i, o, a = {};
  1820.             for (o in t) a[o] = e.style[o], e.style[o] = t[o];
  1821.             i = n.apply(e, r || []);
  1822.             for (o in t) e.style[o] = a[o];
  1823.             return i
  1824.         },
  1825.         Be = {};
  1826.     de.fn.extend({
  1827.         show: function() {
  1828.             return m(this, !0)
  1829.         },
  1830.         hide: function() {
  1831.             return m(this)
  1832.         },
  1833.         toggle: function(e) {
  1834.             return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function() {
  1835.                 We(this) ? de(this).show() : de(this).hide()
  1836.             })
  1837.         }
  1838.     });
  1839.     var Ke = /^(?:checkbox|radio)$/i,
  1840.         Ue = /<([a-z][^\/\0>\x20\t\r\n\f]+)/i,
  1841.         Xe = /^$|\/(?:java|ecma)script/i,
  1842.         Ye = {
  1843.             option: [1, "<select multiple='multiple'>", "</select>"],
  1844.             thead: [1, "<table>", "</table>"],
  1845.             col: [2, "<table><colgroup>", "</colgroup></table>"],
  1846.             tr: [2, "<table><tbody>", "</tbody></table>"],
  1847.             td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
  1848.             _default: [0, "", ""]
  1849.         };
  1850.     Ye.optgroup = Ye.option, Ye.tbody = Ye.tfoot = Ye.colgroup = Ye.caption = Ye.thead, Ye.th = Ye.td;
  1851.     var Je = /<|&#?\w+;/;
  1852.     ! function() {
  1853.         var e = te.createDocumentFragment(),
  1854.             t = e.appendChild(te.createElement("div")),
  1855.             n = te.createElement("input");
  1856.         n.setAttribute("type", "radio"), n.setAttribute("checked", "checked"), n.setAttribute("name", "t"), t.appendChild(n), pe.checkClone = t.cloneNode(!0).cloneNode(!0).lastChild.checked, t.innerHTML = "<textarea>x</textarea>", pe.noCloneChecked = !!t.cloneNode(!0).lastChild.defaultValue
  1857.     }();
  1858.     var Ve = te.documentElement,
  1859.         Ge = /^key/,
  1860.         Qe = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
  1861.         Ze = /^([^.]*)(?:\.(.+)|)/;
  1862.     de.event = {
  1863.         global: {},
  1864.         add: function(e, t, n, r, i) {
  1865.             var o, a, s, u, c, l, f, p, h, d, g, m = Oe.get(e);
  1866.             if (m)
  1867.                 for (n.handler && (o = n, n = o.handler, i = o.selector), i && de.find.matchesSelector(Ve, i), n.guid || (n.guid = de.guid++), (u = m.events) || (u = m.events = {}), (a = m.handle) || (a = m.handle = function(t) {
  1868.                         return "undefined" != typeof de && de.event.triggered !== t.type ? de.event.dispatch.apply(e, arguments) : void 0
  1869.                     }), t = (t || "").match(Ne) || [""], c = t.length; c--;) s = Ze.exec(t[c]) || [], h = g = s[1], d = (s[2] || "").split(".").sort(), h && (f = de.event.special[h] || {}, h = (i ? f.delegateType : f.bindType) || h, f = de.event.special[h] || {}, l = de.extend({
  1870.                     type: h,
  1871.                     origType: g,
  1872.                     data: r,
  1873.                     handler: n,
  1874.                     guid: n.guid,
  1875.                     selector: i,
  1876.                     needsContext: i && de.expr.match.needsContext.test(i),
  1877.                     namespace: d.join(".")
  1878.                 }, o), (p = u[h]) || (p = u[h] = [], p.delegateCount = 0, f.setup && f.setup.call(e, r, d, a) !== !1 || e.addEventListener && e.addEventListener(h, a)), f.add && (f.add.call(e, l), l.handler.guid || (l.handler.guid = n.guid)), i ? p.splice(p.delegateCount++, 0, l) : p.push(l), de.event.global[h] = !0)
  1879.         },
  1880.         remove: function(e, t, n, r, i) {
  1881.             var o, a, s, u, c, l, f, p, h, d, g, m = Oe.hasData(e) && Oe.get(e);
  1882.             if (m && (u = m.events)) {
  1883.                 for (t = (t || "").match(Ne) || [""], c = t.length; c--;)
  1884.                     if (s = Ze.exec(t[c]) || [], h = g = s[1], d = (s[2] || "").split(".").sort(), h) {
  1885.                         for (f = de.event.special[h] || {}, h = (r ? f.delegateType : f.bindType) || h, p = u[h] || [], s = s[2] && new RegExp("(^|\\.)" + d.join("\\.(?:.*\\.|)") + "(\\.|$)"), a = o = p.length; o--;) l = p[o], !i && g !== l.origType || n && n.guid !== l.guid || s && !s.test(l.namespace) || r && r !== l.selector && ("**" !== r || !l.selector) || (p.splice(o, 1), l.selector && p.delegateCount--, f.remove && f.remove.call(e, l));
  1886.                         a && !p.length && (f.teardown && f.teardown.call(e, d, m.handle) !== !1 || de.removeEvent(e, h, m.handle), delete u[h])
  1887.                     } else
  1888.                         for (h in u) de.event.remove(e, h + t[c], n, r, !0);
  1889.                 de.isEmptyObject(u) && Oe.remove(e, "handle events")
  1890.             }
  1891.         },
  1892.         dispatch: function(e) {
  1893.             var t, n, r, i, o, a, s = de.event.fix(e),
  1894.                 u = new Array(arguments.length),
  1895.                 c = (Oe.get(this, "events") || {})[s.type] || [],
  1896.                 l = de.event.special[s.type] || {};
  1897.             for (u[0] = s, t = 1; t < arguments.length; t++) u[t] = arguments[t];
  1898.             if (s.delegateTarget = this, !l.preDispatch || l.preDispatch.call(this, s) !== !1) {
  1899.                 for (a = de.event.handlers.call(this, s, c), t = 0;
  1900.                     (i = a[t++]) && !s.isPropagationStopped();)
  1901.                     for (s.currentTarget = i.elem, n = 0;
  1902.                         (o = i.handlers[n++]) && !s.isImmediatePropagationStopped();) s.rnamespace && !s.rnamespace.test(o.namespace) || (s.handleObj = o, s.data = o.data, r = ((de.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, u), void 0 !== r && (s.result = r) === !1 && (s.preventDefault(), s.stopPropagation()));
  1903.                 return l.postDispatch && l.postDispatch.call(this, s), s.result
  1904.             }
  1905.         },
  1906.         handlers: function(e, t) {
  1907.             var n, r, i, o, a, s = [],
  1908.                 u = t.delegateCount,
  1909.                 c = e.target;
  1910.             if (u && c.nodeType && !("click" === e.type && e.button >= 1))
  1911.                 for (; c !== this; c = c.parentNode || this)
  1912.                     if (1 === c.nodeType && ("click" !== e.type || c.disabled !== !0)) {
  1913.                         for (o = [], a = {}, n = 0; n < u; n++) r = t[n], i = r.selector + " ", void 0 === a[i] && (a[i] = r.needsContext ? de(i, this).index(c) > -1 : de.find(i, this, null, [c]).length), a[i] && o.push(r);
  1914.                         o.length && s.push({
  1915.                             elem: c,
  1916.                             handlers: o
  1917.                         })
  1918.                     }
  1919.             return c = this, u < t.length && s.push({
  1920.                 elem: c,
  1921.                 handlers: t.slice(u)
  1922.             }), s
  1923.         },
  1924.         addProp: function(e, t) {
  1925.             Object.defineProperty(de.Event.prototype, e, {
  1926.                 enumerable: !0,
  1927.                 configurable: !0,
  1928.                 get: de.isFunction(t) ? function() {
  1929.                     if (this.originalEvent) return t(this.originalEvent)
  1930.                 } : function() {
  1931.                     if (this.originalEvent) return this.originalEvent[e]
  1932.                 },
  1933.                 set: function(t) {
  1934.                     Object.defineProperty(this, e, {
  1935.                         enumerable: !0,
  1936.                         configurable: !0,
  1937.                         writable: !0,
  1938.                         value: t
  1939.                     })
  1940.                 }
  1941.             })
  1942.         },
  1943.         fix: function(e) {
  1944.             return e[de.expando] ? e : new de.Event(e)
  1945.         },
  1946.         special: {
  1947.             load: {
  1948.                 noBubble: !0
  1949.             },
  1950.             focus: {
  1951.                 trigger: function() {
  1952.                     if (this !== _() && this.focus) return this.focus(), !1
  1953.                 },
  1954.                 delegateType: "focusin"
  1955.             },
  1956.             blur: {
  1957.                 trigger: function() {
  1958.                     if (this === _() && this.blur) return this.blur(), !1
  1959.                 },
  1960.                 delegateType: "focusout"
  1961.             },
  1962.             click: {
  1963.                 trigger: function() {
  1964.                     if ("checkbox" === this.type && this.click && de.nodeName(this, "input")) return this.click(), !1
  1965.                 },
  1966.                 _default: function(e) {
  1967.                     return de.nodeName(e.target, "a")
  1968.                 }
  1969.             },
  1970.             beforeunload: {
  1971.                 postDispatch: function(e) {
  1972.                     void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result)
  1973.                 }
  1974.             }
  1975.         }
  1976.     }, de.removeEvent = function(e, t, n) {
  1977.         e.removeEventListener && e.removeEventListener(t, n)
  1978.     }, de.Event = function(e, t) {
  1979.         return this instanceof de.Event ? (e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && e.returnValue === !1 ? w : x, this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget) : this.type = e, t && de.extend(this, t), this.timeStamp = e && e.timeStamp || de.now(), void(this[de.expando] = !0)) : new de.Event(e, t)
  1980.     }, de.Event.prototype = {
  1981.         constructor: de.Event,
  1982.         isDefaultPrevented: x,
  1983.         isPropagationStopped: x,
  1984.         isImmediatePropagationStopped: x,
  1985.         isSimulated: !1,
  1986.         preventDefault: function() {
  1987.             var e = this.originalEvent;
  1988.             this.isDefaultPrevented = w, e && !this.isSimulated && e.preventDefault()
  1989.         },
  1990.         stopPropagation: function() {
  1991.             var e = this.originalEvent;
  1992.             this.isPropagationStopped = w, e && !this.isSimulated && e.stopPropagation()
  1993.         },
  1994.         stopImmediatePropagation: function() {
  1995.             var e = this.originalEvent;
  1996.             this.isImmediatePropagationStopped = w, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation()
  1997.         }
  1998.     }, de.each({
  1999.         altKey: !0,
  2000.         bubbles: !0,
  2001.         cancelable: !0,
  2002.         changedTouches: !0,
  2003.         ctrlKey: !0,
  2004.         detail: !0,
  2005.         eventPhase: !0,
  2006.         metaKey: !0,
  2007.         pageX: !0,
  2008.         pageY: !0,
  2009.         shiftKey: !0,
  2010.         view: !0,
  2011.         "char": !0,
  2012.         charCode: !0,
  2013.         key: !0,
  2014.         keyCode: !0,
  2015.         button: !0,
  2016.         buttons: !0,
  2017.         clientX: !0,
  2018.         clientY: !0,
  2019.         offsetX: !0,
  2020.         offsetY: !0,
  2021.         pointerId: !0,
  2022.         pointerType: !0,
  2023.         screenX: !0,
  2024.         screenY: !0,
  2025.         targetTouches: !0,
  2026.         toElement: !0,
  2027.         touches: !0,
  2028.         which: function(e) {
  2029.             var t = e.button;
  2030.             return null == e.which && Ge.test(e.type) ? null != e.charCode ? e.charCode : e.keyCode : !e.which && void 0 !== t && Qe.test(e.type) ? 1 & t ? 1 : 2 & t ? 3 : 4 & t ? 2 : 0 : e.which
  2031.         }
  2032.     }, de.event.addProp), de.each({
  2033.         mouseenter: "mouseover",
  2034.         mouseleave: "mouseout",
  2035.         pointerenter: "pointerover",
  2036.         pointerleave: "pointerout"
  2037.     }, function(e, t) {
  2038.         de.event.special[e] = {
  2039.             delegateType: t,
  2040.             bindType: t,
  2041.             handle: function(e) {
  2042.                 var n, r = this,
  2043.                     i = e.relatedTarget,
  2044.                     o = e.handleObj;
  2045.                 return i && (i === r || de.contains(r, i)) || (e.type = o.origType, n = o.handler.apply(this, arguments), e.type = t), n
  2046.             }
  2047.         }
  2048.     }), de.fn.extend({
  2049.         on: function(e, t, n, r) {
  2050.             return k(this, e, t, n, r)
  2051.         },
  2052.         one: function(e, t, n, r) {
  2053.             return k(this, e, t, n, r, 1)
  2054.         },
  2055.         off: function(e, t, n) {
  2056.             var r, i;
  2057.             if (e && e.preventDefault && e.handleObj) return r = e.handleObj, de(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this;
  2058.             if ("object" == typeof e) {
  2059.                 for (i in e) this.off(i, t, e[i]);
  2060.                 return this
  2061.             }
  2062.             return t !== !1 && "function" != typeof t || (n = t, t = void 0), n === !1 && (n = x), this.each(function() {
  2063.                 de.event.remove(this, e, n, t)
  2064.             })
  2065.         }
  2066.     });
  2067.     var et = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
  2068.         tt = /<script|<style|<link/i,
  2069.         nt = /checked\s*(?:[^=]|=\s*.checked.)/i,
  2070.         rt = /^true\/(.*)/,
  2071.         it = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
  2072.     de.extend({
  2073.         htmlPrefilter: function(e) {
  2074.             return e.replace(et, "<$1></$2>")
  2075.         },
  2076.         clone: function(e, t, n) {
  2077.             var r, i, o, a, s = e.cloneNode(!0),
  2078.                 u = de.contains(e.ownerDocument, e);
  2079.             if (!(pe.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || de.isXMLDoc(e)))
  2080.                 for (a = v(s), o = v(e), r = 0, i = o.length; r < i; r++) j(o[r], a[r]);
  2081.             if (t)
  2082.                 if (n)
  2083.                     for (o = o || v(e), a = a || v(s), r = 0, i = o.length; r < i; r++) E(o[r], a[r]);
  2084.                 else E(e, s);
  2085.             return a = v(s, "script"), a.length > 0 && y(a, !u && v(e, "script")), s
  2086.         },
  2087.         cleanData: function(e) {
  2088.             for (var t, n, r, i = de.event.special, o = 0; void 0 !== (n = e[o]); o++)
  2089.                 if (Re(n)) {
  2090.                     if (t = n[Oe.expando]) {
  2091.                         if (t.events)
  2092.                             for (r in t.events) i[r] ? de.event.remove(n, r) : de.removeEvent(n, r, t.handle);
  2093.                         n[Oe.expando] = void 0
  2094.                     }
  2095.                     n[qe.expando] && (n[qe.expando] = void 0)
  2096.                 }
  2097.         }
  2098.     }), de.fn.extend({
  2099.         detach: function(e) {
  2100.             return N(this, e, !0)
  2101.         },
  2102.         remove: function(e) {
  2103.             return N(this, e)
  2104.         },
  2105.         text: function(e) {
  2106.             return Le(this, function(e) {
  2107.                 return void 0 === e ? de.text(this) : this.empty().each(function() {
  2108.                     1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e)
  2109.                 })
  2110.             }, null, e, arguments.length)
  2111.         },
  2112.         append: function() {
  2113.             return A(this, arguments, function(e) {
  2114.                 if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
  2115.                     var t = T(this, e);
  2116.                     t.appendChild(e)
  2117.                 }
  2118.             })
  2119.         },
  2120.         prepend: function() {
  2121.             return A(this, arguments, function(e) {
  2122.                 if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
  2123.                     var t = T(this, e);
  2124.                     t.insertBefore(e, t.firstChild)
  2125.                 }
  2126.             })
  2127.         },
  2128.         before: function() {
  2129.             return A(this, arguments, function(e) {
  2130.                 this.parentNode && this.parentNode.insertBefore(e, this)
  2131.             })
  2132.         },
  2133.         after: function() {
  2134.             return A(this, arguments, function(e) {
  2135.                 this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
  2136.             })
  2137.         },
  2138.         empty: function() {
  2139.             for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (de.cleanData(v(e, !1)), e.textContent = "");
  2140.             return this
  2141.         },
  2142.         clone: function(e, t) {
  2143.             return e = null != e && e, t = null == t ? e : t, this.map(function() {
  2144.                 return de.clone(this, e, t)
  2145.             })
  2146.         },
  2147.         html: function(e) {
  2148.             return Le(this, function(e) {
  2149.                 var t = this[0] || {},
  2150.                     n = 0,
  2151.                     r = this.length;
  2152.                 if (void 0 === e && 1 === t.nodeType) return t.innerHTML;
  2153.                 if ("string" == typeof e && !tt.test(e) && !Ye[(Ue.exec(e) || ["", ""])[1].toLowerCase()]) {
  2154.                     e = de.htmlPrefilter(e);
  2155.                     try {
  2156.                         for (; n < r; n++) t = this[n] || {}, 1 === t.nodeType && (de.cleanData(v(t, !1)), t.innerHTML = e);
  2157.                         t = 0
  2158.                     } catch (i) {}
  2159.                 }
  2160.                 t && this.empty().append(e)
  2161.             }, null, e, arguments.length)
  2162.         },
  2163.         replaceWith: function() {
  2164.             var e = [];
  2165.             return A(this, arguments, function(t) {
  2166.                 var n = this.parentNode;
  2167.                 de.inArray(this, e) < 0 && (de.cleanData(v(this)), n && n.replaceChild(t, this))
  2168.             }, e)
  2169.         }
  2170.     }), de.each({
  2171.         appendTo: "append",
  2172.         prependTo: "prepend",
  2173.         insertBefore: "before",
  2174.         insertAfter: "after",
  2175.         replaceAll: "replaceWith"
  2176.     }, function(e, t) {
  2177.         de.fn[e] = function(e) {
  2178.             for (var n, r = [], i = de(e), o = i.length - 1, a = 0; a <= o; a++) n = a === o ? this : this.clone(!0), de(i[a])[t](n), oe.apply(r, n.get());
  2179.             return this.pushStack(r)
  2180.         }
  2181.     });
  2182.     var ot = /^margin/,
  2183.         at = new RegExp("^(" + Pe + ")(?!px)[a-z%]+$", "i"),
  2184.         st = function(t) {
  2185.             var n = t.ownerDocument.defaultView;
  2186.             return n && n.opener || (n = e), n.getComputedStyle(t)
  2187.         };
  2188.     ! function() {
  2189.         function t() {
  2190.             if (s) {
  2191.                 s.style.cssText = "box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%", s.innerHTML = "", Ve.appendChild(a);
  2192.                 var t = e.getComputedStyle(s);
  2193.                 n = "1%" !== t.top, o = "2px" === t.marginLeft, r = "4px" === t.width, s.style.marginRight = "50%", i = "4px" === t.marginRight, Ve.removeChild(a), s = null
  2194.             }
  2195.         }
  2196.         var n, r, i, o, a = te.createElement("div"),
  2197.             s = te.createElement("div");
  2198.         s.style && (s.style.backgroundClip = "content-box", s.cloneNode(!0).style.backgroundClip = "", pe.clearCloneStyle = "content-box" === s.style.backgroundClip, a.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute", a.appendChild(s), de.extend(pe, {
  2199.             pixelPosition: function() {
  2200.                 return t(), n
  2201.             },
  2202.             boxSizingReliable: function() {
  2203.                 return t(), r
  2204.             },
  2205.             pixelMarginRight: function() {
  2206.                 return t(), i
  2207.             },
  2208.             reliableMarginLeft: function() {
  2209.                 return t(), o
  2210.             }
  2211.         }))
  2212.     }();
  2213.     var ut = /^(none|table(?!-c[ea]).+)/,
  2214.         ct = {
  2215.             position: "absolute",
  2216.             visibility: "hidden",
  2217.             display: "block"
  2218.         },
  2219.         lt = {
  2220.             letterSpacing: "0",
  2221.             fontWeight: "400"
  2222.         },
  2223.         ft = ["Webkit", "Moz", "ms"],
  2224.         pt = te.createElement("div").style;
  2225.     de.extend({
  2226.         cssHooks: {
  2227.             opacity: {
  2228.                 get: function(e, t) {
  2229.                     if (t) {
  2230.                         var n = D(e, "opacity");
  2231.                         return "" === n ? "1" : n
  2232.                     }
  2233.                 }
  2234.             }
  2235.         },
  2236.         cssNumber: {
  2237.             animationIterationCount: !0,
  2238.             columnCount: !0,
  2239.             fillOpacity: !0,
  2240.             flexGrow: !0,
  2241.             flexShrink: !0,
  2242.             fontWeight: !0,
  2243.             lineHeight: !0,
  2244.             opacity: !0,
  2245.             order: !0,
  2246.             orphans: !0,
  2247.             widows: !0,
  2248.             zIndex: !0,
  2249.             zoom: !0
  2250.         },
  2251.         cssProps: {
  2252.             "float": "cssFloat"
  2253.         },
  2254.         style: function(e, t, n, r) {
  2255.             if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
  2256.                 var i, o, a, s = de.camelCase(t),
  2257.                     u = e.style;
  2258.                 return t = de.cssProps[s] || (de.cssProps[s] = L(s) || s), a = de.cssHooks[t] || de.cssHooks[s], void 0 === n ? a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : u[t] : (o = typeof n, "string" === o && (i = $e.exec(n)) && i[1] && (n = d(e, t, i), o = "number"), null != n && n === n && ("number" === o && (n += i && i[3] || (de.cssNumber[s] ? "" : "px")), pe.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (u[t] = "inherit"), a && "set" in a && void 0 === (n = a.set(e, n, r)) || (u[t] = n)), void 0)
  2259.             }
  2260.         },
  2261.         css: function(e, t, n, r) {
  2262.             var i, o, a, s = de.camelCase(t);
  2263.             return t = de.cssProps[s] || (de.cssProps[s] = L(s) || s), a = de.cssHooks[t] || de.cssHooks[s], a && "get" in a && (i = a.get(e, !0, n)), void 0 === i && (i = D(e, t, r)), "normal" === i && t in lt && (i = lt[t]), "" === n || n ? (o = parseFloat(i), n === !0 || isFinite(o) ? o || 0 : i) : i
  2264.         }
  2265.     }), de.each(["height", "width"], function(e, t) {
  2266.         de.cssHooks[t] = {
  2267.             get: function(e, n, r) {
  2268.                 if (n) return !ut.test(de.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? q(e, t, r) : ze(e, ct, function() {
  2269.                     return q(e, t, r)
  2270.                 })
  2271.             },
  2272.             set: function(e, n, r) {
  2273.                 var i, o = r && st(e),
  2274.                     a = r && O(e, t, r, "border-box" === de.css(e, "boxSizing", !1, o), o);
  2275.                 return a && (i = $e.exec(n)) && "px" !== (i[3] || "px") && (e.style[t] = n, n = de.css(e, t)), R(e, n, a)
  2276.             }
  2277.         }
  2278.     }), de.cssHooks.marginLeft = F(pe.reliableMarginLeft, function(e, t) {
  2279.         if (t) return (parseFloat(D(e, "marginLeft")) || e.getBoundingClientRect().left - ze(e, {
  2280.             marginLeft: 0
  2281.         }, function() {
  2282.             return e.getBoundingClientRect().left
  2283.         })) + "px"
  2284.     }), de.each({
  2285.         margin: "",
  2286.         padding: "",
  2287.         border: "Width"
  2288.     }, function(e, t) {
  2289.         de.cssHooks[e + t] = {
  2290.             expand: function(n) {
  2291.                 for (var r = 0, i = {}, o = "string" == typeof n ? n.split(" ") : [n]; r < 4; r++) i[e + Me[r] + t] = o[r] || o[r - 2] || o[0];
  2292.                 return i
  2293.             }
  2294.         }, ot.test(e) || (de.cssHooks[e + t].set = R)
  2295.     }), de.fn.extend({
  2296.         css: function(e, t) {
  2297.             return Le(this, function(e, t, n) {
  2298.                 var r, i, o = {},
  2299.                     a = 0;
  2300.                 if (de.isArray(t)) {
  2301.                     for (r = st(e), i = t.length; a < i; a++) o[t[a]] = de.css(e, t[a], !1, r);
  2302.                     return o
  2303.                 }
  2304.                 return void 0 !== n ? de.style(e, t, n) : de.css(e, t)
  2305.             }, e, t, arguments.length > 1)
  2306.         }
  2307.     }), de.Tween = H, H.prototype = {
  2308.         constructor: H,
  2309.         init: function(e, t, n, r, i, o) {
  2310.             this.elem = e, this.prop = n, this.easing = i || de.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = o || (de.cssNumber[n] ? "" : "px")
  2311.         },
  2312.         cur: function() {
  2313.             var e = H.propHooks[this.prop];
  2314.             return e && e.get ? e.get(this) : H.propHooks._default.get(this)
  2315.         },
  2316.         run: function(e) {
  2317.             var t, n = H.propHooks[this.prop];
  2318.             return this.options.duration ? this.pos = t = de.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : H.propHooks._default.set(this), this
  2319.         }
  2320.     }, H.prototype.init.prototype = H.prototype, H.propHooks = {
  2321.         _default: {
  2322.             get: function(e) {
  2323.                 var t;
  2324.                 return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = de.css(e.elem, e.prop, ""), t && "auto" !== t ? t : 0)
  2325.             },
  2326.             set: function(e) {
  2327.                 de.fx.step[e.prop] ? de.fx.step[e.prop](e) : 1 !== e.elem.nodeType || null == e.elem.style[de.cssProps[e.prop]] && !de.cssHooks[e.prop] ? e.elem[e.prop] = e.now : de.style(e.elem, e.prop, e.now + e.unit)
  2328.             }
  2329.         }
  2330.     }, H.propHooks.scrollTop = H.propHooks.scrollLeft = {
  2331.         set: function(e) {
  2332.             e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
  2333.         }
  2334.     }, de.easing = {
  2335.         linear: function(e) {
  2336.             return e
  2337.         },
  2338.         swing: function(e) {
  2339.             return .5 - Math.cos(e * Math.PI) / 2
  2340.         },
  2341.         _default: "swing"
  2342.     }, de.fx = H.prototype.init, de.fx.step = {};
  2343.     var ht, dt, gt = /^(?:toggle|show|hide)$/,
  2344.         mt = /queueHooks$/;
  2345.     de.Animation = de.extend(B, {
  2346.             tweeners: {
  2347.                 "*": [function(e, t) {
  2348.                     var n = this.createTween(e, t);
  2349.                     return d(n.elem, e, $e.exec(t), n), n
  2350.                 }]
  2351.             },
  2352.             tweener: function(e, t) {
  2353.                 de.isFunction(e) ? (t = e, e = ["*"]) : e = e.match(Ne);
  2354.                 for (var n, r = 0, i = e.length; r < i; r++) n = e[r], B.tweeners[n] = B.tweeners[n] || [], B.tweeners[n].unshift(t)
  2355.             },
  2356.             prefilters: [W],
  2357.             prefilter: function(e, t) {
  2358.                 t ? B.prefilters.unshift(e) : B.prefilters.push(e)
  2359.             }
  2360.         }), de.speed = function(e, t, n) {
  2361.             var r = e && "object" == typeof e ? de.extend({}, e) : {
  2362.                 complete: n || !n && t || de.isFunction(e) && e,
  2363.                 duration: e,
  2364.                 easing: n && t || t && !de.isFunction(t) && t
  2365.             };
  2366.             return de.fx.off || te.hidden ? r.duration = 0 : "number" != typeof r.duration && (r.duration in de.fx.speeds ? r.duration = de.fx.speeds[r.duration] : r.duration = de.fx.speeds._default), null != r.queue && r.queue !== !0 || (r.queue = "fx"), r.old = r.complete, r.complete = function() {
  2367.                 de.isFunction(r.old) && r.old.call(this), r.queue && de.dequeue(this, r.queue)
  2368.             }, r
  2369.         }, de.fn.extend({
  2370.             fadeTo: function(e, t, n, r) {
  2371.                 return this.filter(We).css("opacity", 0).show().end().animate({
  2372.                     opacity: t
  2373.                 }, e, n, r)
  2374.             },
  2375.             animate: function(e, t, n, r) {
  2376.                 var i = de.isEmptyObject(e),
  2377.                     o = de.speed(t, n, r),
  2378.                     a = function() {
  2379.                         var t = B(this, de.extend({}, e), o);
  2380.                         (i || Oe.get(this, "finish")) && t.stop(!0)
  2381.                     };
  2382.                 return a.finish = a, i || o.queue === !1 ? this.each(a) : this.queue(o.queue, a)
  2383.             },
  2384.             stop: function(e, t, n) {
  2385.                 var r = function(e) {
  2386.                     var t = e.stop;
  2387.                     delete e.stop, t(n)
  2388.                 };
  2389.                 return "string" != typeof e && (n = t, t = e, e = void 0), t && e !== !1 && this.queue(e || "fx", []), this.each(function() {
  2390.                     var t = !0,
  2391.                         i = null != e && e + "queueHooks",
  2392.                         o = de.timers,
  2393.                         a = Oe.get(this);
  2394.                     if (i) a[i] && a[i].stop && r(a[i]);
  2395.                     else
  2396.                         for (i in a) a[i] && a[i].stop && mt.test(i) && r(a[i]);
  2397.                     for (i = o.length; i--;) o[i].elem !== this || null != e && o[i].queue !== e || (o[i].anim.stop(n), t = !1, o.splice(i, 1));
  2398.                     !t && n || de.dequeue(this, e)
  2399.                 })
  2400.             },
  2401.             finish: function(e) {
  2402.                 return e !== !1 && (e = e || "fx"), this.each(function() {
  2403.                     var t, n = Oe.get(this),
  2404.                         r = n[e + "queue"],
  2405.                         i = n[e + "queueHooks"],
  2406.                         o = de.timers,
  2407.                         a = r ? r.length : 0;
  2408.                     for (n.finish = !0, de.queue(this, e, []), i && i.stop && i.stop.call(this, !0), t = o.length; t--;) o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0), o.splice(t, 1));
  2409.                     for (t = 0; t < a; t++) r[t] && r[t].finish && r[t].finish.call(this);
  2410.                     delete n.finish
  2411.                 })
  2412.             }
  2413.         }), de.each(["toggle", "show", "hide"], function(e, t) {
  2414.             var n = de.fn[t];
  2415.             de.fn[t] = function(e, r, i) {
  2416.                 return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate($(t, !0), e, r, i)
  2417.             }
  2418.         }), de.each({
  2419.             slideDown: $("show"),
  2420.             slideUp: $("hide"),
  2421.             slideToggle: $("toggle"),
  2422.             fadeIn: {
  2423.                 opacity: "show"
  2424.             },
  2425.             fadeOut: {
  2426.                 opacity: "hide"
  2427.             },
  2428.             fadeToggle: {
  2429.                 opacity: "toggle"
  2430.             }
  2431.         }, function(e, t) {
  2432.             de.fn[e] = function(e, n, r) {
  2433.                 return this.animate(t, e, n, r)
  2434.             }
  2435.         }), de.timers = [], de.fx.tick = function() {
  2436.             var e, t = 0,
  2437.                 n = de.timers;
  2438.             for (ht = de.now(); t < n.length; t++) e = n[t], e() || n[t] !== e || n.splice(t--, 1);
  2439.             n.length || de.fx.stop(), ht = void 0
  2440.         }, de.fx.timer = function(e) {
  2441.             de.timers.push(e), e() ? de.fx.start() : de.timers.pop()
  2442.         }, de.fx.interval = 13, de.fx.start = function() {
  2443.             dt || (dt = e.requestAnimationFrame ? e.requestAnimationFrame(I) : e.setInterval(de.fx.tick, de.fx.interval))
  2444.         }, de.fx.stop = function() {
  2445.             e.cancelAnimationFrame ? e.cancelAnimationFrame(dt) : e.clearInterval(dt), dt = null
  2446.         }, de.fx.speeds = {
  2447.             slow: 600,
  2448.             fast: 200,
  2449.             _default: 400
  2450.         }, de.fn.delay = function(t, n) {
  2451.             return t = de.fx ? de.fx.speeds[t] || t : t, n = n || "fx", this.queue(n, function(n, r) {
  2452.                 var i = e.setTimeout(n, t);
  2453.                 r.stop = function() {
  2454.                     e.clearTimeout(i)
  2455.                 }
  2456.             })
  2457.         },
  2458.         function() {
  2459.             var e = te.createElement("input"),
  2460.                 t = te.createElement("select"),
  2461.                 n = t.appendChild(te.createElement("option"));
  2462.             e.type = "checkbox", pe.checkOn = "" !== e.value, pe.optSelected = n.selected, e = te.createElement("input"), e.value = "t", e.type = "radio", pe.radioValue = "t" === e.value
  2463.         }();
  2464.     var vt, yt = de.expr.attrHandle;
  2465.     de.fn.extend({
  2466.         attr: function(e, t) {
  2467.             return Le(this, de.attr, e, t, arguments.length > 1)
  2468.         },
  2469.         removeAttr: function(e) {
  2470.             return this.each(function() {
  2471.                 de.removeAttr(this, e)
  2472.             })
  2473.         }
  2474.     }), de.extend({
  2475.         attr: function(e, t, n) {
  2476.             var r, i, o = e.nodeType;
  2477.             if (3 !== o && 8 !== o && 2 !== o) return "undefined" == typeof e.getAttribute ? de.prop(e, t, n) : (1 === o && de.isXMLDoc(e) || (i = de.attrHooks[t.toLowerCase()] || (de.expr.match.bool.test(t) ? vt : void 0)), void 0 !== n ? null === n ? void de.removeAttr(e, t) : i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""), n) : i && "get" in i && null !== (r = i.get(e, t)) ? r : (r = de.find.attr(e, t), null == r ? void 0 : r))
  2478.         },
  2479.         attrHooks: {
  2480.             type: {
  2481.                 set: function(e, t) {
  2482.                     if (!pe.radioValue && "radio" === t && de.nodeName(e, "input")) {
  2483.                         var n = e.value;
  2484.                         return e.setAttribute("type", t), n && (e.value = n), t
  2485.                     }
  2486.                 }
  2487.             }
  2488.         },
  2489.         removeAttr: function(e, t) {
  2490.             var n, r = 0,
  2491.                 i = t && t.match(Ne);
  2492.             if (i && 1 === e.nodeType)
  2493.                 for (; n = i[r++];) e.removeAttribute(n)
  2494.         }
  2495.     }), vt = {
  2496.         set: function(e, t, n) {
  2497.             return t === !1 ? de.removeAttr(e, n) : e.setAttribute(n, n), n
  2498.         }
  2499.     }, de.each(de.expr.match.bool.source.match(/\w+/g), function(e, t) {
  2500.         var n = yt[t] || de.find.attr;
  2501.         yt[t] = function(e, t, r) {
  2502.             var i, o, a = t.toLowerCase();
  2503.             return r || (o = yt[a], yt[a] = i, i = null != n(e, t, r) ? a : null, yt[a] = o), i
  2504.         }
  2505.     });
  2506.     var bt = /^(?:input|select|textarea|button)$/i,
  2507.         wt = /^(?:a|area)$/i;
  2508.     de.fn.extend({
  2509.         prop: function(e, t) {
  2510.             return Le(this, de.prop, e, t, arguments.length > 1)
  2511.         },
  2512.         removeProp: function(e) {
  2513.             return this.each(function() {
  2514.                 delete this[de.propFix[e] || e]
  2515.             })
  2516.         }
  2517.     }), de.extend({
  2518.         prop: function(e, t, n) {
  2519.             var r, i, o = e.nodeType;
  2520.             if (3 !== o && 8 !== o && 2 !== o) return 1 === o && de.isXMLDoc(e) || (t = de.propFix[t] || t, i = de.propHooks[t]), void 0 !== n ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get" in i && null !== (r = i.get(e, t)) ? r : e[t]
  2521.         },
  2522.         propHooks: {
  2523.             tabIndex: {
  2524.                 get: function(e) {
  2525.                     var t = de.find.attr(e, "tabindex");
  2526.                     return t ? parseInt(t, 10) : bt.test(e.nodeName) || wt.test(e.nodeName) && e.href ? 0 : -1
  2527.                 }
  2528.             }
  2529.         },
  2530.         propFix: {
  2531.             "for": "htmlFor",
  2532.             "class": "className"
  2533.         }
  2534.     }), pe.optSelected || (de.propHooks.selected = {
  2535.         get: function(e) {
  2536.             var t = e.parentNode;
  2537.             return t && t.parentNode && t.parentNode.selectedIndex, null
  2538.         },
  2539.         set: function(e) {
  2540.             var t = e.parentNode;
  2541.             t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex)
  2542.         }
  2543.     }), de.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
  2544.         de.propFix[this.toLowerCase()] = this
  2545.     }), de.fn.extend({
  2546.         addClass: function(e) {
  2547.             var t, n, r, i, o, a, s, u = 0;
  2548.             if (de.isFunction(e)) return this.each(function(t) {
  2549.                 de(this).addClass(e.call(this, t, U(this)))
  2550.             });
  2551.             if ("string" == typeof e && e)
  2552.                 for (t = e.match(Ne) || []; n = this[u++];)
  2553.                     if (i = U(n), r = 1 === n.nodeType && " " + K(i) + " ") {
  2554.                         for (a = 0; o = t[a++];) r.indexOf(" " + o + " ") < 0 && (r += o + " ");
  2555.                         s = K(r), i !== s && n.setAttribute("class", s)
  2556.                     }
  2557.             return this
  2558.         },
  2559.         removeClass: function(e) {
  2560.             var t, n, r, i, o, a, s, u = 0;
  2561.             if (de.isFunction(e)) return this.each(function(t) {
  2562.                 de(this).removeClass(e.call(this, t, U(this)))
  2563.             });
  2564.             if (!arguments.length) return this.attr("class", "");
  2565.             if ("string" == typeof e && e)
  2566.                 for (t = e.match(Ne) || []; n = this[u++];)
  2567.                     if (i = U(n), r = 1 === n.nodeType && " " + K(i) + " ") {
  2568.                         for (a = 0; o = t[a++];)
  2569.                             for (; r.indexOf(" " + o + " ") > -1;) r = r.replace(" " + o + " ", " ");
  2570.                         s = K(r), i !== s && n.setAttribute("class", s)
  2571.                     }
  2572.             return this
  2573.         },
  2574.         toggleClass: function(e, t) {
  2575.             var n = typeof e;
  2576.             return "boolean" == typeof t && "string" === n ? t ? this.addClass(e) : this.removeClass(e) : de.isFunction(e) ? this.each(function(n) {
  2577.                 de(this).toggleClass(e.call(this, n, U(this), t), t)
  2578.             }) : this.each(function() {
  2579.                 var t, r, i, o;
  2580.                 if ("string" === n)
  2581.                     for (r = 0, i = de(this), o = e.match(Ne) || []; t = o[r++];) i.hasClass(t) ? i.removeClass(t) : i.addClass(t);
  2582.                 else void 0 !== e && "boolean" !== n || (t = U(this), t && Oe.set(this, "__className__", t), this.setAttribute && this.setAttribute("class", t || e === !1 ? "" : Oe.get(this, "__className__") || ""))
  2583.             })
  2584.         },
  2585.         hasClass: function(e) {
  2586.             var t, n, r = 0;
  2587.             for (t = " " + e + " "; n = this[r++];)
  2588.                 if (1 === n.nodeType && (" " + K(U(n)) + " ").indexOf(t) > -1) return !0;
  2589.             return !1
  2590.         }
  2591.     });
  2592.     var xt = /\r/g;
  2593.     de.fn.extend({
  2594.         val: function(e) {
  2595.             var t, n, r, i = this[0]; {
  2596.                 if (arguments.length) return r = de.isFunction(e), this.each(function(n) {
  2597.                     var i;
  2598.                     1 === this.nodeType && (i = r ? e.call(this, n, de(this).val()) : e, null == i ? i = "" : "number" == typeof i ? i += "" : de.isArray(i) && (i = de.map(i, function(e) {
  2599.                         return null == e ? "" : e + ""
  2600.                     })), t = de.valHooks[this.type] || de.valHooks[this.nodeName.toLowerCase()], t && "set" in t && void 0 !== t.set(this, i, "value") || (this.value = i))
  2601.                 });
  2602.                 if (i) return t = de.valHooks[i.type] || de.valHooks[i.nodeName.toLowerCase()], t && "get" in t && void 0 !== (n = t.get(i, "value")) ? n : (n = i.value, "string" == typeof n ? n.replace(xt, "") : null == n ? "" : n)
  2603.             }
  2604.         }
  2605.     }), de.extend({
  2606.         valHooks: {
  2607.             option: {
  2608.                 get: function(e) {
  2609.                     var t = de.find.attr(e, "value");
  2610.                     return null != t ? t : K(de.text(e))
  2611.                 }
  2612.             },
  2613.             select: {
  2614.                 get: function(e) {
  2615.                     var t, n, r, i = e.options,
  2616.                         o = e.selectedIndex,
  2617.                         a = "select-one" === e.type,
  2618.                         s = a ? null : [],
  2619.                         u = a ? o + 1 : i.length;
  2620.                     for (r = o < 0 ? u : a ? o : 0; r < u; r++)
  2621.                         if (n = i[r], (n.selected || r === o) && !n.disabled && (!n.parentNode.disabled || !de.nodeName(n.parentNode, "optgroup"))) {
  2622.                             if (t = de(n).val(), a) return t;
  2623.                             s.push(t)
  2624.                         }
  2625.                     return s
  2626.                 },
  2627.                 set: function(e, t) {
  2628.                     for (var n, r, i = e.options, o = de.makeArray(t), a = i.length; a--;) r = i[a], (r.selected = de.inArray(de.valHooks.option.get(r), o) > -1) && (n = !0);
  2629.                     return n || (e.selectedIndex = -1), o
  2630.                 }
  2631.             }
  2632.         }
  2633.     }), de.each(["radio", "checkbox"], function() {
  2634.         de.valHooks[this] = {
  2635.             set: function(e, t) {
  2636.                 if (de.isArray(t)) return e.checked = de.inArray(de(e).val(), t) > -1
  2637.             }
  2638.         }, pe.checkOn || (de.valHooks[this].get = function(e) {
  2639.             return null === e.getAttribute("value") ? "on" : e.value
  2640.         })
  2641.     });
  2642.     var _t = /^(?:focusinfocus|focusoutblur)$/;
  2643.     de.extend(de.event, {
  2644.         trigger: function(t, n, r, i) {
  2645.             var o, a, s, u, c, l, f, p = [r || te],
  2646.                 h = ce.call(t, "type") ? t.type : t,
  2647.                 d = ce.call(t, "namespace") ? t.namespace.split(".") : [];
  2648.             if (a = s = r = r || te, 3 !== r.nodeType && 8 !== r.nodeType && !_t.test(h + de.event.triggered) && (h.indexOf(".") > -1 && (d = h.split("."), h = d.shift(), d.sort()), c = h.indexOf(":") < 0 && "on" + h, t = t[de.expando] ? t : new de.Event(h, "object" == typeof t && t), t.isTrigger = i ? 2 : 3, t.namespace = d.join("."), t.rnamespace = t.namespace ? new RegExp("(^|\\.)" + d.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, t.result = void 0, t.target || (t.target = r), n = null == n ? [t] : de.makeArray(n, [t]), f = de.event.special[h] || {}, i || !f.trigger || f.trigger.apply(r, n) !== !1)) {
  2649.                 if (!i && !f.noBubble && !de.isWindow(r)) {
  2650.                     for (u = f.delegateType || h, _t.test(u + h) || (a = a.parentNode); a; a = a.parentNode) p.push(a), s = a;
  2651.                     s === (r.ownerDocument || te) && p.push(s.defaultView || s.parentWindow || e)
  2652.                 }
  2653.                 for (o = 0;
  2654.                     (a = p[o++]) && !t.isPropagationStopped();) t.type = o > 1 ? u : f.bindType || h, l = (Oe.get(a, "events") || {})[t.type] && Oe.get(a, "handle"), l && l.apply(a, n), l = c && a[c], l && l.apply && Re(a) && (t.result = l.apply(a, n), t.result === !1 && t.preventDefault());
  2655.                 return t.type = h, i || t.isDefaultPrevented() || f._default && f._default.apply(p.pop(), n) !== !1 || !Re(r) || c && de.isFunction(r[h]) && !de.isWindow(r) && (s = r[c], s && (r[c] = null), de.event.triggered = h, r[h](), de.event.triggered = void 0, s && (r[c] = s)), t.result
  2656.             }
  2657.         },
  2658.         simulate: function(e, t, n) {
  2659.             var r = de.extend(new de.Event, n, {
  2660.                 type: e,
  2661.                 isSimulated: !0
  2662.             });
  2663.             de.event.trigger(r, null, t)
  2664.         }
  2665.     }), de.fn.extend({
  2666.         trigger: function(e, t) {
  2667.             return this.each(function() {
  2668.                 de.event.trigger(e, t, this)
  2669.             })
  2670.         },
  2671.         triggerHandler: function(e, t) {
  2672.             var n = this[0];
  2673.             if (n) return de.event.trigger(e, t, n, !0)
  2674.         }
  2675.     }), de.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function(e, t) {
  2676.         de.fn[t] = function(e, n) {
  2677.             return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t)
  2678.         }
  2679.     }), de.fn.extend({
  2680.         hover: function(e, t) {
  2681.             return this.mouseenter(e).mouseleave(t || e)
  2682.         }
  2683.     }), pe.focusin = "onfocusin" in e, pe.focusin || de.each({
  2684.         focus: "focusin",
  2685.         blur: "focusout"
  2686.     }, function(e, t) {
  2687.         var n = function(e) {
  2688.             de.event.simulate(t, e.target, de.event.fix(e))
  2689.         };
  2690.         de.event.special[t] = {
  2691.             setup: function() {
  2692.                 var r = this.ownerDocument || this,
  2693.                     i = Oe.access(r, t);
  2694.                 i || r.addEventListener(e, n, !0), Oe.access(r, t, (i || 0) + 1)
  2695.             },
  2696.             teardown: function() {
  2697.                 var r = this.ownerDocument || this,
  2698.                     i = Oe.access(r, t) - 1;
  2699.                 i ? Oe.access(r, t, i) : (r.removeEventListener(e, n, !0), Oe.remove(r, t))
  2700.             }
  2701.         }
  2702.     });
  2703.     var kt = e.location,
  2704.         Tt = de.now(),
  2705.         Ct = /\?/;
  2706.     de.parseXML = function(t) {
  2707.         var n;
  2708.         if (!t || "string" != typeof t) return null;
  2709.         try {
  2710.             n = (new e.DOMParser).parseFromString(t, "text/xml")
  2711.         } catch (r) {
  2712.             n = void 0
  2713.         }
  2714.         return n && !n.getElementsByTagName("parsererror").length || de.error("Invalid XML: " + t), n
  2715.     };
  2716.     var St = /\[\]$/,
  2717.         Et = /\r?\n/g,
  2718.         jt = /^(?:submit|button|image|reset|file)$/i,
  2719.         At = /^(?:input|select|textarea|keygen)/i;
  2720.     de.param = function(e, t) {
  2721.         var n, r = [],
  2722.             i = function(e, t) {
  2723.                 var n = de.isFunction(t) ? t() : t;
  2724.                 r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n)
  2725.             };
  2726.         if (de.isArray(e) || e.jquery && !de.isPlainObject(e)) de.each(e, function() {
  2727.             i(this.name, this.value)
  2728.         });
  2729.         else
  2730.             for (n in e) X(n, e[n], t, i);
  2731.         return r.join("&")
  2732.     }, de.fn.extend({
  2733.         serialize: function() {
  2734.             return de.param(this.serializeArray())
  2735.         },
  2736.         serializeArray: function() {
  2737.             return this.map(function() {
  2738.                 var e = de.prop(this, "elements");
  2739.                 return e ? de.makeArray(e) : this
  2740.             }).filter(function() {
  2741.                 var e = this.type;
  2742.                 return this.name && !de(this).is(":disabled") && At.test(this.nodeName) && !jt.test(e) && (this.checked || !Ke.test(e))
  2743.             }).map(function(e, t) {
  2744.                 var n = de(this).val();
  2745.                 return null == n ? null : de.isArray(n) ? de.map(n, function(e) {
  2746.                     return {
  2747.                         name: t.name,
  2748.                         value: e.replace(Et, "\r\n")
  2749.                     }
  2750.                 }) : {
  2751.                     name: t.name,
  2752.                     value: n.replace(Et, "\r\n")
  2753.                 }
  2754.             }).get()
  2755.         }
  2756.     });
  2757.     var Nt = /%20/g,
  2758.         Dt = /#.*$/,
  2759.         Ft = /([?&])_=[^&]*/,
  2760.         Lt = /^(.*?):[ \t]*([^\r\n]*)$/gm,
  2761.         Rt = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
  2762.         Ot = /^(?:GET|HEAD)$/,
  2763.         qt = /^\/\//,
  2764.         Ht = {},
  2765.         It = {},
  2766.         Pt = "*/".concat("*"),
  2767.         $t = te.createElement("a");
  2768.     $t.href = kt.href, de.extend({
  2769.         active: 0,
  2770.         lastModified: {},
  2771.         etag: {},
  2772.         ajaxSettings: {
  2773.             url: kt.href,
  2774.             type: "GET",
  2775.             isLocal: Rt.test(kt.protocol),
  2776.             global: !0,
  2777.             processData: !0,
  2778.             async: !0,
  2779.             contentType: "application/x-www-form-urlencoded; charset=UTF-8",
  2780.             accepts: {
  2781.                 "*": Pt,
  2782.                 text: "text/plain",
  2783.                 html: "text/html",
  2784.                 xml: "application/xml, text/xml",
  2785.                 json: "application/json, text/javascript"
  2786.             },
  2787.             contents: {
  2788.                 xml: /\bxml\b/,
  2789.                 html: /\bhtml/,
  2790.                 json: /\bjson\b/
  2791.             },
  2792.             responseFields: {
  2793.                 xml: "responseXML",
  2794.                 text: "responseText",
  2795.                 json: "responseJSON"
  2796.             },
  2797.             converters: {
  2798.                 "* text": String,
  2799.                 "text html": !0,
  2800.                 "text json": JSON.parse,
  2801.                 "text xml": de.parseXML
  2802.             },
  2803.             flatOptions: {
  2804.                 url: !0,
  2805.                 context: !0
  2806.             }
  2807.         },
  2808.         ajaxSetup: function(e, t) {
  2809.             return t ? V(V(e, de.ajaxSettings), t) : V(de.ajaxSettings, e)
  2810.         },
  2811.         ajaxPrefilter: Y(Ht),
  2812.         ajaxTransport: Y(It),
  2813.         ajax: function(t, n) {
  2814.             function r(t, n, r, s) {
  2815.                 var c, p, h, w, x, _ = n;
  2816.                 l || (l = !0, u && e.clearTimeout(u), i = void 0, a = s || "", k.readyState = t > 0 ? 4 : 0, c = t >= 200 && t < 300 || 304 === t, r && (w = G(d, k, r)), w = Q(d, w, k, c), c ? (d.ifModified && (x = k.getResponseHeader("Last-Modified"), x && (de.lastModified[o] = x), x = k.getResponseHeader("etag"), x && (de.etag[o] = x)), 204 === t || "HEAD" === d.type ? _ = "nocontent" : 304 === t ? _ = "notmodified" : (_ = w.state, p = w.data, h = w.error, c = !h)) : (h = _, !t && _ || (_ = "error", t < 0 && (t = 0))), k.status = t, k.statusText = (n || _) + "", c ? v.resolveWith(g, [p, _, k]) : v.rejectWith(g, [k, _, h]), k.statusCode(b), b = void 0, f && m.trigger(c ? "ajaxSuccess" : "ajaxError", [k, d, c ? p : h]), y.fireWith(g, [k, _]), f && (m.trigger("ajaxComplete", [k, d]), --de.active || de.event.trigger("ajaxStop")))
  2817.             }
  2818.             "object" == typeof t && (n = t, t = void 0), n = n || {};
  2819.             var i, o, a, s, u, c, l, f, p, h, d = de.ajaxSetup({}, n),
  2820.                 g = d.context || d,
  2821.                 m = d.context && (g.nodeType || g.jquery) ? de(g) : de.event,
  2822.                 v = de.Deferred(),
  2823.                 y = de.Callbacks("once memory"),
  2824.                 b = d.statusCode || {},
  2825.                 w = {},
  2826.                 x = {},
  2827.                 _ = "canceled",
  2828.                 k = {
  2829.                     readyState: 0,
  2830.                     getResponseHeader: function(e) {
  2831.                         var t;
  2832.                         if (l) {
  2833.                             if (!s)
  2834.                                 for (s = {}; t = Lt.exec(a);) s[t[1].toLowerCase()] = t[2];
  2835.                             t = s[e.toLowerCase()]
  2836.                         }
  2837.                         return null == t ? null : t
  2838.                     },
  2839.                     getAllResponseHeaders: function() {
  2840.                         return l ? a : null
  2841.                     },
  2842.                     setRequestHeader: function(e, t) {
  2843.                         return null == l && (e = x[e.toLowerCase()] = x[e.toLowerCase()] || e, w[e] = t), this
  2844.                     },
  2845.                     overrideMimeType: function(e) {
  2846.                         return null == l && (d.mimeType = e), this
  2847.                     },
  2848.                     statusCode: function(e) {
  2849.                         var t;
  2850.                         if (e)
  2851.                             if (l) k.always(e[k.status]);
  2852.                             else
  2853.                                 for (t in e) b[t] = [b[t], e[t]];
  2854.                         return this
  2855.                     },
  2856.                     abort: function(e) {
  2857.                         var t = e || _;
  2858.                         return i && i.abort(t), r(0, t), this
  2859.                     }
  2860.                 };
  2861.             if (v.promise(k), d.url = ((t || d.url || kt.href) + "").replace(qt, kt.protocol + "//"), d.type = n.method || n.type || d.method || d.type, d.dataTypes = (d.dataType || "*").toLowerCase().match(Ne) || [""], null == d.crossDomain) {
  2862.                 c = te.createElement("a");
  2863.                 try {
  2864.                     c.href = d.url, c.href = c.href, d.crossDomain = $t.protocol + "//" + $t.host != c.protocol + "//" + c.host
  2865.                 } catch (T) {
  2866.                     d.crossDomain = !0
  2867.                 }
  2868.             }
  2869.             if (d.data && d.processData && "string" != typeof d.data && (d.data = de.param(d.data, d.traditional)), J(Ht, d, n, k), l) return k;
  2870.             f = de.event && d.global, f && 0 === de.active++ && de.event.trigger("ajaxStart"), d.type = d.type.toUpperCase(), d.hasContent = !Ot.test(d.type), o = d.url.replace(Dt, ""), d.hasContent ? d.data && d.processData && 0 === (d.contentType || "").indexOf("application/x-www-form-urlencoded") && (d.data = d.data.replace(Nt, "+")) : (h = d.url.slice(o.length), d.data && (o += (Ct.test(o) ? "&" : "?") + d.data, delete d.data), d.cache === !1 && (o = o.replace(Ft, "$1"), h = (Ct.test(o) ? "&" : "?") + "_=" + Tt++ + h), d.url = o + h), d.ifModified && (de.lastModified[o] && k.setRequestHeader("If-Modified-Since", de.lastModified[o]), de.etag[o] && k.setRequestHeader("If-None-Match", de.etag[o])), (d.data && d.hasContent && d.contentType !== !1 || n.contentType) && k.setRequestHeader("Content-Type", d.contentType), k.setRequestHeader("Accept", d.dataTypes[0] && d.accepts[d.dataTypes[0]] ? d.accepts[d.dataTypes[0]] + ("*" !== d.dataTypes[0] ? ", " + Pt + "; q=0.01" : "") : d.accepts["*"]);
  2871.             for (p in d.headers) k.setRequestHeader(p, d.headers[p]);
  2872.             if (d.beforeSend && (d.beforeSend.call(g, k, d) === !1 || l)) return k.abort();
  2873.             if (_ = "abort", y.add(d.complete), k.done(d.success), k.fail(d.error), i = J(It, d, n, k)) {
  2874.                 if (k.readyState = 1, f && m.trigger("ajaxSend", [k, d]), l) return k;
  2875.                 d.async && d.timeout > 0 && (u = e.setTimeout(function() {
  2876.                     k.abort("timeout")
  2877.                 }, d.timeout));
  2878.                 try {
  2879.                     l = !1, i.send(w, r)
  2880.                 } catch (T) {
  2881.                     if (l) throw T;
  2882.                     r(-1, T)
  2883.                 }
  2884.             } else r(-1, "No Transport");
  2885.             return k
  2886.         },
  2887.         getJSON: function(e, t, n) {
  2888.             return de.get(e, t, n, "json")
  2889.         },
  2890.         getScript: function(e, t) {
  2891.             return de.get(e, void 0, t, "script")
  2892.         }
  2893.     }), de.each(["get", "post"], function(e, t) {
  2894.         de[t] = function(e, n, r, i) {
  2895.             return de.isFunction(n) && (i = i || r, r = n, n = void 0), de.ajax(de.extend({
  2896.                 url: e,
  2897.                 type: t,
  2898.                 dataType: i,
  2899.                 data: n,
  2900.                 success: r
  2901.             }, de.isPlainObject(e) && e))
  2902.         }
  2903.     }), de._evalUrl = function(e) {
  2904.         return de.ajax({
  2905.             url: e,
  2906.             type: "GET",
  2907.             dataType: "script",
  2908.             cache: !0,
  2909.             async: !1,
  2910.             global: !1,
  2911.             "throws": !0
  2912.         })
  2913.     }, de.fn.extend({
  2914.         wrapAll: function(e) {
  2915.             var t;
  2916.             return this[0] && (de.isFunction(e) && (e = e.call(this[0])), t = de(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function() {
  2917.                 for (var e = this; e.firstElementChild;) e = e.firstElementChild;
  2918.                 return e
  2919.             }).append(this)), this
  2920.         },
  2921.         wrapInner: function(e) {
  2922.             return de.isFunction(e) ? this.each(function(t) {
  2923.                 de(this).wrapInner(e.call(this, t))
  2924.             }) : this.each(function() {
  2925.                 var t = de(this),
  2926.                     n = t.contents();
  2927.                 n.length ? n.wrapAll(e) : t.append(e)
  2928.             })
  2929.         },
  2930.         wrap: function(e) {
  2931.             var t = de.isFunction(e);
  2932.             return this.each(function(n) {
  2933.                 de(this).wrapAll(t ? e.call(this, n) : e)
  2934.             })
  2935.         },
  2936.         unwrap: function(e) {
  2937.             return this.parent(e).not("body").each(function() {
  2938.                 de(this).replaceWith(this.childNodes)
  2939.             }), this
  2940.         }
  2941.     }), de.expr.pseudos.hidden = function(e) {
  2942.         return !de.expr.pseudos.visible(e)
  2943.     }, de.expr.pseudos.visible = function(e) {
  2944.         return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length)
  2945.     }, de.ajaxSettings.xhr = function() {
  2946.         try {
  2947.             return new e.XMLHttpRequest
  2948.         } catch (t) {}
  2949.     };
  2950.     var Mt = {
  2951.             0: 200,
  2952.             1223: 204
  2953.         },
  2954.         Wt = de.ajaxSettings.xhr();
  2955.     pe.cors = !!Wt && "withCredentials" in Wt, pe.ajax = Wt = !!Wt, de.ajaxTransport(function(t) {
  2956.         var n, r;
  2957.         if (pe.cors || Wt && !t.crossDomain) return {
  2958.             send: function(i, o) {
  2959.                 var a, s = t.xhr();
  2960.                 if (s.open(t.type, t.url, t.async, t.username, t.password), t.xhrFields)
  2961.                     for (a in t.xhrFields) s[a] = t.xhrFields[a];
  2962.                 t.mimeType && s.overrideMimeType && s.overrideMimeType(t.mimeType), t.crossDomain || i["X-Requested-With"] || (i["X-Requested-With"] = "XMLHttpRequest");
  2963.                 for (a in i) s.setRequestHeader(a, i[a]);
  2964.                 n = function(e) {
  2965.                     return function() {
  2966.                         n && (n = r = s.onload = s.onerror = s.onabort = s.onreadystatechange = null, "abort" === e ? s.abort() : "error" === e ? "number" != typeof s.status ? o(0, "error") : o(s.status, s.statusText) : o(Mt[s.status] || s.status, s.statusText, "text" !== (s.responseType || "text") || "string" != typeof s.responseText ? {
  2967.                             binary: s.response
  2968.                         } : {
  2969.                             text: s.responseText
  2970.                         }, s.getAllResponseHeaders()))
  2971.                     }
  2972.                 }, s.onload = n(), r = s.onerror = n("error"), void 0 !== s.onabort ? s.onabort = r : s.onreadystatechange = function() {
  2973.                     4 === s.readyState && e.setTimeout(function() {
  2974.                         n && r()
  2975.                     })
  2976.                 }, n = n("abort");
  2977.                 try {
  2978.                     s.send(t.hasContent && t.data || null)
  2979.                 } catch (u) {
  2980.                     if (n) throw u
  2981.                 }
  2982.             },
  2983.             abort: function() {
  2984.                 n && n()
  2985.             }
  2986.         }
  2987.     }), de.ajaxPrefilter(function(e) {
  2988.         e.crossDomain && (e.contents.script = !1)
  2989.     }), de.ajaxSetup({
  2990.         accepts: {
  2991.             script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
  2992.         },
  2993.         contents: {
  2994.             script: /\b(?:java|ecma)script\b/
  2995.         },
  2996.         converters: {
  2997.             "text script": function(e) {
  2998.                 return de.globalEval(e), e
  2999.             }
  3000.         }
  3001.     }), de.ajaxPrefilter("script", function(e) {
  3002.         void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET")
  3003.     }), de.ajaxTransport("script", function(e) {
  3004.         if (e.crossDomain) {
  3005.             var t, n;
  3006.             return {
  3007.                 send: function(r, i) {
  3008.                     t = de("<script>").prop({
  3009.                         charset: e.scriptCharset,
  3010.                         src: e.url
  3011.                     }).on("load error", n = function(e) {
  3012.                         t.remove(), n = null, e && i("error" === e.type ? 404 : 200, e.type)
  3013.                     }), te.head.appendChild(t[0])
  3014.                 },
  3015.                 abort: function() {
  3016.                     n && n()
  3017.                 }
  3018.             }
  3019.         }
  3020.     });
  3021.     var zt = [],
  3022.         Bt = /(=)\?(?=&|$)|\?\?/;
  3023.     de.ajaxSetup({
  3024.         jsonp: "callback",
  3025.         jsonpCallback: function() {
  3026.             var e = zt.pop() || de.expando + "_" + Tt++;
  3027.             return this[e] = !0, e
  3028.         }
  3029.     }), de.ajaxPrefilter("json jsonp", function(t, n, r) {
  3030.         var i, o, a, s = t.jsonp !== !1 && (Bt.test(t.url) ? "url" : "string" == typeof t.data && 0 === (t.contentType || "").indexOf("application/x-www-form-urlencoded") && Bt.test(t.data) && "data");
  3031.         if (s || "jsonp" === t.dataTypes[0]) return i = t.jsonpCallback = de.isFunction(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback, s ? t[s] = t[s].replace(Bt, "$1" + i) : t.jsonp !== !1 && (t.url += (Ct.test(t.url) ? "&" : "?") + t.jsonp + "=" + i), t.converters["script json"] = function() {
  3032.             return a || de.error(i + " was not called"), a[0]
  3033.         }, t.dataTypes[0] = "json", o = e[i], e[i] = function() {
  3034.             a = arguments
  3035.         }, r.always(function() {
  3036.             void 0 === o ? de(e).removeProp(i) : e[i] = o, t[i] && (t.jsonpCallback = n.jsonpCallback, zt.push(i)), a && de.isFunction(o) && o(a[0]), a = o = void 0
  3037.         }), "script"
  3038.     }), pe.createHTMLDocument = function() {
  3039.         var e = te.implementation.createHTMLDocument("").body;
  3040.         return e.innerHTML = "<form></form><form></form>", 2 === e.childNodes.length
  3041.     }(), de.parseHTML = function(e, t, n) {
  3042.         if ("string" != typeof e) return [];
  3043.         "boolean" == typeof t && (n = t, t = !1);
  3044.         var r, i, o;
  3045.         return t || (pe.createHTMLDocument ? (t = te.implementation.createHTMLDocument(""), r = t.createElement("base"), r.href = te.location.href, t.head.appendChild(r)) : t = te), i = ke.exec(e), o = !n && [], i ? [t.createElement(i[1])] : (i = b([e], t, o), o && o.length && de(o).remove(), de.merge([], i.childNodes))
  3046.     }, de.fn.load = function(e, t, n) {
  3047.         var r, i, o, a = this,
  3048.             s = e.indexOf(" ");
  3049.         return s > -1 && (r = K(e.slice(s)), e = e.slice(0, s)), de.isFunction(t) ? (n = t, t = void 0) : t && "object" == typeof t && (i = "POST"), a.length > 0 && de.ajax({
  3050.             url: e,
  3051.             type: i || "GET",
  3052.             dataType: "html",
  3053.             data: t
  3054.         }).done(function(e) {
  3055.             o = arguments, a.html(r ? de("<div>").append(de.parseHTML(e)).find(r) : e)
  3056.         }).always(n && function(e, t) {
  3057.             a.each(function() {
  3058.                 n.apply(this, o || [e.responseText, t, e])
  3059.             })
  3060.         }), this
  3061.     }, de.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e, t) {
  3062.         de.fn[t] = function(e) {
  3063.             return this.on(t, e)
  3064.         }
  3065.     }), de.expr.pseudos.animated = function(e) {
  3066.         return de.grep(de.timers, function(t) {
  3067.             return e === t.elem
  3068.         }).length
  3069.     }, de.offset = {
  3070.         setOffset: function(e, t, n) {
  3071.             var r, i, o, a, s, u, c, l = de.css(e, "position"),
  3072.                 f = de(e),
  3073.                 p = {};
  3074.             "static" === l && (e.style.position = "relative"), s = f.offset(), o = de.css(e, "top"), u = de.css(e, "left"), c = ("absolute" === l || "fixed" === l) && (o + u).indexOf("auto") > -1, c ? (r = f.position(), a = r.top, i = r.left) : (a = parseFloat(o) || 0, i = parseFloat(u) || 0), de.isFunction(t) && (t = t.call(e, n, de.extend({}, s))), null != t.top && (p.top = t.top - s.top + a), null != t.left && (p.left = t.left - s.left + i), "using" in t ? t.using.call(e, p) : f.css(p)
  3075.         }
  3076.     }, de.fn.extend({
  3077.         offset: function(e) {
  3078.             if (arguments.length) return void 0 === e ? this : this.each(function(t) {
  3079.                 de.offset.setOffset(this, e, t)
  3080.             });
  3081.             var t, n, r, i, o = this[0];
  3082.             if (o) return o.getClientRects().length ? (r = o.getBoundingClientRect(), r.width || r.height ? (i = o.ownerDocument, n = Z(i), t = i.documentElement, {
  3083.                 top: r.top + n.pageYOffset - t.clientTop,
  3084.                 left: r.left + n.pageXOffset - t.clientLeft
  3085.             }) : r) : {
  3086.                 top: 0,
  3087.                 left: 0
  3088.             }
  3089.         },
  3090.         position: function() {
  3091.             if (this[0]) {
  3092.                 var e, t, n = this[0],
  3093.                     r = {
  3094.                         top: 0,
  3095.                         left: 0
  3096.                     };
  3097.                 return "fixed" === de.css(n, "position") ? t = n.getBoundingClientRect() : (e = this.offsetParent(), t = this.offset(), de.nodeName(e[0], "html") || (r = e.offset()), r = {
  3098.                     top: r.top + de.css(e[0], "borderTopWidth", !0),
  3099.                     left: r.left + de.css(e[0], "borderLeftWidth", !0)
  3100.                 }), {
  3101.                     top: t.top - r.top - de.css(n, "marginTop", !0),
  3102.                     left: t.left - r.left - de.css(n, "marginLeft", !0)
  3103.                 }
  3104.             }
  3105.         },
  3106.         offsetParent: function() {
  3107.             return this.map(function() {
  3108.                 for (var e = this.offsetParent; e && "static" === de.css(e, "position");) e = e.offsetParent;
  3109.                 return e || Ve
  3110.             })
  3111.         }
  3112.     }), de.each({
  3113.         scrollLeft: "pageXOffset",
  3114.         scrollTop: "pageYOffset"
  3115.     }, function(e, t) {
  3116.         var n = "pageYOffset" === t;
  3117.         de.fn[e] = function(r) {
  3118.             return Le(this, function(e, r, i) {
  3119.                 var o = Z(e);
  3120.                 return void 0 === i ? o ? o[t] : e[r] : void(o ? o.scrollTo(n ? o.pageXOffset : i, n ? i : o.pageYOffset) : e[r] = i)
  3121.             }, e, r, arguments.length)
  3122.         }
  3123.     }), de.each(["top", "left"], function(e, t) {
  3124.         de.cssHooks[t] = F(pe.pixelPosition, function(e, n) {
  3125.             if (n) return n = D(e, t), at.test(n) ? de(e).position()[t] + "px" : n
  3126.         })
  3127.     }), de.each({
  3128.         Height: "height",
  3129.         Width: "width"
  3130.     }, function(e, t) {
  3131.         de.each({
  3132.             padding: "inner" + e,
  3133.             content: t,
  3134.             "": "outer" + e
  3135.         }, function(n, r) {
  3136.             de.fn[r] = function(i, o) {
  3137.                 var a = arguments.length && (n || "boolean" != typeof i),
  3138.                     s = n || (i === !0 || o === !0 ? "margin" : "border");
  3139.                 return Le(this, function(t, n, i) {
  3140.                     var o;
  3141.                     return de.isWindow(t) ? 0 === r.indexOf("outer") ? t["inner" + e] : t.document.documentElement["client" + e] : 9 === t.nodeType ? (o = t.documentElement, Math.max(t.body["scroll" + e], o["scroll" + e], t.body["offset" + e], o["offset" + e], o["client" + e])) : void 0 === i ? de.css(t, n, s) : de.style(t, n, i, s)
  3142.                 }, t, a ? i : void 0, a)
  3143.             }
  3144.         })
  3145.     }), de.fn.extend({
  3146.         bind: function(e, t, n) {
  3147.             return this.on(e, null, t, n)
  3148.         },
  3149.         unbind: function(e, t) {
  3150.             return this.off(e, null, t)
  3151.         },
  3152.         delegate: function(e, t, n, r) {
  3153.             return this.on(t, e, n, r)
  3154.         },
  3155.         undelegate: function(e, t, n) {
  3156.             return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n)
  3157.         }
  3158.     }), de.parseJSON = JSON.parse, "function" == typeof define && define.amd && define("jquery", [], function() {
  3159.         return de
  3160.     });
  3161.     var Kt = e.jQuery,
  3162.         Ut = e.$;
  3163.     return de.noConflict = function(t) {
  3164.         return e.$ === de && (e.$ = Ut), t && e.jQuery === de && (e.jQuery = Kt), de
  3165.     }, t || (e.jQuery = e.$ = de), de
  3166. }),
  3167. function(e) {
  3168.     function t(e) {
  3169.         return Object.prototype.toString.call(e).slice(8, -1).toLowerCase()
  3170.     }
  3171.  
  3172.     function n(e, t) {
  3173.         for (var n = []; t > 0; n[--t] = e);
  3174.         return n.join("")
  3175.     }
  3176.     var r = function() {
  3177.         return r.cache.hasOwnProperty(arguments[0]) || (r.cache[arguments[0]] = r.parse(arguments[0])), r.format.call(null, r.cache[arguments[0]], arguments)
  3178.     };
  3179.     r.format = function(e, i) {
  3180.         var o, a, s, u, c, l, f, p = 1,
  3181.             h = e.length,
  3182.             d = "",
  3183.             g = [];
  3184.         for (a = 0; a < h; a++)
  3185.             if (d = t(e[a]), "string" === d) g.push(e[a]);
  3186.             else if ("array" === d) {
  3187.             if (u = e[a], u[2])
  3188.                 for (o = i[p], s = 0; s < u[2].length; s++) {
  3189.                     if (!o.hasOwnProperty(u[2][s])) throw r('[sprintf] property "%s" does not exist', u[2][s]);
  3190.                     o = o[u[2][s]]
  3191.                 } else o = u[1] ? i[u[1]] : i[p++];
  3192.             if (/[^s]/.test(u[8]) && "number" != t(o)) throw r("[sprintf] expecting number but found %s", t(o));
  3193.             switch (u[8]) {
  3194.                 case "b":
  3195.                     o = o.toString(2);
  3196.                     break;
  3197.                 case "c":
  3198.                     o = String.fromCharCode(o);
  3199.                     break;
  3200.                 case "d":
  3201.                     o = parseInt(o, 10);
  3202.                     break;
  3203.                 case "e":
  3204.                     o = u[7] ? o.toExponential(u[7]) : o.toExponential();
  3205.                     break;
  3206.                 case "f":
  3207.                     o = u[7] ? parseFloat(o).toFixed(u[7]) : parseFloat(o);
  3208.                     break;
  3209.                 case "o":
  3210.                     o = o.toString(8);
  3211.                     break;
  3212.                 case "s":
  3213.                     o = (o = String(o)) && u[7] ? o.substring(0, u[7]) : o;
  3214.                     break;
  3215.                 case "u":
  3216.                     o >>>= 0;
  3217.                     break;
  3218.                 case "x":
  3219.                     o = o.toString(16);
  3220.                     break;
  3221.                 case "X":
  3222.                     o = o.toString(16).toUpperCase()
  3223.             }
  3224.             o = /[def]/.test(u[8]) && u[3] && o >= 0 ? "+" + o : o, l = u[4] ? "0" == u[4] ? "0" : u[4].charAt(1) : " ", f = u[6] - String(o).length, c = u[6] ? n(l, f) : "", g.push(u[5] ? o + c : c + o)
  3225.         }
  3226.         return g.join("")
  3227.     }, r.cache = {}, r.parse = function(e) {
  3228.         for (var t = e, n = [], r = [], i = 0; t;) {
  3229.             if (null !== (n = /^[^\x25]+/.exec(t))) r.push(n[0]);
  3230.             else if (null !== (n = /^\x25{2}/.exec(t))) r.push("%");
  3231.             else {
  3232.                 if (null === (n = /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(t))) throw "[sprintf] huh?";
  3233.                 if (n[2]) {
  3234.                     i |= 1;
  3235.                     var o = [],
  3236.                         a = n[2],
  3237.                         s = [];
  3238.                     if (null === (s = /^([a-z_][a-z_\d]*)/i.exec(a))) throw "[sprintf] huh?";
  3239.                     for (o.push(s[1]);
  3240.                         "" !== (a = a.substring(s[0].length));)
  3241.                         if (null !== (s = /^\.([a-z_][a-z_\d]*)/i.exec(a))) o.push(s[1]);
  3242.                         else {
  3243.                             if (null === (s = /^\[(\d+)\]/.exec(a))) throw "[sprintf] huh?";
  3244.                             o.push(s[1])
  3245.                         }
  3246.                     n[2] = o
  3247.                 } else i |= 2;
  3248.                 if (3 === i) throw "[sprintf] mixing positional and named placeholders is not (yet) supported";
  3249.                 r.push(n)
  3250.             }
  3251.             t = t.substring(n[0].length)
  3252.         }
  3253.         return r
  3254.     };
  3255.     var i = function(e, t, n) {
  3256.         return n = t.slice(0), n.splice(0, 0, e), r.apply(null, n)
  3257.     };
  3258.     e.sprintf = r, e.vsprintf = i
  3259. }("undefined" != typeof global ? global : window),
  3260. function(e, t) {
  3261.     "use strict";
  3262.  
  3263.     function n(e, t) {
  3264.         var n;
  3265.         if ("string" == typeof e && "string" == typeof t) return localStorage[e] = t, !0;
  3266.         if ("object" == typeof e && "undefined" == typeof t) {
  3267.             for (n in e) e.hasOwnProperty(n) && (localStorage[n] = e[n]);
  3268.             return !0
  3269.         }
  3270.         return !1
  3271.     }
  3272.  
  3273.     function r(e, t) {
  3274.         var n, r, i;
  3275.         if (n = new Date, n.setTime(n.getTime() + 31536e6), r = "; expires=" + n.toGMTString(), "string" == typeof e && "string" == typeof t) return document.cookie = e + "=" + t + r + "; path=/", !0;
  3276.         if ("object" == typeof e && "undefined" == typeof t) {
  3277.             for (i in e) e.hasOwnProperty(i) && (document.cookie = i + "=" + e[i] + r + "; path=/");
  3278.             return !0
  3279.         }
  3280.         return !1
  3281.     }
  3282.  
  3283.     function i(e) {
  3284.         return localStorage[e]
  3285.     }
  3286.  
  3287.     function o(e) {
  3288.         var t, n, r, i;
  3289.         for (t = e + "=", n = document.cookie.split(";"), r = 0; r < n.length; r++) {
  3290.             for (i = n[r];
  3291.                 " " === i.charAt(0);) i = i.substring(1, i.length);
  3292.             if (0 === i.indexOf(t)) return i.substring(t.length, i.length)
  3293.         }
  3294.         return null
  3295.     }
  3296.  
  3297.     function a(e) {
  3298.         return delete localStorage[e]
  3299.     }
  3300.  
  3301.     function s(e) {
  3302.         return r(e, "", -1)
  3303.     }
  3304.  
  3305.     function u(e, t) {
  3306.         var n = [],
  3307.             r = e.length;
  3308.         if (r < t) return [e];
  3309.         if (t < 0) throw new Error("str_parts: length can't be negative");
  3310.         for (var i = 0; i < r; i += t) n.push(e.substring(i, i + t));
  3311.         return n
  3312.     }
  3313.  
  3314.     function c(t) {
  3315.         var n = t ? [t] : [],
  3316.             r = 0;
  3317.         e.extend(this, {
  3318.             get: function() {
  3319.                 return n
  3320.             },
  3321.             rotate: function() {
  3322.                 if (n.filter(Boolean).length) return 1 === n.length ? n[0] : (r === n.length - 1 ? r = 0 : ++r, n[r] ? n[r] : this.rotate())
  3323.             },
  3324.             length: function() {
  3325.                 return n.length
  3326.             },
  3327.             remove: function(e) {
  3328.                 delete n[e]
  3329.             },
  3330.             set: function(e) {
  3331.                 for (var t = n.length; t--;)
  3332.                     if (n[t] === e) return void(r = t);
  3333.                 this.append(e)
  3334.             },
  3335.             front: function() {
  3336.                 if (n.length) {
  3337.                     for (var e = r, t = !1; !n[e];)
  3338.                         if (e++, e > n.length) {
  3339.                             if (t) break;
  3340.                             e = 0, t = !0
  3341.                         }
  3342.                     return n[e]
  3343.                 }
  3344.             },
  3345.             append: function(e) {
  3346.                 n.push(e)
  3347.             }
  3348.         })
  3349.     }
  3350.  
  3351.     function l(t) {
  3352.         var n = t instanceof Array ? t : t ? [t] : [];
  3353.         e.extend(this, {
  3354.             data: function() {
  3355.                 return n
  3356.             },
  3357.             map: function(t) {
  3358.                 return e.map(n, t)
  3359.             },
  3360.             size: function() {
  3361.                 return n.length
  3362.             },
  3363.             pop: function() {
  3364.                 if (0 === n.length) return null;
  3365.                 var e = n[n.length - 1];
  3366.                 return n = n.slice(0, n.length - 1), e
  3367.             },
  3368.             push: function(e) {
  3369.                 return n = n.concat([e]), e
  3370.             },
  3371.             top: function() {
  3372.                 return n.length > 0 ? n[n.length - 1] : null
  3373.             },
  3374.             clone: function() {
  3375.                 return new l(n.slice(0))
  3376.             }
  3377.         })
  3378.     }
  3379.  
  3380.     function f(t, n) {
  3381.         var r = !0,
  3382.             i = "";
  3383.         "string" == typeof t && "" !== t && (i = t + "_"), i += "commands";
  3384.         var o = e.Storage.get(i);
  3385.         o = o ? e.parseJSON(o) : [];
  3386.         var a = o.length - 1;
  3387.         e.extend(this, {
  3388.             append: function(t) {
  3389.                 r && o[o.length - 1] !== t && (o.push(t), n && o.length > n && (o = o.slice(-n)), a = o.length - 1, e.Storage.set(i, e.json_stringify(o)))
  3390.             },
  3391.             data: function() {
  3392.                 return o
  3393.             },
  3394.             reset: function() {
  3395.                 a = o.length - 1
  3396.             },
  3397.             last: function() {
  3398.                 return o[o.length - 1]
  3399.             },
  3400.             end: function() {
  3401.                 return a === o.length - 1
  3402.             },
  3403.             position: function() {
  3404.                 return a
  3405.             },
  3406.             current: function() {
  3407.                 return o[a]
  3408.             },
  3409.             next: function() {
  3410.                 if (a < o.length - 1 && ++a, a !== -1) return o[a]
  3411.             },
  3412.             previous: function() {
  3413.                 var e = a;
  3414.                 if (a > 0 && --a, e !== -1) return o[a]
  3415.             },
  3416.             clear: function() {
  3417.                 o = [], this.purge()
  3418.             },
  3419.             enabled: function() {
  3420.                 return r
  3421.             },
  3422.             enable: function() {
  3423.                 r = !0
  3424.             },
  3425.             purge: function() {
  3426.                 e.Storage.remove(i)
  3427.             },
  3428.             disable: function() {
  3429.                 r = !1
  3430.             }
  3431.         })
  3432.     }
  3433.  
  3434.     function p(t, n) {
  3435.         var r = n(t);
  3436.         if (r.length) {
  3437.             var i = r.shift(),
  3438.                 o = new RegExp("^" + e.terminal.escape_regex(i)),
  3439.                 a = t.replace(o, "").trim();
  3440.             return {
  3441.                 command: t,
  3442.                 name: i,
  3443.                 args: r,
  3444.                 rest: a
  3445.             }
  3446.         }
  3447.         return {
  3448.             command: t,
  3449.             name: "",
  3450.             args: [],
  3451.             rest: ""
  3452.         }
  3453.     }
  3454.  
  3455.     function h() {
  3456.         var t = e('<div class="terminal temp"><div class="cmd"><span class="cursor">&nbsp;</span></div></div>').appendTo("body"),
  3457.             n = t.find("span"),
  3458.             r = {
  3459.                 width: n.width(),
  3460.                 height: n.outerHeight()
  3461.             };
  3462.         return t.remove(), r
  3463.     }
  3464.  
  3465.     function d(t) {
  3466.         var n = e('<div class="terminal wrap"><span class="cursor">&nbsp;</span></div>').appendTo("body").css("padding", 0),
  3467.             r = n.find("span"),
  3468.             i = r[0].getBoundingClientRect().width,
  3469.             o = Math.floor(t.width() / i);
  3470.         if (n.remove(), v(t)) {
  3471.             var a = 20,
  3472.                 s = t.innerWidth() - t.width();
  3473.             o -= Math.ceil((a - s / 2) / (i - 1))
  3474.         }
  3475.         return o
  3476.     }
  3477.  
  3478.     function g(e) {
  3479.         return Math.floor(e.height() / h().height)
  3480.     }
  3481.  
  3482.     function m() {
  3483.         if (window.getSelection || document.getSelection) {
  3484.             var e = (window.getSelection || document.getSelection)();
  3485.             return e.text ? e.text : e.toString()
  3486.         }
  3487.         if (document.selection) return document.selection.createRange().text
  3488.     }
  3489.  
  3490.     function v(t) {
  3491.         return "scroll" == t.css("overflow") || "scroll" == t.css("overflow-y") || (t.is("body") ? e("body").height() > e(window).height() : t.get(0).scrollHeight > t.innerHeight())
  3492.     }
  3493.     e.omap = function(t, n) {
  3494.         var r = {};
  3495.         return e.each(t, function(e, i) {
  3496.             r[e] = n.call(t, e, i)
  3497.         }), r
  3498.     };
  3499.     var y = {
  3500.             clone_object: function(t) {
  3501.                 var n = {};
  3502.                 if ("object" == typeof t) {
  3503.                     if (e.isArray(t)) return this.clone_array(t);
  3504.                     if (null === t) return t;
  3505.                     for (var r in t) e.isArray(t[r]) ? n[r] = this.clone_array(t[r]) : "object" == typeof t[r] ? n[r] = this.clone_object(t[r]) : n[r] = t[r]
  3506.                 }
  3507.                 return n
  3508.             },
  3509.             clone_array: function(t) {
  3510.                 if (!e.isFunction(Array.prototype.map)) throw new Error("You'r browser don't support ES5 array map use es5-shim");
  3511.                 return t.slice(0).map(function(e) {
  3512.                     return "object" == typeof e ? this.clone_object(e) : e
  3513.                 }.bind(this))
  3514.             }
  3515.         },
  3516.         b = function(e) {
  3517.             return y.clone_object(e)
  3518.         },
  3519.         w = function() {
  3520.             var e = "test",
  3521.                 t = window.localStorage;
  3522.             try {
  3523.                 return t.setItem(e, "1"), t.removeItem(e), !0
  3524.             } catch (n) {
  3525.                 return !1
  3526.             }
  3527.         },
  3528.         x = w();
  3529.     e.extend({
  3530.         Storage: {
  3531.             set: x ? n : r,
  3532.             get: x ? i : o,
  3533.             remove: x ? a : s
  3534.         }
  3535.     });
  3536.     var _ = e;
  3537.     _.fn.extend({
  3538.             everyTime: function(e, t, n, r, i) {
  3539.                 return this.each(function() {
  3540.                     _.timer.add(this, e, t, n, r, i)
  3541.                 })
  3542.             },
  3543.             oneTime: function(e, t, n) {
  3544.                 return this.each(function() {
  3545.                     _.timer.add(this, e, t, n, 1)
  3546.                 })
  3547.             },
  3548.             stopTime: function(e, t) {
  3549.                 return this.each(function() {
  3550.                     _.timer.remove(this, e, t)
  3551.                 })
  3552.             }
  3553.         }), _.extend({
  3554.             timer: {
  3555.                 guid: 1,
  3556.                 global: {},
  3557.                 regex: /^([0-9]+)\s*(.*s)?$/,
  3558.                 powers: {
  3559.                     ms: 1,
  3560.                     cs: 10,
  3561.                     ds: 100,
  3562.                     s: 1e3,
  3563.                     das: 1e4,
  3564.                     hs: 1e5,
  3565.                     ks: 1e6
  3566.                 },
  3567.                 timeParse: function(e) {
  3568.                     if (e === t || null === e) return null;
  3569.                     var n = this.regex.exec(_.trim(e.toString()));
  3570.                     if (n[2]) {
  3571.                         var r = parseInt(n[1], 10),
  3572.                             i = this.powers[n[2]] || 1;
  3573.                         return r * i
  3574.                     }
  3575.                     return e
  3576.                 },
  3577.                 add: function(e, t, n, r, i, o) {
  3578.                     var a = 0;
  3579.                     if (_.isFunction(n) && (i || (i = r), r = n, n = t), t = _.timer.timeParse(t), !("number" != typeof t || isNaN(t) || t <= 0)) {
  3580.                         i && i.constructor !== Number && (o = !!i, i = 0), i = i || 0, o = o || !1, e.$timers || (e.$timers = {}), e.$timers[n] || (e.$timers[n] = {}), r.$timerID = r.$timerID || this.guid++;
  3581.                         var s = function() {
  3582.                             o && s.inProgress || (s.inProgress = !0, (++a > i && 0 !== i || r.call(e, a) === !1) && _.timer.remove(e, n, r), s.inProgress = !1)
  3583.                         };
  3584.                         s.$timerID = r.$timerID, e.$timers[n][r.$timerID] || (e.$timers[n][r.$timerID] = window.setInterval(s, t)), this.global[n] || (this.global[n] = []), this.global[n].push(e)
  3585.                     }
  3586.                 },
  3587.                 remove: function(e, t, n) {
  3588.                     var r, i = e.$timers;
  3589.                     if (i) {
  3590.                         if (t) {
  3591.                             if (i[t]) {
  3592.                                 if (n) n.$timerID && (window.clearInterval(i[t][n.$timerID]), delete i[t][n.$timerID]);
  3593.                                 else
  3594.                                     for (var o in i[t]) i[t].hasOwnProperty(o) && (window.clearInterval(i[t][o]), delete i[t][o]);
  3595.                                 for (r in i[t])
  3596.                                     if (i[t].hasOwnProperty(r)) break;
  3597.                                 r || (r = null, delete i[t])
  3598.                             }
  3599.                         } else
  3600.                             for (var a in i) i.hasOwnProperty(a) && this.remove(e, a, n);
  3601.                         for (r in i)
  3602.                             if (i.hasOwnProperty(r)) break;
  3603.                         r || (e.$timers = null)
  3604.                     }
  3605.                 }
  3606.             }
  3607.         }), /(msie) ([\w.]+)/.exec(navigator.userAgent.toLowerCase()) && _(window).one("unload", function() {
  3608.             var e = _.timer.global;
  3609.             for (var t in e)
  3610.                 if (e.hasOwnProperty(t))
  3611.                     for (var n = e[t], r = n.length; --r;) _.timer.remove(n[r], t)
  3612.         }),
  3613.         function(e) {
  3614.             if (String.prototype.split.toString().match(/\[native/)) {
  3615.                 var t, n = String.prototype.split,
  3616.                     r = /()??/.exec("")[1] === e;
  3617.                 return t = function(t, i, o) {
  3618.                     if ("[object RegExp]" !== Object.prototype.toString.call(i)) return n.call(t, i, o);
  3619.                     var a, s, u, c, l = [],
  3620.                         f = (i.ignoreCase ? "i" : "") + (i.multiline ? "m" : "") + (i.extended ? "x" : "") + (i.sticky ? "y" : ""),
  3621.                         p = 0;
  3622.                     for (i = new RegExp(i.source, f + "g"), t += "", r || (a = new RegExp("^" + i.source + "$(?!\\s)", f)), o = o === e ? -1 >>> 0 : o >>> 0;
  3623.                         (s = i.exec(t)) && (u = s.index + s[0].length, !(u > p && (l.push(t.slice(p, s.index)), !r && s.length > 1 && s[0].replace(a, function() {
  3624.                             for (var t = 1; t < arguments.length - 2; t++) arguments[t] === e && (s[t] = e)
  3625.                         }), s.length > 1 && s.index < t.length && Array.prototype.push.apply(l, s.slice(1)), c = s[0].length, p = u, l.length >= o)));) i.lastIndex === s.index && i.lastIndex++;
  3626.                     return p === t.length ? !c && i.test("") || l.push("") : l.push(t.slice(p)), l.length > o ? l.slice(0, o) : l
  3627.                 }, String.prototype.split = function(e, n) {
  3628.                     return t(this, e, n)
  3629.                 }, t
  3630.             }
  3631.         }(), e.fn.caret = function(e) {
  3632.             var t = this[0],
  3633.                 n = "true" === t.contentEditable;
  3634.             if (0 == arguments.length) {
  3635.                 if (window.getSelection) {
  3636.                     if (n) {
  3637.                         t.focus();
  3638.                         var r = window.getSelection().getRangeAt(0),
  3639.                             i = r.cloneRange();
  3640.                         return i.selectNodeContents(t), i.setEnd(r.endContainer, r.endOffset), i.toString().length
  3641.                     }
  3642.                     return t.selectionStart
  3643.                 }
  3644.                 if (document.selection) {
  3645.                     if (t.focus(), n) {
  3646.                         var r = document.selection.createRange(),
  3647.                             i = document.body.createTextRange();
  3648.                         return i.moveToElementText(t), i.setEndPoint("EndToEnd", r), i.text.length
  3649.                     }
  3650.                     var e = 0,
  3651.                         o = t.createTextRange(),
  3652.                         i = document.selection.createRange().duplicate(),
  3653.                         a = i.getBookmark();
  3654.                     for (o.moveToBookmark(a); 0 !== o.moveStart("character", -1);) e++;
  3655.                     return e
  3656.                 }
  3657.                 return 0
  3658.             }
  3659.             if (e == -1 && (e = this[n ? "text" : "val"]().length), window.getSelection) n ? (t.focus(), window.getSelection().collapse(t.firstChild, e)) : t.setSelectionRange(e, e);
  3660.             else if (document.body.createTextRange) {
  3661.                 var o = document.body.createTextRange();
  3662.                 o.moveToElementText(t), o.moveStart("character", e), o.collapse(!0), o.select()
  3663.             }
  3664.             return n || t.focus(), e
  3665.         }, e.json_stringify = function(n, r) {
  3666.             var i, o = "";
  3667.             r = r === t ? 1 : r;
  3668.             var a = typeof n;
  3669.             switch (a) {
  3670.                 case "function":
  3671.                     o += n;
  3672.                     break;
  3673.                 case "boolean":
  3674.                     o += n ? "true" : "false";
  3675.                     break;
  3676.                 case "object":
  3677.                     if (null === n) o += "null";
  3678.                     else if (n instanceof Array) {
  3679.                         o += "[";
  3680.                         var s = n.length;
  3681.                         for (i = 0; i < s - 1; ++i) o += e.json_stringify(n[i], r + 1);
  3682.                         o += e.json_stringify(n[s - 1], r + 1) + "]"
  3683.                     } else {
  3684.                         o += "{";
  3685.                         for (var u in n) n.hasOwnProperty(u) && (o += '"' + u + '":' + e.json_stringify(n[u], r + 1));
  3686.                         o += "}"
  3687.                     }
  3688.                     break;
  3689.                 case "string":
  3690.                     var c = n,
  3691.                         l = {
  3692.                             "\\\\": "\\\\",
  3693.                             '"': '\\"',
  3694.                             "/": "\\/",
  3695.                             "\\n": "\\n",
  3696.                             "\\r": "\\r",
  3697.                             "\\t": "\\t"
  3698.                         };
  3699.                     for (i in l) l.hasOwnProperty(i) && (c = c.replace(new RegExp(i, "g"), l[i]));
  3700.                     o += '"' + c + '"';
  3701.                     break;
  3702.                 case "number":
  3703.                     o += String(n)
  3704.             }
  3705.             return o += r > 1 ? "," : "", 1 === r && (o = o.replace(/,([\]}])/g, "$1")), o.replace(/([\[{]),/g, "$1")
  3706.         };
  3707.     var k = function() {
  3708.         var e = document.createElement("div");
  3709.         return e.setAttribute("onpaste", "return;"), "function" == typeof e.onpaste
  3710.     }();
  3711.     e.fn.cmd = function(n) {
  3712.         function r() {
  3713.             var e = x.is(":focus");
  3714.             D ? e || (x.focus(), b.oneTime(10, function() {
  3715.                 x.focus()
  3716.             })) : e && x.blur()
  3717.         }
  3718.  
  3719.         function i() {
  3720.             S && b.oneTime(10, function() {
  3721.                 x.val($), b.oneTime(10, function() {
  3722.                     x.caret(z)
  3723.                 })
  3724.             })
  3725.         }
  3726.  
  3727.         function o(e) {
  3728.             K.toggleClass("inverted")
  3729.         }
  3730.  
  3731.         function a() {
  3732.             N = "(reverse-i-search)`" + H + "': ", V()
  3733.         }
  3734.  
  3735.         function s() {
  3736.             N = j, q = !1, I = null, H = ""
  3737.         }
  3738.  
  3739.         function c(t) {
  3740.             var n, r, i = L.data(),
  3741.                 o = i.length;
  3742.             if (t && I > 0 && (o -= I), H.length > 0)
  3743.                 for (var s = H.length; s > 0; s--) {
  3744.                     r = e.terminal.escape_regex(H.substring(0, s)), n = new RegExp(r);
  3745.                     for (var u = o; u--;)
  3746.                         if (n.test(i[u])) return I = i.length - u, b.position(i[u].indexOf(r)), b.set(i[u], !0), J(), void(H.length !== s && (H = H.substring(0, s), a()))
  3747.                 }
  3748.             H = ""
  3749.         }
  3750.  
  3751.         function l() {
  3752.             var e = b.width(),
  3753.                 t = K[0].getBoundingClientRect().width;
  3754.             _ = Math.floor(e / t)
  3755.         }
  3756.  
  3757.         function p(e) {
  3758.             var t = e.substring(0, _ - E),
  3759.                 n = e.substring(_ - E);
  3760.             return [t].concat(u(n, _))
  3761.         }
  3762.  
  3763.         function h(e) {
  3764.             if (!(U++ > 0) && (e.originalEvent && (e = e.originalEvent), b.isenabled())) {
  3765.                 var t = b.find("textarea");
  3766.                 t.is(":focus") || t.focus(), b.oneTime(100, function() {
  3767.                     b.insert(t.val()), t.val(""), i()
  3768.                 })
  3769.             }
  3770.         }
  3771.  
  3772.         function d(r) {
  3773.             var i, o, u;
  3774.             if (D) {
  3775.                 if (e.isFunction(n.keydown) && (i = n.keydown(r), i !== t)) return i;
  3776.                 if (38 === r.which || 80 === r.which && r.ctrlKey || (G = !0), !q || 35 !== r.which && 36 !== r.which && 37 !== r.which && 38 !== r.which && 39 !== r.which && 40 !== r.which && 13 !== r.which && 27 !== r.which) {
  3777.                     if (r.altKey) return 68 !== r.which || (b.set($.slice(0, z) + $.slice(z).replace(/ *[^ ]+ *(?= )|[^ ]+$/, ""), !0), !1);
  3778.                     if (13 === r.keyCode)
  3779.                         if (r.shiftKey) b.insert("\n");
  3780.                         else {
  3781.                             (L && $ && !P && e.isFunction(n.historyFilter) && n.historyFilter($) || n.historyFilter instanceof RegExp && $.match(n.historyFilter) || !n.historyFilter) && L.append($);
  3782.                             var l = $;
  3783.                             L.reset(), b.set(""), n.commands && n.commands(l), e.isFunction(N) && V()
  3784.                         } else if (8 === r.which) {
  3785.                         if (q ? (H = H.slice(0, -1), a()) : "" !== $ && z > 0 && b["delete"](-1), S) return !0
  3786.                     } else if (67 === r.which && r.ctrlKey && r.shiftKey) M = m();
  3787.                     else if (86 === r.which && r.ctrlKey && r.shiftKey) "" !== M && b.insert(M);
  3788.                     else if (9 !== r.which || r.ctrlKey || r.altKey) {
  3789.                         if (46 === r.which) return void b["delete"](1);
  3790.                         if (L && 38 === r.which && !r.ctrlKey || 80 === r.which && r.ctrlKey) G ? (A = $, b.set(L.current())) : b.set(L.previous()), G = !1;
  3791.                         else if (L && 40 === r.which && !r.ctrlKey || 78 === r.which && r.ctrlKey) b.set(L.end() ? A : L.next());
  3792.                         else if (37 === r.which || 66 === r.which && r.ctrlKey)
  3793.                             if (r.ctrlKey && 66 !== r.which) {
  3794.                                 u = z - 1, o = 0, " " === $[u] && --u;
  3795.                                 for (var f = u; f > 0; --f) {
  3796.                                     if (" " === $[f] && " " !== $[f + 1]) {
  3797.                                         o = f + 1;
  3798.                                         break
  3799.                                     }
  3800.                                     if ("\n" === $[f] && "\n" !== $[f + 1]) {
  3801.                                         o = f;
  3802.                                         break
  3803.                                     }
  3804.                                 }
  3805.                                 b.position(o)
  3806.                             } else z > 0 && (b.position(-1, !0), J());
  3807.                         else if (82 === r.which && r.ctrlKey) q ? c(!0) : (j = N, a(), A = $, b.set(""), J(), q = !0);
  3808.                         else if (71 == r.which && r.ctrlKey) q && (N = j, V(), b.set(A), J(), q = !1, H = "");
  3809.                         else if (39 === r.which || 70 === r.which && r.ctrlKey)
  3810.                             if (r.ctrlKey && 70 !== r.which) {
  3811.                                 " " === $[z] && ++z;
  3812.                                 var p = /\S[\n\s]{2,}|[\n\s]+\S?/,
  3813.                                     g = $.slice(z).match(p);
  3814.                                 !g || g[0].match(/^\s+$/) ? b.position($.length) : " " !== g[0][0] ? z += g.index + 1 : (z += g.index + g[0].length - 1, " " !== g[0][g[0].length - 1] && --z), J()
  3815.                             } else z < $.length && b.position(1, !0);
  3816.                         else {
  3817.                             if (123 === r.which) return;
  3818.                             if (36 === r.which) b.position(0);
  3819.                             else if (35 === r.which) b.position($.length);
  3820.                             else {
  3821.                                 if (r.shiftKey && 45 == r.which) return x.val(""), U = 0, void(k ? x.focus() : h(r));
  3822.                                 if (!r.ctrlKey && !r.metaKey) return Q = !1, void(Y = !0);
  3823.                                 if (192 === r.which) return;
  3824.                                 if (r.metaKey) {
  3825.                                     if (82 === r.which) return;
  3826.                                     if (76 === r.which) return
  3827.                                 }
  3828.                                 if (r.shiftKey) {
  3829.                                     if (84 === r.which) return
  3830.                                 } else {
  3831.                                     if (81 === r.which) {
  3832.                                         if ("" !== $ && 0 !== z) {
  3833.                                             var v = $.slice(0, z).match(/([^ ]+ *$)/);
  3834.                                             W = b["delete"](-v[0].length)
  3835.                                         }
  3836.                                         return !1
  3837.                                     }
  3838.                                     if (72 === r.which) return "" !== $ && z > 0 && b["delete"](-1), !1;
  3839.                                     if (65 === r.which) b.position(0);
  3840.                                     else if (69 === r.which) b.position($.length);
  3841.                                     else {
  3842.                                         if (88 === r.which || 67 === r.which || 84 === r.which) return;
  3843.                                         if (89 === r.which) "" !== W && b.insert(W);
  3844.                                         else {
  3845.                                             if (86 === r.which || 118 === r.which) return x.val(""), U = 0, void(k ? (x.focus(), x.on("input", function y(e) {
  3846.                                                 h(e), x.off("input", y)
  3847.                                             })) : h(r));
  3848.                                             if (75 === r.which) W = b["delete"]($.length - z);
  3849.                                             else if (85 === r.which) "" !== $ && 0 !== z && (W = b["delete"](-z));
  3850.                                             else if (17 === r.which) return !1
  3851.                                         }
  3852.                                     }
  3853.                                 }
  3854.                             }
  3855.                         }
  3856.                     } else b.insert("\t")
  3857.                 } else s(), V(), 27 === r.which && b.set(""), J(), d.call(this, r);
  3858.                 r.preventDefault()
  3859.             }
  3860.         }
  3861.  
  3862.         function g() {
  3863.             e.isFunction(n.onCommandChange) && n.onCommandChange($)
  3864.         }
  3865.  
  3866.         function v(r) {
  3867.             var i;
  3868.             if (Y = !1, (!r.ctrlKey && !r.metaKey || [99, 118, 86].indexOf(r.which) === -1) && !Q) {
  3869.                 if (!q && e.isFunction(n.keypress) && (i = n.keypress(r)), i !== t && !i) return i;
  3870.                 if (D) {
  3871.                     if (e.inArray(r.which, [38, 13, 0, 8]) > -1 && (38 !== r.which || !r.shiftKey)) {
  3872.                         if (123 == r.keyCode) return;
  3873.                         return !1
  3874.                     }
  3875.                     if (!r.ctrlKey && (!r.altKey || 100 !== r.which) || r.altKey) return q ? (H += String.fromCharCode(r.which), c(), a()) : b.insert(String.fromCharCode(r.which)), !1
  3876.                 }
  3877.             }
  3878.         }
  3879.  
  3880.         function y(e) {
  3881.             if (Y) {
  3882.                 var t = x.val();
  3883.                 (t || 8 == e.which) && b.set(t)
  3884.             }
  3885.         }
  3886.         var b = this,
  3887.             w = b.data("cmd");
  3888.         if (w) return w;
  3889.         b.addClass("cmd"), b.append('<span class="prompt"></span><span></span><span class="cursor">&nbsp;</span><span></span>');
  3890.         var x = e("<textarea>").addClass("clipboard").appendTo(b);
  3891.         n.width && b.width(n.width);
  3892.         var _, E, j, A, N, D, F, L, R, O = b.find(".prompt"),
  3893.             q = !1,
  3894.             H = "",
  3895.             I = null,
  3896.             P = n.mask || !1,
  3897.             $ = "",
  3898.             M = "",
  3899.             W = "",
  3900.             z = 0,
  3901.             B = n.historySize || 60,
  3902.             K = b.find(".cursor"),
  3903.             U = 0;
  3904.         if (T && !C) R = function(e) {
  3905.             e ? K.addClass("blink") : K.removeClass("blink")
  3906.         };
  3907.         else {
  3908.             var X = !1;
  3909.             R = function(e) {
  3910.                 e && !X ? (X = !0, K.addClass("inverted blink"), b.everyTime(500, "blink", o)) : X && !e && (X = !1, b.stopTime("blink", o), K.removeClass("inverted blink"))
  3911.             }
  3912.         }
  3913.         var Y, J = function(t) {
  3914.                 function n(t, n) {
  3915.                     var r = t.length;
  3916.                     if (n === r) a.html(e.terminal.encode(t)), K.html("&nbsp;"), s.html("");
  3917.                     else if (0 === n) a.html(""), K.html(e.terminal.encode(t.slice(0, 1))), s.html(e.terminal.encode(t.slice(1)));
  3918.                     else {
  3919.                         var i = t.slice(0, n);
  3920.                         a.html(e.terminal.encode(i));
  3921.                         var o = t.slice(n, n + 1);
  3922.                         K.html(e.terminal.encode(o)), n === t.length - 1 ? s.html("") : s.html(e.terminal.encode(t.slice(n + 1)))
  3923.                     }
  3924.                 }
  3925.  
  3926.                 function r(t) {
  3927.                     return "<div>" + e.terminal.encode(t) + "</div>"
  3928.                 }
  3929.  
  3930.                 function i(t) {
  3931.                     var n = s;
  3932.                     e.each(t, function(t, i) {
  3933.                         n = e(r(i)).insertAfter(n).addClass("clear")
  3934.                     })
  3935.                 }
  3936.  
  3937.                 function o(t) {
  3938.                     e.each(t, function(e, t) {
  3939.                         a.before(r(t))
  3940.                     })
  3941.                 }
  3942.                 var a = K.prev(),
  3943.                     s = K.next();
  3944.                 return function() {
  3945.                     var c, l;
  3946.                     switch (typeof P) {
  3947.                         case "boolean":
  3948.                             c = P ? $.replace(/./g, "*") : $;
  3949.                             break;
  3950.                         case "string":
  3951.                             c = $.replace(/./g, P)
  3952.                     }
  3953.                     var f, h;
  3954.                     if (t.find("div").remove(), a.html(""), c.length > _ - E - 1 || c.match(/\n/)) {
  3955.                         var d, g = c.match(/\t/g),
  3956.                             m = g ? 3 * g.length : 0;
  3957.                         if (g && (c = c.replace(/\t/g, "\0\0\0\0")), c.match(/\n/)) {
  3958.                             var v = c.split("\n");
  3959.                             for (h = _ - E - 1, f = 0; f < v.length - 1; ++f) v[f] += " ";
  3960.                             for (v[0].length > h ? (d = [v[0].substring(0, h)], l = v[0].substring(h), d = d.concat(u(l, _))) : d = [v[0]], f = 1; f < v.length; ++f) v[f].length > _ ? d = d.concat(u(v[f], _)) : d.push(v[f])
  3961.                         } else d = p(c);
  3962.                         if (g && (d = e.map(d, function(e) {
  3963.                                 return e.replace(/\x00\x00\x00\x00/g, "\t")
  3964.                             })), h = d[0].length, 0 === h && 1 === d.length);
  3965.                         else if (z < h) n(d[0], z), i(d.slice(1));
  3966.                         else if (z === h) a.before(r(d[0])), n(d[1], 0), i(d.slice(2));
  3967.                         else {
  3968.                             var y = d.length;
  3969.                             if (z < h) n(d[0], z), i(d.slice(1));
  3970.                             else if (z === h) a.before(r(d[0])), n(d[1], 0), i(d.slice(2));
  3971.                             else {
  3972.                                 var b = d.slice(-1)[0],
  3973.                                     w = c.length - z - m,
  3974.                                     x = b.length,
  3975.                                     k = 0;
  3976.                                 if (w <= x) o(d.slice(0, -1)), k = x === w ? 0 : x - w, n(b, k);
  3977.                                 else if (3 === y) l = e.terminal.encode(d[0]), a.before("<div>" + l + "</div>"), n(d[1], z - h - 1), l = e.terminal.encode(d[2]), s.after('<div class="clear">' + l + "</div>");
  3978.                                 else {
  3979.                                     var T, C;
  3980.                                     for (k = z, f = 0; f < d.length; ++f) {
  3981.                                         var S = d[f].length;
  3982.                                         if (!(k > S)) break;
  3983.                                         k -= S
  3984.                                     }
  3985.                                     C = d[f], T = f, k === C.length && (k = 0, C = d[++T]), n(C, k), o(d.slice(0, T)), i(d.slice(T + 1))
  3986.                                 }
  3987.                             }
  3988.                         }
  3989.                     } else "" === c ? (a.html(""), K.html("&nbsp;"), s.html("")) : n(c, z)
  3990.                 }
  3991.             }(b),
  3992.             V = function() {
  3993.                 function t(t) {
  3994.                     O.html(e.terminal.format(e.terminal.encode(t))), E = O.text().length
  3995.                 }
  3996.                 return function() {
  3997.                     switch (typeof N) {
  3998.                         case "string":
  3999.                             t(N);
  4000.                             break;
  4001.                         case "function":
  4002.                             N(t)
  4003.                     }
  4004.                 }
  4005.             }(),
  4006.             G = !0,
  4007.             Q = !1;
  4008.         e.extend(b, {
  4009.             name: function(e) {
  4010.                 if (e !== t) {
  4011.                     F = e;
  4012.                     var n = L && L.enabled() || !L;
  4013.                     return L = new f(e, B), n || L.disable(), b
  4014.                 }
  4015.                 return F
  4016.             },
  4017.             purge: function() {
  4018.                 return L.clear(), b
  4019.             },
  4020.             history: function() {
  4021.                 return L
  4022.             },
  4023.             "delete": function(e, t) {
  4024.                 var n;
  4025.                 return 0 === e ? b : (e < 0 ? z > 0 && (n = $.slice(0, z).slice(e), $ = $.slice(0, z + e) + $.slice(z, $.length), t ? g() : b.position(z + e)) : "" !== $ && z < $.length && (n = $.slice(z).slice(0, e), $ = $.slice(0, z) + $.slice(z + e, $.length), g()), J(), i(), n)
  4026.             },
  4027.             set: function(e, n) {
  4028.                 return e !== t && ($ = e, n || b.position($.length), J(), i(), g()), b
  4029.             },
  4030.             insert: function(e, t) {
  4031.                 return z === $.length ? $ += e : $ = 0 === z ? e + $ : $.slice(0, z) + e + $.slice(z), t ? i() : b.position(e.length, !0), J(), g(), b
  4032.             },
  4033.             get: function() {
  4034.                 return $
  4035.             },
  4036.             commands: function(e) {
  4037.                 return e ? (n.commands = e, b) : e
  4038.             },
  4039.             destroy: function() {
  4040.                 return Z.unbind("keypress.cmd", v), Z.unbind("keydown.cmd", d), Z.unbind("paste.cmd", h), Z.unbind("input.cmd", y), b.stopTime("blink", o), b.find(".cursor").next().remove().end().prev().remove().end().remove(), b.find(".prompt, .clipboard").remove(), b.removeClass("cmd").removeData("cmd"), b
  4041.             },
  4042.             prompt: function(e) {
  4043.                 if (e === t) return N;
  4044.                 if ("string" != typeof e && "function" != typeof e) throw new Error("prompt must be a function or string");
  4045.                 return N = e, V(), J(), b
  4046.             },
  4047.             kill_text: function() {
  4048.                 return W
  4049.             },
  4050.             position: function(t, r) {
  4051.                 return "number" == typeof t ? (r ? z += t : z = t < 0 ? 0 : t > $.length ? $.length : t, e.isFunction(n.onPositionChange) && n.onPositionChange(z), J(), i(), b) : z
  4052.             },
  4053.             visible: function() {
  4054.                 var e = b.visible;
  4055.                 return function() {
  4056.                     e.apply(b, []), J(), V()
  4057.                 }
  4058.             }(),
  4059.             show: function() {
  4060.                 var e = b.show;
  4061.                 return function() {
  4062.                     e.apply(b, []), J(), V()
  4063.                 }
  4064.             }(),
  4065.             resize: function(e) {
  4066.                 return e ? _ = e : l(), J(), b
  4067.             },
  4068.             enable: function() {
  4069.                 return D = !0, b.addClass("enabled"), R(!0), r(), b
  4070.             },
  4071.             isenabled: function() {
  4072.                 return D
  4073.             },
  4074.             disable: function() {
  4075.                 return D = !1, b.removeClass("enabled"), R(!1), r(), b
  4076.             },
  4077.             mask: function(e) {
  4078.                 return "undefined" == typeof e ? P : (P = e, J(), b)
  4079.             }
  4080.         }), b.name(n.name || n.prompt || ""), N = "string" == typeof n.prompt ? n.prompt : "> ", V(), n.enabled !== t && n.enabled !== !0 || b.enable();
  4081.         var Z = e(document.documentElement || window);
  4082.         return Z.bind("keypress.cmd", v).bind("keydown.cmd", d).bind("input.cmd", y), b.data("cmd", b), b
  4083.     };
  4084.     var T = function() {
  4085.             var e = !1,
  4086.                 n = "animation",
  4087.                 r = "",
  4088.                 i = "Webkit Moz O ms Khtml".split(" "),
  4089.                 o = "",
  4090.                 a = document.createElement("div");
  4091.             if (a.style.animationName && (e = !0), e === !1)
  4092.                 for (var s = 0; s < i.length; s++) {
  4093.                     var u = i[s] + "AnimationName";
  4094.                     if (a.style[u] !== t) {
  4095.                         o = i[s], n = o + "Animation", r = "-" + o.toLowerCase() + "-", e = !0;
  4096.                         break
  4097.                     }
  4098.                 }
  4099.             return e
  4100.         }(),
  4101.         C = navigator.userAgent.toLowerCase().indexOf("android") != -1,
  4102.         S = function() {
  4103.             return "ontouchstart" in window || window.DocumentTouch && document instanceof DocumentTouch
  4104.         }(),
  4105.         E = /(\[\[[!gbiuso]*;[^;]*;[^\]]*\](?:[^\]]*\\\][^\]]*|[^\]]*|[^\[]*\[[^\]]*)\]?)/i,
  4106.         j = /\[\[([!gbiuso]*);([^;]*);([^;\]]*);?([^;\]]*);?([^\]]*)\]([^\]]*\\\][^\]]*|[^\]]*|[^\[]*\[[^\]]*)\]?/gi,
  4107.         A = /\[\[([!gbiuso]*;[^;\]]*;[^;\]]*(?:;|[^\]()]*);?[^\]]*)\]([^\]]*\\\][^\]]*|[^\]]*|[^\[]*\[[^\]]*)\]?/gi,
  4108.         N = /\[\[([!gbiuso]*;[^;\]]*;[^;\]]*(?:;|[^\]()]*);?[^\]]*)\]([^\]]*\\\][^\]]*|[^\]]*|[^\[]*\[[^\]]*)\]/gi,
  4109.         D = /^\[\[([!gbiuso]*;[^;\]]*;[^;\]]*(?:;|[^\]()]*);?[^\]]*)\]([^\]]*\\\][^\]]*|[^\]]*|[^\[]*\[[^\]]*)\]$/gi,
  4110.         F = /^#([0-9a-f]{3}|[0-9a-f]{6})$/i,
  4111.         L = /(\bhttps?:\/\/(?:(?:(?!&[^;]+;)|(?=&amp;))[^\s"'<>\]\[)])+\b)/gi,
  4112.         R = /\b(https?:\/\/(?:(?:(?!&[^;]+;)|(?=&amp;))[^\s"'<>\][)])+)\b(?![^[\]]*])/gi,
  4113.         O = /((([^<>('")[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,})))/g,
  4114.         q = /('[^']*'|"(\\"|[^"])*"|(?:\/(\\\/|[^\/])+\/[gimy]*)(?=:? |$)|(\\ |[^ ])+|[\w-]+)/gi,
  4115.         H = /(\[\[[!gbiuso]*;[^;]*;[^\]]*\])/i,
  4116.         I = /^(\[\[[!gbiuso]*;[^;]*;[^\]]*\])/i,
  4117.         P = /\[\[[!gbiuso]*;[^;]*;[^\]]*\]?$/i,
  4118.         $ = /(\[\[(?:[^\]]|\\\])*\]\])/;
  4119.     e.terminal = {
  4120.         version: "0.11.10",
  4121.         color_names: ["black", "silver", "gray", "white", "maroon", "red", "purple", "fuchsia", "green", "lime", "olive", "yellow", "navy", "blue", "teal", "aqua", "aliceblue", "antiquewhite", "aqua", "aquamarine", "azure", "beige", "bisque", "black", "blanchedalmond", "blue", "blueviolet", "brown", "burlywood", "cadetblue", "chartreuse", "chocolate", "coral", "cornflowerblue", "cornsilk", "crimson", "cyan", "darkblue", "darkcyan", "darkgoldenrod", "darkgray", "darkgreen", "darkgrey", "darkkhaki", "darkmagenta", "darkolivegreen", "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen", "darkslateblue", "darkslategray", "darkslategrey", "darkturquoise", "darkviolet", "deeppink", "deepskyblue", "dimgray", "dimgrey", "dodgerblue", "firebrick", "floralwhite", "forestgreen", "fuchsia", "gainsboro", "ghostwhite", "gold", "goldenrod", "gray", "green", "greenyellow", "grey", "honeydew", "hotpink", "indianred", "indigo", "ivory", "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue", "lightcoral", "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightgrey", "lightpink", "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray", "lightslategrey", "lightsteelblue", "lightyellow", "lime", "limegreen", "linen", "magenta", "maroon", "mediumaquamarine", "mediumblue", "mediumorchid", "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen", "mediumturquoise", "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", "navajowhite", "navy", "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "palegoldenrod", "palegreen", "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "pink", "plum", "powderblue", "purple", "red", "rosybrown", "royalblue", "saddlebrown", "salmon", "sandybrown", "seagreen", "seashell", "sienna", "silver", "skyblue", "slateblue", "slategray", "slategrey", "snow", "springgreen", "steelblue", "tan", "teal", "thistle", "tomato", "turquoise", "violet", "wheat", "white", "whitesmoke", "yellow", "yellowgreen"],
  4122.         valid_color: function(t) {
  4123.             return !!t.match(F) || e.inArray(t.toLowerCase(), e.terminal.color_names) !== -1
  4124.         },
  4125.         escape_regex: function(e) {
  4126.             if ("string" == typeof e) {
  4127.                 var t = /([-\\\^$\[\]()+{}?*.|])/g;
  4128.                 return e.replace(t, "\\$1")
  4129.             }
  4130.         },
  4131.         have_formatting: function(e) {
  4132.             return "string" == typeof e && !!e.match(N)
  4133.         },
  4134.         is_formatting: function(e) {
  4135.             return "string" == typeof e && !!e.match(D)
  4136.         },
  4137.         format_split: function(e) {
  4138.             return e.split(E)
  4139.         },
  4140.         split_equal: function(t, n, r) {
  4141.             function i() {
  4142.                 return "&nbsp;" == p.substring(m - 6, m) || " " == p.substring(m - 1, m)
  4143.             }
  4144.             for (var o = !1, a = !1, s = "", u = [], c = t.replace(A, function(e, t, n) {
  4145.                     var r = t.match(/;/g).length;
  4146.                     if (r >= 4) return e;
  4147.                     r = 2 == r ? ";;" : 3 == r ? ";" : "";
  4148.                     var i = n.replace(/\\\]/g, "&#93;").replace(/\n/g, "\\n").replace(/&nbsp;/g, " ");
  4149.                     return "[[" + t + r + i + "]" + n + "]"
  4150.                 }).split(/\n/g), l = 0, f = c.length; l < f; ++l)
  4151.                 if ("" !== c[l])
  4152.                     for (var p = c[l], h = 0, d = 0, g = -1, m = 0, v = p.length; m < v; ++m) {
  4153.                         if (p.substring(m).match(I)) o = !0, a = !1;
  4154.                         else if (o && "]" === p[m]) a ? (o = !1, a = !1) : a = !0;
  4155.                         else if (o && a || !o) {
  4156.                             if ("&" === p[m]) {
  4157.                                 var y = p.substring(m).match(/^(&[^;]+;)/);
  4158.                                 if (!y) throw new Error("Unclosed html entity in line " + (l + 1) + " at char " + (m + 1));
  4159.                                 m += y[1].length - 2, m === v - 1 && u.push(b + y[1]);
  4160.                                 continue
  4161.                             }
  4162.                             "]" === p[m] && "\\" === p[m - 1] ? --d : ++d
  4163.                         }
  4164.                         if (i() && (o && a || !o || "[" === p[m] && "[" === p[m + 1]) && (g = m), (d === n || m === v - 1) && (o && a || !o)) {
  4165.                             var b, w = e.terminal.strip(p.substring(g));
  4166.                             w = e("<span>" + w + "</span>").text();
  4167.                             var x = w.length;
  4168.                             w = w.substring(0, m + n + 1);
  4169.                             var _ = !!w.match(/\s/) || m + n + 1 > x;
  4170.                             r && g != -1 && m !== v - 1 && _ ? (b = p.substring(h, g), m = g - 1) : b = p.substring(h, m + 1), r && (b = b.replace(/(&nbsp;|\s)+$/g, "")), g = -1, h = m + 1, d = 0, s && (b = s + b, b.match("]") && (s = ""));
  4171.                             var k = b.match(A);
  4172.                             if (k) {
  4173.                                 var T = k[k.length - 1];
  4174.                                 if ("]" !== T[T.length - 1]) s = T.match(H)[1], b += "]";
  4175.                                 else if (b.match(P)) {
  4176.                                     b.length;
  4177.                                     b = b.replace(P, ""), s = T.match(H)[1]
  4178.                                 }
  4179.                             }
  4180.                             u.push(b)
  4181.                         }
  4182.                     } else u.push("");
  4183.             return u
  4184.         },
  4185.         encode: function(e) {
  4186.             return e = e.replace(/&(?!#[0-9]+;|[a-zA-Z]+;)/g, "&amp;"), e.replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/ /g, "&nbsp;").replace(/\t/g, "&nbsp;&nbsp;&nbsp;&nbsp;")
  4187.         },
  4188.         escape_formatting: function(t) {
  4189.             return e.terminal.escape_brackets(e.terminal.encode(t))
  4190.         },
  4191.         format: function(t, n) {
  4192.             var r = e.extend({}, {
  4193.                 linksNoReferrer: !1
  4194.             }, n || {});
  4195.             if ("string" == typeof t) {
  4196.                 var i = e.terminal.format_split(t);
  4197.                 return t = e.map(i, function(t) {
  4198.                     return "" === t ? t : e.terminal.is_formatting(t) ? (t = t.replace(/\[\[[^\]]+\]/, function(e) {
  4199.                         return e.replace(/&nbsp;/g, " ")
  4200.                     }), t.replace(j, function(t, n, i, o, a, s, u) {
  4201.                         if ("" === u) return "";
  4202.                         u = u.replace(/\\]/g, "]");
  4203.                         var c = "";
  4204.                         n.indexOf("b") !== -1 && (c += "font-weight:bold;");
  4205.                         var l = [];
  4206.                         n.indexOf("u") !== -1 && l.push("underline"), n.indexOf("s") !== -1 && l.push("line-through"), n.indexOf("o") !== -1 && l.push("overline"), l.length && (c += "text-decoration:" + l.join(" ") + ";"), n.indexOf("i") !== -1 && (c += "font-style:italic;"), e.terminal.valid_color(i) && (c += "color:" + i + ";", n.indexOf("g") !== -1 && (c += "text-shadow:0 0 5px " + i + ";")), e.terminal.valid_color(o) && (c += "background-color:" + o);
  4207.                         var f;
  4208.                         f = "" === s ? u : s.replace(/&#93;/g, "]");
  4209.                         var p;
  4210.                         return n.indexOf("!") !== -1 ? f.match(O) ? p = '<a href="mailto:' + f + '" ' : (p = '<a target="_blank" href="' + f + '" ', r.linksNoReferrer && (p += 'rel="noreferrer" ')) : p = "<span", "" !== c && (p += ' style="' + c + '"'), "" !== a && (p += ' class="' + a + '"'), p += n.indexOf("!") !== -1 ? ">" + u + "</a>" : ' data-text="' + f.replace('"', "&quote;") + '">' + u + "</span>"
  4211.                     })) : "<span>" + t.replace(/\\\]/g, "]") + "</span>"
  4212.                 }).join(""), t.replace(/<span><br\s*\/?><\/span>/gi, "<br/>")
  4213.             }
  4214.             return ""
  4215.         },
  4216.         escape_brackets: function(e) {
  4217.             return e.replace(/\[/g, "&#91;").replace(/\]/g, "&#93;")
  4218.         },
  4219.         strip: function(e) {
  4220.             return e.replace(j, "$6")
  4221.         },
  4222.         active: function() {
  4223.             return V.front()
  4224.         },
  4225.         last_id: function() {
  4226.             var e = V.length();
  4227.             if (e) return e - 1
  4228.         },
  4229.         parseArguments: function(t) {
  4230.             return e.terminal.parse_arguments(t)
  4231.         },
  4232.         splitArguments: function(t) {
  4233.             return e.terminal.split_arguments(t)
  4234.         },
  4235.         parseCommand: function(t) {
  4236.             return e.terminal.parse_command(t)
  4237.         },
  4238.         splitCommand: function(t) {
  4239.             return e.terminal.split_command(t)
  4240.         },
  4241.         parse_arguments: function(t) {
  4242.             var n = /^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/;
  4243.             return e.map(t.match(q) || [], function(e) {
  4244.                 if ("'" === e[0] && "'" === e[e.length - 1]) return e.replace(/^'|'$/g, "");
  4245.                 if ('"' === e[0] && '"' === e[e.length - 1]) return e = e.replace(/^"|"$/g, "").replace(/\\([" ])/g, "$1"), e.replace(/\\\\|\\t|\\n/g, function(e) {
  4246.                     return "t" === e[1] ? "\t" : "n" === e[1] ? "\n" : "\\"
  4247.                 }).replace(/\\x([0-9a-f]+)/gi, function(e, t) {
  4248.                     return String.fromCharCode(parseInt(t, 16))
  4249.                 }).replace(/\\0([0-7]+)/g, function(e, t) {
  4250.                     return String.fromCharCode(parseInt(t, 8))
  4251.                 });
  4252.                 if (e.match(/^\/(\\\/|[^\/])+\/[gimy]*$/)) {
  4253.                     var t = e.match(/^\/([^\/]+)\/([^\/]*)$/);
  4254.                     return new RegExp(t[1], t[2])
  4255.                 }
  4256.                 return e.match(/^-?[0-9]+$/) ? parseInt(e, 10) : e.match(n) ? parseFloat(e) : e.replace(/\\ /g, " ")
  4257.             })
  4258.         },
  4259.         split_arguments: function(t) {
  4260.             return e.map(t.match(q) || [], function(e) {
  4261.                 return "'" === e[0] && "'" === e[e.length - 1] ? e.replace(/^'|'$/g, "") : '"' === e[0] && '"' === e[e.length - 1] ? e.replace(/^"|"$/g, "").replace(/\\([" ])/g, "$1") : e.match(/\/.*\/[gimy]*$/) ? e : e.replace(/\\ /g, " ")
  4262.             })
  4263.         },
  4264.         parse_command: function(t) {
  4265.             return p(t, e.terminal.parse_arguments)
  4266.         },
  4267.         split_command: function(t) {
  4268.             return p(t, e.terminal.split_arguments)
  4269.         },
  4270.         extended_command: function(e, t) {
  4271.             try {
  4272.                 Q = !1, e.exec(t, !0).then(function() {
  4273.                     Q = !0
  4274.                 })
  4275.             } catch (n) {}
  4276.         }
  4277.     }, e.fn.visible = function() {
  4278.         return this.css("visibility", "visible")
  4279.     }, e.fn.hidden = function() {
  4280.         return this.css("visibility", "hidden")
  4281.     };
  4282.     var M = {};
  4283.     e.jrpc = function(t, n, r, i, o) {
  4284.         M[t] = M[t] || 0;
  4285.         var a = e.json_stringify({
  4286.             jsonrpc: "2.0",
  4287.             method: n,
  4288.             params: r,
  4289.             id: ++M[t]
  4290.         });
  4291.         return e.ajax({
  4292.             url: t,
  4293.             data: a,
  4294.             success: function(t, n, r) {
  4295.                 var a = r.getResponseHeader("Content-Type");
  4296.                 if (!a.match(/application\/json/)) {
  4297.                     var s = "Response Content-Type is not application/json";
  4298.                     if (!console || !console.warn) throw new Error("WARN: " + s)
  4299.                 }
  4300.                 var u;
  4301.                 try {
  4302.                     u = e.parseJSON(t)
  4303.                 } catch (c) {
  4304.                     if (!o) throw new Error("Invalid JSON");
  4305.                     return void o(r, "Invalid JSON", c)
  4306.                 }
  4307.                 i(u, n, r)
  4308.             },
  4309.             error: o,
  4310.             contentType: "application/json",
  4311.             dataType: "text",
  4312.             async: !0,
  4313.             cache: !1,
  4314.             type: "POST"
  4315.         })
  4316.     };
  4317.     var W = !e.terminal.version.match(/^\{\{/),
  4318.         z = "Copyright (c) 2011-2016 Jakub Jankiewicz <http://jcubic.pl>",
  4319.         B = W ? " v. " + e.terminal.version : " ",
  4320.         K = new RegExp(" {" + B.length + "}$"),
  4321.         U = "jQuery Terminal Emulator" + (W ? B : ""),
  4322.         X = [
  4323.             ["jQuery Terminal", "(c) 2011-2016 jcubic"],
  4324.             [U, z.replace(/^Copyright | *<.*>/g, "")],
  4325.             [U, z.replace(/^Copyright /, "")],
  4326.             ["      _______                 ________                        __", "     / / _  /_ ____________ _/__  ___/______________  _____  / /", " __ / / // / // / _  / _/ // / / / _  / _/     / /  \\/ / _ \\/ /", "/  / / // / // / ___/ // // / / / ___/ // / / / / /\\  / // / /__", "\\___/____ \\\\__/____/_/ \\__ / /_/____/_//_/_/_/ /_/  \\/\\__\\_\\___/", "         \\/          /____/                                   ".replace(K, " ") + B, z],
  4327.             ["      __ _____                     ________                              __", "     / // _  /__ __ _____ ___ __ _/__  ___/__ ___ ______ __ __  __ ___  / /", " __ / // // // // // _  // _// // / / // _  // _//     // //  \\/ // _ \\/ /", "/  / // // // // // ___// / / // / / // ___// / / / / // // /\\  // // / /__", "\\___//____ \\\\___//____//_/ _\\_  / /_//____//_/ /_/ /_//_//_/ /_/ \\__\\_\\___/", "          \\/              /____/                                          ".replace(K, "") + B, z]
  4328.         ];
  4329.     e.terminal.defaults = {
  4330.         prompt: "> ",
  4331.         history: !0,
  4332.         exit: !0,
  4333.         clear: !0,
  4334.         enabled: !0,
  4335.         historySize: 60,
  4336.         maskChar: "*",
  4337.         checkArity: !0,
  4338.         raw: !1,
  4339.         exceptionHandler: null,
  4340.         cancelableAjax: !0,
  4341.         processArguments: !0,
  4342.         linksNoReferrer: !1,
  4343.         processRPCResponse: null,
  4344.         Token: !0,
  4345.         convertLinks: !0,
  4346.         historyState: !1,
  4347.         echoCommand: !0,
  4348.         scrollOnEcho: !0,
  4349.         login: null,
  4350.         outputLimit: -1,
  4351.         formatters: [],
  4352.         onAjaxError: null,
  4353.         onRPCError: null,
  4354.         completion: !1,
  4355.         historyFilter: null,
  4356.         onInit: e.noop,
  4357.         onClear: e.noop,
  4358.         onBlur: e.noop,
  4359.         onFocus: e.noop,
  4360.         onTerminalChange: e.noop,
  4361.         onExit: e.noop,
  4362.         keypress: e.noop,
  4363.         keydown: e.noop,
  4364.         strings: {
  4365.             wrongPasswordTryAgain: "Wrong password try again!",
  4366.             wrongPassword: "Wrong password!",
  4367.             ajaxAbortError: "Error while aborting ajax call!",
  4368.             wrongArity: "Wrong number of arguments. Function '%s' expects %s got %s!",
  4369.             commandNotFound: "Command '%s' Not Found!",
  4370.             oneRPCWithIgnore: "You can use only one rpc with ignoreSystemDescribe",
  4371.             oneInterpreterFunction: "You can't use more than one function (rpcwith ignoreSystemDescribe counts as one)",
  4372.             loginFunctionMissing: "You didn't specify a login function",
  4373.             noTokenError: "Access denied (no token)",
  4374.             serverResponse: "Server responded",
  4375.             wrongGreetings: "Wrong value of greetings parameter",
  4376.             notWhileLogin: "You can't call `%s' function while in login",
  4377.             loginIsNotAFunction: "Authenticate must be a function",
  4378.             canExitError: "You can't exit from main interpreter",
  4379.             invalidCompletion: "Invalid completion",
  4380.             invalidSelector: 'Sorry, but terminal said that "%s" is not valid selector!',
  4381.             invalidTerminalId: "Invalid Terminal ID",
  4382.             login: "login",
  4383.             password: "password",
  4384.             recursiveCall: "Recursive call detected, skip"
  4385.         }
  4386.     };
  4387.     var Y, J = [],
  4388.         V = new c,
  4389.         G = [],
  4390.         Q = !1,
  4391.         Z = !0,
  4392.         ee = !0;
  4393.     e.fn.terminal = function(n, r) {
  4394.         function i(t) {
  4395.             return e.isFunction(Te.processArguments) ? p(t, Te.processArguments) : Te.processArguments ? e.terminal.parse_command(t) : e.terminal.split_command(t)
  4396.         }
  4397.  
  4398.         function o(t) {
  4399.             "string" == typeof t ? se.echo(t) : t instanceof Array ? se.echo(e.map(t, function(t) {
  4400.                 return e.json_stringify(t)
  4401.             }).join(" ")) : "object" == typeof t ? se.echo(e.json_stringify(t)) : se.echo(t)
  4402.         }
  4403.  
  4404.         function a(t) {
  4405.             var n = /(.*):([0-9]+):([0-9]+)$/,
  4406.                 r = t.match(n);
  4407.             r && (se.pause(), e.get(r[1], function(t) {
  4408.                 var n = location.href.replace(/[^\/]+$/, ""),
  4409.                     i = r[1].replace(n, "");
  4410.                 se.echo("[[b;white;]" + i + "]");
  4411.                 var o = t.split("\n"),
  4412.                     a = +r[2] - 1;
  4413.                 se.echo(o.slice(a - 2, a + 3).map(function(t, n) {
  4414.                     return 2 == n && (t = "[[;#f00;]" + e.terminal.escape_brackets(t) + "]"), "[" + (a + n) + "]: " + t
  4415.                 }).join("\n")).resume()
  4416.             }, "text"))
  4417.         }
  4418.  
  4419.         function s(t) {
  4420.             if (e.isFunction(Te.onRPCError)) Te.onRPCError.call(se, t);
  4421.             else if (se.error("&#91;RPC&#93; " + t.message), t.error && t.error.message) {
  4422.                 t = t.error;
  4423.                 var n = "\t" + t.message;
  4424.                 t.file && (n += ' in file "' + t.file.replace(/.*\//, "") + '"'), t.at && (n += " at line " + t.at), se.error(n)
  4425.             }
  4426.         }
  4427.  
  4428.         function u(t, n) {
  4429.             var r = function(n, r) {
  4430.                 se.pause(), e.jrpc(t, n, r, function(t) {
  4431.                     t.error ? s(t.error) : e.isFunction(Te.processRPCResponse) ? Te.processRPCResponse.call(se, t.result, se) : o(t.result), se.resume()
  4432.                 }, f)
  4433.             };
  4434.             return function(e, t) {
  4435.                 if ("" !== e) {
  4436.                     try {
  4437.                         e = i(e)
  4438.                     } catch (o) {
  4439.                         return void t.error(o.toString())
  4440.                     }
  4441.                     if (n && "help" !== e.name) {
  4442.                         var a = t.token();
  4443.                         a ? r(e.name, [a].concat(e.args)) : t.error("&#91;AUTH&#93; " + Ce.noTokenError)
  4444.                     } else r(e.name, e.args)
  4445.                 }
  4446.             }
  4447.         }
  4448.  
  4449.         function c(n, r, o, a) {
  4450.             return function(s, u) {
  4451.                 if ("" !== s) {
  4452.                     var l;
  4453.                     try {
  4454.                         l = i(s)
  4455.                     } catch (f) {
  4456.                         return void se.error(f.toString())
  4457.                     }
  4458.                     var p = n[l.name],
  4459.                         h = e.type(p);
  4460.                     if ("function" === h) {
  4461.                         if (!r || p.length === l.args.length) return p.apply(se, l.args);
  4462.                         se.error("&#91;Arity&#93; " + sprintf(Ce.wrongArity, l.name, p.length, l.args.length))
  4463.                     } else if ("object" === h || "string" === h) {
  4464.                         var d = [];
  4465.                         "object" === h && (d = Object.keys(p), p = c(p, r, o)), u.push(p, {
  4466.                             prompt: l.name + "> ",
  4467.                             name: l.name,
  4468.                             completion: "object" === h ? d : t
  4469.                         })
  4470.                     } else e.isFunction(a) ? a(s, se) : e.isFunction(Te.onCommandNotFound) ? Te.onCommandNotFound(s, se) : u.error(sprintf(Ce.commandNotFound, l.name))
  4471.                 }
  4472.             }
  4473.         }
  4474.  
  4475.         function f(t, n, r) {
  4476.             se.resume(), e.isFunction(Te.onAjaxError) ? Te.onAjaxError.call(se, t, n, r) : "abort" !== n && se.error("&#91;AJAX&#93; " + n + " - " + Ce.serverResponse + ": \n" + e.terminal.escape_brackets(t.responseText))
  4477.         }
  4478.  
  4479.         function h(t, n, r) {
  4480.             e.jrpc(t, "system.describe", [], function(i) {
  4481.                 if (i.procs) {
  4482.                     var a = {};
  4483.                     e.each(i.procs, function(r, i) {
  4484.                         a[i.name] = function() {
  4485.                             var r = n && "help" != i.name,
  4486.                                 a = Array.prototype.slice.call(arguments),
  4487.                                 u = a.length + (r ? 1 : 0);
  4488.                             if (Te.checkArity && i.params && i.params.length !== u) se.error("&#91;Arity&#93; " + sprintf(Ce.wrongArity, i.name, i.params.length, u));
  4489.                             else {
  4490.                                 if (se.pause(), r) {
  4491.                                     var c = se.token(!0);
  4492.                                     c ? a = [c].concat(a) : se.error("&#91;AUTH&#93; " + Ce.noTokenError)
  4493.                                 }
  4494.                                 e.jrpc(t, i.name, a, function(t) {
  4495.                                     t.error ? s(t.error) : e.isFunction(Te.processRPCResponse) ? Te.processRPCResponse.call(se, t.result, se) : o(t.result), se.resume()
  4496.                                 }, f)
  4497.                             }
  4498.                         }
  4499.                     }), a.help = a.help || function(t) {
  4500.                         if ("undefined" == typeof t) se.echo("Available commands: " + i.procs.map(function(e) {
  4501.                             return e.name
  4502.                         }).join(", ") + ", help");
  4503.                         else {
  4504.                             var n = !1;
  4505.                             if (e.each(i.procs, function(e, r) {
  4506.                                     if (r.name == t) {
  4507.                                         n = !0;
  4508.                                         var i = "";
  4509.                                         return i += "[[bu;#fff;]" + r.name + "]", r.params && (i += " " + r.params.join(" ")), r.help && (i += "\n" + r.help), se.echo(i), !1
  4510.                                     }
  4511.                                 }), !n)
  4512.                                 if ("help" == t) se.echo("[[bu;#fff;]help] [method]\ndisplay help for the method or list of methods if not specified");
  4513.                                 else {
  4514.                                     var r = "Method `" + t.toString() + "' not found ";
  4515.                                     se.error(r)
  4516.                                 }
  4517.                         }
  4518.                     }, r(a)
  4519.                 } else r(null)
  4520.             }, function() {
  4521.                 r(null)
  4522.             })
  4523.         }
  4524.  
  4525.         function y(t, n, r) {
  4526.             r = r || e.noop;
  4527.             var i, o, a = e.type(t),
  4528.                 s = {},
  4529.                 l = 0;
  4530.             if ("array" === a) i = {},
  4531.                 function f(t, r) {
  4532.                     if (t.length) {
  4533.                         var a = t[0],
  4534.                             s = t.slice(1),
  4535.                             c = e.type(a);
  4536.                         "string" === c ? (l++, se.pause(), Te.ignoreSystemDescribe ? (1 === l ? o = u(a, n) : se.error(Ce.oneRPCWithIgnore), f(s, r)) : h(a, n, function(t) {
  4537.                             t && e.extend(i, t), se.resume(), f(s, r)
  4538.                         })) : "function" === c ? (o ? se.error(Ce.oneInterpreterFunction) : o = a, f(s, r)) : "object" === c && (e.extend(i, a), f(s, r))
  4539.                     } else r()
  4540.                 }(t, function() {
  4541.                     r({
  4542.                         interpreter: c(i, !1, n, o),
  4543.                         completion: Object.keys(i)
  4544.                     })
  4545.                 });
  4546.             else if ("string" === a) Te.ignoreSystemDescribe ? (i = {
  4547.                 interpreter: u(t, n)
  4548.             }, e.isArray(Te.completion) && (i.completion = Te.completion), r(i)) : (se.pause(), h(t, n, function(e) {
  4549.                 e ? (s.interpreter = c(e, !1, n), s.completion = Object.keys(e)) : s.interpreter = u(t, n), r(s), se.resume()
  4550.             }));
  4551.             else if ("object" === a) r({
  4552.                 interpreter: c(t, Te.checkArity),
  4553.                 completion: Object.keys(t)
  4554.             });
  4555.             else {
  4556.                 if ("undefined" === a) t = e.noop;
  4557.                 else if ("function" !== a) throw a + " is invalid interpreter value";
  4558.                 r({
  4559.                     interpreter: t,
  4560.                     completion: Te.completion
  4561.                 })
  4562.             }
  4563.         }
  4564.  
  4565.         function w(t, n) {
  4566.             var r = "boolean" === e.type(n) ? "login" : n;
  4567.             return function(n, i, o, a) {
  4568.                 se.pause(), e.jrpc(t, r, [n, i], function(e) {
  4569.                     o(!e.error && e.result ? e.result : null), se.resume()
  4570.                 }, f)
  4571.             }
  4572.         }
  4573.  
  4574.         function x(e) {
  4575.             return "string" == typeof e ? e : "string" == typeof e.fileName ? e.fileName + ": " + e.message : e.message
  4576.         }
  4577.  
  4578.         function _(t, n) {
  4579.             e.isFunction(Te.exceptionHandler) ? Te.exceptionHandler.call(se, t) : se.exception(t, n)
  4580.         }
  4581.  
  4582.         function k() {
  4583.             var e;
  4584.             e = ue.prop ? ue.prop("scrollHeight") : ue.attr("scrollHeight"), ue.scrollTop(e)
  4585.         }
  4586.  
  4587.         function T(t, n) {
  4588.             try {
  4589.                 if (e.isFunction(n)) n(function() {});
  4590.                 else if ("string" != typeof n) {
  4591.                     var r = t + " must be string or function";
  4592.                     throw r
  4593.                 }
  4594.             } catch (i) {
  4595.                 return _(i, t.toUpperCase()), !1
  4596.             }
  4597.             return !0
  4598.         }
  4599.  
  4600.         function C(t, n) {
  4601.             Te.convertLinks && (t = t.replace(O, "[[!;;]$1]").replace(R, "[[!;;]$1]"));
  4602.             var r, i, o = e.terminal.defaults.formatters;
  4603.             if (!n.raw) {
  4604.                 for (r = 0; r < o.length; ++r) try {
  4605.                     if ("function" == typeof o[r]) {
  4606.                         var a = o[r](t);
  4607.                         "string" == typeof a && (t = a)
  4608.                     }
  4609.                 } catch (s) {
  4610.                     alert("formatting error at formatters[" + r + "]\n" + (s.stack ? s.stack : s))
  4611.                 }
  4612.                 t = e.terminal.encode(t)
  4613.             }
  4614.             if (re.push(ie), !n.raw && (t.length > fe || t.match(/\n/))) {
  4615.                 var u = n.keepWords,
  4616.                     c = e.terminal.split_equal(t, fe, u);
  4617.                 for (r = 0, i = c.length; r < i; ++r) "" === c[r] || "\r" === c[r] ? re.push("<span></span>") : n.raw ? re.push(c[r]) : re.push(e.terminal.format(c[r], {
  4618.                     linksNoReferrer: Te.linksNoReferrer
  4619.                 }))
  4620.             } else n.raw || (t = e.terminal.format(t, {
  4621.                 linksNoReferrer: Te.linksNoReferrer
  4622.             })), re.push(t);
  4623.             re.push(n.finalize)
  4624.         }
  4625.  
  4626.         function E(t, n) {
  4627.             try {
  4628.                 var r = e.extend({
  4629.                         exec: !0,
  4630.                         raw: !1,
  4631.                         finalize: e.noop
  4632.                     }, n || {}),
  4633.                     i = "function" === e.type(t) ? t() : t;
  4634.                 i = "string" === e.type(i) ? i : String(i), "" !== i && (r.exec ? (i = e.map(i.split($), function(t) {
  4635.                     return t.match($) && !e.terminal.is_formatting(t) ? (t = t.replace(/^\[\[|\]\]$/g, ""), ce && ce.command == t ? se.error(Ce.recursiveCall) : e.terminal.extended_command(se, t), "") : t
  4636.                 }).join(""), "" !== i && C(i, r)) : C(i, r))
  4637.             } catch (o) {
  4638.                 re = [], alert("[Internal Exception(process_line)]:" + x(o) + "\n" + o.stack)
  4639.             }
  4640.         }
  4641.  
  4642.         function j() {
  4643.             qe.resize(fe);
  4644.             var t, n = le.empty().detach();
  4645.             if (Te.outputLimit >= 0) {
  4646.                 var r = 0 === Te.outputLimit ? se.rows() : Te.outputLimit;
  4647.                 t = ve.slice(ve.length - r - 1)
  4648.             } else t = ve;
  4649.             try {
  4650.                 re = [], e.each(t, function(e, t) {
  4651.                     E.apply(null, t)
  4652.                 }), qe.before(n), se.flush()
  4653.             } catch (i) {
  4654.                 alert("Exception in redraw\n" + i.stack)
  4655.             }
  4656.         }
  4657.  
  4658.         function A() {
  4659.             if (Te.greetings === t) se.echo(se.signature);
  4660.             else if (Te.greetings) {
  4661.                 var e = typeof Te.greetings;
  4662.                 "string" === e ? se.echo(Te.greetings) : "function" === e ? Te.greetings.call(se, se.echo) : se.error(Ce.wrongGreetings)
  4663.             }
  4664.         }
  4665.  
  4666.         function N(t) {
  4667.             var n = qe.prompt(),
  4668.                 r = qe.mask();
  4669.             switch (typeof r) {
  4670.                 case "string":
  4671.                     t = t.replace(/./g, r);
  4672.                     break;
  4673.                 case "boolean":
  4674.                     t = r ? t.replace(/./g, Te.maskChar) : e.terminal.escape_formatting(t)
  4675.             }
  4676.             var i = {
  4677.                 finalize: function(e) {
  4678.                     e.addClass("command")
  4679.                 }
  4680.             };
  4681.             e.isFunction(n) ? n(function(e) {
  4682.                 se.echo(e + t, i)
  4683.             }) : se.echo(n + t, i)
  4684.         }
  4685.  
  4686.         function D(e) {
  4687.             var t = V.get()[e[0]];
  4688.             if (!t) throw new Error(Ce.invalidTerminalId);
  4689.             var n = e[1];
  4690.             if (G[n]) t.import_view(G[n]);
  4691.             else {
  4692.                 Q = !1;
  4693.                 var r = e[2];
  4694.                 r && t.exec(r).then(function() {
  4695.                     Q = !0, G[n] = t.export_view()
  4696.                 })
  4697.             }
  4698.         }
  4699.  
  4700.         function F() {
  4701.             Q && (Z = !1, location.hash = "#" + e.json_stringify(Y), setTimeout(function() {
  4702.                 Z = !0
  4703.             }, 100))
  4704.         }
  4705.  
  4706.         function q(n, r, i) {
  4707.             function a() {
  4708.                 i || (Q = !0, Te.historyState && se.save_state(n, !1), Q = c), u.resolve(), e.isFunction(Te.onAfterCommand) && Te.onAfterCommand(se, n)
  4709.             }
  4710.             ne = n, oe && (oe = !1, (Te.historyState || Te.execHash && i) && (G.length ? se.save_state(null) : se.save_state()));
  4711.             try {
  4712.                 if (e.isFunction(Te.onBeforeCommand) && Te.onBeforeCommand(se, n) === !1) return;
  4713.                 i || (ce = e.terminal.split_command(n)), B() || i && (e.isFunction(Te.historyFilter) && Te.historyFilter(n) || n.match(Te.historyFilter)) && qe.history().append(n);
  4714.                 var s = Oe.top();
  4715.                 !r && Te.echoCommand && N(n);
  4716.                 var u = new e.Deferred,
  4717.                     c = Q;
  4718.                 if (n.match(/^\s*login\s*$/) && se.token(!0)) se.level() > 1 ? se.logout(!0) : se.logout(), a();
  4719.                 else if (Te.exit && n.match(/^\s*exit\s*$/) && !xe) {
  4720.                     var l = se.level();
  4721.                     (1 == l && se.get_token() || l > 1) && (se.get_token(!0) && se.set_token(t, !0), se.pop()), a()
  4722.                 } else if (Te.clear && n.match(/^\s*clear\s*$/) && !xe) se.clear(), a();
  4723.                 else {
  4724.                     var f = ve.length - 1,
  4725.                         p = s.interpreter.call(se, n, se);
  4726.                     if (p !== t) return se.pause(!0), e.when(p).then(function(e) {
  4727.                         e && f === ve.length - 1 && o(e), a(), se.resume()
  4728.                     });
  4729.                     if (Ee) {
  4730.                         ae.push(function() {
  4731.                             a()
  4732.                         })
  4733.                     } else a()
  4734.                 }
  4735.                 return u.promise()
  4736.             } catch (h) {
  4737.                 throw _(h, "USER"), se.resume(), h
  4738.             }
  4739.         }
  4740.  
  4741.         function H() {
  4742.             if (e.isFunction(Te.onBeforeLogout)) try {
  4743.                 if (Te.onBeforeLogout(se) === !1) return
  4744.             } catch (t) {
  4745.                 _(t, "onBeforeLogout")
  4746.             }
  4747.             if (I(), e.isFunction(Te.onAfterLogout)) try {
  4748.                 Te.onAfterLogout(se)
  4749.             } catch (t) {
  4750.                 _(t, "onAfterlogout")
  4751.             }
  4752.             se.login(Te.login, !0, W)
  4753.         }
  4754.  
  4755.         function I() {
  4756.             var t = se.prefix_name(!0) + "_";
  4757.             e.Storage.remove(t + "token"), e.Storage.remove(t + "login")
  4758.         }
  4759.  
  4760.         function P(t) {
  4761.             var n = se.prefix_name() + "_interpreters",
  4762.                 r = e.Storage.get(n);
  4763.             r = r ? e.parseJSON(r) : [], e.inArray(t, r) == -1 && (r.push(t), e.Storage.set(n, e.json_stringify(r)))
  4764.         }
  4765.  
  4766.         function M(t) {
  4767.             var n = Oe.top(),
  4768.                 r = se.prefix_name(!0);
  4769.             B() || P(r), qe.name(r), e.isFunction(n.prompt) ? qe.prompt(function(e) {
  4770.                 n.prompt(e, se)
  4771.             }) : qe.prompt(n.prompt), qe.set(""), !t && e.isFunction(n.onStart) && n.onStart(se)
  4772.         }
  4773.  
  4774.         function W() {
  4775.             function t() {
  4776.                 if (Z && Te.execHash) try {
  4777.                     if (location.hash) {
  4778.                         var t = location.hash.replace(/^#/, "");
  4779.                         Y = e.parseJSON(decodeURIComponent(t))
  4780.                     } else Y = [];
  4781.                     Y.length ? D(Y[Y.length - 1]) : G[0] && se.import_view(G[0])
  4782.                 } catch (n) {
  4783.                     _(n, "TERMINAL")
  4784.                 }
  4785.             }
  4786.             M(), A();
  4787.             var n = !1;
  4788.             if (e.isFunction(Te.onInit)) {
  4789.                 _e = function() {
  4790.                     n = !0
  4791.                 };
  4792.                 try {
  4793.                     Te.onInit(se)
  4794.                 } catch (r) {
  4795.                     _(r, "OnInit")
  4796.                 } finally {
  4797.                     _e = e.noop, n || se.resume()
  4798.                 }
  4799.             }
  4800.             ee && (ee = !1, e.fn.hashchange ? e(window).hashchange(t) : e(window).bind("hashchange", t))
  4801.         }
  4802.  
  4803.         function z(t, n, r) {
  4804.             Te.clear && e.inArray("clear", r) == -1 && r.push("clear"), Te.exit && e.inArray("exit", r) == -1 && r.push("exit");
  4805.             var i = qe.get().substring(0, qe.position());
  4806.             if (i === t) {
  4807.                 for (var o = new RegExp("^" + e.terminal.escape_regex(n)), a = [], s = r.length; s--;) o.test(r[s]) && a.push(r[s]);
  4808.                 if (1 === a.length) se.insert(a[0].replace(o, ""));
  4809.                 else if (a.length > 1)
  4810.                     if (me >= 2) {
  4811.                         N(t);
  4812.                         var u = a.reverse().join("\t");
  4813.                         se.echo(e.terminal.escape_brackets(u), {
  4814.                             keepWords: !0
  4815.                         }), me = 0
  4816.                     } else {
  4817.                         var c, l = !1;
  4818.                         e: for (c = n.length; c < a[0].length; ++c) {
  4819.                             for (s = 1; s < a.length; ++s)
  4820.                                 if (a[0].charAt(c) !== a[s].charAt(c)) break e;
  4821.                             l = !0
  4822.                         }
  4823.                         l && se.insert(a[0].slice(0, c).replace(o, ""))
  4824.                     }
  4825.             }
  4826.         }
  4827.  
  4828.         function B() {
  4829.             return xe || qe.mask() !== !1
  4830.         }
  4831.  
  4832.         function K(n) {
  4833.             var r, i, o, a = Oe.top();
  4834.             if (!se.paused() && se.enabled()) {
  4835.                 if (e.isFunction(a.keydown)) {
  4836.                     if (r = a.keydown(n, se), r !== t) return r
  4837.                 } else if (e.isFunction(Te.keydown) && (r = Te.keydown(n, se), r !== t)) return r;
  4838.                 if (o = Te.completion && "boolean" != e.type(Te.completion) && a.completion === t ? Te.completion : a.completion, "settings" == o && (o = Te.completion), se.oneTime(10, function() {
  4839.                         Ae()
  4840.                     }), 9 !== n.which && (me = 0), 68 === n.which && n.ctrlKey) return xe || ("" === qe.get() ? Oe.size() > 1 || Te.login !== t ? se.pop("") : (se.resume(), se.echo("")) : se.set_command("")), !1;
  4841.                 if (76 === n.which && n.ctrlKey) se.clear();
  4842.                 else {
  4843.                     if (o && 9 === n.which) {
  4844.                         ++me;
  4845.                         var s, u = qe.position(),
  4846.                             c = qe.get().substring(0, u),
  4847.                             l = c.split(" ");
  4848.                         if (1 == Ce.length) s = l[0];
  4849.                         else
  4850.                             for (s = l[l.length - 1], i = l.length - 1; i > 0 && "\\" == l[i - 1][l[i - 1].length - 1]; i--) s = l[i - 1] + " " + s;
  4851.                         switch (e.type(o)) {
  4852.                             case "function":
  4853.                                 o(se, s, function(e) {
  4854.                                     z(c, s, e)
  4855.                                 });
  4856.                                 break;
  4857.                             case "array":
  4858.                                 z(c, s, o);
  4859.                                 break;
  4860.                             default:
  4861.                                 throw new Error(Ce.invalidCompletion)
  4862.                         }
  4863.                         return !1
  4864.                     }
  4865.                     if ((118 === n.which || 86 === n.which) && (n.ctrlKey || n.metaKey)) return void se.oneTime(1, function() {
  4866.                         k()
  4867.                     });
  4868.                     if (9 === n.which && n.ctrlKey) {
  4869.                         if (V.length() > 1) return se.focus(!1), !1
  4870.                     } else 34 === n.which ? se.scroll(se.height()) : 33 === n.which ? se.scroll(-se.height()) : se.attr({
  4871.                         scrollTop: se.attr("scrollHeight")
  4872.                     })
  4873.                 }
  4874.             } else if (68 === n.which && n.ctrlKey) {
  4875.                 if (J.length) {
  4876.                     for (i = J.length; i--;) {
  4877.                         var f = J[i];
  4878.                         if (4 !== f.readyState) try {
  4879.                             f.abort()
  4880.                         } catch (p) {
  4881.                             se.error(Ce.ajaxAbortError)
  4882.                         }
  4883.                     }
  4884.                     J = [], se.resume()
  4885.                 }
  4886.                 return !1
  4887.             }
  4888.         }
  4889.  
  4890.         function U() {
  4891.             He && se.focus()
  4892.         }
  4893.  
  4894.         function te() {
  4895.             He = Se, se.disable()
  4896.         }
  4897.         var ne, re = [],
  4898.             ie = 1,
  4899.             oe = !0,
  4900.             ae = [],
  4901.             se = this;
  4902.         if (this.length > 1) return this.each(function() {
  4903.             e.fn.terminal.call(e(this), n, e.extend({
  4904.                 name: se.selector
  4905.             }, r))
  4906.         });
  4907.         if (se.data("terminal")) return se.data("terminal");
  4908.         if (0 === se.length) throw sprintf(e.terminal.defaults.strings.invalidSelector, se.selector);
  4909.         var ue, ce, le, fe, pe, he, de, ge, me = 0,
  4910.             ve = [],
  4911.             ye = V.length(),
  4912.             be = new l,
  4913.             we = e.Deferred(),
  4914.             xe = !1,
  4915.             _e = e.noop,
  4916.             ke = [],
  4917.             Te = e.extend({}, e.terminal.defaults, {
  4918.                 name: se.selector
  4919.             }, r || {}),
  4920.             Ce = e.terminal.defaults.strings,
  4921.             Se = Te.enabled,
  4922.             Ee = !1,
  4923.             je = !0;
  4924.         e.extend(se, e.omap({
  4925.             id: function() {
  4926.                 return ye
  4927.             },
  4928.             clear: function() {
  4929.                 le.html(""), ve = [];
  4930.                 try {
  4931.                     Te.onClear(se)
  4932.                 } catch (e) {
  4933.                     _(e, "onClear")
  4934.                 }
  4935.                 return se.attr({
  4936.                     scrollTop: 0
  4937.                 }), se
  4938.             },
  4939.             export_view: function() {
  4940.                 var t = {};
  4941.                 if (e.isFunction(Te.onExport)) try {
  4942.                     t = Te.onExport()
  4943.                 } catch (n) {
  4944.                     _(n, "onExport")
  4945.                 }
  4946.                 return e.extend({}, {
  4947.                     focus: Se,
  4948.                     mask: qe.mask(),
  4949.                     prompt: se.get_prompt(),
  4950.                     command: se.get_command(),
  4951.                     position: qe.position(),
  4952.                     lines: b(ve),
  4953.                     interpreters: Oe.clone()
  4954.                 }, t)
  4955.             },
  4956.             import_view: function(t) {
  4957.                 if (xe) throw new Error(sprintf(Ce.notWhileLogin, "import_view"));
  4958.                 if (e.isFunction(Te.onImport)) try {
  4959.                     Te.onImport(t)
  4960.                 } catch (n) {
  4961.                     _(n, "onImport")
  4962.                 }
  4963.                 return we.then(function() {
  4964.                     se.set_prompt(t.prompt), se.set_command(t.command), qe.position(t.position), qe.mask(t.mask), t.focus && se.focus(), ve = b(t.lines), Oe = t.interpreters, j()
  4965.                 }), se
  4966.             },
  4967.             save_state: function(n, r, i) {
  4968.                 if ("undefined" != typeof i ? G[i] = se.export_view() : G.push(se.export_view()), e.isArray(Y) || (Y = []), n !== t && !r) {
  4969.                     var o = [ye, G.length - 1, n];
  4970.                     Y.push(o), F()
  4971.                 }
  4972.             },
  4973.             exec: function(t, n, r) {
  4974.                 function i() {
  4975.                     e.isArray(t) ? ! function r() {
  4976.                         var e = t.shift();
  4977.                         e ? se.exec(e, n).then(r) : o.resolve()
  4978.                     }() : Ee ? ke.push([t, n, o]) : q(t, n, !0).then(function() {
  4979.                         o.resolve(se)
  4980.                     })
  4981.                 }
  4982.                 var o = r || new e.Deferred;
  4983.                 return "resolved" != we.state() ? we.then(i) : i(), o.promise()
  4984.             },
  4985.             autologin: function(e, t, n) {
  4986.                 return se.trigger("terminal.autologin", [e, t, n]), se
  4987.             },
  4988.             login: function(t, n, r, i) {
  4989.                 function o(t, o, s, u) {
  4990.                     if (o) {
  4991.                         for (; se.level() > a;) se.pop();
  4992.                         Te.history && qe.history().enable();
  4993.                         var c = se.prefix_name(!0) + "_";
  4994.                         e.Storage.set(c + "token", o), e.Storage.set(c + "login", t), xe = !1, e.isFunction(r) && r()
  4995.                     } else n ? (s || se.error(Ce.wrongPasswordTryAgain), se.pop().set_mask(!1)) : (xe = !1, s || se.error(Ce.wrongPassword), se.pop().pop()), e.isFunction(i) && i();
  4996.                     se.off("terminal.autologin")
  4997.                 }
  4998.                 if (be.push([].slice.call(arguments)), xe) throw new Error(sprintf(Ce.notWhileLogin, "login"));
  4999.                 if (!e.isFunction(t)) throw new Error(Ce.loginIsNotAFunction);
  5000.                 if (xe = !0, se.token() && 1 == se.level() && !je) xe = !1, se.logout(!0);
  5001.                 else if (se.token(!0) && se.login_name(!0)) return xe = !1, e.isFunction(r) && r(), se;
  5002.                 Te.history && qe.history().disable();
  5003.                 var a = se.level();
  5004.                 return se.on("terminal.autologin", function(e, t, n, r) {
  5005.                     o(t, n, r)
  5006.                 }), se.push(function(e) {
  5007.                     se.set_mask(Te.maskChar).push(function(n) {
  5008.                         try {
  5009.                             t.call(se, e, n, function(t, n) {
  5010.                                 o(e, t, n)
  5011.                             })
  5012.                         } catch (r) {
  5013.                             _(r, "AUTH")
  5014.                         }
  5015.                     }, {
  5016.                         prompt: Ce.password + ": ",
  5017.                         name: "password"
  5018.                     })
  5019.                 }, {
  5020.                     prompt: Ce.login + ": ",
  5021.                     name: "login"
  5022.                 }), se
  5023.             },
  5024.             settings: function() {
  5025.                 return Te
  5026.             },
  5027.             commands: function() {
  5028.                 return Oe.top().interpreter
  5029.             },
  5030.             setInterpreter: function() {
  5031.                 return window.console && console.warn, se.set_interpreter.apply(se, arguments)
  5032.             },
  5033.             set_interpreter: function(t, n) {
  5034.                 function r() {
  5035.                     se.pause(), y(t, !!n, function(t) {
  5036.                         se.resume();
  5037.                         var n = Oe.top();
  5038.                         e.extend(n, t), M(!0)
  5039.                     })
  5040.                 }
  5041.                 return "string" == e.type(t) && n ? se.login(w(t, n), !0, r) : r(), se
  5042.             },
  5043.             greetings: function() {
  5044.                 return A(), se
  5045.             },
  5046.             paused: function() {
  5047.                 return Ee
  5048.             },
  5049.             pause: function(t) {
  5050.                 return _e(), !Ee && qe && we.then(function() {
  5051.                     Ee = !0, qe.disable(), t || qe.hidden(), e.isFunction(Te.onPause) && Te.onPause()
  5052.                 }), se
  5053.             },
  5054.             resume: function() {
  5055.                 function t() {
  5056.                     Ee = !1, V.front() == se && qe.enable(), qe.visible();
  5057.                     var t = ke;
  5058.                     ke = [];
  5059.                     for (var n = 0; n < t.length; ++n) se.exec.apply(se, t[n]);
  5060.                     se.trigger("resume");
  5061.                     var r = ae.shift();
  5062.                     r && r(), k(), e.isFunction(Te.onResume) && Te.onResume()
  5063.                 }
  5064.                 return Ee && qe && ("resolved" != we.state() ? we.then(t) : t()), se
  5065.             },
  5066.             cols: function() {
  5067.                 return Te.numChars ? Te.numChars : d(se)
  5068.             },
  5069.             rows: function() {
  5070.                 return Te.numRows ? Te.numRows : g(se)
  5071.             },
  5072.             history: function() {
  5073.                 return qe.history()
  5074.             },
  5075.             history_state: function(e) {
  5076.                 return e ? se.oneTime(1, function() {
  5077.                     Te.historyState = !0, G.length ? V.length() > 1 && se.save_state(null) : se.save_state()
  5078.                 }) : Te.historyState = !1, se
  5079.             },
  5080.             clear_history_state: function() {
  5081.                 Y = [], G = []
  5082.             },
  5083.             next: function() {
  5084.                 if (1 === V.length()) return se;
  5085.                 se.offset().top, se.height(), se.scrollTop();
  5086.                 V.front().disable();
  5087.                 var t = V.rotate().enable(),
  5088.                     n = t.offset().top - 50;
  5089.                 e("html,body").animate({
  5090.                     scrollTop: n
  5091.                 }, 500);
  5092.                 try {
  5093.                     Te.onTerminalChange(t)
  5094.                 } catch (r) {
  5095.                     _(r, "onTerminalChange")
  5096.                 }
  5097.                 return t
  5098.             },
  5099.             focus: function(e, t) {
  5100.                 return we.then(function() {
  5101.                     if (1 === V.length())
  5102.                         if (e === !1) try {
  5103.                             (!t && Te.onBlur(se) !== !1 || t) && se.disable()
  5104.                         } catch (n) {
  5105.                             _(n, "onBlur")
  5106.                         } else try {
  5107.                                 (!t && Te.onFocus(se) !== !1 || t) && se.enable()
  5108.                             } catch (n) {
  5109.                                 _(n, "onFocus")
  5110.                             } else if (e === !1) se.next();
  5111.                             else {
  5112.                                 var r = V.front();
  5113.                                 if (r != se && (r.disable(), !t)) try {
  5114.                                     Te.onTerminalChange(se)
  5115.                                 } catch (n) {
  5116.                                     _(n, "onTerminalChange")
  5117.                                 }
  5118.                                 V.set(se), se.enable()
  5119.                             }
  5120.                 }), se
  5121.             },
  5122.             freeze: function(e) {
  5123.                 we.then(function() {
  5124.                     e ? (se.disable(), ge = !0) : (ge = !1, se.enable())
  5125.                 })
  5126.             },
  5127.             frozen: function() {
  5128.                 return ge
  5129.             },
  5130.             enable: function() {
  5131.                 return Se || ge || (fe === t && se.resize(), we.then(function() {
  5132.                     qe.enable(), Se = !0
  5133.                 })), se
  5134.             },
  5135.             disable: function() {
  5136.                 return Se && !ge && we.then(function() {
  5137.                     Se = !1, qe.disable()
  5138.                 }), se
  5139.             },
  5140.             enabled: function() {
  5141.                 return Se
  5142.             },
  5143.             signature: function() {
  5144.                 var e = se.cols(),
  5145.                     t = e < 15 ? null : e < 35 ? 0 : e < 55 ? 1 : e < 64 ? 2 : e < 75 ? 3 : 4;
  5146.                 return null !== t ? X[t].join("\n") + "\n" : ""
  5147.             },
  5148.             version: function() {
  5149.                 return e.terminal.version
  5150.             },
  5151.             cmd: function() {
  5152.                 return qe
  5153.             },
  5154.             get_command: function() {
  5155.                 return qe.get()
  5156.             },
  5157.             set_command: function(e) {
  5158.                 return we.then(function() {
  5159.                     qe.set(e)
  5160.                 }), se
  5161.             },
  5162.             insert: function(e) {
  5163.                 if ("string" == typeof e) return we.then(function() {
  5164.                     qe.insert(e)
  5165.                 }), se;
  5166.                 throw "insert function argument is not a string"
  5167.             },
  5168.             set_prompt: function(t) {
  5169.                 return we.then(function() {
  5170.                     T("prompt", t) && (e.isFunction(t) ? qe.prompt(function(e) {
  5171.                         t(e, se)
  5172.                     }) : qe.prompt(t), Oe.top().prompt = t)
  5173.                 }), se
  5174.             },
  5175.             get_prompt: function() {
  5176.                 return Oe.top().prompt
  5177.             },
  5178.             set_mask: function(e) {
  5179.                 return we.then(function() {
  5180.                     qe.mask(e === !0 ? Te.maskChar : e)
  5181.                 }), se
  5182.             },
  5183.             get_output: function(t) {
  5184.                 return t ? ve : e.map(ve, function(t) {
  5185.                     return e.isFunction(t[0]) ? t[0]() : t[0]
  5186.                 }).join("\n")
  5187.             },
  5188.             resize: function(t, n) {
  5189.                 if (se.is(":visible")) {
  5190.                     t && n && (se.width(t), se.height(n)), t = se.width(), n = se.height();
  5191.                     var r = se.cols(),
  5192.                         i = se.rows();
  5193.                     if (r !== fe || i !== pe) {
  5194.                         fe = r, pe = i, j();
  5195.                         var o = Oe.top();
  5196.                         e.isFunction(o.resize) ? o.resize(se) : e.isFunction(Te.onResize) && Te.onResize(se), de = n, he = t, k()
  5197.                     }
  5198.                 } else se.stopTime("resize"), se.oneTime(500, "resize", function() {
  5199.                     se.resize(t, n)
  5200.                 });
  5201.                 return se
  5202.             },
  5203.             flush: function() {
  5204.                 try {
  5205.                     var t;
  5206.                     if (e.each(re, function(n, r) {
  5207.                             if (r === ie) t = e("<div></div>");
  5208.                             else if (e.isFunction(r)) {
  5209.                                 t.appendTo(le);
  5210.                                 try {
  5211.                                     r(t)
  5212.                                 } catch (i) {
  5213.                                     _(i, "USER:echo(finalize)")
  5214.                                 }
  5215.                             } else e("<div/>").html(r).appendTo(t).width("100%")
  5216.                         }), Te.outputLimit >= 0) {
  5217.                         var n = 0 === Te.outputLimit ? se.rows() : Te.outputLimit,
  5218.                             r = le.find("div div");
  5219.                         if (r.length > n) {
  5220.                             var i = r.length - n + 1,
  5221.                                 o = r.slice(0, i),
  5222.                                 a = o.parent();
  5223.                             o.remove(), a.each(function() {
  5224.                                 var t = e(this);
  5225.                                 t.is(":empty") && t.remove()
  5226.                             })
  5227.                         }
  5228.                     }
  5229.                     pe = g(se), Ae(), Te.scrollOnEcho && k(), re = []
  5230.                 } catch (s) {
  5231.                     alert("[Flush] " + x(s) + "\n" + s.stack)
  5232.                 }
  5233.                 return se
  5234.             },
  5235.             update: function(e, t) {
  5236.                 return we.then(function() {
  5237.                     e < 0 && (e = ve.length + e), ve[e] ? (null === t ? ve.splice(e, 1) : ve[e][0] = t, j()) : se.error("Invalid line number " + e)
  5238.                 }), se
  5239.             },
  5240.             last_index: function() {
  5241.                 return ve.length - 1
  5242.             },
  5243.             echo: function(t, n) {
  5244.                 return t = t || "", e.when(t).then(function(t) {
  5245.                     try {
  5246.                         var r = e.extend({
  5247.                             flush: !0,
  5248.                             raw: Te.raw,
  5249.                             finalize: e.noop,
  5250.                             keepWords: !1
  5251.                         }, n || {});
  5252.                         r.flush && (re = []), E(t, r), ve.push([t, e.extend(r, {
  5253.                             exec: !1
  5254.                         })]), r.flush && se.flush()
  5255.                     } catch (i) {
  5256.                         alert("[Terminal.echo] " + x(i) + "\n" + i.stack)
  5257.                     }
  5258.                 }), se
  5259.             },
  5260.             error: function(t, n) {
  5261.                 var r = e.terminal.escape_brackets(t).replace(/\\$/, "&#92;").replace(L, "]$1[[;;;error]");
  5262.                 return se.echo("[[;;;error]" + r + "]", n)
  5263.             },
  5264.             exception: function(t, n) {
  5265.                 var r = x(t);
  5266.                 if (n && (r = "&#91;" + n + "&#93;: " + r), r && se.error(r, {
  5267.                         finalize: function(e) {
  5268.                             e.addClass("exception message")
  5269.                         }
  5270.                     }), "string" == typeof t.fileName && (se.pause(), e.get(t.fileName, function(e) {
  5271.                         se.resume();
  5272.                         var n = t.lineNumber - 1,
  5273.                             r = e.split("\n")[n];
  5274.                         r && se.error("[" + t.lineNumber + "]: " + r)
  5275.                     })), t.stack) {
  5276.                     var i = e.terminal.escape_brackets(t.stack);
  5277.                     se.echo(i.split(/\n/g).map(function(e) {
  5278.                         return "[[;;;error]" + e.replace(L, function(e) {
  5279.                             return "]" + e + "[[;;;error]"
  5280.                         }) + "]"
  5281.                     }).join("\n"), {
  5282.                         finalize: function(e) {
  5283.                             e.addClass("exception stack-trace")
  5284.                         }
  5285.                     })
  5286.                 }
  5287.             },
  5288.             scroll: function(e) {
  5289.                 var t;
  5290.                 return e = Math.round(e), ue.prop ? (e > ue.prop("scrollTop") && e > 0 && ue.prop("scrollTop", 0), t = ue.prop("scrollTop"), ue.scrollTop(t + e)) : (e > ue.attr("scrollTop") && e > 0 && ue.attr("scrollTop", 0), t = ue.attr("scrollTop"), ue.scrollTop(t + e)), se
  5291.             },
  5292.             logout: function(e) {
  5293.                 if (xe) throw new Error(sprintf(Ce.notWhileLogin, "logout"));
  5294.                 return we.then(function() {
  5295.                     if (e) {
  5296.                         var n = be.pop();
  5297.                         se.set_token(t, !0), se.login.apply(se, n)
  5298.                     } else
  5299.                         for (; Oe.size() > 0 && !se.pop(););
  5300.                 }), se
  5301.             },
  5302.             token: function(t) {
  5303.                 return e.Storage.get(se.prefix_name(t) + "_token")
  5304.             },
  5305.             set_token: function(t, n) {
  5306.                 var r = se.prefix_name(n) + "_token";
  5307.                 return "undefined" == typeof t ? e.Storage.remove(r, t) : e.Storage.set(r, t), se
  5308.             },
  5309.             get_token: function(t) {
  5310.                 return e.Storage.get(se.prefix_name(t) + "_token")
  5311.             },
  5312.             login_name: function(t) {
  5313.                 return e.Storage.get(se.prefix_name(t) + "_login")
  5314.             },
  5315.             name: function() {
  5316.                 return Oe.top().name
  5317.             },
  5318.             prefix_name: function(e) {
  5319.                 var t = (Te.name ? Te.name + "_" : "") + ye;
  5320.                 if (e && Oe.size() > 1) {
  5321.                     var n = Oe.map(function(e) {
  5322.                         return e.name
  5323.                     }).slice(1).join("_");
  5324.                     n && (t += "_" + n)
  5325.                 }
  5326.                 return t
  5327.             },
  5328.             read: function(t, n) {
  5329.                 var r = new e.Deferred;
  5330.                 return se.push(function(t) {
  5331.                     se.pop(), e.isFunction(n) && n(t), r.resolve(t)
  5332.                 }, {
  5333.                     prompt: t
  5334.                 }), r.promise()
  5335.             },
  5336.             push: function(n, r) {
  5337.                 return we.then(function() {
  5338.                     r = r || {};
  5339.                     var i = {
  5340.                             infiniteLogin: !1
  5341.                         },
  5342.                         o = e.extend({}, i, r);
  5343.                     !o.name && ce && (o.name = ce.name), o.prompt === t && (o.prompt = (o.name || ">") + " ");
  5344.                     var a = Oe.top();
  5345.                     a && (a.mask = qe.mask());
  5346.                     var s = Ee;
  5347.                     y(n, !!r.login, function(t) {
  5348.                         if (Oe.push(e.extend({}, t, o)), e.isArray(t.completion) && o.completion === !0 ? Oe.top().completion = t.completion : t.completion || o.completion !== !0 || (Oe.top().completion = !1), o.login) {
  5349.                             var r = e.type(o.login);
  5350.                             "function" == r ? se.login(o.login, o.infiniteLogin, M, o.infiniteLogin ? e.noop : se.pop) : ("string" == e.type(n) && "string" == r || "boolean" == r) && se.login(w(n, o.login), o.infiniteLogin, M, o.infiniteLogin ? e.noop : se.pop)
  5351.                         } else M();
  5352.                         s || se.resume()
  5353.                     })
  5354.                 }), se
  5355.             },
  5356.             pop: function(n) {
  5357.                 n !== t && N(n);
  5358.                 se.token(!0);
  5359.                 if (1 == Oe.size()) {
  5360.                     if (Te.login) {
  5361.                         if (H(), e.isFunction(Te.onExit)) try {
  5362.                             Te.onExit(se)
  5363.                         } catch (r) {
  5364.                             _(r, "onExit")
  5365.                         }
  5366.                         return !0
  5367.                     }
  5368.                     se.error(Ce.canExitError)
  5369.                 } else {
  5370.                     se.token(!0) && I();
  5371.                     var i = Oe.pop();
  5372.                     if (M(), xe && se.get_prompt() != Ce.login + ": " && (xe = !1), e.isFunction(i.onExit)) try {
  5373.                         i.onExit(se)
  5374.                     } catch (r) {
  5375.                         _(r, "onExit")
  5376.                     }
  5377.                     se.set_mask(Oe.top().mask)
  5378.                 }
  5379.                 return se
  5380.             },
  5381.             option: function(t, n) {
  5382.                 if ("undefined" == typeof n) {
  5383.                     if ("string" == typeof t) return Te[t];
  5384.                     "object" == typeof t && e.each(t, function(e, t) {
  5385.                         Te[e] = t
  5386.                     })
  5387.                 } else Te[t] = n;
  5388.                 return se
  5389.             },
  5390.             level: function() {
  5391.                 return Oe.size()
  5392.             },
  5393.             reset: function() {
  5394.                 return we.then(function() {
  5395.                     for (se.clear(); Oe.size() > 1;) Oe.pop();
  5396.                     W()
  5397.                 }), se
  5398.             },
  5399.             purge: function() {
  5400.                 return we.then(function() {
  5401.                     var t = se.prefix_name() + "_",
  5402.                         n = e.Storage.get(t + "interpreters");
  5403.                     e.each(e.parseJSON(n), function(t, n) {
  5404.                         e.Storage.remove(n + "_commands"), e.Storage.remove(n + "_token"), e.Storage.remove(n + "_login")
  5405.                     }), qe.purge(), e.Storage.remove(t + "interpreters")
  5406.                 }), se
  5407.             },
  5408.             destroy: function() {
  5409.                 return we.then(function() {
  5410.                     qe.destroy().remove(), le.remove(), e(document).unbind(".terminal"), e(window).unbind(".terminal"), se.unbind("click mousewheel mousedown mouseup"), se.removeData("terminal").removeClass("terminal"), Te.width && se.css("width", ""), Te.height && se.css("height", ""), e(window).off("blur", te).off("focus", U), V.remove(ye)
  5411.                 }), se
  5412.             }
  5413.         }, function(e, t) {
  5414.             return function() {
  5415.                 try {
  5416.                     return t.apply(se, [].slice.apply(arguments))
  5417.                 } catch (n) {
  5418.                     throw "exec" !== e && "resume" !== e && _(n, "TERMINAL"), n
  5419.                 }
  5420.             }
  5421.         }));
  5422.         var Ae = function() {
  5423.             var e = v(se);
  5424.             return function() {
  5425.                 e !== v(se) && (se.resize(), e = v(se))
  5426.             }
  5427.         }();
  5428.         Te.width && se.width(Te.width), Te.height && se.height(Te.height);
  5429.         var Ne = navigator.userAgent.toLowerCase();
  5430.         if (ue = Ne.match(/(webkit)[ \/]([\w.]+)/) || "body" != se[0].tagName.toLowerCase() ? se : e("html"), e(document).bind("ajaxSend.terminal", function(e, t, n) {
  5431.                 J.push(t)
  5432.             }), le = e("<div>").addClass("terminal-output").appendTo(se), se.addClass("terminal"), Te.login && e.isFunction(Te.onBeforeLogin)) try {
  5433.             Te.onBeforeLogin(se) === !1 && (je = !1)
  5434.         } catch (De) {
  5435.             throw _(De, "onBeforeLogin"), De
  5436.         }
  5437.         var Fe;
  5438.         Te.login;
  5439.         if ("string" == typeof n) Fe = n;
  5440.         else if (n instanceof Array)
  5441.             for (var Le = 0, Re = n.length; Le < Re; ++Le)
  5442.                 if ("string" == typeof n[Le]) {
  5443.                     Fe = n[Le];
  5444.                     break
  5445.                 }!Fe || "string" != typeof Te.login && Te.login !== !0 || (Te.login = w(Fe, Te.login)), V.append(se);
  5446.         var Oe, qe, He;
  5447.         return y(n, !!Te.login, function(n) {
  5448.             function r(t) {
  5449.                 var n = V.get()[t[0]];
  5450.                 if (n && ye == n.id() && t[2]) try {
  5451.                     if (Ee) {
  5452.                         var r = e.Deferred();
  5453.                         return ae.push(function() {
  5454.                             return n.exec(t[2]).then(function(e, i) {
  5455.                                 n.save_state(t[2], !0, t[1]), r.resolve()
  5456.                             })
  5457.                         }), r.promise()
  5458.                     }
  5459.                     return n.exec(t[2]).then(function(e, r) {
  5460.                         n.save_state(t[2], !0, t[1])
  5461.                     })
  5462.                 } catch (i) {
  5463.                     var o = e.terminal.escape_brackets(command),
  5464.                         a = "Error while exec with command " + o;
  5465.                     n.error(a).exception(i)
  5466.                 }
  5467.             }(Te.completion && "boolean" != typeof Te.completion || !Te.completion) && (n.completion = "settings"), Oe = new l(e.extend({
  5468.                 name: Te.name,
  5469.                 prompt: Te.prompt,
  5470.                 keypress: Te.keypress,
  5471.                 keydown: Te.keydown,
  5472.                 resize: Te.onResize,
  5473.                 greetings: Te.greetings,
  5474.                 mousewheel: Te.mousewheel
  5475.             }, n)), qe = e("<div/>").appendTo(se).cmd({
  5476.                 prompt: Te.prompt,
  5477.                 history: Te.history,
  5478.                 historyFilter: Te.historyFilter,
  5479.                 historySize: Te.historySize,
  5480.                 width: "100%",
  5481.                 enabled: Se && !S,
  5482.                 keydown: K,
  5483.                 keypress: function(t) {
  5484.                     var n = Oe.top();
  5485.                     return e.isFunction(n.keypress) ? n.keypress(t, se) : e.isFunction(Te.keypress) ? Te.keypress(t, se) : void 0
  5486.                 },
  5487.                 onCommandChange: function(t) {
  5488.                     if (e.isFunction(Te.onCommandChange)) try {
  5489.                         Te.onCommandChange(t, se)
  5490.                     } catch (n) {
  5491.                         throw _(n, "onCommandChange"), n
  5492.                     }
  5493.                     k()
  5494.                 },
  5495.                 commands: q
  5496.             }), Se && se.is(":visible") && !S ? se.focus(t, !0) : se.disable(), se.oneTime(100, function() {
  5497.                 function t(t) {
  5498.                     var n = e(t.target);
  5499.                     !n.closest(".terminal").length && se.enabled() && Te.onBlur(se) !== !1 && se.disable()
  5500.                 }
  5501.                 e(document).bind("click.terminal", t).bind("contextmenu.terminal", t)
  5502.             });
  5503.             var i = e(window);
  5504.             if (S || i.on("focus", U).on("blur", te), function() {
  5505.                     var t = 0,
  5506.                         n = !1;
  5507.                     se.mousedown(function() {
  5508.                         e(window).mousemove(function() {
  5509.                             n = !0, t = 0, e(window).unbind("mousemove")
  5510.                         })
  5511.                     }).mouseup(function() {
  5512.                         var r = n;
  5513.                         n = !1, e(window).unbind("mousemove"), r || 1 != ++t || (t = 0, se.enabled() || ge || (se.focus(), qe.enable()))
  5514.                     })
  5515.                 }(), S && se.click(function() {
  5516.                     se.enabled() || ge ? se.focus(!1) : (se.focus(), qe.enable())
  5517.                 }), se.delegate(".exception a", "click", function(t) {
  5518.                     var n = e(this).attr("href");
  5519.                     n.match(/:[0-9]+$/) && (t.preventDefault(), a(n))
  5520.                 }), navigator.platform.match(/linux/i) || se.mousedown(function(e) {
  5521.                     if (2 == e.which) {
  5522.                         var t = m();
  5523.                         se.insert(t)
  5524.                     }
  5525.                 }), se.is(":visible") && (fe = se.cols(), qe.resize(fe), pe = g(se)), Te.login ? se.login(Te.login, !0, W) : W(), se.oneTime(100, function() {
  5526.                     i.bind("resize.terminal", function() {
  5527.                         if (se.is(":visible")) {
  5528.                             var e = se.width(),
  5529.                                 t = se.height();
  5530.                             de === t && he === e || se.resize()
  5531.                         }
  5532.                     })
  5533.                 }), Te.execHash && location.hash ? setTimeout(function() {
  5534.                     try {
  5535.                         var t = location.hash.replace(/^#/, "");
  5536.                         Y = e.parseJSON(decodeURIComponent(t));
  5537.                         var n = 0;
  5538.                         ! function o() {
  5539.                             var e = Y[n++];
  5540.                             e ? r(e).then(o) : Q = !0
  5541.                         }()
  5542.                     } catch (i) {}
  5543.                 }) : Q = !0, e.event.special.mousewheel) {
  5544.                 var o = !1;
  5545.                 e(document).bind("keydown.terminal", function(e) {
  5546.                     e.shiftKey && (o = !0)
  5547.                 }).bind("keyup.terminal", function(e) {
  5548.                     (e.shiftKey || 16 == e.which) && (o = !1)
  5549.                 }), se.mousewheel(function(t, n) {
  5550.                     if (!o) {
  5551.                         var r = Oe.top();
  5552.                         if (e.isFunction(r.mousewheel)) {
  5553.                             var i = r.mousewheel(t, n, se);
  5554.                             if (i === !1) return
  5555.                         } else e.isFunction(Te.mousewheel) && Te.mousewheel(t, n, se);
  5556.                         n > 0 ? se.scroll(-40) : se.scroll(40)
  5557.                     }
  5558.                 })
  5559.             }
  5560.             we.resolve()
  5561.         }), se.data("terminal", se), se
  5562.     }
  5563. }(jQuery),
  5564. function(e) {
  5565.     function t(t) {
  5566.         var n = t || window.event,
  5567.             r = [].slice.call(arguments, 1),
  5568.             i = 0,
  5569.             o = 0,
  5570.             a = 0;
  5571.         return t = e.event.fix(n), t.type = "mousewheel", n.wheelDelta && (i = n.wheelDelta / 120), n.detail && (i = -n.detail / 3), a = i, void 0 !== n.axis && n.axis === n.HORIZONTAL_AXIS && (a = 0, o = -1 * i), void 0 !== n.wheelDeltaY && (a = n.wheelDeltaY / 120), void 0 !== n.wheelDeltaX && (o = -1 * n.wheelDeltaX / 120), r.unshift(t, i, o, a), (e.event.dispatch || e.event.handle).apply(this, r)
  5572.     }
  5573.     var n = ["DOMMouseScroll", "mousewheel"];
  5574.     if (e.event.fixHooks)
  5575.         for (var r = n.length; r;) e.event.fixHooks[n[--r]] = e.event.mouseHooks;
  5576.     e.event.special.mousewheel = {
  5577.         setup: function() {
  5578.             if (this.addEventListener)
  5579.                 for (var e = n.length; e;) this.addEventListener(n[--e], t, !1);
  5580.             else this.onmousewheel = t
  5581.         },
  5582.         teardown: function() {
  5583.             if (this.removeEventListener)
  5584.                 for (var e = n.length; e;) this.removeEventListener(n[--e], t, !1);
  5585.             else this.onmousewheel = null
  5586.         }
  5587.     }, e.fn.extend({
  5588.         mousewheel: function(e) {
  5589.             return e ? this.bind("mousewheel", e) : this.trigger("mousewheel")
  5590.         },
  5591.         unmousewheel: function(e) {
  5592.             return this.unbind("mousewheel", e)
  5593.         }
  5594.     })
  5595. }(jQuery);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement