(() => { var __create = Object.create; var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropNames = Object.getOwnPropertyNames; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key2, value) => key2 in obj ? __defProp(obj, key2, { enumerable: true, configurable: true, writable: true, value }) : obj[key2] = value; var __spreadValues = (a2, b2) => { for (var prop in b2 || (b2 = {})) if (__hasOwnProp.call(b2, prop)) __defNormalProp(a2, prop, b2[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b2)) { if (__propIsEnum.call(b2, prop)) __defNormalProp(a2, prop, b2[prop]); } return a2; }; var __spreadProps = (a2, b2) => __defProps(a2, __getOwnPropDescs(b2)); var __require = /* @__PURE__ */ ((x2) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x2, { get: (a2, b2) => (typeof require !== "undefined" ? require : a2)[b2] }) : x2)(function(x2) { if (typeof require !== "undefined") return require.apply(this, arguments); throw new Error('Dynamic require of "' + x2 + '" is not supported'); }); var __objRest = (source, exclude) => { var target = {}; for (var prop in source) if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop]; if (source != null && __getOwnPropSymbols) for (var prop of __getOwnPropSymbols(source)) { if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) target[prop] = source[prop]; } return target; }; var __commonJS = (cb, mod) => function __require2() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to2, from2, except, desc) => { if (from2 && typeof from2 === "object" || typeof from2 === "function") { for (let key2 of __getOwnPropNames(from2)) if (!__hasOwnProp.call(to2, key2) && key2 !== except) __defProp(to2, key2, { get: () => from2[key2], enumerable: !(desc = __getOwnPropDesc(from2, key2)) || desc.enumerable }); } return to2; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __publicField = (obj, key2, value) => { __defNormalProp(obj, typeof key2 !== "symbol" ? key2 + "" : key2, value); return value; }; var __async = (__this, __arguments, generator) => { return new Promise((resolve2, reject2) => { var fulfilled = (value) => { try { step(generator.next(value)); } catch (e) { reject2(e); } }; var rejected = (value) => { try { step(generator.throw(value)); } catch (e) { reject2(e); } }; var step = (x2) => x2.done ? resolve2(x2.value) : Promise.resolve(x2.value).then(fulfilled, rejected); step((generator = generator.apply(__this, __arguments)).next()); }); }; // node_modules/jquery/dist/jquery.js var require_jquery = __commonJS({ "node_modules/jquery/dist/jquery.js"(exports2, module2) { (function(global2, factory) { if (typeof module2 === "object" && typeof module2.exports === "object") { module2.exports = global2.document ? factory(global2, true) : function(w2) { if (!w2.document) { throw new Error("jQuery requires a window with a document"); } return factory(w2); }; } else { factory(global2); } })(typeof window !== "undefined" ? window : exports2, function(window2, noGlobal) { var arr = []; var document2 = window2.document; var slice2 = arr.slice; var concat2 = arr.concat; var push = arr.push; var indexOf2 = arr.indexOf; var class2type = {}; var toString2 = class2type.toString; var hasOwn = class2type.hasOwnProperty; var support = {}; var version3 = "2.2.4", jQuery2 = function(selector, context) { return new jQuery2.fn.init(selector, context); }, rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, rmsPrefix = /^-ms-/, rdashAlpha = /-([\da-z])/gi, fcamelCase = function(all, letter) { return letter.toUpperCase(); }; jQuery2.fn = jQuery2.prototype = { // The current version of jQuery being used jquery: version3, constructor: jQuery2, // Start with an empty selector selector: "", // The default length of a jQuery object is 0 length: 0, toArray: function() { return slice2.call(this); }, // Get the Nth element in the matched element set OR // Get the whole matched element set as a clean array get: function(num) { return num != null ? ( // Return just the one element from the set num < 0 ? this[num + this.length] : this[num] ) : ( // Return all the elements in a clean array slice2.call(this) ); }, // Take an array of elements and push it onto the stack // (returning the new matched element set) pushStack: function(elems) { var ret = jQuery2.merge(this.constructor(), elems); ret.prevObject = this; ret.context = this.context; return ret; }, // Execute a callback for every element in the matched set. each: function(callback2) { return jQuery2.each(this, callback2); }, map: function(callback2) { return this.pushStack(jQuery2.map(this, function(elem, i2) { return callback2.call(elem, i2, elem); })); }, slice: function() { return this.pushStack(slice2.apply(this, arguments)); }, first: function() { return this.eq(0); }, last: function() { return this.eq(-1); }, eq: function(i2) { var len = this.length, j2 = +i2 + (i2 < 0 ? len : 0); return this.pushStack(j2 >= 0 && j2 < len ? [this[j2]] : []); }, end: function() { return this.prevObject || this.constructor(); }, // For internal use only. // Behaves like an Array's method, not like a jQuery method. push, sort: arr.sort, splice: arr.splice }; jQuery2.extend = jQuery2.fn.extend = function() { var options, name, src, copy, copyIsArray, clone4, target = arguments[0] || {}, i2 = 1, length = arguments.length, deep = false; if (typeof target === "boolean") { deep = target; target = arguments[i2] || {}; i2++; } if (typeof target !== "object" && !jQuery2.isFunction(target)) { target = {}; } if (i2 === length) { target = this; i2--; } for (; i2 < length; i2++) { if ((options = arguments[i2]) != null) { for (name in options) { src = target[name]; copy = options[name]; if (target === copy) { continue; } if (deep && copy && (jQuery2.isPlainObject(copy) || (copyIsArray = jQuery2.isArray(copy)))) { if (copyIsArray) { copyIsArray = false; clone4 = src && jQuery2.isArray(src) ? src : []; } else { clone4 = src && jQuery2.isPlainObject(src) ? src : {}; } target[name] = jQuery2.extend(deep, clone4, copy); } else if (copy !== void 0) { target[name] = copy; } } } } return target; }; jQuery2.extend({ // Unique for each copy of jQuery on the page expando: "jQuery" + (version3 + Math.random()).replace(/\D/g, ""), // Assume jQuery is ready without the ready module isReady: true, error: function(msg) { throw new Error(msg); }, noop: function() { }, isFunction: function(obj) { return jQuery2.type(obj) === "function"; }, isArray: Array.isArray, isWindow: function(obj) { return obj != null && obj === obj.window; }, isNumeric: function(obj) { var realStringObj = obj && obj.toString(); return !jQuery2.isArray(obj) && realStringObj - parseFloat(realStringObj) + 1 >= 0; }, isPlainObject: function(obj) { var key2; if (jQuery2.type(obj) !== "object" || obj.nodeType || jQuery2.isWindow(obj)) { return false; } if (obj.constructor && !hasOwn.call(obj, "constructor") && !hasOwn.call(obj.constructor.prototype || {}, "isPrototypeOf")) { return false; } for (key2 in obj) { } return key2 === void 0 || hasOwn.call(obj, key2); }, isEmptyObject: function(obj) { var name; for (name in obj) { return false; } return true; }, type: function(obj) { if (obj == null) { return obj + ""; } return typeof obj === "object" || typeof obj === "function" ? class2type[toString2.call(obj)] || "object" : typeof obj; }, // Evaluates a script in a global context globalEval: function(code) { var script, indirect = eval; code = jQuery2.trim(code); if (code) { if (code.indexOf("use strict") === 1) { script = document2.createElement("script"); script.text = code; document2.head.appendChild(script).parentNode.removeChild(script); } else { indirect(code); } } }, // Convert dashed to camelCase; used by the css and data modules // Support: IE9-11+ // Microsoft forgot to hump their vendor prefix (#9572) camelCase: function(string) { return string.replace(rmsPrefix, "ms-").replace(rdashAlpha, fcamelCase); }, nodeName: function(elem, name) { return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); }, each: function(obj, callback2) { var length, i2 = 0; if (isArrayLike2(obj)) { length = obj.length; for (; i2 < length; i2++) { if (callback2.call(obj[i2], i2, obj[i2]) === false) { break; } } } else { for (i2 in obj) { if (callback2.call(obj[i2], i2, obj[i2]) === false) { break; } } } return obj; }, // Support: Android<4.1 trim: function(text2) { return text2 == null ? "" : (text2 + "").replace(rtrim, ""); }, // results is for internal usage only makeArray: function(arr2, results) { var ret = results || []; if (arr2 != null) { if (isArrayLike2(Object(arr2))) { jQuery2.merge( ret, typeof arr2 === "string" ? [arr2] : arr2 ); } else { push.call(ret, arr2); } } return ret; }, inArray: function(elem, arr2, i2) { return arr2 == null ? -1 : indexOf2.call(arr2, elem, i2); }, merge: function(first, second) { var len = +second.length, j2 = 0, i2 = first.length; for (; j2 < len; j2++) { first[i2++] = second[j2]; } first.length = i2; return first; }, grep: function(elems, callback2, invert2) { var callbackInverse, matches2 = [], i2 = 0, length = elems.length, callbackExpect = !invert2; for (; i2 < length; i2++) { callbackInverse = !callback2(elems[i2], i2); if (callbackInverse !== callbackExpect) { matches2.push(elems[i2]); } } return matches2; }, // arg is for internal usage only map: function(elems, callback2, arg) { var length, value, i2 = 0, ret = []; if (isArrayLike2(elems)) { length = elems.length; for (; i2 < length; i2++) { value = callback2(elems[i2], i2, arg); if (value != null) { ret.push(value); } } } else { for (i2 in elems) { value = callback2(elems[i2], i2, arg); if (value != null) { ret.push(value); } } } return concat2.apply([], ret); }, // A global GUID counter for objects guid: 1, // Bind a function to a context, optionally partially applying any // arguments. proxy: function(fn, context) { var tmp, args, proxy; if (typeof context === "string") { tmp = fn[context]; context = fn; fn = tmp; } if (!jQuery2.isFunction(fn)) { return void 0; } args = slice2.call(arguments, 2); proxy = function() { return fn.apply(context || this, args.concat(slice2.call(arguments))); }; proxy.guid = fn.guid = fn.guid || jQuery2.guid++; return proxy; }, now: Date.now, // jQuery.support is not used in Core but other projects attach their // properties to it so it needs to exist. support }); if (typeof Symbol === "function") { jQuery2.fn[Symbol.iterator] = arr[Symbol.iterator]; } jQuery2.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(i2, name) { class2type["[object " + name + "]"] = name.toLowerCase(); } ); function isArrayLike2(obj) { var length = !!obj && "length" in obj && obj.length, type = jQuery2.type(obj); if (type === "function" || jQuery2.isWindow(obj)) { return false; } return type === "array" || length === 0 || typeof length === "number" && length > 0 && length - 1 in obj; } var Sizzle = ( /*! * Sizzle CSS Selector Engine v2.2.1 * http://sizzlejs.com/ * * Copyright jQuery Foundation and other contributors * Released under the MIT license * http://jquery.org/license * * Date: 2015-10-17 */ function(window3) { var i2, support2, Expr, getText, isXML, tokenize, compile, select, outermostContext, sortInput, hasDuplicate, setDocument, document3, docElem, documentIsHTML, rbuggyQSA, rbuggyMatches, matches2, contains, expando = "sizzle" + 1 * /* @__PURE__ */ new Date(), preferredDoc = window3.document, dirruns = 0, done = 0, classCache = createCache(), tokenCache = createCache(), compilerCache = createCache(), sortOrder = function(a2, b2) { if (a2 === b2) { hasDuplicate = true; } return 0; }, MAX_NEGATIVE = 1 << 31, hasOwn2 = {}.hasOwnProperty, arr2 = [], pop = arr2.pop, push_native = arr2.push, push2 = arr2.push, slice3 = arr2.slice, indexOf3 = function(list, elem) { var i3 = 0, len = list.length; for (; i3 < len; i3++) { if (list[i3] === elem) { return i3; } } return -1; }, booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", whitespace = "[\\x20\\t\\r\\n\\f]", identifier = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + // Operator (capture 2) "*([*^$|!~]?=)" + whitespace + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" `*(?:'((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)"|(` + identifier + "))|)" + whitespace + "*\\]", pseudos = ":(" + identifier + `)(?:\\((('((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|` + attributes + ")*)|.*)\\)|)", rwhitespace = new RegExp(whitespace + "+", "g"), rtrim2 = new RegExp("^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g"), rcomma = new RegExp("^" + whitespace + "*," + whitespace + "*"), rcombinators = new RegExp("^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*"), rattributeQuotes = new RegExp("=" + whitespace + `*([^\\]'"]*?)` + whitespace + "*\\]", "g"), rpseudo = new RegExp(pseudos), ridentifier = new RegExp("^" + identifier + "$"), matchExpr = { "ID": new RegExp("^#(" + identifier + ")"), "CLASS": new RegExp("^\\.(" + identifier + ")"), "TAG": new RegExp("^(" + identifier + "|[*])"), "ATTR": new RegExp("^" + attributes), "PSEUDO": new RegExp("^" + pseudos), "CHILD": new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i"), "bool": new RegExp("^(?:" + booleans + ")$", "i"), // For use in libraries implementing .is() // We use this for POS matching in `select` "needsContext": new RegExp("^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i") }, rinputs = /^(?:input|select|textarea|button)$/i, rheader = /^h\d$/i, rnative = /^[^{]+\{\s*\[native \w/, rquickExpr2 = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, rsibling = /[+~]/, rescape = /'|\\/g, runescape = new RegExp("\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig"), funescape = function(_2, escaped, escapedWhitespace) { var high = "0x" + escaped - 65536; return high !== high || escapedWhitespace ? escaped : high < 0 ? ( // BMP codepoint String.fromCharCode(high + 65536) ) : ( // Supplemental Plane codepoint (surrogate pair) String.fromCharCode(high >> 10 | 55296, high & 1023 | 56320) ); }, unloadHandler = function() { setDocument(); }; try { push2.apply( arr2 = slice3.call(preferredDoc.childNodes), preferredDoc.childNodes ); arr2[preferredDoc.childNodes.length].nodeType; } catch (e) { push2 = { apply: arr2.length ? ( // Leverage slice if possible function(target, els) { push_native.apply(target, slice3.call(els)); } ) : ( // Support: IE<9 // Otherwise append directly function(target, els) { var j2 = target.length, i3 = 0; while (target[j2++] = els[i3++]) { } target.length = j2 - 1; } ) }; } function Sizzle2(selector, context, results, seed) { var m2, i3, elem, nid, nidselect, match, groups, newSelector, newContext = context && context.ownerDocument, nodeType = context ? context.nodeType : 9; results = results || []; if (typeof selector !== "string" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) { return results; } if (!seed) { if ((context ? context.ownerDocument || context : preferredDoc) !== document3) { setDocument(context); } context = context || document3; if (documentIsHTML) { if (nodeType !== 11 && (match = rquickExpr2.exec(selector))) { if (m2 = match[1]) { if (nodeType === 9) { if (elem = context.getElementById(m2)) { if (elem.id === m2) { results.push(elem); return results; } } else { return results; } } else { if (newContext && (elem = newContext.getElementById(m2)) && contains(context, elem) && elem.id === m2) { results.push(elem); return results; } } } else if (match[2]) { push2.apply(results, context.getElementsByTagName(selector)); return results; } else if ((m2 = match[3]) && support2.getElementsByClassName && context.getElementsByClassName) { push2.apply(results, context.getElementsByClassName(m2)); return results; } } if (support2.qsa && !compilerCache[selector + " "] && (!rbuggyQSA || !rbuggyQSA.test(selector))) { if (nodeType !== 1) { newContext = context; newSelector = selector; } else if (context.nodeName.toLowerCase() !== "object") { if (nid = context.getAttribute("id")) { nid = nid.replace(rescape, "\\$&"); } else { context.setAttribute("id", nid = expando); } groups = tokenize(selector); i3 = groups.length; nidselect = ridentifier.test(nid) ? "#" + nid : "[id='" + nid + "']"; while (i3--) { groups[i3] = nidselect + " " + toSelector(groups[i3]); } newSelector = groups.join(","); newContext = rsibling.test(selector) && testContext(context.parentNode) || context; } if (newSelector) { try { push2.apply( results, newContext.querySelectorAll(newSelector) ); return results; } catch (qsaError) { } finally { if (nid === expando) { context.removeAttribute("id"); } } } } } } return select(selector.replace(rtrim2, "$1"), context, results, seed); } function createCache() { var keys2 = []; function cache(key2, value) { if (keys2.push(key2 + " ") > Expr.cacheLength) { delete cache[keys2.shift()]; } return cache[key2 + " "] = value; } return cache; } function markFunction(fn) { fn[expando] = true; return fn; } function assert(fn) { var div = document3.createElement("div"); try { return !!fn(div); } catch (e) { return false; } finally { if (div.parentNode) { div.parentNode.removeChild(div); } div = null; } } function addHandle(attrs, handler) { var arr3 = attrs.split("|"), i3 = arr3.length; while (i3--) { Expr.attrHandle[arr3[i3]] = handler; } } function siblingCheck(a2, b2) { var cur = b2 && a2, diff = cur && a2.nodeType === 1 && b2.nodeType === 1 && (~b2.sourceIndex || MAX_NEGATIVE) - (~a2.sourceIndex || MAX_NEGATIVE); if (diff) { return diff; } if (cur) { while (cur = cur.nextSibling) { if (cur === b2) { return -1; } } } return a2 ? 1 : -1; } function createInputPseudo(type) { return function(elem) { var name = elem.nodeName.toLowerCase(); return name === "input" && elem.type === type; }; } function createButtonPseudo(type) { return function(elem) { var name = elem.nodeName.toLowerCase(); return (name === "input" || name === "button") && elem.type === type; }; } function createPositionalPseudo(fn) { return markFunction(function(argument) { argument = +argument; return markFunction(function(seed, matches3) { var j2, matchIndexes = fn([], seed.length, argument), i3 = matchIndexes.length; while (i3--) { if (seed[j2 = matchIndexes[i3]]) { seed[j2] = !(matches3[j2] = seed[j2]); } } }); }); } function testContext(context) { return context && typeof context.getElementsByTagName !== "undefined" && context; } support2 = Sizzle2.support = {}; isXML = Sizzle2.isXML = function(elem) { var documentElement2 = elem && (elem.ownerDocument || elem).documentElement; return documentElement2 ? documentElement2.nodeName !== "HTML" : false; }; setDocument = Sizzle2.setDocument = function(node) { var hasCompare, parent2, doc = node ? node.ownerDocument || node : preferredDoc; if (doc === document3 || doc.nodeType !== 9 || !doc.documentElement) { return document3; } document3 = doc; docElem = document3.documentElement; documentIsHTML = !isXML(document3); if ((parent2 = document3.defaultView) && parent2.top !== parent2) { if (parent2.addEventListener) { parent2.addEventListener("unload", unloadHandler, false); } else if (parent2.attachEvent) { parent2.attachEvent("onunload", unloadHandler); } } support2.attributes = assert(function(div) { div.className = "i"; return !div.getAttribute("className"); }); support2.getElementsByTagName = assert(function(div) { div.appendChild(document3.createComment("")); return !div.getElementsByTagName("*").length; }); support2.getElementsByClassName = rnative.test(document3.getElementsByClassName); support2.getById = assert(function(div) { docElem.appendChild(div).id = expando; return !document3.getElementsByName || !document3.getElementsByName(expando).length; }); if (support2.getById) { Expr.find["ID"] = function(id, context) { if (typeof context.getElementById !== "undefined" && documentIsHTML) { var m2 = context.getElementById(id); return m2 ? [m2] : []; } }; Expr.filter["ID"] = function(id) { var attrId = id.replace(runescape, funescape); return function(elem) { return elem.getAttribute("id") === attrId; }; }; } else { delete Expr.find["ID"]; Expr.filter["ID"] = function(id) { var attrId = id.replace(runescape, funescape); return function(elem) { var node2 = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); return node2 && node2.value === attrId; }; }; } Expr.find["TAG"] = support2.getElementsByTagName ? function(tag2, context) { if (typeof context.getElementsByTagName !== "undefined") { return context.getElementsByTagName(tag2); } else if (support2.qsa) { return context.querySelectorAll(tag2); } } : function(tag2, context) { var elem, tmp = [], i3 = 0, results = context.getElementsByTagName(tag2); if (tag2 === "*") { while (elem = results[i3++]) { if (elem.nodeType === 1) { tmp.push(elem); } } return tmp; } return results; }; Expr.find["CLASS"] = support2.getElementsByClassName && function(className, context) { if (typeof context.getElementsByClassName !== "undefined" && documentIsHTML) { return context.getElementsByClassName(className); } }; rbuggyMatches = []; rbuggyQSA = []; if (support2.qsa = rnative.test(document3.querySelectorAll)) { assert(function(div) { docElem.appendChild(div).innerHTML = ""; if (div.querySelectorAll("[msallowcapture^='']").length) { rbuggyQSA.push("[*^$]=" + whitespace + `*(?:''|"")`); } if (!div.querySelectorAll("[selected]").length) { rbuggyQSA.push("\\[" + whitespace + "*(?:value|" + booleans + ")"); } if (!div.querySelectorAll("[id~=" + expando + "-]").length) { rbuggyQSA.push("~="); } if (!div.querySelectorAll(":checked").length) { rbuggyQSA.push(":checked"); } if (!div.querySelectorAll("a#" + expando + "+*").length) { rbuggyQSA.push(".#.+[+~]"); } }); assert(function(div) { var input = document3.createElement("input"); input.setAttribute("type", "hidden"); div.appendChild(input).setAttribute("name", "D"); if (div.querySelectorAll("[name=d]").length) { rbuggyQSA.push("name" + whitespace + "*[*^$|!~]?="); } if (!div.querySelectorAll(":enabled").length) { rbuggyQSA.push(":enabled", ":disabled"); } div.querySelectorAll("*,:x"); rbuggyQSA.push(",.*:"); }); } if (support2.matchesSelector = rnative.test(matches2 = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) { assert(function(div) { support2.disconnectedMatch = matches2.call(div, "div"); matches2.call(div, "[s!='']:x"); rbuggyMatches.push("!=", pseudos); }); } rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join("|")); rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join("|")); hasCompare = rnative.test(docElem.compareDocumentPosition); contains = hasCompare || rnative.test(docElem.contains) ? function(a2, b2) { var adown = a2.nodeType === 9 ? a2.documentElement : a2, bup = b2 && b2.parentNode; return a2 === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a2.compareDocumentPosition && a2.compareDocumentPosition(bup) & 16)); } : function(a2, b2) { if (b2) { while (b2 = b2.parentNode) { if (b2 === a2) { return true; } } } return false; }; sortOrder = hasCompare ? function(a2, b2) { if (a2 === b2) { hasDuplicate = true; return 0; } var compare2 = !a2.compareDocumentPosition - !b2.compareDocumentPosition; if (compare2) { return compare2; } compare2 = (a2.ownerDocument || a2) === (b2.ownerDocument || b2) ? a2.compareDocumentPosition(b2) : ( // Otherwise we know they are disconnected 1 ); if (compare2 & 1 || !support2.sortDetached && b2.compareDocumentPosition(a2) === compare2) { if (a2 === document3 || a2.ownerDocument === preferredDoc && contains(preferredDoc, a2)) { return -1; } if (b2 === document3 || b2.ownerDocument === preferredDoc && contains(preferredDoc, b2)) { return 1; } return sortInput ? indexOf3(sortInput, a2) - indexOf3(sortInput, b2) : 0; } return compare2 & 4 ? -1 : 1; } : function(a2, b2) { if (a2 === b2) { hasDuplicate = true; return 0; } var cur, i3 = 0, aup = a2.parentNode, bup = b2.parentNode, ap = [a2], bp = [b2]; if (!aup || !bup) { return a2 === document3 ? -1 : b2 === document3 ? 1 : aup ? -1 : bup ? 1 : sortInput ? indexOf3(sortInput, a2) - indexOf3(sortInput, b2) : 0; } else if (aup === bup) { return siblingCheck(a2, b2); } cur = a2; while (cur = cur.parentNode) { ap.unshift(cur); } cur = b2; while (cur = cur.parentNode) { bp.unshift(cur); } while (ap[i3] === bp[i3]) { i3++; } return i3 ? ( // Do a sibling check if the nodes have a common ancestor siblingCheck(ap[i3], bp[i3]) ) : ( // Otherwise nodes in our document sort first ap[i3] === preferredDoc ? -1 : bp[i3] === preferredDoc ? 1 : 0 ); }; return document3; }; Sizzle2.matches = function(expr, elements2) { return Sizzle2(expr, null, null, elements2); }; Sizzle2.matchesSelector = function(elem, expr) { if ((elem.ownerDocument || elem) !== document3) { setDocument(elem); } expr = expr.replace(rattributeQuotes, "='$1']"); if (support2.matchesSelector && documentIsHTML && !compilerCache[expr + " "] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) { try { var ret = matches2.call(elem, expr); if (ret || support2.disconnectedMatch || // As well, disconnected nodes are said to be in a document // fragment in IE 9 elem.document && elem.document.nodeType !== 11) { return ret; } } catch (e) { } } return Sizzle2(expr, document3, null, [elem]).length > 0; }; Sizzle2.contains = function(context, elem) { if ((context.ownerDocument || context) !== document3) { setDocument(context); } return contains(context, elem); }; Sizzle2.attr = function(elem, name) { if ((elem.ownerDocument || elem) !== document3) { setDocument(elem); } var fn = Expr.attrHandle[name.toLowerCase()], val = fn && hasOwn2.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : void 0; return val !== void 0 ? val : support2.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null; }; Sizzle2.error = function(msg) { throw new Error("Syntax error, unrecognized expression: " + msg); }; Sizzle2.uniqueSort = function(results) { var elem, duplicates = [], j2 = 0, i3 = 0; hasDuplicate = !support2.detectDuplicates; sortInput = !support2.sortStable && results.slice(0); results.sort(sortOrder); if (hasDuplicate) { while (elem = results[i3++]) { if (elem === results[i3]) { j2 = duplicates.push(i3); } } while (j2--) { results.splice(duplicates[j2], 1); } } sortInput = null; return results; }; getText = Sizzle2.getText = function(elem) { var node, ret = "", i3 = 0, nodeType = elem.nodeType; if (!nodeType) { while (node = elem[i3++]) { ret += getText(node); } } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) { if (typeof elem.textContent === "string") { return elem.textContent; } else { for (elem = elem.firstChild; elem; elem = elem.nextSibling) { ret += getText(elem); } } } else if (nodeType === 3 || nodeType === 4) { return elem.nodeValue; } return ret; }; Expr = Sizzle2.selectors = { // Can be adjusted by the user cacheLength: 50, createPseudo: markFunction, match: matchExpr, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: true }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: true }, "~": { dir: "previousSibling" } }, preFilter: { "ATTR": function(match) { match[1] = match[1].replace(runescape, funescape); match[3] = (match[3] || match[4] || match[5] || "").replace(runescape, funescape); if (match[2] === "~=") { match[3] = " " + match[3] + " "; } return match.slice(0, 4); }, "CHILD": function(match) { match[1] = match[1].toLowerCase(); if (match[1].slice(0, 3) === "nth") { if (!match[3]) { Sizzle2.error(match[0]); } match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === "even" || match[3] === "odd")); match[5] = +(match[7] + match[8] || match[3] === "odd"); } else if (match[3]) { Sizzle2.error(match[0]); } return match; }, "PSEUDO": function(match) { var excess, unquoted = !match[6] && match[2]; if (matchExpr["CHILD"].test(match[0])) { return null; } if (match[3]) { match[2] = match[4] || match[5] || ""; } else if (unquoted && rpseudo.test(unquoted) && // Get excess from tokenize (recursively) (excess = tokenize(unquoted, true)) && // advance to the next closing parenthesis (excess = unquoted.indexOf(")", unquoted.length - excess) - unquoted.length)) { match[0] = match[0].slice(0, excess); match[2] = unquoted.slice(0, excess); } return match.slice(0, 3); } }, filter: { "TAG": function(nodeNameSelector) { var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase(); return nodeNameSelector === "*" ? function() { return true; } : function(elem) { return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; }; }, "CLASS": function(className) { var pattern = classCache[className + " "]; return pattern || (pattern = new RegExp("(^|" + whitespace + ")" + className + "(" + whitespace + "|$)")) && classCache(className, function(elem) { return pattern.test(typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || ""); }); }, "ATTR": function(name, operator, check2) { return function(elem) { var result3 = Sizzle2.attr(elem, name); if (result3 == null) { return operator === "!="; } if (!operator) { return true; } result3 += ""; return operator === "=" ? result3 === check2 : operator === "!=" ? result3 !== check2 : operator === "^=" ? check2 && result3.indexOf(check2) === 0 : operator === "*=" ? check2 && result3.indexOf(check2) > -1 : operator === "$=" ? check2 && result3.slice(-check2.length) === check2 : operator === "~=" ? (" " + result3.replace(rwhitespace, " ") + " ").indexOf(check2) > -1 : operator === "|=" ? result3 === check2 || result3.slice(0, check2.length + 1) === check2 + "-" : false; }; }, "CHILD": function(type, what, argument, first, last2) { var simple = type.slice(0, 3) !== "nth", forward = type.slice(-4) !== "last", ofType = what === "of-type"; return first === 1 && last2 === 0 ? ( // Shortcut for :nth-*(n) function(elem) { return !!elem.parentNode; } ) : function(elem, context, xml) { var cache, uniqueCache, outerCache, node, nodeIndex, start, dir2 = simple !== forward ? "nextSibling" : "previousSibling", parent2 = elem.parentNode, name = ofType && elem.nodeName.toLowerCase(), useCache = !xml && !ofType, diff = false; if (parent2) { if (simple) { while (dir2) { node = elem; while (node = node[dir2]) { if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) { return false; } } start = dir2 = type === "only" && !start && "nextSibling"; } return true; } start = [forward ? parent2.firstChild : parent2.lastChild]; if (forward && useCache) { node = parent2; outerCache = node[expando] || (node[expando] = {}); uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {}); cache = uniqueCache[type] || []; nodeIndex = cache[0] === dirruns && cache[1]; diff = nodeIndex && cache[2]; node = nodeIndex && parent2.childNodes[nodeIndex]; while (node = ++nodeIndex && node && node[dir2] || // Fallback to seeking `elem` from the start (diff = nodeIndex = 0) || start.pop()) { if (node.nodeType === 1 && ++diff && node === elem) { uniqueCache[type] = [dirruns, nodeIndex, diff]; break; } } } else { if (useCache) { node = elem; outerCache = node[expando] || (node[expando] = {}); uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {}); cache = uniqueCache[type] || []; nodeIndex = cache[0] === dirruns && cache[1]; diff = nodeIndex; } if (diff === false) { while (node = ++nodeIndex && node && node[dir2] || (diff = nodeIndex = 0) || start.pop()) { if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) { if (useCache) { outerCache = node[expando] || (node[expando] = {}); uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {}); uniqueCache[type] = [dirruns, diff]; } if (node === elem) { break; } } } } } diff -= last2; return diff === first || diff % first === 0 && diff / first >= 0; } }; }, "PSEUDO": function(pseudo, argument) { var args, fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle2.error("unsupported pseudo: " + pseudo); if (fn[expando]) { return fn(argument); } if (fn.length > 1) { args = [pseudo, pseudo, "", argument]; return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function(seed, matches3) { var idx, matched = fn(seed, argument), i3 = matched.length; while (i3--) { idx = indexOf3(seed, matched[i3]); seed[idx] = !(matches3[idx] = matched[i3]); } }) : function(elem) { return fn(elem, 0, args); }; } return fn; } }, pseudos: { // Potentially complex pseudos "not": markFunction(function(selector) { var input = [], results = [], matcher = compile(selector.replace(rtrim2, "$1")); return matcher[expando] ? markFunction(function(seed, matches3, context, xml) { var elem, unmatched = matcher(seed, null, xml, []), i3 = seed.length; while (i3--) { if (elem = unmatched[i3]) { seed[i3] = !(matches3[i3] = elem); } } }) : function(elem, context, xml) { input[0] = elem; matcher(input, null, xml, results); input[0] = null; return !results.pop(); }; }), "has": markFunction(function(selector) { return function(elem) { return Sizzle2(selector, elem).length > 0; }; }), "contains": markFunction(function(text2) { text2 = text2.replace(runescape, funescape); return function(elem) { return (elem.textContent || elem.innerText || getText(elem)).indexOf(text2) > -1; }; }), // "Whether an element is represented by a :lang() selector // is based solely on the element's language value // being equal to the identifier C, // or beginning with the identifier C immediately followed by "-". // The matching of C against the element's language value is performed case-insensitively. // The identifier C does not have to be a valid language name." // http://www.w3.org/TR/selectors/#lang-pseudo "lang": markFunction(function(lang) { if (!ridentifier.test(lang || "")) { Sizzle2.error("unsupported lang: " + lang); } lang = lang.replace(runescape, funescape).toLowerCase(); return function(elem) { var elemLang; do { if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute("xml:lang") || elem.getAttribute("lang")) { elemLang = elemLang.toLowerCase(); return elemLang === lang || elemLang.indexOf(lang + "-") === 0; } } while ((elem = elem.parentNode) && elem.nodeType === 1); return false; }; }), // Miscellaneous "target": function(elem) { var hash2 = window3.location && window3.location.hash; return hash2 && hash2.slice(1) === elem.id; }, "root": function(elem) { return elem === docElem; }, "focus": function(elem) { return elem === document3.activeElement && (!document3.hasFocus || document3.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); }, // Boolean properties "enabled": function(elem) { return elem.disabled === false; }, "disabled": function(elem) { return elem.disabled === true; }, "checked": function(elem) { var nodeName = elem.nodeName.toLowerCase(); return nodeName === "input" && !!elem.checked || nodeName === "option" && !!elem.selected; }, "selected": function(elem) { if (elem.parentNode) { elem.parentNode.selectedIndex; } return elem.selected === true; }, // Contents "empty": function(elem) { for (elem = elem.firstChild; elem; elem = elem.nextSibling) { if (elem.nodeType < 6) { return false; } } return true; }, "parent": function(elem) { return !Expr.pseudos["empty"](elem); }, // Element/input types "header": function(elem) { return rheader.test(elem.nodeName); }, "input": function(elem) { return rinputs.test(elem.nodeName); }, "button": function(elem) { var name = elem.nodeName.toLowerCase(); return name === "input" && elem.type === "button" || name === "button"; }, "text": function(elem) { var attr3; return elem.nodeName.toLowerCase() === "input" && elem.type === "text" && // Support: IE<8 // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" ((attr3 = elem.getAttribute("type")) == null || attr3.toLowerCase() === "text"); }, // Position-in-collection "first": createPositionalPseudo(function() { return [0]; }), "last": createPositionalPseudo(function(matchIndexes, length) { return [length - 1]; }), "eq": createPositionalPseudo(function(matchIndexes, length, argument) { return [argument < 0 ? argument + length : argument]; }), "even": createPositionalPseudo(function(matchIndexes, length) { var i3 = 0; for (; i3 < length; i3 += 2) { matchIndexes.push(i3); } return matchIndexes; }), "odd": createPositionalPseudo(function(matchIndexes, length) { var i3 = 1; for (; i3 < length; i3 += 2) { matchIndexes.push(i3); } return matchIndexes; }), "lt": createPositionalPseudo(function(matchIndexes, length, argument) { var i3 = argument < 0 ? argument + length : argument; for (; --i3 >= 0; ) { matchIndexes.push(i3); } return matchIndexes; }), "gt": createPositionalPseudo(function(matchIndexes, length, argument) { var i3 = argument < 0 ? argument + length : argument; for (; ++i3 < length; ) { matchIndexes.push(i3); } return matchIndexes; }) } }; Expr.pseudos["nth"] = Expr.pseudos["eq"]; for (i2 in { radio: true, checkbox: true, file: true, password: true, image: true }) { Expr.pseudos[i2] = createInputPseudo(i2); } for (i2 in { submit: true, reset: true }) { Expr.pseudos[i2] = createButtonPseudo(i2); } function setFilters() { } setFilters.prototype = Expr.filters = Expr.pseudos; Expr.setFilters = new setFilters(); tokenize = Sizzle2.tokenize = function(selector, parseOnly) { var matched, match, tokens, type, soFar, groups, preFilters, cached = tokenCache[selector + " "]; if (cached) { return parseOnly ? 0 : cached.slice(0); } soFar = selector; groups = []; preFilters = Expr.preFilter; while (soFar) { if (!matched || (match = rcomma.exec(soFar))) { if (match) { soFar = soFar.slice(match[0].length) || soFar; } groups.push(tokens = []); } matched = false; if (match = rcombinators.exec(soFar)) { matched = match.shift(); tokens.push({ value: matched, // Cast descendant combinators to space type: match[0].replace(rtrim2, " ") }); soFar = soFar.slice(matched.length); } for (type in Expr.filter) { if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) { matched = match.shift(); tokens.push({ value: matched, type, matches: match }); soFar = soFar.slice(matched.length); } } if (!matched) { break; } } return parseOnly ? soFar.length : soFar ? Sizzle2.error(selector) : ( // Cache the tokens tokenCache(selector, groups).slice(0) ); }; function toSelector(tokens) { var i3 = 0, len = tokens.length, selector = ""; for (; i3 < len; i3++) { selector += tokens[i3].value; } return selector; } function addCombinator(matcher, combinator, base) { var dir2 = combinator.dir, checkNonElements = base && dir2 === "parentNode", doneName = done++; return combinator.first ? ( // Check against closest ancestor/preceding element function(elem, context, xml) { while (elem = elem[dir2]) { if (elem.nodeType === 1 || checkNonElements) { return matcher(elem, context, xml); } } } ) : ( // Check against all ancestor/preceding elements function(elem, context, xml) { var oldCache, uniqueCache, outerCache, newCache = [dirruns, doneName]; if (xml) { while (elem = elem[dir2]) { if (elem.nodeType === 1 || checkNonElements) { if (matcher(elem, context, xml)) { return true; } } } } else { while (elem = elem[dir2]) { if (elem.nodeType === 1 || checkNonElements) { outerCache = elem[expando] || (elem[expando] = {}); uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {}); if ((oldCache = uniqueCache[dir2]) && oldCache[0] === dirruns && oldCache[1] === doneName) { return newCache[2] = oldCache[2]; } else { uniqueCache[dir2] = newCache; if (newCache[2] = matcher(elem, context, xml)) { return true; } } } } } } ); } function elementMatcher(matchers) { return matchers.length > 1 ? function(elem, context, xml) { var i3 = matchers.length; while (i3--) { if (!matchers[i3](elem, context, xml)) { return false; } } return true; } : matchers[0]; } function multipleContexts(selector, contexts, results) { var i3 = 0, len = contexts.length; for (; i3 < len; i3++) { Sizzle2(selector, contexts[i3], results); } return results; } function condense(unmatched, map5, filter2, context, xml) { var elem, newUnmatched = [], i3 = 0, len = unmatched.length, mapped = map5 != null; for (; i3 < len; i3++) { if (elem = unmatched[i3]) { if (!filter2 || filter2(elem, context, xml)) { newUnmatched.push(elem); if (mapped) { map5.push(i3); } } } } return newUnmatched; } function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) { if (postFilter && !postFilter[expando]) { postFilter = setMatcher(postFilter); } if (postFinder && !postFinder[expando]) { postFinder = setMatcher(postFinder, postSelector); } return markFunction(function(seed, results, context, xml) { var temp, i3, elem, preMap = [], postMap = [], preexisting = results.length, elems = seed || multipleContexts(selector || "*", context.nodeType ? [context] : context, []), matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems, matcherOut = matcher ? ( // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, postFinder || (seed ? preFilter : preexisting || postFilter) ? ( // ...intermediate processing is necessary [] ) : ( // ...otherwise use results directly results ) ) : matcherIn; if (matcher) { matcher(matcherIn, matcherOut, context, xml); } if (postFilter) { temp = condense(matcherOut, postMap); postFilter(temp, [], context, xml); i3 = temp.length; while (i3--) { if (elem = temp[i3]) { matcherOut[postMap[i3]] = !(matcherIn[postMap[i3]] = elem); } } } if (seed) { if (postFinder || preFilter) { if (postFinder) { temp = []; i3 = matcherOut.length; while (i3--) { if (elem = matcherOut[i3]) { temp.push(matcherIn[i3] = elem); } } postFinder(null, matcherOut = [], temp, xml); } i3 = matcherOut.length; while (i3--) { if ((elem = matcherOut[i3]) && (temp = postFinder ? indexOf3(seed, elem) : preMap[i3]) > -1) { seed[temp] = !(results[temp] = elem); } } } } else { matcherOut = condense( matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut ); if (postFinder) { postFinder(null, results, matcherOut, xml); } else { push2.apply(results, matcherOut); } } }); } function matcherFromTokens(tokens) { var checkContext, matcher, j2, len = tokens.length, leadingRelative = Expr.relative[tokens[0].type], implicitRelative = leadingRelative || Expr.relative[" "], i3 = leadingRelative ? 1 : 0, matchContext = addCombinator(function(elem) { return elem === checkContext; }, implicitRelative, true), matchAnyContext = addCombinator(function(elem) { return indexOf3(checkContext, elem) > -1; }, implicitRelative, true), matchers = [function(elem, context, xml) { var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); checkContext = null; return ret; }]; for (; i3 < len; i3++) { if (matcher = Expr.relative[tokens[i3].type]) { matchers = [addCombinator(elementMatcher(matchers), matcher)]; } else { matcher = Expr.filter[tokens[i3].type].apply(null, tokens[i3].matches); if (matcher[expando]) { j2 = ++i3; for (; j2 < len; j2++) { if (Expr.relative[tokens[j2].type]) { break; } } return setMatcher( i3 > 1 && elementMatcher(matchers), i3 > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*` tokens.slice(0, i3 - 1).concat({ value: tokens[i3 - 2].type === " " ? "*" : "" }) ).replace(rtrim2, "$1"), matcher, i3 < j2 && matcherFromTokens(tokens.slice(i3, j2)), j2 < len && matcherFromTokens(tokens = tokens.slice(j2)), j2 < len && toSelector(tokens) ); } matchers.push(matcher); } } return elementMatcher(matchers); } function matcherFromGroupMatchers(elementMatchers, setMatchers) { var bySet = setMatchers.length > 0, byElement = elementMatchers.length > 0, superMatcher = function(seed, context, xml, results, outermost) { var elem, j2, matcher, matchedCount = 0, i3 = "0", unmatched = seed && [], setMatched = [], contextBackup = outermostContext, elems = seed || byElement && Expr.find["TAG"]("*", outermost), dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1, len = elems.length; if (outermost) { outermostContext = context === document3 || context || outermost; } for (; i3 !== len && (elem = elems[i3]) != null; i3++) { if (byElement && elem) { j2 = 0; if (!context && elem.ownerDocument !== document3) { setDocument(elem); xml = !documentIsHTML; } while (matcher = elementMatchers[j2++]) { if (matcher(elem, context || document3, xml)) { results.push(elem); break; } } if (outermost) { dirruns = dirrunsUnique; } } if (bySet) { if (elem = !matcher && elem) { matchedCount--; } if (seed) { unmatched.push(elem); } } } matchedCount += i3; if (bySet && i3 !== matchedCount) { j2 = 0; while (matcher = setMatchers[j2++]) { matcher(unmatched, setMatched, context, xml); } if (seed) { if (matchedCount > 0) { while (i3--) { if (!(unmatched[i3] || setMatched[i3])) { setMatched[i3] = pop.call(results); } } } setMatched = condense(setMatched); } push2.apply(results, setMatched); if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) { Sizzle2.uniqueSort(results); } } if (outermost) { dirruns = dirrunsUnique; outermostContext = contextBackup; } return unmatched; }; return bySet ? markFunction(superMatcher) : superMatcher; } compile = Sizzle2.compile = function(selector, match) { var i3, setMatchers = [], elementMatchers = [], cached = compilerCache[selector + " "]; if (!cached) { if (!match) { match = tokenize(selector); } i3 = match.length; while (i3--) { cached = matcherFromTokens(match[i3]); if (cached[expando]) { setMatchers.push(cached); } else { elementMatchers.push(cached); } } cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); cached.selector = selector; } return cached; }; select = Sizzle2.select = function(selector, context, results, seed) { var i3, tokens, token, type, find2, compiled = typeof selector === "function" && selector, match = !seed && tokenize(selector = compiled.selector || selector); results = results || []; if (match.length === 1) { tokens = match[0] = match[0].slice(0); if (tokens.length > 2 && (token = tokens[0]).type === "ID" && support2.getById && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) { context = (Expr.find["ID"](token.matches[0].replace(runescape, funescape), context) || [])[0]; if (!context) { return results; } else if (compiled) { context = context.parentNode; } selector = selector.slice(tokens.shift().value.length); } i3 = matchExpr["needsContext"].test(selector) ? 0 : tokens.length; while (i3--) { token = tokens[i3]; if (Expr.relative[type = token.type]) { break; } if (find2 = Expr.find[type]) { if (seed = find2( token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context )) { tokens.splice(i3, 1); selector = seed.length && toSelector(tokens); if (!selector) { push2.apply(results, seed); return results; } break; } } } } (compiled || compile(selector, match))( seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context ); return results; }; support2.sortStable = expando.split("").sort(sortOrder).join("") === expando; support2.detectDuplicates = !!hasDuplicate; setDocument(); support2.sortDetached = assert(function(div1) { return div1.compareDocumentPosition(document3.createElement("div")) & 1; }); if (!assert(function(div) { div.innerHTML = ""; return div.firstChild.getAttribute("href") === "#"; })) { addHandle("type|href|height|width", function(elem, name, isXML2) { if (!isXML2) { return elem.getAttribute(name, name.toLowerCase() === "type" ? 1 : 2); } }); } if (!support2.attributes || !assert(function(div) { div.innerHTML = ""; div.firstChild.setAttribute("value", ""); return div.firstChild.getAttribute("value") === ""; })) { addHandle("value", function(elem, name, isXML2) { if (!isXML2 && elem.nodeName.toLowerCase() === "input") { return elem.defaultValue; } }); } if (!assert(function(div) { return div.getAttribute("disabled") == null; })) { addHandle(booleans, function(elem, name, isXML2) { var val; if (!isXML2) { return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null; } }); } return Sizzle2; }(window2) ); jQuery2.find = Sizzle; jQuery2.expr = Sizzle.selectors; jQuery2.expr[":"] = jQuery2.expr.pseudos; jQuery2.uniqueSort = jQuery2.unique = Sizzle.uniqueSort; jQuery2.text = Sizzle.getText; jQuery2.isXMLDoc = Sizzle.isXML; jQuery2.contains = Sizzle.contains; var dir = function(elem, dir2, until) { var matched = [], truncate2 = until !== void 0; while ((elem = elem[dir2]) && elem.nodeType !== 9) { if (elem.nodeType === 1) { if (truncate2 && jQuery2(elem).is(until)) { break; } matched.push(elem); } } return matched; }; var siblings = function(n, elem) { var matched = []; for (; n; n = n.nextSibling) { if (n.nodeType === 1 && n !== elem) { matched.push(n); } } return matched; }; var rneedsContext = jQuery2.expr.match.needsContext; var rsingleTag = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/; var risSimple = /^.[^:#\[\.,]*$/; function winnow(elements2, qualifier, not) { if (jQuery2.isFunction(qualifier)) { return jQuery2.grep(elements2, function(elem, i2) { return !!qualifier.call(elem, i2, elem) !== not; }); } if (qualifier.nodeType) { return jQuery2.grep(elements2, function(elem) { return elem === qualifier !== not; }); } if (typeof qualifier === "string") { if (risSimple.test(qualifier)) { return jQuery2.filter(qualifier, elements2, not); } qualifier = jQuery2.filter(qualifier, elements2); } return jQuery2.grep(elements2, function(elem) { return indexOf2.call(qualifier, elem) > -1 !== not; }); } jQuery2.filter = function(expr, elems, not) { var elem = elems[0]; if (not) { expr = ":not(" + expr + ")"; } return elems.length === 1 && elem.nodeType === 1 ? jQuery2.find.matchesSelector(elem, expr) ? [elem] : [] : jQuery2.find.matches(expr, jQuery2.grep(elems, function(elem2) { return elem2.nodeType === 1; })); }; jQuery2.fn.extend({ find: function(selector) { var i2, len = this.length, ret = [], self2 = this; if (typeof selector !== "string") { return this.pushStack(jQuery2(selector).filter(function() { for (i2 = 0; i2 < len; i2++) { if (jQuery2.contains(self2[i2], this)) { return true; } } })); } for (i2 = 0; i2 < len; i2++) { jQuery2.find(selector, self2[i2], ret); } ret = this.pushStack(len > 1 ? jQuery2.unique(ret) : ret); ret.selector = this.selector ? this.selector + " " + selector : selector; return ret; }, filter: function(selector) { return this.pushStack(winnow(this, selector || [], false)); }, not: function(selector) { return this.pushStack(winnow(this, selector || [], true)); }, is: function(selector) { return !!winnow( this, // If this is a positional/relative selector, check membership in the returned set // so $("p:first").is("p:last") won't return true for a doc with two "p". typeof selector === "string" && rneedsContext.test(selector) ? jQuery2(selector) : selector || [], false ).length; } }); var rootjQuery, rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, init3 = jQuery2.fn.init = function(selector, context, root2) { var match, elem; if (!selector) { return this; } root2 = root2 || rootjQuery; if (typeof selector === "string") { if (selector[0] === "<" && selector[selector.length - 1] === ">" && selector.length >= 3) { match = [null, selector, null]; } else { match = rquickExpr.exec(selector); } if (match && (match[1] || !context)) { if (match[1]) { context = context instanceof jQuery2 ? context[0] : context; jQuery2.merge(this, jQuery2.parseHTML( match[1], context && context.nodeType ? context.ownerDocument || context : document2, true )); if (rsingleTag.test(match[1]) && jQuery2.isPlainObject(context)) { for (match in context) { if (jQuery2.isFunction(this[match])) { this[match](context[match]); } else { this.attr(match, context[match]); } } } return this; } else { elem = document2.getElementById(match[2]); if (elem && elem.parentNode) { this.length = 1; this[0] = elem; } this.context = document2; this.selector = selector; return this; } } else if (!context || context.jquery) { return (context || root2).find(selector); } else { return this.constructor(context).find(selector); } } else if (selector.nodeType) { this.context = this[0] = selector; this.length = 1; return this; } else if (jQuery2.isFunction(selector)) { return root2.ready !== void 0 ? root2.ready(selector) : ( // Execute immediately if ready is not present selector(jQuery2) ); } if (selector.selector !== void 0) { this.selector = selector.selector; this.context = selector.context; } return jQuery2.makeArray(selector, this); }; init3.prototype = jQuery2.fn; rootjQuery = jQuery2(document2); var rparentsprev = /^(?:parents|prev(?:Until|All))/, guaranteedUnique = { children: true, contents: true, next: true, prev: true }; jQuery2.fn.extend({ has: function(target) { var targets = jQuery2(target, this), l2 = targets.length; return this.filter(function() { var i2 = 0; for (; i2 < l2; i2++) { if (jQuery2.contains(this, targets[i2])) { return true; } } }); }, closest: function(selectors, context) { var cur, i2 = 0, l2 = this.length, matched = [], pos = rneedsContext.test(selectors) || typeof selectors !== "string" ? jQuery2(selectors, context || this.context) : 0; for (; i2 < l2; i2++) { for (cur = this[i2]; cur && cur !== context; cur = cur.parentNode) { if (cur.nodeType < 11 && (pos ? pos.index(cur) > -1 : ( // Don't pass non-elements to Sizzle cur.nodeType === 1 && jQuery2.find.matchesSelector(cur, selectors) ))) { matched.push(cur); break; } } } return this.pushStack(matched.length > 1 ? jQuery2.uniqueSort(matched) : matched); }, // Determine the position of an element within the set index: function(elem) { if (!elem) { return this[0] && this[0].parentNode ? this.first().prevAll().length : -1; } if (typeof elem === "string") { return indexOf2.call(jQuery2(elem), this[0]); } return indexOf2.call( this, // If it receives a jQuery object, the first element is used elem.jquery ? elem[0] : elem ); }, add: function(selector, context) { return this.pushStack( jQuery2.uniqueSort( jQuery2.merge(this.get(), jQuery2(selector, context)) ) ); }, addBack: function(selector) { return this.add( selector == null ? this.prevObject : this.prevObject.filter(selector) ); } }); function sibling(cur, dir2) { while ((cur = cur[dir2]) && cur.nodeType !== 1) { } return cur; } jQuery2.each({ parent: function(elem) { var parent2 = elem.parentNode; return parent2 && parent2.nodeType !== 11 ? parent2 : null; }, parents: function(elem) { return dir(elem, "parentNode"); }, parentsUntil: function(elem, i2, until) { return dir(elem, "parentNode", until); }, next: function(elem) { return sibling(elem, "nextSibling"); }, prev: function(elem) { return sibling(elem, "previousSibling"); }, nextAll: function(elem) { return dir(elem, "nextSibling"); }, prevAll: function(elem) { return dir(elem, "previousSibling"); }, nextUntil: function(elem, i2, until) { return dir(elem, "nextSibling", until); }, prevUntil: function(elem, i2, until) { return dir(elem, "previousSibling", until); }, siblings: function(elem) { return siblings((elem.parentNode || {}).firstChild, elem); }, children: function(elem) { return siblings(elem.firstChild); }, contents: function(elem) { return elem.contentDocument || jQuery2.merge([], elem.childNodes); } }, function(name, fn) { jQuery2.fn[name] = function(until, selector) { var matched = jQuery2.map(this, fn, until); if (name.slice(-5) !== "Until") { selector = until; } if (selector && typeof selector === "string") { matched = jQuery2.filter(selector, matched); } if (this.length > 1) { if (!guaranteedUnique[name]) { jQuery2.uniqueSort(matched); } if (rparentsprev.test(name)) { matched.reverse(); } } return this.pushStack(matched); }; }); var rnotwhite = /\S+/g; function createOptions(options) { var object = {}; jQuery2.each(options.match(rnotwhite) || [], function(_2, flag) { object[flag] = true; }); return object; } jQuery2.Callbacks = function(options) { options = typeof options === "string" ? createOptions(options) : jQuery2.extend({}, options); var firing, memory, fired, locked, list = [], queue = [], firingIndex = -1, fire = function() { locked = options.once; fired = firing = true; for (; queue.length; firingIndex = -1) { memory = queue.shift(); while (++firingIndex < list.length) { if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) { firingIndex = list.length; memory = false; } } } if (!options.memory) { memory = false; } firing = false; if (locked) { if (memory) { list = []; } else { list = ""; } } }, self2 = { // Add a callback or a collection of callbacks to the list add: function() { if (list) { if (memory && !firing) { firingIndex = list.length - 1; queue.push(memory); } (function add2(args) { jQuery2.each(args, function(_2, arg) { if (jQuery2.isFunction(arg)) { if (!options.unique || !self2.has(arg)) { list.push(arg); } } else if (arg && arg.length && jQuery2.type(arg) !== "string") { add2(arg); } }); })(arguments); if (memory && !firing) { fire(); } } return this; }, // Remove a callback from the list remove: function() { jQuery2.each(arguments, function(_2, arg) { var index2; while ((index2 = jQuery2.inArray(arg, list, index2)) > -1) { list.splice(index2, 1); if (index2 <= firingIndex) { firingIndex--; } } }); return this; }, // Check if a given callback is in the list. // If no argument is given, return whether or not list has callbacks attached. has: function(fn) { return fn ? jQuery2.inArray(fn, list) > -1 : list.length > 0; }, // Remove all callbacks from the list empty: function() { if (list) { list = []; } return this; }, // Disable .fire and .add // Abort any current/pending executions // Clear all callbacks and values disable: function() { locked = queue = []; list = memory = ""; return this; }, disabled: function() { return !list; }, // Disable .fire // Also disable .add unless we have memory (since it would have no effect) // Abort any pending executions lock: function() { locked = queue = []; if (!memory) { list = memory = ""; } return this; }, locked: function() { return !!locked; }, // Call all callbacks with the given context and arguments fireWith: function(context, args) { if (!locked) { args = args || []; args = [context, args.slice ? args.slice() : args]; queue.push(args); if (!firing) { fire(); } } return this; }, // Call all the callbacks with the given arguments fire: function() { self2.fireWith(this, arguments); return this; }, // To know if the callbacks have already been called at least once fired: function() { return !!fired; } }; return self2; }; jQuery2.extend({ Deferred: function(func) { var tuples = [ // action, add listener, listener list, final state ["resolve", "done", jQuery2.Callbacks("once memory"), "resolved"], ["reject", "fail", jQuery2.Callbacks("once memory"), "rejected"], ["notify", "progress", jQuery2.Callbacks("memory")] ], state = "pending", promise2 = { state: function() { return state; }, always: function() { deferred.done(arguments).fail(arguments); return this; }, then: function() { var fns = arguments; return jQuery2.Deferred(function(newDefer) { jQuery2.each(tuples, function(i2, tuple) { var fn = jQuery2.isFunction(fns[i2]) && fns[i2]; deferred[tuple[1]](function() { var returned = fn && fn.apply(this, arguments); if (returned && jQuery2.isFunction(returned.promise)) { returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject); } else { newDefer[tuple[0] + "With"]( this === promise2 ? newDefer.promise() : this, fn ? [returned] : arguments ); } }); }); fns = null; }).promise(); }, // Get a promise for this deferred // If obj is provided, the promise aspect is added to the object promise: function(obj) { return obj != null ? jQuery2.extend(obj, promise2) : promise2; } }, deferred = {}; promise2.pipe = promise2.then; jQuery2.each(tuples, function(i2, tuple) { var list = tuple[2], stateString = tuple[3]; promise2[tuple[1]] = list.add; if (stateString) { list.add(function() { state = stateString; }, tuples[i2 ^ 1][2].disable, tuples[2][2].lock); } deferred[tuple[0]] = function() { deferred[tuple[0] + "With"](this === deferred ? promise2 : this, arguments); return this; }; deferred[tuple[0] + "With"] = list.fireWith; }); promise2.promise(deferred); if (func) { func.call(deferred, deferred); } return deferred; }, // Deferred helper when: function(subordinate) { var i2 = 0, resolveValues = slice2.call(arguments), length = resolveValues.length, remaining = length !== 1 || subordinate && jQuery2.isFunction(subordinate.promise) ? length : 0, deferred = remaining === 1 ? subordinate : jQuery2.Deferred(), updateFunc = function(i3, contexts, values2) { return function(value) { contexts[i3] = this; values2[i3] = arguments.length > 1 ? slice2.call(arguments) : value; if (values2 === progressValues) { deferred.notifyWith(contexts, values2); } else if (!--remaining) { deferred.resolveWith(contexts, values2); } }; }, progressValues, progressContexts, resolveContexts; if (length > 1) { progressValues = new Array(length); progressContexts = new Array(length); resolveContexts = new Array(length); for (; i2 < length; i2++) { if (resolveValues[i2] && jQuery2.isFunction(resolveValues[i2].promise)) { resolveValues[i2].promise().progress(updateFunc(i2, progressContexts, progressValues)).done(updateFunc(i2, resolveContexts, resolveValues)).fail(deferred.reject); } else { --remaining; } } } if (!remaining) { deferred.resolveWith(resolveContexts, resolveValues); } return deferred.promise(); } }); var readyList; jQuery2.fn.ready = function(fn) { jQuery2.ready.promise().done(fn); return this; }; jQuery2.extend({ // Is the DOM ready to be used? Set to true once it occurs. isReady: false, // A counter to track how many items to wait for before // the ready event fires. See #6781 readyWait: 1, // Hold (or release) the ready event holdReady: function(hold) { if (hold) { jQuery2.readyWait++; } else { jQuery2.ready(true); } }, // Handle when the DOM is ready ready: function(wait2) { if (wait2 === true ? --jQuery2.readyWait : jQuery2.isReady) { return; } jQuery2.isReady = true; if (wait2 !== true && --jQuery2.readyWait > 0) { return; } readyList.resolveWith(document2, [jQuery2]); if (jQuery2.fn.triggerHandler) { jQuery2(document2).triggerHandler("ready"); jQuery2(document2).off("ready"); } } }); function completed() { document2.removeEventListener("DOMContentLoaded", completed); window2.removeEventListener("load", completed); jQuery2.ready(); } jQuery2.ready.promise = function(obj) { if (!readyList) { readyList = jQuery2.Deferred(); if (document2.readyState === "complete" || document2.readyState !== "loading" && !document2.documentElement.doScroll) { window2.setTimeout(jQuery2.ready); } else { document2.addEventListener("DOMContentLoaded", completed); window2.addEventListener("load", completed); } } return readyList.promise(obj); }; jQuery2.ready.promise(); var access = function(elems, fn, key2, value, chainable, emptyGet, raw) { var i2 = 0, len = elems.length, bulk = key2 == null; if (jQuery2.type(key2) === "object") { chainable = true; for (i2 in key2) { access(elems, fn, i2, key2[i2], true, emptyGet, raw); } } else if (value !== void 0) { chainable = true; if (!jQuery2.isFunction(value)) { raw = true; } if (bulk) { if (raw) { fn.call(elems, value); fn = null; } else { bulk = fn; fn = function(elem, key3, value2) { return bulk.call(jQuery2(elem), value2); }; } } if (fn) { for (; i2 < len; i2++) { fn( elems[i2], key2, raw ? value : value.call(elems[i2], i2, fn(elems[i2], key2)) ); } } } return chainable ? elems : ( // Gets bulk ? fn.call(elems) : len ? fn(elems[0], key2) : emptyGet ); }; var acceptData = function(owner) { return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType; }; function Data() { this.expando = jQuery2.expando + Data.uid++; } Data.uid = 1; Data.prototype = { register: function(owner, initial2) { var value = initial2 || {}; if (owner.nodeType) { owner[this.expando] = value; } else { Object.defineProperty(owner, this.expando, { value, writable: true, configurable: true }); } return owner[this.expando]; }, cache: function(owner) { if (!acceptData(owner)) { return {}; } var value = owner[this.expando]; if (!value) { value = {}; if (acceptData(owner)) { if (owner.nodeType) { owner[this.expando] = value; } else { Object.defineProperty(owner, this.expando, { value, configurable: true }); } } } return value; }, set: function(owner, data2, value) { var prop, cache = this.cache(owner); if (typeof data2 === "string") { cache[data2] = value; } else { for (prop in data2) { cache[prop] = data2[prop]; } } return cache; }, get: function(owner, key2) { return key2 === void 0 ? this.cache(owner) : owner[this.expando] && owner[this.expando][key2]; }, access: function(owner, key2, value) { var stored; if (key2 === void 0 || key2 && typeof key2 === "string" && value === void 0) { stored = this.get(owner, key2); return stored !== void 0 ? stored : this.get(owner, jQuery2.camelCase(key2)); } this.set(owner, key2, value); return value !== void 0 ? value : key2; }, remove: function(owner, key2) { var i2, name, camel, cache = owner[this.expando]; if (cache === void 0) { return; } if (key2 === void 0) { this.register(owner); } else { if (jQuery2.isArray(key2)) { name = key2.concat(key2.map(jQuery2.camelCase)); } else { camel = jQuery2.camelCase(key2); if (key2 in cache) { name = [key2, camel]; } else { name = camel; name = name in cache ? [name] : name.match(rnotwhite) || []; } } i2 = name.length; while (i2--) { delete cache[name[i2]]; } } if (key2 === void 0 || jQuery2.isEmptyObject(cache)) { if (owner.nodeType) { owner[this.expando] = void 0; } else { delete owner[this.expando]; } } }, hasData: function(owner) { var cache = owner[this.expando]; return cache !== void 0 && !jQuery2.isEmptyObject(cache); } }; var dataPriv = new Data(); var dataUser = new Data(); var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, rmultiDash = /[A-Z]/g; function dataAttr(elem, key2, data2) { var name; if (data2 === void 0 && elem.nodeType === 1) { name = "data-" + key2.replace(rmultiDash, "-$&").toLowerCase(); data2 = elem.getAttribute(name); if (typeof data2 === "string") { try { data2 = data2 === "true" ? true : data2 === "false" ? false : data2 === "null" ? null : ( // Only convert to a number if it doesn't change the string +data2 + "" === data2 ? +data2 : rbrace.test(data2) ? jQuery2.parseJSON(data2) : data2 ); } catch (e) { } dataUser.set(elem, key2, data2); } else { data2 = void 0; } } return data2; } jQuery2.extend({ hasData: function(elem) { return dataUser.hasData(elem) || dataPriv.hasData(elem); }, data: function(elem, name, data2) { return dataUser.access(elem, name, data2); }, removeData: function(elem, name) { dataUser.remove(elem, name); }, // TODO: Now that all calls to _data and _removeData have been replaced // with direct calls to dataPriv methods, these can be deprecated. _data: function(elem, name, data2) { return dataPriv.access(elem, name, data2); }, _removeData: function(elem, name) { dataPriv.remove(elem, name); } }); jQuery2.fn.extend({ data: function(key2, value) { var i2, name, data2, elem = this[0], attrs = elem && elem.attributes; if (key2 === void 0) { if (this.length) { data2 = dataUser.get(elem); if (elem.nodeType === 1 && !dataPriv.get(elem, "hasDataAttrs")) { i2 = attrs.length; while (i2--) { if (attrs[i2]) { name = attrs[i2].name; if (name.indexOf("data-") === 0) { name = jQuery2.camelCase(name.slice(5)); dataAttr(elem, name, data2[name]); } } } dataPriv.set(elem, "hasDataAttrs", true); } } return data2; } if (typeof key2 === "object") { return this.each(function() { dataUser.set(this, key2); }); } return access(this, function(value2) { var data3, camelKey; if (elem && value2 === void 0) { data3 = dataUser.get(elem, key2) || // Try to find dashed key if it exists (gh-2779) // This is for 2.2.x only dataUser.get(elem, key2.replace(rmultiDash, "-$&").toLowerCase()); if (data3 !== void 0) { return data3; } camelKey = jQuery2.camelCase(key2); data3 = dataUser.get(elem, camelKey); if (data3 !== void 0) { return data3; } data3 = dataAttr(elem, camelKey, void 0); if (data3 !== void 0) { return data3; } return; } camelKey = jQuery2.camelCase(key2); this.each(function() { var data4 = dataUser.get(this, camelKey); dataUser.set(this, camelKey, value2); if (key2.indexOf("-") > -1 && data4 !== void 0) { dataUser.set(this, key2, value2); } }); }, null, value, arguments.length > 1, null, true); }, removeData: function(key2) { return this.each(function() { dataUser.remove(this, key2); }); } }); jQuery2.extend({ queue: function(elem, type, data2) { var queue; if (elem) { type = (type || "fx") + "queue"; queue = dataPriv.get(elem, type); if (data2) { if (!queue || jQuery2.isArray(data2)) { queue = dataPriv.access(elem, type, jQuery2.makeArray(data2)); } else { queue.push(data2); } } return queue || []; } }, dequeue: function(elem, type) { type = type || "fx"; var queue = jQuery2.queue(elem, type), startLength = queue.length, fn = queue.shift(), hooks = jQuery2._queueHooks(elem, type), next = function() { jQuery2.dequeue(elem, type); }; if (fn === "inprogress") { fn = queue.shift(); startLength--; } if (fn) { if (type === "fx") { queue.unshift("inprogress"); } delete hooks.stop; fn.call(elem, next, hooks); } if (!startLength && hooks) { hooks.empty.fire(); } }, // Not public - generate a queueHooks object, or return the current one _queueHooks: function(elem, type) { var key2 = type + "queueHooks"; return dataPriv.get(elem, key2) || dataPriv.access(elem, key2, { empty: jQuery2.Callbacks("once memory").add(function() { dataPriv.remove(elem, [type + "queue", key2]); }) }); } }); jQuery2.fn.extend({ queue: function(type, data2) { var setter = 2; if (typeof type !== "string") { data2 = type; type = "fx"; setter--; } if (arguments.length < setter) { return jQuery2.queue(this[0], type); } return data2 === void 0 ? this : this.each(function() { var queue = jQuery2.queue(this, type, data2); jQuery2._queueHooks(this, type); if (type === "fx" && queue[0] !== "inprogress") { jQuery2.dequeue(this, type); } }); }, dequeue: function(type) { return this.each(function() { jQuery2.dequeue(this, type); }); }, clearQueue: function(type) { return this.queue(type || "fx", []); }, // Get a promise resolved when queues of a certain type // are emptied (fx is the type by default) promise: function(type, obj) { var tmp, count = 1, defer2 = jQuery2.Deferred(), elements2 = this, i2 = this.length, resolve2 = function() { if (!--count) { defer2.resolveWith(elements2, [elements2]); } }; if (typeof type !== "string") { obj = type; type = void 0; } type = type || "fx"; while (i2--) { tmp = dataPriv.get(elements2[i2], type + "queueHooks"); if (tmp && tmp.empty) { count++; tmp.empty.add(resolve2); } } resolve2(); return defer2.promise(obj); } }); var pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source; var rcssNum = new RegExp("^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i"); var cssExpand = ["Top", "Right", "Bottom", "Left"]; var isHidden = function(elem, el) { elem = el || elem; return jQuery2.css(elem, "display") === "none" || !jQuery2.contains(elem.ownerDocument, elem); }; function adjustCSS(elem, prop, valueParts, tween) { var adjusted, scale = 1, maxIterations = 20, currentValue = tween ? function() { return tween.cur(); } : function() { return jQuery2.css(elem, prop, ""); }, initial2 = currentValue(), unit = valueParts && valueParts[3] || (jQuery2.cssNumber[prop] ? "" : "px"), initialInUnit = (jQuery2.cssNumber[prop] || unit !== "px" && +initial2) && rcssNum.exec(jQuery2.css(elem, prop)); if (initialInUnit && initialInUnit[3] !== unit) { unit = unit || initialInUnit[3]; valueParts = valueParts || []; initialInUnit = +initial2 || 1; do { scale = scale || ".5"; initialInUnit = initialInUnit / scale; jQuery2.style(elem, prop, initialInUnit + unit); } while (scale !== (scale = currentValue() / initial2) && scale !== 1 && --maxIterations); } if (valueParts) { initialInUnit = +initialInUnit || +initial2 || 0; adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2]; if (tween) { tween.unit = unit; tween.start = initialInUnit; tween.end = adjusted; } } return adjusted; } var rcheckableType = /^(?:checkbox|radio)$/i; var rtagName = /<([\w:-]+)/; var rscriptType = /^$|\/(?:java|ecma)script/i; var wrapMap = { // Support: IE9 option: [1, ""], // XHTML parsers do not magically insert elements in the // same way that tag soup parsers do. So we cannot shorten // this by omitting
or other required elements. thead: [1, "