{"version":3,"sources":["Content/jquery/jquery-3.5.1.modified.js"],"names":["factory","moduleName","ccs_define","moduleExport","window","undefined","arr","getProto","Object","getPrototypeOf","slice","flat","array","call","concat","apply","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","support","isFunction","obj","nodeType","isWindow","document","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","node","doc","i","val","script","createElement","text","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","toType","version","jQuery","selector","context","fn","init","isArrayLike","length","prototype","jquery","constructor","toArray","this","get","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","arguments","first","eq","last","even","grep","_elem","odd","len","j","end","sort","splice","extend","options","name","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","expando","Math","random","replace","isReady","error","msg","Error","noop","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","matches","callbackExpect","arg","value","guid","Symbol","iterator","split","_i","toLowerCase","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","a","b","pop","pushNative","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","dir","next","childNodes","e","els","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","testContext","scope","toSelector","join","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","tmp","input","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","not","matcher","unmatched","has","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","_matchIndexes","lt","gt","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","winnow","qualifier","self","rootjQuery","ready","parseHTML","rparentsprev","guaranteedUnique","children","contents","prev","sibling","targets","l","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","object","_","flag","createOptions","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Deferred","func","tuples","state","always","deferred","catch","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","completed","removeEventListener","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","toUpperCase","camelCase","string","acceptData","owner","Data","uid","defineProperty","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","JSON","parse","getData","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","showHide","show","values","body","hide","toggle","div","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","selection","ignored","wrap","attached","fragment","nodes","htmlPrefilter","createTextNode","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","expectSync","err","safeActiveElement","on","types","one","origFn","event","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","global","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","create","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","enumerable","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","getComputedStyle","swap","old","rboxStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","height","parseInt","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","order","orphans","widows","zIndex","zoom","origName","isCustomProp","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","propHooks","run","percent","eased","duration","pos","step","fx","scrollTop","scrollLeft","linear","p","swing","cos","PI","fxNow","inProgress","opt","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","bind","complete","timer","anim","*","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","for","class","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","s","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","responseFields","converters","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","text script","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","trim","define","amd","ccsJq"],"mappings":"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","file":"jquery-3.5.1.modified.min.js","sourcesContent":["/*!\r\n * jQuery JavaScript Library v3.5.1\r\n * https://jquery.com/\r\n *\r\n * Includes Sizzle.js\r\n * https://sizzlejs.com/\r\n *\r\n * Copyright JS Foundation and other contributors\r\n * Released under the MIT license\r\n * https://jquery.org/license\r\n *\r\n * Date: 2020-05-04T22:49Z\r\n */\r\n(function (factory) {\r\n\tvar moduleName = \"jquery\";\r\n\r\n\tif (typeof ccs_define === \"function\") {\r\n\t\tccs_define(moduleName, [], factory);\r\n\t\treturn;\r\n\t}\r\n\r\n\tvar moduleExport = factory();\r\n\tif (typeof moduleExport !== \"undefined\") {\r\n\t\twindow[moduleName] = moduleExport;\r\n\t}\r\n}\r\n(function () {\r\n\t\t(function (window, undefined) {\r\n\r\n\t\t\t// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\r\n\t\t\t// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\r\n\t\t\t// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\r\n\t\t\t// enough that all such attempts are guarded in a try block.\r\n\t\t\t\"use strict\";\r\n\r\n\t\t\tvar arr = [];\r\n\r\n\t\t\tvar getProto = Object.getPrototypeOf;\r\n\r\n\t\t\tvar slice = arr.slice;\r\n\r\n\t\t\tvar flat = arr.flat ? function (array) {\r\n\t\t\t\treturn arr.flat.call(array);\r\n\t\t\t} : function (array) {\r\n\t\t\t\treturn arr.concat.apply([], array);\r\n\t\t\t};\r\n\r\n\r\n\t\t\tvar push = arr.push;\r\n\r\n\t\t\tvar indexOf = arr.indexOf;\r\n\r\n\t\t\tvar class2type = {};\r\n\r\n\t\t\tvar toString = class2type.toString;\r\n\r\n\t\t\tvar hasOwn = class2type.hasOwnProperty;\r\n\r\n\t\t\tvar fnToString = hasOwn.toString;\r\n\r\n\t\t\tvar ObjectFunctionString = fnToString.call(Object);\r\n\r\n\t\t\tvar support = {};\r\n\r\n\t\t\tvar isFunction = function isFunction(obj) {\r\n\r\n\t\t\t\t// Support: Chrome <=57, Firefox <=52\r\n\t\t\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\r\n\t\t\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\r\n\t\t\t\t// We don't want to classify *any* DOM node as a function.\r\n\t\t\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\r\n\t\t\t};\r\n\r\n\r\n\t\t\tvar isWindow = function isWindow(obj) {\r\n\t\t\t\treturn obj != null && obj === obj.window;\r\n\t\t\t};\r\n\r\n\r\n\t\t\tvar document = window.document;\r\n\r\n\r\n\r\n\t\t\tvar preservedScriptAttributes = {\r\n\t\t\t\ttype: true,\r\n\t\t\t\tsrc: true,\r\n\t\t\t\tnonce: true,\r\n\t\t\t\tnoModule: true\r\n\t\t\t};\r\n\r\n\t\t\tfunction DOMEval(code, node, doc) {\r\n\t\t\t\tdoc = doc || document;\r\n\r\n\t\t\t\tvar i, val,\r\n\t\t\t\t\tscript = doc.createElement(\"script\");\r\n\r\n\t\t\t\tscript.text = code;\r\n\t\t\t\tif (node) {\r\n\t\t\t\t\tfor (i in preservedScriptAttributes) {\r\n\r\n\t\t\t\t\t\t// Support: Firefox 64+, Edge 18+\r\n\t\t\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\r\n\t\t\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\r\n\t\t\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\r\n\t\t\t\t\t\t// becomes browsing-context connected.\r\n\t\t\t\t\t\t// See https://github.com/whatwg/html/issues/2369\r\n\t\t\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\r\n\t\t\t\t\t\t// The `node.getAttribute` check was added for the sake of\r\n\t\t\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\r\n\t\t\t\t\t\t// via an object.\r\n\t\t\t\t\t\tval = node[i] || node.getAttribute && node.getAttribute(i);\r\n\t\t\t\t\t\tif (val) {\r\n\t\t\t\t\t\t\tscript.setAttribute(i, val);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tdoc.head.appendChild(script).parentNode.removeChild(script);\r\n\t\t\t}\r\n\r\n\r\n\t\t\tfunction toType(obj) {\r\n\t\t\t\tif (obj == null) {\r\n\t\t\t\t\treturn obj + \"\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Support: Android <=2.3 only (functionish RegExp)\r\n\t\t\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\r\n\t\t\t\t\tclass2type[toString.call(obj)] || \"object\" :\r\n\t\t\t\t\ttypeof obj;\r\n\t\t\t}\r\n\t\t\t/* global Symbol */\r\n\t\t\t// Defining this global in .eslintrc.json would create a danger of using the global\r\n\t\t\t// unguarded in another place, it seems safer to define global only for this module\r\n\r\n\r\n\r\n\t\t\tvar\r\n\t\t\t\tversion = \"3.5.1\",\r\n\r\n\t\t\t\t// Define a local copy of jQuery\r\n\t\t\t\tjQuery = function (selector, context) {\r\n\r\n\t\t\t\t\t// The jQuery object is actually just the init constructor 'enhanced'\r\n\t\t\t\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\r\n\t\t\t\t\treturn new jQuery.fn.init(selector, context);\r\n\t\t\t\t};\r\n\r\n\t\t\tjQuery.fn = jQuery.prototype = {\r\n\r\n\t\t\t\t// The current version of jQuery being used\r\n\t\t\t\tjquery: version,\r\n\r\n\t\t\t\tconstructor: jQuery,\r\n\r\n\t\t\t\t// The default length of a jQuery object is 0\r\n\t\t\t\tlength: 0,\r\n\r\n\t\t\t\ttoArray: function () {\r\n\t\t\t\t\treturn slice.call(this);\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Get the Nth element in the matched element set OR\r\n\t\t\t\t// Get the whole matched element set as a clean array\r\n\t\t\t\tget: function (num) {\r\n\r\n\t\t\t\t\t// Return all the elements in a clean array\r\n\t\t\t\t\tif (num == null) {\r\n\t\t\t\t\t\treturn slice.call(this);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Return just the one element from the set\r\n\t\t\t\t\treturn num < 0 ? this[num + this.length] : this[num];\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Take an array of elements and push it onto the stack\r\n\t\t\t\t// (returning the new matched element set)\r\n\t\t\t\tpushStack: function (elems) {\r\n\r\n\t\t\t\t\t// Build a new jQuery matched element set\r\n\t\t\t\t\tvar ret = jQuery.merge(this.constructor(), elems);\r\n\r\n\t\t\t\t\t// Add the old object onto the stack (as a reference)\r\n\t\t\t\t\tret.prevObject = this;\r\n\r\n\t\t\t\t\t// Return the newly-formed element set\r\n\t\t\t\t\treturn ret;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Execute a callback for every element in the matched set.\r\n\t\t\t\teach: function (callback) {\r\n\t\t\t\t\treturn jQuery.each(this, callback);\r\n\t\t\t\t},\r\n\r\n\t\t\t\tmap: function (callback) {\r\n\t\t\t\t\treturn this.pushStack(jQuery.map(this, function (elem, i) {\r\n\t\t\t\t\t\treturn callback.call(elem, i, elem);\r\n\t\t\t\t\t}));\r\n\t\t\t\t},\r\n\r\n\t\t\t\tslice: function () {\r\n\t\t\t\t\treturn this.pushStack(slice.apply(this, arguments));\r\n\t\t\t\t},\r\n\r\n\t\t\t\tfirst: function () {\r\n\t\t\t\t\treturn this.eq(0);\r\n\t\t\t\t},\r\n\r\n\t\t\t\tlast: function () {\r\n\t\t\t\t\treturn this.eq(-1);\r\n\t\t\t\t},\r\n\r\n\t\t\t\teven: function () {\r\n\t\t\t\t\treturn this.pushStack(jQuery.grep(this, function (_elem, i) {\r\n\t\t\t\t\t\treturn (i + 1) % 2;\r\n\t\t\t\t\t}));\r\n\t\t\t\t},\r\n\r\n\t\t\t\todd: function () {\r\n\t\t\t\t\treturn this.pushStack(jQuery.grep(this, function (_elem, i) {\r\n\t\t\t\t\t\treturn i % 2;\r\n\t\t\t\t\t}));\r\n\t\t\t\t},\r\n\r\n\t\t\t\teq: function (i) {\r\n\t\t\t\t\tvar len = this.length,\r\n\t\t\t\t\t\tj = +i + (i < 0 ? len : 0);\r\n\t\t\t\t\treturn this.pushStack(j >= 0 && j < len ? [this[j]] : []);\r\n\t\t\t\t},\r\n\r\n\t\t\t\tend: function () {\r\n\t\t\t\t\treturn this.prevObject || this.constructor();\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// For internal use only.\r\n\t\t\t\t// Behaves like an Array's method, not like a jQuery method.\r\n\t\t\t\tpush: push,\r\n\t\t\t\tsort: arr.sort,\r\n\t\t\t\tsplice: arr.splice\r\n\t\t\t};\r\n\r\n\t\t\tjQuery.extend = jQuery.fn.extend = function () {\r\n\t\t\t\tvar options, name, src, copy, copyIsArray, clone,\r\n\t\t\t\t\ttarget = arguments[0] || {},\r\n\t\t\t\t\ti = 1,\r\n\t\t\t\t\tlength = arguments.length,\r\n\t\t\t\t\tdeep = false;\r\n\r\n\t\t\t\t// Handle a deep copy situation\r\n\t\t\t\tif (typeof target === \"boolean\") {\r\n\t\t\t\t\tdeep = target;\r\n\r\n\t\t\t\t\t// Skip the boolean and the target\r\n\t\t\t\t\ttarget = arguments[i] || {};\r\n\t\t\t\t\ti++;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Handle case when target is a string or something (possible in deep copy)\r\n\t\t\t\tif (typeof target !== \"object\" && !isFunction(target)) {\r\n\t\t\t\t\ttarget = {};\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Extend jQuery itself if only one argument is passed\r\n\t\t\t\tif (i === length) {\r\n\t\t\t\t\ttarget = this;\r\n\t\t\t\t\ti--;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (; i < length; i++) {\r\n\r\n\t\t\t\t\t// Only deal with non-null/undefined values\r\n\t\t\t\t\tif ((options = arguments[i]) != null) {\r\n\r\n\t\t\t\t\t\t// Extend the base object\r\n\t\t\t\t\t\tfor (name in options) {\r\n\t\t\t\t\t\t\tcopy = options[name];\r\n\r\n\t\t\t\t\t\t\t// Prevent Object.prototype pollution\r\n\t\t\t\t\t\t\t// Prevent never-ending loop\r\n\t\t\t\t\t\t\tif (name === \"__proto__\" || target === copy) {\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Recurse if we're merging plain objects or arrays\r\n\t\t\t\t\t\t\tif (deep && copy && (jQuery.isPlainObject(copy) ||\r\n\t\t\t\t\t\t\t\t(copyIsArray = Array.isArray(copy)))) {\r\n\t\t\t\t\t\t\t\tsrc = target[name];\r\n\r\n\t\t\t\t\t\t\t\t// Ensure proper type for the source value\r\n\t\t\t\t\t\t\t\tif (copyIsArray && !Array.isArray(src)) {\r\n\t\t\t\t\t\t\t\t\tclone = [];\r\n\t\t\t\t\t\t\t\t} else if (!copyIsArray && !jQuery.isPlainObject(src)) {\r\n\t\t\t\t\t\t\t\t\tclone = {};\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tclone = src;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tcopyIsArray = false;\r\n\r\n\t\t\t\t\t\t\t\t// Never move original objects, clone them\r\n\t\t\t\t\t\t\t\ttarget[name] = jQuery.extend(deep, clone, copy);\r\n\r\n\t\t\t\t\t\t\t\t// Don't bring in undefined values\r\n\t\t\t\t\t\t\t} else if (copy !== undefined) {\r\n\t\t\t\t\t\t\t\ttarget[name] = copy;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Return the modified object\r\n\t\t\t\treturn target;\r\n\t\t\t};\r\n\r\n\t\t\tjQuery.extend({\r\n\r\n\t\t\t\t// Unique for each copy of jQuery on the page\r\n\t\t\t\texpando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\r\n\r\n\t\t\t\t// Assume jQuery is ready without the ready module\r\n\t\t\t\tisReady: true,\r\n\r\n\t\t\t\terror: function (msg) {\r\n\t\t\t\t\tthrow new Error(msg);\r\n\t\t\t\t},\r\n\r\n\t\t\t\tnoop: function () { },\r\n\r\n\t\t\t\tisPlainObject: function (obj) {\r\n\t\t\t\t\tvar proto, Ctor;\r\n\r\n\t\t\t\t\t// Detect obvious negatives\r\n\t\t\t\t\t// Use toString instead of jQuery.type to catch host objects\r\n\t\t\t\t\tif (!obj || toString.call(obj) !== \"[object Object]\") {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tproto = getProto(obj);\r\n\r\n\t\t\t\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\r\n\t\t\t\t\tif (!proto) {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Objects with prototype are plain iff they were constructed by a global Object function\r\n\t\t\t\t\tCtor = hasOwn.call(proto, \"constructor\") && proto.constructor;\r\n\t\t\t\t\treturn typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\r\n\t\t\t\t},\r\n\r\n\t\t\t\tisEmptyObject: function (obj) {\r\n\t\t\t\t\tvar name;\r\n\r\n\t\t\t\t\tfor (name in obj) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Evaluates a script in a provided context; falls back to the global one\r\n\t\t\t\t// if not specified.\r\n\t\t\t\tglobalEval: function (code, options, doc) {\r\n\t\t\t\t\tDOMEval(code, { nonce: options && options.nonce }, doc);\r\n\t\t\t\t},\r\n\r\n\t\t\t\teach: function (obj, callback) {\r\n\t\t\t\t\tvar length, i = 0;\r\n\r\n\t\t\t\t\tif (isArrayLike(obj)) {\r\n\t\t\t\t\t\tlength = obj.length;\r\n\t\t\t\t\t\tfor (; i < length; i++) {\r\n\t\t\t\t\t\t\tif (callback.call(obj[i], i, obj[i]) === false) {\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfor (i in obj) {\r\n\t\t\t\t\t\t\tif (callback.call(obj[i], i, obj[i]) === false) {\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn obj;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// results is for internal usage only\r\n\t\t\t\tmakeArray: function (arr, results) {\r\n\t\t\t\t\tvar ret = results || [];\r\n\r\n\t\t\t\t\tif (arr != null) {\r\n\t\t\t\t\t\tif (isArrayLike(Object(arr))) {\r\n\t\t\t\t\t\t\tjQuery.merge(ret,\r\n\t\t\t\t\t\t\t\ttypeof arr === \"string\" ?\r\n\t\t\t\t\t\t\t\t\t[arr] : arr\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tpush.call(ret, arr);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn ret;\r\n\t\t\t\t},\r\n\r\n\t\t\t\tinArray: function (elem, arr, i) {\r\n\t\t\t\t\treturn arr == null ? -1 : indexOf.call(arr, elem, i);\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\r\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\r\n\t\t\t\tmerge: function (first, second) {\r\n\t\t\t\t\tvar len = +second.length,\r\n\t\t\t\t\t\tj = 0,\r\n\t\t\t\t\t\ti = first.length;\r\n\r\n\t\t\t\t\tfor (; j < len; j++) {\r\n\t\t\t\t\t\tfirst[i++] = second[j];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfirst.length = i;\r\n\r\n\t\t\t\t\treturn first;\r\n\t\t\t\t},\r\n\r\n\t\t\t\tgrep: function (elems, callback, invert) {\r\n\t\t\t\t\tvar callbackInverse,\r\n\t\t\t\t\t\tmatches = [],\r\n\t\t\t\t\t\ti = 0,\r\n\t\t\t\t\t\tlength = elems.length,\r\n\t\t\t\t\t\tcallbackExpect = !invert;\r\n\r\n\t\t\t\t\t// Go through the array, only saving the items\r\n\t\t\t\t\t// that pass the validator function\r\n\t\t\t\t\tfor (; i < length; i++) {\r\n\t\t\t\t\t\tcallbackInverse = !callback(elems[i], i);\r\n\t\t\t\t\t\tif (callbackInverse !== callbackExpect) {\r\n\t\t\t\t\t\t\tmatches.push(elems[i]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn matches;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// arg is for internal usage only\r\n\t\t\t\tmap: function (elems, callback, arg) {\r\n\t\t\t\t\tvar length, value,\r\n\t\t\t\t\t\ti = 0,\r\n\t\t\t\t\t\tret = [];\r\n\r\n\t\t\t\t\t// Go through the array, translating each of the items to their new values\r\n\t\t\t\t\tif (isArrayLike(elems)) {\r\n\t\t\t\t\t\tlength = elems.length;\r\n\t\t\t\t\t\tfor (; i < length; i++) {\r\n\t\t\t\t\t\t\tvalue = callback(elems[i], i, arg);\r\n\r\n\t\t\t\t\t\t\tif (value != null) {\r\n\t\t\t\t\t\t\t\tret.push(value);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Go through every key on the object,\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfor (i in elems) {\r\n\t\t\t\t\t\t\tvalue = callback(elems[i], i, arg);\r\n\r\n\t\t\t\t\t\t\tif (value != null) {\r\n\t\t\t\t\t\t\t\tret.push(value);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Flatten any nested arrays\r\n\t\t\t\t\treturn flat(ret);\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// A global GUID counter for objects\r\n\t\t\t\tguid: 1,\r\n\r\n\t\t\t\t// jQuery.support is not used in Core but other projects attach their\r\n\t\t\t\t// properties to it so it needs to exist.\r\n\t\t\t\tsupport: support\r\n\t\t\t});\r\n\r\n\t\t\tif (typeof Symbol === \"function\") {\r\n\t\t\t\tjQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\r\n\t\t\t}\r\n\r\n\t\t\t// Populate the class2type map\r\n\t\t\tjQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"),\r\n\t\t\t\tfunction (_i, name) {\r\n\t\t\t\t\tclass2type[\"[object \" + name + \"]\"] = name.toLowerCase();\r\n\t\t\t\t});\r\n\r\n\t\t\tfunction isArrayLike(obj) {\r\n\r\n\t\t\t\t// Support: real iOS 8.2 only (not reproducible in simulator)\r\n\t\t\t\t// `in` check used to prevent JIT error (gh-2145)\r\n\t\t\t\t// hasOwn isn't used here due to false negatives\r\n\t\t\t\t// regarding Nodelist length in IE\r\n\t\t\t\tvar length = !!obj && \"length\" in obj && obj.length,\r\n\t\t\t\t\ttype = toType(obj);\r\n\r\n\t\t\t\tif (isFunction(obj) || isWindow(obj)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn type === \"array\" || length === 0 ||\r\n\t\t\t\t\ttypeof length === \"number\" && length > 0 && (length - 1) in obj;\r\n\t\t\t}\r\n\t\t\tvar Sizzle =\r\n\t\t\t\t/*!\r\n\t\t\t\t * Sizzle CSS Selector Engine v2.3.5\r\n\t\t\t\t * https://sizzlejs.com/\r\n\t\t\t\t *\r\n\t\t\t\t * Copyright JS Foundation and other contributors\r\n\t\t\t\t * Released under the MIT license\r\n\t\t\t\t * https://js.foundation/\r\n\t\t\t\t *\r\n\t\t\t\t * Date: 2020-03-14\r\n\t\t\t\t */\r\n\t\t\t\t(function (window) {\r\n\t\t\t\t\tvar i,\r\n\t\t\t\t\t\tsupport,\r\n\t\t\t\t\t\tExpr,\r\n\t\t\t\t\t\tgetText,\r\n\t\t\t\t\t\tisXML,\r\n\t\t\t\t\t\ttokenize,\r\n\t\t\t\t\t\tcompile,\r\n\t\t\t\t\t\tselect,\r\n\t\t\t\t\t\toutermostContext,\r\n\t\t\t\t\t\tsortInput,\r\n\t\t\t\t\t\thasDuplicate,\r\n\r\n\t\t\t\t\t\t// Local document vars\r\n\t\t\t\t\t\tsetDocument,\r\n\t\t\t\t\t\tdocument,\r\n\t\t\t\t\t\tdocElem,\r\n\t\t\t\t\t\tdocumentIsHTML,\r\n\t\t\t\t\t\trbuggyQSA,\r\n\t\t\t\t\t\trbuggyMatches,\r\n\t\t\t\t\t\tmatches,\r\n\t\t\t\t\t\tcontains,\r\n\r\n\t\t\t\t\t\t// Instance-specific data\r\n\t\t\t\t\t\texpando = \"sizzle\" + 1 * new Date(),\r\n\t\t\t\t\t\tpreferredDoc = window.document,\r\n\t\t\t\t\t\tdirruns = 0,\r\n\t\t\t\t\t\tdone = 0,\r\n\t\t\t\t\t\tclassCache = createCache(),\r\n\t\t\t\t\t\ttokenCache = createCache(),\r\n\t\t\t\t\t\tcompilerCache = createCache(),\r\n\t\t\t\t\t\tnonnativeSelectorCache = createCache(),\r\n\t\t\t\t\t\tsortOrder = function (a, b) {\r\n\t\t\t\t\t\t\tif (a === b) {\r\n\t\t\t\t\t\t\t\thasDuplicate = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Instance methods\r\n\t\t\t\t\t\thasOwn = ({}).hasOwnProperty,\r\n\t\t\t\t\t\tarr = [],\r\n\t\t\t\t\t\tpop = arr.pop,\r\n\t\t\t\t\t\tpushNative = arr.push,\r\n\t\t\t\t\t\tpush = arr.push,\r\n\t\t\t\t\t\tslice = arr.slice,\r\n\r\n\t\t\t\t\t\t// Use a stripped-down indexOf as it's faster than native\r\n\t\t\t\t\t\t// https://jsperf.com/thor-indexof-vs-for/5\r\n\t\t\t\t\t\tindexOf = function (list, elem) {\r\n\t\t\t\t\t\t\tvar i = 0,\r\n\t\t\t\t\t\t\t\tlen = list.length;\r\n\t\t\t\t\t\t\tfor (; i < len; i++) {\r\n\t\t\t\t\t\t\t\tif (list[i] === elem) {\r\n\t\t\t\t\t\t\t\t\treturn i;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn -1;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\r\n\t\t\t\t\t\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\r\n\r\n\t\t\t\t\t\t// Regular expressions\r\n\r\n\t\t\t\t\t\t// http://www.w3.org/TR/css3-selectors/#whitespace\r\n\t\t\t\t\t\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\r\n\r\n\t\t\t\t\t\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\r\n\t\t\t\t\t\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\r\n\t\t\t\t\t\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\r\n\r\n\t\t\t\t\t\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\r\n\t\t\t\t\t\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\r\n\r\n\t\t\t\t\t\t\t// Operator (capture 2)\r\n\t\t\t\t\t\t\t\"*([*^$|!~]?=)\" + whitespace +\r\n\r\n\t\t\t\t\t\t\t// \"Attribute values must be CSS identifiers [capture 5]\r\n\t\t\t\t\t\t\t// or strings [capture 3 or capture 4]\"\r\n\t\t\t\t\t\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\r\n\t\t\t\t\t\t\twhitespace + \"*\\\\]\",\r\n\r\n\t\t\t\t\t\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\r\n\r\n\t\t\t\t\t\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\r\n\t\t\t\t\t\t\t// 1. quoted (capture 3; capture 4 or capture 5)\r\n\t\t\t\t\t\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\r\n\r\n\t\t\t\t\t\t\t// 2. simple (capture 6)\r\n\t\t\t\t\t\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\r\n\r\n\t\t\t\t\t\t\t// 3. anything else (capture 2)\r\n\t\t\t\t\t\t\t\".*\" +\r\n\t\t\t\t\t\t\t\")\\\\)|)\",\r\n\r\n\t\t\t\t\t\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\r\n\t\t\t\t\t\trwhitespace = new RegExp(whitespace + \"+\", \"g\"),\r\n\t\t\t\t\t\trtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\r\n\t\t\t\t\t\t\twhitespace + \"+$\", \"g\"),\r\n\r\n\t\t\t\t\t\trcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\r\n\t\t\t\t\t\trcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\r\n\t\t\t\t\t\t\t\"*\"),\r\n\t\t\t\t\t\trdescend = new RegExp(whitespace + \"|>\"),\r\n\r\n\t\t\t\t\t\trpseudo = new RegExp(pseudos),\r\n\t\t\t\t\t\tridentifier = new RegExp(\"^\" + identifier + \"$\"),\r\n\r\n\t\t\t\t\t\tmatchExpr = {\r\n\t\t\t\t\t\t\t\"ID\": new RegExp(\"^#(\" + identifier + \")\"),\r\n\t\t\t\t\t\t\t\"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\r\n\t\t\t\t\t\t\t\"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\r\n\t\t\t\t\t\t\t\"ATTR\": new RegExp(\"^\" + attributes),\r\n\t\t\t\t\t\t\t\"PSEUDO\": new RegExp(\"^\" + pseudos),\r\n\t\t\t\t\t\t\t\"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\r\n\t\t\t\t\t\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\r\n\t\t\t\t\t\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\r\n\t\t\t\t\t\t\t\"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\r\n\r\n\t\t\t\t\t\t\t// For use in libraries implementing .is()\r\n\t\t\t\t\t\t\t// We use this for POS matching in `select`\r\n\t\t\t\t\t\t\t\"needsContext\": new RegExp(\"^\" + whitespace +\r\n\t\t\t\t\t\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\r\n\t\t\t\t\t\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\trhtml = /HTML$/i,\r\n\t\t\t\t\t\trinputs = /^(?:input|select|textarea|button)$/i,\r\n\t\t\t\t\t\trheader = /^h\\d$/i,\r\n\r\n\t\t\t\t\t\trnative = /^[^{]+\\{\\s*\\[native \\w/,\r\n\r\n\t\t\t\t\t\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\r\n\t\t\t\t\t\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\r\n\r\n\t\t\t\t\t\trsibling = /[+~]/,\r\n\r\n\t\t\t\t\t\t// CSS escapes\r\n\t\t\t\t\t\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\r\n\t\t\t\t\t\trunescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\r\n\t\t\t\t\t\tfunescape = function (escape, nonHex) {\r\n\t\t\t\t\t\t\tvar high = \"0x\" + escape.slice(1) - 0x10000;\r\n\r\n\t\t\t\t\t\t\treturn nonHex ?\r\n\r\n\t\t\t\t\t\t\t\t// Strip the backslash prefix from a non-hex escape sequence\r\n\t\t\t\t\t\t\t\tnonHex :\r\n\r\n\t\t\t\t\t\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\r\n\t\t\t\t\t\t\t\t// Support: IE <=11+\r\n\t\t\t\t\t\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\r\n\t\t\t\t\t\t\t\t// surrogate pair\r\n\t\t\t\t\t\t\t\thigh < 0 ?\r\n\t\t\t\t\t\t\t\t\tString.fromCharCode(high + 0x10000) :\r\n\t\t\t\t\t\t\t\t\tString.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// CSS string/identifier serialization\r\n\t\t\t\t\t\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\r\n\t\t\t\t\t\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\r\n\t\t\t\t\t\tfcssescape = function (ch, asCodePoint) {\r\n\t\t\t\t\t\t\tif (asCodePoint) {\r\n\r\n\t\t\t\t\t\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\r\n\t\t\t\t\t\t\t\tif (ch === \"\\0\") {\r\n\t\t\t\t\t\t\t\t\treturn \"\\uFFFD\";\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\r\n\t\t\t\t\t\t\t\treturn ch.slice(0, -1) + \"\\\\\" +\r\n\t\t\t\t\t\t\t\t\tch.charCodeAt(ch.length - 1).toString(16) + \" \";\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Other potentially-special ASCII characters get backslash-escaped\r\n\t\t\t\t\t\t\treturn \"\\\\\" + ch;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Used for iframes\r\n\t\t\t\t\t\t// See setDocument()\r\n\t\t\t\t\t\t// Removing the function wrapper causes a \"Permission Denied\"\r\n\t\t\t\t\t\t// error in IE\r\n\t\t\t\t\t\tunloadHandler = function () {\r\n\t\t\t\t\t\t\tsetDocument();\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tinDisabledFieldset = addCombinator(\r\n\t\t\t\t\t\t\tfunction (elem) {\r\n\t\t\t\t\t\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{ dir: \"parentNode\", next: \"legend\" }\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t// Optimize for push.apply( _, NodeList )\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tpush.apply(\r\n\t\t\t\t\t\t\t(arr = slice.call(preferredDoc.childNodes)),\r\n\t\t\t\t\t\t\tpreferredDoc.childNodes\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t// Support: Android<4.0\r\n\t\t\t\t\t\t// Detect silently failing push.apply\r\n\t\t\t\t\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\t\t\t\t\tarr[preferredDoc.childNodes.length].nodeType;\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tpush = {\r\n\t\t\t\t\t\t\tapply: arr.length ?\r\n\r\n\t\t\t\t\t\t\t\t// Leverage slice if possible\r\n\t\t\t\t\t\t\t\tfunction (target, els) {\r\n\t\t\t\t\t\t\t\t\tpushNative.apply(target, slice.call(els));\r\n\t\t\t\t\t\t\t\t} :\r\n\r\n\t\t\t\t\t\t\t\t// Support: IE<9\r\n\t\t\t\t\t\t\t\t// Otherwise append directly\r\n\t\t\t\t\t\t\t\tfunction (target, els) {\r\n\t\t\t\t\t\t\t\t\tvar j = target.length,\r\n\t\t\t\t\t\t\t\t\t\ti = 0;\r\n\r\n\t\t\t\t\t\t\t\t\t// Can't trust NodeList.length\r\n\t\t\t\t\t\t\t\t\twhile ((target[j++] = els[i++])) { }\r\n\t\t\t\t\t\t\t\t\ttarget.length = j - 1;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction Sizzle(selector, context, results, seed) {\r\n\t\t\t\t\t\tvar m, i, elem, nid, match, groups, newSelector,\r\n\t\t\t\t\t\t\tnewContext = context && context.ownerDocument,\r\n\r\n\t\t\t\t\t\t\t// nodeType defaults to 9, since context defaults to document\r\n\t\t\t\t\t\t\tnodeType = context ? context.nodeType : 9;\r\n\r\n\t\t\t\t\t\tresults = results || [];\r\n\r\n\t\t\t\t\t\t// Return early from calls with invalid selector or context\r\n\t\t\t\t\t\tif (typeof selector !== \"string\" || !selector ||\r\n\t\t\t\t\t\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\r\n\r\n\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Try to shortcut find operations (as opposed to filters) in HTML documents\r\n\t\t\t\t\t\tif (!seed) {\r\n\t\t\t\t\t\t\tsetDocument(context);\r\n\t\t\t\t\t\t\tcontext = context || document;\r\n\r\n\t\t\t\t\t\t\tif (documentIsHTML) {\r\n\r\n\t\t\t\t\t\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\r\n\t\t\t\t\t\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\r\n\t\t\t\t\t\t\t\tif (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\r\n\r\n\t\t\t\t\t\t\t\t\t// ID selector\r\n\t\t\t\t\t\t\t\t\tif ((m = match[1])) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Document context\r\n\t\t\t\t\t\t\t\t\t\tif (nodeType === 9) {\r\n\t\t\t\t\t\t\t\t\t\t\tif ((elem = context.getElementById(m))) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\r\n\t\t\t\t\t\t\t\t\t\t\t\t// TODO: identify versions\r\n\t\t\t\t\t\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (elem.id === m) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.push(elem);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Element context\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\r\n\t\t\t\t\t\t\t\t\t\t\t// TODO: identify versions\r\n\t\t\t\t\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\r\n\t\t\t\t\t\t\t\t\t\t\tif (newContext && (elem = newContext.getElementById(m)) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tcontains(context, elem) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\telem.id === m) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tresults.push(elem);\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Type selector\r\n\t\t\t\t\t\t\t\t\t} else if (match[2]) {\r\n\t\t\t\t\t\t\t\t\t\tpush.apply(results, context.getElementsByTagName(selector));\r\n\t\t\t\t\t\t\t\t\t\treturn results;\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Class selector\r\n\t\t\t\t\t\t\t\t\t} else if ((m = match[3]) && support.getElementsByClassName &&\r\n\t\t\t\t\t\t\t\t\t\tcontext.getElementsByClassName) {\r\n\r\n\t\t\t\t\t\t\t\t\t\tpush.apply(results, context.getElementsByClassName(m));\r\n\t\t\t\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Take advantage of querySelectorAll\r\n\t\t\t\t\t\t\t\tif (support.qsa &&\r\n\t\t\t\t\t\t\t\t\t!nonnativeSelectorCache[selector + \" \"] &&\r\n\t\t\t\t\t\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test(selector)) &&\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: IE 8 only\r\n\t\t\t\t\t\t\t\t\t// Exclude object elements\r\n\t\t\t\t\t\t\t\t\t(nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\r\n\r\n\t\t\t\t\t\t\t\t\tnewSelector = selector;\r\n\t\t\t\t\t\t\t\t\tnewContext = context;\r\n\r\n\t\t\t\t\t\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\r\n\t\t\t\t\t\t\t\t\t// descendant combinators, which is not what we want.\r\n\t\t\t\t\t\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\r\n\t\t\t\t\t\t\t\t\t// list with an ID selector referencing the scope context.\r\n\t\t\t\t\t\t\t\t\t// The technique has to be used as well when a leading combinator is used\r\n\t\t\t\t\t\t\t\t\t// as such selectors are not recognized by querySelectorAll.\r\n\t\t\t\t\t\t\t\t\t// Thanks to Andrew Dupont for this technique.\r\n\t\t\t\t\t\t\t\t\tif (nodeType === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t(rdescend.test(selector) || rcombinators.test(selector))) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Expand context for sibling selectors\r\n\t\t\t\t\t\t\t\t\t\tnewContext = rsibling.test(selector) && testContext(context.parentNode) ||\r\n\t\t\t\t\t\t\t\t\t\t\tcontext;\r\n\r\n\t\t\t\t\t\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\r\n\t\t\t\t\t\t\t\t\t\t// supports it & if we're not changing the context.\r\n\t\t\t\t\t\t\t\t\t\tif (newContext !== context || !support.scope) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\r\n\t\t\t\t\t\t\t\t\t\t\tif ((nid = context.getAttribute(\"id\"))) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tnid = nid.replace(rcssescape, fcssescape);\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tcontext.setAttribute(\"id\", (nid = expando));\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Prefix every selector in the list\r\n\t\t\t\t\t\t\t\t\t\tgroups = tokenize(selector);\r\n\t\t\t\t\t\t\t\t\t\ti = groups.length;\r\n\t\t\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\t\t\tgroups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" +\r\n\t\t\t\t\t\t\t\t\t\t\t\ttoSelector(groups[i]);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tnewSelector = groups.join(\",\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\t\tpush.apply(results,\r\n\t\t\t\t\t\t\t\t\t\t\tnewContext.querySelectorAll(newSelector)\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t\t\t\t} catch (qsaError) {\r\n\t\t\t\t\t\t\t\t\t\tnonnativeSelectorCache(selector, true);\r\n\t\t\t\t\t\t\t\t\t} finally {\r\n\t\t\t\t\t\t\t\t\t\tif (nid === expando) {\r\n\t\t\t\t\t\t\t\t\t\t\tcontext.removeAttribute(\"id\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// All others\r\n\t\t\t\t\t\treturn select(selector.replace(rtrim, \"$1\"), context, results, seed);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Create key-value caches of limited size\r\n\t\t\t\t\t * @returns {function(string, object)} Returns the Object data after storing it on itself with\r\n\t\t\t\t\t *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\r\n\t\t\t\t\t *\tdeleting the oldest entry\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction createCache() {\r\n\t\t\t\t\t\tvar keys = [];\r\n\r\n\t\t\t\t\t\tfunction cache(key, value) {\r\n\r\n\t\t\t\t\t\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\r\n\t\t\t\t\t\t\tif (keys.push(key + \" \") > Expr.cacheLength) {\r\n\r\n\t\t\t\t\t\t\t\t// Only keep the most recent entries\r\n\t\t\t\t\t\t\t\tdelete cache[keys.shift()];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn (cache[key + \" \"] = value);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn cache;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Mark a function for special use by Sizzle\r\n\t\t\t\t\t * @param {Function} fn The function to mark\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction markFunction(fn) {\r\n\t\t\t\t\t\tfn[expando] = true;\r\n\t\t\t\t\t\treturn fn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Support testing using an element\r\n\t\t\t\t\t * @param {Function} fn Passed the created element and returns a boolean result\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction assert(fn) {\r\n\t\t\t\t\t\tvar el = document.createElement(\"fieldset\");\r\n\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\treturn !!fn(el);\r\n\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t} finally {\r\n\r\n\t\t\t\t\t\t\t// Remove from its parent by default\r\n\t\t\t\t\t\t\tif (el.parentNode) {\r\n\t\t\t\t\t\t\t\tel.parentNode.removeChild(el);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// release memory in IE\r\n\t\t\t\t\t\t\tel = null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Adds the same handler for all of the specified attrs\r\n\t\t\t\t\t * @param {String} attrs Pipe-separated list of attributes\r\n\t\t\t\t\t * @param {Function} handler The method that will be applied\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction addHandle(attrs, handler) {\r\n\t\t\t\t\t\tvar arr = attrs.split(\"|\"),\r\n\t\t\t\t\t\t\ti = arr.length;\r\n\r\n\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\tExpr.attrHandle[arr[i]] = handler;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Checks document order of two siblings\r\n\t\t\t\t\t * @param {Element} a\r\n\t\t\t\t\t * @param {Element} b\r\n\t\t\t\t\t * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction siblingCheck(a, b) {\r\n\t\t\t\t\t\tvar cur = b && a,\r\n\t\t\t\t\t\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\r\n\t\t\t\t\t\t\t\ta.sourceIndex - b.sourceIndex;\r\n\r\n\t\t\t\t\t\t// Use IE sourceIndex if available on both nodes\r\n\t\t\t\t\t\tif (diff) {\r\n\t\t\t\t\t\t\treturn diff;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Check if b follows a\r\n\t\t\t\t\t\tif (cur) {\r\n\t\t\t\t\t\t\twhile ((cur = cur.nextSibling)) {\r\n\t\t\t\t\t\t\t\tif (cur === b) {\r\n\t\t\t\t\t\t\t\t\treturn -1;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn a ? 1 : -1;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Returns a function to use in pseudos for input types\r\n\t\t\t\t\t * @param {String} type\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction createInputPseudo(type) {\r\n\t\t\t\t\t\treturn function (elem) {\r\n\t\t\t\t\t\t\tvar name = elem.nodeName.toLowerCase();\r\n\t\t\t\t\t\t\treturn name === \"input\" && elem.type === type;\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Returns a function to use in pseudos for buttons\r\n\t\t\t\t\t * @param {String} type\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction createButtonPseudo(type) {\r\n\t\t\t\t\t\treturn function (elem) {\r\n\t\t\t\t\t\t\tvar name = elem.nodeName.toLowerCase();\r\n\t\t\t\t\t\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Returns a function to use in pseudos for :enabled/:disabled\r\n\t\t\t\t\t * @param {Boolean} disabled true for :disabled; false for :enabled\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction createDisabledPseudo(disabled) {\r\n\r\n\t\t\t\t\t\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\r\n\t\t\t\t\t\treturn function (elem) {\r\n\r\n\t\t\t\t\t\t\t// Only certain elements can match :enabled or :disabled\r\n\t\t\t\t\t\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\r\n\t\t\t\t\t\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\r\n\t\t\t\t\t\t\tif (\"form\" in elem) {\r\n\r\n\t\t\t\t\t\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\r\n\t\t\t\t\t\t\t\t// * listed form-associated elements in a disabled fieldset\r\n\t\t\t\t\t\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\r\n\t\t\t\t\t\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\r\n\t\t\t\t\t\t\t\t// * option elements in a disabled optgroup\r\n\t\t\t\t\t\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\r\n\t\t\t\t\t\t\t\t// All such elements have a \"form\" property.\r\n\t\t\t\t\t\t\t\tif (elem.parentNode && elem.disabled === false) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Option elements defer to a parent optgroup if present\r\n\t\t\t\t\t\t\t\t\tif (\"label\" in elem) {\r\n\t\t\t\t\t\t\t\t\t\tif (\"label\" in elem.parentNode) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\treturn elem.disabled === disabled;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: IE 6 - 11\r\n\t\t\t\t\t\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\r\n\t\t\t\t\t\t\t\t\treturn elem.isDisabled === disabled ||\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Where there is no isDisabled, check manually\r\n\t\t\t\t\t\t\t\t\t\t/* jshint -W018 */\r\n\t\t\t\t\t\t\t\t\t\telem.isDisabled !== !disabled &&\r\n\t\t\t\t\t\t\t\t\t\tinDisabledFieldset(elem) === disabled;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn elem.disabled === disabled;\r\n\r\n\t\t\t\t\t\t\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\r\n\t\t\t\t\t\t\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\r\n\t\t\t\t\t\t\t\t// even exist on them, let alone have a boolean value.\r\n\t\t\t\t\t\t\t} else if (\"label\" in elem) {\r\n\t\t\t\t\t\t\t\treturn elem.disabled === disabled;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Remaining elements are neither :enabled nor :disabled\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Returns a function to use in pseudos for positionals\r\n\t\t\t\t\t * @param {Function} fn\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction createPositionalPseudo(fn) {\r\n\t\t\t\t\t\treturn markFunction(function (argument) {\r\n\t\t\t\t\t\t\targument = +argument;\r\n\t\t\t\t\t\t\treturn markFunction(function (seed, matches) {\r\n\t\t\t\t\t\t\t\tvar j,\r\n\t\t\t\t\t\t\t\t\tmatchIndexes = fn([], seed.length, argument),\r\n\t\t\t\t\t\t\t\t\ti = matchIndexes.length;\r\n\r\n\t\t\t\t\t\t\t\t// Match elements found at the specified indexes\r\n\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\tif (seed[(j = matchIndexes[i])]) {\r\n\t\t\t\t\t\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Checks a node for validity as a Sizzle context\r\n\t\t\t\t\t * @param {Element|Object=} context\r\n\t\t\t\t\t * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction testContext(context) {\r\n\t\t\t\t\t\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Expose support vars for convenience\r\n\t\t\t\t\tsupport = Sizzle.support = {};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Detects XML nodes\r\n\t\t\t\t\t * @param {Element|Object} elem An element or a document\r\n\t\t\t\t\t * @returns {Boolean} True iff elem is a non-HTML XML node\r\n\t\t\t\t\t */\r\n\t\t\t\t\tisXML = Sizzle.isXML = function (elem) {\r\n\t\t\t\t\t\tvar namespace = elem.namespaceURI,\r\n\t\t\t\t\t\t\tdocElem = (elem.ownerDocument || elem).documentElement;\r\n\r\n\t\t\t\t\t\t// Support: IE <=8\r\n\t\t\t\t\t\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\r\n\t\t\t\t\t\t// https://bugs.jquery.com/ticket/4833\r\n\t\t\t\t\t\treturn !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Sets document-related variables once based on the current document\r\n\t\t\t\t\t * @param {Element|Object} [doc] An element or document object to use to set the document\r\n\t\t\t\t\t * @returns {Object} Returns the current document\r\n\t\t\t\t\t */\r\n\t\t\t\t\tsetDocument = Sizzle.setDocument = function (node) {\r\n\t\t\t\t\t\tvar hasCompare, subWindow,\r\n\t\t\t\t\t\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\r\n\r\n\t\t\t\t\t\t// Return early if doc is invalid or already selected\r\n\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\tif (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\r\n\t\t\t\t\t\t\treturn document;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Update global variables\r\n\t\t\t\t\t\tdocument = doc;\r\n\t\t\t\t\t\tdocElem = document.documentElement;\r\n\t\t\t\t\t\tdocumentIsHTML = !isXML(document);\r\n\r\n\t\t\t\t\t\t// Support: IE 9 - 11+, Edge 12 - 18+\r\n\t\t\t\t\t\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\r\n\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\tif (preferredDoc != document &&\r\n\t\t\t\t\t\t\t(subWindow = document.defaultView) && subWindow.top !== subWindow) {\r\n\r\n\t\t\t\t\t\t\t// Support: IE 11, Edge\r\n\t\t\t\t\t\t\tif (subWindow.addEventListener) {\r\n\t\t\t\t\t\t\t\tsubWindow.addEventListener(\"unload\", unloadHandler, false);\r\n\r\n\t\t\t\t\t\t\t\t// Support: IE 9 - 10 only\r\n\t\t\t\t\t\t\t} else if (subWindow.attachEvent) {\r\n\t\t\t\t\t\t\t\tsubWindow.attachEvent(\"onunload\", unloadHandler);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\r\n\t\t\t\t\t\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\r\n\t\t\t\t\t\t// IE/Edge & older browsers don't support the :scope pseudo-class.\r\n\t\t\t\t\t\t// Support: Safari 6.0 only\r\n\t\t\t\t\t\t// Safari 6.0 supports :scope but it's an alias of :root there.\r\n\t\t\t\t\t\tsupport.scope = assert(function (el) {\r\n\t\t\t\t\t\t\tdocElem.appendChild(el).appendChild(document.createElement(\"div\"));\r\n\t\t\t\t\t\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\r\n\t\t\t\t\t\t\t\t!el.querySelectorAll(\":scope fieldset div\").length;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t/* Attributes\r\n\t\t\t\t\t\t---------------------------------------------------------------------- */\r\n\r\n\t\t\t\t\t\t// Support: IE<8\r\n\t\t\t\t\t\t// Verify that getAttribute really returns attributes and not properties\r\n\t\t\t\t\t\t// (excepting IE8 booleans)\r\n\t\t\t\t\t\tsupport.attributes = assert(function (el) {\r\n\t\t\t\t\t\t\tel.className = \"i\";\r\n\t\t\t\t\t\t\treturn !el.getAttribute(\"className\");\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t/* getElement(s)By*\r\n\t\t\t\t\t\t---------------------------------------------------------------------- */\r\n\r\n\t\t\t\t\t\t// Check if getElementsByTagName(\"*\") returns only elements\r\n\t\t\t\t\t\tsupport.getElementsByTagName = assert(function (el) {\r\n\t\t\t\t\t\t\tel.appendChild(document.createComment(\"\"));\r\n\t\t\t\t\t\t\treturn !el.getElementsByTagName(\"*\").length;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t// Support: IE<9\r\n\t\t\t\t\t\tsupport.getElementsByClassName = rnative.test(document.getElementsByClassName);\r\n\r\n\t\t\t\t\t\t// Support: IE<10\r\n\t\t\t\t\t\t// Check if getElementById returns elements by name\r\n\t\t\t\t\t\t// The broken getElementById methods don't pick up programmatically-set names,\r\n\t\t\t\t\t\t// so use a roundabout getElementsByName test\r\n\t\t\t\t\t\tsupport.getById = assert(function (el) {\r\n\t\t\t\t\t\t\tdocElem.appendChild(el).id = expando;\r\n\t\t\t\t\t\t\treturn !document.getElementsByName || !document.getElementsByName(expando).length;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t// ID filter and find\r\n\t\t\t\t\t\tif (support.getById) {\r\n\t\t\t\t\t\t\tExpr.filter[\"ID\"] = function (id) {\r\n\t\t\t\t\t\t\t\tvar attrId = id.replace(runescape, funescape);\r\n\t\t\t\t\t\t\t\treturn function (elem) {\r\n\t\t\t\t\t\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\tExpr.find[\"ID\"] = function (id, context) {\r\n\t\t\t\t\t\t\t\tif (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\r\n\t\t\t\t\t\t\t\t\tvar elem = context.getElementById(id);\r\n\t\t\t\t\t\t\t\t\treturn elem ? [elem] : [];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tExpr.filter[\"ID\"] = function (id) {\r\n\t\t\t\t\t\t\t\tvar attrId = id.replace(runescape, funescape);\r\n\t\t\t\t\t\t\t\treturn function (elem) {\r\n\t\t\t\t\t\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\r\n\t\t\t\t\t\t\t\t\t\telem.getAttributeNode(\"id\");\r\n\t\t\t\t\t\t\t\t\treturn node && node.value === attrId;\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t// Support: IE 6 - 7 only\r\n\t\t\t\t\t\t\t// getElementById is not reliable as a find shortcut\r\n\t\t\t\t\t\t\tExpr.find[\"ID\"] = function (id, context) {\r\n\t\t\t\t\t\t\t\tif (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\r\n\t\t\t\t\t\t\t\t\tvar node, i, elems,\r\n\t\t\t\t\t\t\t\t\t\telem = context.getElementById(id);\r\n\r\n\t\t\t\t\t\t\t\t\tif (elem) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Verify the id attribute\r\n\t\t\t\t\t\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\r\n\t\t\t\t\t\t\t\t\t\tif (node && node.value === id) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn [elem];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Fall back on getElementsByName\r\n\t\t\t\t\t\t\t\t\t\telems = context.getElementsByName(id);\r\n\t\t\t\t\t\t\t\t\t\ti = 0;\r\n\t\t\t\t\t\t\t\t\t\twhile ((elem = elems[i++])) {\r\n\t\t\t\t\t\t\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\r\n\t\t\t\t\t\t\t\t\t\t\tif (node && node.value === id) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn [elem];\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\treturn [];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Tag\r\n\t\t\t\t\t\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\r\n\t\t\t\t\t\t\tfunction (tag, context) {\r\n\t\t\t\t\t\t\t\tif (typeof context.getElementsByTagName !== \"undefined\") {\r\n\t\t\t\t\t\t\t\t\treturn context.getElementsByTagName(tag);\r\n\r\n\t\t\t\t\t\t\t\t\t// DocumentFragment nodes don't have gEBTN\r\n\t\t\t\t\t\t\t\t} else if (support.qsa) {\r\n\t\t\t\t\t\t\t\t\treturn context.querySelectorAll(tag);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} :\r\n\r\n\t\t\t\t\t\t\tfunction (tag, context) {\r\n\t\t\t\t\t\t\t\tvar elem,\r\n\t\t\t\t\t\t\t\t\ttmp = [],\r\n\t\t\t\t\t\t\t\t\ti = 0,\r\n\r\n\t\t\t\t\t\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\r\n\t\t\t\t\t\t\t\t\tresults = context.getElementsByTagName(tag);\r\n\r\n\t\t\t\t\t\t\t\t// Filter out possible comments\r\n\t\t\t\t\t\t\t\tif (tag === \"*\") {\r\n\t\t\t\t\t\t\t\t\twhile ((elem = results[i++])) {\r\n\t\t\t\t\t\t\t\t\t\tif (elem.nodeType === 1) {\r\n\t\t\t\t\t\t\t\t\t\t\ttmp.push(elem);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\treturn tmp;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t// Class\r\n\t\t\t\t\t\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\r\n\t\t\t\t\t\t\tif (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\r\n\t\t\t\t\t\t\t\treturn context.getElementsByClassName(className);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t/* QSA/matchesSelector\r\n\t\t\t\t\t\t---------------------------------------------------------------------- */\r\n\r\n\t\t\t\t\t\t// QSA and matchesSelector support\r\n\r\n\t\t\t\t\t\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\r\n\t\t\t\t\t\trbuggyMatches = [];\r\n\r\n\t\t\t\t\t\t// qSa(:focus) reports false when true (Chrome 21)\r\n\t\t\t\t\t\t// We allow this because of a bug in IE8/9 that throws an error\r\n\t\t\t\t\t\t// whenever `document.activeElement` is accessed on an iframe\r\n\t\t\t\t\t\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\r\n\t\t\t\t\t\t// See https://bugs.jquery.com/ticket/13378\r\n\t\t\t\t\t\trbuggyQSA = [];\r\n\r\n\t\t\t\t\t\tif ((support.qsa = rnative.test(document.querySelectorAll))) {\r\n\r\n\t\t\t\t\t\t\t// Build QSA regex\r\n\t\t\t\t\t\t\t// Regex strategy adopted from Diego Perini\r\n\t\t\t\t\t\t\tassert(function (el) {\r\n\r\n\t\t\t\t\t\t\t\tvar input;\r\n\r\n\t\t\t\t\t\t\t\t// Select is set to empty string on purpose\r\n\t\t\t\t\t\t\t\t// This is to test IE's treatment of not explicitly\r\n\t\t\t\t\t\t\t\t// setting a boolean content attribute,\r\n\t\t\t\t\t\t\t\t// since its presence should be enough\r\n\t\t\t\t\t\t\t\t// https://bugs.jquery.com/ticket/12359\r\n\t\t\t\t\t\t\t\tdocElem.appendChild(el).innerHTML = \"<a id='\" + expando + \"'></a>\" +\r\n\t\t\t\t\t\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\r\n\t\t\t\t\t\t\t\t\t\"<option selected=''></option></select>\";\r\n\r\n\t\t\t\t\t\t\t\t// Support: IE8, Opera 11-12.16\r\n\t\t\t\t\t\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\r\n\t\t\t\t\t\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\r\n\t\t\t\t\t\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\r\n\t\t\t\t\t\t\t\tif (el.querySelectorAll(\"[msallowcapture^='']\").length) {\r\n\t\t\t\t\t\t\t\t\trbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Support: IE8\r\n\t\t\t\t\t\t\t\t// Boolean attributes and \"value\" are not treated correctly\r\n\t\t\t\t\t\t\t\tif (!el.querySelectorAll(\"[selected]\").length) {\r\n\t\t\t\t\t\t\t\t\trbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\r\n\t\t\t\t\t\t\t\tif (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\r\n\t\t\t\t\t\t\t\t\trbuggyQSA.push(\"~=\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Support: IE 11+, Edge 15 - 18+\r\n\t\t\t\t\t\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\r\n\t\t\t\t\t\t\t\t// Adding a temporary attribute to the document before the selection works\r\n\t\t\t\t\t\t\t\t// around the issue.\r\n\t\t\t\t\t\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\r\n\t\t\t\t\t\t\t\tinput = document.createElement(\"input\");\r\n\t\t\t\t\t\t\t\tinput.setAttribute(\"name\", \"\");\r\n\t\t\t\t\t\t\t\tel.appendChild(input);\r\n\t\t\t\t\t\t\t\tif (!el.querySelectorAll(\"[name='']\").length) {\r\n\t\t\t\t\t\t\t\t\trbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\r\n\t\t\t\t\t\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Webkit/Opera - :checked should return selected option elements\r\n\t\t\t\t\t\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\r\n\t\t\t\t\t\t\t\t// IE8 throws error here and will not see later tests\r\n\t\t\t\t\t\t\t\tif (!el.querySelectorAll(\":checked\").length) {\r\n\t\t\t\t\t\t\t\t\trbuggyQSA.push(\":checked\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Support: Safari 8+, iOS 8+\r\n\t\t\t\t\t\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\r\n\t\t\t\t\t\t\t\t// In-page `selector#id sibling-combinator selector` fails\r\n\t\t\t\t\t\t\t\tif (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\r\n\t\t\t\t\t\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Support: Firefox <=3.6 - 5 only\r\n\t\t\t\t\t\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\r\n\t\t\t\t\t\t\t\tel.querySelectorAll(\"\\\\\\f\");\r\n\t\t\t\t\t\t\t\trbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tassert(function (el) {\r\n\t\t\t\t\t\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\r\n\t\t\t\t\t\t\t\t\t\"<select disabled='disabled'><option/></select>\";\r\n\r\n\t\t\t\t\t\t\t\t// Support: Windows 8 Native Apps\r\n\t\t\t\t\t\t\t\t// The type and name attributes are restricted during .innerHTML assignment\r\n\t\t\t\t\t\t\t\tvar input = document.createElement(\"input\");\r\n\t\t\t\t\t\t\t\tinput.setAttribute(\"type\", \"hidden\");\r\n\t\t\t\t\t\t\t\tel.appendChild(input).setAttribute(\"name\", \"D\");\r\n\r\n\t\t\t\t\t\t\t\t// Support: IE8\r\n\t\t\t\t\t\t\t\t// Enforce case-sensitivity of name attribute\r\n\t\t\t\t\t\t\t\tif (el.querySelectorAll(\"[name=d]\").length) {\r\n\t\t\t\t\t\t\t\t\trbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\r\n\t\t\t\t\t\t\t\t// IE8 throws error here and will not see later tests\r\n\t\t\t\t\t\t\t\tif (el.querySelectorAll(\":enabled\").length !== 2) {\r\n\t\t\t\t\t\t\t\t\trbuggyQSA.push(\":enabled\", \":disabled\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Support: IE9-11+\r\n\t\t\t\t\t\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\r\n\t\t\t\t\t\t\t\tdocElem.appendChild(el).disabled = true;\r\n\t\t\t\t\t\t\t\tif (el.querySelectorAll(\":disabled\").length !== 2) {\r\n\t\t\t\t\t\t\t\t\trbuggyQSA.push(\":enabled\", \":disabled\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Support: Opera 10 - 11 only\r\n\t\t\t\t\t\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\r\n\t\t\t\t\t\t\t\tel.querySelectorAll(\"*,:x\");\r\n\t\t\t\t\t\t\t\trbuggyQSA.push(\",.*:\");\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ((support.matchesSelector = rnative.test((matches = docElem.matches ||\r\n\t\t\t\t\t\t\tdocElem.webkitMatchesSelector ||\r\n\t\t\t\t\t\t\tdocElem.mozMatchesSelector ||\r\n\t\t\t\t\t\t\tdocElem.oMatchesSelector ||\r\n\t\t\t\t\t\t\tdocElem.msMatchesSelector)))) {\r\n\r\n\t\t\t\t\t\t\tassert(function (el) {\r\n\r\n\t\t\t\t\t\t\t\t// Check to see if it's possible to do matchesSelector\r\n\t\t\t\t\t\t\t\t// on a disconnected node (IE 9)\r\n\t\t\t\t\t\t\t\tsupport.disconnectedMatch = matches.call(el, \"*\");\r\n\r\n\t\t\t\t\t\t\t\t// This should fail with an exception\r\n\t\t\t\t\t\t\t\t// Gecko does not error, returns false instead\r\n\t\t\t\t\t\t\t\tmatches.call(el, \"[s!='']:x\");\r\n\t\t\t\t\t\t\t\trbuggyMatches.push(\"!=\", pseudos);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\trbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\r\n\t\t\t\t\t\trbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\r\n\r\n\t\t\t\t\t\t/* Contains\r\n\t\t\t\t\t\t---------------------------------------------------------------------- */\r\n\t\t\t\t\t\thasCompare = rnative.test(docElem.compareDocumentPosition);\r\n\r\n\t\t\t\t\t\t// Element contains another\r\n\t\t\t\t\t\t// Purposefully self-exclusive\r\n\t\t\t\t\t\t// As in, an element does not contain itself\r\n\t\t\t\t\t\tcontains = hasCompare || rnative.test(docElem.contains) ?\r\n\t\t\t\t\t\t\tfunction (a, b) {\r\n\t\t\t\t\t\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\r\n\t\t\t\t\t\t\t\t\tbup = b && b.parentNode;\r\n\t\t\t\t\t\t\t\treturn a === bup || !!(bup && bup.nodeType === 1 && (\r\n\t\t\t\t\t\t\t\t\tadown.contains ?\r\n\t\t\t\t\t\t\t\t\t\tadown.contains(bup) :\r\n\t\t\t\t\t\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition(bup) & 16\r\n\t\t\t\t\t\t\t\t));\r\n\t\t\t\t\t\t\t} :\r\n\t\t\t\t\t\t\tfunction (a, b) {\r\n\t\t\t\t\t\t\t\tif (b) {\r\n\t\t\t\t\t\t\t\t\twhile ((b = b.parentNode)) {\r\n\t\t\t\t\t\t\t\t\t\tif (b === a) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t/* Sorting\r\n\t\t\t\t\t\t---------------------------------------------------------------------- */\r\n\r\n\t\t\t\t\t\t// Document order sorting\r\n\t\t\t\t\t\tsortOrder = hasCompare ?\r\n\t\t\t\t\t\t\tfunction (a, b) {\r\n\r\n\t\t\t\t\t\t\t\t// Flag for duplicate removal\r\n\t\t\t\t\t\t\t\tif (a === b) {\r\n\t\t\t\t\t\t\t\t\thasDuplicate = true;\r\n\t\t\t\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Sort on method existence if only one input has compareDocumentPosition\r\n\t\t\t\t\t\t\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\r\n\t\t\t\t\t\t\t\tif (compare) {\r\n\t\t\t\t\t\t\t\t\treturn compare;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Calculate position if both inputs belong to the same document\r\n\t\t\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\t\tcompare = (a.ownerDocument || a) == (b.ownerDocument || b) ?\r\n\t\t\t\t\t\t\t\t\ta.compareDocumentPosition(b) :\r\n\r\n\t\t\t\t\t\t\t\t\t// Otherwise we know they are disconnected\r\n\t\t\t\t\t\t\t\t\t1;\r\n\r\n\t\t\t\t\t\t\t\t// Disconnected nodes\r\n\t\t\t\t\t\t\t\tif (compare & 1 ||\r\n\t\t\t\t\t\t\t\t\t(!support.sortDetached && b.compareDocumentPosition(a) === compare)) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Choose the first element that is related to our preferred document\r\n\t\t\t\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\t\t\tif (a == document || a.ownerDocument == preferredDoc &&\r\n\t\t\t\t\t\t\t\t\t\tcontains(preferredDoc, a)) {\r\n\t\t\t\t\t\t\t\t\t\treturn -1;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\t\t\tif (b == document || b.ownerDocument == preferredDoc &&\r\n\t\t\t\t\t\t\t\t\t\tcontains(preferredDoc, b)) {\r\n\t\t\t\t\t\t\t\t\t\treturn 1;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Maintain original order\r\n\t\t\t\t\t\t\t\t\treturn sortInput ?\r\n\t\t\t\t\t\t\t\t\t\t(indexOf(sortInput, a) - indexOf(sortInput, b)) :\r\n\t\t\t\t\t\t\t\t\t\t0;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn compare & 4 ? -1 : 1;\r\n\t\t\t\t\t\t\t} :\r\n\t\t\t\t\t\t\tfunction (a, b) {\r\n\r\n\t\t\t\t\t\t\t\t// Exit early if the nodes are identical\r\n\t\t\t\t\t\t\t\tif (a === b) {\r\n\t\t\t\t\t\t\t\t\thasDuplicate = true;\r\n\t\t\t\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tvar cur,\r\n\t\t\t\t\t\t\t\t\ti = 0,\r\n\t\t\t\t\t\t\t\t\taup = a.parentNode,\r\n\t\t\t\t\t\t\t\t\tbup = b.parentNode,\r\n\t\t\t\t\t\t\t\t\tap = [a],\r\n\t\t\t\t\t\t\t\t\tbp = [b];\r\n\r\n\t\t\t\t\t\t\t\t// Parentless nodes are either documents or disconnected\r\n\t\t\t\t\t\t\t\tif (!aup || !bup) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t\t\t\t/* eslint-disable eqeqeq */\r\n\t\t\t\t\t\t\t\t\treturn a == document ? -1 :\r\n\t\t\t\t\t\t\t\t\t\tb == document ? 1 :\r\n\t\t\t\t\t\t\t\t\t\t\t/* eslint-enable eqeqeq */\r\n\t\t\t\t\t\t\t\t\t\t\taup ? -1 :\r\n\t\t\t\t\t\t\t\t\t\t\t\tbup ? 1 :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsortInput ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(indexOf(sortInput, a) - indexOf(sortInput, b)) :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t0;\r\n\r\n\t\t\t\t\t\t\t\t\t// If the nodes are siblings, we can do a quick check\r\n\t\t\t\t\t\t\t\t} else if (aup === bup) {\r\n\t\t\t\t\t\t\t\t\treturn siblingCheck(a, b);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Otherwise we need full lists of their ancestors for comparison\r\n\t\t\t\t\t\t\t\tcur = a;\r\n\t\t\t\t\t\t\t\twhile ((cur = cur.parentNode)) {\r\n\t\t\t\t\t\t\t\t\tap.unshift(cur);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tcur = b;\r\n\t\t\t\t\t\t\t\twhile ((cur = cur.parentNode)) {\r\n\t\t\t\t\t\t\t\t\tbp.unshift(cur);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Walk down the tree looking for a discrepancy\r\n\t\t\t\t\t\t\t\twhile (ap[i] === bp[i]) {\r\n\t\t\t\t\t\t\t\t\ti++;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn i ?\r\n\r\n\t\t\t\t\t\t\t\t\t// Do a sibling check if the nodes have a common ancestor\r\n\t\t\t\t\t\t\t\t\tsiblingCheck(ap[i], bp[i]) :\r\n\r\n\t\t\t\t\t\t\t\t\t// Otherwise nodes in our document sort first\r\n\t\t\t\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t\t\t\t/* eslint-disable eqeqeq */\r\n\t\t\t\t\t\t\t\t\tap[i] == preferredDoc ? -1 :\r\n\t\t\t\t\t\t\t\t\t\tbp[i] == preferredDoc ? 1 :\r\n\t\t\t\t\t\t\t\t\t\t\t/* eslint-enable eqeqeq */\r\n\t\t\t\t\t\t\t\t\t\t\t0;\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\treturn document;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tSizzle.matches = function (expr, elements) {\r\n\t\t\t\t\t\treturn Sizzle(expr, null, null, elements);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tSizzle.matchesSelector = function (elem, expr) {\r\n\t\t\t\t\t\tsetDocument(elem);\r\n\r\n\t\t\t\t\t\tif (support.matchesSelector && documentIsHTML &&\r\n\t\t\t\t\t\t\t!nonnativeSelectorCache[expr + \" \"] &&\r\n\t\t\t\t\t\t\t(!rbuggyMatches || !rbuggyMatches.test(expr)) &&\r\n\t\t\t\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test(expr))) {\r\n\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tvar ret = matches.call(elem, expr);\r\n\r\n\t\t\t\t\t\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\r\n\t\t\t\t\t\t\t\tif (ret || support.disconnectedMatch ||\r\n\r\n\t\t\t\t\t\t\t\t\t// As well, disconnected nodes are said to be in a document\r\n\t\t\t\t\t\t\t\t\t// fragment in IE 9\r\n\t\t\t\t\t\t\t\t\telem.document && elem.document.nodeType !== 11) {\r\n\t\t\t\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\t\tnonnativeSelectorCache(expr, true);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn Sizzle(expr, document, null, [elem]).length > 0;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tSizzle.contains = function (context, elem) {\r\n\r\n\t\t\t\t\t\t// Set document vars if needed\r\n\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\tif ((context.ownerDocument || context) != document) {\r\n\t\t\t\t\t\t\tsetDocument(context);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn contains(context, elem);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tSizzle.attr = function (elem, name) {\r\n\r\n\t\t\t\t\t\t// Set document vars if needed\r\n\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\tif ((elem.ownerDocument || elem) != document) {\r\n\t\t\t\t\t\t\tsetDocument(elem);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar fn = Expr.attrHandle[name.toLowerCase()],\r\n\r\n\t\t\t\t\t\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\r\n\t\t\t\t\t\t\tval = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ?\r\n\t\t\t\t\t\t\t\tfn(elem, name, !documentIsHTML) :\r\n\t\t\t\t\t\t\t\tundefined;\r\n\r\n\t\t\t\t\t\treturn val !== undefined ?\r\n\t\t\t\t\t\t\tval :\r\n\t\t\t\t\t\t\tsupport.attributes || !documentIsHTML ?\r\n\t\t\t\t\t\t\t\telem.getAttribute(name) :\r\n\t\t\t\t\t\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\r\n\t\t\t\t\t\t\t\t\tval.value :\r\n\t\t\t\t\t\t\t\t\tnull;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tSizzle.escape = function (sel) {\r\n\t\t\t\t\t\treturn (sel + \"\").replace(rcssescape, fcssescape);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tSizzle.error = function (msg) {\r\n\t\t\t\t\t\tthrow new Error(\"Syntax error, unrecognized expression: \" + msg);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Document sorting and removing duplicates\r\n\t\t\t\t\t * @param {ArrayLike} results\r\n\t\t\t\t\t */\r\n\t\t\t\t\tSizzle.uniqueSort = function (results) {\r\n\t\t\t\t\t\tvar elem,\r\n\t\t\t\t\t\t\tduplicates = [],\r\n\t\t\t\t\t\t\tj = 0,\r\n\t\t\t\t\t\t\ti = 0;\r\n\r\n\t\t\t\t\t\t// Unless we *know* we can detect duplicates, assume their presence\r\n\t\t\t\t\t\thasDuplicate = !support.detectDuplicates;\r\n\t\t\t\t\t\tsortInput = !support.sortStable && results.slice(0);\r\n\t\t\t\t\t\tresults.sort(sortOrder);\r\n\r\n\t\t\t\t\t\tif (hasDuplicate) {\r\n\t\t\t\t\t\t\twhile ((elem = results[i++])) {\r\n\t\t\t\t\t\t\t\tif (elem === results[i]) {\r\n\t\t\t\t\t\t\t\t\tj = duplicates.push(i);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\twhile (j--) {\r\n\t\t\t\t\t\t\t\tresults.splice(duplicates[j], 1);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Clear input after sorting to release objects\r\n\t\t\t\t\t\t// See https://github.com/jquery/sizzle/pull/225\r\n\t\t\t\t\t\tsortInput = null;\r\n\r\n\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Utility function for retrieving the text value of an array of DOM nodes\r\n\t\t\t\t\t * @param {Array|Element} elem\r\n\t\t\t\t\t */\r\n\t\t\t\t\tgetText = Sizzle.getText = function (elem) {\r\n\t\t\t\t\t\tvar node,\r\n\t\t\t\t\t\t\tret = \"\",\r\n\t\t\t\t\t\t\ti = 0,\r\n\t\t\t\t\t\t\tnodeType = elem.nodeType;\r\n\r\n\t\t\t\t\t\tif (!nodeType) {\r\n\r\n\t\t\t\t\t\t\t// If no nodeType, this is expected to be an array\r\n\t\t\t\t\t\t\twhile ((node = elem[i++])) {\r\n\r\n\t\t\t\t\t\t\t\t// Do not traverse comment nodes\r\n\t\t\t\t\t\t\t\tret += getText(node);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\r\n\r\n\t\t\t\t\t\t\t// Use textContent for elements\r\n\t\t\t\t\t\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\r\n\t\t\t\t\t\t\tif (typeof elem.textContent === \"string\") {\r\n\t\t\t\t\t\t\t\treturn elem.textContent;\r\n\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t// Traverse its children\r\n\t\t\t\t\t\t\t\tfor (elem = elem.firstChild; elem; elem = elem.nextSibling) {\r\n\t\t\t\t\t\t\t\t\tret += getText(elem);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (nodeType === 3 || nodeType === 4) {\r\n\t\t\t\t\t\t\treturn elem.nodeValue;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Do not include comment or processing instruction nodes\r\n\r\n\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tExpr = Sizzle.selectors = {\r\n\r\n\t\t\t\t\t\t// Can be adjusted by the user\r\n\t\t\t\t\t\tcacheLength: 50,\r\n\r\n\t\t\t\t\t\tcreatePseudo: markFunction,\r\n\r\n\t\t\t\t\t\tmatch: matchExpr,\r\n\r\n\t\t\t\t\t\tattrHandle: {},\r\n\r\n\t\t\t\t\t\tfind: {},\r\n\r\n\t\t\t\t\t\trelative: {\r\n\t\t\t\t\t\t\t\">\": { dir: \"parentNode\", first: true },\r\n\t\t\t\t\t\t\t\" \": { dir: \"parentNode\" },\r\n\t\t\t\t\t\t\t\"+\": { dir: \"previousSibling\", first: true },\r\n\t\t\t\t\t\t\t\"~\": { dir: \"previousSibling\" }\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tpreFilter: {\r\n\t\t\t\t\t\t\t\"ATTR\": function (match) {\r\n\t\t\t\t\t\t\t\tmatch[1] = match[1].replace(runescape, funescape);\r\n\r\n\t\t\t\t\t\t\t\t// Move the given value to match[3] whether quoted or unquoted\r\n\t\t\t\t\t\t\t\tmatch[3] = (match[3] || match[4] ||\r\n\t\t\t\t\t\t\t\t\tmatch[5] || \"\").replace(runescape, funescape);\r\n\r\n\t\t\t\t\t\t\t\tif (match[2] === \"~=\") {\r\n\t\t\t\t\t\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn match.slice(0, 4);\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\"CHILD\": function (match) {\r\n\r\n\t\t\t\t\t\t\t\t/* matches from matchExpr[\"CHILD\"]\r\n\t\t\t\t\t\t\t\t\t1 type (only|nth|...)\r\n\t\t\t\t\t\t\t\t\t2 what (child|of-type)\r\n\t\t\t\t\t\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\r\n\t\t\t\t\t\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\r\n\t\t\t\t\t\t\t\t\t5 sign of xn-component\r\n\t\t\t\t\t\t\t\t\t6 x of xn-component\r\n\t\t\t\t\t\t\t\t\t7 sign of y-component\r\n\t\t\t\t\t\t\t\t\t8 y of y-component\r\n\t\t\t\t\t\t\t\t*/\r\n\t\t\t\t\t\t\t\tmatch[1] = match[1].toLowerCase();\r\n\r\n\t\t\t\t\t\t\t\tif (match[1].slice(0, 3) === \"nth\") {\r\n\r\n\t\t\t\t\t\t\t\t\t// nth-* requires argument\r\n\t\t\t\t\t\t\t\t\tif (!match[3]) {\r\n\t\t\t\t\t\t\t\t\t\tSizzle.error(match[0]);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\r\n\t\t\t\t\t\t\t\t\t// remember that false/true cast respectively to 0/1\r\n\t\t\t\t\t\t\t\t\tmatch[4] = +(match[4] ?\r\n\t\t\t\t\t\t\t\t\t\tmatch[5] + (match[6] || 1) :\r\n\t\t\t\t\t\t\t\t\t\t2 * (match[3] === \"even\" || match[3] === \"odd\"));\r\n\t\t\t\t\t\t\t\t\tmatch[5] = +((match[7] + match[8]) || match[3] === \"odd\");\r\n\r\n\t\t\t\t\t\t\t\t\t// other types prohibit arguments\r\n\t\t\t\t\t\t\t\t} else if (match[3]) {\r\n\t\t\t\t\t\t\t\t\tSizzle.error(match[0]);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn match;\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\"PSEUDO\": function (match) {\r\n\t\t\t\t\t\t\t\tvar excess,\r\n\t\t\t\t\t\t\t\t\tunquoted = !match[6] && match[2];\r\n\r\n\t\t\t\t\t\t\t\tif (matchExpr[\"CHILD\"].test(match[0])) {\r\n\t\t\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Accept quoted arguments as-is\r\n\t\t\t\t\t\t\t\tif (match[3]) {\r\n\t\t\t\t\t\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\r\n\r\n\t\t\t\t\t\t\t\t\t// Strip excess characters from unquoted arguments\r\n\t\t\t\t\t\t\t\t} else if (unquoted && rpseudo.test(unquoted) &&\r\n\r\n\t\t\t\t\t\t\t\t\t// Get excess from tokenize (recursively)\r\n\t\t\t\t\t\t\t\t\t(excess = tokenize(unquoted, true)) &&\r\n\r\n\t\t\t\t\t\t\t\t\t// advance to the next closing parenthesis\r\n\t\t\t\t\t\t\t\t\t(excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\r\n\r\n\t\t\t\t\t\t\t\t\t// excess is a negative index\r\n\t\t\t\t\t\t\t\t\tmatch[0] = match[0].slice(0, excess);\r\n\t\t\t\t\t\t\t\t\tmatch[2] = unquoted.slice(0, excess);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\r\n\t\t\t\t\t\t\t\treturn match.slice(0, 3);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tfilter: {\r\n\r\n\t\t\t\t\t\t\t\"TAG\": function (nodeNameSelector) {\r\n\t\t\t\t\t\t\t\tvar nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\r\n\t\t\t\t\t\t\t\treturn nodeNameSelector === \"*\" ?\r\n\t\t\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t\t} :\r\n\t\t\t\t\t\t\t\t\tfunction (elem) {\r\n\t\t\t\t\t\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\"CLASS\": function (className) {\r\n\t\t\t\t\t\t\t\tvar pattern = classCache[className + \" \"];\r\n\r\n\t\t\t\t\t\t\t\treturn pattern ||\r\n\t\t\t\t\t\t\t\t\t(pattern = new RegExp(\"(^|\" + whitespace +\r\n\t\t\t\t\t\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(\r\n\t\t\t\t\t\t\t\t\t\t\tclassName, function (elem) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn pattern.test(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\telem.getAttribute(\"class\") ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\"ATTR\": function (name, operator, check) {\r\n\t\t\t\t\t\t\t\treturn function (elem) {\r\n\t\t\t\t\t\t\t\t\tvar result = Sizzle.attr(elem, name);\r\n\r\n\t\t\t\t\t\t\t\t\tif (result == null) {\r\n\t\t\t\t\t\t\t\t\t\treturn operator === \"!=\";\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif (!operator) {\r\n\t\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tresult += \"\";\r\n\r\n\t\t\t\t\t\t\t\t\t/* eslint-disable max-len */\r\n\r\n\t\t\t\t\t\t\t\t\treturn operator === \"=\" ? result === check :\r\n\t\t\t\t\t\t\t\t\t\toperator === \"!=\" ? result !== check :\r\n\t\t\t\t\t\t\t\t\t\t\toperator === \"^=\" ? check && result.indexOf(check) === 0 :\r\n\t\t\t\t\t\t\t\t\t\t\t\toperator === \"*=\" ? check && result.indexOf(check) > -1 :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\toperator === \"$=\" ? check && result.slice(-check.length) === check :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfalse;\r\n\t\t\t\t\t\t\t\t\t/* eslint-enable max-len */\r\n\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\"CHILD\": function (type, what, _argument, first, last) {\r\n\t\t\t\t\t\t\t\tvar simple = type.slice(0, 3) !== \"nth\",\r\n\t\t\t\t\t\t\t\t\tforward = type.slice(-4) !== \"last\",\r\n\t\t\t\t\t\t\t\t\tofType = what === \"of-type\";\r\n\r\n\t\t\t\t\t\t\t\treturn first === 1 && last === 0 ?\r\n\r\n\t\t\t\t\t\t\t\t\t// Shortcut for :nth-*(n)\r\n\t\t\t\t\t\t\t\t\tfunction (elem) {\r\n\t\t\t\t\t\t\t\t\t\treturn !!elem.parentNode;\r\n\t\t\t\t\t\t\t\t\t} :\r\n\r\n\t\t\t\t\t\t\t\t\tfunction (elem, _context, xml) {\r\n\t\t\t\t\t\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\r\n\t\t\t\t\t\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\r\n\t\t\t\t\t\t\t\t\t\t\tparent = elem.parentNode,\r\n\t\t\t\t\t\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\r\n\t\t\t\t\t\t\t\t\t\t\tuseCache = !xml && !ofType,\r\n\t\t\t\t\t\t\t\t\t\t\tdiff = false;\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (parent) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\r\n\t\t\t\t\t\t\t\t\t\t\tif (simple) {\r\n\t\t\t\t\t\t\t\t\t\t\t\twhile (dir) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnode = elem;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twhile ((node = node[dir])) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (ofType ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tstart = [forward ? parent.firstChild : parent.lastChild];\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\r\n\t\t\t\t\t\t\t\t\t\t\tif (forward && useCache) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\r\n\t\t\t\t\t\t\t\t\t\t\t\tnode = parent;\r\n\t\t\t\t\t\t\t\t\t\t\t\touterCache = node[expando] || (node[expando] = {});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\r\n\t\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[node.uniqueID] ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[node.uniqueID] = {});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tcache = uniqueCache[type] || [];\r\n\t\t\t\t\t\t\t\t\t\t\t\tnodeIndex = cache[0] === dirruns && cache[1];\r\n\t\t\t\t\t\t\t\t\t\t\t\tdiff = nodeIndex && cache[2];\r\n\t\t\t\t\t\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[nodeIndex];\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\twhile ((node = ++nodeIndex && node && node[dir] ||\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop())) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (node.nodeType === 1 && ++diff && node === elem) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tuniqueCache[type] = [dirruns, nodeIndex, diff];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Use previously-cached element index if available\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (useCache) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnode = elem;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\touterCache = node[expando] || (node[expando] = {});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[node.uniqueID] ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[node.uniqueID] = {});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcache = uniqueCache[type] || [];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnodeIndex = cache[0] === dirruns && cache[1];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdiff = nodeIndex;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// xml :nth-child(...)\r\n\t\t\t\t\t\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (diff === false) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twhile ((node = ++nodeIndex && node && node[dir] ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop())) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ((ofType ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t++diff) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (useCache) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\touterCache = node[expando] ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(node[expando] = {});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[node.uniqueID] ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[node.uniqueID] = {});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tuniqueCache[type] = [dirruns, diff];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (node === elem) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\r\n\t\t\t\t\t\t\t\t\t\t\tdiff -= last;\r\n\t\t\t\t\t\t\t\t\t\t\treturn diff === first || (diff % first === 0 && diff / first >= 0);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\"PSEUDO\": function (pseudo, argument) {\r\n\r\n\t\t\t\t\t\t\t\t// pseudo-class names are case-insensitive\r\n\t\t\t\t\t\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\r\n\t\t\t\t\t\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\r\n\t\t\t\t\t\t\t\t// Remember that setFilters inherits from pseudos\r\n\t\t\t\t\t\t\t\tvar args,\r\n\t\t\t\t\t\t\t\t\tfn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] ||\r\n\t\t\t\t\t\t\t\t\t\tSizzle.error(\"unsupported pseudo: \" + pseudo);\r\n\r\n\t\t\t\t\t\t\t\t// The user may use createPseudo to indicate that\r\n\t\t\t\t\t\t\t\t// arguments are needed to create the filter function\r\n\t\t\t\t\t\t\t\t// just as Sizzle does\r\n\t\t\t\t\t\t\t\tif (fn[expando]) {\r\n\t\t\t\t\t\t\t\t\treturn fn(argument);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// But maintain support for old signatures\r\n\t\t\t\t\t\t\t\tif (fn.length > 1) {\r\n\t\t\t\t\t\t\t\t\targs = [pseudo, pseudo, \"\", argument];\r\n\t\t\t\t\t\t\t\t\treturn Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ?\r\n\t\t\t\t\t\t\t\t\t\tmarkFunction(function (seed, matches) {\r\n\t\t\t\t\t\t\t\t\t\t\tvar idx,\r\n\t\t\t\t\t\t\t\t\t\t\t\tmatched = fn(seed, argument),\r\n\t\t\t\t\t\t\t\t\t\t\t\ti = matched.length;\r\n\t\t\t\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tidx = indexOf(seed, matched[i]);\r\n\t\t\t\t\t\t\t\t\t\t\t\tseed[idx] = !(matches[idx] = matched[i]);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}) :\r\n\t\t\t\t\t\t\t\t\t\tfunction (elem) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn fn(elem, 0, args);\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn fn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tpseudos: {\r\n\r\n\t\t\t\t\t\t\t// Potentially complex pseudos\r\n\t\t\t\t\t\t\t\"not\": markFunction(function (selector) {\r\n\r\n\t\t\t\t\t\t\t\t// Trim the selector passed to compile\r\n\t\t\t\t\t\t\t\t// to avoid treating leading and trailing\r\n\t\t\t\t\t\t\t\t// spaces as combinators\r\n\t\t\t\t\t\t\t\tvar input = [],\r\n\t\t\t\t\t\t\t\t\tresults = [],\r\n\t\t\t\t\t\t\t\t\tmatcher = compile(selector.replace(rtrim, \"$1\"));\r\n\r\n\t\t\t\t\t\t\t\treturn matcher[expando] ?\r\n\t\t\t\t\t\t\t\t\tmarkFunction(function (seed, matches, _context, xml) {\r\n\t\t\t\t\t\t\t\t\t\tvar elem,\r\n\t\t\t\t\t\t\t\t\t\t\tunmatched = matcher(seed, null, xml, []),\r\n\t\t\t\t\t\t\t\t\t\t\ti = seed.length;\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Match elements unmatched by `matcher`\r\n\t\t\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\t\t\tif ((elem = unmatched[i])) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}) :\r\n\t\t\t\t\t\t\t\t\tfunction (elem, _context, xml) {\r\n\t\t\t\t\t\t\t\t\t\tinput[0] = elem;\r\n\t\t\t\t\t\t\t\t\t\tmatcher(input, null, xml, results);\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Don't keep the element (issue #299)\r\n\t\t\t\t\t\t\t\t\t\tinput[0] = null;\r\n\t\t\t\t\t\t\t\t\t\treturn !results.pop();\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t\t\"has\": markFunction(function (selector) {\r\n\t\t\t\t\t\t\t\treturn function (elem) {\r\n\t\t\t\t\t\t\t\t\treturn Sizzle(selector, elem).length > 0;\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t\t\"contains\": markFunction(function (text) {\r\n\t\t\t\t\t\t\t\ttext = text.replace(runescape, funescape);\r\n\t\t\t\t\t\t\t\treturn function (elem) {\r\n\t\t\t\t\t\t\t\t\treturn (elem.textContent || getText(elem)).indexOf(text) > -1;\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t\t// \"Whether an element is represented by a :lang() selector\r\n\t\t\t\t\t\t\t// is based solely on the element's language value\r\n\t\t\t\t\t\t\t// being equal to the identifier C,\r\n\t\t\t\t\t\t\t// or beginning with the identifier C immediately followed by \"-\".\r\n\t\t\t\t\t\t\t// The matching of C against the element's language value is performed case-insensitively.\r\n\t\t\t\t\t\t\t// The identifier C does not have to be a valid language name.\"\r\n\t\t\t\t\t\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\r\n\t\t\t\t\t\t\t\"lang\": markFunction(function (lang) {\r\n\r\n\t\t\t\t\t\t\t\t// lang value must be a valid identifier\r\n\t\t\t\t\t\t\t\tif (!ridentifier.test(lang || \"\")) {\r\n\t\t\t\t\t\t\t\t\tSizzle.error(\"unsupported lang: \" + lang);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tlang = lang.replace(runescape, funescape).toLowerCase();\r\n\t\t\t\t\t\t\t\treturn function (elem) {\r\n\t\t\t\t\t\t\t\t\tvar elemLang;\r\n\t\t\t\t\t\t\t\t\tdo {\r\n\t\t\t\t\t\t\t\t\t\tif ((elemLang = documentIsHTML ?\r\n\t\t\t\t\t\t\t\t\t\t\telem.lang :\r\n\t\t\t\t\t\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\"))) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\telemLang = elemLang.toLowerCase();\r\n\t\t\t\t\t\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t} while ((elem = elem.parentNode) && elem.nodeType === 1);\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t\t// Miscellaneous\r\n\t\t\t\t\t\t\t\"target\": function (elem) {\r\n\t\t\t\t\t\t\t\tvar hash = window.location && window.location.hash;\r\n\t\t\t\t\t\t\t\treturn hash && hash.slice(1) === elem.id;\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\"root\": function (elem) {\r\n\t\t\t\t\t\t\t\treturn elem === docElem;\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\"focus\": function (elem) {\r\n\t\t\t\t\t\t\t\treturn elem === document.activeElement &&\r\n\t\t\t\t\t\t\t\t\t(!document.hasFocus || document.hasFocus()) &&\r\n\t\t\t\t\t\t\t\t\t!!(elem.type || elem.href || ~elem.tabIndex);\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t// Boolean properties\r\n\t\t\t\t\t\t\t\"enabled\": createDisabledPseudo(false),\r\n\t\t\t\t\t\t\t\"disabled\": createDisabledPseudo(true),\r\n\r\n\t\t\t\t\t\t\t\"checked\": function (elem) {\r\n\r\n\t\t\t\t\t\t\t\t// In CSS3, :checked should return both checked and selected elements\r\n\t\t\t\t\t\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\r\n\t\t\t\t\t\t\t\tvar nodeName = elem.nodeName.toLowerCase();\r\n\t\t\t\t\t\t\t\treturn (nodeName === \"input\" && !!elem.checked) ||\r\n\t\t\t\t\t\t\t\t\t(nodeName === \"option\" && !!elem.selected);\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\"selected\": function (elem) {\r\n\r\n\t\t\t\t\t\t\t\t// Accessing this property makes selected-by-default\r\n\t\t\t\t\t\t\t\t// options in Safari work properly\r\n\t\t\t\t\t\t\t\tif (elem.parentNode) {\r\n\t\t\t\t\t\t\t\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\t\t\t\t\t\t\t\telem.parentNode.selectedIndex;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn elem.selected === true;\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t// Contents\r\n\t\t\t\t\t\t\t\"empty\": function (elem) {\r\n\r\n\t\t\t\t\t\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\r\n\t\t\t\t\t\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\r\n\t\t\t\t\t\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\r\n\t\t\t\t\t\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\r\n\t\t\t\t\t\t\t\tfor (elem = elem.firstChild; elem; elem = elem.nextSibling) {\r\n\t\t\t\t\t\t\t\t\tif (elem.nodeType < 6) {\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\"parent\": function (elem) {\r\n\t\t\t\t\t\t\t\treturn !Expr.pseudos[\"empty\"](elem);\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t// Element/input types\r\n\t\t\t\t\t\t\t\"header\": function (elem) {\r\n\t\t\t\t\t\t\t\treturn rheader.test(elem.nodeName);\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\"input\": function (elem) {\r\n\t\t\t\t\t\t\t\treturn rinputs.test(elem.nodeName);\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\"button\": function (elem) {\r\n\t\t\t\t\t\t\t\tvar name = elem.nodeName.toLowerCase();\r\n\t\t\t\t\t\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\"text\": function (elem) {\r\n\t\t\t\t\t\t\t\tvar attr;\r\n\t\t\t\t\t\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\r\n\t\t\t\t\t\t\t\t\telem.type === \"text\" &&\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: IE<8\r\n\t\t\t\t\t\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\r\n\t\t\t\t\t\t\t\t\t((attr = elem.getAttribute(\"type\")) == null ||\r\n\t\t\t\t\t\t\t\t\t\tattr.toLowerCase() === \"text\");\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t// Position-in-collection\r\n\t\t\t\t\t\t\t\"first\": createPositionalPseudo(function () {\r\n\t\t\t\t\t\t\t\treturn [0];\r\n\t\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t\t\"last\": createPositionalPseudo(function (_matchIndexes, length) {\r\n\t\t\t\t\t\t\t\treturn [length - 1];\r\n\t\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t\t\"eq\": createPositionalPseudo(function (_matchIndexes, length, argument) {\r\n\t\t\t\t\t\t\t\treturn [argument < 0 ? argument + length : argument];\r\n\t\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t\t\"even\": createPositionalPseudo(function (matchIndexes, length) {\r\n\t\t\t\t\t\t\t\tvar i = 0;\r\n\t\t\t\t\t\t\t\tfor (; i < length; i += 2) {\r\n\t\t\t\t\t\t\t\t\tmatchIndexes.push(i);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn matchIndexes;\r\n\t\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t\t\"odd\": createPositionalPseudo(function (matchIndexes, length) {\r\n\t\t\t\t\t\t\t\tvar i = 1;\r\n\t\t\t\t\t\t\t\tfor (; i < length; i += 2) {\r\n\t\t\t\t\t\t\t\t\tmatchIndexes.push(i);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn matchIndexes;\r\n\t\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t\t\"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\r\n\t\t\t\t\t\t\t\tvar i = argument < 0 ?\r\n\t\t\t\t\t\t\t\t\targument + length :\r\n\t\t\t\t\t\t\t\t\targument > length ?\r\n\t\t\t\t\t\t\t\t\t\tlength :\r\n\t\t\t\t\t\t\t\t\t\targument;\r\n\t\t\t\t\t\t\t\tfor (; --i >= 0;) {\r\n\t\t\t\t\t\t\t\t\tmatchIndexes.push(i);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn matchIndexes;\r\n\t\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t\t\"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\r\n\t\t\t\t\t\t\t\tvar i = argument < 0 ? argument + length : argument;\r\n\t\t\t\t\t\t\t\tfor (; ++i < length;) {\r\n\t\t\t\t\t\t\t\t\tmatchIndexes.push(i);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn matchIndexes;\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\r\n\r\n\t\t\t\t\t// Add button/input type pseudos\r\n\t\t\t\t\tfor (i in { radio: true, checkbox: true, file: true, password: true, image: true }) {\r\n\t\t\t\t\t\tExpr.pseudos[i] = createInputPseudo(i);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (i in { submit: true, reset: true }) {\r\n\t\t\t\t\t\tExpr.pseudos[i] = createButtonPseudo(i);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Easy API for creating new setFilters\r\n\t\t\t\t\tfunction setFilters() { }\r\n\t\t\t\t\tsetFilters.prototype = Expr.filters = Expr.pseudos;\r\n\t\t\t\t\tExpr.setFilters = new setFilters();\r\n\r\n\t\t\t\t\ttokenize = Sizzle.tokenize = function (selector, parseOnly) {\r\n\t\t\t\t\t\tvar matched, match, tokens, type,\r\n\t\t\t\t\t\t\tsoFar, groups, preFilters,\r\n\t\t\t\t\t\t\tcached = tokenCache[selector + \" \"];\r\n\r\n\t\t\t\t\t\tif (cached) {\r\n\t\t\t\t\t\t\treturn parseOnly ? 0 : cached.slice(0);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tsoFar = selector;\r\n\t\t\t\t\t\tgroups = [];\r\n\t\t\t\t\t\tpreFilters = Expr.preFilter;\r\n\r\n\t\t\t\t\t\twhile (soFar) {\r\n\r\n\t\t\t\t\t\t\t// Comma and first run\r\n\t\t\t\t\t\t\tif (!matched || (match = rcomma.exec(soFar))) {\r\n\t\t\t\t\t\t\t\tif (match) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Don't consume trailing commas as valid\r\n\t\t\t\t\t\t\t\t\tsoFar = soFar.slice(match[0].length) || soFar;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tgroups.push((tokens = []));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tmatched = false;\r\n\r\n\t\t\t\t\t\t\t// Combinators\r\n\t\t\t\t\t\t\tif ((match = rcombinators.exec(soFar))) {\r\n\t\t\t\t\t\t\t\tmatched = match.shift();\r\n\t\t\t\t\t\t\t\ttokens.push({\r\n\t\t\t\t\t\t\t\t\tvalue: matched,\r\n\r\n\t\t\t\t\t\t\t\t\t// Cast descendant combinators to space\r\n\t\t\t\t\t\t\t\t\ttype: match[0].replace(rtrim, \" \")\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tsoFar = soFar.slice(matched.length);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Filters\r\n\t\t\t\t\t\t\tfor (type in Expr.filter) {\r\n\t\t\t\t\t\t\t\tif ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] ||\r\n\t\t\t\t\t\t\t\t\t(match = preFilters[type](match)))) {\r\n\t\t\t\t\t\t\t\t\tmatched = match.shift();\r\n\t\t\t\t\t\t\t\t\ttokens.push({\r\n\t\t\t\t\t\t\t\t\t\tvalue: matched,\r\n\t\t\t\t\t\t\t\t\t\ttype: type,\r\n\t\t\t\t\t\t\t\t\t\tmatches: match\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\tsoFar = soFar.slice(matched.length);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (!matched) {\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Return the length of the invalid excess\r\n\t\t\t\t\t\t// if we're just parsing\r\n\t\t\t\t\t\t// Otherwise, throw an error or return tokens\r\n\t\t\t\t\t\treturn parseOnly ?\r\n\t\t\t\t\t\t\tsoFar.length :\r\n\t\t\t\t\t\t\tsoFar ?\r\n\t\t\t\t\t\t\t\tSizzle.error(selector) :\r\n\r\n\t\t\t\t\t\t\t\t// Cache the tokens\r\n\t\t\t\t\t\t\t\ttokenCache(selector, groups).slice(0);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tfunction toSelector(tokens) {\r\n\t\t\t\t\t\tvar i = 0,\r\n\t\t\t\t\t\t\tlen = tokens.length,\r\n\t\t\t\t\t\t\tselector = \"\";\r\n\t\t\t\t\t\tfor (; i < len; i++) {\r\n\t\t\t\t\t\t\tselector += tokens[i].value;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn selector;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction addCombinator(matcher, combinator, base) {\r\n\t\t\t\t\t\tvar dir = combinator.dir,\r\n\t\t\t\t\t\t\tskip = combinator.next,\r\n\t\t\t\t\t\t\tkey = skip || dir,\r\n\t\t\t\t\t\t\tcheckNonElements = base && key === \"parentNode\",\r\n\t\t\t\t\t\t\tdoneName = done++;\r\n\r\n\t\t\t\t\t\treturn combinator.first ?\r\n\r\n\t\t\t\t\t\t\t// Check against closest ancestor/preceding element\r\n\t\t\t\t\t\t\tfunction (elem, context, xml) {\r\n\t\t\t\t\t\t\t\twhile ((elem = elem[dir])) {\r\n\t\t\t\t\t\t\t\t\tif (elem.nodeType === 1 || checkNonElements) {\r\n\t\t\t\t\t\t\t\t\t\treturn matcher(elem, context, xml);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t} :\r\n\r\n\t\t\t\t\t\t\t// Check against all ancestor/preceding elements\r\n\t\t\t\t\t\t\tfunction (elem, context, xml) {\r\n\t\t\t\t\t\t\t\tvar oldCache, uniqueCache, outerCache,\r\n\t\t\t\t\t\t\t\t\tnewCache = [dirruns, doneName];\r\n\r\n\t\t\t\t\t\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\r\n\t\t\t\t\t\t\t\tif (xml) {\r\n\t\t\t\t\t\t\t\t\twhile ((elem = elem[dir])) {\r\n\t\t\t\t\t\t\t\t\t\tif (elem.nodeType === 1 || checkNonElements) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (matcher(elem, context, xml)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\twhile ((elem = elem[dir])) {\r\n\t\t\t\t\t\t\t\t\t\tif (elem.nodeType === 1 || checkNonElements) {\r\n\t\t\t\t\t\t\t\t\t\t\touterCache = elem[expando] || (elem[expando] = {});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\r\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\r\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[elem.uniqueID] ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[elem.uniqueID] = {});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (skip && skip === elem.nodeName.toLowerCase()) {\r\n\t\t\t\t\t\t\t\t\t\t\t\telem = elem[dir] || elem;\r\n\t\t\t\t\t\t\t\t\t\t\t} else if ((oldCache = uniqueCache[key]) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\toldCache[0] === dirruns && oldCache[1] === doneName) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn (newCache[2] = oldCache[2]);\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\r\n\t\t\t\t\t\t\t\t\t\t\t\tuniqueCache[key] = newCache;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\r\n\t\t\t\t\t\t\t\t\t\t\t\tif ((newCache[2] = matcher(elem, context, xml))) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction elementMatcher(matchers) {\r\n\t\t\t\t\t\treturn matchers.length > 1 ?\r\n\t\t\t\t\t\t\tfunction (elem, context, xml) {\r\n\t\t\t\t\t\t\t\tvar i = matchers.length;\r\n\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\tif (!matchers[i](elem, context, xml)) {\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t} :\r\n\t\t\t\t\t\t\tmatchers[0];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction multipleContexts(selector, contexts, results) {\r\n\t\t\t\t\t\tvar i = 0,\r\n\t\t\t\t\t\t\tlen = contexts.length;\r\n\t\t\t\t\t\tfor (; i < len; i++) {\r\n\t\t\t\t\t\t\tSizzle(selector, contexts[i], results);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction condense(unmatched, map, filter, context, xml) {\r\n\t\t\t\t\t\tvar elem,\r\n\t\t\t\t\t\t\tnewUnmatched = [],\r\n\t\t\t\t\t\t\ti = 0,\r\n\t\t\t\t\t\t\tlen = unmatched.length,\r\n\t\t\t\t\t\t\tmapped = map != null;\r\n\r\n\t\t\t\t\t\tfor (; i < len; i++) {\r\n\t\t\t\t\t\t\tif ((elem = unmatched[i])) {\r\n\t\t\t\t\t\t\t\tif (!filter || filter(elem, context, xml)) {\r\n\t\t\t\t\t\t\t\t\tnewUnmatched.push(elem);\r\n\t\t\t\t\t\t\t\t\tif (mapped) {\r\n\t\t\t\t\t\t\t\t\t\tmap.push(i);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn newUnmatched;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\r\n\t\t\t\t\t\tif (postFilter && !postFilter[expando]) {\r\n\t\t\t\t\t\t\tpostFilter = setMatcher(postFilter);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (postFinder && !postFinder[expando]) {\r\n\t\t\t\t\t\t\tpostFinder = setMatcher(postFinder, postSelector);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn markFunction(function (seed, results, context, xml) {\r\n\t\t\t\t\t\t\tvar temp, i, elem,\r\n\t\t\t\t\t\t\t\tpreMap = [],\r\n\t\t\t\t\t\t\t\tpostMap = [],\r\n\t\t\t\t\t\t\t\tpreexisting = results.length,\r\n\r\n\t\t\t\t\t\t\t\t// Get initial elements from seed or context\r\n\t\t\t\t\t\t\t\telems = seed || multipleContexts(\r\n\t\t\t\t\t\t\t\t\tselector || \"*\",\r\n\t\t\t\t\t\t\t\t\tcontext.nodeType ? [context] : context,\r\n\t\t\t\t\t\t\t\t\t[]\r\n\t\t\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\r\n\t\t\t\t\t\t\t\tmatcherIn = preFilter && (seed || !selector) ?\r\n\t\t\t\t\t\t\t\t\tcondense(elems, preMap, preFilter, context, xml) :\r\n\t\t\t\t\t\t\t\t\telems,\r\n\r\n\t\t\t\t\t\t\t\tmatcherOut = matcher ?\r\n\r\n\t\t\t\t\t\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\r\n\t\t\t\t\t\t\t\t\tpostFinder || (seed ? preFilter : preexisting || postFilter) ?\r\n\r\n\t\t\t\t\t\t\t\t\t\t// ...intermediate processing is necessary\r\n\t\t\t\t\t\t\t\t\t\t[] :\r\n\r\n\t\t\t\t\t\t\t\t\t\t// ...otherwise use results directly\r\n\t\t\t\t\t\t\t\t\t\tresults :\r\n\t\t\t\t\t\t\t\t\tmatcherIn;\r\n\r\n\t\t\t\t\t\t\t// Find primary matches\r\n\t\t\t\t\t\t\tif (matcher) {\r\n\t\t\t\t\t\t\t\tmatcher(matcherIn, matcherOut, context, xml);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Apply postFilter\r\n\t\t\t\t\t\t\tif (postFilter) {\r\n\t\t\t\t\t\t\t\ttemp = condense(matcherOut, postMap);\r\n\t\t\t\t\t\t\t\tpostFilter(temp, [], context, xml);\r\n\r\n\t\t\t\t\t\t\t\t// Un-match failing elements by moving them back to matcherIn\r\n\t\t\t\t\t\t\t\ti = temp.length;\r\n\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\tif ((elem = temp[i])) {\r\n\t\t\t\t\t\t\t\t\t\tmatcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (seed) {\r\n\t\t\t\t\t\t\t\tif (postFinder || preFilter) {\r\n\t\t\t\t\t\t\t\t\tif (postFinder) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\r\n\t\t\t\t\t\t\t\t\t\ttemp = [];\r\n\t\t\t\t\t\t\t\t\t\ti = matcherOut.length;\r\n\t\t\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\t\t\tif ((elem = matcherOut[i])) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\r\n\t\t\t\t\t\t\t\t\t\t\t\ttemp.push((matcherIn[i] = elem));\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tpostFinder(null, (matcherOut = []), temp, xml);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Move matched elements from seed to results to keep them synchronized\r\n\t\t\t\t\t\t\t\t\ti = matcherOut.length;\r\n\t\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\t\tif ((elem = matcherOut[i]) &&\r\n\t\t\t\t\t\t\t\t\t\t\t(temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Add elements to results, through postFinder if defined\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tmatcherOut = condense(\r\n\t\t\t\t\t\t\t\t\tmatcherOut === results ?\r\n\t\t\t\t\t\t\t\t\t\tmatcherOut.splice(preexisting, matcherOut.length) :\r\n\t\t\t\t\t\t\t\t\t\tmatcherOut\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\tif (postFinder) {\r\n\t\t\t\t\t\t\t\t\tpostFinder(null, results, matcherOut, xml);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tpush.apply(results, matcherOut);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction matcherFromTokens(tokens) {\r\n\t\t\t\t\t\tvar checkContext, matcher, j,\r\n\t\t\t\t\t\t\tlen = tokens.length,\r\n\t\t\t\t\t\t\tleadingRelative = Expr.relative[tokens[0].type],\r\n\t\t\t\t\t\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\r\n\t\t\t\t\t\t\ti = leadingRelative ? 1 : 0,\r\n\r\n\t\t\t\t\t\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\r\n\t\t\t\t\t\t\tmatchContext = addCombinator(function (elem) {\r\n\t\t\t\t\t\t\t\treturn elem === checkContext;\r\n\t\t\t\t\t\t\t}, implicitRelative, true),\r\n\t\t\t\t\t\t\tmatchAnyContext = addCombinator(function (elem) {\r\n\t\t\t\t\t\t\t\treturn indexOf(checkContext, elem) > -1;\r\n\t\t\t\t\t\t\t}, implicitRelative, true),\r\n\t\t\t\t\t\t\tmatchers = [function (elem, context, xml) {\r\n\t\t\t\t\t\t\t\tvar ret = (!leadingRelative && (xml || context !== outermostContext)) || (\r\n\t\t\t\t\t\t\t\t\t(checkContext = context).nodeType ?\r\n\t\t\t\t\t\t\t\t\t\tmatchContext(elem, context, xml) :\r\n\t\t\t\t\t\t\t\t\t\tmatchAnyContext(elem, context, xml));\r\n\r\n\t\t\t\t\t\t\t\t// Avoid hanging onto element (issue #299)\r\n\t\t\t\t\t\t\t\tcheckContext = null;\r\n\t\t\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t\t\t}];\r\n\r\n\t\t\t\t\t\tfor (; i < len; i++) {\r\n\t\t\t\t\t\t\tif ((matcher = Expr.relative[tokens[i].type])) {\r\n\t\t\t\t\t\t\t\tmatchers = [addCombinator(elementMatcher(matchers), matcher)];\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tmatcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches);\r\n\r\n\t\t\t\t\t\t\t\t// Return special upon seeing a positional matcher\r\n\t\t\t\t\t\t\t\tif (matcher[expando]) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Find the next relative operator (if any) for proper handling\r\n\t\t\t\t\t\t\t\t\tj = ++i;\r\n\t\t\t\t\t\t\t\t\tfor (; j < len; j++) {\r\n\t\t\t\t\t\t\t\t\t\tif (Expr.relative[tokens[j].type]) {\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\treturn setMatcher(\r\n\t\t\t\t\t\t\t\t\t\ti > 1 && elementMatcher(matchers),\r\n\t\t\t\t\t\t\t\t\t\ti > 1 && toSelector(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\r\n\t\t\t\t\t\t\t\t\t\t\ttokens\r\n\t\t\t\t\t\t\t\t\t\t\t\t.slice(0, i - 1)\r\n\t\t\t\t\t\t\t\t\t\t\t\t.concat({ value: tokens[i - 2].type === \" \" ? \"*\" : \"\" })\r\n\t\t\t\t\t\t\t\t\t\t).replace(rtrim, \"$1\"),\r\n\t\t\t\t\t\t\t\t\t\tmatcher,\r\n\t\t\t\t\t\t\t\t\t\ti < j && matcherFromTokens(tokens.slice(i, j)),\r\n\t\t\t\t\t\t\t\t\t\tj < len && matcherFromTokens((tokens = tokens.slice(j))),\r\n\t\t\t\t\t\t\t\t\t\tj < len && toSelector(tokens)\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tmatchers.push(matcher);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn elementMatcher(matchers);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction matcherFromGroupMatchers(elementMatchers, setMatchers) {\r\n\t\t\t\t\t\tvar bySet = setMatchers.length > 0,\r\n\t\t\t\t\t\t\tbyElement = elementMatchers.length > 0,\r\n\t\t\t\t\t\t\tsuperMatcher = function (seed, context, xml, results, outermost) {\r\n\t\t\t\t\t\t\t\tvar elem, j, matcher,\r\n\t\t\t\t\t\t\t\t\tmatchedCount = 0,\r\n\t\t\t\t\t\t\t\t\ti = \"0\",\r\n\t\t\t\t\t\t\t\t\tunmatched = seed && [],\r\n\t\t\t\t\t\t\t\t\tsetMatched = [],\r\n\t\t\t\t\t\t\t\t\tcontextBackup = outermostContext,\r\n\r\n\t\t\t\t\t\t\t\t\t// We must always have either seed elements or outermost context\r\n\t\t\t\t\t\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\r\n\r\n\t\t\t\t\t\t\t\t\t// Use integer dirruns iff this is the outermost matcher\r\n\t\t\t\t\t\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\r\n\t\t\t\t\t\t\t\t\tlen = elems.length;\r\n\r\n\t\t\t\t\t\t\t\tif (outermost) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\t\t\toutermostContext = context == document || context || outermost;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Add elements passing elementMatchers directly to results\r\n\t\t\t\t\t\t\t\t// Support: IE<9, Safari\r\n\t\t\t\t\t\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\r\n\t\t\t\t\t\t\t\tfor (; i !== len && (elem = elems[i]) != null; i++) {\r\n\t\t\t\t\t\t\t\t\tif (byElement && elem) {\r\n\t\t\t\t\t\t\t\t\t\tj = 0;\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\t\t\t\tif (!context && elem.ownerDocument != document) {\r\n\t\t\t\t\t\t\t\t\t\t\tsetDocument(elem);\r\n\t\t\t\t\t\t\t\t\t\t\txml = !documentIsHTML;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\twhile ((matcher = elementMatchers[j++])) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (matcher(elem, context || document, xml)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tresults.push(elem);\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tif (outermost) {\r\n\t\t\t\t\t\t\t\t\t\t\tdirruns = dirrunsUnique;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Track unmatched elements for set filters\r\n\t\t\t\t\t\t\t\t\tif (bySet) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// They will have gone through all possible matchers\r\n\t\t\t\t\t\t\t\t\t\tif ((elem = !matcher && elem)) {\r\n\t\t\t\t\t\t\t\t\t\t\tmatchedCount--;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Lengthen the array for every element, matched or not\r\n\t\t\t\t\t\t\t\t\t\tif (seed) {\r\n\t\t\t\t\t\t\t\t\t\t\tunmatched.push(elem);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\r\n\t\t\t\t\t\t\t\t// makes the latter nonnegative.\r\n\t\t\t\t\t\t\t\tmatchedCount += i;\r\n\r\n\t\t\t\t\t\t\t\t// Apply set filters to unmatched elements\r\n\t\t\t\t\t\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\r\n\t\t\t\t\t\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\r\n\t\t\t\t\t\t\t\t// no element matchers and no seed.\r\n\t\t\t\t\t\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\r\n\t\t\t\t\t\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\r\n\t\t\t\t\t\t\t\t// numerically zero.\r\n\t\t\t\t\t\t\t\tif (bySet && i !== matchedCount) {\r\n\t\t\t\t\t\t\t\t\tj = 0;\r\n\t\t\t\t\t\t\t\t\twhile ((matcher = setMatchers[j++])) {\r\n\t\t\t\t\t\t\t\t\t\tmatcher(unmatched, setMatched, context, xml);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif (seed) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\r\n\t\t\t\t\t\t\t\t\t\tif (matchedCount > 0) {\r\n\t\t\t\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (!(unmatched[i] || setMatched[i])) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetMatched[i] = pop.call(results);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Discard index placeholder values to get only actual matches\r\n\t\t\t\t\t\t\t\t\t\tsetMatched = condense(setMatched);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Add matches to results\r\n\t\t\t\t\t\t\t\t\tpush.apply(results, setMatched);\r\n\r\n\t\t\t\t\t\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\r\n\t\t\t\t\t\t\t\t\tif (outermost && !seed && setMatched.length > 0 &&\r\n\t\t\t\t\t\t\t\t\t\t(matchedCount + setMatchers.length) > 1) {\r\n\r\n\t\t\t\t\t\t\t\t\t\tSizzle.uniqueSort(results);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Override manipulation of globals by nested matchers\r\n\t\t\t\t\t\t\t\tif (outermost) {\r\n\t\t\t\t\t\t\t\t\tdirruns = dirrunsUnique;\r\n\t\t\t\t\t\t\t\t\toutermostContext = contextBackup;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn unmatched;\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\treturn bySet ?\r\n\t\t\t\t\t\t\tmarkFunction(superMatcher) :\r\n\t\t\t\t\t\t\tsuperMatcher;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcompile = Sizzle.compile = function (selector, match /* Internal Use Only */) {\r\n\t\t\t\t\t\tvar i,\r\n\t\t\t\t\t\t\tsetMatchers = [],\r\n\t\t\t\t\t\t\telementMatchers = [],\r\n\t\t\t\t\t\t\tcached = compilerCache[selector + \" \"];\r\n\r\n\t\t\t\t\t\tif (!cached) {\r\n\r\n\t\t\t\t\t\t\t// Generate a function of recursive functions that can be used to check each element\r\n\t\t\t\t\t\t\tif (!match) {\r\n\t\t\t\t\t\t\t\tmatch = tokenize(selector);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\ti = match.length;\r\n\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\tcached = matcherFromTokens(match[i]);\r\n\t\t\t\t\t\t\t\tif (cached[expando]) {\r\n\t\t\t\t\t\t\t\t\tsetMatchers.push(cached);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\telementMatchers.push(cached);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Cache the compiled function\r\n\t\t\t\t\t\t\tcached = compilerCache(\r\n\t\t\t\t\t\t\t\tselector,\r\n\t\t\t\t\t\t\t\tmatcherFromGroupMatchers(elementMatchers, setMatchers)\r\n\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t// Save selector and tokenization\r\n\t\t\t\t\t\t\tcached.selector = selector;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn cached;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * A low-level selection function that works with Sizzle's compiled\r\n\t\t\t\t\t * selector functions\r\n\t\t\t\t\t * @param {String|Function} selector A selector or a pre-compiled\r\n\t\t\t\t\t * selector function built with Sizzle.compile\r\n\t\t\t\t\t * @param {Element} context\r\n\t\t\t\t\t * @param {Array} [results]\r\n\t\t\t\t\t * @param {Array} [seed] A set of elements to match against\r\n\t\t\t\t\t */\r\n\t\t\t\t\tselect = Sizzle.select = function (selector, context, results, seed) {\r\n\t\t\t\t\t\tvar i, tokens, token, type, find,\r\n\t\t\t\t\t\t\tcompiled = typeof selector === \"function\" && selector,\r\n\t\t\t\t\t\t\tmatch = !seed && tokenize((selector = compiled.selector || selector));\r\n\r\n\t\t\t\t\t\tresults = results || [];\r\n\r\n\t\t\t\t\t\t// Try to minimize operations if there is only one selector in the list and no seed\r\n\t\t\t\t\t\t// (the latter of which guarantees us context)\r\n\t\t\t\t\t\tif (match.length === 1) {\r\n\r\n\t\t\t\t\t\t\t// Reduce context if the leading compound selector is an ID\r\n\t\t\t\t\t\t\ttokens = match[0] = match[0].slice(0);\r\n\t\t\t\t\t\t\tif (tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\r\n\t\t\t\t\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\r\n\r\n\t\t\t\t\t\t\t\tcontext = (Expr.find[\"ID\"](token.matches[0]\r\n\t\t\t\t\t\t\t\t\t.replace(runescape, funescape), context) || [])[0];\r\n\t\t\t\t\t\t\t\tif (!context) {\r\n\t\t\t\t\t\t\t\t\treturn results;\r\n\r\n\t\t\t\t\t\t\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\r\n\t\t\t\t\t\t\t\t} else if (compiled) {\r\n\t\t\t\t\t\t\t\t\tcontext = context.parentNode;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tselector = selector.slice(tokens.shift().value.length);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Fetch a seed set for right-to-left matching\r\n\t\t\t\t\t\t\ti = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\r\n\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\ttoken = tokens[i];\r\n\r\n\t\t\t\t\t\t\t\t// Abort if we hit a combinator\r\n\t\t\t\t\t\t\t\tif (Expr.relative[(type = token.type)]) {\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif ((find = Expr.find[type])) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Search, expanding context for leading sibling combinators\r\n\t\t\t\t\t\t\t\t\tif ((seed = find(\r\n\t\t\t\t\t\t\t\t\t\ttoken.matches[0].replace(runescape, funescape),\r\n\t\t\t\t\t\t\t\t\t\trsibling.test(tokens[0].type) && testContext(context.parentNode) ||\r\n\t\t\t\t\t\t\t\t\t\tcontext\r\n\t\t\t\t\t\t\t\t\t))) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\r\n\t\t\t\t\t\t\t\t\t\ttokens.splice(i, 1);\r\n\t\t\t\t\t\t\t\t\t\tselector = seed.length && toSelector(tokens);\r\n\t\t\t\t\t\t\t\t\t\tif (!selector) {\r\n\t\t\t\t\t\t\t\t\t\t\tpush.apply(results, seed);\r\n\t\t\t\t\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Compile and execute a filtering function if one is not provided\r\n\t\t\t\t\t\t// Provide `match` to avoid retokenization if we modified the selector above\r\n\t\t\t\t\t\t(compiled || compile(selector, match))(\r\n\t\t\t\t\t\t\tseed,\r\n\t\t\t\t\t\t\tcontext,\r\n\t\t\t\t\t\t\t!documentIsHTML,\r\n\t\t\t\t\t\t\tresults,\r\n\t\t\t\t\t\t\t!context || rsibling.test(selector) && testContext(context.parentNode) || context\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// One-time assignments\r\n\r\n\t\t\t\t\t// Sort stability\r\n\t\t\t\t\tsupport.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando;\r\n\r\n\t\t\t\t\t// Support: Chrome 14-35+\r\n\t\t\t\t\t// Always assume duplicates if they aren't passed to the comparison function\r\n\t\t\t\t\tsupport.detectDuplicates = !!hasDuplicate;\r\n\r\n\t\t\t\t\t// Initialize against the default document\r\n\t\t\t\t\tsetDocument();\r\n\r\n\t\t\t\t\t// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\r\n\t\t\t\t\t// Detached nodes confoundingly follow *each other*\r\n\t\t\t\t\tsupport.sortDetached = assert(function (el) {\r\n\r\n\t\t\t\t\t\t// Should return 1, but returns 4 (following)\r\n\t\t\t\t\t\treturn el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Support: IE<8\r\n\t\t\t\t\t// Prevent attribute/property \"interpolation\"\r\n\t\t\t\t\t// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\r\n\t\t\t\t\tif (!assert(function (el) {\r\n\t\t\t\t\t\tel.innerHTML = \"<a href='#'></a>\";\r\n\t\t\t\t\t\treturn el.firstChild.getAttribute(\"href\") === \"#\";\r\n\t\t\t\t\t})) {\r\n\t\t\t\t\t\taddHandle(\"type|href|height|width\", function (elem, name, isXML) {\r\n\t\t\t\t\t\t\tif (!isXML) {\r\n\t\t\t\t\t\t\t\treturn elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Support: IE<9\r\n\t\t\t\t\t// Use defaultValue in place of getAttribute(\"value\")\r\n\t\t\t\t\tif (!support.attributes || !assert(function (el) {\r\n\t\t\t\t\t\tel.innerHTML = \"<input/>\";\r\n\t\t\t\t\t\tel.firstChild.setAttribute(\"value\", \"\");\r\n\t\t\t\t\t\treturn el.firstChild.getAttribute(\"value\") === \"\";\r\n\t\t\t\t\t})) {\r\n\t\t\t\t\t\taddHandle(\"value\", function (elem, _name, isXML) {\r\n\t\t\t\t\t\t\tif (!isXML && elem.nodeName.toLowerCase() === \"input\") {\r\n\t\t\t\t\t\t\t\treturn elem.defaultValue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Support: IE<9\r\n\t\t\t\t\t// Use getAttributeNode to fetch booleans when getAttribute lies\r\n\t\t\t\t\tif (!assert(function (el) {\r\n\t\t\t\t\t\treturn el.getAttribute(\"disabled\") == null;\r\n\t\t\t\t\t})) {\r\n\t\t\t\t\t\taddHandle(booleans, function (elem, name, isXML) {\r\n\t\t\t\t\t\t\tvar val;\r\n\t\t\t\t\t\t\tif (!isXML) {\r\n\t\t\t\t\t\t\t\treturn elem[name] === true ? name.toLowerCase() :\r\n\t\t\t\t\t\t\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\r\n\t\t\t\t\t\t\t\t\t\tval.value :\r\n\t\t\t\t\t\t\t\t\t\tnull;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn Sizzle;\r\n\r\n\t\t\t\t})(window);\r\n\r\n\r\n\r\n\t\t\tjQuery.find = Sizzle;\r\n\t\t\tjQuery.expr = Sizzle.selectors;\r\n\r\n\t\t\t// Deprecated\r\n\t\t\tjQuery.expr[\":\"] = jQuery.expr.pseudos;\r\n\t\t\tjQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\r\n\t\t\tjQuery.text = Sizzle.getText;\r\n\t\t\tjQuery.isXMLDoc = Sizzle.isXML;\r\n\t\t\tjQuery.contains = Sizzle.contains;\r\n\t\t\tjQuery.escapeSelector = Sizzle.escape;\r\n\r\n\r\n\r\n\r\n\t\t\tvar dir = function (elem, dir, until) {\r\n\t\t\t\tvar matched = [],\r\n\t\t\t\t\ttruncate = until !== undefined;\r\n\r\n\t\t\t\twhile ((elem = elem[dir]) && elem.nodeType !== 9) {\r\n\t\t\t\t\tif (elem.nodeType === 1) {\r\n\t\t\t\t\t\tif (truncate && jQuery(elem).is(until)) {\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tmatched.push(elem);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn matched;\r\n\t\t\t};\r\n\r\n\r\n\t\t\tvar siblings = function (n, elem) {\r\n\t\t\t\tvar matched = [];\r\n\r\n\t\t\t\tfor (; n; n = n.nextSibling) {\r\n\t\t\t\t\tif (n.nodeType === 1 && n !== elem) {\r\n\t\t\t\t\t\tmatched.push(n);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn matched;\r\n\t\t\t};\r\n\r\n\r\n\t\t\tvar rneedsContext = jQuery.expr.match.needsContext;\r\n\r\n\r\n\r\n\t\t\tfunction nodeName(elem, name) {\r\n\r\n\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\r\n\r\n\t\t\t};\r\n\t\t\tvar rsingleTag = (/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i);\r\n\r\n\r\n\r\n\t\t\t// Implement the identical functionality for filter and not\r\n\t\t\tfunction winnow(elements, qualifier, not) {\r\n\t\t\t\tif (isFunction(qualifier)) {\r\n\t\t\t\t\treturn jQuery.grep(elements, function (elem, i) {\r\n\t\t\t\t\t\treturn !!qualifier.call(elem, i, elem) !== not;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Single element\r\n\t\t\t\tif (qualifier.nodeType) {\r\n\t\t\t\t\treturn jQuery.grep(elements, function (elem) {\r\n\t\t\t\t\t\treturn (elem === qualifier) !== not;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Arraylike of elements (jQuery, arguments, Array)\r\n\t\t\t\tif (typeof qualifier !== \"string\") {\r\n\t\t\t\t\treturn jQuery.grep(elements, function (elem) {\r\n\t\t\t\t\t\treturn (indexOf.call(qualifier, elem) > -1) !== not;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Filtered directly for both simple and complex selectors\r\n\t\t\t\treturn jQuery.filter(qualifier, elements, not);\r\n\t\t\t}\r\n\r\n\t\t\tjQuery.filter = function (expr, elems, not) {\r\n\t\t\t\tvar elem = elems[0];\r\n\r\n\t\t\t\tif (not) {\r\n\t\t\t\t\texpr = \":not(\" + expr + \")\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (elems.length === 1 && elem.nodeType === 1) {\r\n\t\t\t\t\treturn jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\r\n\t\t\t\t\treturn elem.nodeType === 1;\r\n\t\t\t\t}));\r\n\t\t\t};\r\n\r\n\t\t\tjQuery.fn.extend({\r\n\t\t\t\tfind: function (selector) {\r\n\t\t\t\t\tvar i, ret,\r\n\t\t\t\t\t\tlen = this.length,\r\n\t\t\t\t\t\tself = this;\r\n\r\n\t\t\t\t\tif (typeof selector !== \"string\") {\r\n\t\t\t\t\t\treturn this.pushStack(jQuery(selector).filter(function () {\r\n\t\t\t\t\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\t\t\t\t\tif (jQuery.contains(self[i], this)) {\r\n\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tret = this.pushStack([]);\r\n\r\n\t\t\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\t\t\tjQuery.find(selector, self[i], ret);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn len > 1 ? jQuery.uniqueSort(ret) : ret;\r\n\t\t\t\t},\r\n\t\t\t\tfilter: function (selector) {\r\n\t\t\t\t\treturn this.pushStack(winnow(this, selector || [], false));\r\n\t\t\t\t},\r\n\t\t\t\tnot: function (selector) {\r\n\t\t\t\t\treturn this.pushStack(winnow(this, selector || [], true));\r\n\t\t\t\t},\r\n\t\t\t\tis: function (selector) {\r\n\t\t\t\t\treturn !!winnow(\r\n\t\t\t\t\t\tthis,\r\n\r\n\t\t\t\t\t\t// If this is a positional/relative selector, check membership in the returned set\r\n\t\t\t\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\r\n\t\t\t\t\t\ttypeof selector === \"string\" && rneedsContext.test(selector) ?\r\n\t\t\t\t\t\t\tjQuery(selector) :\r\n\t\t\t\t\t\t\tselector || [],\r\n\t\t\t\t\t\tfalse\r\n\t\t\t\t\t).length;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\t\t// Initialize a jQuery object\r\n\r\n\r\n\t\t\t// A central reference to the root jQuery(document)\r\n\t\t\tvar rootjQuery,\r\n\r\n\t\t\t\t// A simple way to check for HTML strings\r\n\t\t\t\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\r\n\t\t\t\t// Strict HTML recognition (#11290: must start with <)\r\n\t\t\t\t// Shortcut simple #id case for speed\r\n\t\t\t\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\r\n\r\n\t\t\t\tinit = jQuery.fn.init = function (selector, context, root) {\r\n\t\t\t\t\tvar match, elem;\r\n\r\n\t\t\t\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\r\n\t\t\t\t\tif (!selector) {\r\n\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Method init() accepts an alternate rootjQuery\r\n\t\t\t\t\t// so migrate can support jQuery.sub (gh-2101)\r\n\t\t\t\t\troot = root || rootjQuery;\r\n\r\n\t\t\t\t\t// Handle HTML strings\r\n\t\t\t\t\tif (typeof selector === \"string\") {\r\n\t\t\t\t\t\tif (selector[0] === \"<\" &&\r\n\t\t\t\t\t\t\tselector[selector.length - 1] === \">\" &&\r\n\t\t\t\t\t\t\tselector.length >= 3) {\r\n\r\n\t\t\t\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\r\n\t\t\t\t\t\t\tmatch = [null, selector, null];\r\n\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tmatch = rquickExpr.exec(selector);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Match html or make sure no context is specified for #id\r\n\t\t\t\t\t\tif (match && (match[1] || !context)) {\r\n\r\n\t\t\t\t\t\t\t// HANDLE: $(html) -> $(array)\r\n\t\t\t\t\t\t\tif (match[1]) {\r\n\t\t\t\t\t\t\t\tcontext = context instanceof jQuery ? context[0] : context;\r\n\r\n\t\t\t\t\t\t\t\t// Option to run scripts is true for back-compat\r\n\t\t\t\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\r\n\t\t\t\t\t\t\t\tjQuery.merge(this, jQuery.parseHTML(\r\n\t\t\t\t\t\t\t\t\tmatch[1],\r\n\t\t\t\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\r\n\t\t\t\t\t\t\t\t\ttrue\r\n\t\t\t\t\t\t\t\t));\r\n\r\n\t\t\t\t\t\t\t\t// HANDLE: $(html, props)\r\n\t\t\t\t\t\t\t\tif (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\r\n\t\t\t\t\t\t\t\t\tfor (match in context) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Properties of context are called as methods if possible\r\n\t\t\t\t\t\t\t\t\t\tif (isFunction(this[match])) {\r\n\t\t\t\t\t\t\t\t\t\t\tthis[match](context[match]);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// ...and otherwise set as attributes\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tthis.attr(match, context[match]);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn this;\r\n\r\n\t\t\t\t\t\t\t\t// HANDLE: $(#id)\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\telem = document.getElementById(match[2]);\r\n\r\n\t\t\t\t\t\t\t\tif (elem) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Inject the element directly into the jQuery object\r\n\t\t\t\t\t\t\t\t\tthis[0] = elem;\r\n\t\t\t\t\t\t\t\t\tthis.length = 1;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// HANDLE: $(expr, $(...))\r\n\t\t\t\t\t\t} else if (!context || context.jquery) {\r\n\t\t\t\t\t\t\treturn (context || root).find(selector);\r\n\r\n\t\t\t\t\t\t\t// HANDLE: $(expr, context)\r\n\t\t\t\t\t\t\t// (which is just equivalent to: $(context).find(expr)\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn this.constructor(context).find(selector);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// HANDLE: $(DOMElement)\r\n\t\t\t\t\t} else if (selector.nodeType) {\r\n\t\t\t\t\t\tthis[0] = selector;\r\n\t\t\t\t\t\tthis.length = 1;\r\n\t\t\t\t\t\treturn this;\r\n\r\n\t\t\t\t\t\t// HANDLE: $(function)\r\n\t\t\t\t\t\t// Shortcut for document ready\r\n\t\t\t\t\t} else if (isFunction(selector)) {\r\n\t\t\t\t\t\treturn root.ready !== undefined ?\r\n\t\t\t\t\t\t\troot.ready(selector) :\r\n\r\n\t\t\t\t\t\t\t// Execute immediately if ready is not present\r\n\t\t\t\t\t\t\tselector(jQuery);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn jQuery.makeArray(selector, this);\r\n\t\t\t\t};\r\n\r\n\t\t\t// Give the init function the jQuery prototype for later instantiation\r\n\t\t\tinit.prototype = jQuery.fn;\r\n\r\n\t\t\t// Initialize central reference\r\n\t\t\trootjQuery = jQuery(document);\r\n\r\n\r\n\t\t\tvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\r\n\r\n\t\t\t\t// Methods guaranteed to produce a unique set when starting from a unique set\r\n\t\t\t\tguaranteedUnique = {\r\n\t\t\t\t\tchildren: true,\r\n\t\t\t\t\tcontents: true,\r\n\t\t\t\t\tnext: true,\r\n\t\t\t\t\tprev: true\r\n\t\t\t\t};\r\n\r\n\t\t\tjQuery.fn.extend({\r\n\t\t\t\thas: function (target) {\r\n\t\t\t\t\tvar targets = jQuery(target, this),\r\n\t\t\t\t\t\tl = targets.length;\r\n\r\n\t\t\t\t\treturn this.filter(function () {\r\n\t\t\t\t\t\tvar i = 0;\r\n\t\t\t\t\t\tfor (; i < l; i++) {\r\n\t\t\t\t\t\t\tif (jQuery.contains(this, targets[i])) {\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\r\n\t\t\t\tclosest: function (selectors, context) {\r\n\t\t\t\t\tvar cur,\r\n\t\t\t\t\t\ti = 0,\r\n\t\t\t\t\t\tl = this.length,\r\n\t\t\t\t\t\tmatched = [],\r\n\t\t\t\t\t\ttargets = typeof selectors !== \"string\" && jQuery(selectors);\r\n\r\n\t\t\t\t\t// Positional selectors never match, since there's no _selection_ context\r\n\t\t\t\t\tif (!rneedsContext.test(selectors)) {\r\n\t\t\t\t\t\tfor (; i < l; i++) {\r\n\t\t\t\t\t\t\tfor (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\r\n\r\n\t\t\t\t\t\t\t\t// Always skip document fragments\r\n\t\t\t\t\t\t\t\tif (cur.nodeType < 11 && (targets ?\r\n\t\t\t\t\t\t\t\t\ttargets.index(cur) > -1 :\r\n\r\n\t\t\t\t\t\t\t\t\t// Don't pass non-elements to Sizzle\r\n\t\t\t\t\t\t\t\t\tcur.nodeType === 1 &&\r\n\t\t\t\t\t\t\t\t\tjQuery.find.matchesSelector(cur, selectors))) {\r\n\r\n\t\t\t\t\t\t\t\t\tmatched.push(cur);\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Determine the position of an element within the set\r\n\t\t\t\tindex: function (elem) {\r\n\r\n\t\t\t\t\t// No argument, return index in parent\r\n\t\t\t\t\tif (!elem) {\r\n\t\t\t\t\t\treturn (this[0] && this[0].parentNode) ? this.first().prevAll().length : -1;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Index in selector\r\n\t\t\t\t\tif (typeof elem === \"string\") {\r\n\t\t\t\t\t\treturn indexOf.call(jQuery(elem), this[0]);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Locate the position of the desired element\r\n\t\t\t\t\treturn indexOf.call(this,\r\n\r\n\t\t\t\t\t\t// If it receives a jQuery object, the first element is used\r\n\t\t\t\t\t\telem.jquery ? elem[0] : elem\r\n\t\t\t\t\t);\r\n\t\t\t\t},\r\n\r\n\t\t\t\tadd: function (selector, context) {\r\n\t\t\t\t\treturn this.pushStack(\r\n\t\t\t\t\t\tjQuery.uniqueSort(\r\n\t\t\t\t\t\t\tjQuery.merge(this.get(), jQuery(selector, context))\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t);\r\n\t\t\t\t},\r\n\r\n\t\t\t\taddBack: function (selector) {\r\n\t\t\t\t\treturn this.add(selector == null ?\r\n\t\t\t\t\t\tthis.prevObject : this.prevObject.filter(selector)\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tfunction sibling(cur, dir) {\r\n\t\t\t\twhile ((cur = cur[dir]) && cur.nodeType !== 1) { }\r\n\t\t\t\treturn cur;\r\n\t\t\t}\r\n\r\n\t\t\tjQuery.each({\r\n\t\t\t\tparent: function (elem) {\r\n\t\t\t\t\tvar parent = elem.parentNode;\r\n\t\t\t\t\treturn parent && parent.nodeType !== 11 ? parent : null;\r\n\t\t\t\t},\r\n\t\t\t\tparents: function (elem) {\r\n\t\t\t\t\treturn dir(elem, \"parentNode\");\r\n\t\t\t\t},\r\n\t\t\t\tparentsUntil: function (elem, _i, until) {\r\n\t\t\t\t\treturn dir(elem, \"parentNode\", until);\r\n\t\t\t\t},\r\n\t\t\t\tnext: function (elem) {\r\n\t\t\t\t\treturn sibling(elem, \"nextSibling\");\r\n\t\t\t\t},\r\n\t\t\t\tprev: function (elem) {\r\n\t\t\t\t\treturn sibling(elem, \"previousSibling\");\r\n\t\t\t\t},\r\n\t\t\t\tnextAll: function (elem) {\r\n\t\t\t\t\treturn dir(elem, \"nextSibling\");\r\n\t\t\t\t},\r\n\t\t\t\tprevAll: function (elem) {\r\n\t\t\t\t\treturn dir(elem, \"previousSibling\");\r\n\t\t\t\t},\r\n\t\t\t\tnextUntil: function (elem, _i, until) {\r\n\t\t\t\t\treturn dir(elem, \"nextSibling\", until);\r\n\t\t\t\t},\r\n\t\t\t\tprevUntil: function (elem, _i, until) {\r\n\t\t\t\t\treturn dir(elem, \"previousSibling\", until);\r\n\t\t\t\t},\r\n\t\t\t\tsiblings: function (elem) {\r\n\t\t\t\t\treturn siblings((elem.parentNode || {}).firstChild, elem);\r\n\t\t\t\t},\r\n\t\t\t\tchildren: function (elem) {\r\n\t\t\t\t\treturn siblings(elem.firstChild);\r\n\t\t\t\t},\r\n\t\t\t\tcontents: function (elem) {\r\n\t\t\t\t\tif (elem.contentDocument != null &&\r\n\r\n\t\t\t\t\t\t// Support: IE 11+\r\n\t\t\t\t\t\t// <object> elements with no `data` attribute has an object\r\n\t\t\t\t\t\t// `contentDocument` with a `null` prototype.\r\n\t\t\t\t\t\tgetProto(elem.contentDocument)) {\r\n\r\n\t\t\t\t\t\treturn elem.contentDocument;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\r\n\t\t\t\t\t// Treat the template element as a regular one in browsers that\r\n\t\t\t\t\t// don't support it.\r\n\t\t\t\t\tif (nodeName(elem, \"template\")) {\r\n\t\t\t\t\t\telem = elem.content || elem;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn jQuery.merge([], elem.childNodes);\r\n\t\t\t\t}\r\n\t\t\t}, function (name, fn) {\r\n\t\t\t\tjQuery.fn[name] = function (until, selector) {\r\n\t\t\t\t\tvar matched = jQuery.map(this, fn, until);\r\n\r\n\t\t\t\t\tif (name.slice(-5) !== \"Until\") {\r\n\t\t\t\t\t\tselector = until;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (selector && typeof selector === \"string\") {\r\n\t\t\t\t\t\tmatched = jQuery.filter(selector, matched);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (this.length > 1) {\r\n\r\n\t\t\t\t\t\t// Remove duplicates\r\n\t\t\t\t\t\tif (!guaranteedUnique[name]) {\r\n\t\t\t\t\t\t\tjQuery.uniqueSort(matched);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Reverse order for parents* and prev-derivatives\r\n\t\t\t\t\t\tif (rparentsprev.test(name)) {\r\n\t\t\t\t\t\t\tmatched.reverse();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn this.pushStack(matched);\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t\tvar rnothtmlwhite = (/[^\\x20\\t\\r\\n\\f]+/g);\r\n\r\n\r\n\r\n\t\t\t// Convert String-formatted options into Object-formatted ones\r\n\t\t\tfunction createOptions(options) {\r\n\t\t\t\tvar object = {};\r\n\t\t\t\tjQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\r\n\t\t\t\t\tobject[flag] = true;\r\n\t\t\t\t});\r\n\t\t\t\treturn object;\r\n\t\t\t}\r\n\r\n\t\t\t/*\r\n\t\t\t * Create a callback list using the following parameters:\r\n\t\t\t *\r\n\t\t\t *\toptions: an optional list of space-separated options that will change how\r\n\t\t\t *\t\t\tthe callback list behaves or a more traditional option object\r\n\t\t\t *\r\n\t\t\t * By default a callback list will act like an event callback list and can be\r\n\t\t\t * \"fired\" multiple times.\r\n\t\t\t *\r\n\t\t\t * Possible options:\r\n\t\t\t *\r\n\t\t\t *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\r\n\t\t\t *\r\n\t\t\t *\tmemory:\t\t\twill keep track of previous values and will call any callback added\r\n\t\t\t *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\r\n\t\t\t *\t\t\t\t\tvalues (like a Deferred)\r\n\t\t\t *\r\n\t\t\t *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\r\n\t\t\t *\r\n\t\t\t *\tstopOnFalse:\tinterrupt callings when a callback returns false\r\n\t\t\t *\r\n\t\t\t */\r\n\t\t\tjQuery.Callbacks = function (options) {\r\n\r\n\t\t\t\t// Convert options from String-formatted to Object-formatted if needed\r\n\t\t\t\t// (we check in cache first)\r\n\t\t\t\toptions = typeof options === \"string\" ?\r\n\t\t\t\t\tcreateOptions(options) :\r\n\t\t\t\t\tjQuery.extend({}, options);\r\n\r\n\t\t\t\tvar // Flag to know if list is currently firing\r\n\t\t\t\t\tfiring,\r\n\r\n\t\t\t\t\t// Last fire value for non-forgettable lists\r\n\t\t\t\t\tmemory,\r\n\r\n\t\t\t\t\t// Flag to know if list was already fired\r\n\t\t\t\t\tfired,\r\n\r\n\t\t\t\t\t// Flag to prevent firing\r\n\t\t\t\t\tlocked,\r\n\r\n\t\t\t\t\t// Actual callback list\r\n\t\t\t\t\tlist = [],\r\n\r\n\t\t\t\t\t// Queue of execution data for repeatable lists\r\n\t\t\t\t\tqueue = [],\r\n\r\n\t\t\t\t\t// Index of currently firing callback (modified by add/remove as needed)\r\n\t\t\t\t\tfiringIndex = -1,\r\n\r\n\t\t\t\t\t// Fire callbacks\r\n\t\t\t\t\tfire = function () {\r\n\r\n\t\t\t\t\t\t// Enforce single-firing\r\n\t\t\t\t\t\tlocked = locked || options.once;\r\n\r\n\t\t\t\t\t\t// Execute callbacks for all pending executions,\r\n\t\t\t\t\t\t// respecting firingIndex overrides and runtime changes\r\n\t\t\t\t\t\tfired = firing = true;\r\n\t\t\t\t\t\tfor (; queue.length; firingIndex = -1) {\r\n\t\t\t\t\t\t\tmemory = queue.shift();\r\n\t\t\t\t\t\t\twhile (++firingIndex < list.length) {\r\n\r\n\t\t\t\t\t\t\t\t// Run callback and check for early termination\r\n\t\t\t\t\t\t\t\tif (list[firingIndex].apply(memory[0], memory[1]) === false &&\r\n\t\t\t\t\t\t\t\t\toptions.stopOnFalse) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\r\n\t\t\t\t\t\t\t\t\tfiringIndex = list.length;\r\n\t\t\t\t\t\t\t\t\tmemory = false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Forget the data if we're done with it\r\n\t\t\t\t\t\tif (!options.memory) {\r\n\t\t\t\t\t\t\tmemory = false;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfiring = false;\r\n\r\n\t\t\t\t\t\t// Clean up if we're done firing for good\r\n\t\t\t\t\t\tif (locked) {\r\n\r\n\t\t\t\t\t\t\t// Keep an empty list if we have data for future add calls\r\n\t\t\t\t\t\t\tif (memory) {\r\n\t\t\t\t\t\t\t\tlist = [];\r\n\r\n\t\t\t\t\t\t\t\t// Otherwise, this object is spent\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tlist = \"\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t// Actual Callbacks object\r\n\t\t\t\t\tself = {\r\n\r\n\t\t\t\t\t\t// Add a callback or a collection of callbacks to the list\r\n\t\t\t\t\t\tadd: function () {\r\n\t\t\t\t\t\t\tif (list) {\r\n\r\n\t\t\t\t\t\t\t\t// If we have memory from a past run, we should fire after adding\r\n\t\t\t\t\t\t\t\tif (memory && !firing) {\r\n\t\t\t\t\t\t\t\t\tfiringIndex = list.length - 1;\r\n\t\t\t\t\t\t\t\t\tqueue.push(memory);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t(function add(args) {\r\n\t\t\t\t\t\t\t\t\tjQuery.each(args, function (_, arg) {\r\n\t\t\t\t\t\t\t\t\t\tif (isFunction(arg)) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (!options.unique || !self.has(arg)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tlist.push(arg);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t} else if (arg && arg.length && toType(arg) !== \"string\") {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Inspect recursively\r\n\t\t\t\t\t\t\t\t\t\t\tadd(arg);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t})(arguments);\r\n\r\n\t\t\t\t\t\t\t\tif (memory && !firing) {\r\n\t\t\t\t\t\t\t\t\tfire();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Remove a callback from the list\r\n\t\t\t\t\t\tremove: function () {\r\n\t\t\t\t\t\t\tjQuery.each(arguments, function (_, arg) {\r\n\t\t\t\t\t\t\t\tvar index;\r\n\t\t\t\t\t\t\t\twhile ((index = jQuery.inArray(arg, list, index)) > -1) {\r\n\t\t\t\t\t\t\t\t\tlist.splice(index, 1);\r\n\r\n\t\t\t\t\t\t\t\t\t// Handle firing indexes\r\n\t\t\t\t\t\t\t\t\tif (index <= firingIndex) {\r\n\t\t\t\t\t\t\t\t\t\tfiringIndex--;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Check if a given callback is in the list.\r\n\t\t\t\t\t\t// If no argument is given, return whether or not list has callbacks attached.\r\n\t\t\t\t\t\thas: function (fn) {\r\n\t\t\t\t\t\t\treturn fn ?\r\n\t\t\t\t\t\t\t\tjQuery.inArray(fn, list) > -1 :\r\n\t\t\t\t\t\t\t\tlist.length > 0;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Remove all callbacks from the list\r\n\t\t\t\t\t\tempty: function () {\r\n\t\t\t\t\t\t\tif (list) {\r\n\t\t\t\t\t\t\t\tlist = [];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Disable .fire and .add\r\n\t\t\t\t\t\t// Abort any current/pending executions\r\n\t\t\t\t\t\t// Clear all callbacks and values\r\n\t\t\t\t\t\tdisable: function () {\r\n\t\t\t\t\t\t\tlocked = queue = [];\r\n\t\t\t\t\t\t\tlist = memory = \"\";\r\n\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdisabled: function () {\r\n\t\t\t\t\t\t\treturn !list;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Disable .fire\r\n\t\t\t\t\t\t// Also disable .add unless we have memory (since it would have no effect)\r\n\t\t\t\t\t\t// Abort any pending executions\r\n\t\t\t\t\t\tlock: function () {\r\n\t\t\t\t\t\t\tlocked = queue = [];\r\n\t\t\t\t\t\t\tif (!memory && !firing) {\r\n\t\t\t\t\t\t\t\tlist = memory = \"\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tlocked: function () {\r\n\t\t\t\t\t\t\treturn !!locked;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Call all callbacks with the given context and arguments\r\n\t\t\t\t\t\tfireWith: function (context, args) {\r\n\t\t\t\t\t\t\tif (!locked) {\r\n\t\t\t\t\t\t\t\targs = args || [];\r\n\t\t\t\t\t\t\t\targs = [context, args.slice ? args.slice() : args];\r\n\t\t\t\t\t\t\t\tqueue.push(args);\r\n\t\t\t\t\t\t\t\tif (!firing) {\r\n\t\t\t\t\t\t\t\t\tfire();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Call all the callbacks with the given arguments\r\n\t\t\t\t\t\tfire: function () {\r\n\t\t\t\t\t\t\tself.fireWith(this, arguments);\r\n\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// To know if the callbacks have already been called at least once\r\n\t\t\t\t\t\tfired: function () {\r\n\t\t\t\t\t\t\treturn !!fired;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\treturn self;\r\n\t\t\t};\r\n\r\n\r\n\t\t\tfunction Identity(v) {\r\n\t\t\t\treturn v;\r\n\t\t\t}\r\n\t\t\tfunction Thrower(ex) {\r\n\t\t\t\tthrow ex;\r\n\t\t\t}\r\n\r\n\t\t\tfunction adoptValue(value, resolve, reject, noValue) {\r\n\t\t\t\tvar method;\r\n\r\n\t\t\t\ttry {\r\n\r\n\t\t\t\t\t// Check for promise aspect first to privilege synchronous behavior\r\n\t\t\t\t\tif (value && isFunction((method = value.promise))) {\r\n\t\t\t\t\t\tmethod.call(value).done(resolve).fail(reject);\r\n\r\n\t\t\t\t\t\t// Other thenables\r\n\t\t\t\t\t} else if (value && isFunction((method = value.then))) {\r\n\t\t\t\t\t\tmethod.call(value, resolve, reject);\r\n\r\n\t\t\t\t\t\t// Other non-thenables\r\n\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\r\n\t\t\t\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\r\n\t\t\t\t\t\t// * true: [ value ].slice( 1 ) => resolve()\r\n\t\t\t\t\t\tresolve.apply(undefined, [value].slice(noValue));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// For Promises/A+, convert exceptions into rejections\r\n\t\t\t\t\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\r\n\t\t\t\t\t// Deferred#then to conditionally suppress rejection.\r\n\t\t\t\t} catch (value) {\r\n\r\n\t\t\t\t\t// Support: Android 4.0 only\r\n\t\t\t\t\t// Strict mode functions invoked without .call/.apply get global-object context\r\n\t\t\t\t\treject.apply(undefined, [value]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tjQuery.extend({\r\n\r\n\t\t\t\tDeferred: function (func) {\r\n\t\t\t\t\tvar tuples = [\r\n\r\n\t\t\t\t\t\t// action, add listener, callbacks,\r\n\t\t\t\t\t\t// ... .then handlers, argument index, [final state]\r\n\t\t\t\t\t\t[\"notify\", \"progress\", jQuery.Callbacks(\"memory\"),\r\n\t\t\t\t\t\t\tjQuery.Callbacks(\"memory\"), 2],\r\n\t\t\t\t\t\t[\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"),\r\n\t\t\t\t\t\t\tjQuery.Callbacks(\"once memory\"), 0, \"resolved\"],\r\n\t\t\t\t\t\t[\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"),\r\n\t\t\t\t\t\t\tjQuery.Callbacks(\"once memory\"), 1, \"rejected\"]\r\n\t\t\t\t\t],\r\n\t\t\t\t\t\tstate = \"pending\",\r\n\t\t\t\t\t\tpromise = {\r\n\t\t\t\t\t\t\tstate: function () {\r\n\t\t\t\t\t\t\t\treturn state;\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\talways: function () {\r\n\t\t\t\t\t\t\t\tdeferred.done(arguments).fail(arguments);\r\n\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\"catch\": function (fn) {\r\n\t\t\t\t\t\t\t\treturn promise.then(null, fn);\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t// Keep pipe for back-compat\r\n\t\t\t\t\t\t\tpipe: function ( /* fnDone, fnFail, fnProgress */) {\r\n\t\t\t\t\t\t\t\tvar fns = arguments;\r\n\r\n\t\t\t\t\t\t\t\treturn jQuery.Deferred(function (newDefer) {\r\n\t\t\t\t\t\t\t\t\tjQuery.each(tuples, function (_i, tuple) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\r\n\t\t\t\t\t\t\t\t\t\tvar fn = isFunction(fns[tuple[4]]) && fns[tuple[4]];\r\n\r\n\t\t\t\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\r\n\t\t\t\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\r\n\t\t\t\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\r\n\t\t\t\t\t\t\t\t\t\tdeferred[tuple[1]](function () {\r\n\t\t\t\t\t\t\t\t\t\t\tvar returned = fn && fn.apply(this, arguments);\r\n\t\t\t\t\t\t\t\t\t\t\tif (returned && isFunction(returned.promise)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturned.promise()\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.progress(newDefer.notify)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.done(newDefer.resolve)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.fail(newDefer.reject);\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tnewDefer[tuple[0] + \"With\"](\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfn ? [returned] : arguments\r\n\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\tfns = null;\r\n\t\t\t\t\t\t\t\t}).promise();\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tthen: function (onFulfilled, onRejected, onProgress) {\r\n\t\t\t\t\t\t\t\tvar maxDepth = 0;\r\n\t\t\t\t\t\t\t\tfunction resolve(depth, deferred, handler, special) {\r\n\t\t\t\t\t\t\t\t\treturn function () {\r\n\t\t\t\t\t\t\t\t\t\tvar that = this,\r\n\t\t\t\t\t\t\t\t\t\t\targs = arguments,\r\n\t\t\t\t\t\t\t\t\t\t\tmightThrow = function () {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvar returned, then;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\r\n\t\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (depth < maxDepth) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\treturned = handler.apply(that, args);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\r\n\t\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (returned === deferred.promise()) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tthrow new TypeError(\"Thenable self-resolution\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\r\n\t\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\r\n\t\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\r\n\t\t\t\t\t\t\t\t\t\t\t\tthen = returned &&\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(typeof returned === \"object\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\") &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturned.then;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Handle a returned thenable\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (isFunction(then)) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (special) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthen.call(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturned,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(maxDepth, deferred, Identity, special),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(maxDepth, deferred, Thrower, special)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthen.call(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturned,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(maxDepth, deferred, Identity, special),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(maxDepth, deferred, Thrower, special),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(maxDepth, deferred, Identity,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Handle all other returned values\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (handler !== Identity) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\targs = [returned];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Process the value(s)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Default process is resolve\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(special || deferred.resolveWith)(that, args);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\r\n\t\t\t\t\t\t\t\t\t\t\tprocess = special ?\r\n\t\t\t\t\t\t\t\t\t\t\t\tmightThrow :\r\n\t\t\t\t\t\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmightThrow();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} catch (e) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (jQuery.Deferred.exceptionHook) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook(e,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (depth + 1 >= maxDepth) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (handler !== Thrower) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\targs = [e];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith(that, args);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\r\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\r\n\t\t\t\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\r\n\t\t\t\t\t\t\t\t\t\t// subsequent errors\r\n\t\t\t\t\t\t\t\t\t\tif (depth) {\r\n\t\t\t\t\t\t\t\t\t\t\tprocess();\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\r\n\t\t\t\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\r\n\t\t\t\t\t\t\t\t\t\t\tif (jQuery.Deferred.getStackHook) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\twindow.setTimeout(process);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn jQuery.Deferred(function (newDefer) {\r\n\r\n\t\t\t\t\t\t\t\t\t// progress_handlers.add( ... )\r\n\t\t\t\t\t\t\t\t\ttuples[0][3].add(\r\n\t\t\t\t\t\t\t\t\t\tresolve(\r\n\t\t\t\t\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\t\t\t\t\tnewDefer,\r\n\t\t\t\t\t\t\t\t\t\t\tisFunction(onProgress) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\tonProgress :\r\n\t\t\t\t\t\t\t\t\t\t\t\tIdentity,\r\n\t\t\t\t\t\t\t\t\t\t\tnewDefer.notifyWith\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\t\t// fulfilled_handlers.add( ... )\r\n\t\t\t\t\t\t\t\t\ttuples[1][3].add(\r\n\t\t\t\t\t\t\t\t\t\tresolve(\r\n\t\t\t\t\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\t\t\t\t\tnewDefer,\r\n\t\t\t\t\t\t\t\t\t\t\tisFunction(onFulfilled) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\tonFulfilled :\r\n\t\t\t\t\t\t\t\t\t\t\t\tIdentity\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\t\t// rejected_handlers.add( ... )\r\n\t\t\t\t\t\t\t\t\ttuples[2][3].add(\r\n\t\t\t\t\t\t\t\t\t\tresolve(\r\n\t\t\t\t\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\t\t\t\t\tnewDefer,\r\n\t\t\t\t\t\t\t\t\t\t\tisFunction(onRejected) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\tonRejected :\r\n\t\t\t\t\t\t\t\t\t\t\t\tThrower\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}).promise();\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t// Get a promise for this deferred\r\n\t\t\t\t\t\t\t// If obj is provided, the promise aspect is added to the object\r\n\t\t\t\t\t\t\tpromise: function (obj) {\r\n\t\t\t\t\t\t\t\treturn obj != null ? jQuery.extend(obj, promise) : promise;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdeferred = {};\r\n\r\n\t\t\t\t\t// Add list-specific methods\r\n\t\t\t\t\tjQuery.each(tuples, function (i, tuple) {\r\n\t\t\t\t\t\tvar list = tuple[2],\r\n\t\t\t\t\t\t\tstateString = tuple[5];\r\n\r\n\t\t\t\t\t\t// promise.progress = list.add\r\n\t\t\t\t\t\t// promise.done = list.add\r\n\t\t\t\t\t\t// promise.fail = list.add\r\n\t\t\t\t\t\tpromise[tuple[1]] = list.add;\r\n\r\n\t\t\t\t\t\t// Handle state\r\n\t\t\t\t\t\tif (stateString) {\r\n\t\t\t\t\t\t\tlist.add(\r\n\t\t\t\t\t\t\t\tfunction () {\r\n\r\n\t\t\t\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\r\n\t\t\t\t\t\t\t\t\t// state = \"rejected\"\r\n\t\t\t\t\t\t\t\t\tstate = stateString;\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t// rejected_callbacks.disable\r\n\t\t\t\t\t\t\t\t// fulfilled_callbacks.disable\r\n\t\t\t\t\t\t\t\ttuples[3 - i][2].disable,\r\n\r\n\t\t\t\t\t\t\t\t// rejected_handlers.disable\r\n\t\t\t\t\t\t\t\t// fulfilled_handlers.disable\r\n\t\t\t\t\t\t\t\ttuples[3 - i][3].disable,\r\n\r\n\t\t\t\t\t\t\t\t// progress_callbacks.lock\r\n\t\t\t\t\t\t\t\ttuples[0][2].lock,\r\n\r\n\t\t\t\t\t\t\t\t// progress_handlers.lock\r\n\t\t\t\t\t\t\t\ttuples[0][3].lock\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// progress_handlers.fire\r\n\t\t\t\t\t\t// fulfilled_handlers.fire\r\n\t\t\t\t\t\t// rejected_handlers.fire\r\n\t\t\t\t\t\tlist.add(tuple[3].fire);\r\n\r\n\t\t\t\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\r\n\t\t\t\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\r\n\t\t\t\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\r\n\t\t\t\t\t\tdeferred[tuple[0]] = function () {\r\n\t\t\t\t\t\t\tdeferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\r\n\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t// deferred.notifyWith = list.fireWith\r\n\t\t\t\t\t\t// deferred.resolveWith = list.fireWith\r\n\t\t\t\t\t\t// deferred.rejectWith = list.fireWith\r\n\t\t\t\t\t\tdeferred[tuple[0] + \"With\"] = list.fireWith;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Make the deferred a promise\r\n\t\t\t\t\tpromise.promise(deferred);\r\n\r\n\t\t\t\t\t// Call given func if any\r\n\t\t\t\t\tif (func) {\r\n\t\t\t\t\t\tfunc.call(deferred, deferred);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// All done!\r\n\t\t\t\t\treturn deferred;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Deferred helper\r\n\t\t\t\twhen: function (singleValue) {\r\n\t\t\t\t\tvar\r\n\r\n\t\t\t\t\t\t// count of uncompleted subordinates\r\n\t\t\t\t\t\tremaining = arguments.length,\r\n\r\n\t\t\t\t\t\t// count of unprocessed arguments\r\n\t\t\t\t\t\ti = remaining,\r\n\r\n\t\t\t\t\t\t// subordinate fulfillment data\r\n\t\t\t\t\t\tresolveContexts = Array(i),\r\n\t\t\t\t\t\tresolveValues = slice.call(arguments),\r\n\r\n\t\t\t\t\t\t// the master Deferred\r\n\t\t\t\t\t\tmaster = jQuery.Deferred(),\r\n\r\n\t\t\t\t\t\t// subordinate callback factory\r\n\t\t\t\t\t\tupdateFunc = function (i) {\r\n\t\t\t\t\t\t\treturn function (value) {\r\n\t\t\t\t\t\t\t\tresolveContexts[i] = this;\r\n\t\t\t\t\t\t\t\tresolveValues[i] = arguments.length > 1 ? slice.call(arguments) : value;\r\n\t\t\t\t\t\t\t\tif (!(--remaining)) {\r\n\t\t\t\t\t\t\t\t\tmaster.resolveWith(resolveContexts, resolveValues);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// Single- and empty arguments are adopted like Promise.resolve\r\n\t\t\t\t\tif (remaining <= 1) {\r\n\t\t\t\t\t\tadoptValue(singleValue, master.done(updateFunc(i)).resolve, master.reject,\r\n\t\t\t\t\t\t\t!remaining);\r\n\r\n\t\t\t\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\r\n\t\t\t\t\t\tif (master.state() === \"pending\" ||\r\n\t\t\t\t\t\t\tisFunction(resolveValues[i] && resolveValues[i].then)) {\r\n\r\n\t\t\t\t\t\t\treturn master.then();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Multiple arguments are aggregated like Promise.all array elements\r\n\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\tadoptValue(resolveValues[i], updateFunc(i), master.reject);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn master.promise();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\t\t// These usually indicate a programmer mistake during development,\r\n\t\t\t// warn about them ASAP rather than swallowing them by default.\r\n\t\t\tvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\r\n\r\n\t\t\tjQuery.Deferred.exceptionHook = function (error, stack) {\r\n\r\n\t\t\t\t// Support: IE 8 - 9 only\r\n\t\t\t\t// Console exists when dev tools are open, which can happen at any time\r\n\t\t\t\tif (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\r\n\t\t\t\t\twindow.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, stack);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\r\n\r\n\r\n\t\t\tjQuery.readyException = function (error) {\r\n\t\t\t\twindow.setTimeout(function () {\r\n\t\t\t\t\tthrow error;\r\n\t\t\t\t});\r\n\t\t\t};\r\n\r\n\r\n\r\n\r\n\t\t\t// The deferred used on DOM ready\r\n\t\t\tvar readyList = jQuery.Deferred();\r\n\r\n\t\t\tjQuery.fn.ready = function (fn) {\r\n\r\n\t\t\t\treadyList\r\n\t\t\t\t\t.then(fn)\r\n\r\n\t\t\t\t\t// Wrap jQuery.readyException in a function so that the lookup\r\n\t\t\t\t\t// happens at the time of error handling instead of callback\r\n\t\t\t\t\t// registration.\r\n\t\t\t\t\t.catch(function (error) {\r\n\t\t\t\t\t\tjQuery.readyException(error);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\treturn this;\r\n\t\t\t};\r\n\r\n\t\t\tjQuery.extend({\r\n\r\n\t\t\t\t// Is the DOM ready to be used? Set to true once it occurs.\r\n\t\t\t\tisReady: false,\r\n\r\n\t\t\t\t// A counter to track how many items to wait for before\r\n\t\t\t\t// the ready event fires. See #6781\r\n\t\t\t\treadyWait: 1,\r\n\r\n\t\t\t\t// Handle when the DOM is ready\r\n\t\t\t\tready: function (wait) {\r\n\r\n\t\t\t\t\t// Abort if there are pending holds or we're already ready\r\n\t\t\t\t\tif (wait === true ? --jQuery.readyWait : jQuery.isReady) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Remember that the DOM is ready\r\n\t\t\t\t\tjQuery.isReady = true;\r\n\r\n\t\t\t\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\r\n\t\t\t\t\tif (wait !== true && --jQuery.readyWait > 0) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// If there are functions bound, to execute\r\n\t\t\t\t\treadyList.resolveWith(document, [jQuery]);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tjQuery.ready.then = readyList.then;\r\n\r\n\t\t\t// The ready event handler and self cleanup method\r\n\t\t\tfunction completed() {\r\n\t\t\t\tdocument.removeEventListener(\"DOMContentLoaded\", completed);\r\n\t\t\t\twindow.removeEventListener(\"load\", completed);\r\n\t\t\t\tjQuery.ready();\r\n\t\t\t}\r\n\r\n\t\t\t// Catch cases where $(document).ready() is called\r\n\t\t\t// after the browser event has already occurred.\r\n\t\t\t// Support: IE <=9 - 10 only\r\n\t\t\t// Older IE sometimes signals \"interactive\" too soon\r\n\t\t\tif (document.readyState === \"complete\" ||\r\n\t\t\t\t(document.readyState !== \"loading\" && !document.documentElement.doScroll)) {\r\n\r\n\t\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\r\n\t\t\t\twindow.setTimeout(jQuery.ready);\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\t// Use the handy event callback\r\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", completed);\r\n\r\n\t\t\t\t// A fallback to window.onload, that will always work\r\n\t\t\t\twindow.addEventListener(\"load\", completed);\r\n\t\t\t}\r\n\r\n\r\n\r\n\r\n\t\t\t// Multifunctional method to get and set values of a collection\r\n\t\t\t// The value/s can optionally be executed if it's a function\r\n\t\t\tvar access = function (elems, fn, key, value, chainable, emptyGet, raw) {\r\n\t\t\t\tvar i = 0,\r\n\t\t\t\t\tlen = elems.length,\r\n\t\t\t\t\tbulk = key == null;\r\n\r\n\t\t\t\t// Sets many values\r\n\t\t\t\tif (toType(key) === \"object\") {\r\n\t\t\t\t\tchainable = true;\r\n\t\t\t\t\tfor (i in key) {\r\n\t\t\t\t\t\taccess(elems, fn, i, key[i], true, emptyGet, raw);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Sets one value\r\n\t\t\t\t} else if (value !== undefined) {\r\n\t\t\t\t\tchainable = true;\r\n\r\n\t\t\t\t\tif (!isFunction(value)) {\r\n\t\t\t\t\t\traw = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (bulk) {\r\n\r\n\t\t\t\t\t\t// Bulk operations run against the entire set\r\n\t\t\t\t\t\tif (raw) {\r\n\t\t\t\t\t\t\tfn.call(elems, value);\r\n\t\t\t\t\t\t\tfn = null;\r\n\r\n\t\t\t\t\t\t\t// ...except when executing function values\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tbulk = fn;\r\n\t\t\t\t\t\t\tfn = function (elem, _key, value) {\r\n\t\t\t\t\t\t\t\treturn bulk.call(jQuery(elem), value);\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (fn) {\r\n\t\t\t\t\t\tfor (; i < len; i++) {\r\n\t\t\t\t\t\t\tfn(\r\n\t\t\t\t\t\t\t\telems[i], key, raw ?\r\n\t\t\t\t\t\t\t\tvalue :\r\n\t\t\t\t\t\t\t\tvalue.call(elems[i], i, fn(elems[i], key))\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (chainable) {\r\n\t\t\t\t\treturn elems;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Gets\r\n\t\t\t\tif (bulk) {\r\n\t\t\t\t\treturn fn.call(elems);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn len ? fn(elems[0], key) : emptyGet;\r\n\t\t\t};\r\n\r\n\r\n\t\t\t// Matches dashed string for camelizing\r\n\t\t\tvar rmsPrefix = /^-ms-/,\r\n\t\t\t\trdashAlpha = /-([a-z])/g;\r\n\r\n\t\t\t// Used by camelCase as callback to replace()\r\n\t\t\tfunction fcamelCase(_all, letter) {\r\n\t\t\t\treturn letter.toUpperCase();\r\n\t\t\t}\r\n\r\n\t\t\t// Convert dashed to camelCase; used by the css and data modules\r\n\t\t\t// Support: IE <=9 - 11, Edge 12 - 15\r\n\t\t\t// Microsoft forgot to hump their vendor prefix (#9572)\r\n\t\t\tfunction camelCase(string) {\r\n\t\t\t\treturn string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\r\n\t\t\t}\r\n\t\t\tvar acceptData = function (owner) {\r\n\r\n\t\t\t\t// Accepts only:\r\n\t\t\t\t// - Node\r\n\t\t\t\t// - Node.ELEMENT_NODE\r\n\t\t\t\t// - Node.DOCUMENT_NODE\r\n\t\t\t\t// - Object\r\n\t\t\t\t// - Any\r\n\t\t\t\treturn owner.nodeType === 1 || owner.nodeType === 9 || !(+owner.nodeType);\r\n\t\t\t};\r\n\r\n\r\n\r\n\r\n\t\t\tfunction Data() {\r\n\t\t\t\tthis.expando = jQuery.expando + Data.uid++;\r\n\t\t\t}\r\n\r\n\t\t\tData.uid = 1;\r\n\r\n\t\t\tData.prototype = {\r\n\r\n\t\t\t\tcache: function (owner) {\r\n\r\n\t\t\t\t\t// Check if the owner object already has a cache\r\n\t\t\t\t\tvar value = owner[this.expando];\r\n\r\n\t\t\t\t\t// If not, create one\r\n\t\t\t\t\tif (!value) {\r\n\t\t\t\t\t\tvalue = {};\r\n\r\n\t\t\t\t\t\t// We can accept data for non-element nodes in modern browsers,\r\n\t\t\t\t\t\t// but we should not, see #8335.\r\n\t\t\t\t\t\t// Always return an empty object.\r\n\t\t\t\t\t\tif (acceptData(owner)) {\r\n\r\n\t\t\t\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\r\n\t\t\t\t\t\t\t// use plain assignment\r\n\t\t\t\t\t\t\tif (owner.nodeType) {\r\n\t\t\t\t\t\t\t\towner[this.expando] = value;\r\n\r\n\t\t\t\t\t\t\t\t// Otherwise secure it in a non-enumerable property\r\n\t\t\t\t\t\t\t\t// configurable must be true to allow the property to be\r\n\t\t\t\t\t\t\t\t// deleted when data is removed\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tObject.defineProperty(owner, this.expando, {\r\n\t\t\t\t\t\t\t\t\tvalue: value,\r\n\t\t\t\t\t\t\t\t\tconfigurable: true\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn value;\r\n\t\t\t\t},\r\n\t\t\t\tset: function (owner, data, value) {\r\n\t\t\t\t\tvar prop,\r\n\t\t\t\t\t\tcache = this.cache(owner);\r\n\r\n\t\t\t\t\t// Handle: [ owner, key, value ] args\r\n\t\t\t\t\t// Always use camelCase key (gh-2257)\r\n\t\t\t\t\tif (typeof data === \"string\") {\r\n\t\t\t\t\t\tcache[camelCase(data)] = value;\r\n\r\n\t\t\t\t\t\t// Handle: [ owner, { properties } ] args\r\n\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t// Copy the properties one-by-one to the cache object\r\n\t\t\t\t\t\tfor (prop in data) {\r\n\t\t\t\t\t\t\tcache[camelCase(prop)] = data[prop];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn cache;\r\n\t\t\t\t},\r\n\t\t\t\tget: function (owner, key) {\r\n\t\t\t\t\treturn key === undefined ?\r\n\t\t\t\t\t\tthis.cache(owner) :\r\n\r\n\t\t\t\t\t\t// Always use camelCase key (gh-2257)\r\n\t\t\t\t\t\towner[this.expando] && owner[this.expando][camelCase(key)];\r\n\t\t\t\t},\r\n\t\t\t\taccess: function (owner, key, value) {\r\n\r\n\t\t\t\t\t// In cases where either:\r\n\t\t\t\t\t//\r\n\t\t\t\t\t// 1. No key was specified\r\n\t\t\t\t\t// 2. A string key was specified, but no value provided\r\n\t\t\t\t\t//\r\n\t\t\t\t\t// Take the \"read\" path and allow the get method to determine\r\n\t\t\t\t\t// which value to return, respectively either:\r\n\t\t\t\t\t//\r\n\t\t\t\t\t// 1. The entire cache object\r\n\t\t\t\t\t// 2. The data stored at the key\r\n\t\t\t\t\t//\r\n\t\t\t\t\tif (key === undefined ||\r\n\t\t\t\t\t\t((key && typeof key === \"string\") && value === undefined)) {\r\n\r\n\t\t\t\t\t\treturn this.get(owner, key);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// When the key is not a string, or both a key and value\r\n\t\t\t\t\t// are specified, set or extend (existing objects) with either:\r\n\t\t\t\t\t//\r\n\t\t\t\t\t// 1. An object of properties\r\n\t\t\t\t\t// 2. A key and value\r\n\t\t\t\t\t//\r\n\t\t\t\t\tthis.set(owner, key, value);\r\n\r\n\t\t\t\t\t// Since the \"set\" path can have two possible entry points\r\n\t\t\t\t\t// return the expected data based on which path was taken[*]\r\n\t\t\t\t\treturn value !== undefined ? value : key;\r\n\t\t\t\t},\r\n\t\t\t\tremove: function (owner, key) {\r\n\t\t\t\t\tvar i,\r\n\t\t\t\t\t\tcache = owner[this.expando];\r\n\r\n\t\t\t\t\tif (cache === undefined) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (key !== undefined) {\r\n\r\n\t\t\t\t\t\t// Support array or space separated string of keys\r\n\t\t\t\t\t\tif (Array.isArray(key)) {\r\n\r\n\t\t\t\t\t\t\t// If key is an array of keys...\r\n\t\t\t\t\t\t\t// We always set camelCase keys, so remove that.\r\n\t\t\t\t\t\t\tkey = key.map(camelCase);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tkey = camelCase(key);\r\n\r\n\t\t\t\t\t\t\t// If a key with the spaces exists, use it.\r\n\t\t\t\t\t\t\t// Otherwise, create an array by matching non-whitespace\r\n\t\t\t\t\t\t\tkey = key in cache ?\r\n\t\t\t\t\t\t\t\t[key] :\r\n\t\t\t\t\t\t\t\t(key.match(rnothtmlwhite) || []);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ti = key.length;\r\n\r\n\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\tdelete cache[key[i]];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Remove the expando if there's no more data\r\n\t\t\t\t\tif (key === undefined || jQuery.isEmptyObject(cache)) {\r\n\r\n\t\t\t\t\t\t// Support: Chrome <=35 - 45\r\n\t\t\t\t\t\t// Webkit & Blink performance suffers when deleting properties\r\n\t\t\t\t\t\t// from DOM nodes, so set to undefined instead\r\n\t\t\t\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\r\n\t\t\t\t\t\tif (owner.nodeType) {\r\n\t\t\t\t\t\t\towner[this.expando] = undefined;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tdelete owner[this.expando];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\thasData: function (owner) {\r\n\t\t\t\t\tvar cache = owner[this.expando];\r\n\t\t\t\t\treturn cache !== undefined && !jQuery.isEmptyObject(cache);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tvar dataPriv = new Data();\r\n\r\n\t\t\tvar dataUser = new Data();\r\n\r\n\r\n\r\n\t\t\t//\tImplementation Summary\r\n\t\t\t//\r\n\t\t\t//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\r\n\t\t\t//\t2. Improve the module's maintainability by reducing the storage\r\n\t\t\t//\t\tpaths to a single mechanism.\r\n\t\t\t//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\r\n\t\t\t//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\r\n\t\t\t//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\r\n\t\t\t//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\r\n\r\n\t\t\tvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\r\n\t\t\t\trmultiDash = /[A-Z]/g;\r\n\r\n\t\t\tfunction getData(data) {\r\n\t\t\t\tif (data === \"true\") {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (data === \"false\") {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (data === \"null\") {\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Only convert to a number if it doesn't change the string\r\n\t\t\t\tif (data === +data + \"\") {\r\n\t\t\t\t\treturn +data;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (rbrace.test(data)) {\r\n\t\t\t\t\treturn JSON.parse(data);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn data;\r\n\t\t\t}\r\n\r\n\t\t\tfunction dataAttr(elem, key, data) {\r\n\t\t\t\tvar name;\r\n\r\n\t\t\t\t// If nothing was found internally, try to fetch any\r\n\t\t\t\t// data from the HTML5 data-* attribute\r\n\t\t\t\tif (data === undefined && elem.nodeType === 1) {\r\n\t\t\t\t\tname = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\r\n\t\t\t\t\tdata = elem.getAttribute(name);\r\n\r\n\t\t\t\t\tif (typeof data === \"string\") {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tdata = getData(data);\r\n\t\t\t\t\t\t} catch (e) { }\r\n\r\n\t\t\t\t\t\t// Make sure we set the data so it isn't changed later\r\n\t\t\t\t\t\tdataUser.set(elem, key, data);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdata = undefined;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn data;\r\n\t\t\t}\r\n\r\n\t\t\tjQuery.extend({\r\n\t\t\t\thasData: function (elem) {\r\n\t\t\t\t\treturn dataUser.hasData(elem) || dataPriv.hasData(elem);\r\n\t\t\t\t},\r\n\r\n\t\t\t\tdata: function (elem, name, data) {\r\n\t\t\t\t\treturn dataUser.access(elem, name, data);\r\n\t\t\t\t},\r\n\r\n\t\t\t\tremoveData: function (elem, name) {\r\n\t\t\t\t\tdataUser.remove(elem, name);\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// TODO: Now that all calls to _data and _removeData have been replaced\r\n\t\t\t\t// with direct calls to dataPriv methods, these can be deprecated.\r\n\t\t\t\t_data: function (elem, name, data) {\r\n\t\t\t\t\treturn dataPriv.access(elem, name, data);\r\n\t\t\t\t},\r\n\r\n\t\t\t\t_removeData: function (elem, name) {\r\n\t\t\t\t\tdataPriv.remove(elem, name);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tjQuery.fn.extend({\r\n\t\t\t\tdata: function (key, value) {\r\n\t\t\t\t\tvar i, name, data,\r\n\t\t\t\t\t\telem = this[0],\r\n\t\t\t\t\t\tattrs = elem && elem.attributes;\r\n\r\n\t\t\t\t\t// Gets all values\r\n\t\t\t\t\tif (key === undefined) {\r\n\t\t\t\t\t\tif (this.length) {\r\n\t\t\t\t\t\t\tdata = dataUser.get(elem);\r\n\r\n\t\t\t\t\t\t\tif (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\r\n\t\t\t\t\t\t\t\ti = attrs.length;\r\n\t\t\t\t\t\t\t\twhile (i--) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: IE 11 only\r\n\t\t\t\t\t\t\t\t\t// The attrs elements can be null (#14894)\r\n\t\t\t\t\t\t\t\t\tif (attrs[i]) {\r\n\t\t\t\t\t\t\t\t\t\tname = attrs[i].name;\r\n\t\t\t\t\t\t\t\t\t\tif (name.indexOf(\"data-\") === 0) {\r\n\t\t\t\t\t\t\t\t\t\t\tname = camelCase(name.slice(5));\r\n\t\t\t\t\t\t\t\t\t\t\tdataAttr(elem, name, data[name]);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tdataPriv.set(elem, \"hasDataAttrs\", true);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn data;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Sets multiple values\r\n\t\t\t\t\tif (typeof key === \"object\") {\r\n\t\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\t\tdataUser.set(this, key);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn access(this, function (value) {\r\n\t\t\t\t\t\tvar data;\r\n\r\n\t\t\t\t\t\t// The calling jQuery object (element matches) is not empty\r\n\t\t\t\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\r\n\t\t\t\t\t\t// `value` parameter was not undefined. An empty jQuery object\r\n\t\t\t\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\r\n\t\t\t\t\t\t// throw an exception if an attempt to read a data cache is made.\r\n\t\t\t\t\t\tif (elem && value === undefined) {\r\n\r\n\t\t\t\t\t\t\t// Attempt to get data from the cache\r\n\t\t\t\t\t\t\t// The key will always be camelCased in Data\r\n\t\t\t\t\t\t\tdata = dataUser.get(elem, key);\r\n\t\t\t\t\t\t\tif (data !== undefined) {\r\n\t\t\t\t\t\t\t\treturn data;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Attempt to \"discover\" the data in\r\n\t\t\t\t\t\t\t// HTML5 custom data-* attrs\r\n\t\t\t\t\t\t\tdata = dataAttr(elem, key);\r\n\t\t\t\t\t\t\tif (data !== undefined) {\r\n\t\t\t\t\t\t\t\treturn data;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// We tried really hard, but the data doesn't exist.\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Set the data...\r\n\t\t\t\t\t\tthis.each(function () {\r\n\r\n\t\t\t\t\t\t\t// We always store the camelCased key\r\n\t\t\t\t\t\t\tdataUser.set(this, key, value);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}, null, value, arguments.length > 1, null, true);\r\n\t\t\t\t},\r\n\r\n\t\t\t\tremoveData: function (key) {\r\n\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\tdataUser.remove(this, key);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\t\tjQuery.extend({\r\n\t\t\t\tqueue: function (elem, type, data) {\r\n\t\t\t\t\tvar queue;\r\n\r\n\t\t\t\t\tif (elem) {\r\n\t\t\t\t\t\ttype = (type || \"fx\") + \"queue\";\r\n\t\t\t\t\t\tqueue = dataPriv.get(elem, type);\r\n\r\n\t\t\t\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\r\n\t\t\t\t\t\tif (data) {\r\n\t\t\t\t\t\t\tif (!queue || Array.isArray(data)) {\r\n\t\t\t\t\t\t\t\tqueue = dataPriv.access(elem, type, jQuery.makeArray(data));\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tqueue.push(data);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn queue || [];\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\tdequeue: function (elem, type) {\r\n\t\t\t\t\ttype = type || \"fx\";\r\n\r\n\t\t\t\t\tvar queue = jQuery.queue(elem, type),\r\n\t\t\t\t\t\tstartLength = queue.length,\r\n\t\t\t\t\t\tfn = queue.shift(),\r\n\t\t\t\t\t\thooks = jQuery._queueHooks(elem, type),\r\n\t\t\t\t\t\tnext = function () {\r\n\t\t\t\t\t\t\tjQuery.dequeue(elem, type);\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// If the fx queue is dequeued, always remove the progress sentinel\r\n\t\t\t\t\tif (fn === \"inprogress\") {\r\n\t\t\t\t\t\tfn = queue.shift();\r\n\t\t\t\t\t\tstartLength--;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (fn) {\r\n\r\n\t\t\t\t\t\t// Add a progress sentinel to prevent the fx queue from being\r\n\t\t\t\t\t\t// automatically dequeued\r\n\t\t\t\t\t\tif (type === \"fx\") {\r\n\t\t\t\t\t\t\tqueue.unshift(\"inprogress\");\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Clear up the last queue stop function\r\n\t\t\t\t\t\tdelete hooks.stop;\r\n\t\t\t\t\t\tfn.call(elem, next, hooks);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!startLength && hooks) {\r\n\t\t\t\t\t\thooks.empty.fire();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Not public - generate a queueHooks object, or return the current one\r\n\t\t\t\t_queueHooks: function (elem, type) {\r\n\t\t\t\t\tvar key = type + \"queueHooks\";\r\n\t\t\t\t\treturn dataPriv.get(elem, key) || dataPriv.access(elem, key, {\r\n\t\t\t\t\t\tempty: jQuery.Callbacks(\"once memory\").add(function () {\r\n\t\t\t\t\t\t\tdataPriv.remove(elem, [type + \"queue\", key]);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tjQuery.fn.extend({\r\n\t\t\t\tqueue: function (type, data) {\r\n\t\t\t\t\tvar setter = 2;\r\n\r\n\t\t\t\t\tif (typeof type !== \"string\") {\r\n\t\t\t\t\t\tdata = type;\r\n\t\t\t\t\t\ttype = \"fx\";\r\n\t\t\t\t\t\tsetter--;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (arguments.length < setter) {\r\n\t\t\t\t\t\treturn jQuery.queue(this[0], type);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn data === undefined ?\r\n\t\t\t\t\t\tthis :\r\n\t\t\t\t\t\tthis.each(function () {\r\n\t\t\t\t\t\t\tvar queue = jQuery.queue(this, type, data);\r\n\r\n\t\t\t\t\t\t\t// Ensure a hooks for this queue\r\n\t\t\t\t\t\t\tjQuery._queueHooks(this, type);\r\n\r\n\t\t\t\t\t\t\tif (type === \"fx\" && queue[0] !== \"inprogress\") {\r\n\t\t\t\t\t\t\t\tjQuery.dequeue(this, type);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\tdequeue: function (type) {\r\n\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\tjQuery.dequeue(this, type);\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\tclearQueue: function (type) {\r\n\t\t\t\t\treturn this.queue(type || \"fx\", []);\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Get a promise resolved when queues of a certain type\r\n\t\t\t\t// are emptied (fx is the type by default)\r\n\t\t\t\tpromise: function (type, obj) {\r\n\t\t\t\t\tvar tmp,\r\n\t\t\t\t\t\tcount = 1,\r\n\t\t\t\t\t\tdefer = jQuery.Deferred(),\r\n\t\t\t\t\t\telements = this,\r\n\t\t\t\t\t\ti = this.length,\r\n\t\t\t\t\t\tresolve = function () {\r\n\t\t\t\t\t\t\tif (!(--count)) {\r\n\t\t\t\t\t\t\t\tdefer.resolveWith(elements, [elements]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\tif (typeof type !== \"string\") {\r\n\t\t\t\t\t\tobj = type;\r\n\t\t\t\t\t\ttype = undefined;\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttype = type || \"fx\";\r\n\r\n\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\ttmp = dataPriv.get(elements[i], type + \"queueHooks\");\r\n\t\t\t\t\t\tif (tmp && tmp.empty) {\r\n\t\t\t\t\t\t\tcount++;\r\n\t\t\t\t\t\t\ttmp.empty.add(resolve);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tresolve();\r\n\t\t\t\t\treturn defer.promise(obj);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tvar pnum = (/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/).source;\r\n\r\n\t\t\tvar rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\r\n\r\n\r\n\t\t\tvar cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\r\n\r\n\t\t\tvar documentElement = document.documentElement;\r\n\r\n\r\n\r\n\t\t\tvar isAttached = function (elem) {\r\n\t\t\t\treturn jQuery.contains(elem.ownerDocument, elem);\r\n\t\t\t},\r\n\t\t\t\tcomposed = { composed: true };\r\n\r\n\t\t\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\r\n\t\t\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\r\n\t\t\t// Support: iOS 10.0-10.2 only\r\n\t\t\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\r\n\t\t\t// leading to errors. We need to check for `getRootNode`.\r\n\t\t\tif (documentElement.getRootNode) {\r\n\t\t\t\tisAttached = function (elem) {\r\n\t\t\t\t\treturn jQuery.contains(elem.ownerDocument, elem) ||\r\n\t\t\t\t\t\telem.getRootNode(composed) === elem.ownerDocument;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tvar isHiddenWithinTree = function (elem, el) {\r\n\r\n\t\t\t\t// isHiddenWithinTree might be called from jQuery#filter function;\r\n\t\t\t\t// in that case, element will be second argument\r\n\t\t\t\telem = el || elem;\r\n\r\n\t\t\t\t// Inline style trumps all\r\n\t\t\t\treturn elem.style.display === \"none\" ||\r\n\t\t\t\t\telem.style.display === \"\" &&\r\n\r\n\t\t\t\t\t// Otherwise, check computed style\r\n\t\t\t\t\t// Support: Firefox <=43 - 45\r\n\t\t\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\r\n\t\t\t\t\t// in the document.\r\n\t\t\t\t\tisAttached(elem) &&\r\n\r\n\t\t\t\t\tjQuery.css(elem, \"display\") === \"none\";\r\n\t\t\t};\r\n\r\n\r\n\r\n\t\t\tfunction adjustCSS(elem, prop, valueParts, tween) {\r\n\t\t\t\tvar adjusted, scale,\r\n\t\t\t\t\tmaxIterations = 20,\r\n\t\t\t\t\tcurrentValue = tween ?\r\n\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\treturn tween.cur();\r\n\t\t\t\t\t\t} :\r\n\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\treturn jQuery.css(elem, prop, \"\");\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\tinitial = currentValue(),\r\n\t\t\t\t\tunit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\r\n\r\n\t\t\t\t\t// Starting value computation is required for potential unit mismatches\r\n\t\t\t\t\tinitialInUnit = elem.nodeType &&\r\n\t\t\t\t\t\t(jQuery.cssNumber[prop] || unit !== \"px\" && +initial) &&\r\n\t\t\t\t\t\trcssNum.exec(jQuery.css(elem, prop));\r\n\r\n\t\t\t\tif (initialInUnit && initialInUnit[3] !== unit) {\r\n\r\n\t\t\t\t\t// Support: Firefox <=54\r\n\t\t\t\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\r\n\t\t\t\t\tinitial = initial / 2;\r\n\r\n\t\t\t\t\t// Trust units reported by jQuery.css\r\n\t\t\t\t\tunit = unit || initialInUnit[3];\r\n\r\n\t\t\t\t\t// Iteratively approximate from a nonzero starting point\r\n\t\t\t\t\tinitialInUnit = +initial || 1;\r\n\r\n\t\t\t\t\twhile (maxIterations--) {\r\n\r\n\t\t\t\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\r\n\t\t\t\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\r\n\t\t\t\t\t\tjQuery.style(elem, prop, initialInUnit + unit);\r\n\t\t\t\t\t\tif ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\r\n\t\t\t\t\t\t\tmaxIterations = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tinitialInUnit = initialInUnit / scale;\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tinitialInUnit = initialInUnit * 2;\r\n\t\t\t\t\tjQuery.style(elem, prop, initialInUnit + unit);\r\n\r\n\t\t\t\t\t// Make sure we update the tween properties later on\r\n\t\t\t\t\tvalueParts = valueParts || [];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (valueParts) {\r\n\t\t\t\t\tinitialInUnit = +initialInUnit || +initial || 0;\r\n\r\n\t\t\t\t\t// Apply relative offset (+=/-=) if specified\r\n\t\t\t\t\tadjusted = valueParts[1] ?\r\n\t\t\t\t\t\tinitialInUnit + (valueParts[1] + 1) * valueParts[2] :\r\n\t\t\t\t\t\t+valueParts[2];\r\n\t\t\t\t\tif (tween) {\r\n\t\t\t\t\t\ttween.unit = unit;\r\n\t\t\t\t\t\ttween.start = initialInUnit;\r\n\t\t\t\t\t\ttween.end = adjusted;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn adjusted;\r\n\t\t\t}\r\n\r\n\r\n\t\t\tvar defaultDisplayMap = {};\r\n\r\n\t\t\tfunction getDefaultDisplay(elem) {\r\n\t\t\t\tvar temp,\r\n\t\t\t\t\tdoc = elem.ownerDocument,\r\n\t\t\t\t\tnodeName = elem.nodeName,\r\n\t\t\t\t\tdisplay = defaultDisplayMap[nodeName];\r\n\r\n\t\t\t\tif (display) {\r\n\t\t\t\t\treturn display;\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttemp = doc.body.appendChild(doc.createElement(nodeName));\r\n\t\t\t\tdisplay = jQuery.css(temp, \"display\");\r\n\r\n\t\t\t\ttemp.parentNode.removeChild(temp);\r\n\r\n\t\t\t\tif (display === \"none\") {\r\n\t\t\t\t\tdisplay = \"block\";\r\n\t\t\t\t}\r\n\t\t\t\tdefaultDisplayMap[nodeName] = display;\r\n\r\n\t\t\t\treturn display;\r\n\t\t\t}\r\n\r\n\t\t\tfunction showHide(elements, show) {\r\n\t\t\t\tvar display, elem,\r\n\t\t\t\t\tvalues = [],\r\n\t\t\t\t\tindex = 0,\r\n\t\t\t\t\tlength = elements.length;\r\n\r\n\t\t\t\t// Determine new display value for elements that need to change\r\n\t\t\t\tfor (; index < length; index++) {\r\n\t\t\t\t\telem = elements[index];\r\n\t\t\t\t\tif (!elem.style) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdisplay = elem.style.display;\r\n\t\t\t\t\tif (show) {\r\n\r\n\t\t\t\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\r\n\t\t\t\t\t\t// check is required in this first loop unless we have a nonempty display value (either\r\n\t\t\t\t\t\t// inline or about-to-be-restored)\r\n\t\t\t\t\t\tif (display === \"none\") {\r\n\t\t\t\t\t\t\tvalues[index] = dataPriv.get(elem, \"display\") || null;\r\n\t\t\t\t\t\t\tif (!values[index]) {\r\n\t\t\t\t\t\t\t\telem.style.display = \"\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\r\n\t\t\t\t\t\t\tvalues[index] = getDefaultDisplay(elem);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (display !== \"none\") {\r\n\t\t\t\t\t\t\tvalues[index] = \"none\";\r\n\r\n\t\t\t\t\t\t\t// Remember what we're overwriting\r\n\t\t\t\t\t\t\tdataPriv.set(elem, \"display\", display);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Set the display of the elements in a second loop to avoid constant reflow\r\n\t\t\t\tfor (index = 0; index < length; index++) {\r\n\t\t\t\t\tif (values[index] != null) {\r\n\t\t\t\t\t\telements[index].style.display = values[index];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn elements;\r\n\t\t\t}\r\n\r\n\t\t\tjQuery.fn.extend({\r\n\t\t\t\tshow: function () {\r\n\t\t\t\t\treturn showHide(this, true);\r\n\t\t\t\t},\r\n\t\t\t\thide: function () {\r\n\t\t\t\t\treturn showHide(this);\r\n\t\t\t\t},\r\n\t\t\t\ttoggle: function (state) {\r\n\t\t\t\t\tif (typeof state === \"boolean\") {\r\n\t\t\t\t\t\treturn state ? this.show() : this.hide();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\tif (isHiddenWithinTree(this)) {\r\n\t\t\t\t\t\t\tjQuery(this).show();\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tjQuery(this).hide();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tvar rcheckableType = (/^(?:checkbox|radio)$/i);\r\n\r\n\t\t\tvar rtagName = (/<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i);\r\n\r\n\t\t\tvar rscriptType = (/^$|^module$|\\/(?:java|ecma)script/i);\r\n\r\n\r\n\r\n\t\t\t(function () {\r\n\t\t\t\tvar fragment = document.createDocumentFragment(),\r\n\t\t\t\t\tdiv = fragment.appendChild(document.createElement(\"div\")),\r\n\t\t\t\t\tinput = document.createElement(\"input\");\r\n\r\n\t\t\t\t// Support: Android 4.0 - 4.3 only\r\n\t\t\t\t// Check state lost if the name is set (#11217)\r\n\t\t\t\t// Support: Windows Web Apps (WWA)\r\n\t\t\t\t// `name` and `type` must use .setAttribute for WWA (#14901)\r\n\t\t\t\tinput.setAttribute(\"type\", \"radio\");\r\n\t\t\t\tinput.setAttribute(\"checked\", \"checked\");\r\n\t\t\t\tinput.setAttribute(\"name\", \"t\");\r\n\r\n\t\t\t\tdiv.appendChild(input);\r\n\r\n\t\t\t\t// Support: Android <=4.1 only\r\n\t\t\t\t// Older WebKit doesn't clone checked state correctly in fragments\r\n\t\t\t\tsupport.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked;\r\n\r\n\t\t\t\t// Support: IE <=11 only\r\n\t\t\t\t// Make sure textarea (and checkbox) defaultValue is properly cloned\r\n\t\t\t\tdiv.innerHTML = \"<textarea>x</textarea>\";\r\n\t\t\t\tsupport.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue;\r\n\r\n\t\t\t\t// Support: IE <=9 only\r\n\t\t\t\t// IE <=9 replaces <option> tags with their contents when inserted outside of\r\n\t\t\t\t// the select element.\r\n\t\t\t\tdiv.innerHTML = \"<option></option>\";\r\n\t\t\t\tsupport.option = !!div.lastChild;\r\n\t\t\t})();\r\n\r\n\r\n\t\t\t// We have to close these tags to support XHTML (#13200)\r\n\t\t\tvar wrapMap = {\r\n\r\n\t\t\t\t// XHTML parsers do not magically insert elements in the\r\n\t\t\t\t// same way that tag soup parsers do. So we cannot shorten\r\n\t\t\t\t// this by omitting <tbody> or other required elements.\r\n\t\t\t\tthead: [1, \"<table>\", \"</table>\"],\r\n\t\t\t\tcol: [2, \"<table><colgroup>\", \"</colgroup></table>\"],\r\n\t\t\t\ttr: [2, \"<table><tbody>\", \"</tbody></table>\"],\r\n\t\t\t\ttd: [3, \"<table><tbody><tr>\", \"</tr></tbody></table>\"],\r\n\r\n\t\t\t\t_default: [0, \"\", \"\"]\r\n\t\t\t};\r\n\r\n\t\t\twrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\r\n\t\t\twrapMap.th = wrapMap.td;\r\n\r\n\t\t\t// Support: IE <=9 only\r\n\t\t\tif (!support.option) {\r\n\t\t\t\twrapMap.optgroup = wrapMap.option = [1, \"<select multiple='multiple'>\", \"</select>\"];\r\n\t\t\t}\r\n\r\n\r\n\t\t\tfunction getAll(context, tag) {\r\n\r\n\t\t\t\t// Support: IE <=9 - 11 only\r\n\t\t\t\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\r\n\t\t\t\tvar ret;\r\n\r\n\t\t\t\tif (typeof context.getElementsByTagName !== \"undefined\") {\r\n\t\t\t\t\tret = context.getElementsByTagName(tag || \"*\");\r\n\r\n\t\t\t\t} else if (typeof context.querySelectorAll !== \"undefined\") {\r\n\t\t\t\t\tret = context.querySelectorAll(tag || \"*\");\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tret = [];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (tag === undefined || tag && nodeName(context, tag)) {\r\n\t\t\t\t\treturn jQuery.merge([context], ret);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn ret;\r\n\t\t\t}\r\n\r\n\r\n\t\t\t// Mark scripts as having already been evaluated\r\n\t\t\tfunction setGlobalEval(elems, refElements) {\r\n\t\t\t\tvar i = 0,\r\n\t\t\t\t\tl = elems.length;\r\n\r\n\t\t\t\tfor (; i < l; i++) {\r\n\t\t\t\t\tdataPriv.set(\r\n\t\t\t\t\t\telems[i],\r\n\t\t\t\t\t\t\"globalEval\",\r\n\t\t\t\t\t\t!refElements || dataPriv.get(refElements[i], \"globalEval\")\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\tvar rhtml = /<|&#?\\w+;/;\r\n\r\n\t\t\tfunction buildFragment(elems, context, scripts, selection, ignored) {\r\n\t\t\t\tvar elem, tmp, tag, wrap, attached, j,\r\n\t\t\t\t\tfragment = context.createDocumentFragment(),\r\n\t\t\t\t\tnodes = [],\r\n\t\t\t\t\ti = 0,\r\n\t\t\t\t\tl = elems.length;\r\n\r\n\t\t\t\tfor (; i < l; i++) {\r\n\t\t\t\t\telem = elems[i];\r\n\r\n\t\t\t\t\tif (elem || elem === 0) {\r\n\r\n\t\t\t\t\t\t// Add nodes directly\r\n\t\t\t\t\t\tif (toType(elem) === \"object\") {\r\n\r\n\t\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\r\n\t\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\r\n\t\t\t\t\t\t\tjQuery.merge(nodes, elem.nodeType ? [elem] : elem);\r\n\r\n\t\t\t\t\t\t\t// Convert non-html into a text node\r\n\t\t\t\t\t\t} else if (!rhtml.test(elem)) {\r\n\t\t\t\t\t\t\tnodes.push(context.createTextNode(elem));\r\n\r\n\t\t\t\t\t\t\t// Convert html into DOM nodes\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\ttmp = tmp || fragment.appendChild(context.createElement(\"div\"));\r\n\r\n\t\t\t\t\t\t\t// Deserialize a standard representation\r\n\t\t\t\t\t\t\ttag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\r\n\t\t\t\t\t\t\twrap = wrapMap[tag] || wrapMap._default;\r\n\t\t\t\t\t\t\ttmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2];\r\n\r\n\t\t\t\t\t\t\t// Descend through wrappers to the right content\r\n\t\t\t\t\t\t\tj = wrap[0];\r\n\t\t\t\t\t\t\twhile (j--) {\r\n\t\t\t\t\t\t\t\ttmp = tmp.lastChild;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\r\n\t\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\r\n\t\t\t\t\t\t\tjQuery.merge(nodes, tmp.childNodes);\r\n\r\n\t\t\t\t\t\t\t// Remember the top-level container\r\n\t\t\t\t\t\t\ttmp = fragment.firstChild;\r\n\r\n\t\t\t\t\t\t\t// Ensure the created nodes are orphaned (#12392)\r\n\t\t\t\t\t\t\ttmp.textContent = \"\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Remove wrapper from fragment\r\n\t\t\t\tfragment.textContent = \"\";\r\n\r\n\t\t\t\ti = 0;\r\n\t\t\t\twhile ((elem = nodes[i++])) {\r\n\r\n\t\t\t\t\t// Skip elements already in the context collection (trac-4087)\r\n\t\t\t\t\tif (selection && jQuery.inArray(elem, selection) > -1) {\r\n\t\t\t\t\t\tif (ignored) {\r\n\t\t\t\t\t\t\tignored.push(elem);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tattached = isAttached(elem);\r\n\r\n\t\t\t\t\t// Append to fragment\r\n\t\t\t\t\ttmp = getAll(fragment.appendChild(elem), \"script\");\r\n\r\n\t\t\t\t\t// Preserve script evaluation history\r\n\t\t\t\t\tif (attached) {\r\n\t\t\t\t\t\tsetGlobalEval(tmp);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Capture executables\r\n\t\t\t\t\tif (scripts) {\r\n\t\t\t\t\t\tj = 0;\r\n\t\t\t\t\t\twhile ((elem = tmp[j++])) {\r\n\t\t\t\t\t\t\tif (rscriptType.test(elem.type || \"\")) {\r\n\t\t\t\t\t\t\t\tscripts.push(elem);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn fragment;\r\n\t\t\t}\r\n\r\n\r\n\t\t\tvar\r\n\t\t\t\trkeyEvent = /^key/,\r\n\t\t\t\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\r\n\t\t\t\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\r\n\r\n\t\t\tfunction returnTrue() {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tfunction returnFalse() {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t// Support: IE <=9 - 11+\r\n\t\t\t// focus() and blur() are asynchronous, except when they are no-op.\r\n\t\t\t// So expect focus to be synchronous when the element is already active,\r\n\t\t\t// and blur to be synchronous when the element is not already active.\r\n\t\t\t// (focus and blur are always synchronous in other supported browsers,\r\n\t\t\t// this just defines when we can count on it).\r\n\t\t\tfunction expectSync(elem, type) {\r\n\t\t\t\treturn (elem === safeActiveElement()) === (type === \"focus\");\r\n\t\t\t}\r\n\r\n\t\t\t// Support: IE <=9 only\r\n\t\t\t// Accessing document.activeElement can throw unexpectedly\r\n\t\t\t// https://bugs.jquery.com/ticket/13393\r\n\t\t\tfunction safeActiveElement() {\r\n\t\t\t\ttry {\r\n\t\t\t\t\treturn document.activeElement;\r\n\t\t\t\t} catch (err) { }\r\n\t\t\t}\r\n\r\n\t\t\tfunction on(elem, types, selector, data, fn, one) {\r\n\t\t\t\tvar origFn, type;\r\n\r\n\t\t\t\t// Types can be a map of types/handlers\r\n\t\t\t\tif (typeof types === \"object\") {\r\n\r\n\t\t\t\t\t// ( types-Object, selector, data )\r\n\t\t\t\t\tif (typeof selector !== \"string\") {\r\n\r\n\t\t\t\t\t\t// ( types-Object, data )\r\n\t\t\t\t\t\tdata = data || selector;\r\n\t\t\t\t\t\tselector = undefined;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (type in types) {\r\n\t\t\t\t\t\ton(elem, type, selector, data, types[type], one);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn elem;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (data == null && fn == null) {\r\n\r\n\t\t\t\t\t// ( types, fn )\r\n\t\t\t\t\tfn = selector;\r\n\t\t\t\t\tdata = selector = undefined;\r\n\t\t\t\t} else if (fn == null) {\r\n\t\t\t\t\tif (typeof selector === \"string\") {\r\n\r\n\t\t\t\t\t\t// ( types, selector, fn )\r\n\t\t\t\t\t\tfn = data;\r\n\t\t\t\t\t\tdata = undefined;\r\n\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t// ( types, data, fn )\r\n\t\t\t\t\t\tfn = data;\r\n\t\t\t\t\t\tdata = selector;\r\n\t\t\t\t\t\tselector = undefined;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (fn === false) {\r\n\t\t\t\t\tfn = returnFalse;\r\n\t\t\t\t} else if (!fn) {\r\n\t\t\t\t\treturn elem;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (one === 1) {\r\n\t\t\t\t\torigFn = fn;\r\n\t\t\t\t\tfn = function (event) {\r\n\r\n\t\t\t\t\t\t// Can use an empty set, since event contains the info\r\n\t\t\t\t\t\tjQuery().off(event);\r\n\t\t\t\t\t\treturn origFn.apply(this, arguments);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// Use same guid so caller can remove using origFn\r\n\t\t\t\t\tfn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\r\n\t\t\t\t}\r\n\t\t\t\treturn elem.each(function () {\r\n\t\t\t\t\tjQuery.event.add(this, types, fn, data, selector);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t/*\r\n\t\t\t * Helper functions for managing events -- not part of the public interface.\r\n\t\t\t * Props to Dean Edwards' addEvent library for many of the ideas.\r\n\t\t\t */\r\n\t\t\tjQuery.event = {\r\n\r\n\t\t\t\tglobal: {},\r\n\r\n\t\t\t\tadd: function (elem, types, handler, data, selector) {\r\n\r\n\t\t\t\t\tvar handleObjIn, eventHandle, tmp,\r\n\t\t\t\t\t\tevents, t, handleObj,\r\n\t\t\t\t\t\tspecial, handlers, type, namespaces, origType,\r\n\t\t\t\t\t\telemData = dataPriv.get(elem);\r\n\r\n\t\t\t\t\t// Only attach events to objects that accept data\r\n\t\t\t\t\tif (!acceptData(elem)) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Caller can pass in an object of custom data in lieu of the handler\r\n\t\t\t\t\tif (handler.handler) {\r\n\t\t\t\t\t\thandleObjIn = handler;\r\n\t\t\t\t\t\thandler = handleObjIn.handler;\r\n\t\t\t\t\t\tselector = handleObjIn.selector;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Ensure that invalid selectors throw exceptions at attach time\r\n\t\t\t\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\r\n\t\t\t\t\tif (selector) {\r\n\t\t\t\t\t\tjQuery.find.matchesSelector(documentElement, selector);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Make sure that the handler has a unique ID, used to find/remove it later\r\n\t\t\t\t\tif (!handler.guid) {\r\n\t\t\t\t\t\thandler.guid = jQuery.guid++;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Init the element's event structure and main handler, if this is the first\r\n\t\t\t\t\tif (!(events = elemData.events)) {\r\n\t\t\t\t\t\tevents = elemData.events = Object.create(null);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!(eventHandle = elemData.handle)) {\r\n\t\t\t\t\t\teventHandle = elemData.handle = function (e) {\r\n\r\n\t\t\t\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\r\n\t\t\t\t\t\t\t// when an event is called after a page has unloaded\r\n\t\t\t\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\r\n\t\t\t\t\t\t\t\tjQuery.event.dispatch.apply(elem, arguments) : undefined;\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Handle multiple events separated by a space\r\n\t\t\t\t\ttypes = (types || \"\").match(rnothtmlwhite) || [\"\"];\r\n\t\t\t\t\tt = types.length;\r\n\t\t\t\t\twhile (t--) {\r\n\t\t\t\t\t\ttmp = rtypenamespace.exec(types[t]) || [];\r\n\t\t\t\t\t\ttype = origType = tmp[1];\r\n\t\t\t\t\t\tnamespaces = (tmp[2] || \"\").split(\".\").sort();\r\n\r\n\t\t\t\t\t\t// There *must* be a type, no attaching namespace-only handlers\r\n\t\t\t\t\t\tif (!type) {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// If event changes its type, use the special event handlers for the changed type\r\n\t\t\t\t\t\tspecial = jQuery.event.special[type] || {};\r\n\r\n\t\t\t\t\t\t// If selector defined, determine special event api type, otherwise given type\r\n\t\t\t\t\t\ttype = (selector ? special.delegateType : special.bindType) || type;\r\n\r\n\t\t\t\t\t\t// Update special based on newly reset type\r\n\t\t\t\t\t\tspecial = jQuery.event.special[type] || {};\r\n\r\n\t\t\t\t\t\t// handleObj is passed to all event handlers\r\n\t\t\t\t\t\thandleObj = jQuery.extend({\r\n\t\t\t\t\t\t\ttype: type,\r\n\t\t\t\t\t\t\torigType: origType,\r\n\t\t\t\t\t\t\tdata: data,\r\n\t\t\t\t\t\t\thandler: handler,\r\n\t\t\t\t\t\t\tguid: handler.guid,\r\n\t\t\t\t\t\t\tselector: selector,\r\n\t\t\t\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test(selector),\r\n\t\t\t\t\t\t\tnamespace: namespaces.join(\".\")\r\n\t\t\t\t\t\t}, handleObjIn);\r\n\r\n\t\t\t\t\t\t// Init the event handler queue if we're the first\r\n\t\t\t\t\t\tif (!(handlers = events[type])) {\r\n\t\t\t\t\t\t\thandlers = events[type] = [];\r\n\t\t\t\t\t\t\thandlers.delegateCount = 0;\r\n\r\n\t\t\t\t\t\t\t// Only use addEventListener if the special events handler returns false\r\n\t\t\t\t\t\t\tif (!special.setup ||\r\n\t\t\t\t\t\t\t\tspecial.setup.call(elem, data, namespaces, eventHandle) === false) {\r\n\r\n\t\t\t\t\t\t\t\tif (elem.addEventListener) {\r\n\t\t\t\t\t\t\t\t\telem.addEventListener(type, eventHandle);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (special.add) {\r\n\t\t\t\t\t\t\tspecial.add.call(elem, handleObj);\r\n\r\n\t\t\t\t\t\t\tif (!handleObj.handler.guid) {\r\n\t\t\t\t\t\t\t\thandleObj.handler.guid = handler.guid;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Add to the element's handler list, delegates in front\r\n\t\t\t\t\t\tif (selector) {\r\n\t\t\t\t\t\t\thandlers.splice(handlers.delegateCount++, 0, handleObj);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\thandlers.push(handleObj);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Keep track of which events have ever been used, for event optimization\r\n\t\t\t\t\t\tjQuery.event.global[type] = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Detach an event or set of events from an element\r\n\t\t\t\tremove: function (elem, types, handler, selector, mappedTypes) {\r\n\r\n\t\t\t\t\tvar j, origCount, tmp,\r\n\t\t\t\t\t\tevents, t, handleObj,\r\n\t\t\t\t\t\tspecial, handlers, type, namespaces, origType,\r\n\t\t\t\t\t\telemData = dataPriv.hasData(elem) && dataPriv.get(elem);\r\n\r\n\t\t\t\t\tif (!elemData || !(events = elemData.events)) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Once for each type.namespace in types; type may be omitted\r\n\t\t\t\t\ttypes = (types || \"\").match(rnothtmlwhite) || [\"\"];\r\n\t\t\t\t\tt = types.length;\r\n\t\t\t\t\twhile (t--) {\r\n\t\t\t\t\t\ttmp = rtypenamespace.exec(types[t]) || [];\r\n\t\t\t\t\t\ttype = origType = tmp[1];\r\n\t\t\t\t\t\tnamespaces = (tmp[2] || \"\").split(\".\").sort();\r\n\r\n\t\t\t\t\t\t// Unbind all events (on this namespace, if provided) for the element\r\n\t\t\t\t\t\tif (!type) {\r\n\t\t\t\t\t\t\tfor (type in events) {\r\n\t\t\t\t\t\t\t\tjQuery.event.remove(elem, type + types[t], handler, selector, true);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tspecial = jQuery.event.special[type] || {};\r\n\t\t\t\t\t\ttype = (selector ? special.delegateType : special.bindType) || type;\r\n\t\t\t\t\t\thandlers = events[type] || [];\r\n\t\t\t\t\t\ttmp = tmp[2] &&\r\n\t\t\t\t\t\t\tnew RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\");\r\n\r\n\t\t\t\t\t\t// Remove matching events\r\n\t\t\t\t\t\torigCount = j = handlers.length;\r\n\t\t\t\t\t\twhile (j--) {\r\n\t\t\t\t\t\t\thandleObj = handlers[j];\r\n\r\n\t\t\t\t\t\t\tif ((mappedTypes || origType === handleObj.origType) &&\r\n\t\t\t\t\t\t\t\t(!handler || handler.guid === handleObj.guid) &&\r\n\t\t\t\t\t\t\t\t(!tmp || tmp.test(handleObj.namespace)) &&\r\n\t\t\t\t\t\t\t\t(!selector || selector === handleObj.selector ||\r\n\t\t\t\t\t\t\t\t\tselector === \"**\" && handleObj.selector)) {\r\n\t\t\t\t\t\t\t\thandlers.splice(j, 1);\r\n\r\n\t\t\t\t\t\t\t\tif (handleObj.selector) {\r\n\t\t\t\t\t\t\t\t\thandlers.delegateCount--;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (special.remove) {\r\n\t\t\t\t\t\t\t\t\tspecial.remove.call(elem, handleObj);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Remove generic event handler if we removed something and no more handlers exist\r\n\t\t\t\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\r\n\t\t\t\t\t\tif (origCount && !handlers.length) {\r\n\t\t\t\t\t\t\tif (!special.teardown ||\r\n\t\t\t\t\t\t\t\tspecial.teardown.call(elem, namespaces, elemData.handle) === false) {\r\n\r\n\t\t\t\t\t\t\t\tjQuery.removeEvent(elem, type, elemData.handle);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tdelete events[type];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Remove data and the expando if it's no longer used\r\n\t\t\t\t\tif (jQuery.isEmptyObject(events)) {\r\n\t\t\t\t\t\tdataPriv.remove(elem, \"handle events\");\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\tdispatch: function (nativeEvent) {\r\n\r\n\t\t\t\t\tvar i, j, ret, matched, handleObj, handlerQueue,\r\n\t\t\t\t\t\targs = new Array(arguments.length),\r\n\r\n\t\t\t\t\t\t// Make a writable jQuery.Event from the native event object\r\n\t\t\t\t\t\tevent = jQuery.event.fix(nativeEvent),\r\n\r\n\t\t\t\t\t\thandlers = (\r\n\t\t\t\t\t\t\tdataPriv.get(this, \"events\") || Object.create(null)\r\n\t\t\t\t\t\t)[event.type] || [],\r\n\t\t\t\t\t\tspecial = jQuery.event.special[event.type] || {};\r\n\r\n\t\t\t\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\r\n\t\t\t\t\targs[0] = event;\r\n\r\n\t\t\t\t\tfor (i = 1; i < arguments.length; i++) {\r\n\t\t\t\t\t\targs[i] = arguments[i];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tevent.delegateTarget = this;\r\n\r\n\t\t\t\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\r\n\t\t\t\t\tif (special.preDispatch && special.preDispatch.call(this, event) === false) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Determine handlers\r\n\t\t\t\t\thandlerQueue = jQuery.event.handlers.call(this, event, handlers);\r\n\r\n\t\t\t\t\t// Run delegates first; they may want to stop propagation beneath us\r\n\t\t\t\t\ti = 0;\r\n\t\t\t\t\twhile ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\r\n\t\t\t\t\t\tevent.currentTarget = matched.elem;\r\n\r\n\t\t\t\t\t\tj = 0;\r\n\t\t\t\t\t\twhile ((handleObj = matched.handlers[j++]) &&\r\n\t\t\t\t\t\t\t!event.isImmediatePropagationStopped()) {\r\n\r\n\t\t\t\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\r\n\t\t\t\t\t\t\t// specially universal or its namespaces are a superset of the event's.\r\n\t\t\t\t\t\t\tif (!event.rnamespace || handleObj.namespace === false ||\r\n\t\t\t\t\t\t\t\tevent.rnamespace.test(handleObj.namespace)) {\r\n\r\n\t\t\t\t\t\t\t\tevent.handleObj = handleObj;\r\n\t\t\t\t\t\t\t\tevent.data = handleObj.data;\r\n\r\n\t\t\t\t\t\t\t\tret = ((jQuery.event.special[handleObj.origType] || {}).handle ||\r\n\t\t\t\t\t\t\t\t\thandleObj.handler).apply(matched.elem, args);\r\n\r\n\t\t\t\t\t\t\t\tif (ret !== undefined) {\r\n\t\t\t\t\t\t\t\t\tif ((event.result = ret) === false) {\r\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Call the postDispatch hook for the mapped type\r\n\t\t\t\t\tif (special.postDispatch) {\r\n\t\t\t\t\t\tspecial.postDispatch.call(this, event);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn event.result;\r\n\t\t\t\t},\r\n\r\n\t\t\t\thandlers: function (event, handlers) {\r\n\t\t\t\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\r\n\t\t\t\t\t\thandlerQueue = [],\r\n\t\t\t\t\t\tdelegateCount = handlers.delegateCount,\r\n\t\t\t\t\t\tcur = event.target;\r\n\r\n\t\t\t\t\t// Find delegate handlers\r\n\t\t\t\t\tif (delegateCount &&\r\n\r\n\t\t\t\t\t\t// Support: IE <=9\r\n\t\t\t\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\r\n\t\t\t\t\t\tcur.nodeType &&\r\n\r\n\t\t\t\t\t\t// Support: Firefox <=42\r\n\t\t\t\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\r\n\t\t\t\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\r\n\t\t\t\t\t\t// Support: IE 11 only\r\n\t\t\t\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\r\n\t\t\t\t\t\t!(event.type === \"click\" && event.button >= 1)) {\r\n\r\n\t\t\t\t\t\tfor (; cur !== this; cur = cur.parentNode || this) {\r\n\r\n\t\t\t\t\t\t\t// Don't check non-elements (#13208)\r\n\t\t\t\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\r\n\t\t\t\t\t\t\tif (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\r\n\t\t\t\t\t\t\t\tmatchedHandlers = [];\r\n\t\t\t\t\t\t\t\tmatchedSelectors = {};\r\n\t\t\t\t\t\t\t\tfor (i = 0; i < delegateCount; i++) {\r\n\t\t\t\t\t\t\t\t\thandleObj = handlers[i];\r\n\r\n\t\t\t\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\r\n\t\t\t\t\t\t\t\t\tsel = handleObj.selector + \" \";\r\n\r\n\t\t\t\t\t\t\t\t\tif (matchedSelectors[sel] === undefined) {\r\n\t\t\t\t\t\t\t\t\t\tmatchedSelectors[sel] = handleObj.needsContext ?\r\n\t\t\t\t\t\t\t\t\t\t\tjQuery(sel, this).index(cur) > -1 :\r\n\t\t\t\t\t\t\t\t\t\t\tjQuery.find(sel, this, null, [cur]).length;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif (matchedSelectors[sel]) {\r\n\t\t\t\t\t\t\t\t\t\tmatchedHandlers.push(handleObj);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (matchedHandlers.length) {\r\n\t\t\t\t\t\t\t\t\thandlerQueue.push({ elem: cur, handlers: matchedHandlers });\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Add the remaining (directly-bound) handlers\r\n\t\t\t\t\tcur = this;\r\n\t\t\t\t\tif (delegateCount < handlers.length) {\r\n\t\t\t\t\t\thandlerQueue.push({ elem: cur, handlers: handlers.slice(delegateCount) });\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn handlerQueue;\r\n\t\t\t\t},\r\n\r\n\t\t\t\taddProp: function (name, hook) {\r\n\t\t\t\t\tObject.defineProperty(jQuery.Event.prototype, name, {\r\n\t\t\t\t\t\tenumerable: true,\r\n\t\t\t\t\t\tconfigurable: true,\r\n\r\n\t\t\t\t\t\tget: isFunction(hook) ?\r\n\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t\tif (this.originalEvent) {\r\n\t\t\t\t\t\t\t\t\treturn hook(this.originalEvent);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} :\r\n\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t\tif (this.originalEvent) {\r\n\t\t\t\t\t\t\t\t\treturn this.originalEvent[name];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tset: function (value) {\r\n\t\t\t\t\t\t\tObject.defineProperty(this, name, {\r\n\t\t\t\t\t\t\t\tenumerable: true,\r\n\t\t\t\t\t\t\t\tconfigurable: true,\r\n\t\t\t\t\t\t\t\twritable: true,\r\n\t\t\t\t\t\t\t\tvalue: value\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\r\n\t\t\t\tfix: function (originalEvent) {\r\n\t\t\t\t\treturn originalEvent[jQuery.expando] ?\r\n\t\t\t\t\t\toriginalEvent :\r\n\t\t\t\t\t\tnew jQuery.Event(originalEvent);\r\n\t\t\t\t},\r\n\r\n\t\t\t\tspecial: {\r\n\t\t\t\t\tload: {\r\n\r\n\t\t\t\t\t\t// Prevent triggered image.load events from bubbling to window.load\r\n\t\t\t\t\t\tnoBubble: true\r\n\t\t\t\t\t},\r\n\t\t\t\t\tclick: {\r\n\r\n\t\t\t\t\t\t// Utilize native event to ensure correct state for checkable inputs\r\n\t\t\t\t\t\tsetup: function (data) {\r\n\r\n\t\t\t\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\r\n\t\t\t\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\r\n\t\t\t\t\t\t\tvar el = this || data;\r\n\r\n\t\t\t\t\t\t\t// Claim the first handler\r\n\t\t\t\t\t\t\tif (rcheckableType.test(el.type) &&\r\n\t\t\t\t\t\t\t\tel.click && nodeName(el, \"input\")) {\r\n\r\n\t\t\t\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\r\n\t\t\t\t\t\t\t\tleverageNative(el, \"click\", returnTrue);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Return false to allow normal processing in the caller\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\ttrigger: function (data) {\r\n\r\n\t\t\t\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\r\n\t\t\t\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\r\n\t\t\t\t\t\t\tvar el = this || data;\r\n\r\n\t\t\t\t\t\t\t// Force setup before triggering a click\r\n\t\t\t\t\t\t\tif (rcheckableType.test(el.type) &&\r\n\t\t\t\t\t\t\t\tel.click && nodeName(el, \"input\")) {\r\n\r\n\t\t\t\t\t\t\t\tleverageNative(el, \"click\");\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Return non-false to allow normal event-path propagation\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// For cross-browser consistency, suppress native .click() on links\r\n\t\t\t\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\r\n\t\t\t\t\t\t_default: function (event) {\r\n\t\t\t\t\t\t\tvar target = event.target;\r\n\t\t\t\t\t\t\treturn rcheckableType.test(target.type) &&\r\n\t\t\t\t\t\t\t\ttarget.click && nodeName(target, \"input\") &&\r\n\t\t\t\t\t\t\t\tdataPriv.get(target, \"click\") ||\r\n\t\t\t\t\t\t\t\tnodeName(target, \"a\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tbeforeunload: {\r\n\t\t\t\t\t\tpostDispatch: function (event) {\r\n\r\n\t\t\t\t\t\t\t// Support: Firefox 20+\r\n\t\t\t\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\r\n\t\t\t\t\t\t\tif (event.result !== undefined && event.originalEvent) {\r\n\t\t\t\t\t\t\t\tevent.originalEvent.returnValue = event.result;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\t// Ensure the presence of an event listener that handles manually-triggered\r\n\t\t\t// synthetic events by interrupting progress until reinvoked in response to\r\n\t\t\t// *native* events that it fires directly, ensuring that state changes have\r\n\t\t\t// already occurred before other listeners are invoked.\r\n\t\t\tfunction leverageNative(el, type, expectSync) {\r\n\r\n\t\t\t\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\r\n\t\t\t\tif (!expectSync) {\r\n\t\t\t\t\tif (dataPriv.get(el, type) === undefined) {\r\n\t\t\t\t\t\tjQuery.event.add(el, type, returnTrue);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Register the controller as a special universal handler for all event namespaces\r\n\t\t\t\tdataPriv.set(el, type, false);\r\n\t\t\t\tjQuery.event.add(el, type, {\r\n\t\t\t\t\tnamespace: false,\r\n\t\t\t\t\thandler: function (event) {\r\n\t\t\t\t\t\tvar notAsync, result,\r\n\t\t\t\t\t\t\tsaved = dataPriv.get(this, type);\r\n\r\n\t\t\t\t\t\tif ((event.isTrigger & 1) && this[type]) {\r\n\r\n\t\t\t\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\r\n\t\t\t\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\r\n\t\t\t\t\t\t\t// from an async native handler (gh-4350)\r\n\t\t\t\t\t\t\tif (!saved.length) {\r\n\r\n\t\t\t\t\t\t\t\t// Store arguments for use when handling the inner native event\r\n\t\t\t\t\t\t\t\t// There will always be at least one argument (an event object), so this array\r\n\t\t\t\t\t\t\t\t// will not be confused with a leftover capture object.\r\n\t\t\t\t\t\t\t\tsaved = slice.call(arguments);\r\n\t\t\t\t\t\t\t\tdataPriv.set(this, type, saved);\r\n\r\n\t\t\t\t\t\t\t\t// Trigger the native event and capture its result\r\n\t\t\t\t\t\t\t\t// Support: IE <=9 - 11+\r\n\t\t\t\t\t\t\t\t// focus() and blur() are asynchronous\r\n\t\t\t\t\t\t\t\tnotAsync = expectSync(this, type);\r\n\t\t\t\t\t\t\t\tthis[type]();\r\n\t\t\t\t\t\t\t\tresult = dataPriv.get(this, type);\r\n\t\t\t\t\t\t\t\tif (saved !== result || notAsync) {\r\n\t\t\t\t\t\t\t\t\tdataPriv.set(this, type, false);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tresult = {};\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (saved !== result) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Cancel the outer synthetic event\r\n\t\t\t\t\t\t\t\t\tevent.stopImmediatePropagation();\r\n\t\t\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\t\t\treturn result.value;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\r\n\t\t\t\t\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\r\n\t\t\t\t\t\t\t\t// native event and prevent that from happening again here.\r\n\t\t\t\t\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\r\n\t\t\t\t\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\r\n\t\t\t\t\t\t\t\t// less bad than duplication.\r\n\t\t\t\t\t\t\t} else if ((jQuery.event.special[type] || {}).delegateType) {\r\n\t\t\t\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// If this is a native event triggered above, everything is now in order\r\n\t\t\t\t\t\t\t// Fire an inner synthetic event with the original arguments\r\n\t\t\t\t\t\t} else if (saved.length) {\r\n\r\n\t\t\t\t\t\t\t// ...and capture the result\r\n\t\t\t\t\t\t\tdataPriv.set(this, type, {\r\n\t\t\t\t\t\t\t\tvalue: jQuery.event.trigger(\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 - 11+\r\n\t\t\t\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\r\n\t\t\t\t\t\t\t\t\tjQuery.extend(saved[0], jQuery.Event.prototype),\r\n\t\t\t\t\t\t\t\t\tsaved.slice(1),\r\n\t\t\t\t\t\t\t\t\tthis\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t// Abort handling of the native event\r\n\t\t\t\t\t\t\tevent.stopImmediatePropagation();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tjQuery.removeEvent = function (elem, type, handle) {\r\n\r\n\t\t\t\t// This \"if\" is needed for plain objects\r\n\t\t\t\tif (elem.removeEventListener) {\r\n\t\t\t\t\telem.removeEventListener(type, handle);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tjQuery.Event = function (src, props) {\r\n\r\n\t\t\t\t// Allow instantiation without the 'new' keyword\r\n\t\t\t\tif (!(this instanceof jQuery.Event)) {\r\n\t\t\t\t\treturn new jQuery.Event(src, props);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Event object\r\n\t\t\t\tif (src && src.type) {\r\n\t\t\t\t\tthis.originalEvent = src;\r\n\t\t\t\t\tthis.type = src.type;\r\n\r\n\t\t\t\t\t// Events bubbling up the document may have been marked as prevented\r\n\t\t\t\t\t// by a handler lower down the tree; reflect the correct value.\r\n\t\t\t\t\tthis.isDefaultPrevented = src.defaultPrevented ||\r\n\t\t\t\t\t\tsrc.defaultPrevented === undefined &&\r\n\r\n\t\t\t\t\t\t// Support: Android <=2.3 only\r\n\t\t\t\t\t\tsrc.returnValue === false ?\r\n\t\t\t\t\t\treturnTrue :\r\n\t\t\t\t\t\treturnFalse;\r\n\r\n\t\t\t\t\t// Create target properties\r\n\t\t\t\t\t// Support: Safari <=6 - 7 only\r\n\t\t\t\t\t// Target should not be a text node (#504, #13143)\r\n\t\t\t\t\tthis.target = (src.target && src.target.nodeType === 3) ?\r\n\t\t\t\t\t\tsrc.target.parentNode :\r\n\t\t\t\t\t\tsrc.target;\r\n\r\n\t\t\t\t\tthis.currentTarget = src.currentTarget;\r\n\t\t\t\t\tthis.relatedTarget = src.relatedTarget;\r\n\r\n\t\t\t\t\t// Event type\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.type = src;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Put explicitly provided properties onto the event object\r\n\t\t\t\tif (props) {\r\n\t\t\t\t\tjQuery.extend(this, props);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Create a timestamp if incoming event doesn't have one\r\n\t\t\t\tthis.timeStamp = src && src.timeStamp || Date.now();\r\n\r\n\t\t\t\t// Mark it as fixed\r\n\t\t\t\tthis[jQuery.expando] = true;\r\n\t\t\t};\r\n\r\n\t\t\t// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\r\n\t\t\t// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\r\n\t\t\tjQuery.Event.prototype = {\r\n\t\t\t\tconstructor: jQuery.Event,\r\n\t\t\t\tisDefaultPrevented: returnFalse,\r\n\t\t\t\tisPropagationStopped: returnFalse,\r\n\t\t\t\tisImmediatePropagationStopped: returnFalse,\r\n\t\t\t\tisSimulated: false,\r\n\r\n\t\t\t\tpreventDefault: function () {\r\n\t\t\t\t\tvar e = this.originalEvent;\r\n\r\n\t\t\t\t\tthis.isDefaultPrevented = returnTrue;\r\n\r\n\t\t\t\t\tif (e && !this.isSimulated) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tstopPropagation: function () {\r\n\t\t\t\t\tvar e = this.originalEvent;\r\n\r\n\t\t\t\t\tthis.isPropagationStopped = returnTrue;\r\n\r\n\t\t\t\t\tif (e && !this.isSimulated) {\r\n\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tstopImmediatePropagation: function () {\r\n\t\t\t\t\tvar e = this.originalEvent;\r\n\r\n\t\t\t\t\tthis.isImmediatePropagationStopped = returnTrue;\r\n\r\n\t\t\t\t\tif (e && !this.isSimulated) {\r\n\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.stopPropagation();\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\t// Includes all common event props including KeyEvent and MouseEvent specific props\r\n\t\t\tjQuery.each({\r\n\t\t\t\taltKey: true,\r\n\t\t\t\tbubbles: true,\r\n\t\t\t\tcancelable: true,\r\n\t\t\t\tchangedTouches: true,\r\n\t\t\t\tctrlKey: true,\r\n\t\t\t\tdetail: true,\r\n\t\t\t\teventPhase: true,\r\n\t\t\t\tmetaKey: true,\r\n\t\t\t\tpageX: true,\r\n\t\t\t\tpageY: true,\r\n\t\t\t\tshiftKey: true,\r\n\t\t\t\tview: true,\r\n\t\t\t\t\"char\": true,\r\n\t\t\t\tcode: true,\r\n\t\t\t\tcharCode: true,\r\n\t\t\t\tkey: true,\r\n\t\t\t\tkeyCode: true,\r\n\t\t\t\tbutton: true,\r\n\t\t\t\tbuttons: true,\r\n\t\t\t\tclientX: true,\r\n\t\t\t\tclientY: true,\r\n\t\t\t\toffsetX: true,\r\n\t\t\t\toffsetY: true,\r\n\t\t\t\tpointerId: true,\r\n\t\t\t\tpointerType: true,\r\n\t\t\t\tscreenX: true,\r\n\t\t\t\tscreenY: true,\r\n\t\t\t\ttargetTouches: true,\r\n\t\t\t\ttoElement: true,\r\n\t\t\t\ttouches: true,\r\n\r\n\t\t\t\twhich: function (event) {\r\n\t\t\t\t\tvar button = event.button;\r\n\r\n\t\t\t\t\t// Add which for key events\r\n\t\t\t\t\tif (event.which == null && rkeyEvent.test(event.type)) {\r\n\t\t\t\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\r\n\t\t\t\t\tif (!event.which && button !== undefined && rmouseEvent.test(event.type)) {\r\n\t\t\t\t\t\tif (button & 1) {\r\n\t\t\t\t\t\t\treturn 1;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (button & 2) {\r\n\t\t\t\t\t\t\treturn 3;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (button & 4) {\r\n\t\t\t\t\t\t\treturn 2;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn event.which;\r\n\t\t\t\t}\r\n\t\t\t}, jQuery.event.addProp);\r\n\r\n\t\t\tjQuery.each({ focus: \"focusin\", blur: \"focusout\" }, function (type, delegateType) {\r\n\t\t\t\tjQuery.event.special[type] = {\r\n\r\n\t\t\t\t\t// Utilize native event if possible so blur/focus sequence is correct\r\n\t\t\t\t\tsetup: function () {\r\n\r\n\t\t\t\t\t\t// Claim the first handler\r\n\t\t\t\t\t\t// dataPriv.set( this, \"focus\", ... )\r\n\t\t\t\t\t\t// dataPriv.set( this, \"blur\", ... )\r\n\t\t\t\t\t\tleverageNative(this, type, expectSync);\r\n\r\n\t\t\t\t\t\t// Return false to allow normal processing in the caller\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttrigger: function () {\r\n\r\n\t\t\t\t\t\t// Force setup before trigger\r\n\t\t\t\t\t\tleverageNative(this, type);\r\n\r\n\t\t\t\t\t\t// Return non-false to allow normal event-path propagation\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tdelegateType: delegateType\r\n\t\t\t\t};\r\n\t\t\t});\r\n\r\n\t\t\t// Create mouseenter/leave events using mouseover/out and event-time checks\r\n\t\t\t// so that event delegation works in jQuery.\r\n\t\t\t// Do the same for pointerenter/pointerleave and pointerover/pointerout\r\n\t\t\t//\r\n\t\t\t// Support: Safari 7 only\r\n\t\t\t// Safari sends mouseenter too often; see:\r\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\r\n\t\t\t// for the description of the bug (it existed in older Chrome versions as well).\r\n\t\t\tjQuery.each({\r\n\t\t\t\tmouseenter: \"mouseover\",\r\n\t\t\t\tmouseleave: \"mouseout\",\r\n\t\t\t\tpointerenter: \"pointerover\",\r\n\t\t\t\tpointerleave: \"pointerout\"\r\n\t\t\t}, function (orig, fix) {\r\n\t\t\t\tjQuery.event.special[orig] = {\r\n\t\t\t\t\tdelegateType: fix,\r\n\t\t\t\t\tbindType: fix,\r\n\r\n\t\t\t\t\thandle: function (event) {\r\n\t\t\t\t\t\tvar ret,\r\n\t\t\t\t\t\t\ttarget = this,\r\n\t\t\t\t\t\t\trelated = event.relatedTarget,\r\n\t\t\t\t\t\t\thandleObj = event.handleObj;\r\n\r\n\t\t\t\t\t\t// For mouseenter/leave call the handler if related is outside the target.\r\n\t\t\t\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\r\n\t\t\t\t\t\tif (!related || (related !== target && !jQuery.contains(target, related))) {\r\n\t\t\t\t\t\t\tevent.type = handleObj.origType;\r\n\t\t\t\t\t\t\tret = handleObj.handler.apply(this, arguments);\r\n\t\t\t\t\t\t\tevent.type = fix;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t});\r\n\r\n\t\t\tjQuery.fn.extend({\r\n\r\n\t\t\t\ton: function (types, selector, data, fn) {\r\n\t\t\t\t\treturn on(this, types, selector, data, fn);\r\n\t\t\t\t},\r\n\t\t\t\tone: function (types, selector, data, fn) {\r\n\t\t\t\t\treturn on(this, types, selector, data, fn, 1);\r\n\t\t\t\t},\r\n\t\t\t\toff: function (types, selector, fn) {\r\n\t\t\t\t\tvar handleObj, type;\r\n\t\t\t\t\tif (types && types.preventDefault && types.handleObj) {\r\n\r\n\t\t\t\t\t\t// ( event ) dispatched jQuery.Event\r\n\t\t\t\t\t\thandleObj = types.handleObj;\r\n\t\t\t\t\t\tjQuery(types.delegateTarget).off(\r\n\t\t\t\t\t\t\thandleObj.namespace ?\r\n\t\t\t\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\r\n\t\t\t\t\t\t\t\thandleObj.origType,\r\n\t\t\t\t\t\t\thandleObj.selector,\r\n\t\t\t\t\t\t\thandleObj.handler\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (typeof types === \"object\") {\r\n\r\n\t\t\t\t\t\t// ( types-object [, selector] )\r\n\t\t\t\t\t\tfor (type in types) {\r\n\t\t\t\t\t\t\tthis.off(type, selector, types[type]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (selector === false || typeof selector === \"function\") {\r\n\r\n\t\t\t\t\t\t// ( types [, fn] )\r\n\t\t\t\t\t\tfn = selector;\r\n\t\t\t\t\t\tselector = undefined;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (fn === false) {\r\n\t\t\t\t\t\tfn = returnFalse;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\tjQuery.event.remove(this, types, fn, selector);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\t\tvar\r\n\r\n\t\t\t\t// Support: IE <=10 - 11, Edge 12 - 13 only\r\n\t\t\t\t// In IE/Edge using regex groups here causes severe slowdowns.\r\n\t\t\t\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\r\n\t\t\t\trnoInnerhtml = /<script|<style|<link/i,\r\n\r\n\t\t\t\t// checked=\"checked\" or checked\r\n\t\t\t\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\r\n\t\t\t\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\r\n\r\n\t\t\t// Prefer a tbody over its parent table for containing new rows\r\n\t\t\tfunction manipulationTarget(elem, content) {\r\n\t\t\t\tif (nodeName(elem, \"table\") &&\r\n\t\t\t\t\tnodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\r\n\r\n\t\t\t\t\treturn jQuery(elem).children(\"tbody\")[0] || elem;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn elem;\r\n\t\t\t}\r\n\r\n\t\t\t// Replace/restore the type attribute of script elements for safe DOM manipulation\r\n\t\t\tfunction disableScript(elem) {\r\n\t\t\t\telem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\r\n\t\t\t\treturn elem;\r\n\t\t\t}\r\n\t\t\tfunction restoreScript(elem) {\r\n\t\t\t\tif ((elem.type || \"\").slice(0, 5) === \"true/\") {\r\n\t\t\t\t\telem.type = elem.type.slice(5);\r\n\t\t\t\t} else {\r\n\t\t\t\t\telem.removeAttribute(\"type\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn elem;\r\n\t\t\t}\r\n\r\n\t\t\tfunction cloneCopyEvent(src, dest) {\r\n\t\t\t\tvar i, l, type, pdataOld, udataOld, udataCur, events;\r\n\r\n\t\t\t\tif (dest.nodeType !== 1) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// 1. Copy private data: events, handlers, etc.\r\n\t\t\t\tif (dataPriv.hasData(src)) {\r\n\t\t\t\t\tpdataOld = dataPriv.get(src);\r\n\t\t\t\t\tevents = pdataOld.events;\r\n\r\n\t\t\t\t\tif (events) {\r\n\t\t\t\t\t\tdataPriv.remove(dest, \"handle events\");\r\n\r\n\t\t\t\t\t\tfor (type in events) {\r\n\t\t\t\t\t\t\tfor (i = 0, l = events[type].length; i < l; i++) {\r\n\t\t\t\t\t\t\t\tjQuery.event.add(dest, type, events[type][i]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// 2. Copy user data\r\n\t\t\t\tif (dataUser.hasData(src)) {\r\n\t\t\t\t\tudataOld = dataUser.access(src);\r\n\t\t\t\t\tudataCur = jQuery.extend({}, udataOld);\r\n\r\n\t\t\t\t\tdataUser.set(dest, udataCur);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Fix IE bugs, see support tests\r\n\t\t\tfunction fixInput(src, dest) {\r\n\t\t\t\tvar nodeName = dest.nodeName.toLowerCase();\r\n\r\n\t\t\t\t// Fails to persist the checked state of a cloned checkbox or radio button.\r\n\t\t\t\tif (nodeName === \"input\" && rcheckableType.test(src.type)) {\r\n\t\t\t\t\tdest.checked = src.checked;\r\n\r\n\t\t\t\t\t// Fails to return the selected option to the default selected state when cloning options\r\n\t\t\t\t} else if (nodeName === \"input\" || nodeName === \"textarea\") {\r\n\t\t\t\t\tdest.defaultValue = src.defaultValue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction domManip(collection, args, callback, ignored) {\r\n\r\n\t\t\t\t// Flatten any nested arrays\r\n\t\t\t\targs = flat(args);\r\n\r\n\t\t\t\tvar fragment, first, scripts, hasScripts, node, doc,\r\n\t\t\t\t\ti = 0,\r\n\t\t\t\t\tl = collection.length,\r\n\t\t\t\t\tiNoClone = l - 1,\r\n\t\t\t\t\tvalue = args[0],\r\n\t\t\t\t\tvalueIsFunction = isFunction(value);\r\n\r\n\t\t\t\t// We can't cloneNode fragments that contain checked, in WebKit\r\n\t\t\t\tif (valueIsFunction ||\r\n\t\t\t\t\t(l > 1 && typeof value === \"string\" &&\r\n\t\t\t\t\t\t!support.checkClone && rchecked.test(value))) {\r\n\t\t\t\t\treturn collection.each(function (index) {\r\n\t\t\t\t\t\tvar self = collection.eq(index);\r\n\t\t\t\t\t\tif (valueIsFunction) {\r\n\t\t\t\t\t\t\targs[0] = value.call(this, index, self.html());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdomManip(self, args, callback, ignored);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (l) {\r\n\t\t\t\t\tfragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\r\n\t\t\t\t\tfirst = fragment.firstChild;\r\n\r\n\t\t\t\t\tif (fragment.childNodes.length === 1) {\r\n\t\t\t\t\t\tfragment = first;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Require either new content or an interest in ignored elements to invoke the callback\r\n\t\t\t\t\tif (first || ignored) {\r\n\t\t\t\t\t\tscripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\r\n\t\t\t\t\t\thasScripts = scripts.length;\r\n\r\n\t\t\t\t\t\t// Use the original fragment for the last item\r\n\t\t\t\t\t\t// instead of the first because it can end up\r\n\t\t\t\t\t\t// being emptied incorrectly in certain situations (#8070).\r\n\t\t\t\t\t\tfor (; i < l; i++) {\r\n\t\t\t\t\t\t\tnode = fragment;\r\n\r\n\t\t\t\t\t\t\tif (i !== iNoClone) {\r\n\t\t\t\t\t\t\t\tnode = jQuery.clone(node, true, true);\r\n\r\n\t\t\t\t\t\t\t\t// Keep references to cloned scripts for later restoration\r\n\t\t\t\t\t\t\t\tif (hasScripts) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\r\n\t\t\t\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\r\n\t\t\t\t\t\t\t\t\tjQuery.merge(scripts, getAll(node, \"script\"));\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tcallback.call(collection[i], node, i);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (hasScripts) {\r\n\t\t\t\t\t\t\tdoc = scripts[scripts.length - 1].ownerDocument;\r\n\r\n\t\t\t\t\t\t\t// Reenable scripts\r\n\t\t\t\t\t\t\tjQuery.map(scripts, restoreScript);\r\n\r\n\t\t\t\t\t\t\t// Evaluate executable scripts on first document insertion\r\n\t\t\t\t\t\t\tfor (i = 0; i < hasScripts; i++) {\r\n\t\t\t\t\t\t\t\tnode = scripts[i];\r\n\t\t\t\t\t\t\t\tif (rscriptType.test(node.type || \"\") &&\r\n\t\t\t\t\t\t\t\t\t!dataPriv.access(node, \"globalEval\") &&\r\n\t\t\t\t\t\t\t\t\tjQuery.contains(doc, node)) {\r\n\r\n\t\t\t\t\t\t\t\t\tif (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\r\n\t\t\t\t\t\t\t\t\t\tif (jQuery._evalUrl && !node.noModule) {\r\n\t\t\t\t\t\t\t\t\t\t\tjQuery._evalUrl(node.src, {\r\n\t\t\t\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute(\"nonce\")\r\n\t\t\t\t\t\t\t\t\t\t\t}, doc);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tDOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn collection;\r\n\t\t\t}\r\n\r\n\t\t\tfunction remove(elem, selector, keepData) {\r\n\t\t\t\tvar node,\r\n\t\t\t\t\tnodes = selector ? jQuery.filter(selector, elem) : elem,\r\n\t\t\t\t\ti = 0;\r\n\r\n\t\t\t\tfor (; (node = nodes[i]) != null; i++) {\r\n\t\t\t\t\tif (!keepData && node.nodeType === 1) {\r\n\t\t\t\t\t\tjQuery.cleanData(getAll(node));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (node.parentNode) {\r\n\t\t\t\t\t\tif (keepData && isAttached(node)) {\r\n\t\t\t\t\t\t\tsetGlobalEval(getAll(node, \"script\"));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tnode.parentNode.removeChild(node);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn elem;\r\n\t\t\t}\r\n\r\n\t\t\tjQuery.extend({\r\n\t\t\t\thtmlPrefilter: function (html) {\r\n\t\t\t\t\treturn html;\r\n\t\t\t\t},\r\n\r\n\t\t\t\tclone: function (elem, dataAndEvents, deepDataAndEvents) {\r\n\t\t\t\t\tvar i, l, srcElements, destElements,\r\n\t\t\t\t\t\tclone = elem.cloneNode(true),\r\n\t\t\t\t\t\tinPage = isAttached(elem);\r\n\r\n\t\t\t\t\t// Fix IE cloning issues\r\n\t\t\t\t\tif (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) &&\r\n\t\t\t\t\t\t!jQuery.isXMLDoc(elem)) {\r\n\r\n\t\t\t\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\r\n\t\t\t\t\t\tdestElements = getAll(clone);\r\n\t\t\t\t\t\tsrcElements = getAll(elem);\r\n\r\n\t\t\t\t\t\tfor (i = 0, l = srcElements.length; i < l; i++) {\r\n\t\t\t\t\t\t\tfixInput(srcElements[i], destElements[i]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Copy the events from the original to the clone\r\n\t\t\t\t\tif (dataAndEvents) {\r\n\t\t\t\t\t\tif (deepDataAndEvents) {\r\n\t\t\t\t\t\t\tsrcElements = srcElements || getAll(elem);\r\n\t\t\t\t\t\t\tdestElements = destElements || getAll(clone);\r\n\r\n\t\t\t\t\t\t\tfor (i = 0, l = srcElements.length; i < l; i++) {\r\n\t\t\t\t\t\t\t\tcloneCopyEvent(srcElements[i], destElements[i]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcloneCopyEvent(elem, clone);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Preserve script evaluation history\r\n\t\t\t\t\tdestElements = getAll(clone, \"script\");\r\n\t\t\t\t\tif (destElements.length > 0) {\r\n\t\t\t\t\t\tsetGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Return the cloned set\r\n\t\t\t\t\treturn clone;\r\n\t\t\t\t},\r\n\r\n\t\t\t\tcleanData: function (elems) {\r\n\t\t\t\t\tvar data, elem, type,\r\n\t\t\t\t\t\tspecial = jQuery.event.special,\r\n\t\t\t\t\t\ti = 0;\r\n\r\n\t\t\t\t\tfor (; (elem = elems[i]) !== undefined; i++) {\r\n\t\t\t\t\t\tif (acceptData(elem)) {\r\n\t\t\t\t\t\t\tif ((data = elem[dataPriv.expando])) {\r\n\t\t\t\t\t\t\t\tif (data.events) {\r\n\t\t\t\t\t\t\t\t\tfor (type in data.events) {\r\n\t\t\t\t\t\t\t\t\t\tif (special[type]) {\r\n\t\t\t\t\t\t\t\t\t\t\tjQuery.event.remove(elem, type);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tjQuery.removeEvent(elem, type, data.handle);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Support: Chrome <=35 - 45+\r\n\t\t\t\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\r\n\t\t\t\t\t\t\t\telem[dataPriv.expando] = undefined;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (elem[dataUser.expando]) {\r\n\r\n\t\t\t\t\t\t\t\t// Support: Chrome <=35 - 45+\r\n\t\t\t\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\r\n\t\t\t\t\t\t\t\telem[dataUser.expando] = undefined;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tjQuery.fn.extend({\r\n\t\t\t\tdetach: function (selector) {\r\n\t\t\t\t\treturn remove(this, selector, true);\r\n\t\t\t\t},\r\n\r\n\t\t\t\tremove: function (selector) {\r\n\t\t\t\t\treturn remove(this, selector);\r\n\t\t\t\t},\r\n\r\n\t\t\t\ttext: function (value) {\r\n\t\t\t\t\treturn access(this, function (value) {\r\n\t\t\t\t\t\treturn value === undefined ?\r\n\t\t\t\t\t\t\tjQuery.text(this) :\r\n\t\t\t\t\t\t\tthis.empty().each(function () {\r\n\t\t\t\t\t\t\t\tif (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\r\n\t\t\t\t\t\t\t\t\tthis.textContent = value;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}, null, value, arguments.length);\r\n\t\t\t\t},\r\n\r\n\t\t\t\tappend: function () {\r\n\t\t\t\t\treturn domManip(this, arguments, function (elem) {\r\n\t\t\t\t\t\tif (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\r\n\t\t\t\t\t\t\tvar target = manipulationTarget(this, elem);\r\n\t\t\t\t\t\t\ttarget.appendChild(elem);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\r\n\t\t\t\tprepend: function () {\r\n\t\t\t\t\treturn domManip(this, arguments, function (elem) {\r\n\t\t\t\t\t\tif (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\r\n\t\t\t\t\t\t\tvar target = manipulationTarget(this, elem);\r\n\t\t\t\t\t\t\ttarget.insertBefore(elem, target.firstChild);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\r\n\t\t\t\tbefore: function () {\r\n\t\t\t\t\treturn domManip(this, arguments, function (elem) {\r\n\t\t\t\t\t\tif (this.parentNode) {\r\n\t\t\t\t\t\t\tthis.parentNode.insertBefore(elem, this);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\r\n\t\t\t\tafter: function () {\r\n\t\t\t\t\treturn domManip(this, arguments, function (elem) {\r\n\t\t\t\t\t\tif (this.parentNode) {\r\n\t\t\t\t\t\t\tthis.parentNode.insertBefore(elem, this.nextSibling);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\r\n\t\t\t\tempty: function () {\r\n\t\t\t\t\tvar elem,\r\n\t\t\t\t\t\ti = 0;\r\n\r\n\t\t\t\t\tfor (; (elem = this[i]) != null; i++) {\r\n\t\t\t\t\t\tif (elem.nodeType === 1) {\r\n\r\n\t\t\t\t\t\t\t// Prevent memory leaks\r\n\t\t\t\t\t\t\tjQuery.cleanData(getAll(elem, false));\r\n\r\n\t\t\t\t\t\t\t// Remove any remaining nodes\r\n\t\t\t\t\t\t\telem.textContent = \"\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t},\r\n\r\n\t\t\t\tclone: function (dataAndEvents, deepDataAndEvents) {\r\n\t\t\t\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\r\n\t\t\t\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\r\n\r\n\t\t\t\t\treturn this.map(function () {\r\n\t\t\t\t\t\treturn jQuery.clone(this, dataAndEvents, deepDataAndEvents);\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\r\n\t\t\t\thtml: function (value) {\r\n\t\t\t\t\treturn access(this, function (value) {\r\n\t\t\t\t\t\tvar elem = this[0] || {},\r\n\t\t\t\t\t\t\ti = 0,\r\n\t\t\t\t\t\t\tl = this.length;\r\n\r\n\t\t\t\t\t\tif (value === undefined && elem.nodeType === 1) {\r\n\t\t\t\t\t\t\treturn elem.innerHTML;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// See if we can take a shortcut and just use innerHTML\r\n\t\t\t\t\t\tif (typeof value === \"string\" && !rnoInnerhtml.test(value) &&\r\n\t\t\t\t\t\t\t!wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\r\n\r\n\t\t\t\t\t\t\tvalue = jQuery.htmlPrefilter(value);\r\n\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tfor (; i < l; i++) {\r\n\t\t\t\t\t\t\t\t\telem = this[i] || {};\r\n\r\n\t\t\t\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\r\n\t\t\t\t\t\t\t\t\tif (elem.nodeType === 1) {\r\n\t\t\t\t\t\t\t\t\t\tjQuery.cleanData(getAll(elem, false));\r\n\t\t\t\t\t\t\t\t\t\telem.innerHTML = value;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\telem = 0;\r\n\r\n\t\t\t\t\t\t\t\t// If using innerHTML throws an exception, use the fallback method\r\n\t\t\t\t\t\t\t} catch (e) { }\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (elem) {\r\n\t\t\t\t\t\t\tthis.empty().append(value);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, null, value, arguments.length);\r\n\t\t\t\t},\r\n\r\n\t\t\t\treplaceWith: function () {\r\n\t\t\t\t\tvar ignored = [];\r\n\r\n\t\t\t\t\t// Make the changes, replacing each non-ignored context element with the new content\r\n\t\t\t\t\treturn domManip(this, arguments, function (elem) {\r\n\t\t\t\t\t\tvar parent = this.parentNode;\r\n\r\n\t\t\t\t\t\tif (jQuery.inArray(this, ignored) < 0) {\r\n\t\t\t\t\t\t\tjQuery.cleanData(getAll(this));\r\n\t\t\t\t\t\t\tif (parent) {\r\n\t\t\t\t\t\t\t\tparent.replaceChild(elem, this);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Force callback invocation\r\n\t\t\t\t\t}, ignored);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tjQuery.each({\r\n\t\t\t\tappendTo: \"append\",\r\n\t\t\t\tprependTo: \"prepend\",\r\n\t\t\t\tinsertBefore: \"before\",\r\n\t\t\t\tinsertAfter: \"after\",\r\n\t\t\t\treplaceAll: \"replaceWith\"\r\n\t\t\t}, function (name, original) {\r\n\t\t\t\tjQuery.fn[name] = function (selector) {\r\n\t\t\t\t\tvar elems,\r\n\t\t\t\t\t\tret = [],\r\n\t\t\t\t\t\tinsert = jQuery(selector),\r\n\t\t\t\t\t\tlast = insert.length - 1,\r\n\t\t\t\t\t\ti = 0;\r\n\r\n\t\t\t\t\tfor (; i <= last; i++) {\r\n\t\t\t\t\t\telems = i === last ? this : this.clone(true);\r\n\t\t\t\t\t\tjQuery(insert[i])[original](elems);\r\n\r\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\r\n\t\t\t\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\r\n\t\t\t\t\t\tpush.apply(ret, elems.get());\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn this.pushStack(ret);\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t\tvar rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\r\n\r\n\t\t\tvar getStyles = function (elem) {\r\n\r\n\t\t\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\r\n\t\t\t\t// IE throws on elements created in popups\r\n\t\t\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\r\n\t\t\t\tvar view = elem.ownerDocument.defaultView;\r\n\r\n\t\t\t\tif (!view || !view.opener) {\r\n\t\t\t\t\tview = window;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn view.getComputedStyle(elem);\r\n\t\t\t};\r\n\r\n\t\t\tvar swap = function (elem, options, callback) {\r\n\t\t\t\tvar ret, name,\r\n\t\t\t\t\told = {};\r\n\r\n\t\t\t\t// Remember the old values, and insert the new ones\r\n\t\t\t\tfor (name in options) {\r\n\t\t\t\t\told[name] = elem.style[name];\r\n\t\t\t\t\telem.style[name] = options[name];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tret = callback.call(elem);\r\n\r\n\t\t\t\t// Revert the old values\r\n\t\t\t\tfor (name in options) {\r\n\t\t\t\t\telem.style[name] = old[name];\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn ret;\r\n\t\t\t};\r\n\r\n\r\n\t\t\tvar rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\r\n\r\n\r\n\r\n\t\t\t(function () {\r\n\r\n\t\t\t\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\r\n\t\t\t\t// so they're executed at the same time to save the second computation.\r\n\t\t\t\tfunction computeStyleTests() {\r\n\r\n\t\t\t\t\t// This is a singleton, we need to execute it only once\r\n\t\t\t\t\tif (!div) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\r\n\t\t\t\t\t\t\"margin-top:1px;padding:0;border:0\";\r\n\t\t\t\t\tdiv.style.cssText =\r\n\t\t\t\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\r\n\t\t\t\t\t\t\"margin:auto;border:1px;padding:1px;\" +\r\n\t\t\t\t\t\t\"width:60%;top:1%\";\r\n\t\t\t\t\tdocumentElement.appendChild(container).appendChild(div);\r\n\r\n\t\t\t\t\tvar divStyle = window.getComputedStyle(div);\r\n\t\t\t\t\tpixelPositionVal = divStyle.top !== \"1%\";\r\n\r\n\t\t\t\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\r\n\t\t\t\t\treliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12;\r\n\r\n\t\t\t\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\r\n\t\t\t\t\t// Some styles come back with percentage values, even though they shouldn't\r\n\t\t\t\t\tdiv.style.right = \"60%\";\r\n\t\t\t\t\tpixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36;\r\n\r\n\t\t\t\t\t// Support: IE 9 - 11 only\r\n\t\t\t\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\r\n\t\t\t\t\tboxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36;\r\n\r\n\t\t\t\t\t// Support: IE 9 only\r\n\t\t\t\t\t// Detect overflow:scroll screwiness (gh-3699)\r\n\t\t\t\t\t// Support: Chrome <=64\r\n\t\t\t\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\r\n\t\t\t\t\tdiv.style.position = \"absolute\";\r\n\t\t\t\t\tscrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\r\n\r\n\t\t\t\t\tdocumentElement.removeChild(container);\r\n\r\n\t\t\t\t\t// Nullify the div so it wouldn't be stored in the memory and\r\n\t\t\t\t\t// it will also be a sign that checks already performed\r\n\t\t\t\t\tdiv = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction roundPixelMeasures(measure) {\r\n\t\t\t\t\treturn Math.round(parseFloat(measure));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\r\n\t\t\t\t\treliableTrDimensionsVal, reliableMarginLeftVal,\r\n\t\t\t\t\tcontainer = document.createElement(\"div\"),\r\n\t\t\t\t\tdiv = document.createElement(\"div\");\r\n\r\n\t\t\t\t// Finish early in limited (non-browser) environments\r\n\t\t\t\tif (!div.style) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Support: IE <=9 - 11 only\r\n\t\t\t\t// Style of cloned element affects source element cloned (#8908)\r\n\t\t\t\tdiv.style.backgroundClip = \"content-box\";\r\n\t\t\t\tdiv.cloneNode(true).style.backgroundClip = \"\";\r\n\t\t\t\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\r\n\r\n\t\t\t\tjQuery.extend(support, {\r\n\t\t\t\t\tboxSizingReliable: function () {\r\n\t\t\t\t\t\tcomputeStyleTests();\r\n\t\t\t\t\t\treturn boxSizingReliableVal;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tpixelBoxStyles: function () {\r\n\t\t\t\t\t\tcomputeStyleTests();\r\n\t\t\t\t\t\treturn pixelBoxStylesVal;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tpixelPosition: function () {\r\n\t\t\t\t\t\tcomputeStyleTests();\r\n\t\t\t\t\t\treturn pixelPositionVal;\r\n\t\t\t\t\t},\r\n\t\t\t\t\treliableMarginLeft: function () {\r\n\t\t\t\t\t\tcomputeStyleTests();\r\n\t\t\t\t\t\treturn reliableMarginLeftVal;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tscrollboxSize: function () {\r\n\t\t\t\t\t\tcomputeStyleTests();\r\n\t\t\t\t\t\treturn scrollboxSizeVal;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t// Support: IE 9 - 11+, Edge 15 - 18+\r\n\t\t\t\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\r\n\t\t\t\t\t// set in CSS while `offset*` properties report correct values.\r\n\t\t\t\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\r\n\t\t\t\t\t// some versions of this test; make sure not to make it pass there!\r\n\t\t\t\t\treliableTrDimensions: function () {\r\n\t\t\t\t\t\tvar table, tr, trChild, trStyle;\r\n\t\t\t\t\t\tif (reliableTrDimensionsVal == null) {\r\n\t\t\t\t\t\t\ttable = document.createElement(\"table\");\r\n\t\t\t\t\t\t\ttr = document.createElement(\"tr\");\r\n\t\t\t\t\t\t\ttrChild = document.createElement(\"div\");\r\n\r\n\t\t\t\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px\";\r\n\t\t\t\t\t\t\ttr.style.height = \"1px\";\r\n\t\t\t\t\t\t\ttrChild.style.height = \"9px\";\r\n\r\n\t\t\t\t\t\t\tdocumentElement\r\n\t\t\t\t\t\t\t\t.appendChild(table)\r\n\t\t\t\t\t\t\t\t.appendChild(tr)\r\n\t\t\t\t\t\t\t\t.appendChild(trChild);\r\n\r\n\t\t\t\t\t\t\ttrStyle = window.getComputedStyle(tr);\r\n\t\t\t\t\t\t\treliableTrDimensionsVal = parseInt(trStyle.height) > 3;\r\n\r\n\t\t\t\t\t\t\tdocumentElement.removeChild(table);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn reliableTrDimensionsVal;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t})();\r\n\r\n\r\n\t\t\tfunction curCSS(elem, name, computed) {\r\n\t\t\t\tvar width, minWidth, maxWidth, ret,\r\n\r\n\t\t\t\t\t// Support: Firefox 51+\r\n\t\t\t\t\t// Retrieving style before computed somehow\r\n\t\t\t\t\t// fixes an issue with getting wrong values\r\n\t\t\t\t\t// on detached elements\r\n\t\t\t\t\tstyle = elem.style;\r\n\r\n\t\t\t\tcomputed = computed || getStyles(elem);\r\n\r\n\t\t\t\t// getPropertyValue is needed for:\r\n\t\t\t\t// .css('filter') (IE 9 only, #12537)\r\n\t\t\t\t// .css('--customProperty) (#3144)\r\n\t\t\t\tif (computed) {\r\n\t\t\t\t\tret = computed.getPropertyValue(name) || computed[name];\r\n\r\n\t\t\t\t\tif (ret === \"\" && !isAttached(elem)) {\r\n\t\t\t\t\t\tret = jQuery.style(elem, name);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// A tribute to the \"awesome hack by Dean Edwards\"\r\n\t\t\t\t\t// Android Browser returns percentage for some values,\r\n\t\t\t\t\t// but width seems to be reliably pixels.\r\n\t\t\t\t\t// This is against the CSSOM draft spec:\r\n\t\t\t\t\t// https://drafts.csswg.org/cssom/#resolved-values\r\n\t\t\t\t\tif (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\r\n\r\n\t\t\t\t\t\t// Remember the original values\r\n\t\t\t\t\t\twidth = style.width;\r\n\t\t\t\t\t\tminWidth = style.minWidth;\r\n\t\t\t\t\t\tmaxWidth = style.maxWidth;\r\n\r\n\t\t\t\t\t\t// Put in the new values to get a computed value out\r\n\t\t\t\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\r\n\t\t\t\t\t\tret = computed.width;\r\n\r\n\t\t\t\t\t\t// Revert the changed values\r\n\t\t\t\t\t\tstyle.width = width;\r\n\t\t\t\t\t\tstyle.minWidth = minWidth;\r\n\t\t\t\t\t\tstyle.maxWidth = maxWidth;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn ret !== undefined ?\r\n\r\n\t\t\t\t\t// Support: IE <=9 - 11 only\r\n\t\t\t\t\t// IE returns zIndex value as an integer.\r\n\t\t\t\t\tret + \"\" :\r\n\t\t\t\t\tret;\r\n\t\t\t}\r\n\r\n\r\n\t\t\tfunction addGetHookIf(conditionFn, hookFn) {\r\n\r\n\t\t\t\t// Define the hook, we'll check on the first run if it's really needed.\r\n\t\t\t\treturn {\r\n\t\t\t\t\tget: function () {\r\n\t\t\t\t\t\tif (conditionFn()) {\r\n\r\n\t\t\t\t\t\t\t// Hook not needed (or it's not possible to use it due\r\n\t\t\t\t\t\t\t// to missing dependency), remove it.\r\n\t\t\t\t\t\t\tdelete this.get;\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Hook needed; redefine it so that the support test is not executed again.\r\n\t\t\t\t\t\treturn (this.get = hookFn).apply(this, arguments);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\r\n\t\t\tvar cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\r\n\t\t\t\temptyStyle = document.createElement(\"div\").style,\r\n\t\t\t\tvendorProps = {};\r\n\r\n\t\t\t// Return a vendor-prefixed property or undefined\r\n\t\t\tfunction vendorPropName(name) {\r\n\r\n\t\t\t\t// Check for vendor prefixed names\r\n\t\t\t\tvar capName = name[0].toUpperCase() + name.slice(1),\r\n\t\t\t\t\ti = cssPrefixes.length;\r\n\r\n\t\t\t\twhile (i--) {\r\n\t\t\t\t\tname = cssPrefixes[i] + capName;\r\n\t\t\t\t\tif (name in emptyStyle) {\r\n\t\t\t\t\t\treturn name;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\r\n\t\t\tfunction finalPropName(name) {\r\n\t\t\t\tvar final = jQuery.cssProps[name] || vendorProps[name];\r\n\r\n\t\t\t\tif (final) {\r\n\t\t\t\t\treturn final;\r\n\t\t\t\t}\r\n\t\t\t\tif (name in emptyStyle) {\r\n\t\t\t\t\treturn name;\r\n\t\t\t\t}\r\n\t\t\t\treturn vendorProps[name] = vendorPropName(name) || name;\r\n\t\t\t}\r\n\r\n\r\n\t\t\tvar\r\n\r\n\t\t\t\t// Swappable if display is none or starts with table\r\n\t\t\t\t// except \"table\", \"table-cell\", or \"table-caption\"\r\n\t\t\t\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\r\n\t\t\t\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\r\n\t\t\t\trcustomProp = /^--/,\r\n\t\t\t\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\r\n\t\t\t\tcssNormalTransform = {\r\n\t\t\t\t\tletterSpacing: \"0\",\r\n\t\t\t\t\tfontWeight: \"400\"\r\n\t\t\t\t};\r\n\r\n\t\t\tfunction setPositiveNumber(_elem, value, subtract) {\r\n\r\n\t\t\t\t// Any relative (+/-) values have already been\r\n\t\t\t\t// normalized at this point\r\n\t\t\t\tvar matches = rcssNum.exec(value);\r\n\t\t\t\treturn matches ?\r\n\r\n\t\t\t\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\r\n\t\t\t\t\tMath.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") :\r\n\t\t\t\t\tvalue;\r\n\t\t\t}\r\n\r\n\t\t\tfunction boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\r\n\t\t\t\tvar i = dimension === \"width\" ? 1 : 0,\r\n\t\t\t\t\textra = 0,\r\n\t\t\t\t\tdelta = 0;\r\n\r\n\t\t\t\t// Adjustment may not be necessary\r\n\t\t\t\tif (box === (isBorderBox ? \"border\" : \"content\")) {\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (; i < 4; i += 2) {\r\n\r\n\t\t\t\t\t// Both box models exclude margin\r\n\t\t\t\t\tif (box === \"margin\") {\r\n\t\t\t\t\t\tdelta += jQuery.css(elem, box + cssExpand[i], true, styles);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\r\n\t\t\t\t\tif (!isBorderBox) {\r\n\r\n\t\t\t\t\t\t// Add padding\r\n\t\t\t\t\t\tdelta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\r\n\r\n\t\t\t\t\t\t// For \"border\" or \"margin\", add border\r\n\t\t\t\t\t\tif (box !== \"padding\") {\r\n\t\t\t\t\t\t\tdelta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\r\n\r\n\t\t\t\t\t\t\t// But still keep track of it otherwise\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\textra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\r\n\t\t\t\t\t\t// \"padding\" or \"margin\"\r\n\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t// For \"content\", subtract padding\r\n\t\t\t\t\t\tif (box === \"content\") {\r\n\t\t\t\t\t\t\tdelta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// For \"content\" or \"padding\", subtract border\r\n\t\t\t\t\t\tif (box !== \"margin\") {\r\n\t\t\t\t\t\t\tdelta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Account for positive content-box scroll gutter when requested by providing computedVal\r\n\t\t\t\tif (!isBorderBox && computedVal >= 0) {\r\n\r\n\t\t\t\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\r\n\t\t\t\t\t// Assuming integer scroll gutter, subtract the rest and round down\r\n\t\t\t\t\tdelta += Math.max(0, Math.ceil(\r\n\t\t\t\t\t\telem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] -\r\n\t\t\t\t\t\tcomputedVal -\r\n\t\t\t\t\t\tdelta -\r\n\t\t\t\t\t\textra -\r\n\t\t\t\t\t\t0.5\r\n\r\n\t\t\t\t\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\r\n\t\t\t\t\t\t// Use an explicit zero to avoid NaN (gh-3964)\r\n\t\t\t\t\t)) || 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn delta;\r\n\t\t\t}\r\n\r\n\t\t\tfunction getWidthOrHeight(elem, dimension, extra) {\r\n\r\n\t\t\t\t// Start with computed style\r\n\t\t\t\tvar styles = getStyles(elem),\r\n\r\n\t\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\r\n\t\t\t\t\t// Fake content-box until we know it's needed to know the true value.\r\n\t\t\t\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\r\n\t\t\t\t\tisBorderBox = boxSizingNeeded &&\r\n\t\t\t\t\t\tjQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\r\n\t\t\t\t\tvalueIsBorderBox = isBorderBox,\r\n\r\n\t\t\t\t\tval = curCSS(elem, dimension, styles),\r\n\t\t\t\t\toffsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1);\r\n\r\n\t\t\t\t// Support: Firefox <=54\r\n\t\t\t\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\r\n\t\t\t\tif (rnumnonpx.test(val)) {\r\n\t\t\t\t\tif (!extra) {\r\n\t\t\t\t\t\treturn val;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tval = \"auto\";\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\t// Support: IE 9 - 11 only\r\n\t\t\t\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\r\n\t\t\t\t// In those cases, the computed value can be trusted to be border-box.\r\n\t\t\t\tif ((!support.boxSizingReliable() && isBorderBox ||\r\n\r\n\t\t\t\t\t// Support: IE 10 - 11+, Edge 15 - 18+\r\n\t\t\t\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\r\n\t\t\t\t\t// set in CSS while `offset*` properties report correct values.\r\n\t\t\t\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\r\n\t\t\t\t\t!support.reliableTrDimensions() && nodeName(elem, \"tr\") ||\r\n\r\n\t\t\t\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\r\n\t\t\t\t\t// This happens for inline elements with no explicit setting (gh-3571)\r\n\t\t\t\t\tval === \"auto\" ||\r\n\r\n\t\t\t\t\t// Support: Android <=4.1 - 4.3 only\r\n\t\t\t\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\r\n\t\t\t\t\t!parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") &&\r\n\r\n\t\t\t\t\t// Make sure the element is visible & connected\r\n\t\t\t\t\telem.getClientRects().length) {\r\n\r\n\t\t\t\t\tisBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\";\r\n\r\n\t\t\t\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\r\n\t\t\t\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\r\n\t\t\t\t\t// retrieved value as a content box dimension.\r\n\t\t\t\t\tvalueIsBorderBox = offsetProp in elem;\r\n\t\t\t\t\tif (valueIsBorderBox) {\r\n\t\t\t\t\t\tval = elem[offsetProp];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Normalize \"\" and auto\r\n\t\t\t\tval = parseFloat(val) || 0;\r\n\r\n\t\t\t\t// Adjust for the element's box model\r\n\t\t\t\treturn (val +\r\n\t\t\t\t\tboxModelAdjustment(\r\n\t\t\t\t\t\telem,\r\n\t\t\t\t\t\tdimension,\r\n\t\t\t\t\t\textra || (isBorderBox ? \"border\" : \"content\"),\r\n\t\t\t\t\t\tvalueIsBorderBox,\r\n\t\t\t\t\t\tstyles,\r\n\r\n\t\t\t\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\r\n\t\t\t\t\t\tval\r\n\t\t\t\t\t)\r\n\t\t\t\t) + \"px\";\r\n\t\t\t}\r\n\r\n\t\t\tjQuery.extend({\r\n\r\n\t\t\t\t// Add in style property hooks for overriding the default\r\n\t\t\t\t// behavior of getting and setting a style property\r\n\t\t\t\tcssHooks: {\r\n\t\t\t\t\topacity: {\r\n\t\t\t\t\t\tget: function (elem, computed) {\r\n\t\t\t\t\t\t\tif (computed) {\r\n\r\n\t\t\t\t\t\t\t\t// We should always get a number back from opacity\r\n\t\t\t\t\t\t\t\tvar ret = curCSS(elem, \"opacity\");\r\n\t\t\t\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Don't automatically add \"px\" to these possibly-unitless properties\r\n\t\t\t\tcssNumber: {\r\n\t\t\t\t\t\"animationIterationCount\": true,\r\n\t\t\t\t\t\"columnCount\": true,\r\n\t\t\t\t\t\"fillOpacity\": true,\r\n\t\t\t\t\t\"flexGrow\": true,\r\n\t\t\t\t\t\"flexShrink\": true,\r\n\t\t\t\t\t\"fontWeight\": true,\r\n\t\t\t\t\t\"gridArea\": true,\r\n\t\t\t\t\t\"gridColumn\": true,\r\n\t\t\t\t\t\"gridColumnEnd\": true,\r\n\t\t\t\t\t\"gridColumnStart\": true,\r\n\t\t\t\t\t\"gridRow\": true,\r\n\t\t\t\t\t\"gridRowEnd\": true,\r\n\t\t\t\t\t\"gridRowStart\": true,\r\n\t\t\t\t\t\"lineHeight\": true,\r\n\t\t\t\t\t\"opacity\": true,\r\n\t\t\t\t\t\"order\": true,\r\n\t\t\t\t\t\"orphans\": true,\r\n\t\t\t\t\t\"widows\": true,\r\n\t\t\t\t\t\"zIndex\": true,\r\n\t\t\t\t\t\"zoom\": true\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Add in properties whose names you wish to fix before\r\n\t\t\t\t// setting or getting the value\r\n\t\t\t\tcssProps: {},\r\n\r\n\t\t\t\t// Get and set the style property on a DOM Node\r\n\t\t\t\tstyle: function (elem, name, value, extra) {\r\n\r\n\t\t\t\t\t// Don't set styles on text and comment nodes\r\n\t\t\t\t\tif (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Make sure that we're working with the right name\r\n\t\t\t\t\tvar ret, type, hooks,\r\n\t\t\t\t\t\torigName = camelCase(name),\r\n\t\t\t\t\t\tisCustomProp = rcustomProp.test(name),\r\n\t\t\t\t\t\tstyle = elem.style;\r\n\r\n\t\t\t\t\t// Make sure that we're working with the right name. We don't\r\n\t\t\t\t\t// want to query the value if it is a CSS custom property\r\n\t\t\t\t\t// since they are user-defined.\r\n\t\t\t\t\tif (!isCustomProp) {\r\n\t\t\t\t\t\tname = finalPropName(origName);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Gets hook for the prefixed version, then unprefixed version\r\n\t\t\t\t\thooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\r\n\r\n\t\t\t\t\t// Check if we're setting a value\r\n\t\t\t\t\tif (value !== undefined) {\r\n\t\t\t\t\t\ttype = typeof value;\r\n\r\n\t\t\t\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\r\n\t\t\t\t\t\tif (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\r\n\t\t\t\t\t\t\tvalue = adjustCSS(elem, name, ret);\r\n\r\n\t\t\t\t\t\t\t// Fixes bug #9237\r\n\t\t\t\t\t\t\ttype = \"number\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Make sure that null and NaN values aren't set (#7116)\r\n\t\t\t\t\t\tif (value == null || value !== value) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\r\n\t\t\t\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\r\n\t\t\t\t\t\t// \"px\" to a few hardcoded values.\r\n\t\t\t\t\t\tif (type === \"number\" && !isCustomProp) {\r\n\t\t\t\t\t\t\tvalue += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// background-* props affect original clone's values\r\n\t\t\t\t\t\tif (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\r\n\t\t\t\t\t\t\tstyle[name] = \"inherit\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\r\n\t\t\t\t\t\tif (!hooks || !(\"set\" in hooks) ||\r\n\t\t\t\t\t\t\t(value = hooks.set(elem, value, extra)) !== undefined) {\r\n\r\n\t\t\t\t\t\t\tif (isCustomProp) {\r\n\t\t\t\t\t\t\t\tstyle.setProperty(name, value);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tstyle[name] = value;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t// If a hook was provided get the non-computed value from there\r\n\t\t\t\t\t\tif (hooks && \"get\" in hooks &&\r\n\t\t\t\t\t\t\t(ret = hooks.get(elem, false, extra)) !== undefined) {\r\n\r\n\t\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Otherwise just get the value from the style object\r\n\t\t\t\t\t\treturn style[name];\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\tcss: function (elem, name, extra, styles) {\r\n\t\t\t\t\tvar val, num, hooks,\r\n\t\t\t\t\t\torigName = camelCase(name),\r\n\t\t\t\t\t\tisCustomProp = rcustomProp.test(name);\r\n\r\n\t\t\t\t\t// Make sure that we're working with the right name. We don't\r\n\t\t\t\t\t// want to modify the value if it is a CSS custom property\r\n\t\t\t\t\t// since they are user-defined.\r\n\t\t\t\t\tif (!isCustomProp) {\r\n\t\t\t\t\t\tname = finalPropName(origName);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Try prefixed name followed by the unprefixed name\r\n\t\t\t\t\thooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\r\n\r\n\t\t\t\t\t// If a hook was provided get the computed value from there\r\n\t\t\t\t\tif (hooks && \"get\" in hooks) {\r\n\t\t\t\t\t\tval = hooks.get(elem, true, extra);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Otherwise, if a way to get the computed value exists, use that\r\n\t\t\t\t\tif (val === undefined) {\r\n\t\t\t\t\t\tval = curCSS(elem, name, styles);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Convert \"normal\" to computed value\r\n\t\t\t\t\tif (val === \"normal\" && name in cssNormalTransform) {\r\n\t\t\t\t\t\tval = cssNormalTransform[name];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\r\n\t\t\t\t\tif (extra === \"\" || extra) {\r\n\t\t\t\t\t\tnum = parseFloat(val);\r\n\t\t\t\t\t\treturn extra === true || isFinite(num) ? num || 0 : val;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn val;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tjQuery.each([\"height\", \"width\"], function (_i, dimension) {\r\n\t\t\t\tjQuery.cssHooks[dimension] = {\r\n\t\t\t\t\tget: function (elem, computed, extra) {\r\n\t\t\t\t\t\tif (computed) {\r\n\r\n\t\t\t\t\t\t\t// Certain elements can have dimension info if we invisibly show them\r\n\t\t\t\t\t\t\t// but it must have a current display style that would benefit\r\n\t\t\t\t\t\t\treturn rdisplayswap.test(jQuery.css(elem, \"display\")) &&\r\n\r\n\t\t\t\t\t\t\t\t// Support: Safari 8+\r\n\t\t\t\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\r\n\t\t\t\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\r\n\t\t\t\t\t\t\t\t// Support: IE <=11 only\r\n\t\t\t\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\r\n\t\t\t\t\t\t\t\t// in IE throws an error.\r\n\t\t\t\t\t\t\t\t(!elem.getClientRects().length || !elem.getBoundingClientRect().width) ?\r\n\t\t\t\t\t\t\t\tswap(elem, cssShow, function () {\r\n\t\t\t\t\t\t\t\t\treturn getWidthOrHeight(elem, dimension, extra);\r\n\t\t\t\t\t\t\t\t}) :\r\n\t\t\t\t\t\t\t\tgetWidthOrHeight(elem, dimension, extra);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tset: function (elem, value, extra) {\r\n\t\t\t\t\t\tvar matches,\r\n\t\t\t\t\t\t\tstyles = getStyles(elem),\r\n\r\n\t\t\t\t\t\t\t// Only read styles.position if the test has a chance to fail\r\n\t\t\t\t\t\t\t// to avoid forcing a reflow.\r\n\t\t\t\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\r\n\t\t\t\t\t\t\t\tstyles.position === \"absolute\",\r\n\r\n\t\t\t\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\r\n\t\t\t\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\r\n\t\t\t\t\t\t\tisBorderBox = boxSizingNeeded &&\r\n\t\t\t\t\t\t\t\tjQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\r\n\t\t\t\t\t\t\tsubtract = extra ?\r\n\t\t\t\t\t\t\t\tboxModelAdjustment(\r\n\t\t\t\t\t\t\t\t\telem,\r\n\t\t\t\t\t\t\t\t\tdimension,\r\n\t\t\t\t\t\t\t\t\textra,\r\n\t\t\t\t\t\t\t\t\tisBorderBox,\r\n\t\t\t\t\t\t\t\t\tstyles\r\n\t\t\t\t\t\t\t\t) :\r\n\t\t\t\t\t\t\t\t0;\r\n\r\n\t\t\t\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\r\n\t\t\t\t\t\t// faking a content-box to get border and padding (gh-3699)\r\n\t\t\t\t\t\tif (isBorderBox && scrollboxSizeBuggy) {\r\n\t\t\t\t\t\t\tsubtract -= Math.ceil(\r\n\t\t\t\t\t\t\t\telem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] -\r\n\t\t\t\t\t\t\t\tparseFloat(styles[dimension]) -\r\n\t\t\t\t\t\t\t\tboxModelAdjustment(elem, dimension, \"border\", false, styles) -\r\n\t\t\t\t\t\t\t\t0.5\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Convert to pixels if value adjustment is needed\r\n\t\t\t\t\t\tif (subtract && (matches = rcssNum.exec(value)) &&\r\n\t\t\t\t\t\t\t(matches[3] || \"px\") !== \"px\") {\r\n\r\n\t\t\t\t\t\t\telem.style[dimension] = value;\r\n\t\t\t\t\t\t\tvalue = jQuery.css(elem, dimension);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn setPositiveNumber(elem, value, subtract);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t});\r\n\r\n\t\t\tjQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft,\r\n\t\t\t\tfunction (elem, computed) {\r\n\t\t\t\t\tif (computed) {\r\n\t\t\t\t\t\treturn (parseFloat(curCSS(elem, \"marginLeft\")) ||\r\n\t\t\t\t\t\t\telem.getBoundingClientRect().left -\r\n\t\t\t\t\t\t\tswap(elem, { marginLeft: 0 }, function () {\r\n\t\t\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t) + \"px\";\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t);\r\n\r\n\t\t\t// These hooks are used by animate to expand properties\r\n\t\t\tjQuery.each({\r\n\t\t\t\tmargin: \"\",\r\n\t\t\t\tpadding: \"\",\r\n\t\t\t\tborder: \"Width\"\r\n\t\t\t}, function (prefix, suffix) {\r\n\t\t\t\tjQuery.cssHooks[prefix + suffix] = {\r\n\t\t\t\t\texpand: function (value) {\r\n\t\t\t\t\t\tvar i = 0,\r\n\t\t\t\t\t\t\texpanded = {},\r\n\r\n\t\t\t\t\t\t\t// Assumes a single number if not a string\r\n\t\t\t\t\t\t\tparts = typeof value === \"string\" ? value.split(\" \") : [value];\r\n\r\n\t\t\t\t\t\tfor (; i < 4; i++) {\r\n\t\t\t\t\t\t\texpanded[prefix + cssExpand[i] + suffix] =\r\n\t\t\t\t\t\t\t\tparts[i] || parts[i - 2] || parts[0];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn expanded;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tif (prefix !== \"margin\") {\r\n\t\t\t\t\tjQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tjQuery.fn.extend({\r\n\t\t\t\tcss: function (name, value) {\r\n\t\t\t\t\treturn access(this, function (elem, name, value) {\r\n\t\t\t\t\t\tvar styles, len,\r\n\t\t\t\t\t\t\tmap = {},\r\n\t\t\t\t\t\t\ti = 0;\r\n\r\n\t\t\t\t\t\tif (Array.isArray(name)) {\r\n\t\t\t\t\t\t\tstyles = getStyles(elem);\r\n\t\t\t\t\t\t\tlen = name.length;\r\n\r\n\t\t\t\t\t\t\tfor (; i < len; i++) {\r\n\t\t\t\t\t\t\t\tmap[name[i]] = jQuery.css(elem, name[i], false, styles);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn map;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn value !== undefined ?\r\n\t\t\t\t\t\t\tjQuery.style(elem, name, value) :\r\n\t\t\t\t\t\t\tjQuery.css(elem, name);\r\n\t\t\t\t\t}, name, value, arguments.length > 1);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\t\tfunction Tween(elem, options, prop, end, easing) {\r\n\t\t\t\treturn new Tween.prototype.init(elem, options, prop, end, easing);\r\n\t\t\t}\r\n\t\t\tjQuery.Tween = Tween;\r\n\r\n\t\t\tTween.prototype = {\r\n\t\t\t\tconstructor: Tween,\r\n\t\t\t\tinit: function (elem, options, prop, end, easing, unit) {\r\n\t\t\t\t\tthis.elem = elem;\r\n\t\t\t\t\tthis.prop = prop;\r\n\t\t\t\t\tthis.easing = easing || jQuery.easing._default;\r\n\t\t\t\t\tthis.options = options;\r\n\t\t\t\t\tthis.start = this.now = this.cur();\r\n\t\t\t\t\tthis.end = end;\r\n\t\t\t\t\tthis.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\r\n\t\t\t\t},\r\n\t\t\t\tcur: function () {\r\n\t\t\t\t\tvar hooks = Tween.propHooks[this.prop];\r\n\r\n\t\t\t\t\treturn hooks && hooks.get ?\r\n\t\t\t\t\t\thooks.get(this) :\r\n\t\t\t\t\t\tTween.propHooks._default.get(this);\r\n\t\t\t\t},\r\n\t\t\t\trun: function (percent) {\r\n\t\t\t\t\tvar eased,\r\n\t\t\t\t\t\thooks = Tween.propHooks[this.prop];\r\n\r\n\t\t\t\t\tif (this.options.duration) {\r\n\t\t\t\t\t\tthis.pos = eased = jQuery.easing[this.easing](\r\n\t\t\t\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.pos = eased = percent;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.now = (this.end - this.start) * eased + this.start;\r\n\r\n\t\t\t\t\tif (this.options.step) {\r\n\t\t\t\t\t\tthis.options.step.call(this.elem, this.now, this);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (hooks && hooks.set) {\r\n\t\t\t\t\t\thooks.set(this);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tTween.propHooks._default.set(this);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tTween.prototype.init.prototype = Tween.prototype;\r\n\r\n\t\t\tTween.propHooks = {\r\n\t\t\t\t_default: {\r\n\t\t\t\t\tget: function (tween) {\r\n\t\t\t\t\t\tvar result;\r\n\r\n\t\t\t\t\t\t// Use a property on the element directly when it is not a DOM element,\r\n\t\t\t\t\t\t// or when there is no matching style property that exists.\r\n\t\t\t\t\t\tif (tween.elem.nodeType !== 1 ||\r\n\t\t\t\t\t\t\ttween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\r\n\t\t\t\t\t\t\treturn tween.elem[tween.prop];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\r\n\t\t\t\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\r\n\t\t\t\t\t\t// Simple values such as \"10px\" are parsed to Float;\r\n\t\t\t\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\r\n\t\t\t\t\t\tresult = jQuery.css(tween.elem, tween.prop, \"\");\r\n\r\n\t\t\t\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\r\n\t\t\t\t\t\treturn !result || result === \"auto\" ? 0 : result;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tset: function (tween) {\r\n\r\n\t\t\t\t\t\t// Use step hook for back compat.\r\n\t\t\t\t\t\t// Use cssHook if its there.\r\n\t\t\t\t\t\t// Use .style if available and use plain properties where available.\r\n\t\t\t\t\t\tif (jQuery.fx.step[tween.prop]) {\r\n\t\t\t\t\t\t\tjQuery.fx.step[tween.prop](tween);\r\n\t\t\t\t\t\t} else if (tween.elem.nodeType === 1 && (\r\n\t\t\t\t\t\t\tjQuery.cssHooks[tween.prop] ||\r\n\t\t\t\t\t\t\ttween.elem.style[finalPropName(tween.prop)] != null)) {\r\n\t\t\t\t\t\t\tjQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\ttween.elem[tween.prop] = tween.now;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\t// Support: IE <=9 only\r\n\t\t\t// Panic based approach to setting things on disconnected nodes\r\n\t\t\tTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\r\n\t\t\t\tset: function (tween) {\r\n\t\t\t\t\tif (tween.elem.nodeType && tween.elem.parentNode) {\r\n\t\t\t\t\t\ttween.elem[tween.prop] = tween.now;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tjQuery.easing = {\r\n\t\t\t\tlinear: function (p) {\r\n\t\t\t\t\treturn p;\r\n\t\t\t\t},\r\n\t\t\t\tswing: function (p) {\r\n\t\t\t\t\treturn 0.5 - Math.cos(p * Math.PI) / 2;\r\n\t\t\t\t},\r\n\t\t\t\t_default: \"swing\"\r\n\t\t\t};\r\n\r\n\t\t\tjQuery.fx = Tween.prototype.init;\r\n\r\n\t\t\t// Back compat <1.8 extension point\r\n\t\t\tjQuery.fx.step = {};\r\n\r\n\r\n\r\n\r\n\t\t\tvar\r\n\t\t\t\tfxNow, inProgress,\r\n\t\t\t\trfxtypes = /^(?:toggle|show|hide)$/,\r\n\t\t\t\trrun = /queueHooks$/;\r\n\r\n\t\t\tfunction schedule() {\r\n\t\t\t\tif (inProgress) {\r\n\t\t\t\t\tif (document.hidden === false && window.requestAnimationFrame) {\r\n\t\t\t\t\t\twindow.requestAnimationFrame(schedule);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\twindow.setTimeout(schedule, jQuery.fx.interval);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tjQuery.fx.tick();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Animations created synchronously will run synchronously\r\n\t\t\tfunction createFxNow() {\r\n\t\t\t\twindow.setTimeout(function () {\r\n\t\t\t\t\tfxNow = undefined;\r\n\t\t\t\t});\r\n\t\t\t\treturn (fxNow = Date.now());\r\n\t\t\t}\r\n\r\n\t\t\t// Generate parameters to create a standard animation\r\n\t\t\tfunction genFx(type, includeWidth) {\r\n\t\t\t\tvar which,\r\n\t\t\t\t\ti = 0,\r\n\t\t\t\t\tattrs = { height: type };\r\n\r\n\t\t\t\t// If we include width, step value is 1 to do all cssExpand values,\r\n\t\t\t\t// otherwise step value is 2 to skip over Left and Right\r\n\t\t\t\tincludeWidth = includeWidth ? 1 : 0;\r\n\t\t\t\tfor (; i < 4; i += 2 - includeWidth) {\r\n\t\t\t\t\twhich = cssExpand[i];\r\n\t\t\t\t\tattrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (includeWidth) {\r\n\t\t\t\t\tattrs.opacity = attrs.width = type;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn attrs;\r\n\t\t\t}\r\n\r\n\t\t\tfunction createTween(value, prop, animation) {\r\n\t\t\t\tvar tween,\r\n\t\t\t\t\tcollection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\r\n\t\t\t\t\tindex = 0,\r\n\t\t\t\t\tlength = collection.length;\r\n\t\t\t\tfor (; index < length; index++) {\r\n\t\t\t\t\tif ((tween = collection[index].call(animation, prop, value))) {\r\n\r\n\t\t\t\t\t\t// We're done with this property\r\n\t\t\t\t\t\treturn tween;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction defaultPrefilter(elem, props, opts) {\r\n\t\t\t\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\r\n\t\t\t\t\tisBox = \"width\" in props || \"height\" in props,\r\n\t\t\t\t\tanim = this,\r\n\t\t\t\t\torig = {},\r\n\t\t\t\t\tstyle = elem.style,\r\n\t\t\t\t\thidden = elem.nodeType && isHiddenWithinTree(elem),\r\n\t\t\t\t\tdataShow = dataPriv.get(elem, \"fxshow\");\r\n\r\n\t\t\t\t// Queue-skipping animations hijack the fx hooks\r\n\t\t\t\tif (!opts.queue) {\r\n\t\t\t\t\thooks = jQuery._queueHooks(elem, \"fx\");\r\n\t\t\t\t\tif (hooks.unqueued == null) {\r\n\t\t\t\t\t\thooks.unqueued = 0;\r\n\t\t\t\t\t\toldfire = hooks.empty.fire;\r\n\t\t\t\t\t\thooks.empty.fire = function () {\r\n\t\t\t\t\t\t\tif (!hooks.unqueued) {\r\n\t\t\t\t\t\t\t\toldfire();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\thooks.unqueued++;\r\n\r\n\t\t\t\t\tanim.always(function () {\r\n\r\n\t\t\t\t\t\t// Ensure the complete handler is called before this completes\r\n\t\t\t\t\t\tanim.always(function () {\r\n\t\t\t\t\t\t\thooks.unqueued--;\r\n\t\t\t\t\t\t\tif (!jQuery.queue(elem, \"fx\").length) {\r\n\t\t\t\t\t\t\t\thooks.empty.fire();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Detect show/hide animations\r\n\t\t\t\tfor (prop in props) {\r\n\t\t\t\t\tvalue = props[prop];\r\n\t\t\t\t\tif (rfxtypes.test(value)) {\r\n\t\t\t\t\t\tdelete props[prop];\r\n\t\t\t\t\t\ttoggle = toggle || value === \"toggle\";\r\n\t\t\t\t\t\tif (value === (hidden ? \"hide\" : \"show\")) {\r\n\r\n\t\t\t\t\t\t\t// Pretend to be hidden if this is a \"show\" and\r\n\t\t\t\t\t\t\t// there is still data from a stopped show/hide\r\n\t\t\t\t\t\t\tif (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\r\n\t\t\t\t\t\t\t\thidden = true;\r\n\r\n\t\t\t\t\t\t\t\t// Ignore all other no-op show/hide data\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\torig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Bail out if this is a no-op like .hide().hide()\r\n\t\t\t\tpropTween = !jQuery.isEmptyObject(props);\r\n\t\t\t\tif (!propTween && jQuery.isEmptyObject(orig)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Restrict \"overflow\" and \"display\" styles during box animations\r\n\t\t\t\tif (isBox && elem.nodeType === 1) {\r\n\r\n\t\t\t\t\t// Support: IE <=9 - 11, Edge 12 - 15\r\n\t\t\t\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\r\n\t\t\t\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\r\n\t\t\t\t\t// the overflowX value there.\r\n\t\t\t\t\topts.overflow = [style.overflow, style.overflowX, style.overflowY];\r\n\r\n\t\t\t\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\r\n\t\t\t\t\trestoreDisplay = dataShow && dataShow.display;\r\n\t\t\t\t\tif (restoreDisplay == null) {\r\n\t\t\t\t\t\trestoreDisplay = dataPriv.get(elem, \"display\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdisplay = jQuery.css(elem, \"display\");\r\n\t\t\t\t\tif (display === \"none\") {\r\n\t\t\t\t\t\tif (restoreDisplay) {\r\n\t\t\t\t\t\t\tdisplay = restoreDisplay;\r\n\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\r\n\t\t\t\t\t\t\tshowHide([elem], true);\r\n\t\t\t\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\r\n\t\t\t\t\t\t\tdisplay = jQuery.css(elem, \"display\");\r\n\t\t\t\t\t\t\tshowHide([elem]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Animate inline elements as inline-block\r\n\t\t\t\t\tif (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\r\n\t\t\t\t\t\tif (jQuery.css(elem, \"float\") === \"none\") {\r\n\r\n\t\t\t\t\t\t\t// Restore the original display value at the end of pure show/hide animations\r\n\t\t\t\t\t\t\tif (!propTween) {\r\n\t\t\t\t\t\t\t\tanim.done(function () {\r\n\t\t\t\t\t\t\t\t\tstyle.display = restoreDisplay;\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tif (restoreDisplay == null) {\r\n\t\t\t\t\t\t\t\t\tdisplay = style.display;\r\n\t\t\t\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tstyle.display = \"inline-block\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (opts.overflow) {\r\n\t\t\t\t\tstyle.overflow = \"hidden\";\r\n\t\t\t\t\tanim.always(function () {\r\n\t\t\t\t\t\tstyle.overflow = opts.overflow[0];\r\n\t\t\t\t\t\tstyle.overflowX = opts.overflow[1];\r\n\t\t\t\t\t\tstyle.overflowY = opts.overflow[2];\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Implement show/hide animations\r\n\t\t\t\tpropTween = false;\r\n\t\t\t\tfor (prop in orig) {\r\n\r\n\t\t\t\t\t// General show/hide setup for this element animation\r\n\t\t\t\t\tif (!propTween) {\r\n\t\t\t\t\t\tif (dataShow) {\r\n\t\t\t\t\t\t\tif (\"hidden\" in dataShow) {\r\n\t\t\t\t\t\t\t\thidden = dataShow.hidden;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tdataShow = dataPriv.access(elem, \"fxshow\", { display: restoreDisplay });\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\r\n\t\t\t\t\t\tif (toggle) {\r\n\t\t\t\t\t\t\tdataShow.hidden = !hidden;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Show elements before animating them\r\n\t\t\t\t\t\tif (hidden) {\r\n\t\t\t\t\t\t\tshowHide([elem], true);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* eslint-disable no-loop-func */\r\n\r\n\t\t\t\t\t\tanim.done(function () {\r\n\r\n\t\t\t\t\t\t\t/* eslint-enable no-loop-func */\r\n\r\n\t\t\t\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\r\n\t\t\t\t\t\t\tif (!hidden) {\r\n\t\t\t\t\t\t\t\tshowHide([elem]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tdataPriv.remove(elem, \"fxshow\");\r\n\t\t\t\t\t\t\tfor (prop in orig) {\r\n\t\t\t\t\t\t\t\tjQuery.style(elem, prop, orig[prop]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Per-property setup\r\n\t\t\t\t\tpropTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\r\n\t\t\t\t\tif (!(prop in dataShow)) {\r\n\t\t\t\t\t\tdataShow[prop] = propTween.start;\r\n\t\t\t\t\t\tif (hidden) {\r\n\t\t\t\t\t\t\tpropTween.end = propTween.start;\r\n\t\t\t\t\t\t\tpropTween.start = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction propFilter(props, specialEasing) {\r\n\t\t\t\tvar index, name, easing, value, hooks;\r\n\r\n\t\t\t\t// camelCase, specialEasing and expand cssHook pass\r\n\t\t\t\tfor (index in props) {\r\n\t\t\t\t\tname = camelCase(index);\r\n\t\t\t\t\teasing = specialEasing[name];\r\n\t\t\t\t\tvalue = props[index];\r\n\t\t\t\t\tif (Array.isArray(value)) {\r\n\t\t\t\t\t\teasing = value[1];\r\n\t\t\t\t\t\tvalue = props[index] = value[0];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (index !== name) {\r\n\t\t\t\t\t\tprops[name] = value;\r\n\t\t\t\t\t\tdelete props[index];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\thooks = jQuery.cssHooks[name];\r\n\t\t\t\t\tif (hooks && \"expand\" in hooks) {\r\n\t\t\t\t\t\tvalue = hooks.expand(value);\r\n\t\t\t\t\t\tdelete props[name];\r\n\r\n\t\t\t\t\t\t// Not quite $.extend, this won't overwrite existing keys.\r\n\t\t\t\t\t\t// Reusing 'index' because we have the correct \"name\"\r\n\t\t\t\t\t\tfor (index in value) {\r\n\t\t\t\t\t\t\tif (!(index in props)) {\r\n\t\t\t\t\t\t\t\tprops[index] = value[index];\r\n\t\t\t\t\t\t\t\tspecialEasing[index] = easing;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tspecialEasing[name] = easing;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction Animation(elem, properties, options) {\r\n\t\t\t\tvar result,\r\n\t\t\t\t\tstopped,\r\n\t\t\t\t\tindex = 0,\r\n\t\t\t\t\tlength = Animation.prefilters.length,\r\n\t\t\t\t\tdeferred = jQuery.Deferred().always(function () {\r\n\r\n\t\t\t\t\t\t// Don't match elem in the :animated selector\r\n\t\t\t\t\t\tdelete tick.elem;\r\n\t\t\t\t\t}),\r\n\t\t\t\t\ttick = function () {\r\n\t\t\t\t\t\tif (stopped) {\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar currentTime = fxNow || createFxNow(),\r\n\t\t\t\t\t\t\tremaining = Math.max(0, animation.startTime + animation.duration - currentTime),\r\n\r\n\t\t\t\t\t\t\t// Support: Android 2.3 only\r\n\t\t\t\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\r\n\t\t\t\t\t\t\ttemp = remaining / animation.duration || 0,\r\n\t\t\t\t\t\t\tpercent = 1 - temp,\r\n\t\t\t\t\t\t\tindex = 0,\r\n\t\t\t\t\t\t\tlength = animation.tweens.length;\r\n\r\n\t\t\t\t\t\tfor (; index < length; index++) {\r\n\t\t\t\t\t\t\tanimation.tweens[index].run(percent);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tdeferred.notifyWith(elem, [animation, percent, remaining]);\r\n\r\n\t\t\t\t\t\t// If there's more to do, yield\r\n\t\t\t\t\t\tif (percent < 1 && length) {\r\n\t\t\t\t\t\t\treturn remaining;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// If this was an empty animation, synthesize a final progress notification\r\n\t\t\t\t\t\tif (!length) {\r\n\t\t\t\t\t\t\tdeferred.notifyWith(elem, [animation, 1, 0]);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Resolve the animation and report its conclusion\r\n\t\t\t\t\t\tdeferred.resolveWith(elem, [animation]);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tanimation = deferred.promise({\r\n\t\t\t\t\t\telem: elem,\r\n\t\t\t\t\t\tprops: jQuery.extend({}, properties),\r\n\t\t\t\t\t\topts: jQuery.extend(true, {\r\n\t\t\t\t\t\t\tspecialEasing: {},\r\n\t\t\t\t\t\t\teasing: jQuery.easing._default\r\n\t\t\t\t\t\t}, options),\r\n\t\t\t\t\t\toriginalProperties: properties,\r\n\t\t\t\t\t\toriginalOptions: options,\r\n\t\t\t\t\t\tstartTime: fxNow || createFxNow(),\r\n\t\t\t\t\t\tduration: options.duration,\r\n\t\t\t\t\t\ttweens: [],\r\n\t\t\t\t\t\tcreateTween: function (prop, end) {\r\n\t\t\t\t\t\t\tvar tween = jQuery.Tween(elem, animation.opts, prop, end,\r\n\t\t\t\t\t\t\t\tanimation.opts.specialEasing[prop] || animation.opts.easing);\r\n\t\t\t\t\t\t\tanimation.tweens.push(tween);\r\n\t\t\t\t\t\t\treturn tween;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tstop: function (gotoEnd) {\r\n\t\t\t\t\t\t\tvar index = 0,\r\n\r\n\t\t\t\t\t\t\t\t// If we are going to the end, we want to run all the tweens\r\n\t\t\t\t\t\t\t\t// otherwise we skip this part\r\n\t\t\t\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\r\n\t\t\t\t\t\t\tif (stopped) {\r\n\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tstopped = true;\r\n\t\t\t\t\t\t\tfor (; index < length; index++) {\r\n\t\t\t\t\t\t\t\tanimation.tweens[index].run(1);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Resolve when we played the last frame; otherwise, reject\r\n\t\t\t\t\t\t\tif (gotoEnd) {\r\n\t\t\t\t\t\t\t\tdeferred.notifyWith(elem, [animation, 1, 0]);\r\n\t\t\t\t\t\t\t\tdeferred.resolveWith(elem, [animation, gotoEnd]);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tdeferred.rejectWith(elem, [animation, gotoEnd]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tprops = animation.props;\r\n\r\n\t\t\t\tpropFilter(props, animation.opts.specialEasing);\r\n\r\n\t\t\t\tfor (; index < length; index++) {\r\n\t\t\t\t\tresult = Animation.prefilters[index].call(animation, elem, props, animation.opts);\r\n\t\t\t\t\tif (result) {\r\n\t\t\t\t\t\tif (isFunction(result.stop)) {\r\n\t\t\t\t\t\t\tjQuery._queueHooks(animation.elem, animation.opts.queue).stop =\r\n\t\t\t\t\t\t\t\tresult.stop.bind(result);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tjQuery.map(props, createTween, animation);\r\n\r\n\t\t\t\tif (isFunction(animation.opts.start)) {\r\n\t\t\t\t\tanimation.opts.start.call(elem, animation);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Attach callbacks from options\r\n\t\t\t\tanimation\r\n\t\t\t\t\t.progress(animation.opts.progress)\r\n\t\t\t\t\t.done(animation.opts.done, animation.opts.complete)\r\n\t\t\t\t\t.fail(animation.opts.fail)\r\n\t\t\t\t\t.always(animation.opts.always);\r\n\r\n\t\t\t\tjQuery.fx.timer(\r\n\t\t\t\t\tjQuery.extend(tick, {\r\n\t\t\t\t\t\telem: elem,\r\n\t\t\t\t\t\tanim: animation,\r\n\t\t\t\t\t\tqueue: animation.opts.queue\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn animation;\r\n\t\t\t}\r\n\r\n\t\t\tjQuery.Animation = jQuery.extend(Animation, {\r\n\r\n\t\t\t\ttweeners: {\r\n\t\t\t\t\t\"*\": [function (prop, value) {\r\n\t\t\t\t\t\tvar tween = this.createTween(prop, value);\r\n\t\t\t\t\t\tadjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\r\n\t\t\t\t\t\treturn tween;\r\n\t\t\t\t\t}]\r\n\t\t\t\t},\r\n\r\n\t\t\t\ttweener: function (props, callback) {\r\n\t\t\t\t\tif (isFunction(props)) {\r\n\t\t\t\t\t\tcallback = props;\r\n\t\t\t\t\t\tprops = [\"*\"];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tprops = props.match(rnothtmlwhite);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar prop,\r\n\t\t\t\t\t\tindex = 0,\r\n\t\t\t\t\t\tlength = props.length;\r\n\r\n\t\t\t\t\tfor (; index < length; index++) {\r\n\t\t\t\t\t\tprop = props[index];\r\n\t\t\t\t\t\tAnimation.tweeners[prop] = Animation.tweeners[prop] || [];\r\n\t\t\t\t\t\tAnimation.tweeners[prop].unshift(callback);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\tprefilters: [defaultPrefilter],\r\n\r\n\t\t\t\tprefilter: function (callback, prepend) {\r\n\t\t\t\t\tif (prepend) {\r\n\t\t\t\t\t\tAnimation.prefilters.unshift(callback);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tAnimation.prefilters.push(callback);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tjQuery.speed = function (speed, easing, fn) {\r\n\t\t\t\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend({}, speed) : {\r\n\t\t\t\t\tcomplete: fn || !fn && easing ||\r\n\t\t\t\t\t\tisFunction(speed) && speed,\r\n\t\t\t\t\tduration: speed,\r\n\t\t\t\t\teasing: fn && easing || easing && !isFunction(easing) && easing\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// Go to the end state if fx are off\r\n\t\t\t\tif (jQuery.fx.off) {\r\n\t\t\t\t\topt.duration = 0;\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (typeof opt.duration !== \"number\") {\r\n\t\t\t\t\t\tif (opt.duration in jQuery.fx.speeds) {\r\n\t\t\t\t\t\t\topt.duration = jQuery.fx.speeds[opt.duration];\r\n\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\topt.duration = jQuery.fx.speeds._default;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Normalize opt.queue - true/undefined/null -> \"fx\"\r\n\t\t\t\tif (opt.queue == null || opt.queue === true) {\r\n\t\t\t\t\topt.queue = \"fx\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Queueing\r\n\t\t\t\topt.old = opt.complete;\r\n\r\n\t\t\t\topt.complete = function () {\r\n\t\t\t\t\tif (isFunction(opt.old)) {\r\n\t\t\t\t\t\topt.old.call(this);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (opt.queue) {\r\n\t\t\t\t\t\tjQuery.dequeue(this, opt.queue);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\treturn opt;\r\n\t\t\t};\r\n\r\n\t\t\tjQuery.fn.extend({\r\n\t\t\t\tfadeTo: function (speed, to, easing, callback) {\r\n\r\n\t\t\t\t\t// Show any hidden elements after setting opacity to 0\r\n\t\t\t\t\treturn this.filter(isHiddenWithinTree).css(\"opacity\", 0).show()\r\n\r\n\t\t\t\t\t\t// Animate to the value specified\r\n\t\t\t\t\t\t.end().animate({ opacity: to }, speed, easing, callback);\r\n\t\t\t\t},\r\n\t\t\t\tanimate: function (prop, speed, easing, callback) {\r\n\t\t\t\t\tvar empty = jQuery.isEmptyObject(prop),\r\n\t\t\t\t\t\toptall = jQuery.speed(speed, easing, callback),\r\n\t\t\t\t\t\tdoAnimation = function () {\r\n\r\n\t\t\t\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\r\n\t\t\t\t\t\t\tvar anim = Animation(this, jQuery.extend({}, prop), optall);\r\n\r\n\t\t\t\t\t\t\t// Empty animations, or finishing resolves immediately\r\n\t\t\t\t\t\t\tif (empty || dataPriv.get(this, \"finish\")) {\r\n\t\t\t\t\t\t\t\tanim.stop(true);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\tdoAnimation.finish = doAnimation;\r\n\r\n\t\t\t\t\treturn empty || optall.queue === false ?\r\n\t\t\t\t\t\tthis.each(doAnimation) :\r\n\t\t\t\t\t\tthis.queue(optall.queue, doAnimation);\r\n\t\t\t\t},\r\n\t\t\t\tstop: function (type, clearQueue, gotoEnd) {\r\n\t\t\t\t\tvar stopQueue = function (hooks) {\r\n\t\t\t\t\t\tvar stop = hooks.stop;\r\n\t\t\t\t\t\tdelete hooks.stop;\r\n\t\t\t\t\t\tstop(gotoEnd);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tif (typeof type !== \"string\") {\r\n\t\t\t\t\t\tgotoEnd = clearQueue;\r\n\t\t\t\t\t\tclearQueue = type;\r\n\t\t\t\t\t\ttype = undefined;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (clearQueue) {\r\n\t\t\t\t\t\tthis.queue(type || \"fx\", []);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\tvar dequeue = true,\r\n\t\t\t\t\t\t\tindex = type != null && type + \"queueHooks\",\r\n\t\t\t\t\t\t\ttimers = jQuery.timers,\r\n\t\t\t\t\t\t\tdata = dataPriv.get(this);\r\n\r\n\t\t\t\t\t\tif (index) {\r\n\t\t\t\t\t\t\tif (data[index] && data[index].stop) {\r\n\t\t\t\t\t\t\t\tstopQueue(data[index]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tfor (index in data) {\r\n\t\t\t\t\t\t\t\tif (data[index] && data[index].stop && rrun.test(index)) {\r\n\t\t\t\t\t\t\t\t\tstopQueue(data[index]);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfor (index = timers.length; index--;) {\r\n\t\t\t\t\t\t\tif (timers[index].elem === this &&\r\n\t\t\t\t\t\t\t\t(type == null || timers[index].queue === type)) {\r\n\r\n\t\t\t\t\t\t\t\ttimers[index].anim.stop(gotoEnd);\r\n\t\t\t\t\t\t\t\tdequeue = false;\r\n\t\t\t\t\t\t\t\ttimers.splice(index, 1);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Start the next in the queue if the last step wasn't forced.\r\n\t\t\t\t\t\t// Timers currently will call their complete callbacks, which\r\n\t\t\t\t\t\t// will dequeue but only if they were gotoEnd.\r\n\t\t\t\t\t\tif (dequeue || !gotoEnd) {\r\n\t\t\t\t\t\t\tjQuery.dequeue(this, type);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\tfinish: function (type) {\r\n\t\t\t\t\tif (type !== false) {\r\n\t\t\t\t\t\ttype = type || \"fx\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\tvar index,\r\n\t\t\t\t\t\t\tdata = dataPriv.get(this),\r\n\t\t\t\t\t\t\tqueue = data[type + \"queue\"],\r\n\t\t\t\t\t\t\thooks = data[type + \"queueHooks\"],\r\n\t\t\t\t\t\t\ttimers = jQuery.timers,\r\n\t\t\t\t\t\t\tlength = queue ? queue.length : 0;\r\n\r\n\t\t\t\t\t\t// Enable finishing flag on private data\r\n\t\t\t\t\t\tdata.finish = true;\r\n\r\n\t\t\t\t\t\t// Empty the queue first\r\n\t\t\t\t\t\tjQuery.queue(this, type, []);\r\n\r\n\t\t\t\t\t\tif (hooks && hooks.stop) {\r\n\t\t\t\t\t\t\thooks.stop.call(this, true);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Look for any active animations, and finish them\r\n\t\t\t\t\t\tfor (index = timers.length; index--;) {\r\n\t\t\t\t\t\t\tif (timers[index].elem === this && timers[index].queue === type) {\r\n\t\t\t\t\t\t\t\ttimers[index].anim.stop(true);\r\n\t\t\t\t\t\t\t\ttimers.splice(index, 1);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Look for any animations in the old queue and finish them\r\n\t\t\t\t\t\tfor (index = 0; index < length; index++) {\r\n\t\t\t\t\t\t\tif (queue[index] && queue[index].finish) {\r\n\t\t\t\t\t\t\t\tqueue[index].finish.call(this);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Turn off finishing flag\r\n\t\t\t\t\t\tdelete data.finish;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tjQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\r\n\t\t\t\tvar cssFn = jQuery.fn[name];\r\n\t\t\t\tjQuery.fn[name] = function (speed, easing, callback) {\r\n\t\t\t\t\treturn speed == null || typeof speed === \"boolean\" ?\r\n\t\t\t\t\t\tcssFn.apply(this, arguments) :\r\n\t\t\t\t\t\tthis.animate(genFx(name, true), speed, easing, callback);\r\n\t\t\t\t};\r\n\t\t\t});\r\n\r\n\t\t\t// Generate shortcuts for custom animations\r\n\t\t\tjQuery.each({\r\n\t\t\t\tslideDown: genFx(\"show\"),\r\n\t\t\t\tslideUp: genFx(\"hide\"),\r\n\t\t\t\tslideToggle: genFx(\"toggle\"),\r\n\t\t\t\tfadeIn: { opacity: \"show\" },\r\n\t\t\t\tfadeOut: { opacity: \"hide\" },\r\n\t\t\t\tfadeToggle: { opacity: \"toggle\" }\r\n\t\t\t}, function (name, props) {\r\n\t\t\t\tjQuery.fn[name] = function (speed, easing, callback) {\r\n\t\t\t\t\treturn this.animate(props, speed, easing, callback);\r\n\t\t\t\t};\r\n\t\t\t});\r\n\r\n\t\t\tjQuery.timers = [];\r\n\t\t\tjQuery.fx.tick = function () {\r\n\t\t\t\tvar timer,\r\n\t\t\t\t\ti = 0,\r\n\t\t\t\t\ttimers = jQuery.timers;\r\n\r\n\t\t\t\tfxNow = Date.now();\r\n\r\n\t\t\t\tfor (; i < timers.length; i++) {\r\n\t\t\t\t\ttimer = timers[i];\r\n\r\n\t\t\t\t\t// Run the timer and safely remove it when done (allowing for external removal)\r\n\t\t\t\t\tif (!timer() && timers[i] === timer) {\r\n\t\t\t\t\t\ttimers.splice(i--, 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!timers.length) {\r\n\t\t\t\t\tjQuery.fx.stop();\r\n\t\t\t\t}\r\n\t\t\t\tfxNow = undefined;\r\n\t\t\t};\r\n\r\n\t\t\tjQuery.fx.timer = function (timer) {\r\n\t\t\t\tjQuery.timers.push(timer);\r\n\t\t\t\tjQuery.fx.start();\r\n\t\t\t};\r\n\r\n\t\t\tjQuery.fx.interval = 13;\r\n\t\t\tjQuery.fx.start = function () {\r\n\t\t\t\tif (inProgress) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinProgress = true;\r\n\t\t\t\tschedule();\r\n\t\t\t};\r\n\r\n\t\t\tjQuery.fx.stop = function () {\r\n\t\t\t\tinProgress = null;\r\n\t\t\t};\r\n\r\n\t\t\tjQuery.fx.speeds = {\r\n\t\t\t\tslow: 600,\r\n\t\t\t\tfast: 200,\r\n\r\n\t\t\t\t// Default speed\r\n\t\t\t\t_default: 400\r\n\t\t\t};\r\n\r\n\r\n\t\t\t// Based off of the plugin by Clint Helfers, with permission.\r\n\t\t\t// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\r\n\t\t\tjQuery.fn.delay = function (time, type) {\r\n\t\t\t\ttime = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\r\n\t\t\t\ttype = type || \"fx\";\r\n\r\n\t\t\t\treturn this.queue(type, function (next, hooks) {\r\n\t\t\t\t\tvar timeout = window.setTimeout(next, time);\r\n\t\t\t\t\thooks.stop = function () {\r\n\t\t\t\t\t\twindow.clearTimeout(timeout);\r\n\t\t\t\t\t};\r\n\t\t\t\t});\r\n\t\t\t};\r\n\r\n\r\n\t\t\t(function () {\r\n\t\t\t\tvar input = document.createElement(\"input\"),\r\n\t\t\t\t\tselect = document.createElement(\"select\"),\r\n\t\t\t\t\topt = select.appendChild(document.createElement(\"option\"));\r\n\r\n\t\t\t\tinput.type = \"checkbox\";\r\n\r\n\t\t\t\t// Support: Android <=4.3 only\r\n\t\t\t\t// Default value for a checkbox should be \"on\"\r\n\t\t\t\tsupport.checkOn = input.value !== \"\";\r\n\r\n\t\t\t\t// Support: IE <=11 only\r\n\t\t\t\t// Must access selectedIndex to make default options select\r\n\t\t\t\tsupport.optSelected = opt.selected;\r\n\r\n\t\t\t\t// Support: IE <=11 only\r\n\t\t\t\t// An input loses its value after becoming a radio\r\n\t\t\t\tinput = document.createElement(\"input\");\r\n\t\t\t\tinput.value = \"t\";\r\n\t\t\t\tinput.type = \"radio\";\r\n\t\t\t\tsupport.radioValue = input.value === \"t\";\r\n\t\t\t})();\r\n\r\n\r\n\t\t\tvar boolHook,\r\n\t\t\t\tattrHandle = jQuery.expr.attrHandle;\r\n\r\n\t\t\tjQuery.fn.extend({\r\n\t\t\t\tattr: function (name, value) {\r\n\t\t\t\t\treturn access(this, jQuery.attr, name, value, arguments.length > 1);\r\n\t\t\t\t},\r\n\r\n\t\t\t\tremoveAttr: function (name) {\r\n\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\tjQuery.removeAttr(this, name);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tjQuery.extend({\r\n\t\t\t\tattr: function (elem, name, value) {\r\n\t\t\t\t\tvar ret, hooks,\r\n\t\t\t\t\t\tnType = elem.nodeType;\r\n\r\n\t\t\t\t\t// Don't get/set attributes on text, comment and attribute nodes\r\n\t\t\t\t\tif (nType === 3 || nType === 8 || nType === 2) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Fallback to prop when attributes are not supported\r\n\t\t\t\t\tif (typeof elem.getAttribute === \"undefined\") {\r\n\t\t\t\t\t\treturn jQuery.prop(elem, name, value);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Attribute hooks are determined by the lowercase version\r\n\t\t\t\t\t// Grab necessary hook if one is defined\r\n\t\t\t\t\tif (nType !== 1 || !jQuery.isXMLDoc(elem)) {\r\n\t\t\t\t\t\thooks = jQuery.attrHooks[name.toLowerCase()] ||\r\n\t\t\t\t\t\t\t(jQuery.expr.match.bool.test(name) ? boolHook : undefined);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (value !== undefined) {\r\n\t\t\t\t\t\tif (value === null) {\r\n\t\t\t\t\t\t\tjQuery.removeAttr(elem, name);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (hooks && \"set\" in hooks &&\r\n\t\t\t\t\t\t\t(ret = hooks.set(elem, value, name)) !== undefined) {\r\n\t\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\telem.setAttribute(name, value + \"\");\r\n\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\r\n\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tret = jQuery.find.attr(elem, name);\r\n\r\n\t\t\t\t\t// Non-existent attributes return null, we normalize to undefined\r\n\t\t\t\t\treturn ret == null ? undefined : ret;\r\n\t\t\t\t},\r\n\r\n\t\t\t\tattrHooks: {\r\n\t\t\t\t\ttype: {\r\n\t\t\t\t\t\tset: function (elem, value) {\r\n\t\t\t\t\t\t\tif (!support.radioValue && value === \"radio\" &&\r\n\t\t\t\t\t\t\t\tnodeName(elem, \"input\")) {\r\n\t\t\t\t\t\t\t\tvar val = elem.value;\r\n\t\t\t\t\t\t\t\telem.setAttribute(\"type\", value);\r\n\t\t\t\t\t\t\t\tif (val) {\r\n\t\t\t\t\t\t\t\t\telem.value = val;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\tremoveAttr: function (elem, value) {\r\n\t\t\t\t\tvar name,\r\n\t\t\t\t\t\ti = 0,\r\n\r\n\t\t\t\t\t\t// Attribute names can contain non-HTML whitespace characters\r\n\t\t\t\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\r\n\t\t\t\t\t\tattrNames = value && value.match(rnothtmlwhite);\r\n\r\n\t\t\t\t\tif (attrNames && elem.nodeType === 1) {\r\n\t\t\t\t\t\twhile ((name = attrNames[i++])) {\r\n\t\t\t\t\t\t\telem.removeAttribute(name);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// Hooks for boolean attributes\r\n\t\t\tboolHook = {\r\n\t\t\t\tset: function (elem, value, name) {\r\n\t\t\t\t\tif (value === false) {\r\n\r\n\t\t\t\t\t\t// Remove boolean attributes when set to false\r\n\t\t\t\t\t\tjQuery.removeAttr(elem, name);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\telem.setAttribute(name, name);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn name;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tjQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\r\n\t\t\t\tvar getter = attrHandle[name] || jQuery.find.attr;\r\n\r\n\t\t\t\tattrHandle[name] = function (elem, name, isXML) {\r\n\t\t\t\t\tvar ret, handle,\r\n\t\t\t\t\t\tlowercaseName = name.toLowerCase();\r\n\r\n\t\t\t\t\tif (!isXML) {\r\n\r\n\t\t\t\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\r\n\t\t\t\t\t\thandle = attrHandle[lowercaseName];\r\n\t\t\t\t\t\tattrHandle[lowercaseName] = ret;\r\n\t\t\t\t\t\tret = getter(elem, name, isXML) != null ?\r\n\t\t\t\t\t\t\tlowercaseName :\r\n\t\t\t\t\t\t\tnull;\r\n\t\t\t\t\t\tattrHandle[lowercaseName] = handle;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn ret;\r\n\t\t\t\t};\r\n\t\t\t});\r\n\r\n\r\n\r\n\r\n\t\t\tvar rfocusable = /^(?:input|select|textarea|button)$/i,\r\n\t\t\t\trclickable = /^(?:a|area)$/i;\r\n\r\n\t\t\tjQuery.fn.extend({\r\n\t\t\t\tprop: function (name, value) {\r\n\t\t\t\t\treturn access(this, jQuery.prop, name, value, arguments.length > 1);\r\n\t\t\t\t},\r\n\r\n\t\t\t\tremoveProp: function (name) {\r\n\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\tdelete this[jQuery.propFix[name] || name];\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tjQuery.extend({\r\n\t\t\t\tprop: function (elem, name, value) {\r\n\t\t\t\t\tvar ret, hooks,\r\n\t\t\t\t\t\tnType = elem.nodeType;\r\n\r\n\t\t\t\t\t// Don't get/set properties on text, comment and attribute nodes\r\n\t\t\t\t\tif (nType === 3 || nType === 8 || nType === 2) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (nType !== 1 || !jQuery.isXMLDoc(elem)) {\r\n\r\n\t\t\t\t\t\t// Fix name and attach hooks\r\n\t\t\t\t\t\tname = jQuery.propFix[name] || name;\r\n\t\t\t\t\t\thooks = jQuery.propHooks[name];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (value !== undefined) {\r\n\t\t\t\t\t\tif (hooks && \"set\" in hooks &&\r\n\t\t\t\t\t\t\t(ret = hooks.set(elem, value, name)) !== undefined) {\r\n\t\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn (elem[name] = value);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\r\n\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn elem[name];\r\n\t\t\t\t},\r\n\r\n\t\t\t\tpropHooks: {\r\n\t\t\t\t\ttabIndex: {\r\n\t\t\t\t\t\tget: function (elem) {\r\n\r\n\t\t\t\t\t\t\t// Support: IE <=9 - 11 only\r\n\t\t\t\t\t\t\t// elem.tabIndex doesn't always return the\r\n\t\t\t\t\t\t\t// correct value when it hasn't been explicitly set\r\n\t\t\t\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\r\n\t\t\t\t\t\t\t// Use proper attribute retrieval(#12072)\r\n\t\t\t\t\t\t\tvar tabindex = jQuery.find.attr(elem, \"tabindex\");\r\n\r\n\t\t\t\t\t\t\tif (tabindex) {\r\n\t\t\t\t\t\t\t\treturn parseInt(tabindex, 10);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\trfocusable.test(elem.nodeName) ||\r\n\t\t\t\t\t\t\t\trclickable.test(elem.nodeName) &&\r\n\t\t\t\t\t\t\t\telem.href\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn -1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\tpropFix: {\r\n\t\t\t\t\t\"for\": \"htmlFor\",\r\n\t\t\t\t\t\"class\": \"className\"\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// Support: IE <=11 only\r\n\t\t\t// Accessing the selectedIndex property\r\n\t\t\t// forces the browser to respect setting selected\r\n\t\t\t// on the option\r\n\t\t\t// The getter ensures a default option is selected\r\n\t\t\t// when in an optgroup\r\n\t\t\t// eslint rule \"no-unused-expressions\" is disabled for this code\r\n\t\t\t// since it considers such accessions noop\r\n\t\t\tif (!support.optSelected) {\r\n\t\t\t\tjQuery.propHooks.selected = {\r\n\t\t\t\t\tget: function (elem) {\r\n\r\n\t\t\t\t\t\t/* eslint no-unused-expressions: \"off\" */\r\n\r\n\t\t\t\t\t\tvar parent = elem.parentNode;\r\n\t\t\t\t\t\tif (parent && parent.parentNode) {\r\n\t\t\t\t\t\t\tparent.parentNode.selectedIndex;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tset: function (elem) {\r\n\r\n\t\t\t\t\t\t/* eslint no-unused-expressions: \"off\" */\r\n\r\n\t\t\t\t\t\tvar parent = elem.parentNode;\r\n\t\t\t\t\t\tif (parent) {\r\n\t\t\t\t\t\t\tparent.selectedIndex;\r\n\r\n\t\t\t\t\t\t\tif (parent.parentNode) {\r\n\t\t\t\t\t\t\t\tparent.parentNode.selectedIndex;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tjQuery.each([\r\n\t\t\t\t\"tabIndex\",\r\n\t\t\t\t\"readOnly\",\r\n\t\t\t\t\"maxLength\",\r\n\t\t\t\t\"cellSpacing\",\r\n\t\t\t\t\"cellPadding\",\r\n\t\t\t\t\"rowSpan\",\r\n\t\t\t\t\"colSpan\",\r\n\t\t\t\t\"useMap\",\r\n\t\t\t\t\"frameBorder\",\r\n\t\t\t\t\"contentEditable\"\r\n\t\t\t], function () {\r\n\t\t\t\tjQuery.propFix[this.toLowerCase()] = this;\r\n\t\t\t});\r\n\r\n\r\n\r\n\r\n\t\t\t// Strip and collapse whitespace according to HTML spec\r\n\t\t\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\r\n\t\t\tfunction stripAndCollapse(value) {\r\n\t\t\t\tvar tokens = value.match(rnothtmlwhite) || [];\r\n\t\t\t\treturn tokens.join(\" \");\r\n\t\t\t}\r\n\r\n\r\n\t\t\tfunction getClass(elem) {\r\n\t\t\t\treturn elem.getAttribute && elem.getAttribute(\"class\") || \"\";\r\n\t\t\t}\r\n\r\n\t\t\tfunction classesToArray(value) {\r\n\t\t\t\tif (Array.isArray(value)) {\r\n\t\t\t\t\treturn value;\r\n\t\t\t\t}\r\n\t\t\t\tif (typeof value === \"string\") {\r\n\t\t\t\t\treturn value.match(rnothtmlwhite) || [];\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\r\n\t\t\tjQuery.fn.extend({\r\n\t\t\t\taddClass: function (value) {\r\n\t\t\t\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\r\n\t\t\t\t\t\ti = 0;\r\n\r\n\t\t\t\t\tif (isFunction(value)) {\r\n\t\t\t\t\t\treturn this.each(function (j) {\r\n\t\t\t\t\t\t\tjQuery(this).addClass(value.call(this, j, getClass(this)));\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tclasses = classesToArray(value);\r\n\r\n\t\t\t\t\tif (classes.length) {\r\n\t\t\t\t\t\twhile ((elem = this[i++])) {\r\n\t\t\t\t\t\t\tcurValue = getClass(elem);\r\n\t\t\t\t\t\t\tcur = elem.nodeType === 1 && (\" \" + stripAndCollapse(curValue) + \" \");\r\n\r\n\t\t\t\t\t\t\tif (cur) {\r\n\t\t\t\t\t\t\t\tj = 0;\r\n\t\t\t\t\t\t\t\twhile ((clazz = classes[j++])) {\r\n\t\t\t\t\t\t\t\t\tif (cur.indexOf(\" \" + clazz + \" \") < 0) {\r\n\t\t\t\t\t\t\t\t\t\tcur += clazz + \" \";\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\r\n\t\t\t\t\t\t\t\tfinalValue = stripAndCollapse(cur);\r\n\t\t\t\t\t\t\t\tif (curValue !== finalValue) {\r\n\t\t\t\t\t\t\t\t\telem.setAttribute(\"class\", finalValue);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t},\r\n\r\n\t\t\t\tremoveClass: function (value) {\r\n\t\t\t\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\r\n\t\t\t\t\t\ti = 0;\r\n\r\n\t\t\t\t\tif (isFunction(value)) {\r\n\t\t\t\t\t\treturn this.each(function (j) {\r\n\t\t\t\t\t\t\tjQuery(this).removeClass(value.call(this, j, getClass(this)));\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!arguments.length) {\r\n\t\t\t\t\t\treturn this.attr(\"class\", \"\");\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tclasses = classesToArray(value);\r\n\r\n\t\t\t\t\tif (classes.length) {\r\n\t\t\t\t\t\twhile ((elem = this[i++])) {\r\n\t\t\t\t\t\t\tcurValue = getClass(elem);\r\n\r\n\t\t\t\t\t\t\t// This expression is here for better compressibility (see addClass)\r\n\t\t\t\t\t\t\tcur = elem.nodeType === 1 && (\" \" + stripAndCollapse(curValue) + \" \");\r\n\r\n\t\t\t\t\t\t\tif (cur) {\r\n\t\t\t\t\t\t\t\tj = 0;\r\n\t\t\t\t\t\t\t\twhile ((clazz = classes[j++])) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Remove *all* instances\r\n\t\t\t\t\t\t\t\t\twhile (cur.indexOf(\" \" + clazz + \" \") > -1) {\r\n\t\t\t\t\t\t\t\t\t\tcur = cur.replace(\" \" + clazz + \" \", \" \");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\r\n\t\t\t\t\t\t\t\tfinalValue = stripAndCollapse(cur);\r\n\t\t\t\t\t\t\t\tif (curValue !== finalValue) {\r\n\t\t\t\t\t\t\t\t\telem.setAttribute(\"class\", finalValue);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t},\r\n\r\n\t\t\t\ttoggleClass: function (value, stateVal) {\r\n\t\t\t\t\tvar type = typeof value,\r\n\t\t\t\t\t\tisValidValue = type === \"string\" || Array.isArray(value);\r\n\r\n\t\t\t\t\tif (typeof stateVal === \"boolean\" && isValidValue) {\r\n\t\t\t\t\t\treturn stateVal ? this.addClass(value) : this.removeClass(value);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (isFunction(value)) {\r\n\t\t\t\t\t\treturn this.each(function (i) {\r\n\t\t\t\t\t\t\tjQuery(this).toggleClass(\r\n\t\t\t\t\t\t\t\tvalue.call(this, i, getClass(this), stateVal),\r\n\t\t\t\t\t\t\t\tstateVal\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\tvar className, i, self, classNames;\r\n\r\n\t\t\t\t\t\tif (isValidValue) {\r\n\r\n\t\t\t\t\t\t\t// Toggle individual class names\r\n\t\t\t\t\t\t\ti = 0;\r\n\t\t\t\t\t\t\tself = jQuery(this);\r\n\t\t\t\t\t\t\tclassNames = classesToArray(value);\r\n\r\n\t\t\t\t\t\t\twhile ((className = classNames[i++])) {\r\n\r\n\t\t\t\t\t\t\t\t// Check each className given, space separated list\r\n\t\t\t\t\t\t\t\tif (self.hasClass(className)) {\r\n\t\t\t\t\t\t\t\t\tself.removeClass(className);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tself.addClass(className);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Toggle whole class name\r\n\t\t\t\t\t\t} else if (value === undefined || type === \"boolean\") {\r\n\t\t\t\t\t\t\tclassName = getClass(this);\r\n\t\t\t\t\t\t\tif (className) {\r\n\r\n\t\t\t\t\t\t\t\t// Store className if set\r\n\t\t\t\t\t\t\t\tdataPriv.set(this, \"__className__\", className);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// If the element has a class name or if we're passed `false`,\r\n\t\t\t\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\r\n\t\t\t\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\r\n\t\t\t\t\t\t\t// falling back to the empty string if nothing was stored.\r\n\t\t\t\t\t\t\tif (this.setAttribute) {\r\n\t\t\t\t\t\t\t\tthis.setAttribute(\"class\",\r\n\t\t\t\t\t\t\t\t\tclassName || value === false ?\r\n\t\t\t\t\t\t\t\t\t\t\"\" :\r\n\t\t\t\t\t\t\t\t\t\tdataPriv.get(this, \"__className__\") || \"\"\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\r\n\t\t\t\thasClass: function (selector) {\r\n\t\t\t\t\tvar className, elem,\r\n\t\t\t\t\t\ti = 0;\r\n\r\n\t\t\t\t\tclassName = \" \" + selector + \" \";\r\n\t\t\t\t\twhile ((elem = this[i++])) {\r\n\t\t\t\t\t\tif (elem.nodeType === 1 &&\r\n\t\t\t\t\t\t\t(\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\r\n\r\n\t\t\tvar rreturn = /\\r/g;\r\n\r\n\t\t\tjQuery.fn.extend({\r\n\t\t\t\tval: function (value) {\r\n\t\t\t\t\tvar hooks, ret, valueIsFunction,\r\n\t\t\t\t\t\telem = this[0];\r\n\r\n\t\t\t\t\tif (!arguments.length) {\r\n\t\t\t\t\t\tif (elem) {\r\n\t\t\t\t\t\t\thooks = jQuery.valHooks[elem.type] ||\r\n\t\t\t\t\t\t\t\tjQuery.valHooks[elem.nodeName.toLowerCase()];\r\n\r\n\t\t\t\t\t\t\tif (hooks &&\r\n\t\t\t\t\t\t\t\t\"get\" in hooks &&\r\n\t\t\t\t\t\t\t\t(ret = hooks.get(elem, \"value\")) !== undefined\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tret = elem.value;\r\n\r\n\t\t\t\t\t\t\t// Handle most common string cases\r\n\t\t\t\t\t\t\tif (typeof ret === \"string\") {\r\n\t\t\t\t\t\t\t\treturn ret.replace(rreturn, \"\");\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Handle cases where value is null/undef or number\r\n\t\t\t\t\t\t\treturn ret == null ? \"\" : ret;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvalueIsFunction = isFunction(value);\r\n\r\n\t\t\t\t\treturn this.each(function (i) {\r\n\t\t\t\t\t\tvar val;\r\n\r\n\t\t\t\t\t\tif (this.nodeType !== 1) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (valueIsFunction) {\r\n\t\t\t\t\t\t\tval = value.call(this, i, jQuery(this).val());\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tval = value;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Treat null/undefined as \"\"; convert numbers to string\r\n\t\t\t\t\t\tif (val == null) {\r\n\t\t\t\t\t\t\tval = \"\";\r\n\r\n\t\t\t\t\t\t} else if (typeof val === \"number\") {\r\n\t\t\t\t\t\t\tval += \"\";\r\n\r\n\t\t\t\t\t\t} else if (Array.isArray(val)) {\r\n\t\t\t\t\t\t\tval = jQuery.map(val, function (value) {\r\n\t\t\t\t\t\t\t\treturn value == null ? \"\" : value + \"\";\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\thooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()];\r\n\r\n\t\t\t\t\t\t// If set returns undefined, fall back to normal setting\r\n\t\t\t\t\t\tif (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\r\n\t\t\t\t\t\t\tthis.value = val;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tjQuery.extend({\r\n\t\t\t\tvalHooks: {\r\n\t\t\t\t\toption: {\r\n\t\t\t\t\t\tget: function (elem) {\r\n\r\n\t\t\t\t\t\t\tvar val = jQuery.find.attr(elem, \"value\");\r\n\t\t\t\t\t\t\treturn val != null ?\r\n\t\t\t\t\t\t\t\tval :\r\n\r\n\t\t\t\t\t\t\t\t// Support: IE <=10 - 11 only\r\n\t\t\t\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\r\n\t\t\t\t\t\t\t\t// Strip and collapse whitespace\r\n\t\t\t\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\r\n\t\t\t\t\t\t\t\tstripAndCollapse(jQuery.text(elem));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tselect: {\r\n\t\t\t\t\t\tget: function (elem) {\r\n\t\t\t\t\t\t\tvar value, option, i,\r\n\t\t\t\t\t\t\t\toptions = elem.options,\r\n\t\t\t\t\t\t\t\tindex = elem.selectedIndex,\r\n\t\t\t\t\t\t\t\tone = elem.type === \"select-one\",\r\n\t\t\t\t\t\t\t\tvalues = one ? null : [],\r\n\t\t\t\t\t\t\t\tmax = one ? index + 1 : options.length;\r\n\r\n\t\t\t\t\t\t\tif (index < 0) {\r\n\t\t\t\t\t\t\t\ti = max;\r\n\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\ti = one ? index : 0;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Loop through all the selected options\r\n\t\t\t\t\t\t\tfor (; i < max; i++) {\r\n\t\t\t\t\t\t\t\toption = options[i];\r\n\r\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\r\n\t\t\t\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\r\n\t\t\t\t\t\t\t\tif ((option.selected || i === index) &&\r\n\r\n\t\t\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\r\n\t\t\t\t\t\t\t\t\t!option.disabled &&\r\n\t\t\t\t\t\t\t\t\t(!option.parentNode.disabled ||\r\n\t\t\t\t\t\t\t\t\t\t!nodeName(option.parentNode, \"optgroup\"))) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Get the specific value for the option\r\n\t\t\t\t\t\t\t\t\tvalue = jQuery(option).val();\r\n\r\n\t\t\t\t\t\t\t\t\t// We don't need an array for one selects\r\n\t\t\t\t\t\t\t\t\tif (one) {\r\n\t\t\t\t\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Multi-Selects return an array\r\n\t\t\t\t\t\t\t\t\tvalues.push(value);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn values;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tset: function (elem, value) {\r\n\t\t\t\t\t\t\tvar optionSet, option,\r\n\t\t\t\t\t\t\t\toptions = elem.options,\r\n\t\t\t\t\t\t\t\tvalues = jQuery.makeArray(value),\r\n\t\t\t\t\t\t\t\ti = options.length;\r\n\r\n\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\toption = options[i];\r\n\r\n\t\t\t\t\t\t\t\t/* eslint-disable no-cond-assign */\r\n\r\n\t\t\t\t\t\t\t\tif (option.selected =\r\n\t\t\t\t\t\t\t\t\tjQuery.inArray(jQuery.valHooks.option.get(option), values) > -1\r\n\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\toptionSet = true;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/* eslint-enable no-cond-assign */\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Force browsers to behave consistently when non-matching value is set\r\n\t\t\t\t\t\t\tif (!optionSet) {\r\n\t\t\t\t\t\t\t\telem.selectedIndex = -1;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn values;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// Radios and checkboxes getter/setter\r\n\t\t\tjQuery.each([\"radio\", \"checkbox\"], function () {\r\n\t\t\t\tjQuery.valHooks[this] = {\r\n\t\t\t\t\tset: function (elem, value) {\r\n\t\t\t\t\t\tif (Array.isArray(value)) {\r\n\t\t\t\t\t\t\treturn (elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\tif (!support.checkOn) {\r\n\t\t\t\t\tjQuery.valHooks[this].get = function (elem) {\r\n\t\t\t\t\t\treturn elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\r\n\r\n\t\t\t// Return jQuery for attributes-only inclusion\r\n\r\n\r\n\t\t\tsupport.focusin = \"onfocusin\" in window;\r\n\r\n\r\n\t\t\tvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\r\n\t\t\t\tstopPropagationCallback = function (e) {\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t};\r\n\r\n\t\t\tjQuery.extend(jQuery.event, {\r\n\r\n\t\t\t\ttrigger: function (event, data, elem, onlyHandlers) {\r\n\r\n\t\t\t\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\r\n\t\t\t\t\t\teventPath = [elem || document],\r\n\t\t\t\t\t\ttype = hasOwn.call(event, \"type\") ? event.type : event,\r\n\t\t\t\t\t\tnamespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\r\n\r\n\t\t\t\t\tcur = lastElement = tmp = elem = elem || document;\r\n\r\n\t\t\t\t\t// Don't do events on text and comment nodes\r\n\t\t\t\t\tif (elem.nodeType === 3 || elem.nodeType === 8) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\r\n\t\t\t\t\tif (rfocusMorph.test(type + jQuery.event.triggered)) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (type.indexOf(\".\") > -1) {\r\n\r\n\t\t\t\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\r\n\t\t\t\t\t\tnamespaces = type.split(\".\");\r\n\t\t\t\t\t\ttype = namespaces.shift();\r\n\t\t\t\t\t\tnamespaces.sort();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tontype = type.indexOf(\":\") < 0 && \"on\" + type;\r\n\r\n\t\t\t\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\r\n\t\t\t\t\tevent = event[jQuery.expando] ?\r\n\t\t\t\t\t\tevent :\r\n\t\t\t\t\t\tnew jQuery.Event(type, typeof event === \"object\" && event);\r\n\r\n\t\t\t\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\r\n\t\t\t\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\r\n\t\t\t\t\tevent.namespace = namespaces.join(\".\");\r\n\t\t\t\t\tevent.rnamespace = event.namespace ?\r\n\t\t\t\t\t\tnew RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") :\r\n\t\t\t\t\t\tnull;\r\n\r\n\t\t\t\t\t// Clean up the event in case it is being reused\r\n\t\t\t\t\tevent.result = undefined;\r\n\t\t\t\t\tif (!event.target) {\r\n\t\t\t\t\t\tevent.target = elem;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Clone any incoming data and prepend the event, creating the handler arg list\r\n\t\t\t\t\tdata = data == null ?\r\n\t\t\t\t\t\t[event] :\r\n\t\t\t\t\t\tjQuery.makeArray(data, [event]);\r\n\r\n\t\t\t\t\t// Allow special events to draw outside the lines\r\n\t\t\t\t\tspecial = jQuery.event.special[type] || {};\r\n\t\t\t\t\tif (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\r\n\t\t\t\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\r\n\t\t\t\t\tif (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\r\n\r\n\t\t\t\t\t\tbubbleType = special.delegateType || type;\r\n\t\t\t\t\t\tif (!rfocusMorph.test(bubbleType + type)) {\r\n\t\t\t\t\t\t\tcur = cur.parentNode;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfor (; cur; cur = cur.parentNode) {\r\n\t\t\t\t\t\t\teventPath.push(cur);\r\n\t\t\t\t\t\t\ttmp = cur;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\r\n\t\t\t\t\t\tif (tmp === (elem.ownerDocument || document)) {\r\n\t\t\t\t\t\t\teventPath.push(tmp.defaultView || tmp.parentWindow || window);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Fire handlers on the event path\r\n\t\t\t\t\ti = 0;\r\n\t\t\t\t\twhile ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\r\n\t\t\t\t\t\tlastElement = cur;\r\n\t\t\t\t\t\tevent.type = i > 1 ?\r\n\t\t\t\t\t\t\tbubbleType :\r\n\t\t\t\t\t\t\tspecial.bindType || type;\r\n\r\n\t\t\t\t\t\t// jQuery handler\r\n\t\t\t\t\t\thandle = (\r\n\t\t\t\t\t\t\tdataPriv.get(cur, \"events\") || Object.create(null)\r\n\t\t\t\t\t\t)[event.type] &&\r\n\t\t\t\t\t\t\tdataPriv.get(cur, \"handle\");\r\n\t\t\t\t\t\tif (handle) {\r\n\t\t\t\t\t\t\thandle.apply(cur, data);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Native handler\r\n\t\t\t\t\t\thandle = ontype && cur[ontype];\r\n\t\t\t\t\t\tif (handle && handle.apply && acceptData(cur)) {\r\n\t\t\t\t\t\t\tevent.result = handle.apply(cur, data);\r\n\t\t\t\t\t\t\tif (event.result === false) {\r\n\t\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tevent.type = type;\r\n\r\n\t\t\t\t\t// If nobody prevented the default action, do it now\r\n\t\t\t\t\tif (!onlyHandlers && !event.isDefaultPrevented()) {\r\n\r\n\t\t\t\t\t\tif ((!special._default ||\r\n\t\t\t\t\t\t\tspecial._default.apply(eventPath.pop(), data) === false) &&\r\n\t\t\t\t\t\t\tacceptData(elem)) {\r\n\r\n\t\t\t\t\t\t\t// Call a native DOM method on the target with the same name as the event.\r\n\t\t\t\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\r\n\t\t\t\t\t\t\tif (ontype && isFunction(elem[type]) && !isWindow(elem)) {\r\n\r\n\t\t\t\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\r\n\t\t\t\t\t\t\t\ttmp = elem[ontype];\r\n\r\n\t\t\t\t\t\t\t\tif (tmp) {\r\n\t\t\t\t\t\t\t\t\telem[ontype] = null;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\r\n\t\t\t\t\t\t\t\tjQuery.event.triggered = type;\r\n\r\n\t\t\t\t\t\t\t\tif (event.isPropagationStopped()) {\r\n\t\t\t\t\t\t\t\t\tlastElement.addEventListener(type, stopPropagationCallback);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\telem[type]();\r\n\r\n\t\t\t\t\t\t\t\tif (event.isPropagationStopped()) {\r\n\t\t\t\t\t\t\t\t\tlastElement.removeEventListener(type, stopPropagationCallback);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tjQuery.event.triggered = undefined;\r\n\r\n\t\t\t\t\t\t\t\tif (tmp) {\r\n\t\t\t\t\t\t\t\t\telem[ontype] = tmp;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn event.result;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Piggyback on a donor event to simulate a different one\r\n\t\t\t\t// Used only for `focus(in | out)` events\r\n\t\t\t\tsimulate: function (type, elem, event) {\r\n\t\t\t\t\tvar e = jQuery.extend(\r\n\t\t\t\t\t\tnew jQuery.Event(),\r\n\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttype: type,\r\n\t\t\t\t\t\t\tisSimulated: true\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\tjQuery.event.trigger(e, null, elem);\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\t\t\tjQuery.fn.extend({\r\n\r\n\t\t\t\ttrigger: function (type, data) {\r\n\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\tjQuery.event.trigger(type, data, this);\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\ttriggerHandler: function (type, data) {\r\n\t\t\t\t\tvar elem = this[0];\r\n\t\t\t\t\tif (elem) {\r\n\t\t\t\t\t\treturn jQuery.event.trigger(type, data, elem, true);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\t\t// Support: Firefox <=44\r\n\t\t\t// Firefox doesn't have focus(in | out) events\r\n\t\t\t// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\r\n\t\t\t//\r\n\t\t\t// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\r\n\t\t\t// focus(in | out) events fire after focus & blur events,\r\n\t\t\t// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\r\n\t\t\t// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\r\n\t\t\tif (!support.focusin) {\r\n\t\t\t\tjQuery.each({ focus: \"focusin\", blur: \"focusout\" }, function (orig, fix) {\r\n\r\n\t\t\t\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\r\n\t\t\t\t\tvar handler = function (event) {\r\n\t\t\t\t\t\tjQuery.event.simulate(fix, event.target, jQuery.event.fix(event));\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.event.special[fix] = {\r\n\t\t\t\t\t\tsetup: function () {\r\n\r\n\t\t\t\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\r\n\t\t\t\t\t\t\t// (via `this.document`) & document (via `this`).\r\n\t\t\t\t\t\t\tvar doc = this.ownerDocument || this.document || this,\r\n\t\t\t\t\t\t\t\tattaches = dataPriv.access(doc, fix);\r\n\r\n\t\t\t\t\t\t\tif (!attaches) {\r\n\t\t\t\t\t\t\t\tdoc.addEventListener(orig, handler, true);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tdataPriv.access(doc, fix, (attaches || 0) + 1);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tteardown: function () {\r\n\t\t\t\t\t\t\tvar doc = this.ownerDocument || this.document || this,\r\n\t\t\t\t\t\t\t\tattaches = dataPriv.access(doc, fix) - 1;\r\n\r\n\t\t\t\t\t\t\tif (!attaches) {\r\n\t\t\t\t\t\t\t\tdoc.removeEventListener(orig, handler, true);\r\n\t\t\t\t\t\t\t\tdataPriv.remove(doc, fix);\r\n\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tdataPriv.access(doc, fix, attaches);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tvar location = window.location;\r\n\r\n\t\t\tvar nonce = { guid: Date.now() };\r\n\r\n\t\t\tvar rquery = (/\\?/);\r\n\r\n\r\n\r\n\t\t\t// Cross-browser xml parsing\r\n\t\t\tjQuery.parseXML = function (data) {\r\n\t\t\t\tvar xml;\r\n\t\t\t\tif (!data || typeof data !== \"string\") {\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Support: IE 9 - 11 only\r\n\t\t\t\t// IE throws on parseFromString with invalid input.\r\n\t\t\t\ttry {\r\n\t\t\t\t\txml = (new window.DOMParser()).parseFromString(data, \"text/xml\");\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\txml = undefined;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!xml || xml.getElementsByTagName(\"parsererror\").length) {\r\n\t\t\t\t\tjQuery.error(\"Invalid XML: \" + data);\r\n\t\t\t\t}\r\n\t\t\t\treturn xml;\r\n\t\t\t};\r\n\r\n\r\n\t\t\tvar\r\n\t\t\t\trbracket = /\\[\\]$/,\r\n\t\t\t\trCRLF = /\\r?\\n/g,\r\n\t\t\t\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\r\n\t\t\t\trsubmittable = /^(?:input|select|textarea|keygen)/i;\r\n\r\n\t\t\tfunction buildParams(prefix, obj, traditional, add) {\r\n\t\t\t\tvar name;\r\n\r\n\t\t\t\tif (Array.isArray(obj)) {\r\n\r\n\t\t\t\t\t// Serialize array item.\r\n\t\t\t\t\tjQuery.each(obj, function (i, v) {\r\n\t\t\t\t\t\tif (traditional || rbracket.test(prefix)) {\r\n\r\n\t\t\t\t\t\t\t// Treat each array item as a scalar.\r\n\t\t\t\t\t\t\tadd(prefix, v);\r\n\r\n\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\r\n\t\t\t\t\t\t\tbuildParams(\r\n\t\t\t\t\t\t\t\tprefix + \"[\" + (typeof v === \"object\" && v != null ? i : \"\") + \"]\",\r\n\t\t\t\t\t\t\t\tv,\r\n\t\t\t\t\t\t\t\ttraditional,\r\n\t\t\t\t\t\t\t\tadd\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t} else if (!traditional && toType(obj) === \"object\") {\r\n\r\n\t\t\t\t\t// Serialize object item.\r\n\t\t\t\t\tfor (name in obj) {\r\n\t\t\t\t\t\tbuildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\t// Serialize scalar item.\r\n\t\t\t\t\tadd(prefix, obj);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Serialize an array of form elements or a set of\r\n\t\t\t// key/values into a query string\r\n\t\t\tjQuery.param = function (a, traditional) {\r\n\t\t\t\tvar prefix,\r\n\t\t\t\t\ts = [],\r\n\t\t\t\t\tadd = function (key, valueOrFunction) {\r\n\r\n\t\t\t\t\t\t// If value is a function, invoke it and use its return value\r\n\t\t\t\t\t\tvar value = isFunction(valueOrFunction) ?\r\n\t\t\t\t\t\t\tvalueOrFunction() :\r\n\t\t\t\t\t\t\tvalueOrFunction;\r\n\r\n\t\t\t\t\t\ts[s.length] = encodeURIComponent(key) + \"=\" +\r\n\t\t\t\t\t\t\tencodeURIComponent(value == null ? \"\" : value);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\tif (a == null) {\r\n\t\t\t\t\treturn \"\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// If an array was passed in, assume that it is an array of form elements.\r\n\t\t\t\tif (Array.isArray(a) || (a.jquery && !jQuery.isPlainObject(a))) {\r\n\r\n\t\t\t\t\t// Serialize the form elements\r\n\t\t\t\t\tjQuery.each(a, function () {\r\n\t\t\t\t\t\tadd(this.name, this.value);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\r\n\t\t\t\t\t// did it), otherwise encode params recursively.\r\n\t\t\t\t\tfor (prefix in a) {\r\n\t\t\t\t\t\tbuildParams(prefix, a[prefix], traditional, add);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Return the resulting serialization\r\n\t\t\t\treturn s.join(\"&\");\r\n\t\t\t};\r\n\r\n\t\t\tjQuery.fn.extend({\r\n\t\t\t\tserialize: function () {\r\n\t\t\t\t\treturn jQuery.param(this.serializeArray());\r\n\t\t\t\t},\r\n\t\t\t\tserializeArray: function () {\r\n\t\t\t\t\treturn this.map(function () {\r\n\r\n\t\t\t\t\t\t// Can add propHook for \"elements\" to filter or add form elements\r\n\t\t\t\t\t\tvar elements = jQuery.prop(this, \"elements\");\r\n\t\t\t\t\t\treturn elements ? jQuery.makeArray(elements) : this;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t\t.filter(function () {\r\n\t\t\t\t\t\t\tvar type = this.type;\r\n\r\n\t\t\t\t\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\r\n\t\t\t\t\t\t\treturn this.name && !jQuery(this).is(\":disabled\") &&\r\n\t\t\t\t\t\t\t\trsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) &&\r\n\t\t\t\t\t\t\t\t(this.checked || !rcheckableType.test(type));\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.map(function (_i, elem) {\r\n\t\t\t\t\t\t\tvar val = jQuery(this).val();\r\n\r\n\t\t\t\t\t\t\tif (val == null) {\r\n\t\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (Array.isArray(val)) {\r\n\t\t\t\t\t\t\t\treturn jQuery.map(val, function (val) {\r\n\t\t\t\t\t\t\t\t\treturn { name: elem.name, value: val.replace(rCRLF, \"\\r\\n\") };\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn { name: elem.name, value: val.replace(rCRLF, \"\\r\\n\") };\r\n\t\t\t\t\t\t}).get();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\t\tvar\r\n\t\t\t\tr20 = /%20/g,\r\n\t\t\t\trhash = /#.*$/,\r\n\t\t\t\trantiCache = /([?&])_=[^&]*/,\r\n\t\t\t\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\r\n\r\n\t\t\t\t// #7653, #8125, #8152: local protocol detection\r\n\t\t\t\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\r\n\t\t\t\trnoContent = /^(?:GET|HEAD)$/,\r\n\t\t\t\trprotocol = /^\\/\\//,\r\n\r\n\t\t\t\t/* Prefilters\r\n\t\t\t\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\r\n\t\t\t\t * 2) These are called:\r\n\t\t\t\t * - BEFORE asking for a transport\r\n\t\t\t\t * - AFTER param serialization (s.data is a string if s.processData is true)\r\n\t\t\t\t * 3) key is the dataType\r\n\t\t\t\t * 4) the catchall symbol \"*\" can be used\r\n\t\t\t\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\r\n\t\t\t\t */\r\n\t\t\t\tprefilters = {},\r\n\r\n\t\t\t\t/* Transports bindings\r\n\t\t\t\t * 1) key is the dataType\r\n\t\t\t\t * 2) the catchall symbol \"*\" can be used\r\n\t\t\t\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\r\n\t\t\t\t */\r\n\t\t\t\ttransports = {},\r\n\r\n\t\t\t\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\r\n\t\t\t\tallTypes = \"*/\".concat(\"*\"),\r\n\r\n\t\t\t\t// Anchor tag for parsing the document origin\r\n\t\t\t\toriginAnchor = document.createElement(\"a\");\r\n\t\t\toriginAnchor.href = location.href;\r\n\r\n\t\t\t// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\r\n\t\t\tfunction addToPrefiltersOrTransports(structure) {\r\n\r\n\t\t\t\t// dataTypeExpression is optional and defaults to \"*\"\r\n\t\t\t\treturn function (dataTypeExpression, func) {\r\n\r\n\t\t\t\t\tif (typeof dataTypeExpression !== \"string\") {\r\n\t\t\t\t\t\tfunc = dataTypeExpression;\r\n\t\t\t\t\t\tdataTypeExpression = \"*\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar dataType,\r\n\t\t\t\t\t\ti = 0,\r\n\t\t\t\t\t\tdataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\r\n\r\n\t\t\t\t\tif (isFunction(func)) {\r\n\r\n\t\t\t\t\t\t// For each dataType in the dataTypeExpression\r\n\t\t\t\t\t\twhile ((dataType = dataTypes[i++])) {\r\n\r\n\t\t\t\t\t\t\t// Prepend if requested\r\n\t\t\t\t\t\t\tif (dataType[0] === \"+\") {\r\n\t\t\t\t\t\t\t\tdataType = dataType.slice(1) || \"*\";\r\n\t\t\t\t\t\t\t\t(structure[dataType] = structure[dataType] || []).unshift(func);\r\n\r\n\t\t\t\t\t\t\t\t// Otherwise append\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t(structure[dataType] = structure[dataType] || []).push(func);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\t// Base inspection function for prefilters and transports\r\n\t\t\tfunction inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\r\n\r\n\t\t\t\tvar inspected = {},\r\n\t\t\t\t\tseekingTransport = (structure === transports);\r\n\r\n\t\t\t\tfunction inspect(dataType) {\r\n\t\t\t\t\tvar selected;\r\n\t\t\t\t\tinspected[dataType] = true;\r\n\t\t\t\t\tjQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\r\n\t\t\t\t\t\tvar dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\r\n\t\t\t\t\t\tif (typeof dataTypeOrTransport === \"string\" &&\r\n\t\t\t\t\t\t\t!seekingTransport && !inspected[dataTypeOrTransport]) {\r\n\r\n\t\t\t\t\t\t\toptions.dataTypes.unshift(dataTypeOrTransport);\r\n\t\t\t\t\t\t\tinspect(dataTypeOrTransport);\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t} else if (seekingTransport) {\r\n\t\t\t\t\t\t\treturn !(selected = dataTypeOrTransport);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn selected;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\r\n\t\t\t}\r\n\r\n\t\t\t// A special extend for ajax options\r\n\t\t\t// that takes \"flat\" options (not to be deep extended)\r\n\t\t\t// Fixes #9887\r\n\t\t\tfunction ajaxExtend(target, src) {\r\n\t\t\t\tvar key, deep,\r\n\t\t\t\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\r\n\r\n\t\t\t\tfor (key in src) {\r\n\t\t\t\t\tif (src[key] !== undefined) {\r\n\t\t\t\t\t\t(flatOptions[key] ? target : (deep || (deep = {})))[key] = src[key];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (deep) {\r\n\t\t\t\t\tjQuery.extend(true, target, deep);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn target;\r\n\t\t\t}\r\n\r\n\t\t\t/* Handles responses to an ajax request:\r\n\t\t\t * - finds the right dataType (mediates between content-type and expected dataType)\r\n\t\t\t * - returns the corresponding response\r\n\t\t\t */\r\n\t\t\tfunction ajaxHandleResponses(s, jqXHR, responses) {\r\n\r\n\t\t\t\tvar ct, type, finalDataType, firstDataType,\r\n\t\t\t\t\tcontents = s.contents,\r\n\t\t\t\t\tdataTypes = s.dataTypes;\r\n\r\n\t\t\t\t// Remove auto dataType and get content-type in the process\r\n\t\t\t\twhile (dataTypes[0] === \"*\") {\r\n\t\t\t\t\tdataTypes.shift();\r\n\t\t\t\t\tif (ct === undefined) {\r\n\t\t\t\t\t\tct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Check if we're dealing with a known content-type\r\n\t\t\t\tif (ct) {\r\n\t\t\t\t\tfor (type in contents) {\r\n\t\t\t\t\t\tif (contents[type] && contents[type].test(ct)) {\r\n\t\t\t\t\t\t\tdataTypes.unshift(type);\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Check to see if we have a response for the expected dataType\r\n\t\t\t\tif (dataTypes[0] in responses) {\r\n\t\t\t\t\tfinalDataType = dataTypes[0];\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\t// Try convertible dataTypes\r\n\t\t\t\t\tfor (type in responses) {\r\n\t\t\t\t\t\tif (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\r\n\t\t\t\t\t\t\tfinalDataType = type;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!firstDataType) {\r\n\t\t\t\t\t\t\tfirstDataType = type;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Or just use first one\r\n\t\t\t\t\tfinalDataType = finalDataType || firstDataType;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// If we found a dataType\r\n\t\t\t\t// We add the dataType to the list if needed\r\n\t\t\t\t// and return the corresponding response\r\n\t\t\t\tif (finalDataType) {\r\n\t\t\t\t\tif (finalDataType !== dataTypes[0]) {\r\n\t\t\t\t\t\tdataTypes.unshift(finalDataType);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn responses[finalDataType];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/* Chain conversions given the request and the original response\r\n\t\t\t * Also sets the responseXXX fields on the jqXHR instance\r\n\t\t\t */\r\n\t\t\tfunction ajaxConvert(s, response, jqXHR, isSuccess) {\r\n\t\t\t\tvar conv2, current, conv, tmp, prev,\r\n\t\t\t\t\tconverters = {},\r\n\r\n\t\t\t\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\r\n\t\t\t\t\tdataTypes = s.dataTypes.slice();\r\n\r\n\t\t\t\t// Create converters map with lowercased keys\r\n\t\t\t\tif (dataTypes[1]) {\r\n\t\t\t\t\tfor (conv in s.converters) {\r\n\t\t\t\t\t\tconverters[conv.toLowerCase()] = s.converters[conv];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcurrent = dataTypes.shift();\r\n\r\n\t\t\t\t// Convert to each sequential dataType\r\n\t\t\t\twhile (current) {\r\n\r\n\t\t\t\t\tif (s.responseFields[current]) {\r\n\t\t\t\t\t\tjqXHR[s.responseFields[current]] = response;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Apply the dataFilter if provided\r\n\t\t\t\t\tif (!prev && isSuccess && s.dataFilter) {\r\n\t\t\t\t\t\tresponse = s.dataFilter(response, s.dataType);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tprev = current;\r\n\t\t\t\t\tcurrent = dataTypes.shift();\r\n\r\n\t\t\t\t\tif (current) {\r\n\r\n\t\t\t\t\t\t// There's only work to do if current dataType is non-auto\r\n\t\t\t\t\t\tif (current === \"*\") {\r\n\r\n\t\t\t\t\t\t\tcurrent = prev;\r\n\r\n\t\t\t\t\t\t\t// Convert response if prev dataType is non-auto and differs from current\r\n\t\t\t\t\t\t} else if (prev !== \"*\" && prev !== current) {\r\n\r\n\t\t\t\t\t\t\t// Seek a direct converter\r\n\t\t\t\t\t\t\tconv = converters[prev + \" \" + current] || converters[\"* \" + current];\r\n\r\n\t\t\t\t\t\t\t// If none found, seek a pair\r\n\t\t\t\t\t\t\tif (!conv) {\r\n\t\t\t\t\t\t\t\tfor (conv2 in converters) {\r\n\r\n\t\t\t\t\t\t\t\t\t// If conv2 outputs current\r\n\t\t\t\t\t\t\t\t\ttmp = conv2.split(\" \");\r\n\t\t\t\t\t\t\t\t\tif (tmp[1] === current) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// If prev can be converted to accepted input\r\n\t\t\t\t\t\t\t\t\t\tconv = converters[prev + \" \" + tmp[0]] ||\r\n\t\t\t\t\t\t\t\t\t\t\tconverters[\"* \" + tmp[0]];\r\n\t\t\t\t\t\t\t\t\t\tif (conv) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Condense equivalence converters\r\n\t\t\t\t\t\t\t\t\t\t\tif (conv === true) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tconv = converters[conv2];\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\r\n\t\t\t\t\t\t\t\t\t\t\t} else if (converters[conv2] !== true) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tcurrent = tmp[0];\r\n\t\t\t\t\t\t\t\t\t\t\t\tdataTypes.unshift(tmp[1]);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Apply converter (if not an equivalence)\r\n\t\t\t\t\t\t\tif (conv !== true) {\r\n\r\n\t\t\t\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\r\n\t\t\t\t\t\t\t\tif (conv && s.throws) {\r\n\t\t\t\t\t\t\t\t\tresponse = conv(response);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\t\tresponse = conv(response);\r\n\t\t\t\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\t\t\t\tstate: \"parsererror\",\r\n\t\t\t\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn { state: \"success\", data: response };\r\n\t\t\t}\r\n\r\n\t\t\tjQuery.extend({\r\n\r\n\t\t\t\t// Counter for holding the number of active queries\r\n\t\t\t\tactive: 0,\r\n\r\n\t\t\t\t// Last-Modified header cache for next request\r\n\t\t\t\tlastModified: {},\r\n\t\t\t\tetag: {},\r\n\r\n\t\t\t\tajaxSettings: {\r\n\t\t\t\t\turl: location.href,\r\n\t\t\t\t\ttype: \"GET\",\r\n\t\t\t\t\tisLocal: rlocalProtocol.test(location.protocol),\r\n\t\t\t\t\tglobal: true,\r\n\t\t\t\t\tprocessData: true,\r\n\t\t\t\t\tasync: true,\r\n\t\t\t\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\ttimeout: 0,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t\tdataType: null,\r\n\t\t\t\t\tusername: null,\r\n\t\t\t\t\tpassword: null,\r\n\t\t\t\t\tcache: null,\r\n\t\t\t\t\tthrows: false,\r\n\t\t\t\t\ttraditional: false,\r\n\t\t\t\t\theaders: {},\r\n\t\t\t\t\t*/\r\n\r\n\t\t\t\t\taccepts: {\r\n\t\t\t\t\t\t\"*\": allTypes,\r\n\t\t\t\t\t\ttext: \"text/plain\",\r\n\t\t\t\t\t\thtml: \"text/html\",\r\n\t\t\t\t\t\txml: \"application/xml, text/xml\",\r\n\t\t\t\t\t\tjson: \"application/json, text/javascript\"\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tcontents: {\r\n\t\t\t\t\t\txml: /\\bxml\\b/,\r\n\t\t\t\t\t\thtml: /\\bhtml/,\r\n\t\t\t\t\t\tjson: /\\bjson\\b/\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tresponseFields: {\r\n\t\t\t\t\t\txml: \"responseXML\",\r\n\t\t\t\t\t\ttext: \"responseText\",\r\n\t\t\t\t\t\tjson: \"responseJSON\"\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t// Data converters\r\n\t\t\t\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\r\n\t\t\t\t\tconverters: {\r\n\r\n\t\t\t\t\t\t// Convert anything to text\r\n\t\t\t\t\t\t\"* text\": String,\r\n\r\n\t\t\t\t\t\t// Text to html (true = no transformation)\r\n\t\t\t\t\t\t\"text html\": true,\r\n\r\n\t\t\t\t\t\t// Evaluate text as a json expression\r\n\t\t\t\t\t\t\"text json\": JSON.parse,\r\n\r\n\t\t\t\t\t\t// Parse text as xml\r\n\t\t\t\t\t\t\"text xml\": jQuery.parseXML\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t// For options that shouldn't be deep extended:\r\n\t\t\t\t\t// you can add your own custom options here if\r\n\t\t\t\t\t// and when you create one that shouldn't be\r\n\t\t\t\t\t// deep extended (see ajaxExtend)\r\n\t\t\t\t\tflatOptions: {\r\n\t\t\t\t\t\turl: true,\r\n\t\t\t\t\t\tcontext: true\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Creates a full fledged settings object into target\r\n\t\t\t\t// with both ajaxSettings and settings fields.\r\n\t\t\t\t// If target is omitted, writes into ajaxSettings.\r\n\t\t\t\tajaxSetup: function (target, settings) {\r\n\t\t\t\t\treturn settings ?\r\n\r\n\t\t\t\t\t\t// Building a settings object\r\n\t\t\t\t\t\tajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) :\r\n\r\n\t\t\t\t\t\t// Extending ajaxSettings\r\n\t\t\t\t\t\tajaxExtend(jQuery.ajaxSettings, target);\r\n\t\t\t\t},\r\n\r\n\t\t\t\tajaxPrefilter: addToPrefiltersOrTransports(prefilters),\r\n\t\t\t\tajaxTransport: addToPrefiltersOrTransports(transports),\r\n\r\n\t\t\t\t// Main method\r\n\t\t\t\tajax: function (url, options) {\r\n\r\n\t\t\t\t\t// If url is an object, simulate pre-1.5 signature\r\n\t\t\t\t\tif (typeof url === \"object\") {\r\n\t\t\t\t\t\toptions = url;\r\n\t\t\t\t\t\turl = undefined;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Force options to be an object\r\n\t\t\t\t\toptions = options || {};\r\n\r\n\t\t\t\t\tvar transport,\r\n\r\n\t\t\t\t\t\t// URL without anti-cache param\r\n\t\t\t\t\t\tcacheURL,\r\n\r\n\t\t\t\t\t\t// Response headers\r\n\t\t\t\t\t\tresponseHeadersString,\r\n\t\t\t\t\t\tresponseHeaders,\r\n\r\n\t\t\t\t\t\t// timeout handle\r\n\t\t\t\t\t\ttimeoutTimer,\r\n\r\n\t\t\t\t\t\t// Url cleanup var\r\n\t\t\t\t\t\turlAnchor,\r\n\r\n\t\t\t\t\t\t// Request state (becomes false upon send and true upon completion)\r\n\t\t\t\t\t\tcompleted,\r\n\r\n\t\t\t\t\t\t// To know if global events are to be dispatched\r\n\t\t\t\t\t\tfireGlobals,\r\n\r\n\t\t\t\t\t\t// Loop variable\r\n\t\t\t\t\t\ti,\r\n\r\n\t\t\t\t\t\t// uncached part of the url\r\n\t\t\t\t\t\tuncached,\r\n\r\n\t\t\t\t\t\t// Create the final options object\r\n\t\t\t\t\t\ts = jQuery.ajaxSetup({}, options),\r\n\r\n\t\t\t\t\t\t// Callbacks context\r\n\t\t\t\t\t\tcallbackContext = s.context || s,\r\n\r\n\t\t\t\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\r\n\t\t\t\t\t\tglobalEventContext = s.context &&\r\n\t\t\t\t\t\t\t(callbackContext.nodeType || callbackContext.jquery) ?\r\n\t\t\t\t\t\t\tjQuery(callbackContext) :\r\n\t\t\t\t\t\t\tjQuery.event,\r\n\r\n\t\t\t\t\t\t// Deferreds\r\n\t\t\t\t\t\tdeferred = jQuery.Deferred(),\r\n\t\t\t\t\t\tcompleteDeferred = jQuery.Callbacks(\"once memory\"),\r\n\r\n\t\t\t\t\t\t// Status-dependent callbacks\r\n\t\t\t\t\t\tstatusCode = s.statusCode || {},\r\n\r\n\t\t\t\t\t\t// Headers (they are sent all at once)\r\n\t\t\t\t\t\trequestHeaders = {},\r\n\t\t\t\t\t\trequestHeadersNames = {},\r\n\r\n\t\t\t\t\t\t// Default abort message\r\n\t\t\t\t\t\tstrAbort = \"canceled\",\r\n\r\n\t\t\t\t\t\t// Fake xhr\r\n\t\t\t\t\t\tjqXHR = {\r\n\t\t\t\t\t\t\treadyState: 0,\r\n\r\n\t\t\t\t\t\t\t// Builds headers hashtable if needed\r\n\t\t\t\t\t\t\tgetResponseHeader: function (key) {\r\n\t\t\t\t\t\t\t\tvar match;\r\n\t\t\t\t\t\t\t\tif (completed) {\r\n\t\t\t\t\t\t\t\t\tif (!responseHeaders) {\r\n\t\t\t\t\t\t\t\t\t\tresponseHeaders = {};\r\n\t\t\t\t\t\t\t\t\t\twhile ((match = rheaders.exec(responseHeadersString))) {\r\n\t\t\t\t\t\t\t\t\t\t\tresponseHeaders[match[1].toLowerCase() + \" \"] =\r\n\t\t\t\t\t\t\t\t\t\t\t\t(responseHeaders[match[1].toLowerCase() + \" \"] || [])\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.concat(match[2]);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tmatch = responseHeaders[key.toLowerCase() + \" \"];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn match == null ? null : match.join(\", \");\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t// Raw string\r\n\t\t\t\t\t\t\tgetAllResponseHeaders: function () {\r\n\t\t\t\t\t\t\t\treturn completed ? responseHeadersString : null;\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t// Caches the header\r\n\t\t\t\t\t\t\tsetRequestHeader: function (name, value) {\r\n\t\t\t\t\t\t\t\tif (completed == null) {\r\n\t\t\t\t\t\t\t\t\tname = requestHeadersNames[name.toLowerCase()] =\r\n\t\t\t\t\t\t\t\t\t\trequestHeadersNames[name.toLowerCase()] || name;\r\n\t\t\t\t\t\t\t\t\trequestHeaders[name] = value;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t// Overrides response content-type header\r\n\t\t\t\t\t\t\toverrideMimeType: function (type) {\r\n\t\t\t\t\t\t\t\tif (completed == null) {\r\n\t\t\t\t\t\t\t\t\ts.mimeType = type;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t// Status-dependent callbacks\r\n\t\t\t\t\t\t\tstatusCode: function (map) {\r\n\t\t\t\t\t\t\t\tvar code;\r\n\t\t\t\t\t\t\t\tif (map) {\r\n\t\t\t\t\t\t\t\t\tif (completed) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Execute the appropriate callbacks\r\n\t\t\t\t\t\t\t\t\t\tjqXHR.always(map[jqXHR.status]);\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\r\n\t\t\t\t\t\t\t\t\t\tfor (code in map) {\r\n\t\t\t\t\t\t\t\t\t\t\tstatusCode[code] = [statusCode[code], map[code]];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t// Cancel the request\r\n\t\t\t\t\t\t\tabort: function (statusText) {\r\n\t\t\t\t\t\t\t\tvar finalText = statusText || strAbort;\r\n\t\t\t\t\t\t\t\tif (transport) {\r\n\t\t\t\t\t\t\t\t\ttransport.abort(finalText);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tdone(0, finalText);\r\n\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// Attach deferreds\r\n\t\t\t\t\tdeferred.promise(jqXHR);\r\n\r\n\t\t\t\t\t// Add protocol if not provided (prefilters might expect it)\r\n\t\t\t\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\r\n\t\t\t\t\t// We also use the url parameter if available\r\n\t\t\t\t\ts.url = ((url || s.url || location.href) + \"\")\r\n\t\t\t\t\t\t.replace(rprotocol, location.protocol + \"//\");\r\n\r\n\t\t\t\t\t// Alias method option to type as per ticket #12004\r\n\t\t\t\t\ts.type = options.method || options.type || s.method || s.type;\r\n\r\n\t\t\t\t\t// Extract dataTypes list\r\n\t\t\t\t\ts.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"];\r\n\r\n\t\t\t\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\r\n\t\t\t\t\tif (s.crossDomain == null) {\r\n\t\t\t\t\t\turlAnchor = document.createElement(\"a\");\r\n\r\n\t\t\t\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\r\n\t\t\t\t\t\t// IE throws exception on accessing the href property if url is malformed,\r\n\t\t\t\t\t\t// e.g. http://example.com:80x/\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\turlAnchor.href = s.url;\r\n\r\n\t\t\t\t\t\t\t// Support: IE <=8 - 11 only\r\n\t\t\t\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\r\n\t\t\t\t\t\t\turlAnchor.href = urlAnchor.href;\r\n\t\t\t\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\r\n\t\t\t\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\r\n\t\t\t\t\t\t} catch (e) {\r\n\r\n\t\t\t\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\r\n\t\t\t\t\t\t\t// it can be rejected by the transport if it is invalid\r\n\t\t\t\t\t\t\ts.crossDomain = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Convert data if not already a string\r\n\t\t\t\t\tif (s.data && s.processData && typeof s.data !== \"string\") {\r\n\t\t\t\t\t\ts.data = jQuery.param(s.data, s.traditional);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Apply prefilters\r\n\t\t\t\t\tinspectPrefiltersOrTransports(prefilters, s, options, jqXHR);\r\n\r\n\t\t\t\t\t// If request was aborted inside a prefilter, stop there\r\n\t\t\t\t\tif (completed) {\r\n\t\t\t\t\t\treturn jqXHR;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// We can fire global events as of now if asked to\r\n\t\t\t\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\r\n\t\t\t\t\tfireGlobals = jQuery.event && s.global;\r\n\r\n\t\t\t\t\t// Watch for a new set of requests\r\n\t\t\t\t\tif (fireGlobals && jQuery.active++ === 0) {\r\n\t\t\t\t\t\tjQuery.event.trigger(\"ajaxStart\");\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Uppercase the type\r\n\t\t\t\t\ts.type = s.type.toUpperCase();\r\n\r\n\t\t\t\t\t// Determine if request has content\r\n\t\t\t\t\ts.hasContent = !rnoContent.test(s.type);\r\n\r\n\t\t\t\t\t// Save the URL in case we're toying with the If-Modified-Since\r\n\t\t\t\t\t// and/or If-None-Match header later on\r\n\t\t\t\t\t// Remove hash to simplify url manipulation\r\n\t\t\t\t\tcacheURL = s.url.replace(rhash, \"\");\r\n\r\n\t\t\t\t\t// More options handling for requests with no content\r\n\t\t\t\t\tif (!s.hasContent) {\r\n\r\n\t\t\t\t\t\t// Remember the hash so we can put it back\r\n\t\t\t\t\t\tuncached = s.url.slice(cacheURL.length);\r\n\r\n\t\t\t\t\t\t// If data is available and should be processed, append data to url\r\n\t\t\t\t\t\tif (s.data && (s.processData || typeof s.data === \"string\")) {\r\n\t\t\t\t\t\t\tcacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data;\r\n\r\n\t\t\t\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\r\n\t\t\t\t\t\t\tdelete s.data;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Add or update anti-cache param if needed\r\n\t\t\t\t\t\tif (s.cache === false) {\r\n\t\t\t\t\t\t\tcacheURL = cacheURL.replace(rantiCache, \"$1\");\r\n\t\t\t\t\t\t\tuncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + (nonce.guid++) +\r\n\t\t\t\t\t\t\t\tuncached;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\r\n\t\t\t\t\t\ts.url = cacheURL + uncached;\r\n\r\n\t\t\t\t\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\r\n\t\t\t\t\t} else if (s.data && s.processData &&\r\n\t\t\t\t\t\t(s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\r\n\t\t\t\t\t\ts.data = s.data.replace(r20, \"+\");\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\r\n\t\t\t\t\tif (s.ifModified) {\r\n\t\t\t\t\t\tif (jQuery.lastModified[cacheURL]) {\r\n\t\t\t\t\t\t\tjqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (jQuery.etag[cacheURL]) {\r\n\t\t\t\t\t\t\tjqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Set the correct header, if data is being sent\r\n\t\t\t\t\tif (s.data && s.hasContent && s.contentType !== false || options.contentType) {\r\n\t\t\t\t\t\tjqXHR.setRequestHeader(\"Content-Type\", s.contentType);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Set the Accepts header for the server, depending on the dataType\r\n\t\t\t\t\tjqXHR.setRequestHeader(\r\n\t\t\t\t\t\t\"Accept\",\r\n\t\t\t\t\t\ts.dataTypes[0] && s.accepts[s.dataTypes[0]] ?\r\n\t\t\t\t\t\t\ts.accepts[s.dataTypes[0]] +\r\n\t\t\t\t\t\t\t(s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") :\r\n\t\t\t\t\t\t\ts.accepts[\"*\"]\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\t// Check for headers option\r\n\t\t\t\t\tfor (i in s.headers) {\r\n\t\t\t\t\t\tjqXHR.setRequestHeader(i, s.headers[i]);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Allow custom headers/mimetypes and early abort\r\n\t\t\t\t\tif (s.beforeSend &&\r\n\t\t\t\t\t\t(s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\r\n\r\n\t\t\t\t\t\t// Abort if not done already and return\r\n\t\t\t\t\t\treturn jqXHR.abort();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Aborting is no longer a cancellation\r\n\t\t\t\t\tstrAbort = \"abort\";\r\n\r\n\t\t\t\t\t// Install callbacks on deferreds\r\n\t\t\t\t\tcompleteDeferred.add(s.complete);\r\n\t\t\t\t\tjqXHR.done(s.success);\r\n\t\t\t\t\tjqXHR.fail(s.error);\r\n\r\n\t\t\t\t\t// Get transport\r\n\t\t\t\t\ttransport = inspectPrefiltersOrTransports(transports, s, options, jqXHR);\r\n\r\n\t\t\t\t\t// If no transport, we auto-abort\r\n\t\t\t\t\tif (!transport) {\r\n\t\t\t\t\t\tdone(-1, \"No Transport\");\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tjqXHR.readyState = 1;\r\n\r\n\t\t\t\t\t\t// Send global event\r\n\t\t\t\t\t\tif (fireGlobals) {\r\n\t\t\t\t\t\t\tglobalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// If request was aborted inside ajaxSend, stop there\r\n\t\t\t\t\t\tif (completed) {\r\n\t\t\t\t\t\t\treturn jqXHR;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Timeout\r\n\t\t\t\t\t\tif (s.async && s.timeout > 0) {\r\n\t\t\t\t\t\t\ttimeoutTimer = window.setTimeout(function () {\r\n\t\t\t\t\t\t\t\tjqXHR.abort(\"timeout\");\r\n\t\t\t\t\t\t\t}, s.timeout);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tcompleted = false;\r\n\t\t\t\t\t\t\ttransport.send(requestHeaders, done);\r\n\t\t\t\t\t\t} catch (e) {\r\n\r\n\t\t\t\t\t\t\t// Rethrow post-completion exceptions\r\n\t\t\t\t\t\t\tif (completed) {\r\n\t\t\t\t\t\t\t\tthrow e;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Propagate others as results\r\n\t\t\t\t\t\t\tdone(-1, e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Callback for when everything is done\r\n\t\t\t\t\tfunction done(status, nativeStatusText, responses, headers) {\r\n\t\t\t\t\t\tvar isSuccess, success, error, response, modified,\r\n\t\t\t\t\t\t\tstatusText = nativeStatusText;\r\n\r\n\t\t\t\t\t\t// Ignore repeat invocations\r\n\t\t\t\t\t\tif (completed) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tcompleted = true;\r\n\r\n\t\t\t\t\t\t// Clear timeout if it exists\r\n\t\t\t\t\t\tif (timeoutTimer) {\r\n\t\t\t\t\t\t\twindow.clearTimeout(timeoutTimer);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Dereference transport for early garbage collection\r\n\t\t\t\t\t\t// (no matter how long the jqXHR object will be used)\r\n\t\t\t\t\t\ttransport = undefined;\r\n\r\n\t\t\t\t\t\t// Cache response headers\r\n\t\t\t\t\t\tresponseHeadersString = headers || \"\";\r\n\r\n\t\t\t\t\t\t// Set readyState\r\n\t\t\t\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\r\n\r\n\t\t\t\t\t\t// Determine if successful\r\n\t\t\t\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\r\n\r\n\t\t\t\t\t\t// Get response data\r\n\t\t\t\t\t\tif (responses) {\r\n\t\t\t\t\t\t\tresponse = ajaxHandleResponses(s, jqXHR, responses);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Use a noop converter for missing script\r\n\t\t\t\t\t\tif (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1) {\r\n\t\t\t\t\t\t\ts.converters[\"text script\"] = function () { };\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Convert no matter what (that way responseXXX fields are always set)\r\n\t\t\t\t\t\tresponse = ajaxConvert(s, response, jqXHR, isSuccess);\r\n\r\n\t\t\t\t\t\t// If successful, handle type chaining\r\n\t\t\t\t\t\tif (isSuccess) {\r\n\r\n\t\t\t\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\r\n\t\t\t\t\t\t\tif (s.ifModified) {\r\n\t\t\t\t\t\t\t\tmodified = jqXHR.getResponseHeader(\"Last-Modified\");\r\n\t\t\t\t\t\t\t\tif (modified) {\r\n\t\t\t\t\t\t\t\t\tjQuery.lastModified[cacheURL] = modified;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tmodified = jqXHR.getResponseHeader(\"etag\");\r\n\t\t\t\t\t\t\t\tif (modified) {\r\n\t\t\t\t\t\t\t\t\tjQuery.etag[cacheURL] = modified;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// if no content\r\n\t\t\t\t\t\t\tif (status === 204 || s.type === \"HEAD\") {\r\n\t\t\t\t\t\t\t\tstatusText = \"nocontent\";\r\n\r\n\t\t\t\t\t\t\t\t// if not modified\r\n\t\t\t\t\t\t\t} else if (status === 304) {\r\n\t\t\t\t\t\t\t\tstatusText = \"notmodified\";\r\n\r\n\t\t\t\t\t\t\t\t// If we have data, let's convert it\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tstatusText = response.state;\r\n\t\t\t\t\t\t\t\tsuccess = response.data;\r\n\t\t\t\t\t\t\t\terror = response.error;\r\n\t\t\t\t\t\t\t\tisSuccess = !error;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t// Extract error from statusText and normalize for non-aborts\r\n\t\t\t\t\t\t\terror = statusText;\r\n\t\t\t\t\t\t\tif (status || !statusText) {\r\n\t\t\t\t\t\t\t\tstatusText = \"error\";\r\n\t\t\t\t\t\t\t\tif (status < 0) {\r\n\t\t\t\t\t\t\t\t\tstatus = 0;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Set data for the fake xhr object\r\n\t\t\t\t\t\tjqXHR.status = status;\r\n\t\t\t\t\t\tjqXHR.statusText = (nativeStatusText || statusText) + \"\";\r\n\r\n\t\t\t\t\t\t// Success/Error\r\n\t\t\t\t\t\tif (isSuccess) {\r\n\t\t\t\t\t\t\tdeferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tdeferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Status-dependent callbacks\r\n\t\t\t\t\t\tjqXHR.statusCode(statusCode);\r\n\t\t\t\t\t\tstatusCode = undefined;\r\n\r\n\t\t\t\t\t\tif (fireGlobals) {\r\n\t\t\t\t\t\t\tglobalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\r\n\t\t\t\t\t\t\t\t[jqXHR, s, isSuccess ? success : error]);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Complete\r\n\t\t\t\t\t\tcompleteDeferred.fireWith(callbackContext, [jqXHR, statusText]);\r\n\r\n\t\t\t\t\t\tif (fireGlobals) {\r\n\t\t\t\t\t\t\tglobalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]);\r\n\r\n\t\t\t\t\t\t\t// Handle the global AJAX counter\r\n\t\t\t\t\t\t\tif (!(--jQuery.active)) {\r\n\t\t\t\t\t\t\t\tjQuery.event.trigger(\"ajaxStop\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn jqXHR;\r\n\t\t\t\t},\r\n\r\n\t\t\t\tgetJSON: function (url, data, callback) {\r\n\t\t\t\t\treturn jQuery.get(url, data, callback, \"json\");\r\n\t\t\t\t},\r\n\r\n\t\t\t\tgetScript: function (url, callback) {\r\n\t\t\t\t\treturn jQuery.get(url, undefined, callback, \"script\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tjQuery.each([\"get\", \"post\"], function (_i, method) {\r\n\t\t\t\tjQuery[method] = function (url, data, callback, type) {\r\n\r\n\t\t\t\t\t// Shift arguments if data argument was omitted\r\n\t\t\t\t\tif (isFunction(data)) {\r\n\t\t\t\t\t\ttype = type || callback;\r\n\t\t\t\t\t\tcallback = data;\r\n\t\t\t\t\t\tdata = undefined;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// The url can be an options object (which then must have .url)\r\n\t\t\t\t\treturn jQuery.ajax(jQuery.extend({\r\n\t\t\t\t\t\turl: url,\r\n\t\t\t\t\t\ttype: method,\r\n\t\t\t\t\t\tdataType: type,\r\n\t\t\t\t\t\tdata: data,\r\n\t\t\t\t\t\tsuccess: callback\r\n\t\t\t\t\t}, jQuery.isPlainObject(url) && url));\r\n\t\t\t\t};\r\n\t\t\t});\r\n\r\n\t\t\tjQuery.ajaxPrefilter(function (s) {\r\n\t\t\t\tvar i;\r\n\t\t\t\tfor (i in s.headers) {\r\n\t\t\t\t\tif (i.toLowerCase() === \"content-type\") {\r\n\t\t\t\t\t\ts.contentType = s.headers[i] || \"\";\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\t\tjQuery._evalUrl = function (url, options, doc) {\r\n\t\t\t\treturn jQuery.ajax({\r\n\t\t\t\t\turl: url,\r\n\r\n\t\t\t\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\r\n\t\t\t\t\ttype: \"GET\",\r\n\t\t\t\t\tdataType: \"script\",\r\n\t\t\t\t\tcache: true,\r\n\t\t\t\t\tasync: false,\r\n\t\t\t\t\tglobal: false,\r\n\r\n\t\t\t\t\t// Only evaluate the response if it is successful (gh-4126)\r\n\t\t\t\t\t// dataFilter is not invoked for failure responses, so using it instead\r\n\t\t\t\t\t// of the default converter is kludgy but it works.\r\n\t\t\t\t\tconverters: {\r\n\t\t\t\t\t\t\"text script\": function () { }\r\n\t\t\t\t\t},\r\n\t\t\t\t\tdataFilter: function (response) {\r\n\t\t\t\t\t\tjQuery.globalEval(response, options, doc);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t};\r\n\r\n\r\n\t\t\tjQuery.fn.extend({\r\n\t\t\t\twrapAll: function (html) {\r\n\t\t\t\t\tvar wrap;\r\n\r\n\t\t\t\t\tif (this[0]) {\r\n\t\t\t\t\t\tif (isFunction(html)) {\r\n\t\t\t\t\t\t\thtml = html.call(this[0]);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// The elements to wrap the target around\r\n\t\t\t\t\t\twrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\r\n\r\n\t\t\t\t\t\tif (this[0].parentNode) {\r\n\t\t\t\t\t\t\twrap.insertBefore(this[0]);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\twrap.map(function () {\r\n\t\t\t\t\t\t\tvar elem = this;\r\n\r\n\t\t\t\t\t\t\twhile (elem.firstElementChild) {\r\n\t\t\t\t\t\t\t\telem = elem.firstElementChild;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn elem;\r\n\t\t\t\t\t\t}).append(this);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t},\r\n\r\n\t\t\t\twrapInner: function (html) {\r\n\t\t\t\t\tif (isFunction(html)) {\r\n\t\t\t\t\t\treturn this.each(function (i) {\r\n\t\t\t\t\t\t\tjQuery(this).wrapInner(html.call(this, i));\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\tvar self = jQuery(this),\r\n\t\t\t\t\t\t\tcontents = self.contents();\r\n\r\n\t\t\t\t\t\tif (contents.length) {\r\n\t\t\t\t\t\t\tcontents.wrapAll(html);\r\n\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tself.append(html);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\r\n\t\t\t\twrap: function (html) {\r\n\t\t\t\t\tvar htmlIsFunction = isFunction(html);\r\n\r\n\t\t\t\t\treturn this.each(function (i) {\r\n\t\t\t\t\t\tjQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\r\n\t\t\t\tunwrap: function (selector) {\r\n\t\t\t\t\tthis.parent(selector).not(\"body\").each(function () {\r\n\t\t\t\t\t\tjQuery(this).replaceWith(this.childNodes);\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\t\tjQuery.expr.pseudos.hidden = function (elem) {\r\n\t\t\t\treturn !jQuery.expr.pseudos.visible(elem);\r\n\t\t\t};\r\n\t\t\tjQuery.expr.pseudos.visible = function (elem) {\r\n\t\t\t\treturn !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\r\n\t\t\t};\r\n\r\n\r\n\r\n\r\n\t\t\tjQuery.ajaxSettings.xhr = function () {\r\n\t\t\t\ttry {\r\n\t\t\t\t\treturn new window.XMLHttpRequest();\r\n\t\t\t\t} catch (e) { }\r\n\t\t\t};\r\n\r\n\t\t\tvar xhrSuccessStatus = {\r\n\r\n\t\t\t\t// File protocol always yields status code 0, assume 200\r\n\t\t\t\t0: 200,\r\n\r\n\t\t\t\t// Support: IE <=9 only\r\n\t\t\t\t// #1450: sometimes IE returns 1223 when it should be 204\r\n\t\t\t\t1223: 204\r\n\t\t\t},\r\n\t\t\t\txhrSupported = jQuery.ajaxSettings.xhr();\r\n\r\n\t\t\tsupport.cors = !!xhrSupported && (\"withCredentials\" in xhrSupported);\r\n\t\t\tsupport.ajax = xhrSupported = !!xhrSupported;\r\n\r\n\t\t\tjQuery.ajaxTransport(function (options) {\r\n\t\t\t\tvar callback, errorCallback;\r\n\r\n\t\t\t\t// Cross domain only allowed if supported through XMLHttpRequest\r\n\t\t\t\tif (support.cors || xhrSupported && !options.crossDomain) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tsend: function (headers, complete) {\r\n\t\t\t\t\t\t\tvar i,\r\n\t\t\t\t\t\t\t\txhr = options.xhr();\r\n\r\n\t\t\t\t\t\t\txhr.open(\r\n\t\t\t\t\t\t\t\toptions.type,\r\n\t\t\t\t\t\t\t\toptions.url,\r\n\t\t\t\t\t\t\t\toptions.async,\r\n\t\t\t\t\t\t\t\toptions.username,\r\n\t\t\t\t\t\t\t\toptions.password\r\n\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t// Apply custom fields if provided\r\n\t\t\t\t\t\t\tif (options.xhrFields) {\r\n\t\t\t\t\t\t\t\tfor (i in options.xhrFields) {\r\n\t\t\t\t\t\t\t\t\txhr[i] = options.xhrFields[i];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Override mime type if needed\r\n\t\t\t\t\t\t\tif (options.mimeType && xhr.overrideMimeType) {\r\n\t\t\t\t\t\t\t\txhr.overrideMimeType(options.mimeType);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// X-Requested-With header\r\n\t\t\t\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\r\n\t\t\t\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\r\n\t\t\t\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\r\n\t\t\t\t\t\t\t// For same-domain requests, won't change header if already provided.\r\n\t\t\t\t\t\t\tif (!options.crossDomain && !headers[\"X-Requested-With\"]) {\r\n\t\t\t\t\t\t\t\theaders[\"X-Requested-With\"] = \"XMLHttpRequest\";\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Set headers\r\n\t\t\t\t\t\t\tfor (i in headers) {\r\n\t\t\t\t\t\t\t\txhr.setRequestHeader(i, headers[i]);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Callback\r\n\t\t\t\t\t\t\tcallback = function (type) {\r\n\t\t\t\t\t\t\t\treturn function () {\r\n\t\t\t\t\t\t\t\t\tif (callback) {\r\n\t\t\t\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\r\n\t\t\t\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\r\n\t\t\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (type === \"abort\") {\r\n\t\t\t\t\t\t\t\t\t\t\txhr.abort();\r\n\t\t\t\t\t\t\t\t\t\t} else if (type === \"error\") {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\r\n\t\t\t\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\r\n\t\t\t\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\r\n\t\t\t\t\t\t\t\t\t\t\tif (typeof xhr.status !== \"number\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\tcomplete(0, \"error\");\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tcomplete(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\r\n\t\t\t\t\t\t\t\t\t\t\t\t\txhr.status,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\txhr.statusText\r\n\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tcomplete(\r\n\t\t\t\t\t\t\t\t\t\t\t\txhrSuccessStatus[xhr.status] || xhr.status,\r\n\t\t\t\t\t\t\t\t\t\t\t\txhr.statusText,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\r\n\t\t\t\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\r\n\t\t\t\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\r\n\t\t\t\t\t\t\t\t\t\t\t\t(xhr.responseType || \"text\") !== \"text\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\r\n\t\t\t\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t// Listen to events\r\n\t\t\t\t\t\t\txhr.onload = callback();\r\n\t\t\t\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback(\"error\");\r\n\r\n\t\t\t\t\t\t\t// Support: IE 9 only\r\n\t\t\t\t\t\t\t// Use onreadystatechange to replace onabort\r\n\t\t\t\t\t\t\t// to handle uncaught aborts\r\n\t\t\t\t\t\t\tif (xhr.onabort !== undefined) {\r\n\t\t\t\t\t\t\t\txhr.onabort = errorCallback;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\txhr.onreadystatechange = function () {\r\n\r\n\t\t\t\t\t\t\t\t\t// Check readyState before timeout as it changes\r\n\t\t\t\t\t\t\t\t\tif (xhr.readyState === 4) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Allow onerror to be called first,\r\n\t\t\t\t\t\t\t\t\t\t// but that will not handle a native abort\r\n\t\t\t\t\t\t\t\t\t\t// Also, save errorCallback to a variable\r\n\t\t\t\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\r\n\t\t\t\t\t\t\t\t\t\twindow.setTimeout(function () {\r\n\t\t\t\t\t\t\t\t\t\t\tif (callback) {\r\n\t\t\t\t\t\t\t\t\t\t\t\terrorCallback();\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Create the abort callback\r\n\t\t\t\t\t\t\tcallback = callback(\"abort\");\r\n\r\n\t\t\t\t\t\t\ttry {\r\n\r\n\t\t\t\t\t\t\t\t// Do send the request (this may raise an exception)\r\n\t\t\t\t\t\t\t\txhr.send(options.hasContent && options.data || null);\r\n\t\t\t\t\t\t\t} catch (e) {\r\n\r\n\t\t\t\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\r\n\t\t\t\t\t\t\t\tif (callback) {\r\n\t\t\t\t\t\t\t\t\tthrow e;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tabort: function () {\r\n\t\t\t\t\t\t\tif (callback) {\r\n\t\t\t\t\t\t\t\tcallback();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\r\n\r\n\t\t\t// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\r\n\t\t\tjQuery.ajaxPrefilter(function (s) {\r\n\t\t\t\tif (s.crossDomain) {\r\n\t\t\t\t\ts.contents.script = false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// Install script dataType\r\n\t\t\tjQuery.ajaxSetup({\r\n\t\t\t\taccepts: {\r\n\t\t\t\t\tscript: \"text/javascript, application/javascript, \" +\r\n\t\t\t\t\t\t\"application/ecmascript, application/x-ecmascript\"\r\n\t\t\t\t},\r\n\t\t\t\tcontents: {\r\n\t\t\t\t\tscript: /\\b(?:java|ecma)script\\b/\r\n\t\t\t\t},\r\n\t\t\t\tconverters: {\r\n\t\t\t\t\t\"text script\": function (text) {\r\n\t\t\t\t\t\tjQuery.globalEval(text);\r\n\t\t\t\t\t\treturn text;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// Handle cache's special case and crossDomain\r\n\t\t\tjQuery.ajaxPrefilter(\"script\", function (s) {\r\n\t\t\t\tif (s.cache === undefined) {\r\n\t\t\t\t\ts.cache = false;\r\n\t\t\t\t}\r\n\t\t\t\tif (s.crossDomain) {\r\n\t\t\t\t\ts.type = \"GET\";\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// Bind script tag hack transport\r\n\t\t\tjQuery.ajaxTransport(\"script\", function (s) {\r\n\r\n\t\t\t\t// This transport only deals with cross domain or forced-by-attrs requests\r\n\t\t\t\tif (s.crossDomain || s.scriptAttrs) {\r\n\t\t\t\t\tvar script, callback;\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tsend: function (_, complete) {\r\n\t\t\t\t\t\t\tscript = jQuery(\"<script>\")\r\n\t\t\t\t\t\t\t\t.attr(s.scriptAttrs || {})\r\n\t\t\t\t\t\t\t\t.prop({ charset: s.scriptCharset, src: s.url })\r\n\t\t\t\t\t\t\t\t.on(\"load error\", callback = function (evt) {\r\n\t\t\t\t\t\t\t\t\tscript.remove();\r\n\t\t\t\t\t\t\t\t\tcallback = null;\r\n\t\t\t\t\t\t\t\t\tif (evt) {\r\n\t\t\t\t\t\t\t\t\t\tcomplete(evt.type === \"error\" ? 404 : 200, evt.type);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\r\n\t\t\t\t\t\t\tdocument.head.appendChild(script[0]);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tabort: function () {\r\n\t\t\t\t\t\t\tif (callback) {\r\n\t\t\t\t\t\t\t\tcallback();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\r\n\r\n\t\t\tvar oldCallbacks = [],\r\n\t\t\t\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\r\n\r\n\t\t\t// Default jsonp settings\r\n\t\t\tjQuery.ajaxSetup({\r\n\t\t\t\tjsonp: \"callback\",\r\n\t\t\t\tjsonpCallback: function () {\r\n\t\t\t\t\tvar callback = oldCallbacks.pop() || (jQuery.expando + \"_\" + (nonce.guid++));\r\n\t\t\t\t\tthis[callback] = true;\r\n\t\t\t\t\treturn callback;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// Detect, normalize options and install callbacks for jsonp requests\r\n\t\t\tjQuery.ajaxPrefilter(\"json jsonp\", function (s, originalSettings, jqXHR) {\r\n\r\n\t\t\t\tvar callbackName, overwritten, responseContainer,\r\n\t\t\t\t\tjsonProp = s.jsonp !== false && (rjsonp.test(s.url) ?\r\n\t\t\t\t\t\t\"url\" :\r\n\t\t\t\t\t\ttypeof s.data === \"string\" &&\r\n\t\t\t\t\t\t(s.contentType || \"\")\r\n\t\t\t\t\t\t\t.indexOf(\"application/x-www-form-urlencoded\") === 0 &&\r\n\t\t\t\t\t\trjsonp.test(s.data) && \"data\"\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\r\n\t\t\t\tif (jsonProp || s.dataTypes[0] === \"jsonp\") {\r\n\r\n\t\t\t\t\t// Get callback name, remembering preexisting value associated with it\r\n\t\t\t\t\tcallbackName = s.jsonpCallback = isFunction(s.jsonpCallback) ?\r\n\t\t\t\t\t\ts.jsonpCallback() :\r\n\t\t\t\t\t\ts.jsonpCallback;\r\n\r\n\t\t\t\t\t// Insert callback into url or form data\r\n\t\t\t\t\tif (jsonProp) {\r\n\t\t\t\t\t\ts[jsonProp] = s[jsonProp].replace(rjsonp, \"$1\" + callbackName);\r\n\t\t\t\t\t} else if (s.jsonp !== false) {\r\n\t\t\t\t\t\ts.url += (rquery.test(s.url) ? \"&\" : \"?\") + s.jsonp + \"=\" + callbackName;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Use data converter to retrieve json after script execution\r\n\t\t\t\t\ts.converters[\"script json\"] = function () {\r\n\t\t\t\t\t\tif (!responseContainer) {\r\n\t\t\t\t\t\t\tjQuery.error(callbackName + \" was not called\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn responseContainer[0];\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// Force json dataType\r\n\t\t\t\t\ts.dataTypes[0] = \"json\";\r\n\r\n\t\t\t\t\t// Install callback\r\n\t\t\t\t\toverwritten = window[callbackName];\r\n\t\t\t\t\twindow[callbackName] = function () {\r\n\t\t\t\t\t\tresponseContainer = arguments;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// Clean-up function (fires after converters)\r\n\t\t\t\t\tjqXHR.always(function () {\r\n\r\n\t\t\t\t\t\t// If previous value didn't exist - remove it\r\n\t\t\t\t\t\tif (overwritten === undefined) {\r\n\t\t\t\t\t\t\tjQuery(window).removeProp(callbackName);\r\n\r\n\t\t\t\t\t\t\t// Otherwise restore preexisting value\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\twindow[callbackName] = overwritten;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Save back as free\r\n\t\t\t\t\t\tif (s[callbackName]) {\r\n\r\n\t\t\t\t\t\t\t// Make sure that re-using the options doesn't screw things around\r\n\t\t\t\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\r\n\r\n\t\t\t\t\t\t\t// Save the callback name for future use\r\n\t\t\t\t\t\t\toldCallbacks.push(callbackName);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Call if it was a function and we have a response\r\n\t\t\t\t\t\tif (responseContainer && isFunction(overwritten)) {\r\n\t\t\t\t\t\t\toverwritten(responseContainer[0]);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tresponseContainer = overwritten = undefined;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Delegate to script\r\n\t\t\t\t\treturn \"script\";\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\r\n\r\n\t\t\t// Support: Safari 8 only\r\n\t\t\t// In Safari 8 documents created via document.implementation.createHTMLDocument\r\n\t\t\t// collapse sibling forms: the second one becomes a child of the first one.\r\n\t\t\t// Because of that, this security measure has to be disabled in Safari 8.\r\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=137337\r\n\t\t\tsupport.createHTMLDocument = (function () {\r\n\t\t\t\tvar body = document.implementation.createHTMLDocument(\"\").body;\r\n\t\t\t\tbody.innerHTML = \"<form></form><form></form>\";\r\n\t\t\t\treturn body.childNodes.length === 2;\r\n\t\t\t})();\r\n\r\n\r\n\t\t\t// Argument \"data\" should be string of html\r\n\t\t\t// context (optional): If specified, the fragment will be created in this context,\r\n\t\t\t// defaults to document\r\n\t\t\t// keepScripts (optional): If true, will include scripts passed in the html string\r\n\t\t\tjQuery.parseHTML = function (data, context, keepScripts) {\r\n\t\t\t\tif (typeof data !== \"string\") {\r\n\t\t\t\t\treturn [];\r\n\t\t\t\t}\r\n\t\t\t\tif (typeof context === \"boolean\") {\r\n\t\t\t\t\tkeepScripts = context;\r\n\t\t\t\t\tcontext = false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar base, parsed, scripts;\r\n\r\n\t\t\t\tif (!context) {\r\n\r\n\t\t\t\t\t// Stop scripts or inline event handlers from being executed immediately\r\n\t\t\t\t\t// by using document.implementation\r\n\t\t\t\t\tif (support.createHTMLDocument) {\r\n\t\t\t\t\t\tcontext = document.implementation.createHTMLDocument(\"\");\r\n\r\n\t\t\t\t\t\t// Set the base href for the created document\r\n\t\t\t\t\t\t// so any parsed elements with URLs\r\n\t\t\t\t\t\t// are based on the document's URL (gh-2965)\r\n\t\t\t\t\t\tbase = context.createElement(\"base\");\r\n\t\t\t\t\t\tbase.href = document.location.href;\r\n\t\t\t\t\t\tcontext.head.appendChild(base);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tcontext = document;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tparsed = rsingleTag.exec(data);\r\n\t\t\t\tscripts = !keepScripts && [];\r\n\r\n\t\t\t\t// Single tag\r\n\t\t\t\tif (parsed) {\r\n\t\t\t\t\treturn [context.createElement(parsed[1])];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tparsed = buildFragment([data], context, scripts);\r\n\r\n\t\t\t\tif (scripts && scripts.length) {\r\n\t\t\t\t\tjQuery(scripts).remove();\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn jQuery.merge([], parsed.childNodes);\r\n\t\t\t};\r\n\r\n\r\n\t\t\t/**\r\n\t\t\t * Load a url into a page\r\n\t\t\t */\r\n\t\t\tjQuery.fn.load = function (url, params, callback) {\r\n\t\t\t\tvar selector, type, response,\r\n\t\t\t\t\tself = this,\r\n\t\t\t\t\toff = url.indexOf(\" \");\r\n\r\n\t\t\t\tif (off > -1) {\r\n\t\t\t\t\tselector = stripAndCollapse(url.slice(off));\r\n\t\t\t\t\turl = url.slice(0, off);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// If it's a function\r\n\t\t\t\tif (isFunction(params)) {\r\n\r\n\t\t\t\t\t// We assume that it's the callback\r\n\t\t\t\t\tcallback = params;\r\n\t\t\t\t\tparams = undefined;\r\n\r\n\t\t\t\t\t// Otherwise, build a param string\r\n\t\t\t\t} else if (params && typeof params === \"object\") {\r\n\t\t\t\t\ttype = \"POST\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// If we have elements to modify, make the request\r\n\t\t\t\tif (self.length > 0) {\r\n\t\t\t\t\tjQuery.ajax({\r\n\t\t\t\t\t\turl: url,\r\n\r\n\t\t\t\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\r\n\t\t\t\t\t\t// Make value of this field explicit since\r\n\t\t\t\t\t\t// user can override it through ajaxSetup method\r\n\t\t\t\t\t\ttype: type || \"GET\",\r\n\t\t\t\t\t\tdataType: \"html\",\r\n\t\t\t\t\t\tdata: params\r\n\t\t\t\t\t}).done(function (responseText) {\r\n\r\n\t\t\t\t\t\t// Save response for use in complete callback\r\n\t\t\t\t\t\tresponse = arguments;\r\n\r\n\t\t\t\t\t\tself.html(selector ?\r\n\r\n\t\t\t\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\r\n\t\t\t\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\r\n\t\t\t\t\t\t\tjQuery(\"<div>\").append(jQuery.parseHTML(responseText)).find(selector) :\r\n\r\n\t\t\t\t\t\t\t// Otherwise use the full result\r\n\t\t\t\t\t\t\tresponseText);\r\n\r\n\t\t\t\t\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\r\n\t\t\t\t\t\t// but they are ignored because response was set above.\r\n\t\t\t\t\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\r\n\t\t\t\t\t}).always(callback && function (jqXHR, status) {\r\n\t\t\t\t\t\tself.each(function () {\r\n\t\t\t\t\t\t\tcallback.apply(this, response || [jqXHR.responseText, status, jqXHR]);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn this;\r\n\t\t\t};\r\n\r\n\r\n\r\n\r\n\t\t\tjQuery.expr.pseudos.animated = function (elem) {\r\n\t\t\t\treturn jQuery.grep(jQuery.timers, function (fn) {\r\n\t\t\t\t\treturn elem === fn.elem;\r\n\t\t\t\t}).length;\r\n\t\t\t};\r\n\r\n\r\n\r\n\r\n\t\t\tjQuery.offset = {\r\n\t\t\t\tsetOffset: function (elem, options, i) {\r\n\t\t\t\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\r\n\t\t\t\t\t\tposition = jQuery.css(elem, \"position\"),\r\n\t\t\t\t\t\tcurElem = jQuery(elem),\r\n\t\t\t\t\t\tprops = {};\r\n\r\n\t\t\t\t\t// Set position first, in-case top/left are set even on static elem\r\n\t\t\t\t\tif (position === \"static\") {\r\n\t\t\t\t\t\telem.style.position = \"relative\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcurOffset = curElem.offset();\r\n\t\t\t\t\tcurCSSTop = jQuery.css(elem, \"top\");\r\n\t\t\t\t\tcurCSSLeft = jQuery.css(elem, \"left\");\r\n\t\t\t\t\tcalculatePosition = (position === \"absolute\" || position === \"fixed\") &&\r\n\t\t\t\t\t\t(curCSSTop + curCSSLeft).indexOf(\"auto\") > -1;\r\n\r\n\t\t\t\t\t// Need to be able to calculate position if either\r\n\t\t\t\t\t// top or left is auto and position is either absolute or fixed\r\n\t\t\t\t\tif (calculatePosition) {\r\n\t\t\t\t\t\tcurPosition = curElem.position();\r\n\t\t\t\t\t\tcurTop = curPosition.top;\r\n\t\t\t\t\t\tcurLeft = curPosition.left;\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tcurTop = parseFloat(curCSSTop) || 0;\r\n\t\t\t\t\t\tcurLeft = parseFloat(curCSSLeft) || 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (isFunction(options)) {\r\n\r\n\t\t\t\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\r\n\t\t\t\t\t\toptions = options.call(elem, i, jQuery.extend({}, curOffset));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (options.top != null) {\r\n\t\t\t\t\t\tprops.top = (options.top - curOffset.top) + curTop;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (options.left != null) {\r\n\t\t\t\t\t\tprops.left = (options.left - curOffset.left) + curLeft;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (\"using\" in options) {\r\n\t\t\t\t\t\toptions.using.call(elem, props);\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (typeof props.top === \"number\") {\r\n\t\t\t\t\t\t\tprops.top += \"px\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (typeof props.left === \"number\") {\r\n\t\t\t\t\t\t\tprops.left += \"px\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcurElem.css(props);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tjQuery.fn.extend({\r\n\r\n\t\t\t\t// offset() relates an element's border box to the document origin\r\n\t\t\t\toffset: function (options) {\r\n\r\n\t\t\t\t\t// Preserve chaining for setter\r\n\t\t\t\t\tif (arguments.length) {\r\n\t\t\t\t\t\treturn options === undefined ?\r\n\t\t\t\t\t\t\tthis :\r\n\t\t\t\t\t\t\tthis.each(function (i) {\r\n\t\t\t\t\t\t\t\tjQuery.offset.setOffset(this, options, i);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar rect, win,\r\n\t\t\t\t\t\telem = this[0];\r\n\r\n\t\t\t\t\tif (!elem) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\r\n\t\t\t\t\t// Support: IE <=11 only\r\n\t\t\t\t\t// Running getBoundingClientRect on a\r\n\t\t\t\t\t// disconnected node in IE throws an error\r\n\t\t\t\t\tif (!elem.getClientRects().length) {\r\n\t\t\t\t\t\treturn { top: 0, left: 0 };\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\r\n\t\t\t\t\trect = elem.getBoundingClientRect();\r\n\t\t\t\t\twin = elem.ownerDocument.defaultView;\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\ttop: rect.top + win.pageYOffset,\r\n\t\t\t\t\t\tleft: rect.left + win.pageXOffset\r\n\t\t\t\t\t};\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// position() relates an element's margin box to its offset parent's padding box\r\n\t\t\t\t// This corresponds to the behavior of CSS absolute positioning\r\n\t\t\t\tposition: function () {\r\n\t\t\t\t\tif (!this[0]) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar offsetParent, offset, doc,\r\n\t\t\t\t\t\telem = this[0],\r\n\t\t\t\t\t\tparentOffset = { top: 0, left: 0 };\r\n\r\n\t\t\t\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\r\n\t\t\t\t\tif (jQuery.css(elem, \"position\") === \"fixed\") {\r\n\r\n\t\t\t\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\r\n\t\t\t\t\t\toffset = elem.getBoundingClientRect();\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\toffset = this.offset();\r\n\r\n\t\t\t\t\t\t// Account for the *real* offset parent, which can be the document or its root element\r\n\t\t\t\t\t\t// when a statically positioned element is identified\r\n\t\t\t\t\t\tdoc = elem.ownerDocument;\r\n\t\t\t\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\r\n\t\t\t\t\t\twhile (offsetParent &&\r\n\t\t\t\t\t\t\t(offsetParent === doc.body || offsetParent === doc.documentElement) &&\r\n\t\t\t\t\t\t\tjQuery.css(offsetParent, \"position\") === \"static\") {\r\n\r\n\t\t\t\t\t\t\toffsetParent = offsetParent.parentNode;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (offsetParent && offsetParent !== elem && offsetParent.nodeType === 1) {\r\n\r\n\t\t\t\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\r\n\t\t\t\t\t\t\tparentOffset = jQuery(offsetParent).offset();\r\n\t\t\t\t\t\t\tparentOffset.top += jQuery.css(offsetParent, \"borderTopWidth\", true);\r\n\t\t\t\t\t\t\tparentOffset.left += jQuery.css(offsetParent, \"borderLeftWidth\", true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Subtract parent offsets and element margins\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\ttop: offset.top - parentOffset.top - jQuery.css(elem, \"marginTop\", true),\r\n\t\t\t\t\t\tleft: offset.left - parentOffset.left - jQuery.css(elem, \"marginLeft\", true)\r\n\t\t\t\t\t};\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// This method will return documentElement in the following cases:\r\n\t\t\t\t// 1) For the element inside the iframe without offsetParent, this method will return\r\n\t\t\t\t// documentElement of the parent window\r\n\t\t\t\t// 2) For the hidden or detached element\r\n\t\t\t\t// 3) For body or html element, i.e. in case of the html node - it will return itself\r\n\t\t\t\t//\r\n\t\t\t\t// but those exceptions were never presented as a real life use-cases\r\n\t\t\t\t// and might be considered as more preferable results.\r\n\t\t\t\t//\r\n\t\t\t\t// This logic, however, is not guaranteed and can change at any point in the future\r\n\t\t\t\toffsetParent: function () {\r\n\t\t\t\t\treturn this.map(function () {\r\n\t\t\t\t\t\tvar offsetParent = this.offsetParent;\r\n\r\n\t\t\t\t\t\twhile (offsetParent && jQuery.css(offsetParent, \"position\") === \"static\") {\r\n\t\t\t\t\t\t\toffsetParent = offsetParent.offsetParent;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn offsetParent || documentElement;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// Create scrollLeft and scrollTop methods\r\n\t\t\tjQuery.each({ scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function (method, prop) {\r\n\t\t\t\tvar top = \"pageYOffset\" === prop;\r\n\r\n\t\t\t\tjQuery.fn[method] = function (val) {\r\n\t\t\t\t\treturn access(this, function (elem, method, val) {\r\n\r\n\t\t\t\t\t\t// Coalesce documents and windows\r\n\t\t\t\t\t\tvar win;\r\n\t\t\t\t\t\tif (isWindow(elem)) {\r\n\t\t\t\t\t\t\twin = elem;\r\n\t\t\t\t\t\t} else if (elem.nodeType === 9) {\r\n\t\t\t\t\t\t\twin = elem.defaultView;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (val === undefined) {\r\n\t\t\t\t\t\t\treturn win ? win[prop] : elem[method];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (win) {\r\n\t\t\t\t\t\t\twin.scrollTo(\r\n\t\t\t\t\t\t\t\t!top ? val : win.pageXOffset,\r\n\t\t\t\t\t\t\t\ttop ? val : win.pageYOffset\r\n\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\telem[method] = val;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, method, val, arguments.length);\r\n\t\t\t\t};\r\n\t\t\t});\r\n\r\n\t\t\t// Support: Safari <=7 - 9.1, Chrome <=37 - 49\r\n\t\t\t// Add the top/left cssHooks using jQuery.fn.position\r\n\t\t\t// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\r\n\t\t\t// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\r\n\t\t\t// getComputedStyle returns percent when specified for top/left/bottom/right;\r\n\t\t\t// rather than make the css module depend on the offset module, just check for it here\r\n\t\t\tjQuery.each([\"top\", \"left\"], function (_i, prop) {\r\n\t\t\t\tjQuery.cssHooks[prop] = addGetHookIf(support.pixelPosition,\r\n\t\t\t\t\tfunction (elem, computed) {\r\n\t\t\t\t\t\tif (computed) {\r\n\t\t\t\t\t\t\tcomputed = curCSS(elem, prop);\r\n\r\n\t\t\t\t\t\t\t// If curCSS returns percentage, fallback to offset\r\n\t\t\t\t\t\t\treturn rnumnonpx.test(computed) ?\r\n\t\t\t\t\t\t\t\tjQuery(elem).position()[prop] + \"px\" :\r\n\t\t\t\t\t\t\t\tcomputed;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t});\r\n\r\n\r\n\t\t\t// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\r\n\t\t\tjQuery.each({ Height: \"height\", Width: \"width\" }, function (name, type) {\r\n\t\t\t\tjQuery.each({ padding: \"inner\" + name, content: type, \"\": \"outer\" + name },\r\n\t\t\t\t\tfunction (defaultExtra, funcName) {\r\n\r\n\t\t\t\t\t\t// Margin is only for outerHeight, outerWidth\r\n\t\t\t\t\t\tjQuery.fn[funcName] = function (margin, value) {\r\n\t\t\t\t\t\t\tvar chainable = arguments.length && (defaultExtra || typeof margin !== \"boolean\"),\r\n\t\t\t\t\t\t\t\textra = defaultExtra || (margin === true || value === true ? \"margin\" : \"border\");\r\n\r\n\t\t\t\t\t\t\treturn access(this, function (elem, type, value) {\r\n\t\t\t\t\t\t\t\tvar doc;\r\n\r\n\t\t\t\t\t\t\t\tif (isWindow(elem)) {\r\n\r\n\t\t\t\t\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\r\n\t\t\t\t\t\t\t\t\treturn funcName.indexOf(\"outer\") === 0 ?\r\n\t\t\t\t\t\t\t\t\t\telem[\"inner\" + name] :\r\n\t\t\t\t\t\t\t\t\t\telem.document.documentElement[\"client\" + name];\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Get document width or height\r\n\t\t\t\t\t\t\t\tif (elem.nodeType === 9) {\r\n\t\t\t\t\t\t\t\t\tdoc = elem.documentElement;\r\n\r\n\t\t\t\t\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\r\n\t\t\t\t\t\t\t\t\t// whichever is greatest\r\n\t\t\t\t\t\t\t\t\treturn Math.max(\r\n\t\t\t\t\t\t\t\t\t\telem.body[\"scroll\" + name], doc[\"scroll\" + name],\r\n\t\t\t\t\t\t\t\t\t\telem.body[\"offset\" + name], doc[\"offset\" + name],\r\n\t\t\t\t\t\t\t\t\t\tdoc[\"client\" + name]\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn value === undefined ?\r\n\r\n\t\t\t\t\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\r\n\t\t\t\t\t\t\t\t\tjQuery.css(elem, type, extra) :\r\n\r\n\t\t\t\t\t\t\t\t\t// Set width or height on the element\r\n\t\t\t\t\t\t\t\t\tjQuery.style(elem, type, value, extra);\r\n\t\t\t\t\t\t\t}, type, chainable ? margin : undefined, chainable);\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t});\r\n\r\n\r\n\t\t\tjQuery.each([\r\n\t\t\t\t\"ajaxStart\",\r\n\t\t\t\t\"ajaxStop\",\r\n\t\t\t\t\"ajaxComplete\",\r\n\t\t\t\t\"ajaxError\",\r\n\t\t\t\t\"ajaxSuccess\",\r\n\t\t\t\t\"ajaxSend\"\r\n\t\t\t], function (_i, type) {\r\n\t\t\t\tjQuery.fn[type] = function (fn) {\r\n\t\t\t\t\treturn this.on(type, fn);\r\n\t\t\t\t};\r\n\t\t\t});\r\n\r\n\r\n\r\n\r\n\t\t\tjQuery.fn.extend({\r\n\r\n\t\t\t\tbind: function (types, data, fn) {\r\n\t\t\t\t\treturn this.on(types, null, data, fn);\r\n\t\t\t\t},\r\n\t\t\t\tunbind: function (types, fn) {\r\n\t\t\t\t\treturn this.off(types, null, fn);\r\n\t\t\t\t},\r\n\r\n\t\t\t\tdelegate: function (selector, types, data, fn) {\r\n\t\t\t\t\treturn this.on(types, selector, data, fn);\r\n\t\t\t\t},\r\n\t\t\t\tundelegate: function (selector, types, fn) {\r\n\r\n\t\t\t\t\t// ( namespace ) or ( selector, types [, fn] )\r\n\t\t\t\t\treturn arguments.length === 1 ?\r\n\t\t\t\t\t\tthis.off(selector, \"**\") :\r\n\t\t\t\t\t\tthis.off(types, selector || \"**\", fn);\r\n\t\t\t\t},\r\n\r\n\t\t\t\thover: function (fnOver, fnOut) {\r\n\t\t\t\t\treturn this.mouseenter(fnOver).mouseleave(fnOut || fnOver);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tjQuery.each((\"blur focus focusin focusout resize scroll click dblclick \" +\r\n\t\t\t\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\r\n\t\t\t\t\"change select submit keydown keypress keyup contextmenu\").split(\" \"),\r\n\t\t\t\tfunction (_i, name) {\r\n\r\n\t\t\t\t\t// Handle event binding\r\n\t\t\t\t\tjQuery.fn[name] = function (data, fn) {\r\n\t\t\t\t\t\treturn arguments.length > 0 ?\r\n\t\t\t\t\t\t\tthis.on(name, null, data, fn) :\r\n\t\t\t\t\t\t\tthis.trigger(name);\r\n\t\t\t\t\t};\r\n\t\t\t\t});\r\n\r\n\r\n\r\n\r\n\t\t\t// Support: Android <=4.0 only\r\n\t\t\t// Make sure we trim BOM and NBSP\r\n\t\t\tvar rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\r\n\r\n\t\t\t// Bind a function to a context, optionally partially applying any\r\n\t\t\t// arguments.\r\n\t\t\t// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\r\n\t\t\t// However, it is not slated for removal any time soon\r\n\t\t\tjQuery.proxy = function (fn, context) {\r\n\t\t\t\tvar tmp, args, proxy;\r\n\r\n\t\t\t\tif (typeof context === \"string\") {\r\n\t\t\t\t\ttmp = fn[context];\r\n\t\t\t\t\tcontext = fn;\r\n\t\t\t\t\tfn = tmp;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Quick check to determine if target is callable, in the spec\r\n\t\t\t\t// this throws a TypeError, but we will just return undefined.\r\n\t\t\t\tif (!isFunction(fn)) {\r\n\t\t\t\t\treturn undefined;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Simulated bind\r\n\t\t\t\targs = slice.call(arguments, 2);\r\n\t\t\t\tproxy = function () {\r\n\t\t\t\t\treturn fn.apply(context || this, args.concat(slice.call(arguments)));\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\r\n\t\t\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\r\n\r\n\t\t\t\treturn proxy;\r\n\t\t\t};\r\n\r\n\t\t\tjQuery.holdReady = function (hold) {\r\n\t\t\t\tif (hold) {\r\n\t\t\t\t\tjQuery.readyWait++;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tjQuery.ready(true);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tjQuery.isArray = Array.isArray;\r\n\t\t\tjQuery.parseJSON = JSON.parse;\r\n\t\t\tjQuery.nodeName = nodeName;\r\n\t\t\tjQuery.isFunction = isFunction;\r\n\t\t\tjQuery.isWindow = isWindow;\r\n\t\t\tjQuery.camelCase = camelCase;\r\n\t\t\tjQuery.type = toType;\r\n\r\n\t\t\tjQuery.now = Date.now;\r\n\r\n\t\t\tjQuery.isNumeric = function (obj) {\r\n\r\n\t\t\t\t// As of jQuery 3.0, isNumeric is limited to\r\n\t\t\t\t// strings and numbers (primitives or objects)\r\n\t\t\t\t// that can be coerced to finite numbers (gh-2662)\r\n\t\t\t\tvar type = jQuery.type(obj);\r\n\t\t\t\treturn (type === \"number\" || type === \"string\") &&\r\n\r\n\t\t\t\t\t// parseFloat NaNs numeric-cast false positives (\"\")\r\n\t\t\t\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\r\n\t\t\t\t\t// subtraction forces infinities to NaN\r\n\t\t\t\t\t!isNaN(obj - parseFloat(obj));\r\n\t\t\t};\r\n\r\n\t\t\tjQuery.trim = function (text) {\r\n\t\t\t\treturn text == null ?\r\n\t\t\t\t\t\"\" :\r\n\t\t\t\t\t(text + \"\").replace(rtrim, \"\");\r\n\t\t\t};\r\n\r\n\r\n\r\n\t\t\t// Register as a named AMD module, since jQuery can be concatenated with other\r\n\t\t\t// files that may use define, but not via a proper concatenation script that\r\n\t\t\t// understands anonymous AMD modules. A named AMD is safest and most robust\r\n\t\t\t// way to register. Lowercase jquery is used because AMD module names are\r\n\t\t\t// derived from file names, and jQuery is normally delivered in a lowercase\r\n\t\t\t// file name. Do this after creating the global so that if an AMD module wants\r\n\t\t\t// to call noConflict to hide this version of jQuery, it will work.\r\n\r\n\t\t\t// Note that for maximum portability, libraries that are not jQuery should\r\n\t\t\t// declare themselves as anonymous modules, and avoid setting a global if an\r\n\t\t\t// AMD loader is present. jQuery is a special case. For more information, see\r\n\t\t\t// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\r\n\r\n\t\t\tif (typeof define === \"function\" && define.amd) {\r\n\t\t\t\tdefine(\"jquery\", [], function () {\r\n\t\t\t\t\treturn jQuery;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\twindow.ccsJq = window.ccsJq || jQuery;\r\n\t\t})(window);\r\n\r\n\t\treturn ccsJq;\r\n\t}));\r\n"],"sourceRoot":"../.."}