PageSourceSearch

https://octopian.com/js/jquery-3.2.1.min.js

js octopian.com collected 2026-10-05 17:53:03 UTC 158,609 bytes, 4,055 lines download raw bytes

vendor: 158,609 bytes, lines 1-4055
1/*! jQuery v2.1.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
2!function(a, b) {
3    "object" == typeof module && "object" == typeof module.exports ? module.exports = a.document ? b(a, !0) : function(a) {
4        if (!a.document)
5            throw new Error("jQuery requires a window with a document");
6        return b(a)
7    }
8    : b(a)
9}("undefined" != typeof window ? window : this, function(a, b) {
10    var c = []
11      , d = c.slice
12      , e = c.concat
13      , f = c.push
14      , g = c.indexOf
15      , h = {}
16      , i = h.toString
17      , j = h.hasOwnProperty
18      , k = {}
19      , l = a.document
20      , m = "2.1.1"
21      , n = function(a, b) {
22        return new n.fn.init(a,b)
23    }
24      , o = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g
25      , p = /^-ms-/
26      , q = /-([\da-z])/gi
27      , r = function(a, b) {
28        return b.toUpperCase()
29    };
30    n.fn = n.prototype = {
31        jquery: m,
32        constructor: n,
33        selector: "",
34        length: 0,
35        toArray: function() {
36            return d.call(this)
37        },
38        get: function(a) {
39            return null != a ? 0 > a ? this[a + this.length] : this[a] : d.call(this)
40        },
41        pushStack: function(a) {
42            var b = n.merge(this.constructor(), a);
43            return b.prevObject = this,
44            b.context = this.context,
45            b
46        },
47        each: function(a, b) {
48            return n.each(this, a, b)
49        },
50        map: function(a) {
51            return this.pushStack(n.map(this, function(b, c) {
52                return a.call(b, c, b)
53            }))
54        },
55        slice: function() {
56            return this.pushStack(d.apply(this, arguments))
57        },
58        first: function() {
59            return this.eq(0)
60        },
61        last: function() {
62            return this.eq(-1)
63        },
64        eq: function(a) {
65            var b = this.length
66              , c = +a + (0 > a ? b : 0);
67            return this.pushStack(c >= 0 && b > c ? [this[c]] : [])
68        },
69        end: function() {
70            return this.prevObject || this.constructor(null)
71        },
72        push: f,
73        sort: c.sort,
74        splice: c.splice
75    },
76    n.extend = n.fn.extend = function() {
77        var a, b, c, d, e, f, g = arguments[0] || {}, h = 1, i = arguments.length, j = !1;
78        for ("boolean" == typeof g && (j = g,
79        g = arguments[h] || {},
80        h++),
81        "object" == typeof g || n.isFunction(g) || (g = {}),
82        h === i && (g = this,
83        h--); i > h; h++)
84            if (null != (a = arguments[h]))
85                for (b in a)
86                    c = g[b],
87                    d = a[b],
88                    g !== d && (j && d && (n.isPlainObject(d) || (e = n.isArray(d))) ? (e ? (e = !1,
89                    f = c && n.isArray(c) ? c : []) : f = c && n.isPlainObject(c) ? c : {},
90                    g[b] = n.extend(j, f, d)) : void 0 !== d && (g[b] = d));
91        return g
92    }
93    ,
94    n.extend({
95        expando: "jQuery" + (m + Math.random()).replace(/\D/g, ""),
96        isReady: !0,
97        error: function(a) {
98            throw new Error(a)
99        },
100        noop: function() {},
101        isFunction: function(a) {
102            return "function" === n.type(a)
103        },
104        isArray: Array.isArray,
105        isWindow: function(a) {
106            return null != a && a === a.window
107        },
108        isNumeric: function(a) {
109            return !n.isArray(a) && a - parseFloat(a) >= 0
110        },
111        isPlainObject: function(a) {
112            return "object" !== n.type(a) || a.nodeType || n.isWindow(a) ? !1 : a.constructor && !j.call(a.constructor.prototype, "isPrototypeOf") ? !1 : !0
113        },
114        isEmptyObject: function(a) {
115            var b;
116            for (b in a)
117                return !1;
118            return !0
119        },
120        type: function(a) {
121            return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? h[i.call(a)] || "object" : typeof a
122        },
123        globalEval: function(a) {
124            var b, c = eval;
125            a = n.trim(a),
126            a && (1 === a.indexOf("use strict") ? (b = l.createElement("script"),
127            b.text = a,
128            l.head.appendChild(b).parentNode.removeChild(b)) : c(a))
129        },
130        camelCase: function(a) {
131            return a.replace(p, "ms-").replace(q, r)
132        },
133        nodeName: function(a, b) {
134            return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase()
135        },
136        each: function(a, b, c) {
137            var d, e = 0, f = a.length, g = s(a);
138            if (c) {
139                if (g) {
140                    for (; f > e; e++)
141                        if (d = b.apply(a[e], c),
142                        d === !1)
143                            break
144                } else
145                    for (e in a)
146                        if (d = b.apply(a[e], c),
147                        d === !1)
148                            break
149            } else if (g) {
150                for (; f > e; e++)
151                    if (d = b.call(a[e], e, a[e]),
152                    d === !1)
153                        break
154            } else
155                for (e in a)
156                    if (d = b.call(a[e], e, a[e]),
157                    d === !1)
158                        break;
159            return a
160        },
161        trim: function(a) {
162            return null == a ? "" : (a + "").replace(o, "")
163        },
164        makeArray: function(a, b) {
165            var c = b || [];
166            return null != a && (s(Object(a)) ? n.merge(c, "string" == typeof a ? [a] : a) : f.call(c, a)),
167            c
168        },
169        inArray: function(a, b, c) {
170            return null == b ? -1 : g.call(b, a, c)
171        },
172        merge: function(a, b) {
173            for (var c = +b.length, d = 0, e = a.length; c > d; d++)
174                a[e++] = b[d];
175            return a.length = e,
176            a
177        },
178        grep: function(a, b, c) {
179            for (var d, e = [], f = 0, g = a.length, h = !c; g > f; f++)
180                d = !b(a[f], f),
181                d !== h && e.push(a[f]);
182            return e
183        },
184        map: function(a, b, c) {
185            var d, f = 0, g = a.length, h = s(a), i = [];
186            if (h)
187                for (; g > f; f++)
188                    d = b(a[f], f, c),
189                    null != d && i.push(d);
190            else
191                for (f in a)
192                    d = b(a[f], f, c),
193                    null != d && i.push(d);
194            return e.apply([], i)
195        },
196        guid: 1,
197        proxy: function(a, b) {
198            var c, e, f;
199            return "string" == typeof b && (c = a[b],
200            b = a,
201            a = c),
202            n.isFunction(a) ? (e = d.call(arguments, 2),
203            f = function() {
204                return a.apply(b || this, e.concat(d.call(arguments)))
205            }
206            ,
207            f.guid = a.guid = a.guid || n.guid++,
208            f) : void 0
209        },
210        now: Date.now,
211        support: k
212    }),
213    n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(a, b) {
214        h["[object " + b + "]"] = b.toLowerCase()
215    });
216    function s(a) {
217        var b = a.length
218          , c = n.type(a);
219        return "function" === c || n.isWindow(a) ? !1 : 1 === a.nodeType && b ? !0 : "array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a
220    }
221    var t = function(a) {
222        var b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u = "sizzle" + -new Date, v = a.document, w = 0, x = 0, y = gb(), z = gb(), A = gb(), B = function(a, b) {
223            return a === b && (l = !0),
224            0
225        }, C = "undefined", D = 1 << 31, E = {}.hasOwnProperty, F = [], G = F.pop, H = F.push, I = F.push, J = F.slice, K = F.indexOf || function(a) {
226            for (var b = 0, c = this.length; c > b; b++)
227                if (this[b] === a)
228                    return b;
229            return -1
230        }
231        , L = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", M = "[\\x20\\t\\r\\n\\f]", N = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", O = N.replace("w", "w#"), P = "\\[" + M + "*(" + N + ")(?:" + M + "*([*^$|!~]?=)" + M + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + O + "))|)" + M + "*\\]", Q = ":(" + N + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + P + ")*)|.*)\\)|)", R = new RegExp("^" + M + "+|((?:^|[^\\\\])(?:\\\\.)*)" + M + "+$","g"), S = new RegExp("^" + M + "*," + M + "*"), T = new RegExp("^" + M + "*([>+~]|" + M + ")" + M + "*"), U = new RegExp("=" + M + "*([^\\]'\"]*?)" + M + "*\\]","g"), V = new RegExp(Q), W = new RegExp("^" + O + "$"), X = {
232            ID: new RegExp("^#(" + N + ")"),
233            CLASS: new RegExp("^\\.(" + N + ")"),
234            TAG: new RegExp("^(" + N.replace("w", "w*") + ")"),
235            ATTR: new RegExp("^" + P),
236            PSEUDO: new RegExp("^" + Q),
237            CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + M + "*(even|odd|(([+-]|)(\\d*)n|)" + M + "*(?:([+-]|)" + M + "*(\\d+)|))" + M + "*\\)|)","i"),
238            bool: new RegExp("^(?:" + L + ")$","i"),
239            needsContext: new RegExp("^" + M + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + M + "*((?:-\\d)?\\d*)" + M + "*\\)|)(?=[^-]|$)","i")
240        }, Y = /^(?:input|select|textarea|button)$/i, Z = /^h\d$/i, $ = /^[^{]+\{\s*\[native \w/, _ = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ab = /[+~]/, bb = /'|\\/g, cb = new RegExp("\\\\([\\da-f]{1,6}" + M + "?|(" + M + ")|.)","ig"), db = function(a, b, c) {
241            var d = "0x" + b - 65536;
242            return d !== d || c ? b : 0 > d ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320)
243        };
244        try {
245            I.apply(F = J.call(v.childNodes), v.childNodes),
246            F[v.childNodes.length].nodeType
247        } catch (eb) {
248            I = {
249                apply: F.length ? function(a, b) {
250                    H.apply(a, J.call(b))
251                }
252                : function(a, b) {
253                    var c = a.length
254                      , d = 0;
255                    while (a[c++] = b[d++])
256                        ;
257                    a.length = c - 1
258                }
259            }
260        }
261        function fb(a, b, d, e) {
262            var f, h, j, k, l, o, r, s, w, x;
263            if ((b ? b.ownerDocument || b : v) !== n && m(b),
264            b = b || n,
265            d = d || [],
266            !a || "string" != typeof a)
267                return d;
268            if (1 !== (k = b.nodeType) && 9 !== k)
269                return [];
270            if (p && !e) {
271                if (f = _.exec(a))
272                    if (j = f[1]) {
273                        if (9 === k) {
274                            if (h = b.getElementById(j),
275                            !h || !h.parentNode)
276                                return d;
277                            if (h.id === j)
278                                return d.push(h),
279                                d
280                        } else if (b.ownerDocument && (h = b.ownerDocument.getElementById(j)) && t(b, h) && h.id === j)
281                            return d.push(h),
282                            d
283                    } else {
284                        if (f[2])
285                            return I.apply(d, b.getElementsByTagName(a)),
286                            d;
287                        if ((j = f[3]) && c.getElementsByClassName && b.getElementsByClassName)
288                            return I.apply(d, b.getElementsByClassName(j)),
289                            d
290                    }
291                if (c.qsa && (!q || !q.test(a))) {
292                    if (s = r = u,
293                    w = b,
294                    x = 9 === k && a,
295                    1 === k && "object" !== b.nodeName.toLowerCase()) {
296                        o = g(a),
297                        (r = b.getAttribute("id")) ? s = r.replace(bb, "\\$&") : b.setAttribute("id", s),
298                        s = "[id='" + s + "'] ",
299                        l = o.length;
300                        while (l--)
301                            o[l] = s + qb(o[l]);
302                        w = ab.test(a) && ob(b.parentNode) || b,
303                        x = o.join(",")
304                    }
305                    if (x)
306                        try {
307                            return I.apply(d, w.querySelectorAll(x)),
308                            d
309                        } catch (y) {} finally {
310                            r || b.removeAttribute("id")
311                        }
312                }
313            }
314            return i(a.replace(R, "$1"), b, d, e)
315        }
316        function gb() {
317            var a = [];
318            function b(c, e) {
319                return a.push(c + " ") > d.cacheLength && delete b[a.shift()],
320                b[c + " "] = e
321            }
322            return b
323        }
324        function hb(a) {
325            return a[u] = !0,
326            a
327        }
328        function ib(a) {
329            var b = n.createElement("div");
330            try {
331                return !!a(b)
332            } catch (c) {
333                return !1
334            } finally {
335                b.parentNode && b.parentNode.removeChild(b),
336                b = null
337            }
338        }
339        function jb(a, b) {
340            var c = a.split("|")
341              , e = a.length;
342            while (e--)
343                d.attrHandle[c[e]] = b
344        }
345        function kb(a, b) {
346            var c = b && a
347              , d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || D) - (~a.sourceIndex || D);
348            if (d)
349                return d;
350            if (c)
351                while (c = c.nextSibling)
352                    if (c === b)
353                        return -1;
354            return a ? 1 : -1
355        }
356        function lb(a) {
357            return function(b) {
358                var c = b.nodeName.toLowerCase();
359                return "input" === c && b.type === a
360            }
361        }
362        function mb(a) {
363            return function(b) {
364                var c = b.nodeName.toLowerCase();
365                return ("input" === c || "button" === c) && b.type === a
366            }
367        }
368        function nb(a) {
369            return hb(function(b) {
370                return b = +b,
371                hb(function(c, d) {
372                    var e, f = a([], c.length, b), g = f.length;
373                    while (g--)
374                        c[e = f[g]] && (c[e] = !(d[e] = c[e]))
375                })
376            })
377        }
378        function ob(a) {
379            return a && typeof a.getElementsByTagName !== C && a
380        }
381        c = fb.support = {},
382        f = fb.isXML = function(a) {
383            var b = a && (a.ownerDocument || a).documentElement;
384            return b ? "HTML" !== b.nodeName : !1
385        }
386        ,
387        m = fb.setDocument = function(a) {
388            var b, e = a ? a.ownerDocument || a : v, g = e.defaultView;
389            return e !== n && 9 === e.nodeType && e.documentElement ? (n = e,
390            o = e.documentElement,
391            p = !f(e),
392            g && g !== g.top && (g.addEventListener ? g.addEventListener("unload", function() {
393                m()
394            }, !1) : g.attachEvent && g.attachEvent("onunload", function() {
395                m()
396            })),
397            c.attributes = ib(function(a) {
398                return a.className = "i",
399                !a.getAttribute("className")
400            }),
401            c.getElementsByTagName = ib(function(a) {
402                return a.appendChild(e.createComment("")),
403                !a.getElementsByTagName("*").length
404            }),
405            c.getElementsByClassName = $.test(e.getElementsByClassName) && ib(function(a) {
406                return a.innerHTML = "<div class='a'></div><div class='a i'></div>",
407                a.firstChild.className = "i",
408                2 === a.getElementsByClassName("i").length
409            }),
410            c.getById = ib(function(a) {
411                return o.appendChild(a).id = u,
412                !e.getElementsByName || !e.getElementsByName(u).length
413            }),
414            c.getById ? (d.find.ID = function(a, b) {
415                if (typeof b.getElementById !== C && p) {
416                    var c = b.getElementById(a);
417                    return c && c.parentNode ? [c] : []
418                }
419            }
420            ,
421            d.filter.ID = function(a) {
422                var b = a.replace(cb, db);
423                return function(a) {
424                    return a.getAttribute("id") === b
425                }
426            }
427            ) : (delete d.find.ID,
428            d.filter.ID = function(a) {
429                var b = a.replace(cb, db);
430                return function(a) {
431                    var c = typeof a.getAttributeNode !== C && a.getAttributeNode("id");
432                    return c && c.value === b
433                }
434            }
435            ),
436            d.find.TAG = c.getElementsByTagName ? function(a, b) {
437                return typeof b.getElementsByTagName !== C ? b.getElementsByTagName(a) : void 0
438            }
439            : function(a, b) {
440                var c, d = [], e = 0, f = b.getElementsByTagName(a);
441                if ("*" === a) {
442                    while (c = f[e++])
443                        1 === c.nodeType && d.push(c);
444                    return d
445                }
446                return f
447            }
448            ,
449            d.find.CLASS = c.getElementsByClassName && function(a, b) {
450                return typeof b.getElementsByClassName !== C && p ? b.getElementsByClassName(a) : void 0
451            }
452            ,
453            r = [],
454            q = [],
455            (c.qsa = $.test(e.querySelectorAll)) && (ib(function(a) {
456                a.innerHTML = "<select msallowclip=''><option selected=''></option></select>",
457                a.querySelectorAll("[msallowclip^='']").length && q.push("[*^$]=" + M + "*(?:''|\"\")"),
458                a.querySelectorAll("[selected]").length || q.push("\\[" + M + "*(?:value|" + L + ")"),
459                a.querySelectorAll(":checked").length || q.push(":checked")
460            }),
461            ib(function(a) {
462                var b = e.createElement("input");
463                b.setAttribute("type", "hidden"),
464                a.appendChild(b).setAttribute("name", "D"),
465                a.querySelectorAll("[name=d]").length && q.push("name" + M + "*[*^$|!~]?="),
466                a.querySelectorAll(":enabled").length || q.push(":enabled", ":disabled"),
467                a.querySelectorAll("*,:x"),
468                q.push(",.*:")
469            })),
470            (c.matchesSelector = $.test(s = o.matches || o.webkitMatchesSelector || o.mozMatchesSelector || o.oMatchesSelector || o.msMatchesSelector)) && ib(function(a) {
471                c.disconnectedMatch = s.call(a, "div"),
472                s.call(a, "[s!='']:x"),
473                r.push("!=", Q)
474            }),
475            q = q.length && new RegExp(q.join("|")),
476            r = r.length && new RegExp(r.join("|")),
477            b = $.test(o.compareDocumentPosition),
478            t = b || $.test(o.contains) ? function(a, b) {
479                var c = 9 === a.nodeType ? a.documentElement : a
480                  , d = b && b.parentNode;
481                return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d)))
482            }
483            : function(a, b) {
484                if (b)
485                    while (b = b.parentNode)
486                        if (b === a)
487                            return !0;
488                return !1
489            }
490            ,
491            B = b ? function(a, b) {
492                if (a === b)
493                    return l = !0,
494                    0;
495                var d = !a.compareDocumentPosition - !b.compareDocumentPosition;
496                return d ? d : (d = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1,
497                1 & d || !c.sortDetached && b.compareDocumentPosition(a) === d ? a === e || a.ownerDocument === v && t(v, a) ? -1 : b === e || b.ownerDocument === v && t(v, b) ? 1 : k ? K.call(k, a) - K.call(k, b) : 0 : 4 & d ? -1 : 1)
498            }
499            : function(a, b) {
500                if (a === b)
501                    return l = !0,
502                    0;
503                var c, d = 0, f = a.parentNode, g = b.parentNode, h = [a], i = [b];
504                if (!f || !g)
505                    return a === e ? -1 : b === e ? 1 : f ? -1 : g ? 1 : k ? K.call(k, a) - K.call(k, b) : 0;
506                if (f === g)
507                    return kb(a, b);
508                c = a;
509                while (c = c.parentNode)
510                    h.unshift(c);
511                c = b;
512                while (c = c.parentNode)
513                    i.unshift(c);
514                while (h[d] === i[d])
515                    d++;
516                return d ? kb(h[d], i[d]) : h[d] === v ? -1 : i[d] === v ? 1 : 0
517            }
518            ,
519            e) : n
520        }
521        ,
522        fb.matches = function(a, b) {
523            return fb(a, null, null, b)
524        }
525        ,
526        fb.matchesSelector = function(a, b) {
527            if ((a.ownerDocument || a) !== n && m(a),
528            b = b.replace(U, "='$1']"),
529            !(!c.matchesSelector || !p || r && r.test(b) || q && q.test(b)))
530                try {
531                    var d = s.call(a, b);
532                    if (d || c.disconnectedMatch || a.document && 11 !== a.document.nodeType)
533                        return d
534                } catch (e) {}
535            return fb(b, n, null, [a]).length > 0
536        }
537        ,
538        fb.contains = function(a, b) {
539            return (a.ownerDocument || a) !== n && m(a),
540            t(a, b)
541        }
542        ,
543        fb.attr = function(a, b) {
544            (a.ownerDocument || a) !== n && m(a);
545            var e = d.attrHandle[b.toLowerCase()]
546              , f = e && E.call(d.attrHandle, b.toLowerCase()) ? e(a, b, !p) : void 0;
547            return void 0 !== f ? f : c.attributes || !p ? a.getAttribute(b) : (f = a.getAttributeNode(b)) && f.specified ? f.value : null
548        }
549        ,
550        fb.error = function(a) {
551            throw new Error("Syntax error, unrecognized expression: " + a)
552        }
553        ,
554        fb.uniqueSort = function(a) {
555            var b, d = [], e = 0, f = 0;
556            if (l = !c.detectDuplicates,
557            k = !c.sortStable && a.slice(0),
558            a.sort(B),
559            l) {
560                while (b = a[f++])
561                    b === a[f] && (e = d.push(f));
562                while (e--)
563                    a.splice(d[e], 1)
564            }
565            return k = null,
566            a
567        }
568        ,
569        e = fb.getText = function(a) {
570            var b, c = "", d = 0, f = a.nodeType;
571            if (f) {
572                if (1 === f || 9 === f || 11 === f) {
573                    if ("string" == typeof a.textContent)
574                        return a.textContent;
575                    for (a = a.firstChild; a; a = a.nextSibling)
576                        c += e(a)
577                } else if (3 === f || 4 === f)
578                    return a.nodeValue
579            } else
580                while (b = a[d++])
581                    c += e(b);
582            return c
583        }
584        ,
585        d = fb.selectors = {
586            cacheLength: 50,
587            createPseudo: hb,
588            match: X,
589            attrHandle: {},
590            find: {},
591            relative: {
592                ">": {
593                    dir: "parentNode",
594                    first: !0
595                },
596                " ": {
597                    dir: "parentNode"
598                },
599                "+": {
600                    dir: "previousSibling",
601                    first: !0
602                },
603                "~": {
604                    dir: "previousSibling"
605                }
606            },
607            preFilter: {
608                ATTR: function(a) {
609                    return a[1] = a[1].replace(cb, db),
610                    a[3] = (a[3] || a[4] || a[5] || "").replace(cb, db),
611                    "~=" === a[2] && (a[3] = " " + a[3] + " "),
612                    a.slice(0, 4)
613                },
614                CHILD: function(a) {
615                    return a[1] = a[1].toLowerCase(),
616                    "nth" === a[1].slice(0, 3) ? (a[3] || fb.error(a[0]),
617                    a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * ("even" === a[3] || "odd" === a[3])),
618                    a[5] = +(a[7] + a[8] || "odd" === a[3])) : a[3] && fb.error(a[0]),
619                    a
620                },
621                PSEUDO: function(a) {
622                    var b, c = !a[6] && a[2];
623                    return X.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || "" : c && V.test(c) && (b = g(c, !0)) && (b = c.indexOf(")", c.length - b) - c.length) && (a[0] = a[0].slice(0, b),
624                    a[2] = c.slice(0, b)),
625                    a.slice(0, 3))
626                }
627            },
628            filter: {
629                TAG: function(a) {
630                    var b = a.replace(cb, db).toLowerCase();
631                    return "*" === a ? function() {
632                        return !0
633                    }
634                    : function(a) {
635                        return a.nodeName && a.nodeName.toLowerCase() === b
636                    }
637                },
638                CLASS: function(a) {
639                    var b = y[a + " "];
640                    return b || (b = new RegExp("(^|" + M + ")" + a + "(" + M + "|$)")) && y(a, function(a) {
641                        return b.test("string" == typeof a.className && a.className || typeof a.getAttribute !== C && a.getAttribute("class") || "")
642                    })
643                },
644                ATTR: function(a, b, c) {
645                    return function(d) {
646                        var e = fb.attr(d, a);
647                        return null == e ? "!=" === b : b ? (e += "",
648                        "=" === b ? e === c : "!=" === b ? e !== c : "^=" === b ? c && 0 === e.indexOf(c) : "*=" === b ? c && e.indexOf(c) > -1 : "$=" === b ? c && e.slice(-c.length) === c : "~=" === b ? (" " + e + " ").indexOf(c) > -1 : "|=" === b ? e === c || e.slice(0, c.length + 1) === c + "-" : !1) : !0
649                    }
650                },
651                CHILD: function(a, b, c, d, e) {
652                    var f = "nth" !== a.slice(0, 3)
653                      , g = "last" !== a.slice(-4)
654                      , h = "of-type" === b;
655                    return 1 === d && 0 === e ? function(a) {
656                        return !!a.parentNode
657                    }
658                    : function(b, c, i) {
659                        var j, k, l, m, n, o, p = f !== g ? "nextSibling" : "previousSibling", q = b.parentNode, r = h && b.nodeName.toLowerCase(), s = !i && !h;
660                        if (q) {
661                            if (f) {
662                                while (p) {
663                                    l = b;
664                                    while (l = l[p])
665                                        if (h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType)
666                                            return !1;
667                                    o = p = "only" === a && !o && "nextSibling"
668                                }
669                                return !0
670                            }
671                            if (o = [g ? q.firstChild : q.lastChild],
672                            g && s) {
673                                k = q[u] || (q[u] = {}),
674                                j = k[a] || [],
675                                n = j[0] === w && j[1],
676                                m = j[0] === w && j[2],
677                                l = n && q.childNodes[n];
678                                while (l = ++n && l && l[p] || (m = n = 0) || o.pop())
679                                    if (1 === l.nodeType && ++m && l === b) {
680                                        k[a] = [w, n, m];
681                                        break
682                                    }
683                            } else if (s && (j = (b[u] || (b[u] = {}))[a]) && j[0] === w)
684                                m = j[1];
685                            else
686                                while (l = ++n && l && l[p] || (m = n = 0) || o.pop())
687                                    if ((h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) && ++m && (s && ((l[u] || (l[u] = {}))[a] = [w, m]),
688                                    l === b))
689                                        break;
690                            return m -= e,
691                            m === d || m % d === 0 && m / d >= 0
692                        }
693                    }
694                },
695                PSEUDO: function(a, b) {
696                    var c, e = d.pseudos[a] || d.setFilters[a.toLowerCase()] || fb.error("unsupported pseudo: " + a);
697                    return e[u] ? e(b) : e.length > 1 ? (c = [a, a, "", b],
698                    d.setFilters.hasOwnProperty(a.toLowerCase()) ? hb(function(a, c) {
699                        var d, f = e(a, b), g = f.length;
700                        while (g--)
701                            d = K.call(a, f[g]),
702                            a[d] = !(c[d] = f[g])
703                    }) : function(a) {
704                        return e(a, 0, c)
705                    }
706                    ) : e
707                }
708            },
709            pseudos: {
710                not: hb(function(a) {
711                    var b = []
712                      , c = []
713                      , d = h(a.replace(R, "$1"));
714                    return d[u] ? hb(function(a, b, c, e) {
715                        var f, g = d(a, null, e, []), h = a.length;
716                        while (h--)
717                            (f = g[h]) && (a[h] = !(b[h] = f))
718                    }) : function(a, e, f) {
719                        return b[0] = a,
720                        d(b, null, f, c),
721                        !c.pop()
722                    }
723                }),
724                has: hb(function(a) {
725                    return function(b) {
726                        return fb(a, b).length > 0
727                    }
728                }),
729                contains: hb(function(a) {
730                    return function(b) {
731                        return (b.textContent || b.innerText || e(b)).indexOf(a) > -1
732                    }
733                }),
734                lang: hb(function(a) {
735                    return W.test(a || "") || fb.error("unsupported lang: " + a),
736                    a = a.replace(cb, db).toLowerCase(),
737                    function(b) {
738                        var c;
739                        do
740                            if (c = p ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang"))
741                                return c = c.toLowerCase(),
742                                c === a || 0 === c.indexOf(a + "-");
743                        while ((b = b.parentNode) && 1 === b.nodeType);
744                        return !1
745                    }
746                }),
747                target: function(b) {
748                    var c = a.location && a.location.hash;
749                    return c && c.slice(1) === b.id
750                },
751                root: function(a) {
752                    return a === o
753                },
754                focus: function(a) {
755                    return a === n.activeElement && (!n.hasFocus || n.hasFocus()) && !!(a.type || a.href || ~a.tabIndex)
756                },
757                enabled: function(a) {
758                    return a.disabled === !1
759                },
760                disabled: function(a) {
761                    return a.disabled === !0
762                },
763                checked: function(a) {
764                    var b = a.nodeName.toLowerCase();
765                    return "input" === b && !!a.checked || "option" === b && !!a.selected
766                },
767                selected: function(a) {
768                    return a.parentNode && a.parentNode.selectedIndex,
769                    a.selected === !0
770                },
771                empty: function(a) {
772                    for (a = a.firstChild; a; a = a.nextSibling)
773                        if (a.nodeType < 6)
774                            return !1;
775                    return !0
776                },
777                parent: function(a) {
778                    return !d.pseudos.empty(a)
779                },
780                header: function(a) {
781                    return Z.test(a.nodeName)
782                },
783                input: function(a) {
784                    return Y.test(a.nodeName)
785                },
786                button: function(a) {
787                    var b = a.nodeName.toLowerCase();
788                    return "input" === b && "button" === a.type || "button" === b
789                },
790                text: function(a) {
791                    var b;
792                    return "input" === a.nodeName.toLowerCase() && "text" === a.type && (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase())
793                },
794                first: nb(function() {
795                    return [0]
796                }),
797                last: nb(function(a, b) {
798                    return [b - 1]
799                }),
800                eq: nb(function(a, b, c) {
801                    return [0 > c ? c + b : c]
802                }),
803                even: nb(function(a, b) {
804                    for (var c = 0; b > c; c += 2)
805                        a.push(c);
806                    return a
807                }),
808                odd: nb(function(a, b) {
809                    for (var c = 1; b > c; c += 2)
810                        a.push(c);
811                    return a
812                }),
813                lt: nb(function(a, b, c) {
814                    for (var d = 0 > c ? c + b : c; --d >= 0; )
815                        a.push(d);
816                    return a
817                }),
818                gt: nb(function(a, b, c) {
819                    for (var d = 0 > c ? c + b : c; ++d < b; )
820                        a.push(d);
821                    return a
822                })
823            }
824        },
825        d.pseudos.nth = d.pseudos.eq;
826        for (b in {
827            radio: !0,
828            checkbox: !0,
829            file: !0,
830            password: !0,
831            image: !0
832        })
833            d.pseudos[b] = lb(b);
834        for (b in {
835            submit: !0,
836            reset: !0
837        })
838            d.pseudos[b] = mb(b);
839        function pb() {}
840        pb.prototype = d.filters = d.pseudos,
841        d.setFilters = new pb,
842        g = fb.tokenize = function(a, b) {
843            var c, e, f, g, h, i, j, k = z[a + " "];
844            if (k)
845                return b ? 0 : k.slice(0);
846            h = a,
847            i = [],
848            j = d.preFilter;
849            while (h) {
850                (!c || (e = S.exec(h))) && (e && (h = h.slice(e[0].length) || h),
851                i.push(f = [])),
852                c = !1,
853                (e = T.exec(h)) && (c = e.shift(),
854                f.push({
855                    value: c,
856                    type: e[0].replace(R, " ")
857                }),
858                h = h.slice(c.length));
859                for (g in d.filter)
860                    !(e = X[g].exec(h)) || j[g] && !(e = j[g](e)) || (c = e.shift(),
861                    f.push({
862                        value: c,
863                        type: g,
864                        matches: e
865                    }),
866                    h = h.slice(c.length));
867                if (!c)
868                    break
869            }
870            return b ? h.length : h ? fb.error(a) : z(a, i).slice(0)
871        }
872        ;
873        function qb(a) {
874            for (var b = 0, c = a.length, d = ""; c > b; b++)
875                d += a[b].value;
876            return d
877        }
878        function rb(a, b, c) {
879            var d = b.dir
880              , e = c && "parentNode" === d
881              , f = x++;
882            return b.first ? function(b, c, f) {
883                while (b = b[d])
884                    if (1 === b.nodeType || e)
885                        return a(b, c, f)
886            }
887            : function(b, c, g) {
888                var h, i, j = [w, f];
889                if (g) {
890                    while (b = b[d])
891                        if ((1 === b.nodeType || e) && a(b, c, g))
892                            return !0
893                } else
894                    while (b = b[d])
895                        if (1 === b.nodeType || e) {
896                            if (i = b[u] || (b[u] = {}),
897                            (h = i[d]) && h[0] === w && h[1] === f)
898                                return j[2] = h[2];
899                            if (i[d] = j,
900                            j[2] = a(b, c, g))
901                                return !0
902                        }
903            }
904        }
905        function sb(a) {
906            return a.length > 1 ? function(b, c, d) {
907                var e = a.length;
908                while (e--)
909                    if (!a[e](b, c, d))
910                        return !1;
911                return !0
912            }
913            : a[0]
914        }
915        function tb(a, b, c) {
916            for (var d = 0, e = b.length; e > d; d++)
917                fb(a, b[d], c);
918            return c
919        }
920        function ub(a, b, c, d, e) {
921            for (var f, g = [], h = 0, i = a.length, j = null != b; i > h; h++)
922                (f = a[h]) && (!c || c(f, d, e)) && (g.push(f),
923                j && b.push(h));
924            return g
925        }
926        function vb(a, b, c, d, e, f) {
927            return d && !d[u] && (d = vb(d)),
928            e && !e[u] && (e = vb(e, f)),
929            hb(function(f, g, h, i) {
930                var j, k, l, m = [], n = [], o = g.length, p = f || tb(b || "*", h.nodeType ? [h] : h, []), q = !a || !f && b ? p : ub(p, m, a, h, i), r = c ? e || (f ? a : o || d) ? [] : g : q;
931                if (c && c(q, r, h, i),
932                d) {
933                    j = ub(r, n),
934                    d(j, [], h, i),
935                    k = j.length;
936                    while (k--)
937                        (l = j[k]) && (r[n[k]] = !(q[n[k]] = l))
938                }
939                if (f) {
940                    if (e || a) {
941                        if (e) {
942                            j = [],
943                            k = r.length;
944                            while (k--)
945                                (l = r[k]) && j.push(q[k] = l);
946                            e(null, r = [], j, i)
947                        }
948                        k = r.length;
949                        while (k--)
950                            (l = r[k]) && (j = e ? K.call(f, l) : m[k]) > -1 && (f[j] = !(g[j] = l))
951                    }
952                } else
953                    r = ub(r === g ? r.splice(o, r.length) : r),
954                    e ? e(null, g, r, i) : I.apply(g, r)
955            })
956        }
957        function wb(a) {
958            for (var b, c, e, f = a.length, g = d.relative[a[0].type], h = g || d.relative[" "], i = g ? 1 : 0, k = rb(function(a) {
959                return a === b
960            }, h, !0), l = rb(function(a) {
961                return K.call(b, a) > -1
962            }, h, !0), m = [function(a, c, d) {
963                return !g && (d || c !== j) || ((b = c).nodeType ? k(a, c, d) : l(a, c, d))
964            }
965            ]; f > i; i++)
966                if (c = d.relative[a[i].type])
967                    m = [rb(sb(m), c)];
968                else {
969                    if (c = d.filter[a[i].type].apply(null, a[i].matches),
970                    c[u]) {
971                        for (e = ++i; f > e; e++)
972                            if (d.relative[a[e].type])
973                                break;
974                        return vb(i > 1 && sb(m), i > 1 && qb(a.slice(0, i - 1).concat({
975                            value: " " === a[i - 2].type ? "*" : ""
976                        })).replace(R, "$1"), c, e > i && wb(a.slice(i, e)), f > e && wb(a = a.slice(e)), f > e && qb(a))
977                    }
978                    m.push(c)
979                }
980            return sb(m)
981        }
982        function xb(a, b) {
983            var c = b.length > 0
984              , e = a.length > 0
985              , f = function(f, g, h, i, k) {
986                var l, m, o, p = 0, q = "0", r = f && [], s = [], t = j, u = f || e && d.find.TAG("*", k), v = w += null == t ? 1 : Math.random() || .1, x = u.length;
987                for (k && (j = g !== n && g); q !== x && null != (l = u[q]); q++) {
988                    if (e && l) {
989                        m = 0;
990                        while (o = a[m++])
991                            if (o(l, g, h)) {
992                                i.push(l);
993                                break
994                            }
995                        k && (w = v)
996                    }
997                    c && ((l = !o && l) && p--,
998                    f && r.push(l))
999                }
1000                if (p += q,
1001                c && q !== p) {
1002                    m = 0;
1003                    while (o = b[m++])
1004                        o(r, s, g, h);
1005                    if (f) {
1006                        if (p > 0)
1007                            while (q--)
1008                                r[q] || s[q] || (s[q] = G.call(i));
1009                        s = ub(s)
1010                    }
1011                    I.apply(i, s),
1012                    k && !f && s.length > 0 && p + b.length > 1 && fb.uniqueSort(i)
1013                }
1014                return k && (w = v,
1015                j = t),
1016                r
1017            };
1018            return c ? hb(f) : f
1019        }
1020        return h = fb.compile = function(a, b) {
1021            var c, d = [], e = [], f = A[a + " "];
1022            if (!f) {
1023                b || (b = g(a)),
1024                c = b.length;
1025                while (c--)
1026                    f = wb(b[c]),
1027                    f[u] ? d.push(f) : e.push(f);
1028                f = A(a, xb(e, d)),
1029                f.selector = a
1030            }
1031            return f
1032        }
1033        ,
1034        i = fb.select = function(a, b, e, f) {
1035            var i, j, k, l, m, n = "function" == typeof a && a, o = !f && g(a = n.selector || a);
1036            if (e = e || [],
1037            1 === o.length) {
1038                if (j = o[0] = o[0].slice(0),
1039                j.length > 2 && "ID" === (k = j[0]).type && c.getById && 9 === b.nodeType && p && d.relative[j[1].type]) {
1040                    if (b = (d.find.ID(k.matches[0].replace(cb, db), b) || [])[0],
1041                    !b)
1042                        return e;
1043                    n && (b = b.parentNode),
1044                    a = a.slice(j.shift().value.length)
1045                }
1046                i = X.needsContext.test(a) ? 0 : j.length;
1047                while (i--) {
1048                    if (k = j[i],
1049                    d.relative[l = k.type])
1050                        break;
1051                    if ((m = d.find[l]) && (f = m(k.matches[0].replace(cb, db), ab.test(j[0].type) && ob(b.parentNode) || b))) {
1052                        if (j.splice(i, 1),
1053                        a = f.length && qb(j),
1054                        !a)
1055                            return I.apply(e, f),
1056                            e;
1057                        break
1058                    }
1059                }
1060            }
1061            return (n || h(a, o))(f, b, !p, e, ab.test(a) && ob(b.parentNode) || b),
1062            e
1063        }
1064        ,
1065        c.sortStable = u.split("").sort(B).join("") === u,
1066        c.detectDuplicates = !!l,
1067        m(),
1068        c.sortDetached = ib(function(a) {
1069            return 1 & a.compareDocumentPosition(n.createElement("div"))
1070        }),
1071        ib(function(a) {
1072            return a.innerHTML = "<a href='#'></a>",
1073            "#" === a.firstChild.getAttribute("href")
1074        }) || jb("type|href|height|width", function(a, b, c) {
1075            return c ? void 0 : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2)
1076        }),
1077        c.attributes && ib(function(a) {
1078            return a.innerHTML = "<input/>",
1079            a.firstChild.setAttribute("value", ""),
1080            "" === a.firstChild.getAttribute("value")
1081        }) || jb("value", function(a, b, c) {
1082            return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue
1083        }),
1084        ib(function(a) {
1085            return null == a.getAttribute("disabled")
1086        }) || jb(L, function(a, b, c) {
1087            var d;
1088            return c ? void 0 : a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null
1089        }),
1090        fb
1091    }(a);
1092    n.find = t,
1093    n.expr = t.selectors,
1094    n.expr[":"] = n.expr.pseudos,
1095    n.unique = t.uniqueSort,
1096    n.text = t.getText,
1097    n.isXMLDoc = t.isXML,
1098    n.contains = t.contains;
1099    var u = n.expr.match.needsContext
1100      , v = /^<(\w+)\s*\/?>(?:<\/\1>|)$/
1101      , w = /^.[^:#\[\.,]*$/;
1102    function x(a, b, c) {
1103        if (n.isFunction(b))
1104            return n.grep(a, function(a, d) {
1105                return !!b.call(a, d, a) !== c
1106            });
1107        if (b.nodeType)
1108            return n.grep(a, function(a) {
1109                return a === b !== c
1110            });
1111        if ("string" == typeof b) {
1112            if (w.test(b))
1113                return n.filter(b, a, c);
1114            b = n.filter(b, a)
1115        }
1116        return n.grep(a, function(a) {
1117            return g.call(b, a) >= 0 !== c
1118        })
1119    }
1120    n.filter = function(a, b, c) {
1121        var d = b[0];
1122        return c && (a = ":not(" + a + ")"),
1123        1 === b.length && 1 === d.nodeType ? n.find.matchesSelector(d, a) ? [d] : [] : n.find.matches(a, n.grep(b, function(a) {
1124            return 1 === a.nodeType
1125        }))
1126    }
1127    ,
1128    n.fn.extend({
1129        find: function(a) {
1130            var b, c = this.length, d = [], e = this;
1131            if ("string" != typeof a)
1132                return this.pushStack(n(a).filter(function() {
1133                    for (b = 0; c > b; b++)
1134                        if (n.contains(e[b], this))
1135                            return !0
1136                }));
1137            for (b = 0; c > b; b++)
1138                n.find(a, e[b], d);
1139            return d = this.pushStack(c > 1 ? n.unique(d) : d),
1140            d.selector = this.selector ? this.selector + " " + a : a,
1141            d
1142        },
1143        filter: function(a) {
1144            return this.pushStack(x(this, a || [], !1))
1145        },
1146        not: function(a) {
1147            return this.pushStack(x(this, a || [], !0))
1148        },
1149        is: function(a) {
1150            return !!x(this, "string" == typeof a && u.test(a) ? n(a) : a || [], !1).length
1151        }
1152    });
1153    var y, z = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, A = n.fn.init = function(a, b) {
1154        var c, d;
1155        if (!a)
1156            return this;
1157        if ("string" == typeof a) {
1158            if (c = "<" === a[0] && ">" === a[a.length - 1] && a.length >= 3 ? [null, a, null] : z.exec(a),
1159            !c || !c[1] && b)
1160                return !b || b.jquery ? (b || y).find(a) : this.constructor(b).find(a);
1161            if (c[1]) {
1162                if (b = b instanceof n ? b[0] : b,
1163                n.merge(this, n.parseHTML(c[1], b && b.nodeType ? b.ownerDocument || b : l, !0)),
1164                v.test(c[1]) && n.isPlainObject(b))
1165                    for (c in b)
1166                        n.isFunction(this[c]) ? this[c](b[c]) : this.attr(c, b[c]);
1167                return this
1168            }
1169            return d = l.getElementById(c[2]),
1170            d && d.parentNode && (this.length = 1,
1171            this[0] = d),
1172            this.context = l,
1173            this.selector = a,
1174            this
1175        }
1176        return a.nodeType ? (this.context = this[0] = a,
1177        this.length = 1,
1178        this) : n.isFunction(a) ? "undefined" != typeof y.ready ? y.ready(a) : a(n) : (void 0 !== a.selector && (this.selector = a.selector,
1179        this.context = a.context),
1180        n.makeArray(a, this))
1181    }
1182    ;
1183    A.prototype = n.fn,
1184    y = n(l);
1185    var B = /^(?:parents|prev(?:Until|All))/
1186      , C = {
1187        children: !0,
1188        contents: !0,
1189        next: !0,
1190        prev: !0
1191    };
1192    n.extend({
1193        dir: function(a, b, c) {
1194            var d = []
1195              , e = void 0 !== c;
1196            while ((a = a[b]) && 9 !== a.nodeType)
1197                if (1 === a.nodeType) {
1198                    if (e && n(a).is(c))
1199                        break;
1200                    d.push(a)
1201                }
1202            return d
1203        },
1204        sibling: function(a, b) {
1205            for (var c = []; a; a = a.nextSibling)
1206                1 === a.nodeType && a !== b && c.push(a);
1207            return c
1208        }
1209    }),
1210    n.fn.extend({
1211        has: function(a) {
1212            var b = n(a, this)
1213              , c = b.length;
1214            return this.filter(function() {
1215                for (var a = 0; c > a; a++)
1216                    if (n.contains(this, b[a]))
1217                        return !0
1218            })
1219        },
1220        closest: function(a, b) {
1221            for (var c, d = 0, e = this.length, f = [], g = u.test(a) || "string" != typeof a ? n(a, b || this.context) : 0; e > d; d++)
1222                for (c = this[d]; c && c !== b; c = c.parentNode)
1223                    if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && n.find.matchesSelector(c, a))) {
1224                        f.push(c);
1225                        break
1226                    }
1227            return this.pushStack(f.length > 1 ? n.unique(f) : f)
1228        },
1229        index: function(a) {
1230            return a ? "string" == typeof a ? g.call(n(a), this[0]) : g.call(this, a.jquery ? a[0] : a) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
1231        },
1232        add: function(a, b) {
1233            return this.pushStack(n.unique(n.merge(this.get(), n(a, b))))
1234        },
1235        addBack: function(a) {
1236            return this.add(null == a ? this.prevObject : this.prevObject.filter(a))
1237        }
1238    });
1239    function D(a, b) {
1240        while ((a = a[b]) && 1 !== a.nodeType)
1241            ;
1242        return a
1243    }
1244    n.each({
1245        parent: function(a) {
1246            var b = a.parentNode;
1247            return b && 11 !== b.nodeType ? b : null
1248        },
1249        parents: function(a) {
1250            return n.dir(a, "parentNode")
1251        },
1252        parentsUntil: function(a, b, c) {
1253            return n.dir(a, "parentNode", c)
1254        },
1255        next: function(a) {
1256            return D(a, "nextSibling")
1257        },
1258        prev: function(a) {
1259            return D(a, "previousSibling")
1260        },
1261        nextAll: function(a) {
1262            return n.dir(a, "nextSibling")
1263        },
1264        prevAll: function(a) {
1265            return n.dir(a, "previousSibling")
1266        },
1267        nextUntil: function(a, b, c) {
1268            return n.dir(a, "nextSibling", c)
1269        },
1270        prevUntil: function(a, b, c) {
1271            return n.dir(a, "previousSibling", c)
1272        },
1273        siblings: function(a) {
1274            return n.sibling((a.parentNode || {}).firstChild, a)
1275        },
1276        children: function(a) {
1277            return n.sibling(a.firstChild)
1278        },
1279        contents: function(a) {
1280            return a.contentDocument || n.merge([], a.childNodes)
1281        }
1282    }, function(a, b) {
1283        n.fn[a] = function(c, d) {
1284            var e = n.map(this, b, c);
1285            return "Until" !== a.slice(-5) && (d = c),
1286            d && "string" == typeof d && (e = n.filter(d, e)),
1287            this.length > 1 && (C[a] || n.unique(e),
1288            B.test(a) && e.reverse()),
1289            this.pushStack(e)
1290        }
1291    });
1292    var E = /\S+/g
1293      , F = {};
1294    function G(a) {
1295        var b = F[a] = {};
1296        return n.each(a.match(E) || [], function(a, c) {
1297            b[c] = !0
1298        }),
1299        b
1300    }
1301    n.Callbacks = function(a) {
1302        a = "string" == typeof a ? F[a] || G(a) : n.extend({}, a);
1303        var b, c, d, e, f, g, h = [], i = !a.once && [], j = function(l) {
1304            for (b = a.memory && l,
1305            c = !0,
1306            g = e || 0,
1307            e = 0,
1308            f = h.length,
1309            d = !0; h && f > g; g++)
1310                if (h[g].apply(l[0], l[1]) === !1 && a.stopOnFalse) {
1311                    b = !1;
1312                    break
1313                }
1314            d = !1,
1315            h && (i ? i.length && j(i.shift()) : b ? h = [] : k.disable())
1316        }, k = {
1317            add: function() {
1318                if (h) {
1319                    var c = h.length;
1320                    !function g(b) {
1321                        n.each(b, function(b, c) {
1322                            var d = n.type(c);
1323                            "function" === d ? a.unique && k.has(c) || h.push(c) : c && c.length && "string" !== d && g(c)
1324                        })
1325                    }(arguments),
1326                    d ? f = h.length : b && (e = c,
1327                    j(b))
1328                }
1329                return this
1330            },
1331            remove: function() {
1332                return h && n.each(arguments, function(a, b) {
1333                    var c;
1334                    while ((c = n.inArray(b, h, c)) > -1)
1335                        h.splice(c, 1),
1336                        d && (f >= c && f--,
1337                        g >= c && g--)
1338                }),
1339                this
1340            },
1341            has: function(a) {
1342                return a ? n.inArray(a, h) > -1 : !(!h || !h.length)
1343            },
1344            empty: function() {
1345                return h = [],
1346                f = 0,
1347                this
1348            },
1349            disable: function() {
1350                return h = i = b = void 0,
1351                this
1352            },
1353            disabled: function() {
1354                return !h
1355            },
1356            lock: function() {
1357                return i = void 0,
1358                b || k.disable(),
1359                this
1360            },
1361            locked: function() {
1362                return !i
1363            },
1364            fireWith: function(a, b) {
1365                return !h || c && !i || (b = b || [],
1366                b = [a, b.slice ? b.slice() : b],
1367                d ? i.push(b) : j(b)),
1368                this
1369            },
1370            fire: function() {
1371                return k.fireWith(this, arguments),
1372                this
1373            },
1374            fired: function() {
1375                return !!c
1376            }
1377        };
1378        return k
1379    }
1380    ,
1381    n.extend({
1382        Deferred: function(a) {
1383            var b = [["resolve", "done", n.Callbacks("once memory"), "resolved"], ["reject", "fail", n.Callbacks("once memory"), "rejected"], ["notify", "progress", n.Callbacks("memory")]]
1384              , c = "pending"
1385              , d = {
1386                state: function() {
1387                    return c
1388                },
1389                always: function() {
1390                    return e.done(arguments).fail(arguments),
1391                    this
1392                },
1393                then: function() {
1394                    var a = arguments;
1395                    return n.Deferred(function(c) {
1396                        n.each(b, function(b, f) {
1397                            var g = n.isFunction(a[b]) && a[b];
1398                            e[f[1]](function() {
1399                                var a = g && g.apply(this, arguments);
1400                                a && n.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) : c[f[0] + "With"](this === d ? c.promise() : this, g ? [a] : arguments)
1401                            })
1402                        }),
1403                        a = null
1404                    }).promise()
1405                },
1406                promise: function(a) {
1407                    return null != a ? n.extend(a, d) : d
1408                }
1409            }
1410              , e = {};
1411            return d.pipe = d.then,
1412            n.each(b, function(a, f) {
1413                var g = f[2]
1414                  , h = f[3];
1415                d[f[1]] = g.add,
1416                h && g.add(function() {
1417                    c = h
1418                }, b[1 ^ a][2].disable, b[2][2].lock),
1419                e[f[0]] = function() {
1420                    return e[f[0] + "With"](this === e ? d : this, arguments),
1421                    this
1422                }
1423                ,
1424                e[f[0] + "With"] = g.fireWith
1425            }),
1426            d.promise(e),
1427            a && a.call(e, e),
1428            e
1429        },
1430        when: function(a) {
1431            var b = 0, c = d.call(arguments), e = c.length, f = 1 !== e || a && n.isFunction(a.promise) ? e : 0, g = 1 === f ? a : n.Deferred(), h = function(a, b, c) {
1432                return function(e) {
1433                    b[a] = this,
1434                    c[a] = arguments.length > 1 ? d.call(arguments) : e,
1435                    c === i ? g.notifyWith(b, c) : --f || g.resolveWith(b, c)
1436                }
1437            }, i, j, k;
1438            if (e > 1)
1439                for (i = new Array(e),
1440                j = new Array(e),
1441                k = new Array(e); e > b; b++)
1442                    c[b] && n.isFunction(c[b].promise) ? c[b].promise().done(h(b, k, c)).fail(g.reject).progress(h(b, j, i)) : --f;
1443            return f || g.resolveWith(k, c),
1444            g.promise()
1445        }
1446    });
1447    var H;
1448    n.fn.ready = function(a) {
1449        return n.ready.promise().done(a),
1450        this
1451    }
1452    ,
1453    n.extend({
1454        isReady: !1,
1455        readyWait: 1,
1456        holdReady: function(a) {
1457            a ? n.readyWait++ : n.ready(!0)
1458        },
1459        ready: function(a) {
1460            (a === !0 ? --n.readyWait : n.isReady) || (n.isReady = !0,
1461            a !== !0 && --n.readyWait > 0 || (H.resolveWith(l, [n]),
1462            n.fn.triggerHandler && (n(l).triggerHandler("ready"),
1463            n(l).off("ready"))))
1464        }
1465    });
1466    function I() {
1467        l.removeEventListener("DOMContentLoaded", I, !1),
1468        a.removeEventListener("load", I, !1),
1469        n.ready()
1470    }
1471    n.ready.promise = function(b) {
1472        return H || (H = n.Deferred(),
1473        "complete" === l.readyState ? setTimeout(n.ready) : (l.addEventListener("DOMContentLoaded", I, !1),
1474        a.addEventListener("load", I, !1))),
1475        H.promise(b)
1476    }
1477    ,
1478    n.ready.promise();
1479    var J = n.access = function(a, b, c, d, e, f, g) {
1480        var h = 0
1481          , i = a.length
1482          , j = null == c;
1483        if ("object" === n.type(c)) {
1484            e = !0;
1485            for (h in c)
1486                n.access(a, b, h, c[h], !0, f, g)
1487        } else if (void 0 !== d && (e = !0,
1488        n.isFunction(d) || (g = !0),
1489        j && (g ? (b.call(a, d),
1490        b = null) : (j = b,
1491        b = function(a, b, c) {
1492            return j.call(n(a), c)
1493        }
1494        )),
1495        b))
1496            for (; i > h; h++)
1497                b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c)));
1498        return e ? a : j ? b.call(a) : i ? b(a[0], c) : f
1499    }
1500    ;
1501    n.acceptData = function(a) {
1502        return 1 === a.nodeType || 9 === a.nodeType || !+a.nodeType
1503    }
1504    ;
1505    function K() {
1506        Object.defineProperty(this.cache = {}, 0, {
1507            get: function() {
1508                return {}
1509            }
1510        }),
1511        this.expando = n.expando + Math.random()
1512    }
1513    K.uid = 1,
1514    K.accepts = n.acceptData,
1515    K.prototype = {
1516        key: function(a) {
1517            if (!K.accepts(a))
1518                return 0;
1519            var b = {}
1520              , c = a[this.expando];
1521            if (!c) {
1522                c = K.uid++;
1523                try {
1524                    b[this.expando] = {
1525                        value: c
1526                    },
1527                    Object.defineProperties(a, b)
1528                } catch (d) {
1529                    b[this.expando] = c,
1530                    n.extend(a, b)
1531                }
1532            }
1533            return this.cache[c] || (this.cache[c] = {}),
1534            c
1535        },
1536        set: function(a, b, c) {
1537            var d, e = this.key(a), f = this.cache[e];
1538            if ("string" == typeof b)
1539                f[b] = c;
1540            else if (n.isEmptyObject(f))
1541                n.extend(this.cache[e], b);
1542            else
1543                for (d in b)
1544                    f[d] = b[d];
1545            return f
1546        },
1547        get: function(a, b) {
1548            var c = this.cache[this.key(a)];
1549            return void 0 === b ? c : c[b]
1550        },
1551        access: function(a, b, c) {
1552            var d;
1553            return void 0 === b || b && "string" == typeof b && void 0 === c ? (d = this.get(a, b),
1554            void 0 !== d ? d : this.get(a, n.camelCase(b))) : (this.set(a, b, c),
1555            void 0 !== c ? c : b)
1556        },
1557        remove: function(a, b) {
1558            var c, d, e, f = this.key(a), g = this.cache[f];
1559            if (void 0 === b)
1560                this.cache[f] = {};
1561            else {
1562                n.isArray(b) ? d = b.concat(b.map(n.camelCase)) : (e = n.camelCase(b),
1563                b in g ? d = [b, e] : (d = e,
1564                d = d in g ? [d] : d.match(E) || [])),
1565                c = d.length;
1566                while (c--)
1567                    delete g[d[c]]
1568            }
1569        },
1570        hasData: function(a) {
1571            return !n.isEmptyObject(this.cache[a[this.expando]] || {})
1572        },
1573        discard: function(a) {
1574            a[this.expando] && delete this.cache[a[this.expando]]
1575        }
1576    };
1577    var L = new K
1578      , M = new K
1579      , N = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/
1580      , O = /([A-Z])/g;
1581    function P(a, b, c) {
1582        var d;
1583        if (void 0 === c && 1 === a.nodeType)
1584            if (d = "data-" + b.replace(O, "-$1").toLowerCase(),
1585            c = a.getAttribute(d),
1586            "string" == typeof c) {
1587                try {
1588                    c = "true" === c ? !0 : "false" === c ? !1 : "null" === c ? null : +c + "" === c ? +c : N.test(c) ? n.parseJSON(c) : c
1589                } catch (e) {}
1590                M.set(a, b, c)
1591            } else
1592                c = void 0;
1593        return c
1594    }
1595    n.extend({
1596        hasData: function(a) {
1597            return M.hasData(a) || L.hasData(a)
1598        },
1599        data: function(a, b, c) {
1600            return M.access(a, b, c)
1601        },
1602        removeData: function(a, b) {
1603            M.remove(a, b)
1604        },
1605        _data: function(a, b, c) {
1606            return L.access(a, b, c)
1607        },
1608        _removeData: function(a, b) {
1609            L.remove(a, b)
1610        }
1611    }),
1612    n.fn.extend({
1613        data: function(a, b) {
1614            var c, d, e, f = this[0], g = f && f.attributes;
1615            if (void 0 === a) {
1616                if (this.length && (e = M.get(f),
1617                1 === f.nodeType && !L.get(f, "hasDataAttrs"))) {
1618                    c = g.length;
1619                    while (c--)
1620                        g[c] && (d = g[c].name,
1621                        0 === d.indexOf("data-") && (d = n.camelCase(d.slice(5)),
1622                        P(f, d, e[d])));
1623                    L.set(f, "hasDataAttrs", !0)
1624                }
1625                return e
1626            }
1627            return "object" == typeof a ? this.each(function() {
1628                M.set(this, a)
1629            }) : J(this, function(b) {
1630                var c, d = n.camelCase(a);
1631                if (f && void 0 === b) {
1632                    if (c = M.get(f, a),
1633                    void 0 !== c)
1634                        return c;
1635                    if (c = M.get(f, d),
1636                    void 0 !== c)
1637                        return c;
1638                    if (c = P(f, d, void 0),
1639                    void 0 !== c)
1640                        return c
1641                } else
1642                    this.each(function() {
1643                        var c = M.get(this, d);
1644                        M.set(this, d, b),
1645                        -1 !== a.indexOf("-") && void 0 !== c && M.set(this, a, b)
1646                    })
1647            }, null, b, arguments.length > 1, null, !0)
1648        },
1649        removeData: function(a) {
1650            return this.each(function() {
1651                M.remove(this, a)
1652            })
1653        }
1654    }),
1655    n.extend({
1656        queue: function(a, b, c) {
1657            var d;
1658            return a ? (b = (b || "fx") + "queue",
1659            d = L.get(a, b),
1660            c && (!d || n.isArray(c) ? d = L.access(a, b, n.makeArray(c)) : d.push(c)),
1661            d || []) : void 0
1662        },
1663        dequeue: function(a, b) {
1664            b = b || "fx";
1665            var c = n.queue(a, b)
1666              , d = c.length
1667              , e = c.shift()
1668              , f = n._queueHooks(a, b)
1669              , g = function() {
1670                n.dequeue(a, b)
1671            };
1672            "inprogress" === e && (e = c.shift(),
1673            d--),
1674            e && ("fx" === b && c.unshift("inprogress"),
1675            delete f.stop,
1676            e.call(a, g, f)),
1677            !d && f && f.empty.fire()
1678        },
1679        _queueHooks: function(a, b) {
1680            var c = b + "queueHooks";
1681            return L.get(a, c) || L.access(a, c, {
1682                empty: n.Callbacks("once memory").add(function() {
1683                    L.remove(a, [b + "queue", c])
1684                })
1685            })
1686        }
1687    }),
1688    n.fn.extend({
1689        queue: function(a, b) {
1690            var c = 2;
1691            return "string" != typeof a && (b = a,
1692            a = "fx",
1693            c--),
1694            arguments.length < c ? n.queue(this[0], a) : void 0 === b ? this : this.each(function() {
1695                var c = n.queue(this, a, b);
1696                n._queueHooks(this, a),
1697                "fx" === a && "inprogress" !== c[0] && n.dequeue(this, a)
1698            })
1699        },
1700        dequeue: function(a) {
1701            return this.each(function() {
1702                n.dequeue(this, a)
1703            })
1704        },
1705        clearQueue: function(a) {
1706            return this.queue(a || "fx", [])
1707        },
1708        promise: function(a, b) {
1709            var c, d = 1, e = n.Deferred(), f = this, g = this.length, h = function() {
1710                --d || e.resolveWith(f, [f])
1711            };
1712            "string" != typeof a && (b = a,
1713            a = void 0),
1714            a = a || "fx";
1715            while (g--)
1716                c = L.get(f[g], a + "queueHooks"),
1717                c && c.empty && (d++,
1718                c.empty.add(h));
1719            return h(),
1720            e.promise(b)
1721        }
1722    });
1723    var Q = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source
1724      , R = ["Top", "Right", "Bottom", "Left"]
1725      , S = function(a, b) {
1726        return a = b || a,
1727        "none" === n.css(a, "display") || !n.contains(a.ownerDocument, a)
1728    }
1729      , T = /^(?:checkbox|radio)$/i;
1730    !function() {
1731        var a = l.createDocumentFragment()
1732          , b = a.appendChild(l.createElement("div"))
1733          , c = l.createElement("input");
1734        c.setAttribute("type", "radio"),
1735        c.setAttribute("checked", "checked"),
1736        c.setAttribute("name", "t"),
1737        b.appendChild(c),
1738        k.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked,
1739        b.innerHTML = "<textarea>x</textarea>",
1740        k.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue
1741    }();
1742    var U = "undefined";
1743    k.focusinBubbles = "onfocusin"in a;
1744    var V = /^key/
1745      , W = /^(?:mouse|pointer|contextmenu)|click/
1746      , X = /^(?:focusinfocus|focusoutblur)$/
1747      , Y = /^([^.]*)(?:\.(.+)|)$/;
1748    function Z() {
1749        return !0
1750    }
1751    function $() {
1752        return !1
1753    }
1754    function _() {
1755        try {
1756            return l.activeElement
1757        } catch (a) {}
1758    }
1759    n.event = {
1760        global: {},
1761        add: function(a, b, c, d, e) {
1762            var f, g, h, i, j, k, l, m, o, p, q, r = L.get(a);
1763            if (r) {
1764                c.handler && (f = c,
1765                c = f.handler,
1766                e = f.selector),
1767                c.guid || (c.guid = n.guid++),
1768                (i = r.events) || (i = r.events = {}),
1769                (g = r.handle) || (g = r.handle = function(b) {
1770                    return typeof n !== U && n.event.triggered !== b.type ? n.event.dispatch.apply(a, arguments) : void 0
1771                }
1772                ),
1773                b = (b || "").match(E) || [""],
1774                j = b.length;
1775                while (j--)
1776                    h = Y.exec(b[j]) || [],
1777                    o = q = h[1],
1778                    p = (h[2] || "").split(".").sort(),
1779                    o && (l = n.event.special[o] || {},
1780                    o = (e ? l.delegateType : l.bindType) || o,
1781                    l = n.event.special[o] || {},
1782                    k = n.extend({
1783                        type: o,
1784                        origType: q,
1785                        data: d,
1786                        handler: c,
1787                        guid: c.guid,
1788                        selector: e,
1789                        needsContext: e && n.expr.match.needsContext.test(e),
1790                        namespace: p.join(".")
1791                    }, f),
1792                    (m = i[o]) || (m = i[o] = [],
1793                    m.delegateCount = 0,
1794                    l.setup && l.setup.call(a, d, p, g) !== !1 || a.addEventListener && a.addEventListener(o, g, !1)),
1795                    l.add && (l.add.call(a, k),
1796                    k.handler.guid || (k.handler.guid = c.guid)),
1797                    e ? m.splice(m.delegateCount++, 0, k) : m.push(k),
1798                    n.event.global[o] = !0)
1799            }
1800        },
1801        remove: function(a, b, c, d, e) {
1802            var f, g, h, i, j, k, l, m, o, p, q, r = L.hasData(a) && L.get(a);
1803            if (r && (i = r.events)) {
1804                b = (b || "").match(E) || [""],
1805                j = b.length;
1806                while (j--)
1807                    if (h = Y.exec(b[j]) || [],
1808                    o = q = h[1],
1809                    p = (h[2] || "").split(".").sort(),
1810                    o) {
1811                        l = n.event.special[o] || {},
1812                        o = (d ? l.delegateType : l.bindType) || o,
1813                        m = i[o] || [],
1814                        h = h[2] && new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"),
1815                        g = f = m.length;
1816                        while (f--)
1817                            k = m[f],
1818                            !e && q !== k.origType || c && c.guid !== k.guid || h && !h.test(k.namespace) || d && d !== k.selector && ("**" !== d || !k.selector) || (m.splice(f, 1),
1819                            k.selector && m.delegateCount--,
1820                            l.remove && l.remove.call(a, k));
1821                        g && !m.length && (l.teardown && l.teardown.call(a, p, r.handle) !== !1 || n.removeEvent(a, o, r.handle),
1822                        delete i[o])
1823                    } else
1824                        for (o in i)
1825                            n.event.remove(a, o + b[j], c, d, !0);
1826                n.isEmptyObject(i) && (delete r.handle,
1827                L.remove(a, "events"))
1828            }
1829        },
1830        trigger: function(b, c, d, e) {
1831            var f, g, h, i, k, m, o, p = [d || l], q = j.call(b, "type") ? b.type : b, r = j.call(b, "namespace") ? b.namespace.split(".") : [];
1832            if (g = h = d = d || l,
1833            3 !== d.nodeType && 8 !== d.nodeType && !X.test(q + n.event.triggered) && (q.indexOf(".") >= 0 && (r = q.split("."),
1834            q = r.shift(),
1835            r.sort()),
1836            k = q.indexOf(":") < 0 && "on" + q,
1837            b = b[n.expando] ? b : new n.Event(q,"object" == typeof b && b),
1838            b.isTrigger = e ? 2 : 3,
1839            b.namespace = r.join("."),
1840            b.namespace_re = b.namespace ? new RegExp("(^|\\.)" + r.join("\\.(?:.*\\.|)") + "(\\.|$)") : null,
1841            b.result = void 0,
1842            b.target || (b.target = d),
1843            c = null == c ? [b] : n.makeArray(c, [b]),
1844            o = n.event.special[q] || {},
1845            e || !o.trigger || o.trigger.apply(d, c) !== !1)) {
1846                if (!e && !o.noBubble && !n.isWindow(d)) {
1847                    for (i = o.delegateType || q,
1848                    X.test(i + q) || (g = g.parentNode); g; g = g.parentNode)
1849                        p.push(g),
1850                        h = g;
1851                    h === (d.ownerDocument || l) && p.push(h.defaultView || h.parentWindow || a)
1852                }
1853                f = 0;
1854                while ((g = p[f++]) && !b.isPropagationStopped())
1855                    b.type = f > 1 ? i : o.bindType || q,
1856                    m = (L.get(g, "events") || {})[b.type] && L.get(g, "handle"),
1857                    m && m.apply(g, c),
1858                    m = k && g[k],
1859                    m && m.apply && n.acceptData(g) && (b.result = m.apply(g, c),
1860                    b.result === !1 && b.preventDefault());
1861                return b.type = q,
1862                e || b.isDefaultPrevented() || o._default && o._default.apply(p.pop(), c) !== !1 || !n.acceptData(d) || k && n.isFunction(d[q]) && !n.isWindow(d) && (h = d[k],
1863                h && (d[k] = null),
1864                n.event.triggered = q,
1865                d[q](),
1866                n.event.triggered = void 0,
1867                h && (d[k] = h)),
1868                b.result
1869            }
1870        },
1871        dispatch: function(a) {
1872            a = n.event.fix(a);
1873            var b, c, e, f, g, h = [], i = d.call(arguments), j = (L.get(this, "events") || {})[a.type] || [], k = n.event.special[a.type] || {};
1874            if (i[0] = a,
1875            a.delegateTarget = this,
1876            !k.preDispatch || k.preDispatch.call(this, a) !== !1) {
1877                h = n.event.handlers.call(this, a, j),
1878                b = 0;
1879                while ((f = h[b++]) && !a.isPropagationStopped()) {
1880                    a.currentTarget = f.elem,
1881                    c = 0;
1882                    while ((g = f.handlers[c++]) && !a.isImmediatePropagationStopped())
1883                        (!a.namespace_re || a.namespace_re.test(g.namespace)) && (a.handleObj = g,
1884                        a.data = g.data,
1885                        e = ((n.event.special[g.origType] || {}).handle || g.handler).apply(f.elem, i),
1886                        void 0 !== e && (a.result = e) === !1 && (a.preventDefault(),
1887                        a.stopPropagation()))
1888                }
1889                return k.postDispatch && k.postDispatch.call(this, a),
1890                a.result
1891            }
1892        },
1893        handlers: function(a, b) {
1894            var c, d, e, f, g = [], h = b.delegateCount, i = a.target;
1895            if (h && i.nodeType && (!a.button || "click" !== a.type))
1896                for (; i !== this; i = i.parentNode || this)
1897                    if (i.disabled !== !0 || "click" !== a.type) {
1898                        for (d = [],
1899                        c = 0; h > c; c++)
1900                            f = b[c],
1901                            e = f.selector + " ",
1902                            void 0 === d[e] && (d[e] = f.needsContext ? n(e, this).index(i) >= 0 : n.find(e, this, null, [i]).length),
1903                            d[e] && d.push(f);
1904                        d.length && g.push({
1905                            elem: i,
1906                            handlers: d
1907                        })
1908                    }
1909            return h < b.length && g.push({
1910                elem: this,
1911                handlers: b.slice(h)
1912            }),
1913            g
1914        },
1915        props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
1916        fixHooks: {},
1917        keyHooks: {
1918            props: "char charCode key keyCode".split(" "),
1919            filter: function(a, b) {
1920                return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode),
1921                a
1922            }
1923        },
1924        mouseHooks: {
1925            props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
1926            filter: function(a, b) {
1927                var c, d, e, f = b.button;
1928                return null == a.pageX && null != b.clientX && (c = a.target.ownerDocument || l,
1929                d = c.documentElement,
1930                e = c.body,
1931                a.pageX = b.clientX + (d && d.scrollLeft || e && e.scrollLeft || 0) - (d && d.clientLeft || e && e.clientLeft || 0),
1932                a.pageY = b.clientY + (d && d.scrollTop || e && e.scrollTop || 0) - (d && d.clientTop || e && e.clientTop || 0)),
1933                a.which || void 0 === f || (a.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0),
1934                a
1935            }
1936        },
1937        fix: function(a) {
1938            if (a[n.expando])
1939                return a;
1940            var b, c, d, e = a.type, f = a, g = this.fixHooks[e];
1941            g || (this.fixHooks[e] = g = W.test(e) ? this.mouseHooks : V.test(e) ? this.keyHooks : {}),
1942            d = g.props ? this.props.concat(g.props) : this.props,
1943            a = new n.Event(f),
1944            b = d.length;
1945            while (b--)
1946                c = d[b],
1947                a[c] = f[c];
1948            return a.target || (a.target = l),
1949            3 === a.target.nodeType && (a.target = a.target.parentNode),
1950            g.filter ? g.filter(a, f) : a
1951        },
1952        special: {
1953            load: {
1954                noBubble: !0
1955            },
1956            focus: {
1957                trigger: function() {
1958                    return this !== _() && this.focus ? (this.focus(),
1959                    !1) : void 0
1960                },
1961                delegateType: "focusin"
1962            },
1963            blur: {
1964                trigger: function() {
1965                    return this === _() && this.blur ? (this.blur(),
1966                    !1) : void 0
1967                },
1968                delegateType: "focusout"
1969            },
1970            click: {
1971                trigger: function() {
1972                    return "checkbox" === this.type && this.click && n.nodeName(this, "input") ? (this.click(),
1973                    !1) : void 0
1974                },
1975                _default: function(a) {
1976                    return n.nodeName(a.target, "a")
1977                }
1978            },
1979            beforeunload: {
1980                postDispatch: function(a) {
1981                    void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result)
1982                }
1983            }
1984        },
1985        simulate: function(a, b, c, d) {
1986            var e = n.extend(new n.Event, c, {
1987                type: a,
1988                isSimulated: !0,
1989                originalEvent: {}
1990            });
1991            d ? n.event.trigger(e, null, b) : n.event.dispatch.call(b, e),
1992            e.isDefaultPrevented() && c.preventDefault()
1993        }
1994    },
1995    n.removeEvent = function(a, b, c) {
1996        a.removeEventListener && a.removeEventListener(b, c, !1)
1997    }
1998    ,
1999    n.Event = function(a, b) {
2000        return this instanceof n.Event ? (a && a.type ? (this.originalEvent = a,
2001        this.type = a.type,
2002        this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 ? Z : $) : this.type = a,
2003        b && n.extend(this, b),
2004        this.timeStamp = a && a.timeStamp || n.now(),
2005        void (this[n.expando] = !0)) : new n.Event(a,b)
2006    }
2007    ,
2008    n.Event.prototype = {
2009        isDefaultPrevented: $,
2010        isPropagationStopped: $,
2011        isImmediatePropagationStopped: $,
2012        preventDefault: function() {
2013            var a = this.originalEvent;
2014            this.isDefaultPrevented = Z,
2015            a && a.preventDefault && a.preventDefault()
2016        },
2017        stopPropagation: function() {
2018            var a = this.originalEvent;
2019            this.isPropagationStopped = Z,
2020            a && a.stopPropagation && a.stopPropagation()
2021        },
2022        stopImmediatePropagation: function() {
2023            var a = this.originalEvent;
2024            this.isImmediatePropagationStopped = Z,
2025            a && a.stopImmediatePropagation && a.stopImmediatePropagation(),
2026            this.stopPropagation()
2027        }
2028    },
2029    n.each({
2030        mouseenter: "mouseover",
2031        mouseleave: "mouseout",
2032        pointerenter: "pointerover",
2033        pointerleave: "pointerout"
2034    }, function(a, b) {
2035        n.event.special[a] = {
2036            delegateType: b,
2037            bindType: b,
2038            handle: function(a) {
2039                var c, d = this, e = a.relatedTarget, f = a.handleObj;
2040                return (!e || e !== d && !n.contains(d, e)) && (a.type = f.origType,
2041                c = f.handler.apply(this, arguments),
2042                a.type = b),
2043                c
2044            }
2045        }
2046    }),
2047    k.focusinBubbles || n.each({
2048        focus: "focusin",
2049        blur: "focusout"
2050    }, function(a, b) {
2051        var c = function(a) {
2052            n.event.simulate(b, a.target, n.event.fix(a), !0)
2053        };
2054        n.event.special[b] = {
2055            setup: function() {
2056                var d = this.ownerDocument || this
2057                  , e = L.access(d, b);
2058                e || d.addEventListener(a, c, !0),
2059                L.access(d, b, (e || 0) + 1)
2060            },
2061            teardown: function() {
2062                var d = this.ownerDocument || this
2063                  , e = L.access(d, b) - 1;
2064                e ? L.access(d, b, e) : (d.removeEventListener(a, c, !0),
2065                L.remove(d, b))
2066            }
2067        }
2068    }),
2069    n.fn.extend({
2070        on: function(a, b, c, d, e) {
2071            var f, g;
2072            if ("object" == typeof a) {
2073                "string" != typeof b && (c = c || b,
2074                b = void 0);
2075                for (g in a)
2076                    this.on(g, b, c, a[g], e);
2077                return this
2078            }
2079            if (null == c && null == d ? (d = b,
2080            c = b = void 0) : null == d && ("string" == typeof b ? (d = c,
2081            c = void 0) : (d = c,
2082            c = b,
2083            b = void 0)),
2084            d === !1)
2085                d = $;
2086            else if (!d)
2087                return this;
2088            return 1 === e && (f = d,
2089            d = function(a) {
2090                return n().off(a),
2091                f.apply(this, arguments)
2092            }
2093            ,
2094            d.guid = f.guid || (f.guid = n.guid++)),
2095            this.each(function() {
2096                n.event.add(this, a, d, c, b)
2097            })
2098        },
2099        one: function(a, b, c, d) {
2100            return this.on(a, b, c, d, 1)
2101        },
2102        off: function(a, b, c) {
2103            var d, e;
2104            if (a && a.preventDefault && a.handleObj)
2105                return d = a.handleObj,
2106                n(a.delegateTarget).off(d.namespace ? d.origType + "." + d.namespace : d.origType, d.selector, d.handler),
2107                this;
2108            if ("object" == typeof a) {
2109                for (e in a)
2110                    this.off(e, b, a[e]);
2111                return this
2112            }
2113            return (b === !1 || "function" == typeof b) && (c = b,
2114            b = void 0),
2115            c === !1 && (c = $),
2116            this.each(function() {
2117                n.event.remove(this, a, c, b)
2118            })
2119        },
2120        trigger: function(a, b) {
2121            return this.each(function() {
2122                n.event.trigger(a, b, this)
2123            })
2124        },
2125        triggerHandler: function(a, b) {
2126            var c = this[0];
2127            return c ? n.event.trigger(a, b, c, !0) : void 0
2128        }
2129    });
2130    var ab = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi
2131      , bb = /<([\w:]+)/
2132      , cb = /<|&#?\w+;/
2133      , db = /<(?:script|style|link)/i
2134      , eb = /checked\s*(?:[^=]|=\s*.checked.)/i
2135      , fb = /^$|\/(?:java|ecma)script/i
2136      , gb = /^true\/(.*)/
2137      , hb = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g
2138      , ib = {
2139        option: [1, "<select multiple='multiple'>", "</select>"],
2140        thead: [1, "<table>", "</table>"],
2141        col: [2, "<table><colgroup>", "</colgroup></table>"],
2142        tr: [2, "<table><tbody>", "</tbody></table>"],
2143        td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
2144        _default: [0, "", ""]
2145    };
2146    ib.optgroup = ib.option,
2147    ib.tbody = ib.tfoot = ib.colgroup = ib.caption = ib.thead,
2148    ib.th = ib.td;
2149    function jb(a, b) {
2150        return n.nodeName(a, "table") && n.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) : a
2151    }
2152    function kb(a) {
2153        return a.type = (null !== a.getAttribute("type")) + "/" + a.type,
2154        a
2155    }
2156    function lb(a) {
2157        var b = gb.exec(a.type);
2158        return b ? a.type = b[1] : a.removeAttribute("type"),
2159        a
2160    }
2161    function mb(a, b) {
2162        for (var c = 0, d = a.length; d > c; c++)
2163            L.set(a[c], "globalEval", !b || L.get(b[c], "globalEval"))
2164    }
2165    function nb(a, b) {
2166        var c, d, e, f, g, h, i, j;
2167        if (1 === b.nodeType) {
2168            if (L.hasData(a) && (f = L.access(a),
2169            g = L.set(b, f),
2170            j = f.events)) {
2171                delete g.handle,
2172                g.events = {};
2173                for (e in j)
2174                    for (c = 0,
2175                    d = j[e].length; d > c; c++)
2176                        n.event.add(b, e, j[e][c])
2177            }
2178            M.hasData(a) && (h = M.access(a),
2179            i = n.extend({}, h),
2180            M.set(b, i))
2181        }
2182    }
2183    function ob(a, b) {
2184        var c = a.getElementsByTagName ? a.getElementsByTagName(b || "*") : a.querySelectorAll ? a.querySelectorAll(b || "*") : [];
2185        return void 0 === b || b && n.nodeName(a, b) ? n.merge([a], c) : c
2186    }
2187    function pb(a, b) {
2188        var c = b.nodeName.toLowerCase();
2189        "input" === c && T.test(a.type) ? b.checked = a.checked : ("input" === c || "textarea" === c) && (b.defaultValue = a.defaultValue)
2190    }
2191    n.extend({
2192        clone: function(a, b, c) {
2193            var d, e, f, g, h = a.cloneNode(!0), i = n.contains(a.ownerDocument, a);
2194            if (!(k.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || n.isXMLDoc(a)))
2195                for (g = ob(h),
2196                f = ob(a),
2197                d = 0,
2198                e = f.length; e > d; d++)
2199                    pb(f[d], g[d]);
2200            if (b)
2201                if (c)
2202                    for (f = f || ob(a),
2203                    g = g || ob(h),
2204                    d = 0,
2205                    e = f.length; e > d; d++)
2206                        nb(f[d], g[d]);
2207                else
2208                    nb(a, h);
2209            return g = ob(h, "script"),
2210            g.length > 0 && mb(g, !i && ob(a, "script")),
2211            h
2212        },
2213        buildFragment: function(a, b, c, d) {
2214            for (var e, f, g, h, i, j, k = b.createDocumentFragment(), l = [], m = 0, o = a.length; o > m; m++)
2215                if (e = a[m],
2216                e || 0 === e)
2217                    if ("object" === n.type(e))
2218                        n.merge(l, e.nodeType ? [e] : e);
2219                    else if (cb.test(e)) {
2220                        f = f || k.appendChild(b.createElement("div")),
2221                        g = (bb.exec(e) || ["", ""])[1].toLowerCase(),
2222                        h = ib[g] || ib._default,
2223                        f.innerHTML = h[1] + e.replace(ab, "<$1></$2>") + h[2],
2224                        j = h[0];
2225                        while (j--)
2226                            f = f.lastChild;
2227                        n.merge(l, f.childNodes),
2228                        f = k.firstChild,
2229                        f.textContent = ""
2230                    } else
2231                        l.push(b.createTextNode(e));
2232            k.textContent = "",
2233            m = 0;
2234            while (e = l[m++])
2235                if ((!d || -1 === n.inArray(e, d)) && (i = n.contains(e.ownerDocument, e),
2236                f = ob(k.appendChild(e), "script"),
2237                i && mb(f),
2238                c)) {
2239                    j = 0;
2240                    while (e = f[j++])
2241                        fb.test(e.type || "") && c.push(e)
2242                }
2243            return k
2244        },
2245        cleanData: function(a) {
2246            for (var b, c, d, e, f = n.event.special, g = 0; void 0 !== (c = a[g]); g++) {
2247                if (n.acceptData(c) && (e = c[L.expando],
2248                e && (b = L.cache[e]))) {
2249                    if (b.events)
2250                        for (d in b.events)
2251                            f[d] ? n.event.remove(c, d) : n.removeEvent(c, d, b.handle);
2252                    L.cache[e] && delete L.cache[e]
2253                }
2254                delete M.cache[c[M.expando]]
2255            }
2256        }
2257    }),
2258    n.fn.extend({
2259        text: function(a) {
2260            return J(this, function(a) {
2261                return void 0 === a ? n.text(this) : this.empty().each(function() {
2262                    (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) && (this.textContent = a)
2263                })
2264            }, null, a, arguments.length)
2265        },
2266        append: function() {
2267            return this.domManip(arguments, function(a) {
2268                if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
2269                    var b = jb(this, a);
2270                    b.appendChild(a)
2271                }
2272            })
2273        },
2274        prepend: function() {
2275            return this.domManip(arguments, function(a) {
2276                if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
2277                    var b = jb(this, a);
2278                    b.insertBefore(a, b.firstChild)
2279                }
2280            })
2281        },
2282        before: function() {
2283            return this.domManip(arguments, function(a) {
2284                this.parentNode && this.parentNode.insertBefore(a, this)
2285            })
2286        },
2287        after: function() {
2288            return this.domManip(arguments, function(a) {
2289                this.parentNode && this.parentNode.insertBefore(a, this.nextSibling)
2290            })
2291        },
2292        remove: function(a, b) {
2293            for (var c, d = a ? n.filter(a, this) : this, e = 0; null != (c = d[e]); e++)
2294                b || 1 !== c.nodeType || n.cleanData(ob(c)),
2295                c.parentNode && (b && n.contains(c.ownerDocument, c) && mb(ob(c, "script")),
2296                c.parentNode.removeChild(c));
2297            return this
2298        },
2299        empty: function() {
2300            for (var a, b = 0; null != (a = this[b]); b++)
2301                1 === a.nodeType && (n.cleanData(ob(a, !1)),
2302                a.textContent = "");
2303            return this
2304        },
2305        clone: function(a, b) {
2306            return a = null == a ? !1 : a,
2307            b = null == b ? a : b,
2308            this.map(function() {
2309                return n.clone(this, a, b)
2310            })
2311        },
2312        html: function(a) {
2313            return J(this, function(a) {
2314                var b = this[0] || {}
2315                  , c = 0
2316                  , d = this.length;
2317                if (void 0 === a && 1 === b.nodeType)
2318                    return b.innerHTML;
2319                if ("string" == typeof a && !db.test(a) && !ib[(bb.exec(a) || ["", ""])[1].toLowerCase()]) {
2320                    a = a.replace(ab, "<$1></$2>");
2321                    try {
2322                        for (; d > c; c++)
2323                            b = this[c] || {},
2324                            1 === b.nodeType && (n.cleanData(ob(b, !1)),
2325                            b.innerHTML = a);
2326                        b = 0
2327                    } catch (e) {}
2328                }
2329                b && this.empty().append(a)
2330            }, null, a, arguments.length)
2331        },
2332        replaceWith: function() {
2333            var a = arguments[0];
2334            return this.domManip(arguments, function(b) {
2335                a = this.parentNode,
2336                n.cleanData(ob(this)),
2337                a && a.replaceChild(b, this)
2338            }),
2339            a && (a.length || a.nodeType) ? this : this.remove()
2340        },
2341        detach: function(a) {
2342            return this.remove(a, !0)
2343        },
2344        domManip: function(a, b) {
2345            a = e.apply([], a);
2346            var c, d, f, g, h, i, j = 0, l = this.length, m = this, o = l - 1, p = a[0], q = n.isFunction(p);
2347            if (q || l > 1 && "string" == typeof p && !k.checkClone && eb.test(p))
2348                return this.each(function(c) {
2349                    var d = m.eq(c);
2350                    q && (a[0] = p.call(this, c, d.html())),
2351                    d.domManip(a, b)
2352                });
2353            if (l && (c = n.buildFragment(a, this[0].ownerDocument, !1, this),
2354            d = c.firstChild,
2355            1 === c.childNodes.length && (c = d),
2356            d)) {
2357                for (f = n.map(ob(c, "script"), kb),
2358                g = f.length; l > j; j++)
2359                    h = c,
2360                    j !== o && (h = n.clone(h, !0, !0),
2361                    g && n.merge(f, ob(h, "script"))),
2362                    b.call(this[j], h, j);
2363                if (g)
2364                    for (i = f[f.length - 1].ownerDocument,
2365                    n.map(f, lb),
2366                    j = 0; g > j; j++)
2367                        h = f[j],
2368                        fb.test(h.type || "") && !L.access(h, "globalEval") && n.contains(i, h) && (h.src ? n._evalUrl && n._evalUrl(h.src) : n.globalEval(h.textContent.replace(hb, "")))
2369            }
2370            return this
2371        }
2372    }),
2373    n.each({
2374        appendTo: "append",
2375        prependTo: "prepend",
2376        insertBefore: "before",
2377        insertAfter: "after",
2378        replaceAll: "replaceWith"
2379    }, function(a, b) {
2380        n.fn[a] = function(a) {
2381            for (var c, d = [], e = n(a), g = e.length - 1, h = 0; g >= h; h++)
2382                c = h === g ? this : this.clone(!0),
2383                n(e[h])[b](c),
2384                f.apply(d, c.get());
2385            return this.pushStack(d)
2386        }
2387    });
2388    var qb, rb = {};
2389    function sb(b, c) {
2390        var d, e = n(c.createElement(b)).appendTo(c.body), f = a.getDefaultComputedStyle && (d = a.getDefaultComputedStyle(e[0])) ? d.display : n.css(e[0], "display");
2391        return e.detach(),
2392        f
2393    }
2394    function tb(a) {
2395        var b = l
2396          , c = rb[a];
2397        return c || (c = sb(a, b),
2398        "none" !== c && c || (qb = (qb || n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),
2399        b = qb[0].contentDocument,
2400        b.write(),
2401        b.close(),
2402        c = sb(a, b),
2403        qb.detach()),
2404        rb[a] = c),
2405        c
2406    }
2407    var ub = /^margin/
2408      , vb = new RegExp("^(" + Q + ")(?!px)[a-z%]+$","i")
2409      , wb = function(a) {
2410        return a.ownerDocument.defaultView.getComputedStyle(a, null)
2411    };
2412    function xb(a, b, c) {
2413        var d, e, f, g, h = a.style;
2414        return c = c || wb(a),
2415        c && (g = c.getPropertyValue(b) || c[b]),
2416        c && ("" !== g || n.contains(a.ownerDocument, a) || (g = n.style(a, b)),
2417        vb.test(g) && ub.test(b) && (d = h.width,
2418        e = h.minWidth,
2419        f = h.maxWidth,
2420        h.minWidth = h.maxWidth = h.width = g,
2421        g = c.width,
2422        h.width = d,
2423        h.minWidth = e,
2424        h.maxWidth = f)),
2425        void 0 !== g ? g + "" : g
2426    }
2427    function yb(a, b) {
2428        return {
2429            get: function() {
2430                return a() ? void delete this.get : (this.get = b).apply(this, arguments)
2431            }
2432        }
2433    }
2434    !function() {
2435        var b, c, d = l.documentElement, e = l.createElement("div"), f = l.createElement("div");
2436        if (f.style) {
2437            f.style.backgroundClip = "content-box",
2438            f.cloneNode(!0).style.backgroundClip = "",
2439            k.clearCloneStyle = "content-box" === f.style.backgroundClip,
2440            e.style.cssText = "border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",
2441            e.appendChild(f);
2442            function g() {
2443                f.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",
2444                f.innerHTML = "",
2445                d.appendChild(e);
2446                var g = a.getComputedStyle(f, null);
2447                b = "1%" !== g.top,
2448                c = "4px" === g.width,
2449                d.removeChild(e)
2450            }
2451            a.getComputedStyle && n.extend(k, {
2452                pixelPosition: function() {
2453                    return g(),
2454                    b
2455                },
2456                boxSizingReliable: function() {
2457                    return null == c && g(),
2458                    c
2459                },
2460                reliableMarginRight: function() {
2461                    var b, c = f.appendChild(l.createElement("div"));
2462                    return c.style.cssText = f.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",
2463                    c.style.marginRight = c.style.width = "0",
2464                    f.style.width = "1px",
2465                    d.appendChild(e),
2466                    b = !parseFloat(a.getComputedStyle(c, null).marginRight),
2467                    d.removeChild(e),
2468                    b
2469                }
2470            })
2471        }
2472    }(),
2473    n.swap = function(a, b, c, d) {
2474        var e, f, g = {};
2475        for (f in b)
2476            g[f] = a.style[f],
2477            a.style[f] = b[f];
2478        e = c.apply(a, d || []);
2479        for (f in b)
2480            a.style[f] = g[f];
2481        return e
2482    }
2483    ;
2484    var zb = /^(none|table(?!-c[ea]).+)/
2485      , Ab = new RegExp("^(" + Q + ")(.*)$","i")
2486      , Bb = new RegExp("^([+-])=(" + Q + ")","i")
2487      , Cb = {
2488        position: "absolute",
2489        visibility: "hidden",
2490        display: "block"
2491    }
2492      , Db = {
2493        letterSpacing: "0",
2494        fontWeight: "400"
2495    }
2496      , Eb = ["Webkit", "O", "Moz", "ms"];
2497    function Fb(a, b) {
2498        if (b in a)
2499            return b;
2500        var c = b[0].toUpperCase() + b.slice(1)
2501          , d = b
2502          , e = Eb.length;
2503        while (e--)
2504            if (b = Eb[e] + c,
2505            b in a)
2506                return b;
2507        return d
2508    }
2509    function Gb(a, b, c) {
2510        var d = Ab.exec(b);
2511        return d ? Math.max(0, d[1] - (c || 0)) + (d[2] || "px") : b
2512    }
2513    function Hb(a, b, c, d, e) {
2514        for (var f = c === (d ? "border" : "content") ? 4 : "width" === b ? 1 : 0, g = 0; 4 > f; f += 2)
2515            "margin" === c && (g += n.css(a, c + R[f], !0, e)),
2516            d ? ("content" === c && (g -= n.css(a, "padding" + R[f], !0, e)),
2517            "margin" !== c && (g -= n.css(a, "border" + R[f] + "Width", !0, e))) : (g += n.css(a, "padding" + R[f], !0, e),
2518            "padding" !== c && (g += n.css(a, "border" + R[f] + "Width", !0, e)));
2519        return g
2520    }
2521    function Ib(a, b, c) {
2522        var d = !0
2523          , e = "width" === b ? a.offsetWidth : a.offsetHeight
2524          , f = wb(a)
2525          , g = "border-box" === n.css(a, "boxSizing", !1, f);
2526        if (0 >= e || null == e) {
2527            if (e = xb(a, b, f),
2528            (0 > e || null == e) && (e = a.style[b]),
2529            vb.test(e))
2530                return e;
2531            d = g && (k.boxSizingReliable() || e === a.style[b]),
2532            e = parseFloat(e) || 0
2533        }
2534        return e + Hb(a, b, c || (g ? "border" : "content"), d, f) + "px"
2535    }
2536    function Jb(a, b) {
2537        for (var c, d, e, f = [], g = 0, h = a.length; h > g; g++)
2538            d = a[g],
2539            d.style && (f[g] = L.get(d, "olddisplay"),
2540            c = d.style.display,
2541            b ? (f[g] || "none" !== c || (d.style.display = ""),
2542            "" === d.style.display && S(d) && (f[g] = L.access(d, "olddisplay", tb(d.nodeName)))) : (e = S(d),
2543            "none" === c && e || L.set(d, "olddisplay", e ? c : n.css(d, "display"))));
2544        for (g = 0; h > g; g++)
2545            d = a[g],
2546            d.style && (b && "none" !== d.style.display && "" !== d.style.display || (d.style.display = b ? f[g] || "" : "none"));
2547        return a
2548    }
2549    n.extend({
2550        cssHooks: {
2551            opacity: {
2552                get: function(a, b) {
2553                    if (b) {
2554                        var c = xb(a, "opacity");
2555                        return "" === c ? "1" : c
2556                    }
2557                }
2558            }
2559        },
2560        cssNumber: {
2561            columnCount: !0,
2562            fillOpacity: !0,
2563            flexGrow: !0,
2564            flexShrink: !0,
2565            fontWeight: !0,
2566            lineHeight: !0,
2567            opacity: !0,
2568            order: !0,
2569            orphans: !0,
2570            widows: !0,
2571            zIndex: !0,
2572            zoom: !0
2573        },
2574        cssProps: {
2575            "float": "cssFloat"
2576        },
2577        style: function(a, b, c, d) {
2578            if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) {
2579                var e, f, g, h = n.camelCase(b), i = a.style;
2580                return b = n.cssProps[h] || (n.cssProps[h] = Fb(i, h)),
2581                g = n.cssHooks[b] || n.cssHooks[h],
2582                void 0 === c ? g && "get"in g && void 0 !== (e = g.get(a, !1, d)) ? e : i[b] : (f = typeof c,
2583                "string" === f && (e = Bb.exec(c)) && (c = (e[1] + 1) * e[2] + parseFloat(n.css(a, b)),
2584                f = "number"),
2585                null != c && c === c && ("number" !== f || n.cssNumber[h] || (c += "px"),
2586                k.clearCloneStyle || "" !== c || 0 !== b.indexOf("background") || (i[b] = "inherit"),
2587                g && "set"in g && void 0 === (c = g.set(a, c, d)) || (i[b] = c)),
2588                void 0)
2589            }
2590        },
2591        css: function(a, b, c, d) {
2592            var e, f, g, h = n.camelCase(b);
2593            return b = n.cssProps[h] || (n.cssProps[h] = Fb(a.style, h)),
2594            g = n.cssHooks[b] || n.cssHooks[h],
2595            g && "get"in g && (e = g.get(a, !0, c)),
2596            void 0 === e && (e = xb(a, b, d)),
2597            "normal" === e && b in Db && (e = Db[b]),
2598            "" === c || c ? (f = parseFloat(e),
2599            c === !0 || n.isNumeric(f) ? f || 0 : e) : e
2600        }
2601    }),
2602    n.each(["height", "width"], function(a, b) {
2603        n.cssHooks[b] = {
2604            get: function(a, c, d) {
2605                return c ? zb.test(n.css(a, "display")) && 0 === a.offsetWidth ? n.swap(a, Cb, function() {
2606                    return Ib(a, b, d)
2607                }) : Ib(a, b, d) : void 0
2608            },
2609            set: function(a, c, d) {
2610                var e = d && wb(a);
2611                return Gb(a, c, d ? Hb(a, b, d, "border-box" === n.css(a, "boxSizing", !1, e), e) : 0)
2612            }
2613        }
2614    }),
2615    n.cssHooks.marginRight = yb(k.reliableMarginRight, function(a, b) {
2616        return b ? n.swap(a, {
2617            display: "inline-block"
2618        }, xb, [a, "marginRight"]) : void 0
2619    }),
2620    n.each({
2621        margin: "",
2622        padding: "",
2623        border: "Width"
2624    }, function(a, b) {
2625        n.cssHooks[a + b] = {
2626            expand: function(c) {
2627                for (var d = 0, e = {}, f = "string" == typeof c ? c.split(" ") : [c]; 4 > d; d++)
2628                    e[a + R[d] + b] = f[d] || f[d - 2] || f[0];
2629                return e
2630            }
2631        },
2632        ub.test(a) || (n.cssHooks[a + b].set = Gb)
2633    }),
2634    n.fn.extend({
2635        css: function(a, b) {
2636            return J(this, function(a, b, c) {
2637                var d, e, f = {}, g = 0;
2638                if (n.isArray(b)) {
2639                    for (d = wb(a),
2640                    e = b.length; e > g; g++)
2641                        f[b[g]] = n.css(a, b[g], !1, d);
2642                    return f
2643                }
2644                return void 0 !== c ? n.style(a, b, c) : n.css(a, b)
2645            }, a, b, arguments.length > 1)
2646        },
2647        show: function() {
2648            return Jb(this, !0)
2649        },
2650        hide: function() {
2651            return Jb(this)
2652        },
2653        toggle: function(a) {
2654            return "boolean" == typeof a ? a ? this.show() : this.hide() : this.each(function() {
2655                S(this) ? n(this).show() : n(this).hide()
2656            })
2657        }
2658    });
2659    function Kb(a, b, c, d, e) {
2660        return new Kb.prototype.init(a,b,c,d,e)
2661    }
2662    n.Tween = Kb,
2663    Kb.prototype = {
2664        constructor: Kb,
2665        init: function(a, b, c, d, e, f) {
2666            this.elem = a,
2667            this.prop = c,
2668            this.easing = e || "swing",
2669            this.options = b,
2670            this.start = this.now = this.cur(),
2671            this.end = d,
2672            this.unit = f || (n.cssNumber[c] ? "" : "px")
2673        },
2674        cur: function() {
2675            var a = Kb.propHooks[this.prop];
2676            return a && a.get ? a.get(this) : Kb.propHooks._default.get(this)
2677        },
2678        run: function(a) {
2679            var b, c = Kb.propHooks[this.prop];
2680            return this.pos = b = this.options.duration ? n.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : a,
2681            this.now = (this.end - this.start) * b + this.start,
2682            this.options.step && this.options.step.call(this.elem, this.now, this),
2683            c && c.set ? c.set(this) : Kb.propHooks._default.set(this),
2684            this
2685        }
2686    },
2687    Kb.prototype.init.prototype = Kb.prototype,
2688    Kb.propHooks = {
2689        _default: {
2690            get: function(a) {
2691                var b;
2692                return null == a.elem[a.prop] || a.elem.style && null != a.elem.style[a.prop] ? (b = n.css(a.elem, a.prop, ""),
2693                b && "auto" !== b ? b : 0) : a.elem[a.prop]
2694            },
2695            set: function(a) {
2696                n.fx.step[a.prop] ? n.fx.step[a.prop](a) : a.elem.style && (null != a.elem.style[n.cssProps[a.prop]] || n.cssHooks[a.prop]) ? n.style(a.elem, a.prop, a.now + a.unit) : a.elem[a.prop] = a.now
2697            }
2698        }
2699    },
2700    Kb.propHooks.scrollTop = Kb.propHooks.scrollLeft = {
2701        set: function(a) {
2702            a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now)
2703        }
2704    },
2705    n.easing = {
2706        linear: function(a) {
2707            return a
2708        },
2709        swing: function(a) {
2710            return .5 - Math.cos(a * Math.PI) / 2
2711        }
2712    },
2713    n.fx = Kb.prototype.init,
2714    n.fx.step = {};
2715    var Lb, Mb, Nb = /^(?:toggle|show|hide)$/, Ob = new RegExp("^(?:([+-])=|)(" + Q + ")([a-z%]*)$","i"), Pb = /queueHooks$/, Qb = [Vb], Rb = {
2716        "*": [function(a, b) {
2717            var c = this.createTween(a, b)
2718              , d = c.cur()
2719              , e = Ob.exec(b)
2720              , f = e && e[3] || (n.cssNumber[a] ? "" : "px")
2721              , g = (n.cssNumber[a] || "px" !== f && +d) && Ob.exec(n.css(c.elem, a))
2722              , h = 1
2723              , i = 20;
2724            if (g && g[3] !== f) {
2725                f = f || g[3],
2726                e = e || [],
2727                g = +d || 1;
2728                do
2729                    h = h || ".5",
2730                    g /= h,
2731                    n.style(c.elem, a, g + f);
2732                while (h !== (h = c.cur() / d) && 1 !== h && --i)
2733            }
2734            return e && (g = c.start = +g || +d || 0,
2735            c.unit = f,
2736            c.end = e[1] ? g + (e[1] + 1) * e[2] : +e[2]),
2737            c
2738        }
2739        ]
2740    };
2741    function Sb() {
2742        return setTimeout(function() {
2743            Lb = void 0
2744        }),
2745        Lb = n.now()
2746    }
2747    function Tb(a, b) {
2748        var c, d = 0, e = {
2749            height: a
2750        };
2751        for (b = b ? 1 : 0; 4 > d; d += 2 - b)
2752            c = R[d],
2753            e["margin" + c] = e["padding" + c] = a;
2754        return b && (e.opacity = e.width = a),
2755        e
2756    }
2757    function Ub(a, b, c) {
2758        for (var d, e = (Rb[b] || []).concat(Rb["*"]), f = 0, g = e.length; g > f; f++)
2759            if (d = e[f].call(c, b, a))
2760                return d
2761    }
2762    function Vb(a, b, c) {
2763        var d, e, f, g, h, i, j, k, l = this, m = {}, o = a.style, p = a.nodeType && S(a), q = L.get(a, "fxshow");
2764        c.queue || (h = n._queueHooks(a, "fx"),
2765        null == h.unqueued && (h.unqueued = 0,
2766        i = h.empty.fire,
2767        h.empty.fire = function() {
2768            h.unqueued || i()
2769        }
2770        ),
2771        h.unqueued++,
2772        l.always(function() {
2773            l.always(function() {
2774                h.unqueued--,
2775                n.queue(a, "fx").length || h.empty.fire()
2776            })
2777        })),
2778        1 === a.nodeType && ("height"in b || "width"in b) && (c.overflow = [o.overflow, o.overflowX, o.overflowY],
2779        j = n.css(a, "display"),
2780        k = "none" === j ? L.get(a, "olddisplay") || tb(a.nodeName) : j,
2781        "inline" === k && "none" === n.css(a, "float") && (o.display = "inline-block")),
2782        c.overflow && (o.overflow = "hidden",
2783        l.always(function() {
2784            o.overflow = c.overflow[0],
2785            o.overflowX = c.overflow[1],
2786            o.overflowY = c.overflow[2]
2787        }));
2788        for (d in b)
2789            if (e = b[d],
2790            Nb.exec(e)) {
2791                if (delete b[d],
2792                f = f || "toggle" === e,
2793                e === (p ? "hide" : "show")) {
2794                    if ("show" !== e || !q || void 0 === q[d])
2795                        continue;
2796                    p = !0
2797                }
2798                m[d] = q && q[d] || n.style(a, d)
2799            } else
2800                j = void 0;
2801        if (n.isEmptyObject(m))
2802            "inline" === ("none" === j ? tb(a.nodeName) : j) && (o.display = j);
2803        else {
2804            q ? "hidden"in q && (p = q.hidden) : q = L.access(a, "fxshow", {}),
2805            f && (q.hidden = !p),
2806            p ? n(a).show() : l.done(function() {
2807                n(a).hide()
2808            }),
2809            l.done(function() {
2810                var b;
2811                L.remove(a, "fxshow");
2812                for (b in m)
2813                    n.style(a, b, m[b])
2814            });
2815            for (d in m)
2816                g = Ub(p ? q[d] : 0, d, l),
2817                d in q || (q[d] = g.start,
2818                p && (g.end = g.start,
2819                g.start = "width" === d || "height" === d ? 1 : 0))
2820        }
2821    }
2822    function Wb(a, b) {
2823        var c, d, e, f, g;
2824        for (c in a)
2825            if (d = n.camelCase(c),
2826            e = b[d],
2827            f = a[c],
2828            n.isArray(f) && (e = f[1],
2829            f = a[c] = f[0]),
2830            c !== d && (a[d] = f,
2831            delete a[c]),
2832            g = n.cssHooks[d],
2833            g && "expand"in g) {
2834                f = g.expand(f),
2835                delete a[d];
2836                for (c in f)
2837                    c in a || (a[c] = f[c],
2838                    b[c] = e)
2839            } else
2840                b[d] = e
2841    }
2842    function Xb(a, b, c) {
2843        var d, e, f = 0, g = Qb.length, h = n.Deferred().always(function() {
2844            delete i.elem
2845        }), i = function() {
2846            if (e)
2847                return !1;
2848            for (var b = Lb || Sb(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; i > g; g++)
2849                j.tweens[g].run(f);
2850            return h.notifyWith(a, [j, f, c]),
2851            1 > f && i ? c : (h.resolveWith(a, [j]),
2852            !1)
2853        }, j = h.promise({
2854            elem: a,
2855            props: n.extend({}, b),
2856            opts: n.extend(!0, {
2857                specialEasing: {}
2858            }, c),
2859            originalProperties: b,
2860            originalOptions: c,
2861            startTime: Lb || Sb(),
2862            duration: c.duration,
2863            tweens: [],
2864            createTween: function(b, c) {
2865                var d = n.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing);
2866                return j.tweens.push(d),
2867                d
2868            },
2869            stop: function(b) {
2870                var c = 0
2871                  , d = b ? j.tweens.length : 0;
2872                if (e)
2873                    return this;
2874                for (e = !0; d > c; c++)
2875                    j.tweens[c].run(1);
2876                return b ? h.resolveWith(a, [j, b]) : h.rejectWith(a, [j, b]),
2877                this
2878            }
2879        }), k = j.props;
2880        for (Wb(k, j.opts.specialEasing); g > f; f++)
2881            if (d = Qb[f].call(j, a, k, j.opts))
2882                return d;
2883        return n.map(k, Ub, j),
2884        n.isFunction(j.opts.start) && j.opts.start.call(a, j),
2885        n.fx.timer(n.extend(i, {
2886            elem: a,
2887            anim: j,
2888            queue: j.opts.queue
2889        })),
2890        j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always)
2891    }
2892    n.Animation = n.extend(Xb, {
2893        tweener: function(a, b) {
2894            n.isFunction(a) ? (b = a,
2895            a = ["*"]) : a = a.split(" ");
2896            for (var c, d = 0, e = a.length; e > d; d++)
2897                c = a[d],
2898                Rb[c] = Rb[c] || [],
2899                Rb[c].unshift(b)
2900        },
2901        prefilter: function(a, b) {
2902            b ? Qb.unshift(a) : Qb.push(a)
2903        }
2904    }),
2905    n.speed = function(a, b, c) {
2906        var d = a && "object" == typeof a ? n.extend({}, a) : {
2907            complete: c || !c && b || n.isFunction(a) && a,
2908            duration: a,
2909            easing: c && b || b && !n.isFunction(b) && b
2910        };
2911        return d.duration = n.fx.off ? 0 : "number" == typeof d.duration ? d.duration : d.duration in n.fx.speeds ? n.fx.speeds[d.duration] : n.fx.speeds._default,
2912        (null == d.queue || d.queue === !0) && (d.queue = "fx"),
2913        d.old = d.complete,
2914        d.complete = function() {
2915            n.isFunction(d.old) && d.old.call(this),
2916            d.queue && n.dequeue(this, d.queue)
2917        }
2918        ,
2919        d
2920    }
2921    ,
2922    n.fn.extend({
2923        fadeTo: function(a, b, c, d) {
2924            return this.filter(S).css("opacity", 0).show().end().animate({
2925                opacity: b
2926            }, a, c, d)
2927        },
2928        animate: function(a, b, c, d) {
2929            var e = n.isEmptyObject(a)
2930              , f = n.speed(b, c, d)
2931              , g = function() {
2932                var b = Xb(this, n.extend({}, a), f);
2933                (e || L.get(this, "finish")) && b.stop(!0)
2934            };
2935            return g.finish = g,
2936            e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g)
2937        },
2938        stop: function(a, b, c) {
2939            var d = function(a) {
2940                var b = a.stop;
2941                delete a.stop,
2942                b(c)
2943            };
2944            return "string" != typeof a && (c = b,
2945            b = a,
2946            a = void 0),
2947            b && a !== !1 && this.queue(a || "fx", []),
2948            this.each(function() {
2949                var b = !0
2950                  , e = null != a && a + "queueHooks"
2951                  , f = n.timers
2952                  , g = L.get(this);
2953                if (e)
2954                    g[e] && g[e].stop && d(g[e]);
2955                else
2956                    for (e in g)
2957                        g[e] && g[e].stop && Pb.test(e) && d(g[e]);
2958                for (e = f.length; e--; )
2959                    f[e].elem !== this || null != a && f[e].queue !== a || (f[e].anim.stop(c),
2960                    b = !1,
2961                    f.splice(e, 1));
2962                (b || !c) && n.dequeue(this, a)
2963            })
2964        },
2965        finish: function(a) {
2966            return a !== !1 && (a = a || "fx"),
2967            this.each(function() {
2968                var b, c = L.get(this), d = c[a + "queue"], e = c[a + "queueHooks"], f = n.timers, g = d ? d.length : 0;
2969                for (c.finish = !0,
2970                n.queue(this, a, []),
2971                e && e.stop && e.stop.call(this, !0),
2972                b = f.length; b--; )
2973                    f[b].elem === this && f[b].queue === a && (f[b].anim.stop(!0),
2974                    f.splice(b, 1));
2975                for (b = 0; g > b; b++)
2976                    d[b] && d[b].finish && d[b].finish.call(this);
2977                delete c.finish
2978            })
2979        }
2980    }),
2981    n.each(["toggle", "show", "hide"], function(a, b) {
2982        var c = n.fn[b];
2983        n.fn[b] = function(a, d, e) {
2984            return null == a || "boolean" == typeof a ? c.apply(this, arguments) : this.animate(Tb(b, !0), a, d, e)
2985        }
2986    }),
2987    n.each({
2988        slideDown: Tb("show"),
2989        slideUp: Tb("hide"),
2990        slideToggle: Tb("toggle"),
2991        fadeIn: {
2992            opacity: "show"
2993        },
2994        fadeOut: {
2995            opacity: "hide"
2996        },
2997        fadeToggle: {
2998            opacity: "toggle"
2999        }
3000    }, function(a, b) {
3001        n.fn[a] = function(a, c, d) {
3002            return this.animate(b, a, c, d)
3003        }
3004    }),
3005    n.timers = [],
3006    n.fx.tick = function() {
3007        var a, b = 0, c = n.timers;
3008        for (Lb = n.now(); b < c.length; b++)
3009            a = c[b],
3010            a() || c[b] !== a || c.splice(b--, 1);
3011        c.length || n.fx.stop(),
3012        Lb = void 0
3013    }
3014    ,
3015    n.fx.timer = function(a) {
3016        n.timers.push(a),
3017        a() ? n.fx.start() : n.timers.pop()
3018    }
3019    ,
3020    n.fx.interval = 13,
3021    n.fx.start = function() {
3022        Mb || (Mb = setInterval(n.fx.tick, n.fx.interval))
3023    }
3024    ,
3025    n.fx.stop = function() {
3026        clearInterval(Mb),
3027        Mb = null
3028    }
3029    ,
3030    n.fx.speeds = {
3031        slow: 600,
3032        fast: 200,
3033        _default: 400
3034    },
3035    n.fn.delay = function(a, b) {
3036        return a = n.fx ? n.fx.speeds[a] || a : a,
3037        b = b || "fx",
3038        this.queue(b, function(b, c) {
3039            var d = setTimeout(b, a);
3040            c.stop = function() {
3041                clearTimeout(d)
3042            }
3043        })
3044    }
3045    ,
3046    function() {
3047        var a = l.createElement("input")
3048          , b = l.createElement("select")
3049          , c = b.appendChild(l.createElement("option"));
3050        a.type = "checkbox",
3051        k.checkOn = "" !== a.value,
3052        k.optSelected = c.selected,
3053        b.disabled = !0,
3054        k.optDisabled = !c.disabled,
3055        a = l.createElement("input"),
3056        a.value = "t",
3057        a.type = "radio",
3058        k.radioValue = "t" === a.value
3059    }();
3060    var Yb, Zb, $b = n.expr.attrHandle;
3061    n.fn.extend({
3062        attr: function(a, b) {
3063            return J(this, n.attr, a, b, arguments.length > 1)
3064        },
3065        removeAttr: function(a) {
3066            return this.each(function() {
3067                n.removeAttr(this, a)
3068            })
3069        }
3070    }),
3071    n.extend({
3072        attr: function(a, b, c) {
3073            var d, e, f = a.nodeType;
3074            if (a && 3 !== f && 8 !== f && 2 !== f)
3075                return typeof a.getAttribute === U ? n.prop(a, b, c) : (1 === f && n.isXMLDoc(a) || (b = b.toLowerCase(),
3076                d = n.attrHooks[b] || (n.expr.match.bool.test(b) ? Zb : Yb)),
3077                void 0 === c ? d && "get"in d && null !== (e = d.get(a, b)) ? e : (e = n.find.attr(a, b),
3078                null == e ? void 0 : e) : null !== c ? d && "set"in d && void 0 !== (e = d.set(a, c, b)) ? e : (a.setAttribute(b, c + ""),
3079                c) : void n.removeAttr(a, b))
3080        },
3081        removeAttr: function(a, b) {
3082            var c, d, e = 0, f = b && b.match(E);
3083            if (f && 1 === a.nodeType)
3084                while (c = f[e++])
3085                    d = n.propFix[c] || c,
3086                    n.expr.match.bool.test(c) && (a[d] = !1),
3087                    a.removeAttribute(c)
3088        },
3089        attrHooks: {
3090            type: {
3091                set: function(a, b) {
3092                    if (!k.radioValue && "radio" === b && n.nodeName(a, "input")) {
3093                        var c = a.value;
3094                        return a.setAttribute("type", b),
3095                        c && (a.value = c),
3096                        b
3097                    }
3098                }
3099            }
3100        }
3101    }),
3102    Zb = {
3103        set: function(a, b, c) {
3104            return b === !1 ? n.removeAttr(a, c) : a.setAttribute(c, c),
3105            c
3106        }
3107    },
3108    n.each(n.expr.match.bool.source.match(/\w+/g), function(a, b) {
3109        var c = $b[b] || n.find.attr;
3110        $b[b] = function(a, b, d) {
3111            var e, f;
3112            return d || (f = $b[b],
3113            $b[b] = e,
3114            e = null != c(a, b, d) ? b.toLowerCase() : null,
3115            $b[b] = f),
3116            e
3117        }
3118    });
3119    var _b = /^(?:input|select|textarea|button)$/i;
3120    n.fn.extend({
3121        prop: function(a, b) {
3122            return J(this, n.prop, a, b, arguments.length > 1)
3123        },
3124        removeProp: function(a) {
3125            return this.each(function() {
3126                delete this[n.propFix[a] || a]
3127            })
3128        }
3129    }),
3130    n.extend({
3131        propFix: {
3132            "for": "htmlFor",
3133            "class": "className"
3134        },
3135        prop: function(a, b, c) {
3136            var d, e, f, g = a.nodeType;
3137            if (a && 3 !== g && 8 !== g && 2 !== g)
3138                return f = 1 !== g || !n.isXMLDoc(a),
3139                f && (b = n.propFix[b] || b,
3140                e = n.propHooks[b]),
3141                void 0 !== c ? e && "set"in e && void 0 !== (d = e.set(a, c, b)) ? d : a[b] = c : e && "get"in e && null !== (d = e.get(a, b)) ? d : a[b]
3142        },
3143        propHooks: {
3144            tabIndex: {
3145                get: function(a) {
3146                    return a.hasAttribute("tabindex") || _b.test(a.nodeName) || a.href ? a.tabIndex : -1
3147                }
3148            }
3149        }
3150    }),
3151    k.optSelected || (n.propHooks.selected = {
3152        get: function(a) {
3153            var b = a.parentNode;
3154            return b && b.parentNode && b.parentNode.selectedIndex,
3155            null
3156        }
3157    }),
3158    n.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
3159        n.propFix[this.toLowerCase()] = this
3160    });
3161    var ac = /[\t\r\n\f]/g;
3162    n.fn.extend({
3163        addClass: function(a) {
3164            var b, c, d, e, f, g, h = "string" == typeof a && a, i = 0, j = this.length;
3165            if (n.isFunction(a))
3166                return this.each(function(b) {
3167                    n(this).addClass(a.call(this, b, this.className))
3168                });
3169            if (h)
3170                for (b = (a || "").match(E) || []; j > i; i++)
3171                    if (c = this[i],
3172                    d = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(ac, " ") : " ")) {
3173                        f = 0;
3174                        while (e = b[f++])
3175                            d.indexOf(" " + e + " ") < 0 && (d += e + " ");
3176                        g = n.trim(d),
3177                        c.className !== g && (c.className = g)
3178                    }
3179            return this
3180        },
3181        removeClass: function(a) {
3182            var b, c, d, e, f, g, h = 0 === arguments.length || "string" == typeof a && a, i = 0, j = this.length;
3183            if (n.isFunction(a))
3184                return this.each(function(b) {
3185                    n(this).removeClass(a.call(this, b, this.className))
3186                });
3187            if (h)
3188                for (b = (a || "").match(E) || []; j > i; i++)
3189                    if (c = this[i],
3190                    d = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(ac, " ") : "")) {
3191                        f = 0;
3192                        while (e = b[f++])
3193                            while (d.indexOf(" " + e + " ") >= 0)
3194                                d = d.replace(" " + e + " ", " ");
3195                        g = a ? n.trim(d) : "",
3196                        c.className !== g && (c.className = g)
3197                    }
3198            return this
3199        },
3200        toggleClass: function(a, b) {
3201            var c = typeof a;
3202            return "boolean" == typeof b && "string" === c ? b ? this.addClass(a) : this.removeClass(a) : this.each(n.isFunction(a) ? function(c) {
3203                n(this).toggleClass(a.call(this, c, this.className, b), b)
3204            }
3205            : function() {
3206                if ("string" === c) {
3207                    var b, d = 0, e = n(this), f = a.match(E) || [];
3208                    while (b = f[d++])
3209                        e.hasClass(b) ? e.removeClass(b) : e.addClass(b)
3210                } else
3211                    (c === U || "boolean" === c) && (this.className && L.set(this, "__className__", this.className),
3212                    this.className = this.className || a === !1 ? "" : L.get(this, "__className__") || "")
3213            }
3214            )
3215        },
3216        hasClass: function(a) {
3217            for (var b = " " + a + " ", c = 0, d = this.length; d > c; c++)
3218                if (1 === this[c].nodeType && (" " + this[c].className + " ").replace(ac, " ").indexOf(b) >= 0)
3219                    return !0;
3220            return !1
3221        }
3222    });
3223    var bc = /\r/g;
3224    n.fn.extend({
3225        val: function(a) {
3226            var b, c, d, e = this[0];
3227            {
3228                if (arguments.length)
3229                    return d = n.isFunction(a),
3230                    this.each(function(c) {
3231                        var e;
3232                        1 === this.nodeType && (e = d ? a.call(this, c, n(this).val()) : a,
3233                        null == e ? e = "" : "number" == typeof e ? e += "" : n.isArray(e) && (e = n.map(e, function(a) {
3234                            return null == a ? "" : a + ""
3235                        })),
3236                        b = n.valHooks[this.type] || n.valHooks[this.nodeName.toLowerCase()],
3237                        b && "set"in b && void 0 !== b.set(this, e, "value") || (this.value = e))
3238                    });
3239                if (e)
3240                    return b = n.valHooks[e.type] || n.valHooks[e.nodeName.toLowerCase()],
3241                    b && "get"in b && void 0 !== (c = b.get(e, "value")) ? c : (c = e.value,
3242                    "string" == typeof c ? c.replace(bc, "") : null == c ? "" : c)
3243            }
3244        }
3245    }),
3246    n.extend({
3247        valHooks: {
3248            option: {
3249                get: function(a) {
3250                    var b = n.find.attr(a, "value");
3251                    return null != b ? b : n.trim(n.text(a))
3252                }
3253            },
3254            select: {
3255                get: function(a) {
3256                    for (var b, c, d = a.options, e = a.selectedIndex, f = "select-one" === a.type || 0 > e, g = f ? null : [], h = f ? e + 1 : d.length, i = 0 > e ? h : f ? e : 0; h > i; i++)
3257                        if (c = d[i],
3258                        !(!c.selected && i !== e || (k.optDisabled ? c.disabled : null !== c.getAttribute("disabled")) || c.parentNode.disabled && n.nodeName(c.parentNode, "optgroup"))) {
3259                            if (b = n(c).val(),
3260                            f)
3261                                return b;
3262                            g.push(b)
3263                        }
3264                    return g
3265                },
3266                set: function(a, b) {
3267                    var c, d, e = a.options, f = n.makeArray(b), g = e.length;
3268                    while (g--)
3269                        d = e[g],
3270                        (d.selected = n.inArray(d.value, f) >= 0) && (c = !0);
3271                    return c || (a.selectedIndex = -1),
3272                    f
3273                }
3274            }
3275        }
3276    }),
3277    n.each(["radio", "checkbox"], function() {
3278        n.valHooks[this] = {
3279            set: function(a, b) {
3280                return n.isArray(b) ? a.checked = n.inArray(n(a).val(), b) >= 0 : void 0
3281            }
3282        },
3283        k.checkOn || (n.valHooks[this].get = function(a) {
3284            return null === a.getAttribute("value") ? "on" : a.value
3285        }
3286        )
3287    }),
3288    n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(a, b) {
3289        n.fn[b] = function(a, c) {
3290            return arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b)
3291        }
3292    }),
3293    n.fn.extend({
3294        hover: function(a, b) {
3295            return this.mouseenter(a).mouseleave(b || a)
3296        },
3297        bind: function(a, b, c) {
3298            return this.on(a, null, b, c)
3299        },
3300        unbind: function(a, b) {
3301            return this.off(a, null, b)
3302        },
3303        delegate: function(a, b, c, d) {
3304            return this.on(b, a, c, d)
3305        },
3306        undelegate: function(a, b, c) {
3307            return 1 === arguments.length ? this.off(a, "**") : this.off(b, a || "**", c)
3308        }
3309    });
3310    var cc = n.now()
3311      , dc = /\?/;
3312    n.parseJSON = function(a) {
3313        return JSON.parse(a + "")
3314    }
3315    ,
3316    n.parseXML = function(a) {
3317        var b, c;
3318        if (!a || "string" != typeof a)
3319            return null;
3320        try {
3321            c = new DOMParser,
3322            b = c.parseFromString(a, "text/xml")
3323        } catch (d) {
3324            b = void 0
3325        }
3326        return (!b || b.getElementsByTagName("parsererror").length) && n.error("Invalid XML: " + a),
3327        b
3328    }
3329    ;
3330    var ec, fc, gc = /#.*$/, hc = /([?&])_=[^&]*/, ic = /^(.*?):[ \t]*([^\r\n]*)$/gm, jc = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, kc = /^(?:GET|HEAD)$/, lc = /^\/\//, mc = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, nc = {}, oc = {}, pc = "*/".concat("*");
3331    try {
3332        fc = location.href
3333    } catch (qc) {
3334        fc = l.createElement("a"),
3335        fc.href = "",
3336        fc = fc.href
3337    }
3338    ec = mc.exec(fc.toLowerCase()) || [];
3339    function rc(a) {
3340        return function(b, c) {
3341            "string" != typeof b && (c = b,
3342            b = "*");
3343            var d, e = 0, f = b.toLowerCase().match(E) || [];
3344            if (n.isFunction(c))
3345                while (d = f[e++])
3346                    "+" === d[0] ? (d = d.slice(1) || "*",
3347                    (a[d] = a[d] || []).unshift(c)) : (a[d] = a[d] || []).push(c)
3348        }
3349    }
3350    function sc(a, b, c, d) {
3351        var e = {}
3352          , f = a === oc;
3353        function g(h) {
3354            var i;
3355            return e[h] = !0,
3356            n.each(a[h] || [], function(a, h) {
3357                var j = h(b, c, d);
3358                return "string" != typeof j || f || e[j] ? f ? !(i = j) : void 0 : (b.dataTypes.unshift(j),
3359                g(j),
3360                !1)
3361            }),
3362            i
3363        }
3364        return g(b.dataTypes[0]) || !e["*"] && g("*")
3365    }
3366    function tc(a, b) {
3367        var c, d, e = n.ajaxSettings.flatOptions || {};
3368        for (c in b)
3369            void 0 !== b[c] && ((e[c] ? a : d || (d = {}))[c] = b[c]);
3370        return d && n.extend(!0, a, d),
3371        a
3372    }
3373    function uc(a, b, c) {
3374        var d, e, f, g, h = a.contents, i = a.dataTypes;
3375        while ("*" === i[0])
3376            i.shift(),
3377            void 0 === d && (d = a.mimeType || b.getResponseHeader("Content-Type"));
3378        if (d)
3379            for (e in h)
3380                if (h[e] && h[e].test(d)) {
3381                    i.unshift(e);
3382                    break
3383                }
3384        if (i[0]in c)
3385            f = i[0];
3386        else {
3387            for (e in c) {
3388                if (!i[0] || a.converters[e + " " + i[0]]) {
3389                    f = e;
3390                    break
3391                }
3392                g || (g = e)
3393            }
3394            f = f || g
3395        }
3396        return f ? (f !== i[0] && i.unshift(f),
3397        c[f]) : void 0
3398    }
3399    function vc(a, b, c, d) {
3400        var e, f, g, h, i, j = {}, k = a.dataTypes.slice();
3401        if (k[1])
3402            for (g in a.converters)
3403                j[g.toLowerCase()] = a.converters[g];
3404        f = k.shift();
3405        while (f)
3406            if (a.responseFields[f] && (c[a.responseFields[f]] = b),
3407            !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)),
3408            i = f,
3409            f = k.shift())
3410                if ("*" === f)
3411                    f = i;
3412                else if ("*" !== i && i !== f) {
3413                    if (g = j[i + " " + f] || j["* " + f],
3414                    !g)
3415                        for (e in j)
3416                            if (h = e.split(" "),
3417                            h[1] === f && (g = j[i + " " + h[0]] || j["* " + h[0]])) {
3418                                g === !0 ? g = j[e] : j[e] !== !0 && (f = h[0],
3419                                k.unshift(h[1]));
3420                                break
3421                            }
3422                    if (g !== !0)
3423                        if (g && a["throws"])
3424                            b = g(b);
3425                        else
3426                            try {
3427                                b = g(b)
3428                            } catch (l) {
3429                                return {
3430                                    state: "parsererror",
3431                                    error: g ? l : "No conversion from " + i + " to " + f
3432                                }
3433                            }
3434                }
3435        return {
3436            state: "success",
3437            data: b
3438        }
3439    }
3440    n.extend({
3441        active: 0,
3442        lastModified: {},
3443        etag: {},
3444        ajaxSettings: {
3445            url: fc,
3446            type: "GET",
3447            isLocal: jc.test(ec[1]),
3448            global: !0,
3449            processData: !0,
3450            async: !0,
3451            contentType: "application/x-www-form-urlencoded; charset=UTF-8",
3452            accepts: {
3453                "*": pc,
3454                text: "text/plain",
3455                html: "text/html",
3456                xml: "application/xml, text/xml",
3457                json: "application/json, text/javascript"
3458            },
3459            contents: {
3460                xml: /xml/,
3461                html: /html/,
3462                json: /json/
3463            },
3464            responseFields: {
3465                xml: "responseXML",
3466                text: "responseText",
3467                json: "responseJSON"
3468            },
3469            converters: {
3470                "* text": String,
3471                "text html": !0,
3472                "text json": n.parseJSON,
3473                "text xml": n.parseXML
3474            },
3475            flatOptions: {
3476                url: !0,
3477                context: !0
3478            }
3479        },
3480        ajaxSetup: function(a, b) {
3481            return b ? tc(tc(a, n.ajaxSettings), b) : tc(n.ajaxSettings, a)
3482        },
3483        ajaxPrefilter: rc(nc),
3484        ajaxTransport: rc(oc),
3485        ajax: function(a, b) {
3486            "object" == typeof a && (b = a,
3487            a = void 0),
3488            b = b || {};
3489            var c, d, e, f, g, h, i, j, k = n.ajaxSetup({}, b), l = k.context || k, m = k.context && (l.nodeType || l.jquery) ? n(l) : n.event, o = n.Deferred(), p = n.Callbacks("once memory"), q = k.statusCode || {}, r = {}, s = {}, t = 0, u = "canceled", v = {
3490                readyState: 0,
3491                getResponseHeader: function(a) {
3492                    var b;
3493                    if (2 === t) {
3494                        if (!f) {
3495                            f = {};
3496                            while (b = ic.exec(e))
3497                                f[b[1].toLowerCase()] = b[2]
3498                        }
3499                        b = f[a.toLowerCase()]
3500                    }
3501                    return null == b ? null : b
3502                },
3503                getAllResponseHeaders: function() {
3504                    return 2 === t ? e : null
3505                },
3506                setRequestHeader: function(a, b) {
3507                    var c = a.toLowerCase();
3508                    return t || (a = s[c] = s[c] || a,
3509                    r[a] = b),
3510                    this
3511                },
3512                overrideMimeType: function(a) {
3513                    return t || (k.mimeType = a),
3514                    this
3515                },
3516                statusCode: function(a) {
3517                    var b;
3518                    if (a)
3519                        if (2 > t)
3520                            for (b in a)
3521                                q[b] = [q[b], a[b]];
3522                        else
3523                            v.always(a[v.status]);
3524                    return this
3525                },
3526                abort: function(a) {
3527                    var b = a || u;
3528                    return c && c.abort(b),
3529                    x(0, b),
3530                    this
3531                }
3532            };
3533            if (o.promise(v).complete = p.add,
3534            v.success = v.done,
3535            v.error = v.fail,
3536            k.url = ((a || k.url || fc) + "").replace(gc, "").replace(lc, ec[1] + "//"),
3537            k.type = b.method || b.type || k.method || k.type,
3538            k.dataTypes = n.trim(k.dataType || "*").toLowerCase().match(E) || [""],
3539            null == k.crossDomain && (h = mc.exec(k.url.toLowerCase()),
3540            k.crossDomain = !(!h || h[1] === ec[1] && h[2] === ec[2] && (h[3] || ("http:" === h[1] ? "80" : "443")) === (ec[3] || ("http:" === ec[1] ? "80" : "443")))),
3541            k.data && k.processData && "string" != typeof k.data && (k.data = n.param(k.data, k.traditional)),
3542            sc(nc, k, b, v),
3543            2 === t)
3544                return v;
3545            i = k.global,
3546            i && 0 === n.active++ && n.event.trigger("ajaxStart"),
3547            k.type = k.type.toUpperCase(),
3548            k.hasContent = !kc.test(k.type),
3549            d = k.url,
3550            k.hasContent || (k.data && (d = k.url += (dc.test(d) ? "&" : "?") + k.data,
3551            delete k.data),
3552            k.cache === !1 && (k.url = hc.test(d) ? d.replace(hc, "$1_=" + cc++) : d + (dc.test(d) ? "&" : "?") + "_=" + cc++)),
3553            k.ifModified && (n.lastModified[d] && v.setRequestHeader("If-Modified-Since", n.lastModified[d]),
3554            n.etag[d] && v.setRequestHeader("If-None-Match", n.etag[d])),
3555            (k.data && k.hasContent && k.contentType !== !1 || b.contentType) && v.setRequestHeader("Content-Type", k.contentType),
3556            v.setRequestHeader("Accept", k.dataTypes[0] && k.accepts[k.dataTypes[0]] ? k.accepts[k.dataTypes[0]] + ("*" !== k.dataTypes[0] ? ", " + pc + "; q=0.01" : "") : k.accepts["*"]);
3557            for (j in k.headers)
3558                v.setRequestHeader(j, k.headers[j]);
3559            if (k.beforeSend && (k.beforeSend.call(l, v, k) === !1 || 2 === t))
3560                return v.abort();
3561            u = "abort";
3562            for (j in {
3563                success: 1,
3564                error: 1,
3565                complete: 1
3566            })
3567                v[j](k[j]);
3568            if (c = sc(oc, k, b, v)) {
3569                v.readyState = 1,
3570                i && m.trigger("ajaxSend", [v, k]),
3571                k.async && k.timeout > 0 && (g = setTimeout(function() {
3572                    v.abort("timeout")
3573                }, k.timeout));
3574                try {
3575                    t = 1,
3576                    c.send(r, x)
3577                } catch (w) {
3578                    if (!(2 > t))
3579                        throw w;
3580                    x(-1, w)
3581                }
3582            } else
3583                x(-1, "No Transport");
3584            function x(a, b, f, h) {
3585                var j, r, s, u, w, x = b;
3586                2 !== t && (t = 2,
3587                g && clearTimeout(g),
3588                c = void 0,
3589                e = h || "",
3590                v.readyState = a > 0 ? 4 : 0,
3591                j = a >= 200 && 300 > a || 304 === a,
3592                f && (u = uc(k, v, f)),
3593                u = vc(k, u, v, j),
3594                j ? (k.ifModified && (w = v.getResponseHeader("Last-Modified"),
3595                w && (n.lastModified[d] = w),
3596                w = v.getResponseHeader("etag"),
3597                w && (n.etag[d] = w)),
3598                204 === a || "HEAD" === k.type ? x = "nocontent" : 304 === a ? x = "notmodified" : (x = u.state,
3599                r = u.data,
3600                s = u.error,
3601                j = !s)) : (s = x,
3602                (a || !x) && (x = "error",
3603                0 > a && (a = 0))),
3604                v.status = a,
3605                v.statusText = (b || x) + "",
3606                j ? o.resolveWith(l, [r, x, v]) : o.rejectWith(l, [v, x, s]),
3607                v.statusCode(q),
3608                q = void 0,
3609                i && m.trigger(j ? "ajaxSuccess" : "ajaxError", [v, k, j ? r : s]),
3610                p.fireWith(l, [v, x]),
3611                i && (m.trigger("ajaxComplete", [v, k]),
3612                --n.active || n.event.trigger("ajaxStop")))
3613            }
3614            return v
3615        },
3616        getJSON: function(a, b, c) {
3617            return n.get(a, b, c, "json")
3618        },
3619        getScript: function(a, b) {
3620            return n.get(a, void 0, b, "script")
3621        }
3622    }),
3623    n.each(["get", "post"], function(a, b) {
3624        n[b] = function(a, c, d, e) {
3625            return n.isFunction(c) && (e = e || d,
3626            d = c,
3627            c = void 0),
3628            n.ajax({
3629                url: a,
3630                type: b,
3631                dataType: e,
3632                data: c,
3633                success: d
3634            })
3635        }
3636    }),
3637    n.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(a, b) {
3638        n.fn[b] = function(a) {
3639            return this.on(b, a)
3640        }
3641    }),
3642    n._evalUrl = function(a) {
3643        return n.ajax({
3644            url: a,
3645            type: "GET",
3646            dataType: "script",
3647            async: !1,
3648            global: !1,
3649            "throws": !0
3650        })
3651    }
3652    ,
3653    n.fn.extend({
3654        wrapAll: function(a) {
3655            var b;
3656            return n.isFunction(a) ? this.each(function(b) {
3657                n(this).wrapAll(a.call(this, b))
3658            }) : (this[0] && (b = n(a, this[0].ownerDocument).eq(0).clone(!0),
3659            this[0].parentNode && b.insertBefore(this[0]),
3660            b.map(function() {
3661                var a = this;
3662                while (a.firstElementChild)
3663                    a = a.firstElementChild;
3664                return a
3665            }).append(this)),
3666            this)
3667        },
3668        wrapInner: function(a) {
3669            return this.each(n.isFunction(a) ? function(b) {
3670                n(this).wrapInner(a.call(this, b))
3671            }
3672            : function() {
3673                var b = n(this)
3674                  , c = b.contents();
3675                c.length ? c.wrapAll(a) : b.append(a)
3676            }
3677            )
3678        },
3679        wrap: function(a) {
3680            var b = n.isFunction(a);
3681            return this.each(function(c) {
3682                n(this).wrapAll(b ? a.call(this, c) : a)
3683            })
3684        },
3685        unwrap: function() {
3686            return this.parent().each(function() {
3687                n.nodeName(this, "body") || n(this).replaceWith(this.childNodes)
3688            }).end()
3689        }
3690    }),
3691    n.expr.filters.hidden = function(a) {
3692        return a.offsetWidth <= 0 && a.offsetHeight <= 0
3693    }
3694    ,
3695    n.expr.filters.visible = function(a) {
3696        return !n.expr.filters.hidden(a)
3697    }
3698    ;
3699    var wc = /%20/g
3700      , xc = /\[\]$/
3701      , yc = /\r?\n/g
3702      , zc = /^(?:submit|button|image|reset|file)$/i
3703      , Ac = /^(?:input|select|textarea|keygen)/i;
3704    function Bc(a, b, c, d) {
3705        var e;
3706        if (n.isArray(b))
3707            n.each(b, function(b, e) {
3708                c || xc.test(a) ? d(a, e) : Bc(a + "[" + ("object" == typeof e ? b : "") + "]", e, c, d)
3709            });
3710        else if (c || "object" !== n.type(b))
3711            d(a, b);
3712        else
3713            for (e in b)
3714                Bc(a + "[" + e + "]", b[e], c, d)
3715    }
3716    n.param = function(a, b) {
3717        var c, d = [], e = function(a, b) {
3718            b = n.isFunction(b) ? b() : null == b ? "" : b,
3719            d[d.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b)
3720        };
3721        if (void 0 === b && (b = n.ajaxSettings && n.ajaxSettings.traditional),
3722        n.isArray(a) || a.jquery && !n.isPlainObject(a))
3723            n.each(a, function() {
3724                e(this.name, this.value)
3725            });
3726        else
3727            for (c in a)
3728                Bc(c, a[c], b, e);
3729        return d.join("&").replace(wc, "+")
3730    }
3731    ,
3732    n.fn.extend({
3733        serialize: function() {
3734            return n.param(this.serializeArray())
3735        },
3736        serializeArray: function() {
3737            return this.map(function() {
3738                var a = n.prop(this, "elements");
3739                return a ? n.makeArray(a) : this
3740            }).filter(function() {
3741                var a = this.type;
3742                return this.name && !n(this).is(":disabled") && Ac.test(this.nodeName) && !zc.test(a) && (this.checked || !T.test(a))
3743            }).map(function(a, b) {
3744                var c = n(this).val();
3745                return null == c ? null : n.isArray(c) ? n.map(c, function(a) {
3746                    return {
3747                        name: b.name,
3748                        value: a.replace(yc, "\r\n")
3749                    }
3750                }) : {
3751                    name: b.name,
3752                    value: c.replace(yc, "\r\n")
3753                }
3754            }).get()
3755        }
3756    }),
3757    n.ajaxSettings.xhr = function() {
3758        try {
3759            return new XMLHttpRequest
3760        } catch (a) {}
3761    }
3762    ;
3763    var Cc = 0
3764      , Dc = {}
3765      , Ec = {
3766        0: 200,
3767        1223: 204
3768    }
3769      , Fc = n.ajaxSettings.xhr();
3770    a.ActiveXObject && n(a).on("unload", function() {
3771        for (var a in Dc)
3772            Dc[a]()
3773    }),
3774    k.cors = !!Fc && "withCredentials"in Fc,
3775    k.ajax = Fc = !!Fc,
3776    n.ajaxTransport(function(a) {
3777        var b;
3778        return k.cors || Fc && !a.crossDomain ? {
3779            send: function(c, d) {
3780                var e, f = a.xhr(), g = ++Cc;
3781                if (f.open(a.type, a.url, a.async, a.username, a.password),
3782                a.xhrFields)
3783                    for (e in a.xhrFields)
3784                        f[e] = a.xhrFields[e];
3785                a.mimeType && f.overrideMimeType && f.overrideMimeType(a.mimeType),
3786                a.crossDomain || c["X-Requested-With"] || (c["X-Requested-With"] = "XMLHttpRequest");
3787                for (e in c)
3788                    f.setRequestHeader(e, c[e]);
3789                b = function(a) {
3790                    return function() {
3791                        b && (delete Dc[g],
3792                        b = f.onload = f.onerror = null,
3793                        "abort" === a ? f.abort() : "error" === a ? d(f.status, f.statusText) : d(Ec[f.status] || f.status, f.statusText, "string" == typeof f.responseText ? {
3794                            text: f.responseText
3795                        } : void 0, f.getAllResponseHeaders()))
3796                    }
3797                }
3798                ,
3799                f.onload = b(),
3800                f.onerror = b("error"),
3801                b = Dc[g] = b("abort");
3802                try {
3803                    f.send(a.hasContent && a.data || null)
3804                } catch (h) {
3805                    if (b)
3806                        throw h
3807                }
3808            },
3809            abort: function() {
3810                b && b()
3811            }
3812        } : void 0
3813    }),
3814    n.ajaxSetup({
3815        accepts: {
3816            script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
3817        },
3818        contents: {
3819            script: /(?:java|ecma)script/
3820        },
3821        converters: {
3822            "text script": function(a) {
3823                return n.globalEval(a),
3824                a
3825            }
3826        }
3827    }),
3828    n.ajaxPrefilter("script", function(a) {
3829        void 0 === a.cache && (a.cache = !1),
3830        a.crossDomain && (a.type = "GET")
3831    }),
3832    n.ajaxTransport("script", function(a) {
3833        if (a.crossDomain) {
3834            var b, c;
3835            return {
3836                send: function(d, e) {
3837                    b = n("<script>").prop({
3838                        async: !0,
3839                        charset: a.scriptCharset,
3840                        src: a.url
3841                    }).on("load error", c = function(a) {
3842                        b.remove(),
3843                        c = null,
3844                        a && e("error" === a.type ? 404 : 200, a.type)
3845                    }
3846                    ),
3847                    l.head.appendChild(b[0])
3848                },
3849                abort: function() {
3850                    c && c()
3851                }
3852            }
3853        }
3854    });
3855    var Gc = []
3856      , Hc = /(=)\?(?=&|$)|\?\?/;
3857    n.ajaxSetup({
3858        jsonp: "callback",
3859        jsonpCallback: function() {
3860            var a = Gc.pop() || n.expando + "_" + cc++;
3861            return this[a] = !0,
3862            a
3863        }
3864    }),
3865    n.ajaxPrefilter("json jsonp", function(b, c, d) {
3866        var e, f, g, h = b.jsonp !== !1 && (Hc.test(b.url) ? "url" : "string" == typeof b.data && !(b.contentType || "").indexOf("application/x-www-form-urlencoded") && Hc.test(b.data) && "data");
3867        return h || "jsonp" === b.dataTypes[0] ? (e = b.jsonpCallback = n.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback,
3868        h ? b[h] = b[h].replace(Hc, "$1" + e) : b.jsonp !== !1 && (b.url += (dc.test(b.url) ? "&" : "?") + b.jsonp + "=" + e),
3869        b.converters["script json"] = function() {
3870            return g || n.error(e + " was not called"),
3871            g[0]
3872        }
3873        ,
3874        b.dataTypes[0] = "json",
3875        f = a[e],
3876        a[e] = function() {
3877            g = arguments
3878        }
3879        ,
3880        d.always(function() {
3881            a[e] = f,
3882            b[e] && (b.jsonpCallback = c.jsonpCallback,
3883            Gc.push(e)),
3884            g && n.isFunction(f) && f(g[0]),
3885            g = f = void 0
3886        }),
3887        "script") : void 0
3888    }),
3889    n.parseHTML = function(a, b, c) {
3890        if (!a || "string" != typeof a)
3891            return null;
3892        "boolean" == typeof b && (c = b,
3893        b = !1),
3894        b = b || l;
3895        var d = v.exec(a)
3896          , e = !c && [];
3897        return d ? [b.createElement(d[1])] : (d = n.buildFragment([a], b, e),
3898        e && e.length && n(e).remove(),
3899        n.merge([], d.childNodes))
3900    }
3901    ;
3902    var Ic = n.fn.load;
3903    n.fn.load = function(a, b, c) {
3904        if ("string" != typeof a && Ic)
3905            return Ic.apply(this, arguments);
3906        var d, e, f, g = this, h = a.indexOf(" ");
3907        return h >= 0 && (d = n.trim(a.slice(h)),
3908        a = a.slice(0, h)),
3909        n.isFunction(b) ? (c = b,
3910        b = void 0) : b && "object" == typeof b && (e = "POST"),
3911        g.length > 0 && n.ajax({
3912            url: a,
3913            type: e,
3914            dataType: "html",
3915            data: b
3916        }).done(function(a) {
3917            f = arguments,
3918            g.html(d ? n("<div>").append(n.parseHTML(a)).find(d) : a)
3919        }).complete(c && function(a, b) {
3920            g.each(c, f || [a.responseText, b, a])
3921        }
3922        ),
3923        this
3924    }
3925    ,
3926    n.expr.filters.animated = function(a) {
3927        return n.grep(n.timers, function(b) {
3928            return a === b.elem
3929        }).length
3930    }
3931    ;
3932    var Jc = a.document.documentElement;
3933    function Kc(a) {
3934        return n.isWindow(a) ? a : 9 === a.nodeType && a.defaultView
3935    }
3936    n.offset = {
3937        setOffset: function(a, b, c) {
3938            var d, e, f, g, h, i, j, k = n.css(a, "position"), l = n(a), m = {};
3939            "static" === k && (a.style.position = "relative"),
3940            h = l.offset(),
3941            f = n.css(a, "top"),
3942            i = n.css(a, "left"),
3943            j = ("absolute" === k || "fixed" === k) && (f + i).indexOf("auto") > -1,
3944            j ? (d = l.position(),
3945            g = d.top,
3946            e = d.left) : (g = parseFloat(f) || 0,
3947            e = parseFloat(i) || 0),
3948            n.isFunction(b) && (b = b.call(a, c, h)),
3949            null != b.top && (m.top = b.top - h.top + g),
3950            null != b.left && (m.left = b.left - h.left + e),
3951            "using"in b ? b.using.call(a, m) : l.css(m)
3952        }
3953    },
3954    n.fn.extend({
3955        offset: function(a) {
3956            if (arguments.length)
3957                return void 0 === a ? this : this.each(function(b) {
3958                    n.offset.setOffset(this, a, b)
3959                });
3960            var b, c, d = this[0], e = {
3961                top: 0,
3962                left: 0
3963            }, f = d && d.ownerDocument;
3964            if (f)
3965                return b = f.documentElement,
3966                n.contains(b, d) ? (typeof d.getBoundingClientRect !== U && (e = d.getBoundingClientRect()),
3967                c = Kc(f),
3968                {
3969                    top: e.top + c.pageYOffset - b.clientTop,
3970                    left: e.left + c.pageXOffset - b.clientLeft
3971                }) : e
3972        },
3973        position: function() {
3974            if (this[0]) {
3975                var a, b, c = this[0], d = {
3976                    top: 0,
3977                    left: 0
3978                };
3979                return "fixed" === n.css(c, "position") ? b = c.getBoundingClientRect() : (a = this.offsetParent(),
3980                b = this.offset(),
3981                n.nodeName(a[0], "html") || (d = a.offset()),
3982                d.top += n.css(a[0], "borderTopWidth", !0),
3983                d.left += n.css(a[0], "borderLeftWidth", !0)),
3984                {
3985                    top: b.top - d.top - n.css(c, "marginTop", !0),
3986                    left: b.left - d.left - n.css(c, "marginLeft", !0)
3987                }
3988            }
3989        },
3990        offsetParent: function() {
3991            return this.map(function() {
3992                var a = this.offsetParent || Jc;
3993                while (a && !n.nodeName(a, "html") && "static" === n.css(a, "position"))
3994                    a = a.offsetParent;
3995                return a || Jc
3996            })
3997        }
3998    }),
3999    n.each({
4000        scrollLeft: "pageXOffset",
4001        scrollTop: "pageYOffset"
4002    }, function(b, c) {
4003        var d = "pageYOffset" === c;
4004        n.fn[b] = function(e) {
4005            return J(this, function(b, e, f) {
4006                var g = Kc(b);
4007                return void 0 === f ? g ? g[c] : b[e] : void (g ? g.scrollTo(d ? a.pageXOffset : f, d ? f : a.pageYOffset) : b[e] = f)
4008            }, b, e, arguments.length, null)
4009        }
4010    }),
4011    n.each(["top", "left"], function(a, b) {
4012        n.cssHooks[b] = yb(k.pixelPosition, function(a, c) {
4013            return c ? (c = xb(a, b),
4014            vb.test(c) ? n(a).position()[b] + "px" : c) : void 0
4015        })
4016    }),
4017    n.each({
4018        Height: "height",
4019        Width: "width"
4020    }, function(a, b) {
4021        n.each({
4022            padding: "inner" + a,
4023            content: b,
4024            "": "outer" + a
4025        }, function(c, d) {
4026            n.fn[d] = function(d, e) {
4027                var f = arguments.length && (c || "boolean" != typeof d)
4028                  , g = c || (d === !0 || e === !0 ? "margin" : "border");
4029                return J(this, function(b, c, d) {
4030                    var e;
4031                    return n.isWindow(b) ? b.document.documentElement["client" + a] : 9 === b.nodeType ? (e = b.documentElement,
4032                    Math.max(b.body["scroll" + a], e["scroll" + a], b.body["offset" + a], e["offset" + a], e["client" + a])) : void 0 === d ? n.css(b, c, g) : n.style(b, c, d, g)
4033                }, b, f ? d : void 0, f, null)
4034            }
4035        })
4036    }),
4037    n.fn.size = function() {
4038        return this.length
4039    }
4040    ,
4041    n.fn.andSelf = n.fn.addBack,
4042    "function" == typeof define && define.amd && define("jquery", [], function() {
4043        return n
4044    });
4045    var Lc = a.jQuery
4046      , Mc = a.$;
4047    return n.noConflict = function(b) {
4048        return a.$ === n && (a.$ = Mc),
4049        b && a.jQuery === n && (a.jQuery = Lc),
4050        n
4051    }
4052    ,
4053    typeof b === U && (a.jQuery = a.$ = n),
4054    n
4055});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.