{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./tlg/scripts/helpers.js","webpack:///./tlg/scripts/JS/jquery-3.6.0.js","webpack:///./tlg/scripts/JS/js.cookie.js","webpack:///./tlg/scripts/JS/chatbot.js","webpack:///./tlg/scripts/JS/vendor-service-force.js","webpack:///./tlg/scripts/lib/accordion.ts","webpack:///./tlg/assets/svg/accordion-arrow.svg","webpack:///./tlg/scripts/cookies.js","webpack:///./tlg/scripts/lib/modal.ts","webpack:///./tlg/scripts/toggleFIxedElements.js","webpack:///./tlg/scripts/sideMenu.js","webpack:///./tlg/scripts/menu.js","webpack:///./tlg/scripts/functions.js","webpack:///./tlg/scripts/staffMembers.js","webpack:///./tlg/scripts/modal.js","webpack:///./tlg/scripts/videoModals.js","webpack:///./tlg/scripts/searchFilters.js","webpack:///./tlg/scripts/listFilter.js","webpack:///./tlg/scripts/JS/JQuery-Login.js","webpack:///./tlg/scripts/main.js","webpack:///./tlg/scripts/sliders/box.js","webpack:///./tlg/scripts/sliders/videos.js","webpack:///./tlg/scripts/sliders/partnerShowcase.js","webpack:///./tlg/scripts/sliders/studentTestimonials.js","webpack:///./tlg/scripts/sliders.js","webpack:///./tlg/scripts/index.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","4","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","getWidth","innerWidth","document","documentElement","clientWidth","body","getElementOver","e","elementFromPoint","clientX","clientY","getCookie","v","cookie","match","setCookie","days","Date","setTime","getTime","toGMTString","deleteCookie","throttle","func","limit","lastCall","inThrottle","lastTimeout","args","clearTimeout","setTimeout","debounce","wait","immediate","timeout","context","later","callNow","parseHTML","div","createElement","innerHTML","firstElementChild","getRandomId","Math","random","toString","substr","global","factory","noGlobal","arr","getProto","getPrototypeOf","flat","array","concat","indexOf","class2type","hasOwn","fnToString","ObjectFunctionString","support","isFunction","obj","nodeType","item","isWindow","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","node","doc","val","script","text","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","toType","jQuery","selector","fn","init","isArrayLike","jquery","constructor","toArray","this","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","arguments","first","eq","last","even","grep","_elem","odd","len","end","sort","extend","options","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","undefined","expando","replace","isReady","error","msg","Error","noop","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","matches","callbackExpect","arg","guid","iterator","split","_i","toLowerCase","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","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","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","els","seed","nid","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","testContext","scope","toSelector","join","querySelectorAll","qsaError","removeAttribute","keys","cache","cacheLength","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","tmp","input","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","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","setFilters","idx","matched","matcher","unmatched","lang","elemLang","hash","location","activeElement","hasFocus","href","tabIndex","checked","selected","selectedIndex","_matchIndexes","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","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","self","rootjQuery","root","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","has","targets","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","Identity","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","_","flag","createOptions","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","empty","disable","lock","fireWith","Deferred","tuples","state","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","completed","removeEventListener","readyWait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","toUpperCase","camelCase","string","acceptData","owner","Data","uid","configurable","set","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","getDefaultDisplay","showHide","show","values","hide","toggle","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","rtypenamespace","returnTrue","returnFalse","expectSync","err","safeActiveElement","on","types","one","origFn","event","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","button","addProp","hook","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","charCode","keyCode","buttons","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","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","borderTopWidth","borderBottomWidth","offsetHeight","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","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","swing","cos","PI","fxNow","inProgress","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","complete","timer","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","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","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","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","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","ajaxConvert","getJSON","getScript","wrapAll","wrapInner","htmlIsFunction","unwrap","visible","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","_jQuery","_$","$","noConflict","w","registeredInModuleLoader","OldCookies","Cookies","api","decode","decodeURIComponent","converter","path","defaults","expires","toUTCString","stringify","write","stringifiedAttributes","attributeName","jar","cookies","charAt","read","withConverter","initESW","gslbBaseURL","embedded_svc","displayHelpButton","language","defaultMinimizedText","disabledMinimizedText","loadingText","enabledFeatures","entryFeature","baseLiveAgentContentURL","deploymentId","buttonId","baseLiveAgentURL","eswLiveAgentDevName","isOfflineSupportEnabled","appendHelpButton","isExternalPage","devMode","targetElement","elementForOnlineDisplay","elementForOfflineDisplay","defaultAssistiveText","showIcon","storageDomain","domain","linkAction","feature","valid","linkActionParameters","useCustomAuthentication","allowGuestUsers","requireSLDS","auth","validLinkActions","alwaysWarnOnBeforeUnload","validateHeaderValue","setSessionData","checkAuthentication","deleteSessionData","featureScripts","storedEventHandlers","messageHandlers","storageKeys","defaultSettings","snippetSettingsFile","eswFrame","availableFeatures","outboundMessagesAwaitingIframeLoad","pendingMessages","iframeScriptsToLoad","isAuthenticationRequired","isIframeReady","hasSessionDataLoaded","componentInitInProgress","domInitInProgress","loginPendingSerializedData","componentLoaded","onButtonStatusChange","setupMessageListener","getLinkActionData","getLightningOutParamsObj","config","additionalSettings","labelsLanguage","guestUserLang","eswConfigDeveloperName","eswConfigDevName","adjustCommunityStorageDomain","isCommunityDomain","pathname","loadLightningOutScripts","Promise","baseCoreURL","$Lightning","utils","isCommunityOrSite","f","h","loadScriptFromDirectory","instantiateLightningOutApplication","communityEndpointURL","oauthToken","paramsObj","use","g","createEmbeddedServiceComponent","chatAPISettings","validateStartChatAttributes","configurationData","locator","preparePageForSidebar","querySelector","createComponent","k","addEventHandler","dispatchEvent","CustomEvent","componentAttributes","bootstrapEmbeddedService","hideHelpButton","prepopulatedPrechatFields","extraPrechatInfo","extraPrechatFormDetails","fallbackRouting","directToButtonRouting","userId","fallback","log","directToAgentRouting","isInternetExplorer","outputToConsole","fireEvent","warning","deprecated","Number","toFixed","substring","setFullYear","getFullYear","mergeSettings","forEach","loadFeatureScript","decodeURI","processPendingMessages","isValidEntityId","getKeyPrefix","isOrganizationId","getESWFrame","contentWindow","isFrameStorageEnabled","handleMessage","payload","loadCSS","releaseVersion","rel","isLanguageRtl","isDesktop","setHelpButtonText","classList","appendIFrame","iframeURL","title","postMessage","loadStorageScript","isSamePageNavigation","isRefresh","performance","navigation","warnOnBeforeUnload","closeSessionWarning","inviteAPI","inviteButton","setOnlineState","createLightningComponent","serializedSessionData","loadLightningApp","initLightningOut","parentElement","prepareDOM","addSessionHandlers","addMessageHandler","resumeInitWithSessionData","isPrimary","sessionStorage","setItem","removeItem","activeChatSessions","liveAgentAPI","browserSessionInfo","addMetaTag","orgId","finishInit","getOwnPropertyNames","checkForNativeFunctionOverrides","loadFeatures","onFeatureScriptsLoaded","functions","isNativeFunction","Function","onHelpButtonClick","menu","hideTopContainer","ESW_OAUTH_TOKEN","loginButtonPressed","defineFeature","registerStorageKeys","clearMessageHandlers","origin","isMessageFromSalesforceDomain","direction","some","addDefaultSetting","onAgentAvailabilityChange","isButtonDisabled","onclick","showHelpButton","setDefaultButtonText","setDefaultShowIcon","registerLinkAction","setLinkAction","search","requireAuthentication","loginTargetQuerySelector","loginClientId","loginRedirectURL","setInterval","SFIDWidget","clearInterval","openid_response","__snapinsLoginCallback","login","logout","authenticationStartLabel","access_token","__snapinsLogoutCallback","sheet","insertRule","navigator","userAgent","helper","isHidden","pairs","triggers","from","singleElement","dataset","accordionSingle","accordionExpanded","addChild","accordionToggle","pair","hasAttribute","toggleChild","x","KeyCodes","prevY","instance","FOCUSABLE_ELEMENTS","defaultOptions","disableFocus","disableScroll","awaitOpenAnimation","awaitCloseAnimation","openClasses","defaultInitOptions","modal","openTriggers","closeTriggers","isOpen","onKeydown","onClick","checkIntegrity","registerEvents","Modal","modals","initOptions","getOpen","showModal","closeModal","Boolean","lastFocusedElement","openClass","scrollBehaviour","addEventListeners","setFocusToFirstNode","onShow","removeEventListeners","onClose","ESCAPE","TAB","retainFocus","focusableNodes","getFocusableNodes","focusedItemIndex","nodesWhichAreNotCloseTargets","assign","DOM","mediaQuery","matchMedia","isFixedNav","isBottomBar","toggleFixedNav","nav","toggleBottomBar","homeBottomBar","toggleFixedElements","scrollPosition","banner","handleResize","fixedElements","passive","toggleNavModal","menuTemplate","helpers","liTemplate","drawMenu","frag","ul","firstAnchor","li","u","removeLevels","levels","onMobileOpen","logo","openMenuElement","onMobileClose","navListItems","mm","backButton","menuJSON","hoverHandler","subs","adjustSubWidth","rightDiff","leftDiff","totalDiff","getInstance","handleToggleMenu","openModal","menuModal","sideMenu","Functions","horizontalDragScroll","startX","slider","isDown","offsetLeft","walk","checkBreakpoint","minOrMax","ammount","handleClick","thumbnails","ele","staffDetails","membersSection","membersBackground","dataIndex","wholeSection","handleKeyPress","closeSection","handleEscKeyPress","close","thumbnailsStaff","thumbnailStaff","toggleModal","menuIsOpen","searchModal","formModal","openEnquireForm","extraModals","popupModal","includes","modalTrigger","blmodalOpen","loadForm","isScroll","scroll","inPageForm","createFormModal","popup","mq","addListener","modalTimer","createPopupModal","gmTriggers","blogModal","element","iframe","videoModal","youtubeId","vimeoId","filterResults","filterType","searchFilter","filterContainer","currentFilter","shownItems","MAX_SAFE_INTEGER","showItems","currentItems","items","filterGroup","showMore","itemContainer","listFilter","passCodesession","passKey","CheckPasskey","keypress","staffMembers","videoModals","searchFilters","resizeTimer","resizing","bannerScroll","mainWrap","desktopPosition","scrollY","mobilePosition","behavior","child","accordion","Accordion","scrollToTopButton","adjustMargin","bannerHeight","marginTop","header","autoplay","autoplayTimeout","autoplayButtonOutput","controls","loop","mouseDrag","slideBy","rewind","lazyload","tns","navContainer","navPosition","gutter","responsive","400","992","edgePadding","preventScrollOnTouch","swipeAngle","childCount","childElementCount","576","min","768","videos","partnerShowcase","studentTestimonials","lazySizes","cfg","customMedia"],"mappings":"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","file":"main.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t4: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([142,0,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export function getWidth() {\r\n return (\r\n window.innerWidth ||\r\n document.documentElement.clientWidth ||\r\n document.body.clientWidth\r\n );\r\n}\r\n\r\nexport function getElementOver(e) {\r\n return document.elementFromPoint(e.clientX, e.clientY);\r\n}\r\n\r\nexport function getCookie(name) {\r\n const v = document.cookie.match(`(^|;) ?${name}=([^;]*)(;|$)`);\r\n return v ? v[2] : null;\r\n}\r\n\r\nexport function setCookie(name, value, days) {\r\n const d = new Date();\r\n d.setTime(d.getTime() + 24 * 60 * 60 * 1000 * days);\r\n document.cookie = `${name}=${value};path=/;expires=${d.toGMTString()}`;\r\n}\r\n\r\nexport function deleteCookie(name) {\r\n setCookie(name, '', -1);\r\n}\r\n\r\nexport function throttle(func, limit, lastCall) {\r\n let inThrottle;\r\n let lastTimeout;\r\n\r\n return (...args) => {\r\n if (inThrottle) {\r\n if (lastCall) {\r\n clearTimeout(lastTimeout);\r\n lastTimeout = setTimeout(() => {\r\n throttle(func, limit).apply(this, args);\r\n }, limit);\r\n }\r\n\r\n return;\r\n }\r\n\r\n clearTimeout(lastTimeout);\r\n func.apply(this, args);\r\n inThrottle = true;\r\n setTimeout(() => {\r\n inThrottle = false;\r\n }, limit);\r\n };\r\n}\r\n\r\nexport function debounce(func, wait, immediate) {\r\n let timeout;\r\n return (...args) => {\r\n const context = this;\r\n const later = () => {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n const callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) func.apply(context, args);\r\n };\r\n}\r\n\r\nexport function parseHTML(s) {\r\n const div = document.createElement('div');\r\n div.innerHTML = s;\r\n return div.firstElementChild;\r\n}\r\n\r\nexport function getRandomId() {\r\n return `_${Math.random()\r\n .toString(36)\r\n .substr(2, 9)}`;\r\n}\r\n","/*!\r\n * jQuery JavaScript Library v3.6.0\r\n * https://jquery.com/\r\n *\r\n * Includes Sizzle.js\r\n * https://sizzlejs.com/\r\n *\r\n * Copyright OpenJS Foundation and other contributors\r\n * Released under the MIT license\r\n * https://jquery.org/license\r\n *\r\n * Date: 2021-03-02T17:08Z\r\n */\r\n( function( global, factory ) {\r\n\r\n\t\"use strict\";\r\n\r\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\r\n\r\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\r\n\t\t// is present, execute the factory and get jQuery.\r\n\t\t// For environments that do not have a `window` with a `document`\r\n\t\t// (such as Node.js), expose a factory as module.exports.\r\n\t\t// This accentuates the need for the creation of a real `window`.\r\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\r\n\t\t// See ticket #14549 for more info.\r\n\t\tmodule.exports = global.document ?\r\n\t\t\tfactory( global, true ) :\r\n\t\t\tfunction( w ) {\r\n\t\t\t\tif ( !w.document ) {\r\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\r\n\t\t\t\t}\r\n\t\t\t\treturn factory( w );\r\n\t\t\t};\r\n\t} else {\r\n\t\tfactory( global );\r\n\t}\r\n\r\n// Pass this if window is not defined yet\r\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\r\n\r\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\r\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\r\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\r\n// enough that all such attempts are guarded in a try block.\r\n\"use strict\";\r\n\r\nvar arr = [];\r\n\r\nvar getProto = Object.getPrototypeOf;\r\n\r\nvar slice = arr.slice;\r\n\r\nvar flat = arr.flat ? function( array ) {\r\n\treturn arr.flat.call( array );\r\n} : function( array ) {\r\n\treturn arr.concat.apply( [], array );\r\n};\r\n\r\n\r\nvar push = arr.push;\r\n\r\nvar indexOf = arr.indexOf;\r\n\r\nvar class2type = {};\r\n\r\nvar toString = class2type.toString;\r\n\r\nvar hasOwn = class2type.hasOwnProperty;\r\n\r\nvar fnToString = hasOwn.toString;\r\n\r\nvar ObjectFunctionString = fnToString.call( Object );\r\n\r\nvar support = {};\r\n\r\nvar isFunction = function isFunction( obj ) {\r\n\r\n\t\t// Support: Chrome <=57, Firefox <=52\r\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\r\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\r\n\t\t// We don't want to classify *any* DOM node as a function.\r\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\r\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\r\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\r\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\r\n\t\t\ttypeof obj.item !== \"function\";\r\n\t};\r\n\r\n\r\nvar isWindow = function isWindow( obj ) {\r\n\t\treturn obj != null && obj === obj.window;\r\n\t};\r\n\r\n\r\nvar document = window.document;\r\n\r\n\r\n\r\n\tvar preservedScriptAttributes = {\r\n\t\ttype: true,\r\n\t\tsrc: true,\r\n\t\tnonce: true,\r\n\t\tnoModule: true\r\n\t};\r\n\r\n\tfunction DOMEval( code, node, doc ) {\r\n\t\tdoc = doc || document;\r\n\r\n\t\tvar i, val,\r\n\t\t\tscript = doc.createElement( \"script\" );\r\n\r\n\t\tscript.text = code;\r\n\t\tif ( node ) {\r\n\t\t\tfor ( i in preservedScriptAttributes ) {\r\n\r\n\t\t\t\t// Support: Firefox 64+, Edge 18+\r\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\r\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\r\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\r\n\t\t\t\t// becomes browsing-context connected.\r\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\r\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\r\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\r\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\r\n\t\t\t\t// via an object.\r\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\r\n\t\t\t\tif ( val ) {\r\n\t\t\t\t\tscript.setAttribute( i, val );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\r\n\t}\r\n\r\n\r\nfunction toType( obj ) {\r\n\tif ( obj == null ) {\r\n\t\treturn obj + \"\";\r\n\t}\r\n\r\n\t// Support: Android <=2.3 only (functionish RegExp)\r\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\r\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\r\n\t\ttypeof obj;\r\n}\r\n/* global Symbol */\r\n// Defining this global in .eslintrc.json would create a danger of using the global\r\n// unguarded in another place, it seems safer to define global only for this module\r\n\r\n\r\n\r\nvar\r\n\tversion = \"3.6.0\",\r\n\r\n\t// Define a local copy of jQuery\r\n\tjQuery = function( selector, context ) {\r\n\r\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\r\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\r\n\t\treturn new jQuery.fn.init( selector, context );\r\n\t};\r\n\r\njQuery.fn = jQuery.prototype = {\r\n\r\n\t// The current version of jQuery being used\r\n\tjquery: version,\r\n\r\n\tconstructor: jQuery,\r\n\r\n\t// The default length of a jQuery object is 0\r\n\tlength: 0,\r\n\r\n\ttoArray: function() {\r\n\t\treturn slice.call( this );\r\n\t},\r\n\r\n\t// Get the Nth element in the matched element set OR\r\n\t// Get the whole matched element set as a clean array\r\n\tget: function( num ) {\r\n\r\n\t\t// Return all the elements in a clean array\r\n\t\tif ( num == null ) {\r\n\t\t\treturn slice.call( this );\r\n\t\t}\r\n\r\n\t\t// Return just the one element from the set\r\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\r\n\t},\r\n\r\n\t// Take an array of elements and push it onto the stack\r\n\t// (returning the new matched element set)\r\n\tpushStack: function( elems ) {\r\n\r\n\t\t// Build a new jQuery matched element set\r\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\r\n\r\n\t\t// Add the old object onto the stack (as a reference)\r\n\t\tret.prevObject = this;\r\n\r\n\t\t// Return the newly-formed element set\r\n\t\treturn ret;\r\n\t},\r\n\r\n\t// Execute a callback for every element in the matched set.\r\n\teach: function( callback ) {\r\n\t\treturn jQuery.each( this, callback );\r\n\t},\r\n\r\n\tmap: function( callback ) {\r\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\r\n\t\t\treturn callback.call( elem, i, elem );\r\n\t\t} ) );\r\n\t},\r\n\r\n\tslice: function() {\r\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\r\n\t},\r\n\r\n\tfirst: function() {\r\n\t\treturn this.eq( 0 );\r\n\t},\r\n\r\n\tlast: function() {\r\n\t\treturn this.eq( -1 );\r\n\t},\r\n\r\n\teven: function() {\r\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\r\n\t\t\treturn ( i + 1 ) % 2;\r\n\t\t} ) );\r\n\t},\r\n\r\n\todd: function() {\r\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\r\n\t\t\treturn i % 2;\r\n\t\t} ) );\r\n\t},\r\n\r\n\teq: function( i ) {\r\n\t\tvar len = this.length,\r\n\t\t\tj = +i + ( i < 0 ? len : 0 );\r\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\r\n\t},\r\n\r\n\tend: function() {\r\n\t\treturn this.prevObject || this.constructor();\r\n\t},\r\n\r\n\t// For internal use only.\r\n\t// Behaves like an Array's method, not like a jQuery method.\r\n\tpush: push,\r\n\tsort: arr.sort,\r\n\tsplice: arr.splice\r\n};\r\n\r\njQuery.extend = jQuery.fn.extend = function() {\r\n\tvar options, name, src, copy, copyIsArray, clone,\r\n\t\ttarget = arguments[ 0 ] || {},\r\n\t\ti = 1,\r\n\t\tlength = arguments.length,\r\n\t\tdeep = false;\r\n\r\n\t// Handle a deep copy situation\r\n\tif ( typeof target === \"boolean\" ) {\r\n\t\tdeep = target;\r\n\r\n\t\t// Skip the boolean and the target\r\n\t\ttarget = arguments[ i ] || {};\r\n\t\ti++;\r\n\t}\r\n\r\n\t// Handle case when target is a string or something (possible in deep copy)\r\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\r\n\t\ttarget = {};\r\n\t}\r\n\r\n\t// Extend jQuery itself if only one argument is passed\r\n\tif ( i === length ) {\r\n\t\ttarget = this;\r\n\t\ti--;\r\n\t}\r\n\r\n\tfor ( ; i < length; i++ ) {\r\n\r\n\t\t// Only deal with non-null/undefined values\r\n\t\tif ( ( options = arguments[ i ] ) != null ) {\r\n\r\n\t\t\t// Extend the base object\r\n\t\t\tfor ( name in options ) {\r\n\t\t\t\tcopy = options[ name ];\r\n\r\n\t\t\t\t// Prevent Object.prototype pollution\r\n\t\t\t\t// Prevent never-ending loop\r\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Recurse if we're merging plain objects or arrays\r\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\r\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\r\n\t\t\t\t\tsrc = target[ name ];\r\n\r\n\t\t\t\t\t// Ensure proper type for the source value\r\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\r\n\t\t\t\t\t\tclone = [];\r\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\r\n\t\t\t\t\t\tclone = {};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tclone = src;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcopyIsArray = false;\r\n\r\n\t\t\t\t\t// Never move original objects, clone them\r\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\r\n\r\n\t\t\t\t// Don't bring in undefined values\r\n\t\t\t\t} else if ( copy !== undefined ) {\r\n\t\t\t\t\ttarget[ name ] = copy;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Return the modified object\r\n\treturn target;\r\n};\r\n\r\njQuery.extend( {\r\n\r\n\t// Unique for each copy of jQuery on the page\r\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\r\n\r\n\t// Assume jQuery is ready without the ready module\r\n\tisReady: true,\r\n\r\n\terror: function( msg ) {\r\n\t\tthrow new Error( msg );\r\n\t},\r\n\r\n\tnoop: function() {},\r\n\r\n\tisPlainObject: function( obj ) {\r\n\t\tvar proto, Ctor;\r\n\r\n\t\t// Detect obvious negatives\r\n\t\t// Use toString instead of jQuery.type to catch host objects\r\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tproto = getProto( obj );\r\n\r\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\r\n\t\tif ( !proto ) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\r\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\r\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\r\n\t},\r\n\r\n\tisEmptyObject: function( obj ) {\r\n\t\tvar name;\r\n\r\n\t\tfor ( name in obj ) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n\r\n\t// Evaluates a script in a provided context; falls back to the global one\r\n\t// if not specified.\r\n\tglobalEval: function( code, options, doc ) {\r\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\r\n\t},\r\n\r\n\teach: function( obj, callback ) {\r\n\t\tvar length, i = 0;\r\n\r\n\t\tif ( isArrayLike( obj ) ) {\r\n\t\t\tlength = obj.length;\r\n\t\t\tfor ( ; i < length; i++ ) {\r\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tfor ( i in obj ) {\r\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn obj;\r\n\t},\r\n\r\n\t// results is for internal usage only\r\n\tmakeArray: function( arr, results ) {\r\n\t\tvar ret = results || [];\r\n\r\n\t\tif ( arr != null ) {\r\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\r\n\t\t\t\tjQuery.merge( ret,\r\n\t\t\t\t\ttypeof arr === \"string\" ?\r\n\t\t\t\t\t\t[ arr ] : arr\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\tpush.call( ret, arr );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ret;\r\n\t},\r\n\r\n\tinArray: function( elem, arr, i ) {\r\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\r\n\t},\r\n\r\n\t// Support: Android <=4.0 only, PhantomJS 1 only\r\n\t// push.apply(_, arraylike) throws on ancient WebKit\r\n\tmerge: function( first, second ) {\r\n\t\tvar len = +second.length,\r\n\t\t\tj = 0,\r\n\t\t\ti = first.length;\r\n\r\n\t\tfor ( ; j < len; j++ ) {\r\n\t\t\tfirst[ i++ ] = second[ j ];\r\n\t\t}\r\n\r\n\t\tfirst.length = i;\r\n\r\n\t\treturn first;\r\n\t},\r\n\r\n\tgrep: function( elems, callback, invert ) {\r\n\t\tvar callbackInverse,\r\n\t\t\tmatches = [],\r\n\t\t\ti = 0,\r\n\t\t\tlength = elems.length,\r\n\t\t\tcallbackExpect = !invert;\r\n\r\n\t\t// Go through the array, only saving the items\r\n\t\t// that pass the validator function\r\n\t\tfor ( ; i < length; i++ ) {\r\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\r\n\t\t\tif ( callbackInverse !== callbackExpect ) {\r\n\t\t\t\tmatches.push( elems[ i ] );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn matches;\r\n\t},\r\n\r\n\t// arg is for internal usage only\r\n\tmap: function( elems, callback, arg ) {\r\n\t\tvar length, value,\r\n\t\t\ti = 0,\r\n\t\t\tret = [];\r\n\r\n\t\t// Go through the array, translating each of the items to their new values\r\n\t\tif ( isArrayLike( elems ) ) {\r\n\t\t\tlength = elems.length;\r\n\t\t\tfor ( ; i < length; i++ ) {\r\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\r\n\r\n\t\t\t\tif ( value != null ) {\r\n\t\t\t\t\tret.push( value );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t// Go through every key on the object,\r\n\t\t} else {\r\n\t\t\tfor ( i in elems ) {\r\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\r\n\r\n\t\t\t\tif ( value != null ) {\r\n\t\t\t\t\tret.push( value );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Flatten any nested arrays\r\n\t\treturn flat( ret );\r\n\t},\r\n\r\n\t// A global GUID counter for objects\r\n\tguid: 1,\r\n\r\n\t// jQuery.support is not used in Core but other projects attach their\r\n\t// properties to it so it needs to exist.\r\n\tsupport: support\r\n} );\r\n\r\nif ( typeof Symbol === \"function\" ) {\r\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\r\n}\r\n\r\n// Populate the class2type map\r\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\r\n\tfunction( _i, name ) {\r\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\r\n\t} );\r\n\r\nfunction isArrayLike( obj ) {\r\n\r\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\r\n\t// `in` check used to prevent JIT error (gh-2145)\r\n\t// hasOwn isn't used here due to false negatives\r\n\t// regarding Nodelist length in IE\r\n\tvar length = !!obj && \"length\" in obj && obj.length,\r\n\t\ttype = toType( obj );\r\n\r\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\treturn type === \"array\" || length === 0 ||\r\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\r\n}\r\nvar Sizzle =\r\n/*!\r\n * Sizzle CSS Selector Engine v2.3.6\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://js.foundation/\r\n *\r\n * Date: 2021-02-16\r\n */\r\n( function( window ) {\r\nvar i,\r\n\tsupport,\r\n\tExpr,\r\n\tgetText,\r\n\tisXML,\r\n\ttokenize,\r\n\tcompile,\r\n\tselect,\r\n\toutermostContext,\r\n\tsortInput,\r\n\thasDuplicate,\r\n\r\n\t// Local document vars\r\n\tsetDocument,\r\n\tdocument,\r\n\tdocElem,\r\n\tdocumentIsHTML,\r\n\trbuggyQSA,\r\n\trbuggyMatches,\r\n\tmatches,\r\n\tcontains,\r\n\r\n\t// Instance-specific data\r\n\texpando = \"sizzle\" + 1 * new Date(),\r\n\tpreferredDoc = window.document,\r\n\tdirruns = 0,\r\n\tdone = 0,\r\n\tclassCache = createCache(),\r\n\ttokenCache = createCache(),\r\n\tcompilerCache = createCache(),\r\n\tnonnativeSelectorCache = createCache(),\r\n\tsortOrder = function( a, b ) {\r\n\t\tif ( a === b ) {\r\n\t\t\thasDuplicate = true;\r\n\t\t}\r\n\t\treturn 0;\r\n\t},\r\n\r\n\t// Instance methods\r\n\thasOwn = ( {} ).hasOwnProperty,\r\n\tarr = [],\r\n\tpop = arr.pop,\r\n\tpushNative = arr.push,\r\n\tpush = arr.push,\r\n\tslice = arr.slice,\r\n\r\n\t// Use a stripped-down indexOf as it's faster than native\r\n\t// https://jsperf.com/thor-indexof-vs-for/5\r\n\tindexOf = function( list, elem ) {\r\n\t\tvar i = 0,\r\n\t\t\tlen = list.length;\r\n\t\tfor ( ; i < len; i++ ) {\r\n\t\t\tif ( list[ i ] === elem ) {\r\n\t\t\t\treturn i;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn -1;\r\n\t},\r\n\r\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\r\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\r\n\r\n\t// Regular expressions\r\n\r\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\r\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\r\n\r\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\r\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\r\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\r\n\r\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\r\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\r\n\r\n\t\t// Operator (capture 2)\r\n\t\t\"*([*^$|!~]?=)\" + whitespace +\r\n\r\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\r\n\t\t// or strings [capture 3 or capture 4]\"\r\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\r\n\t\twhitespace + \"*\\\\]\",\r\n\r\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\r\n\r\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\r\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\r\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\r\n\r\n\t\t// 2. simple (capture 6)\r\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\r\n\r\n\t\t// 3. anything else (capture 2)\r\n\t\t\".*\" +\r\n\t\t\")\\\\)|)\",\r\n\r\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\r\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\r\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\r\n\t\twhitespace + \"+$\", \"g\" ),\r\n\r\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\r\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\r\n\t\t\"*\" ),\r\n\trdescend = new RegExp( whitespace + \"|>\" ),\r\n\r\n\trpseudo = new RegExp( pseudos ),\r\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\r\n\r\n\tmatchExpr = {\r\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\r\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\r\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\r\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\r\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\r\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\r\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\r\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\r\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\r\n\r\n\t\t// For use in libraries implementing .is()\r\n\t\t// We use this for POS matching in `select`\r\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\r\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\r\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\r\n\t},\r\n\r\n\trhtml = /HTML$/i,\r\n\trinputs = /^(?:input|select|textarea|button)$/i,\r\n\trheader = /^h\\d$/i,\r\n\r\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\r\n\r\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\r\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\r\n\r\n\trsibling = /[+~]/,\r\n\r\n\t// CSS escapes\r\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\r\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\r\n\tfunescape = function( escape, nonHex ) {\r\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\r\n\r\n\t\treturn nonHex ?\r\n\r\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\r\n\t\t\tnonHex :\r\n\r\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\r\n\t\t\t// Support: IE <=11+\r\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\r\n\t\t\t// surrogate pair\r\n\t\t\thigh < 0 ?\r\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\r\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\r\n\t},\r\n\r\n\t// CSS string/identifier serialization\r\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\r\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\r\n\tfcssescape = function( ch, asCodePoint ) {\r\n\t\tif ( asCodePoint ) {\r\n\r\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\r\n\t\t\tif ( ch === \"\\0\" ) {\r\n\t\t\t\treturn \"\\uFFFD\";\r\n\t\t\t}\r\n\r\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\r\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\r\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\r\n\t\t}\r\n\r\n\t\t// Other potentially-special ASCII characters get backslash-escaped\r\n\t\treturn \"\\\\\" + ch;\r\n\t},\r\n\r\n\t// Used for iframes\r\n\t// See setDocument()\r\n\t// Removing the function wrapper causes a \"Permission Denied\"\r\n\t// error in IE\r\n\tunloadHandler = function() {\r\n\t\tsetDocument();\r\n\t},\r\n\r\n\tinDisabledFieldset = addCombinator(\r\n\t\tfunction( elem ) {\r\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\r\n\t\t},\r\n\t\t{ dir: \"parentNode\", next: \"legend\" }\r\n\t);\r\n\r\n// Optimize for push.apply( _, NodeList )\r\ntry {\r\n\tpush.apply(\r\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\r\n\t\tpreferredDoc.childNodes\r\n\t);\r\n\r\n\t// Support: Android<4.0\r\n\t// Detect silently failing push.apply\r\n\t// eslint-disable-next-line no-unused-expressions\r\n\tarr[ preferredDoc.childNodes.length ].nodeType;\r\n} catch ( e ) {\r\n\tpush = { apply: arr.length ?\r\n\r\n\t\t// Leverage slice if possible\r\n\t\tfunction( target, els ) {\r\n\t\t\tpushNative.apply( target, slice.call( els ) );\r\n\t\t} :\r\n\r\n\t\t// Support: IE<9\r\n\t\t// Otherwise append directly\r\n\t\tfunction( target, els ) {\r\n\t\t\tvar j = target.length,\r\n\t\t\t\ti = 0;\r\n\r\n\t\t\t// Can't trust NodeList.length\r\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\r\n\t\t\ttarget.length = j - 1;\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction Sizzle( selector, context, results, seed ) {\r\n\tvar m, i, elem, nid, match, groups, newSelector,\r\n\t\tnewContext = context && context.ownerDocument,\r\n\r\n\t\t// nodeType defaults to 9, since context defaults to document\r\n\t\tnodeType = context ? context.nodeType : 9;\r\n\r\n\tresults = results || [];\r\n\r\n\t// Return early from calls with invalid selector or context\r\n\tif ( typeof selector !== \"string\" || !selector ||\r\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\r\n\r\n\t\treturn results;\r\n\t}\r\n\r\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\r\n\tif ( !seed ) {\r\n\t\tsetDocument( context );\r\n\t\tcontext = context || document;\r\n\r\n\t\tif ( documentIsHTML ) {\r\n\r\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\r\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\r\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\r\n\r\n\t\t\t\t// ID selector\r\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\r\n\r\n\t\t\t\t\t// Document context\r\n\t\t\t\t\tif ( nodeType === 9 ) {\r\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\r\n\r\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\r\n\t\t\t\t\t\t\t// TODO: identify versions\r\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\r\n\t\t\t\t\t\t\tif ( elem.id === m ) {\r\n\t\t\t\t\t\t\t\tresults.push( elem );\r\n\t\t\t\t\t\t\t\treturn results;\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\treturn results;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Element context\r\n\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\r\n\t\t\t\t\t\t// TODO: identify versions\r\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\r\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\r\n\t\t\t\t\t\t\tcontains( context, elem ) &&\r\n\t\t\t\t\t\t\telem.id === m ) {\r\n\r\n\t\t\t\t\t\t\tresults.push( elem );\r\n\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t// Type selector\r\n\t\t\t\t} else if ( match[ 2 ] ) {\r\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\r\n\t\t\t\t\treturn results;\r\n\r\n\t\t\t\t// Class selector\r\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\r\n\t\t\t\t\tcontext.getElementsByClassName ) {\r\n\r\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\r\n\t\t\t\t\treturn results;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Take advantage of querySelectorAll\r\n\t\t\tif ( support.qsa &&\r\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\r\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\r\n\r\n\t\t\t\t// Support: IE 8 only\r\n\t\t\t\t// Exclude object elements\r\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\r\n\r\n\t\t\t\tnewSelector = selector;\r\n\t\t\t\tnewContext = context;\r\n\r\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\r\n\t\t\t\t// descendant combinators, which is not what we want.\r\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\r\n\t\t\t\t// list with an ID selector referencing the scope context.\r\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\r\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\r\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\r\n\t\t\t\tif ( nodeType === 1 &&\r\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\r\n\r\n\t\t\t\t\t// Expand context for sibling selectors\r\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\r\n\t\t\t\t\t\tcontext;\r\n\r\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\r\n\t\t\t\t\t// supports it & if we're not changing the context.\r\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\r\n\r\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\r\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\r\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Prefix every selector in the list\r\n\t\t\t\t\tgroups = tokenize( selector );\r\n\t\t\t\t\ti = groups.length;\r\n\t\t\t\t\twhile ( i-- ) {\r\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\r\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\r\n\t\t\t\t\t}\r\n\t\t\t\t\tnewSelector = groups.join( \",\" );\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tpush.apply( results,\r\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\r\n\t\t\t\t\t);\r\n\t\t\t\t\treturn results;\r\n\t\t\t\t} catch ( qsaError ) {\r\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\r\n\t\t\t\t} finally {\r\n\t\t\t\t\tif ( nid === expando ) {\r\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// All others\r\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\r\n}\r\n\r\n/**\r\n * Create key-value caches of limited size\r\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\r\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\r\n *\tdeleting the oldest entry\r\n */\r\nfunction createCache() {\r\n\tvar keys = [];\r\n\r\n\tfunction cache( key, value ) {\r\n\r\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\r\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\r\n\r\n\t\t\t// Only keep the most recent entries\r\n\t\t\tdelete cache[ keys.shift() ];\r\n\t\t}\r\n\t\treturn ( cache[ key + \" \" ] = value );\r\n\t}\r\n\treturn cache;\r\n}\r\n\r\n/**\r\n * Mark a function for special use by Sizzle\r\n * @param {Function} fn The function to mark\r\n */\r\nfunction markFunction( fn ) {\r\n\tfn[ expando ] = true;\r\n\treturn fn;\r\n}\r\n\r\n/**\r\n * Support testing using an element\r\n * @param {Function} fn Passed the created element and returns a boolean result\r\n */\r\nfunction assert( fn ) {\r\n\tvar el = document.createElement( \"fieldset\" );\r\n\r\n\ttry {\r\n\t\treturn !!fn( el );\r\n\t} catch ( e ) {\r\n\t\treturn false;\r\n\t} finally {\r\n\r\n\t\t// Remove from its parent by default\r\n\t\tif ( el.parentNode ) {\r\n\t\t\tel.parentNode.removeChild( el );\r\n\t\t}\r\n\r\n\t\t// release memory in IE\r\n\t\tel = null;\r\n\t}\r\n}\r\n\r\n/**\r\n * Adds the same handler for all of the specified attrs\r\n * @param {String} attrs Pipe-separated list of attributes\r\n * @param {Function} handler The method that will be applied\r\n */\r\nfunction addHandle( attrs, handler ) {\r\n\tvar arr = attrs.split( \"|\" ),\r\n\t\ti = arr.length;\r\n\r\n\twhile ( i-- ) {\r\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\r\n\t}\r\n}\r\n\r\n/**\r\n * Checks document order of two siblings\r\n * @param {Element} a\r\n * @param {Element} b\r\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\r\n */\r\nfunction siblingCheck( a, b ) {\r\n\tvar cur = b && a,\r\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\r\n\t\t\ta.sourceIndex - b.sourceIndex;\r\n\r\n\t// Use IE sourceIndex if available on both nodes\r\n\tif ( diff ) {\r\n\t\treturn diff;\r\n\t}\r\n\r\n\t// Check if b follows a\r\n\tif ( cur ) {\r\n\t\twhile ( ( cur = cur.nextSibling ) ) {\r\n\t\t\tif ( cur === b ) {\r\n\t\t\t\treturn -1;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn a ? 1 : -1;\r\n}\r\n\r\n/**\r\n * Returns a function to use in pseudos for input types\r\n * @param {String} type\r\n */\r\nfunction createInputPseudo( type ) {\r\n\treturn function( elem ) {\r\n\t\tvar name = elem.nodeName.toLowerCase();\r\n\t\treturn name === \"input\" && elem.type === type;\r\n\t};\r\n}\r\n\r\n/**\r\n * Returns a function to use in pseudos for buttons\r\n * @param {String} type\r\n */\r\nfunction createButtonPseudo( type ) {\r\n\treturn function( elem ) {\r\n\t\tvar name = elem.nodeName.toLowerCase();\r\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\r\n\t};\r\n}\r\n\r\n/**\r\n * Returns a function to use in pseudos for :enabled/:disabled\r\n * @param {Boolean} disabled true for :disabled; false for :enabled\r\n */\r\nfunction createDisabledPseudo( disabled ) {\r\n\r\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\r\n\treturn function( elem ) {\r\n\r\n\t\t// Only certain elements can match :enabled or :disabled\r\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\r\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\r\n\t\tif ( \"form\" in elem ) {\r\n\r\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\r\n\t\t\t// * listed form-associated elements in a disabled fieldset\r\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\r\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\r\n\t\t\t// * option elements in a disabled optgroup\r\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\r\n\t\t\t// All such elements have a \"form\" property.\r\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\r\n\r\n\t\t\t\t// Option elements defer to a parent optgroup if present\r\n\t\t\t\tif ( \"label\" in elem ) {\r\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\r\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn elem.disabled === disabled;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Support: IE 6 - 11\r\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\r\n\t\t\t\treturn elem.isDisabled === disabled ||\r\n\r\n\t\t\t\t\t// Where there is no isDisabled, check manually\r\n\t\t\t\t\t/* jshint -W018 */\r\n\t\t\t\t\telem.isDisabled !== !disabled &&\r\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\r\n\t\t\t}\r\n\r\n\t\t\treturn elem.disabled === disabled;\r\n\r\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\r\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\r\n\t\t// even exist on them, let alone have a boolean value.\r\n\t\t} else if ( \"label\" in elem ) {\r\n\t\t\treturn elem.disabled === disabled;\r\n\t\t}\r\n\r\n\t\t// Remaining elements are neither :enabled nor :disabled\r\n\t\treturn false;\r\n\t};\r\n}\r\n\r\n/**\r\n * Returns a function to use in pseudos for positionals\r\n * @param {Function} fn\r\n */\r\nfunction createPositionalPseudo( fn ) {\r\n\treturn markFunction( function( argument ) {\r\n\t\targument = +argument;\r\n\t\treturn markFunction( function( seed, matches ) {\r\n\t\t\tvar j,\r\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\r\n\t\t\t\ti = matchIndexes.length;\r\n\r\n\t\t\t// Match elements found at the specified indexes\r\n\t\t\twhile ( i-- ) {\r\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\r\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} );\r\n\t} );\r\n}\r\n\r\n/**\r\n * Checks a node for validity as a Sizzle context\r\n * @param {Element|Object=} context\r\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\r\n */\r\nfunction testContext( context ) {\r\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\r\n}\r\n\r\n// Expose support vars for convenience\r\nsupport = Sizzle.support = {};\r\n\r\n/**\r\n * Detects XML nodes\r\n * @param {Element|Object} elem An element or a document\r\n * @returns {Boolean} True iff elem is a non-HTML XML node\r\n */\r\nisXML = Sizzle.isXML = function( elem ) {\r\n\tvar namespace = elem && elem.namespaceURI,\r\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\r\n\r\n\t// Support: IE <=8\r\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\r\n\t// https://bugs.jquery.com/ticket/4833\r\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\r\n};\r\n\r\n/**\r\n * Sets document-related variables once based on the current document\r\n * @param {Element|Object} [doc] An element or document object to use to set the document\r\n * @returns {Object} Returns the current document\r\n */\r\nsetDocument = Sizzle.setDocument = function( node ) {\r\n\tvar hasCompare, subWindow,\r\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\r\n\r\n\t// Return early if doc is invalid or already selected\r\n\t// Support: IE 11+, Edge 17 - 18+\r\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t// two documents; shallow comparisons work.\r\n\t// eslint-disable-next-line eqeqeq\r\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\r\n\t\treturn document;\r\n\t}\r\n\r\n\t// Update global variables\r\n\tdocument = doc;\r\n\tdocElem = document.documentElement;\r\n\tdocumentIsHTML = !isXML( document );\r\n\r\n\t// Support: IE 9 - 11+, Edge 12 - 18+\r\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\r\n\t// Support: IE 11+, Edge 17 - 18+\r\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t// two documents; shallow comparisons work.\r\n\t// eslint-disable-next-line eqeqeq\r\n\tif ( preferredDoc != document &&\r\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\r\n\r\n\t\t// Support: IE 11, Edge\r\n\t\tif ( subWindow.addEventListener ) {\r\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\r\n\r\n\t\t// Support: IE 9 - 10 only\r\n\t\t} else if ( subWindow.attachEvent ) {\r\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\r\n\t\t}\r\n\t}\r\n\r\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\r\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\r\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\r\n\t// Support: Safari 6.0 only\r\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\r\n\tsupport.scope = assert( function( el ) {\r\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\r\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\r\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\r\n\t} );\r\n\r\n\t/* Attributes\r\n\t---------------------------------------------------------------------- */\r\n\r\n\t// Support: IE<8\r\n\t// Verify that getAttribute really returns attributes and not properties\r\n\t// (excepting IE8 booleans)\r\n\tsupport.attributes = assert( function( el ) {\r\n\t\tel.className = \"i\";\r\n\t\treturn !el.getAttribute( \"className\" );\r\n\t} );\r\n\r\n\t/* getElement(s)By*\r\n\t---------------------------------------------------------------------- */\r\n\r\n\t// Check if getElementsByTagName(\"*\") returns only elements\r\n\tsupport.getElementsByTagName = assert( function( el ) {\r\n\t\tel.appendChild( document.createComment( \"\" ) );\r\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\r\n\t} );\r\n\r\n\t// Support: IE<9\r\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\r\n\r\n\t// Support: IE<10\r\n\t// Check if getElementById returns elements by name\r\n\t// The broken getElementById methods don't pick up programmatically-set names,\r\n\t// so use a roundabout getElementsByName test\r\n\tsupport.getById = assert( function( el ) {\r\n\t\tdocElem.appendChild( el ).id = expando;\r\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\r\n\t} );\r\n\r\n\t// ID filter and find\r\n\tif ( support.getById ) {\r\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\r\n\t\t\tvar attrId = id.replace( runescape, funescape );\r\n\t\t\treturn function( elem ) {\r\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\r\n\t\t\t};\r\n\t\t};\r\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\r\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\r\n\t\t\t\tvar elem = context.getElementById( id );\r\n\t\t\t\treturn elem ? [ elem ] : [];\r\n\t\t\t}\r\n\t\t};\r\n\t} else {\r\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\r\n\t\t\tvar attrId = id.replace( runescape, funescape );\r\n\t\t\treturn function( elem ) {\r\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\r\n\t\t\t\t\telem.getAttributeNode( \"id\" );\r\n\t\t\t\treturn node && node.value === attrId;\r\n\t\t\t};\r\n\t\t};\r\n\r\n\t\t// Support: IE 6 - 7 only\r\n\t\t// getElementById is not reliable as a find shortcut\r\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\r\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\r\n\t\t\t\tvar node, i, elems,\r\n\t\t\t\t\telem = context.getElementById( id );\r\n\r\n\t\t\t\tif ( elem ) {\r\n\r\n\t\t\t\t\t// Verify the id attribute\r\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\r\n\t\t\t\t\tif ( node && node.value === id ) {\r\n\t\t\t\t\t\treturn [ elem ];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Fall back on getElementsByName\r\n\t\t\t\t\telems = context.getElementsByName( id );\r\n\t\t\t\t\ti = 0;\r\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\r\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\r\n\t\t\t\t\t\tif ( node && node.value === id ) {\r\n\t\t\t\t\t\t\treturn [ 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\treturn [];\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\t// Tag\r\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\r\n\t\tfunction( tag, context ) {\r\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\r\n\t\t\t\treturn context.getElementsByTagName( tag );\r\n\r\n\t\t\t// DocumentFragment nodes don't have gEBTN\r\n\t\t\t} else if ( support.qsa ) {\r\n\t\t\t\treturn context.querySelectorAll( tag );\r\n\t\t\t}\r\n\t\t} :\r\n\r\n\t\tfunction( tag, context ) {\r\n\t\t\tvar elem,\r\n\t\t\t\ttmp = [],\r\n\t\t\t\ti = 0,\r\n\r\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\r\n\t\t\t\tresults = context.getElementsByTagName( tag );\r\n\r\n\t\t\t// Filter out possible comments\r\n\t\t\tif ( tag === \"*\" ) {\r\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\r\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\r\n\t\t\t\t\t\ttmp.push( elem );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn tmp;\r\n\t\t\t}\r\n\t\t\treturn results;\r\n\t\t};\r\n\r\n\t// Class\r\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\r\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\r\n\t\t\treturn context.getElementsByClassName( className );\r\n\t\t}\r\n\t};\r\n\r\n\t/* QSA/matchesSelector\r\n\t---------------------------------------------------------------------- */\r\n\r\n\t// QSA and matchesSelector support\r\n\r\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\r\n\trbuggyMatches = [];\r\n\r\n\t// qSa(:focus) reports false when true (Chrome 21)\r\n\t// We allow this because of a bug in IE8/9 that throws an error\r\n\t// whenever `document.activeElement` is accessed on an iframe\r\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\r\n\t// See https://bugs.jquery.com/ticket/13378\r\n\trbuggyQSA = [];\r\n\r\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\r\n\r\n\t\t// Build QSA regex\r\n\t\t// Regex strategy adopted from Diego Perini\r\n\t\tassert( function( el ) {\r\n\r\n\t\t\tvar input;\r\n\r\n\t\t\t// Select is set to empty string on purpose\r\n\t\t\t// This is to test IE's treatment of not explicitly\r\n\t\t\t// setting a boolean content attribute,\r\n\t\t\t// since its presence should be enough\r\n\t\t\t// https://bugs.jquery.com/ticket/12359\r\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\r\n\t\t\t\t\"\";\r\n\r\n\t\t\t// Support: IE8, Opera 11-12.16\r\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\r\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\r\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\r\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\r\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Support: IE8\r\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\r\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\r\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\r\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\r\n\t\t\t\trbuggyQSA.push( \"~=\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Support: IE 11+, Edge 15 - 18+\r\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\r\n\t\t\t// Adding a temporary attribute to the document before the selection works\r\n\t\t\t// around the issue.\r\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\r\n\t\t\tinput = document.createElement( \"input\" );\r\n\t\t\tinput.setAttribute( \"name\", \"\" );\r\n\t\t\tel.appendChild( input );\r\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\r\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\r\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Webkit/Opera - :checked should return selected option elements\r\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\r\n\t\t\t// IE8 throws error here and will not see later tests\r\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\r\n\t\t\t\trbuggyQSA.push( \":checked\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Support: Safari 8+, iOS 8+\r\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\r\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\r\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\r\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Support: Firefox <=3.6 - 5 only\r\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\r\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\r\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\r\n\t\t} );\r\n\r\n\t\tassert( function( el ) {\r\n\t\t\tel.innerHTML = \"\" +\r\n\t\t\t\t\"\";\r\n\r\n\t\t\t// Support: Windows 8 Native Apps\r\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\r\n\t\t\tvar input = document.createElement( \"input\" );\r\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\r\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\r\n\r\n\t\t\t// Support: IE8\r\n\t\t\t// Enforce case-sensitivity of name attribute\r\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\r\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\r\n\t\t\t}\r\n\r\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\r\n\t\t\t// IE8 throws error here and will not see later tests\r\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\r\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Support: IE9-11+\r\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\r\n\t\t\tdocElem.appendChild( el ).disabled = true;\r\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\r\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Support: Opera 10 - 11 only\r\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\r\n\t\t\tel.querySelectorAll( \"*,:x\" );\r\n\t\t\trbuggyQSA.push( \",.*:\" );\r\n\t\t} );\r\n\t}\r\n\r\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\r\n\t\tdocElem.webkitMatchesSelector ||\r\n\t\tdocElem.mozMatchesSelector ||\r\n\t\tdocElem.oMatchesSelector ||\r\n\t\tdocElem.msMatchesSelector ) ) ) ) {\r\n\r\n\t\tassert( function( el ) {\r\n\r\n\t\t\t// Check to see if it's possible to do matchesSelector\r\n\t\t\t// on a disconnected node (IE 9)\r\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\r\n\r\n\t\t\t// This should fail with an exception\r\n\t\t\t// Gecko does not error, returns false instead\r\n\t\t\tmatches.call( el, \"[s!='']:x\" );\r\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\r\n\t\t} );\r\n\t}\r\n\r\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\r\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\r\n\r\n\t/* Contains\r\n\t---------------------------------------------------------------------- */\r\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\r\n\r\n\t// Element contains another\r\n\t// Purposefully self-exclusive\r\n\t// As in, an element does not contain itself\r\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\r\n\t\tfunction( a, b ) {\r\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\r\n\t\t\t\tbup = b && b.parentNode;\r\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\r\n\t\t\t\tadown.contains ?\r\n\t\t\t\t\tadown.contains( bup ) :\r\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\r\n\t\t\t) );\r\n\t\t} :\r\n\t\tfunction( a, b ) {\r\n\t\t\tif ( b ) {\r\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\r\n\t\t\t\t\tif ( b === a ) {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t};\r\n\r\n\t/* Sorting\r\n\t---------------------------------------------------------------------- */\r\n\r\n\t// Document order sorting\r\n\tsortOrder = hasCompare ?\r\n\tfunction( a, b ) {\r\n\r\n\t\t// Flag for duplicate removal\r\n\t\tif ( a === b ) {\r\n\t\t\thasDuplicate = true;\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\t// Sort on method existence if only one input has compareDocumentPosition\r\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\r\n\t\tif ( compare ) {\r\n\t\t\treturn compare;\r\n\t\t}\r\n\r\n\t\t// Calculate position if both inputs belong to the same document\r\n\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t// two documents; shallow comparisons work.\r\n\t\t// eslint-disable-next-line eqeqeq\r\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\r\n\t\t\ta.compareDocumentPosition( b ) :\r\n\r\n\t\t\t// Otherwise we know they are disconnected\r\n\t\t\t1;\r\n\r\n\t\t// Disconnected nodes\r\n\t\tif ( compare & 1 ||\r\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\r\n\r\n\t\t\t// Choose the first element that is related to our preferred document\r\n\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\r\n\t\t\t\tcontains( preferredDoc, a ) ) {\r\n\t\t\t\treturn -1;\r\n\t\t\t}\r\n\r\n\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\r\n\t\t\t\tcontains( preferredDoc, b ) ) {\r\n\t\t\t\treturn 1;\r\n\t\t\t}\r\n\r\n\t\t\t// Maintain original order\r\n\t\t\treturn sortInput ?\r\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\r\n\t\t\t\t0;\r\n\t\t}\r\n\r\n\t\treturn compare & 4 ? -1 : 1;\r\n\t} :\r\n\tfunction( a, b ) {\r\n\r\n\t\t// Exit early if the nodes are identical\r\n\t\tif ( a === b ) {\r\n\t\t\thasDuplicate = true;\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tvar cur,\r\n\t\t\ti = 0,\r\n\t\t\taup = a.parentNode,\r\n\t\t\tbup = b.parentNode,\r\n\t\t\tap = [ a ],\r\n\t\t\tbp = [ b ];\r\n\r\n\t\t// Parentless nodes are either documents or disconnected\r\n\t\tif ( !aup || !bup ) {\r\n\r\n\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t/* eslint-disable eqeqeq */\r\n\t\t\treturn a == document ? -1 :\r\n\t\t\t\tb == document ? 1 :\r\n\t\t\t\t/* eslint-enable eqeqeq */\r\n\t\t\t\taup ? -1 :\r\n\t\t\t\tbup ? 1 :\r\n\t\t\t\tsortInput ?\r\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\r\n\t\t\t\t0;\r\n\r\n\t\t// If the nodes are siblings, we can do a quick check\r\n\t\t} else if ( aup === bup ) {\r\n\t\t\treturn siblingCheck( a, b );\r\n\t\t}\r\n\r\n\t\t// Otherwise we need full lists of their ancestors for comparison\r\n\t\tcur = a;\r\n\t\twhile ( ( cur = cur.parentNode ) ) {\r\n\t\t\tap.unshift( cur );\r\n\t\t}\r\n\t\tcur = b;\r\n\t\twhile ( ( cur = cur.parentNode ) ) {\r\n\t\t\tbp.unshift( cur );\r\n\t\t}\r\n\r\n\t\t// Walk down the tree looking for a discrepancy\r\n\t\twhile ( ap[ i ] === bp[ i ] ) {\r\n\t\t\ti++;\r\n\t\t}\r\n\r\n\t\treturn i ?\r\n\r\n\t\t\t// Do a sibling check if the nodes have a common ancestor\r\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\r\n\r\n\t\t\t// Otherwise nodes in our document sort first\r\n\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t/* eslint-disable eqeqeq */\r\n\t\t\tap[ i ] == preferredDoc ? -1 :\r\n\t\t\tbp[ i ] == preferredDoc ? 1 :\r\n\t\t\t/* eslint-enable eqeqeq */\r\n\t\t\t0;\r\n\t};\r\n\r\n\treturn document;\r\n};\r\n\r\nSizzle.matches = function( expr, elements ) {\r\n\treturn Sizzle( expr, null, null, elements );\r\n};\r\n\r\nSizzle.matchesSelector = function( elem, expr ) {\r\n\tsetDocument( elem );\r\n\r\n\tif ( support.matchesSelector && documentIsHTML &&\r\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\r\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\r\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\r\n\r\n\t\ttry {\r\n\t\t\tvar ret = matches.call( elem, expr );\r\n\r\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\r\n\t\t\tif ( ret || support.disconnectedMatch ||\r\n\r\n\t\t\t\t// As well, disconnected nodes are said to be in a document\r\n\t\t\t\t// fragment in IE 9\r\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\r\n\t\t\t\treturn ret;\r\n\t\t\t}\r\n\t\t} catch ( e ) {\r\n\t\t\tnonnativeSelectorCache( expr, true );\r\n\t\t}\r\n\t}\r\n\r\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\r\n};\r\n\r\nSizzle.contains = function( context, elem ) {\r\n\r\n\t// Set document vars if needed\r\n\t// Support: IE 11+, Edge 17 - 18+\r\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t// two documents; shallow comparisons work.\r\n\t// eslint-disable-next-line eqeqeq\r\n\tif ( ( context.ownerDocument || context ) != document ) {\r\n\t\tsetDocument( context );\r\n\t}\r\n\treturn contains( context, elem );\r\n};\r\n\r\nSizzle.attr = function( elem, name ) {\r\n\r\n\t// Set document vars if needed\r\n\t// Support: IE 11+, Edge 17 - 18+\r\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t// two documents; shallow comparisons work.\r\n\t// eslint-disable-next-line eqeqeq\r\n\tif ( ( elem.ownerDocument || elem ) != document ) {\r\n\t\tsetDocument( elem );\r\n\t}\r\n\r\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\r\n\r\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\r\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\r\n\t\t\tfn( elem, name, !documentIsHTML ) :\r\n\t\t\tundefined;\r\n\r\n\treturn val !== undefined ?\r\n\t\tval :\r\n\t\tsupport.attributes || !documentIsHTML ?\r\n\t\t\telem.getAttribute( name ) :\r\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\r\n\t\t\t\tval.value :\r\n\t\t\t\tnull;\r\n};\r\n\r\nSizzle.escape = function( sel ) {\r\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\r\n};\r\n\r\nSizzle.error = function( msg ) {\r\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\r\n};\r\n\r\n/**\r\n * Document sorting and removing duplicates\r\n * @param {ArrayLike} results\r\n */\r\nSizzle.uniqueSort = function( results ) {\r\n\tvar elem,\r\n\t\tduplicates = [],\r\n\t\tj = 0,\r\n\t\ti = 0;\r\n\r\n\t// Unless we *know* we can detect duplicates, assume their presence\r\n\thasDuplicate = !support.detectDuplicates;\r\n\tsortInput = !support.sortStable && results.slice( 0 );\r\n\tresults.sort( sortOrder );\r\n\r\n\tif ( hasDuplicate ) {\r\n\t\twhile ( ( elem = results[ i++ ] ) ) {\r\n\t\t\tif ( elem === results[ i ] ) {\r\n\t\t\t\tj = duplicates.push( i );\r\n\t\t\t}\r\n\t\t}\r\n\t\twhile ( j-- ) {\r\n\t\t\tresults.splice( duplicates[ j ], 1 );\r\n\t\t}\r\n\t}\r\n\r\n\t// Clear input after sorting to release objects\r\n\t// See https://github.com/jquery/sizzle/pull/225\r\n\tsortInput = null;\r\n\r\n\treturn results;\r\n};\r\n\r\n/**\r\n * Utility function for retrieving the text value of an array of DOM nodes\r\n * @param {Array|Element} elem\r\n */\r\ngetText = Sizzle.getText = function( elem ) {\r\n\tvar node,\r\n\t\tret = \"\",\r\n\t\ti = 0,\r\n\t\tnodeType = elem.nodeType;\r\n\r\n\tif ( !nodeType ) {\r\n\r\n\t\t// If no nodeType, this is expected to be an array\r\n\t\twhile ( ( node = elem[ i++ ] ) ) {\r\n\r\n\t\t\t// Do not traverse comment nodes\r\n\t\t\tret += getText( node );\r\n\t\t}\r\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\r\n\r\n\t\t// Use textContent for elements\r\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\r\n\t\tif ( typeof elem.textContent === \"string\" ) {\r\n\t\t\treturn elem.textContent;\r\n\t\t} else {\r\n\r\n\t\t\t// Traverse its children\r\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\r\n\t\t\t\tret += getText( elem );\r\n\t\t\t}\r\n\t\t}\r\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\r\n\t\treturn elem.nodeValue;\r\n\t}\r\n\r\n\t// Do not include comment or processing instruction nodes\r\n\r\n\treturn ret;\r\n};\r\n\r\nExpr = Sizzle.selectors = {\r\n\r\n\t// Can be adjusted by the user\r\n\tcacheLength: 50,\r\n\r\n\tcreatePseudo: markFunction,\r\n\r\n\tmatch: matchExpr,\r\n\r\n\tattrHandle: {},\r\n\r\n\tfind: {},\r\n\r\n\trelative: {\r\n\t\t\">\": { dir: \"parentNode\", first: true },\r\n\t\t\" \": { dir: \"parentNode\" },\r\n\t\t\"+\": { dir: \"previousSibling\", first: true },\r\n\t\t\"~\": { dir: \"previousSibling\" }\r\n\t},\r\n\r\n\tpreFilter: {\r\n\t\t\"ATTR\": function( match ) {\r\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\r\n\r\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\r\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\r\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\r\n\r\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\r\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\r\n\t\t\t}\r\n\r\n\t\t\treturn match.slice( 0, 4 );\r\n\t\t},\r\n\r\n\t\t\"CHILD\": function( match ) {\r\n\r\n\t\t\t/* matches from matchExpr[\"CHILD\"]\r\n\t\t\t\t1 type (only|nth|...)\r\n\t\t\t\t2 what (child|of-type)\r\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\r\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\r\n\t\t\t\t5 sign of xn-component\r\n\t\t\t\t6 x of xn-component\r\n\t\t\t\t7 sign of y-component\r\n\t\t\t\t8 y of y-component\r\n\t\t\t*/\r\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\r\n\r\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\r\n\r\n\t\t\t\t// nth-* requires argument\r\n\t\t\t\tif ( !match[ 3 ] ) {\r\n\t\t\t\t\tSizzle.error( match[ 0 ] );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\r\n\t\t\t\t// remember that false/true cast respectively to 0/1\r\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\r\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\r\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\r\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\r\n\r\n\t\t\t\t// other types prohibit arguments\r\n\t\t\t} else if ( match[ 3 ] ) {\r\n\t\t\t\tSizzle.error( match[ 0 ] );\r\n\t\t\t}\r\n\r\n\t\t\treturn match;\r\n\t\t},\r\n\r\n\t\t\"PSEUDO\": function( match ) {\r\n\t\t\tvar excess,\r\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\r\n\r\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\t// Accept quoted arguments as-is\r\n\t\t\tif ( match[ 3 ] ) {\r\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\r\n\r\n\t\t\t// Strip excess characters from unquoted arguments\r\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\r\n\r\n\t\t\t\t// Get excess from tokenize (recursively)\r\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\r\n\r\n\t\t\t\t// advance to the next closing parenthesis\r\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\r\n\r\n\t\t\t\t// excess is a negative index\r\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\r\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\r\n\t\t\t}\r\n\r\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\r\n\t\t\treturn match.slice( 0, 3 );\r\n\t\t}\r\n\t},\r\n\r\n\tfilter: {\r\n\r\n\t\t\"TAG\": function( nodeNameSelector ) {\r\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\r\n\t\t\treturn nodeNameSelector === \"*\" ?\r\n\t\t\t\tfunction() {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t} :\r\n\t\t\t\tfunction( elem ) {\r\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\r\n\t\t\t\t};\r\n\t\t},\r\n\r\n\t\t\"CLASS\": function( className ) {\r\n\t\t\tvar pattern = classCache[ className + \" \" ];\r\n\r\n\t\t\treturn pattern ||\r\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\r\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\r\n\t\t\t\t\t\tclassName, function( elem ) {\r\n\t\t\t\t\t\t\treturn pattern.test(\r\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\r\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\r\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\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} );\r\n\t\t},\r\n\r\n\t\t\"ATTR\": function( name, operator, check ) {\r\n\t\t\treturn function( elem ) {\r\n\t\t\t\tvar result = Sizzle.attr( elem, name );\r\n\r\n\t\t\t\tif ( result == null ) {\r\n\t\t\t\t\treturn operator === \"!=\";\r\n\t\t\t\t}\r\n\t\t\t\tif ( !operator ) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tresult += \"\";\r\n\r\n\t\t\t\t/* eslint-disable max-len */\r\n\r\n\t\t\t\treturn operator === \"=\" ? result === check :\r\n\t\t\t\t\toperator === \"!=\" ? result !== check :\r\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\r\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\r\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\r\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\r\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\r\n\t\t\t\t\tfalse;\r\n\t\t\t\t/* eslint-enable max-len */\r\n\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\r\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\r\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\r\n\t\t\t\tofType = what === \"of-type\";\r\n\r\n\t\t\treturn first === 1 && last === 0 ?\r\n\r\n\t\t\t\t// Shortcut for :nth-*(n)\r\n\t\t\t\tfunction( elem ) {\r\n\t\t\t\t\treturn !!elem.parentNode;\r\n\t\t\t\t} :\r\n\r\n\t\t\t\tfunction( elem, _context, xml ) {\r\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\r\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\r\n\t\t\t\t\t\tparent = elem.parentNode,\r\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\r\n\t\t\t\t\t\tuseCache = !xml && !ofType,\r\n\t\t\t\t\t\tdiff = false;\r\n\r\n\t\t\t\t\tif ( parent ) {\r\n\r\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\r\n\t\t\t\t\t\tif ( simple ) {\r\n\t\t\t\t\t\t\twhile ( dir ) {\r\n\t\t\t\t\t\t\t\tnode = elem;\r\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\r\n\t\t\t\t\t\t\t\t\tif ( ofType ?\r\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\r\n\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\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\r\n\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\tstart = dir = type === \"only\" && !start && \"nextSibling\";\r\n\t\t\t\t\t\t\t}\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\tstart = [ forward ? parent.firstChild : parent.lastChild ];\r\n\r\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\r\n\t\t\t\t\t\tif ( forward && useCache ) {\r\n\r\n\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// ...in a gzip-friendly way\r\n\t\t\t\t\t\t\tnode = parent;\r\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\r\n\r\n\t\t\t\t\t\t\t// Support: IE <9 only\r\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\r\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\r\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\r\n\r\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\r\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\r\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\r\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\r\n\r\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\r\n\r\n\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( diff = nodeIndex = 0 ) || start.pop() ) ) {\r\n\r\n\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\tif ( node.nodeType === 1 && ++diff && node === elem ) {\r\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\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\r\n\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t// Use previously-cached element index if available\r\n\t\t\t\t\t\t\tif ( useCache ) {\r\n\r\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\r\n\t\t\t\t\t\t\t\tnode = elem;\r\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\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// Defend against cloned attroperties (jQuery gh-1709)\r\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\r\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\r\n\r\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\r\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\r\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// xml :nth-child(...)\r\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\r\n\t\t\t\t\t\t\tif ( diff === false ) {\r\n\r\n\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\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\r\n\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\tif ( ( ofType ?\r\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\r\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\r\n\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// Cache the index of each encountered element\r\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\r\n\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( node[ 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[ node.uniqueID ] ||\r\n\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\tuniqueCache[ type ] = [ dirruns, diff ];\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\tif ( node === elem ) {\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\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\r\n\t\t\t\t\t\tdiff -= last;\r\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t},\r\n\r\n\t\t\"PSEUDO\": function( pseudo, argument ) {\r\n\r\n\t\t\t// pseudo-class names are case-insensitive\r\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\r\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\r\n\t\t\t// Remember that setFilters inherits from pseudos\r\n\t\t\tvar args,\r\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\r\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\r\n\r\n\t\t\t// The user may use createPseudo to indicate that\r\n\t\t\t// arguments are needed to create the filter function\r\n\t\t\t// just as Sizzle does\r\n\t\t\tif ( fn[ expando ] ) {\r\n\t\t\t\treturn fn( argument );\r\n\t\t\t}\r\n\r\n\t\t\t// But maintain support for old signatures\r\n\t\t\tif ( fn.length > 1 ) {\r\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\r\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\r\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\r\n\t\t\t\t\t\tvar idx,\r\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\r\n\t\t\t\t\t\t\ti = matched.length;\r\n\t\t\t\t\t\twhile ( i-- ) {\r\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\r\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} ) :\r\n\t\t\t\t\tfunction( elem ) {\r\n\t\t\t\t\t\treturn fn( elem, 0, args );\r\n\t\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn fn;\r\n\t\t}\r\n\t},\r\n\r\n\tpseudos: {\r\n\r\n\t\t// Potentially complex pseudos\r\n\t\t\"not\": markFunction( function( selector ) {\r\n\r\n\t\t\t// Trim the selector passed to compile\r\n\t\t\t// to avoid treating leading and trailing\r\n\t\t\t// spaces as combinators\r\n\t\t\tvar input = [],\r\n\t\t\t\tresults = [],\r\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\r\n\r\n\t\t\treturn matcher[ expando ] ?\r\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\r\n\t\t\t\t\tvar elem,\r\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\r\n\t\t\t\t\t\ti = seed.length;\r\n\r\n\t\t\t\t\t// Match elements unmatched by `matcher`\r\n\t\t\t\t\twhile ( i-- ) {\r\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\r\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\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\tfunction( elem, _context, xml ) {\r\n\t\t\t\t\tinput[ 0 ] = elem;\r\n\t\t\t\t\tmatcher( input, null, xml, results );\r\n\r\n\t\t\t\t\t// Don't keep the element (issue #299)\r\n\t\t\t\t\tinput[ 0 ] = null;\r\n\t\t\t\t\treturn !results.pop();\r\n\t\t\t\t};\r\n\t\t} ),\r\n\r\n\t\t\"has\": markFunction( function( selector ) {\r\n\t\t\treturn function( elem ) {\r\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\r\n\t\t\t};\r\n\t\t} ),\r\n\r\n\t\t\"contains\": markFunction( function( text ) {\r\n\t\t\ttext = text.replace( runescape, funescape );\r\n\t\t\treturn function( elem ) {\r\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\r\n\t\t\t};\r\n\t\t} ),\r\n\r\n\t\t// \"Whether an element is represented by a :lang() selector\r\n\t\t// is based solely on the element's language value\r\n\t\t// being equal to the identifier C,\r\n\t\t// or beginning with the identifier C immediately followed by \"-\".\r\n\t\t// The matching of C against the element's language value is performed case-insensitively.\r\n\t\t// The identifier C does not have to be a valid language name.\"\r\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\r\n\t\t\"lang\": markFunction( function( lang ) {\r\n\r\n\t\t\t// lang value must be a valid identifier\r\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\r\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\r\n\t\t\t}\r\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\r\n\t\t\treturn function( elem ) {\r\n\t\t\t\tvar elemLang;\r\n\t\t\t\tdo {\r\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\r\n\t\t\t\t\t\telem.lang :\r\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\r\n\r\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\r\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\r\n\t\t\t\treturn false;\r\n\t\t\t};\r\n\t\t} ),\r\n\r\n\t\t// Miscellaneous\r\n\t\t\"target\": function( elem ) {\r\n\t\t\tvar hash = window.location && window.location.hash;\r\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\r\n\t\t},\r\n\r\n\t\t\"root\": function( elem ) {\r\n\t\t\treturn elem === docElem;\r\n\t\t},\r\n\r\n\t\t\"focus\": function( elem ) {\r\n\t\t\treturn elem === document.activeElement &&\r\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\r\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\r\n\t\t},\r\n\r\n\t\t// Boolean properties\r\n\t\t\"enabled\": createDisabledPseudo( false ),\r\n\t\t\"disabled\": createDisabledPseudo( true ),\r\n\r\n\t\t\"checked\": function( elem ) {\r\n\r\n\t\t\t// In CSS3, :checked should return both checked and selected elements\r\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\r\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\r\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\r\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\r\n\t\t},\r\n\r\n\t\t\"selected\": function( elem ) {\r\n\r\n\t\t\t// Accessing this property makes selected-by-default\r\n\t\t\t// options in Safari work properly\r\n\t\t\tif ( elem.parentNode ) {\r\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\t\t\telem.parentNode.selectedIndex;\r\n\t\t\t}\r\n\r\n\t\t\treturn elem.selected === true;\r\n\t\t},\r\n\r\n\t\t// Contents\r\n\t\t\"empty\": function( elem ) {\r\n\r\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\r\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\r\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\r\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\r\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\r\n\t\t\t\tif ( elem.nodeType < 6 ) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t},\r\n\r\n\t\t\"parent\": function( elem ) {\r\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\r\n\t\t},\r\n\r\n\t\t// Element/input types\r\n\t\t\"header\": function( elem ) {\r\n\t\t\treturn rheader.test( elem.nodeName );\r\n\t\t},\r\n\r\n\t\t\"input\": function( elem ) {\r\n\t\t\treturn rinputs.test( elem.nodeName );\r\n\t\t},\r\n\r\n\t\t\"button\": function( elem ) {\r\n\t\t\tvar name = elem.nodeName.toLowerCase();\r\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\r\n\t\t},\r\n\r\n\t\t\"text\": function( elem ) {\r\n\t\t\tvar attr;\r\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\r\n\t\t\t\telem.type === \"text\" &&\r\n\r\n\t\t\t\t// Support: IE<8\r\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\r\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\r\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\r\n\t\t},\r\n\r\n\t\t// Position-in-collection\r\n\t\t\"first\": createPositionalPseudo( function() {\r\n\t\t\treturn [ 0 ];\r\n\t\t} ),\r\n\r\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\r\n\t\t\treturn [ length - 1 ];\r\n\t\t} ),\r\n\r\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\r\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\r\n\t\t} ),\r\n\r\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\r\n\t\t\tvar i = 0;\r\n\t\t\tfor ( ; i < length; i += 2 ) {\r\n\t\t\t\tmatchIndexes.push( i );\r\n\t\t\t}\r\n\t\t\treturn matchIndexes;\r\n\t\t} ),\r\n\r\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\r\n\t\t\tvar i = 1;\r\n\t\t\tfor ( ; i < length; i += 2 ) {\r\n\t\t\t\tmatchIndexes.push( i );\r\n\t\t\t}\r\n\t\t\treturn matchIndexes;\r\n\t\t} ),\r\n\r\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\r\n\t\t\tvar i = argument < 0 ?\r\n\t\t\t\targument + length :\r\n\t\t\t\targument > length ?\r\n\t\t\t\t\tlength :\r\n\t\t\t\t\targument;\r\n\t\t\tfor ( ; --i >= 0; ) {\r\n\t\t\t\tmatchIndexes.push( i );\r\n\t\t\t}\r\n\t\t\treturn matchIndexes;\r\n\t\t} ),\r\n\r\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\r\n\t\t\tvar i = argument < 0 ? argument + length : argument;\r\n\t\t\tfor ( ; ++i < length; ) {\r\n\t\t\t\tmatchIndexes.push( i );\r\n\t\t\t}\r\n\t\t\treturn matchIndexes;\r\n\t\t} )\r\n\t}\r\n};\r\n\r\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\r\n\r\n// Add button/input type pseudos\r\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\r\n\tExpr.pseudos[ i ] = createInputPseudo( i );\r\n}\r\nfor ( i in { submit: true, reset: true } ) {\r\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\r\n}\r\n\r\n// Easy API for creating new setFilters\r\nfunction setFilters() {}\r\nsetFilters.prototype = Expr.filters = Expr.pseudos;\r\nExpr.setFilters = new setFilters();\r\n\r\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\r\n\tvar matched, match, tokens, type,\r\n\t\tsoFar, groups, preFilters,\r\n\t\tcached = tokenCache[ selector + \" \" ];\r\n\r\n\tif ( cached ) {\r\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\r\n\t}\r\n\r\n\tsoFar = selector;\r\n\tgroups = [];\r\n\tpreFilters = Expr.preFilter;\r\n\r\n\twhile ( soFar ) {\r\n\r\n\t\t// Comma and first run\r\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\r\n\t\t\tif ( match ) {\r\n\r\n\t\t\t\t// Don't consume trailing commas as valid\r\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\r\n\t\t\t}\r\n\t\t\tgroups.push( ( tokens = [] ) );\r\n\t\t}\r\n\r\n\t\tmatched = false;\r\n\r\n\t\t// Combinators\r\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\r\n\t\t\tmatched = match.shift();\r\n\t\t\ttokens.push( {\r\n\t\t\t\tvalue: matched,\r\n\r\n\t\t\t\t// Cast descendant combinators to space\r\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\r\n\t\t\t} );\r\n\t\t\tsoFar = soFar.slice( matched.length );\r\n\t\t}\r\n\r\n\t\t// Filters\r\n\t\tfor ( type in Expr.filter ) {\r\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\r\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\r\n\t\t\t\tmatched = match.shift();\r\n\t\t\t\ttokens.push( {\r\n\t\t\t\t\tvalue: matched,\r\n\t\t\t\t\ttype: type,\r\n\t\t\t\t\tmatches: match\r\n\t\t\t\t} );\r\n\t\t\t\tsoFar = soFar.slice( matched.length );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( !matched ) {\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\t// Return the length of the invalid excess\r\n\t// if we're just parsing\r\n\t// Otherwise, throw an error or return tokens\r\n\treturn parseOnly ?\r\n\t\tsoFar.length :\r\n\t\tsoFar ?\r\n\t\t\tSizzle.error( selector ) :\r\n\r\n\t\t\t// Cache the tokens\r\n\t\t\ttokenCache( selector, groups ).slice( 0 );\r\n};\r\n\r\nfunction toSelector( tokens ) {\r\n\tvar i = 0,\r\n\t\tlen = tokens.length,\r\n\t\tselector = \"\";\r\n\tfor ( ; i < len; i++ ) {\r\n\t\tselector += tokens[ i ].value;\r\n\t}\r\n\treturn selector;\r\n}\r\n\r\nfunction addCombinator( matcher, combinator, base ) {\r\n\tvar dir = combinator.dir,\r\n\t\tskip = combinator.next,\r\n\t\tkey = skip || dir,\r\n\t\tcheckNonElements = base && key === \"parentNode\",\r\n\t\tdoneName = done++;\r\n\r\n\treturn combinator.first ?\r\n\r\n\t\t// Check against closest ancestor/preceding element\r\n\t\tfunction( elem, context, xml ) {\r\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\r\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\r\n\t\t\t\t\treturn matcher( elem, context, xml );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t} :\r\n\r\n\t\t// Check against all ancestor/preceding elements\r\n\t\tfunction( elem, context, xml ) {\r\n\t\t\tvar oldCache, uniqueCache, outerCache,\r\n\t\t\t\tnewCache = [ dirruns, doneName ];\r\n\r\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\r\n\t\t\tif ( xml ) {\r\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\r\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\r\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\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\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\r\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\r\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\r\n\r\n\t\t\t\t\t\t// Support: IE <9 only\r\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\r\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\r\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\r\n\r\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\r\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\r\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\r\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\r\n\r\n\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\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\r\n\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\r\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\r\n\r\n\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\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\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\t\t\t}\r\n\t\t\treturn false;\r\n\t\t};\r\n}\r\n\r\nfunction elementMatcher( matchers ) {\r\n\treturn matchers.length > 1 ?\r\n\t\tfunction( elem, context, xml ) {\r\n\t\t\tvar i = matchers.length;\r\n\t\t\twhile ( i-- ) {\r\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t} :\r\n\t\tmatchers[ 0 ];\r\n}\r\n\r\nfunction multipleContexts( selector, contexts, results ) {\r\n\tvar i = 0,\r\n\t\tlen = contexts.length;\r\n\tfor ( ; i < len; i++ ) {\r\n\t\tSizzle( selector, contexts[ i ], results );\r\n\t}\r\n\treturn results;\r\n}\r\n\r\nfunction condense( unmatched, map, filter, context, xml ) {\r\n\tvar elem,\r\n\t\tnewUnmatched = [],\r\n\t\ti = 0,\r\n\t\tlen = unmatched.length,\r\n\t\tmapped = map != null;\r\n\r\n\tfor ( ; i < len; i++ ) {\r\n\t\tif ( ( elem = unmatched[ i ] ) ) {\r\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\r\n\t\t\t\tnewUnmatched.push( elem );\r\n\t\t\t\tif ( mapped ) {\r\n\t\t\t\t\tmap.push( i );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn newUnmatched;\r\n}\r\n\r\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\r\n\tif ( postFilter && !postFilter[ expando ] ) {\r\n\t\tpostFilter = setMatcher( postFilter );\r\n\t}\r\n\tif ( postFinder && !postFinder[ expando ] ) {\r\n\t\tpostFinder = setMatcher( postFinder, postSelector );\r\n\t}\r\n\treturn markFunction( function( seed, results, context, xml ) {\r\n\t\tvar temp, i, elem,\r\n\t\t\tpreMap = [],\r\n\t\t\tpostMap = [],\r\n\t\t\tpreexisting = results.length,\r\n\r\n\t\t\t// Get initial elements from seed or context\r\n\t\t\telems = seed || multipleContexts(\r\n\t\t\t\tselector || \"*\",\r\n\t\t\t\tcontext.nodeType ? [ context ] : context,\r\n\t\t\t\t[]\r\n\t\t\t),\r\n\r\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\r\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\r\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\r\n\t\t\t\telems,\r\n\r\n\t\t\tmatcherOut = matcher ?\r\n\r\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\r\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\r\n\r\n\t\t\t\t\t// ...intermediate processing is necessary\r\n\t\t\t\t\t[] :\r\n\r\n\t\t\t\t\t// ...otherwise use results directly\r\n\t\t\t\t\tresults :\r\n\t\t\t\tmatcherIn;\r\n\r\n\t\t// Find primary matches\r\n\t\tif ( matcher ) {\r\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\r\n\t\t}\r\n\r\n\t\t// Apply postFilter\r\n\t\tif ( postFilter ) {\r\n\t\t\ttemp = condense( matcherOut, postMap );\r\n\t\t\tpostFilter( temp, [], context, xml );\r\n\r\n\t\t\t// Un-match failing elements by moving them back to matcherIn\r\n\t\t\ti = temp.length;\r\n\t\t\twhile ( i-- ) {\r\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\r\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( seed ) {\r\n\t\t\tif ( postFinder || preFilter ) {\r\n\t\t\t\tif ( postFinder ) {\r\n\r\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\r\n\t\t\t\t\ttemp = [];\r\n\t\t\t\t\ti = matcherOut.length;\r\n\t\t\t\t\twhile ( i-- ) {\r\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\r\n\r\n\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\ttemp.push( ( matcherIn[ i ] = elem ) );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\r\n\t\t\t\ti = matcherOut.length;\r\n\t\t\t\twhile ( i-- ) {\r\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\r\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\r\n\r\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t// Add elements to results, through postFinder if defined\r\n\t\t} else {\r\n\t\t\tmatcherOut = condense(\r\n\t\t\t\tmatcherOut === results ?\r\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\r\n\t\t\t\t\tmatcherOut\r\n\t\t\t);\r\n\t\t\tif ( postFinder ) {\r\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\r\n\t\t\t} else {\r\n\t\t\t\tpush.apply( results, matcherOut );\r\n\t\t\t}\r\n\t\t}\r\n\t} );\r\n}\r\n\r\nfunction matcherFromTokens( tokens ) {\r\n\tvar checkContext, matcher, j,\r\n\t\tlen = tokens.length,\r\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\r\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\r\n\t\ti = leadingRelative ? 1 : 0,\r\n\r\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\r\n\t\tmatchContext = addCombinator( function( elem ) {\r\n\t\t\treturn elem === checkContext;\r\n\t\t}, implicitRelative, true ),\r\n\t\tmatchAnyContext = addCombinator( function( elem ) {\r\n\t\t\treturn indexOf( checkContext, elem ) > -1;\r\n\t\t}, implicitRelative, true ),\r\n\t\tmatchers = [ function( elem, context, xml ) {\r\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\r\n\t\t\t\t( checkContext = context ).nodeType ?\r\n\t\t\t\t\tmatchContext( elem, context, xml ) :\r\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\r\n\r\n\t\t\t// Avoid hanging onto element (issue #299)\r\n\t\t\tcheckContext = null;\r\n\t\t\treturn ret;\r\n\t\t} ];\r\n\r\n\tfor ( ; i < len; i++ ) {\r\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\r\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\r\n\t\t} else {\r\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\r\n\r\n\t\t\t// Return special upon seeing a positional matcher\r\n\t\t\tif ( matcher[ expando ] ) {\r\n\r\n\t\t\t\t// Find the next relative operator (if any) for proper handling\r\n\t\t\t\tj = ++i;\r\n\t\t\t\tfor ( ; j < len; j++ ) {\r\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn setMatcher(\r\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\r\n\t\t\t\t\ti > 1 && toSelector(\r\n\r\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\r\n\t\t\t\t\ttokens\r\n\t\t\t\t\t\t.slice( 0, i - 1 )\r\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\r\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\r\n\t\t\t\t\tmatcher,\r\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\r\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\r\n\t\t\t\t\tj < len && toSelector( tokens )\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tmatchers.push( matcher );\r\n\t\t}\r\n\t}\r\n\r\n\treturn elementMatcher( matchers );\r\n}\r\n\r\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\r\n\tvar bySet = setMatchers.length > 0,\r\n\t\tbyElement = elementMatchers.length > 0,\r\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\r\n\t\t\tvar elem, j, matcher,\r\n\t\t\t\tmatchedCount = 0,\r\n\t\t\t\ti = \"0\",\r\n\t\t\t\tunmatched = seed && [],\r\n\t\t\t\tsetMatched = [],\r\n\t\t\t\tcontextBackup = outermostContext,\r\n\r\n\t\t\t\t// We must always have either seed elements or outermost context\r\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\r\n\r\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\r\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\r\n\t\t\t\tlen = elems.length;\r\n\r\n\t\t\tif ( outermost ) {\r\n\r\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\toutermostContext = context == document || context || outermost;\r\n\t\t\t}\r\n\r\n\t\t\t// Add elements passing elementMatchers directly to results\r\n\t\t\t// Support: IE<9, Safari\r\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\r\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\r\n\t\t\t\tif ( byElement && elem ) {\r\n\t\t\t\t\tj = 0;\r\n\r\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\r\n\t\t\t\t\t\tsetDocument( elem );\r\n\t\t\t\t\t\txml = !documentIsHTML;\r\n\t\t\t\t\t}\r\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\r\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\r\n\t\t\t\t\t\t\tresults.push( elem );\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\tif ( outermost ) {\r\n\t\t\t\t\t\tdirruns = dirrunsUnique;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Track unmatched elements for set filters\r\n\t\t\t\tif ( bySet ) {\r\n\r\n\t\t\t\t\t// They will have gone through all possible matchers\r\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\r\n\t\t\t\t\t\tmatchedCount--;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Lengthen the array for every element, matched or not\r\n\t\t\t\t\tif ( seed ) {\r\n\t\t\t\t\t\tunmatched.push( elem );\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// `i` is now the count of elements visited above, and adding it to `matchedCount`\r\n\t\t\t// makes the latter nonnegative.\r\n\t\t\tmatchedCount += i;\r\n\r\n\t\t\t// Apply set filters to unmatched elements\r\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\r\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\r\n\t\t\t// no element matchers and no seed.\r\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\r\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\r\n\t\t\t// numerically zero.\r\n\t\t\tif ( bySet && i !== matchedCount ) {\r\n\t\t\t\tj = 0;\r\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\r\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( seed ) {\r\n\r\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\r\n\t\t\t\t\tif ( matchedCount > 0 ) {\r\n\t\t\t\t\t\twhile ( i-- ) {\r\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\r\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\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// Discard index placeholder values to get only actual matches\r\n\t\t\t\t\tsetMatched = condense( setMatched );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Add matches to results\r\n\t\t\t\tpush.apply( results, setMatched );\r\n\r\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\r\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\r\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\r\n\r\n\t\t\t\t\tSizzle.uniqueSort( results );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Override manipulation of globals by nested matchers\r\n\t\t\tif ( outermost ) {\r\n\t\t\t\tdirruns = dirrunsUnique;\r\n\t\t\t\toutermostContext = contextBackup;\r\n\t\t\t}\r\n\r\n\t\t\treturn unmatched;\r\n\t\t};\r\n\r\n\treturn bySet ?\r\n\t\tmarkFunction( superMatcher ) :\r\n\t\tsuperMatcher;\r\n}\r\n\r\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\r\n\tvar i,\r\n\t\tsetMatchers = [],\r\n\t\telementMatchers = [],\r\n\t\tcached = compilerCache[ selector + \" \" ];\r\n\r\n\tif ( !cached ) {\r\n\r\n\t\t// Generate a function of recursive functions that can be used to check each element\r\n\t\tif ( !match ) {\r\n\t\t\tmatch = tokenize( selector );\r\n\t\t}\r\n\t\ti = match.length;\r\n\t\twhile ( i-- ) {\r\n\t\t\tcached = matcherFromTokens( match[ i ] );\r\n\t\t\tif ( cached[ expando ] ) {\r\n\t\t\t\tsetMatchers.push( cached );\r\n\t\t\t} else {\r\n\t\t\t\telementMatchers.push( cached );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Cache the compiled function\r\n\t\tcached = compilerCache(\r\n\t\t\tselector,\r\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\r\n\t\t);\r\n\r\n\t\t// Save selector and tokenization\r\n\t\tcached.selector = selector;\r\n\t}\r\n\treturn cached;\r\n};\r\n\r\n/**\r\n * A low-level selection function that works with Sizzle's compiled\r\n * selector functions\r\n * @param {String|Function} selector A selector or a pre-compiled\r\n * selector function built with Sizzle.compile\r\n * @param {Element} context\r\n * @param {Array} [results]\r\n * @param {Array} [seed] A set of elements to match against\r\n */\r\nselect = Sizzle.select = function( selector, context, results, seed ) {\r\n\tvar i, tokens, token, type, find,\r\n\t\tcompiled = typeof selector === \"function\" && selector,\r\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\r\n\r\n\tresults = results || [];\r\n\r\n\t// Try to minimize operations if there is only one selector in the list and no seed\r\n\t// (the latter of which guarantees us context)\r\n\tif ( match.length === 1 ) {\r\n\r\n\t\t// Reduce context if the leading compound selector is an ID\r\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\r\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\r\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\r\n\r\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\r\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\r\n\t\t\tif ( !context ) {\r\n\t\t\t\treturn results;\r\n\r\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\r\n\t\t\t} else if ( compiled ) {\r\n\t\t\t\tcontext = context.parentNode;\r\n\t\t\t}\r\n\r\n\t\t\tselector = selector.slice( tokens.shift().value.length );\r\n\t\t}\r\n\r\n\t\t// Fetch a seed set for right-to-left matching\r\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\r\n\t\twhile ( i-- ) {\r\n\t\t\ttoken = tokens[ i ];\r\n\r\n\t\t\t// Abort if we hit a combinator\r\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\r\n\r\n\t\t\t\t// Search, expanding context for leading sibling combinators\r\n\t\t\t\tif ( ( seed = find(\r\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\r\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\r\n\t\t\t\t\t\tcontext\r\n\t\t\t\t) ) ) {\r\n\r\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\r\n\t\t\t\t\ttokens.splice( i, 1 );\r\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\r\n\t\t\t\t\tif ( !selector ) {\r\n\t\t\t\t\t\tpush.apply( results, seed );\r\n\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Compile and execute a filtering function if one is not provided\r\n\t// Provide `match` to avoid retokenization if we modified the selector above\r\n\t( compiled || compile( selector, match ) )(\r\n\t\tseed,\r\n\t\tcontext,\r\n\t\t!documentIsHTML,\r\n\t\tresults,\r\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\r\n\t);\r\n\treturn results;\r\n};\r\n\r\n// One-time assignments\r\n\r\n// Sort stability\r\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\r\n\r\n// Support: Chrome 14-35+\r\n// Always assume duplicates if they aren't passed to the comparison function\r\nsupport.detectDuplicates = !!hasDuplicate;\r\n\r\n// Initialize against the default document\r\nsetDocument();\r\n\r\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\r\n// Detached nodes confoundingly follow *each other*\r\nsupport.sortDetached = assert( function( el ) {\r\n\r\n\t// Should return 1, but returns 4 (following)\r\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\r\n} );\r\n\r\n// Support: IE<8\r\n// Prevent attribute/property \"interpolation\"\r\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\r\nif ( !assert( function( el ) {\r\n\tel.innerHTML = \"\";\r\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\r\n} ) ) {\r\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\r\n\t\tif ( !isXML ) {\r\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\r\n\t\t}\r\n\t} );\r\n}\r\n\r\n// Support: IE<9\r\n// Use defaultValue in place of getAttribute(\"value\")\r\nif ( !support.attributes || !assert( function( el ) {\r\n\tel.innerHTML = \"\";\r\n\tel.firstChild.setAttribute( \"value\", \"\" );\r\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\r\n} ) ) {\r\n\taddHandle( \"value\", function( elem, _name, isXML ) {\r\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\r\n\t\t\treturn elem.defaultValue;\r\n\t\t}\r\n\t} );\r\n}\r\n\r\n// Support: IE<9\r\n// Use getAttributeNode to fetch booleans when getAttribute lies\r\nif ( !assert( function( el ) {\r\n\treturn el.getAttribute( \"disabled\" ) == null;\r\n} ) ) {\r\n\taddHandle( booleans, function( elem, name, isXML ) {\r\n\t\tvar val;\r\n\t\tif ( !isXML ) {\r\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\r\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\r\n\t\t\t\t\tval.value :\r\n\t\t\t\t\tnull;\r\n\t\t}\r\n\t} );\r\n}\r\n\r\nreturn Sizzle;\r\n\r\n} )( window );\r\n\r\n\r\n\r\njQuery.find = Sizzle;\r\njQuery.expr = Sizzle.selectors;\r\n\r\n// Deprecated\r\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\r\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\r\njQuery.text = Sizzle.getText;\r\njQuery.isXMLDoc = Sizzle.isXML;\r\njQuery.contains = Sizzle.contains;\r\njQuery.escapeSelector = Sizzle.escape;\r\n\r\n\r\n\r\n\r\nvar dir = function( elem, dir, until ) {\r\n\tvar matched = [],\r\n\t\ttruncate = until !== undefined;\r\n\r\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\r\n\t\tif ( elem.nodeType === 1 ) {\r\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tmatched.push( elem );\r\n\t\t}\r\n\t}\r\n\treturn matched;\r\n};\r\n\r\n\r\nvar siblings = function( n, elem ) {\r\n\tvar matched = [];\r\n\r\n\tfor ( ; n; n = n.nextSibling ) {\r\n\t\tif ( n.nodeType === 1 && n !== elem ) {\r\n\t\t\tmatched.push( n );\r\n\t\t}\r\n\t}\r\n\r\n\treturn matched;\r\n};\r\n\r\n\r\nvar rneedsContext = jQuery.expr.match.needsContext;\r\n\r\n\r\n\r\nfunction nodeName( elem, name ) {\r\n\r\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\r\n\r\n}\r\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\r\n\r\n\r\n\r\n// Implement the identical functionality for filter and not\r\nfunction winnow( elements, qualifier, not ) {\r\n\tif ( isFunction( qualifier ) ) {\r\n\t\treturn jQuery.grep( elements, function( elem, i ) {\r\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\r\n\t\t} );\r\n\t}\r\n\r\n\t// Single element\r\n\tif ( qualifier.nodeType ) {\r\n\t\treturn jQuery.grep( elements, function( elem ) {\r\n\t\t\treturn ( elem === qualifier ) !== not;\r\n\t\t} );\r\n\t}\r\n\r\n\t// Arraylike of elements (jQuery, arguments, Array)\r\n\tif ( typeof qualifier !== \"string\" ) {\r\n\t\treturn jQuery.grep( elements, function( elem ) {\r\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\r\n\t\t} );\r\n\t}\r\n\r\n\t// Filtered directly for both simple and complex selectors\r\n\treturn jQuery.filter( qualifier, elements, not );\r\n}\r\n\r\njQuery.filter = function( expr, elems, not ) {\r\n\tvar elem = elems[ 0 ];\r\n\r\n\tif ( not ) {\r\n\t\texpr = \":not(\" + expr + \")\";\r\n\t}\r\n\r\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\r\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\r\n\t}\r\n\r\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\r\n\t\treturn elem.nodeType === 1;\r\n\t} ) );\r\n};\r\n\r\njQuery.fn.extend( {\r\n\tfind: function( selector ) {\r\n\t\tvar i, ret,\r\n\t\t\tlen = this.length,\r\n\t\t\tself = this;\r\n\r\n\t\tif ( typeof selector !== \"string\" ) {\r\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\r\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\r\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} ) );\r\n\t\t}\r\n\r\n\t\tret = this.pushStack( [] );\r\n\r\n\t\tfor ( i = 0; i < len; i++ ) {\r\n\t\t\tjQuery.find( selector, self[ i ], ret );\r\n\t\t}\r\n\r\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\r\n\t},\r\n\tfilter: function( selector ) {\r\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\r\n\t},\r\n\tnot: function( selector ) {\r\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\r\n\t},\r\n\tis: function( selector ) {\r\n\t\treturn !!winnow(\r\n\t\t\tthis,\r\n\r\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\r\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\r\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\r\n\t\t\t\tjQuery( selector ) :\r\n\t\t\t\tselector || [],\r\n\t\t\tfalse\r\n\t\t).length;\r\n\t}\r\n} );\r\n\r\n\r\n// Initialize a jQuery object\r\n\r\n\r\n// A central reference to the root jQuery(document)\r\nvar rootjQuery,\r\n\r\n\t// A simple way to check for HTML strings\r\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\r\n\t// Strict HTML recognition (#11290: must start with <)\r\n\t// Shortcut simple #id case for speed\r\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\r\n\r\n\tinit = jQuery.fn.init = function( selector, context, root ) {\r\n\t\tvar match, elem;\r\n\r\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\r\n\t\tif ( !selector ) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\t// Method init() accepts an alternate rootjQuery\r\n\t\t// so migrate can support jQuery.sub (gh-2101)\r\n\t\troot = root || rootjQuery;\r\n\r\n\t\t// Handle HTML strings\r\n\t\tif ( typeof selector === \"string\" ) {\r\n\t\t\tif ( selector[ 0 ] === \"<\" &&\r\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\r\n\t\t\t\tselector.length >= 3 ) {\r\n\r\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\r\n\t\t\t\tmatch = [ null, selector, null ];\r\n\r\n\t\t\t} else {\r\n\t\t\t\tmatch = rquickExpr.exec( selector );\r\n\t\t\t}\r\n\r\n\t\t\t// Match html or make sure no context is specified for #id\r\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\r\n\r\n\t\t\t\t// HANDLE: $(html) -> $(array)\r\n\t\t\t\tif ( match[ 1 ] ) {\r\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\r\n\r\n\t\t\t\t\t// Option to run scripts is true for back-compat\r\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\r\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\r\n\t\t\t\t\t\tmatch[ 1 ],\r\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\r\n\t\t\t\t\t\ttrue\r\n\t\t\t\t\t) );\r\n\r\n\t\t\t\t\t// HANDLE: $(html, props)\r\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\r\n\t\t\t\t\t\tfor ( match in context ) {\r\n\r\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\r\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\r\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\r\n\r\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\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\r\n\t\t\t\t// HANDLE: $(#id)\r\n\t\t\t\t} else {\r\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\r\n\r\n\t\t\t\t\tif ( elem ) {\r\n\r\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\r\n\t\t\t\t\t\tthis[ 0 ] = elem;\r\n\t\t\t\t\t\tthis.length = 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t}\r\n\r\n\t\t\t// HANDLE: $(expr, $(...))\r\n\t\t\t} else if ( !context || context.jquery ) {\r\n\t\t\t\treturn ( context || root ).find( selector );\r\n\r\n\t\t\t// HANDLE: $(expr, context)\r\n\t\t\t// (which is just equivalent to: $(context).find(expr)\r\n\t\t\t} else {\r\n\t\t\t\treturn this.constructor( context ).find( selector );\r\n\t\t\t}\r\n\r\n\t\t// HANDLE: $(DOMElement)\r\n\t\t} else if ( selector.nodeType ) {\r\n\t\t\tthis[ 0 ] = selector;\r\n\t\t\tthis.length = 1;\r\n\t\t\treturn this;\r\n\r\n\t\t// HANDLE: $(function)\r\n\t\t// Shortcut for document ready\r\n\t\t} else if ( isFunction( selector ) ) {\r\n\t\t\treturn root.ready !== undefined ?\r\n\t\t\t\troot.ready( selector ) :\r\n\r\n\t\t\t\t// Execute immediately if ready is not present\r\n\t\t\t\tselector( jQuery );\r\n\t\t}\r\n\r\n\t\treturn jQuery.makeArray( selector, this );\r\n\t};\r\n\r\n// Give the init function the jQuery prototype for later instantiation\r\ninit.prototype = jQuery.fn;\r\n\r\n// Initialize central reference\r\nrootjQuery = jQuery( document );\r\n\r\n\r\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\r\n\r\n\t// Methods guaranteed to produce a unique set when starting from a unique set\r\n\tguaranteedUnique = {\r\n\t\tchildren: true,\r\n\t\tcontents: true,\r\n\t\tnext: true,\r\n\t\tprev: true\r\n\t};\r\n\r\njQuery.fn.extend( {\r\n\thas: function( target ) {\r\n\t\tvar targets = jQuery( target, this ),\r\n\t\t\tl = targets.length;\r\n\r\n\t\treturn this.filter( function() {\r\n\t\t\tvar i = 0;\r\n\t\t\tfor ( ; i < l; i++ ) {\r\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} );\r\n\t},\r\n\r\n\tclosest: function( selectors, context ) {\r\n\t\tvar cur,\r\n\t\t\ti = 0,\r\n\t\t\tl = this.length,\r\n\t\t\tmatched = [],\r\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\r\n\r\n\t\t// Positional selectors never match, since there's no _selection_ context\r\n\t\tif ( !rneedsContext.test( selectors ) ) {\r\n\t\t\tfor ( ; i < l; i++ ) {\r\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\r\n\r\n\t\t\t\t\t// Always skip document fragments\r\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\r\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\r\n\r\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\r\n\t\t\t\t\t\tcur.nodeType === 1 &&\r\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\r\n\r\n\t\t\t\t\t\tmatched.push( cur );\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\r\n\t},\r\n\r\n\t// Determine the position of an element within the set\r\n\tindex: function( elem ) {\r\n\r\n\t\t// No argument, return index in parent\r\n\t\tif ( !elem ) {\r\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\r\n\t\t}\r\n\r\n\t\t// Index in selector\r\n\t\tif ( typeof elem === \"string\" ) {\r\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\r\n\t\t}\r\n\r\n\t\t// Locate the position of the desired element\r\n\t\treturn indexOf.call( this,\r\n\r\n\t\t\t// If it receives a jQuery object, the first element is used\r\n\t\t\telem.jquery ? elem[ 0 ] : elem\r\n\t\t);\r\n\t},\r\n\r\n\tadd: function( selector, context ) {\r\n\t\treturn this.pushStack(\r\n\t\t\tjQuery.uniqueSort(\r\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\r\n\t\t\t)\r\n\t\t);\r\n\t},\r\n\r\n\taddBack: function( selector ) {\r\n\t\treturn this.add( selector == null ?\r\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\r\n\t\t);\r\n\t}\r\n} );\r\n\r\nfunction sibling( cur, dir ) {\r\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\r\n\treturn cur;\r\n}\r\n\r\njQuery.each( {\r\n\tparent: function( elem ) {\r\n\t\tvar parent = elem.parentNode;\r\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\r\n\t},\r\n\tparents: function( elem ) {\r\n\t\treturn dir( elem, \"parentNode\" );\r\n\t},\r\n\tparentsUntil: function( elem, _i, until ) {\r\n\t\treturn dir( elem, \"parentNode\", until );\r\n\t},\r\n\tnext: function( elem ) {\r\n\t\treturn sibling( elem, \"nextSibling\" );\r\n\t},\r\n\tprev: function( elem ) {\r\n\t\treturn sibling( elem, \"previousSibling\" );\r\n\t},\r\n\tnextAll: function( elem ) {\r\n\t\treturn dir( elem, \"nextSibling\" );\r\n\t},\r\n\tprevAll: function( elem ) {\r\n\t\treturn dir( elem, \"previousSibling\" );\r\n\t},\r\n\tnextUntil: function( elem, _i, until ) {\r\n\t\treturn dir( elem, \"nextSibling\", until );\r\n\t},\r\n\tprevUntil: function( elem, _i, until ) {\r\n\t\treturn dir( elem, \"previousSibling\", until );\r\n\t},\r\n\tsiblings: function( elem ) {\r\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\r\n\t},\r\n\tchildren: function( elem ) {\r\n\t\treturn siblings( elem.firstChild );\r\n\t},\r\n\tcontents: function( elem ) {\r\n\t\tif ( elem.contentDocument != null &&\r\n\r\n\t\t\t// Support: IE 11+\r\n\t\t\t// elements with no `data` attribute has an object\r\n\t\t\t// `contentDocument` with a `null` prototype.\r\n\t\t\tgetProto( elem.contentDocument ) ) {\r\n\r\n\t\t\treturn elem.contentDocument;\r\n\t\t}\r\n\r\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\r\n\t\t// Treat the template element as a regular one in browsers that\r\n\t\t// don't support it.\r\n\t\tif ( nodeName( elem, \"template\" ) ) {\r\n\t\t\telem = elem.content || elem;\r\n\t\t}\r\n\r\n\t\treturn jQuery.merge( [], elem.childNodes );\r\n\t}\r\n}, function( name, fn ) {\r\n\tjQuery.fn[ name ] = function( until, selector ) {\r\n\t\tvar matched = jQuery.map( this, fn, until );\r\n\r\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\r\n\t\t\tselector = until;\r\n\t\t}\r\n\r\n\t\tif ( selector && typeof selector === \"string\" ) {\r\n\t\t\tmatched = jQuery.filter( selector, matched );\r\n\t\t}\r\n\r\n\t\tif ( this.length > 1 ) {\r\n\r\n\t\t\t// Remove duplicates\r\n\t\t\tif ( !guaranteedUnique[ name ] ) {\r\n\t\t\t\tjQuery.uniqueSort( matched );\r\n\t\t\t}\r\n\r\n\t\t\t// Reverse order for parents* and prev-derivatives\r\n\t\t\tif ( rparentsprev.test( name ) ) {\r\n\t\t\t\tmatched.reverse();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this.pushStack( matched );\r\n\t};\r\n} );\r\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\r\n\r\n\r\n\r\n// Convert String-formatted options into Object-formatted ones\r\nfunction createOptions( options ) {\r\n\tvar object = {};\r\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\r\n\t\tobject[ flag ] = true;\r\n\t} );\r\n\treturn object;\r\n}\r\n\r\n/*\r\n * Create a callback list using the following parameters:\r\n *\r\n *\toptions: an optional list of space-separated options that will change how\r\n *\t\t\tthe callback list behaves or a more traditional option object\r\n *\r\n * By default a callback list will act like an event callback list and can be\r\n * \"fired\" multiple times.\r\n *\r\n * Possible options:\r\n *\r\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\r\n *\r\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\r\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\r\n *\t\t\t\t\tvalues (like a Deferred)\r\n *\r\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\r\n *\r\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\r\n *\r\n */\r\njQuery.Callbacks = function( options ) {\r\n\r\n\t// Convert options from String-formatted to Object-formatted if needed\r\n\t// (we check in cache first)\r\n\toptions = typeof options === \"string\" ?\r\n\t\tcreateOptions( options ) :\r\n\t\tjQuery.extend( {}, options );\r\n\r\n\tvar // Flag to know if list is currently firing\r\n\t\tfiring,\r\n\r\n\t\t// Last fire value for non-forgettable lists\r\n\t\tmemory,\r\n\r\n\t\t// Flag to know if list was already fired\r\n\t\tfired,\r\n\r\n\t\t// Flag to prevent firing\r\n\t\tlocked,\r\n\r\n\t\t// Actual callback list\r\n\t\tlist = [],\r\n\r\n\t\t// Queue of execution data for repeatable lists\r\n\t\tqueue = [],\r\n\r\n\t\t// Index of currently firing callback (modified by add/remove as needed)\r\n\t\tfiringIndex = -1,\r\n\r\n\t\t// Fire callbacks\r\n\t\tfire = function() {\r\n\r\n\t\t\t// Enforce single-firing\r\n\t\t\tlocked = locked || options.once;\r\n\r\n\t\t\t// Execute callbacks for all pending executions,\r\n\t\t\t// respecting firingIndex overrides and runtime changes\r\n\t\t\tfired = firing = true;\r\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\r\n\t\t\t\tmemory = queue.shift();\r\n\t\t\t\twhile ( ++firingIndex < list.length ) {\r\n\r\n\t\t\t\t\t// Run callback and check for early termination\r\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\r\n\t\t\t\t\t\toptions.stopOnFalse ) {\r\n\r\n\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\tfiringIndex = list.length;\r\n\t\t\t\t\t\tmemory = false;\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// Forget the data if we're done with it\r\n\t\t\tif ( !options.memory ) {\r\n\t\t\t\tmemory = false;\r\n\t\t\t}\r\n\r\n\t\t\tfiring = false;\r\n\r\n\t\t\t// Clean up if we're done firing for good\r\n\t\t\tif ( locked ) {\r\n\r\n\t\t\t\t// Keep an empty list if we have data for future add calls\r\n\t\t\t\tif ( memory ) {\r\n\t\t\t\t\tlist = [];\r\n\r\n\t\t\t\t// Otherwise, this object is spent\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlist = \"\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Actual Callbacks object\r\n\t\tself = {\r\n\r\n\t\t\t// Add a callback or a collection of callbacks to the list\r\n\t\t\tadd: function() {\r\n\t\t\t\tif ( list ) {\r\n\r\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\r\n\t\t\t\t\tif ( memory && !firing ) {\r\n\t\t\t\t\t\tfiringIndex = list.length - 1;\r\n\t\t\t\t\t\tqueue.push( memory );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t( function add( args ) {\r\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\r\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\r\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\r\n\t\t\t\t\t\t\t\t\tlist.push( arg );\r\n\t\t\t\t\t\t\t\t}\r\n\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// Inspect recursively\r\n\t\t\t\t\t\t\t\tadd( arg );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} );\r\n\t\t\t\t\t} )( arguments );\r\n\r\n\t\t\t\t\tif ( memory && !firing ) {\r\n\t\t\t\t\t\tfire();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\t// Remove a callback from the list\r\n\t\t\tremove: function() {\r\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\r\n\t\t\t\t\tvar index;\r\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\r\n\t\t\t\t\t\tlist.splice( index, 1 );\r\n\r\n\t\t\t\t\t\t// Handle firing indexes\r\n\t\t\t\t\t\tif ( index <= firingIndex ) {\r\n\t\t\t\t\t\t\tfiringIndex--;\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\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\t// Check if a given callback is in the list.\r\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\r\n\t\t\thas: function( fn ) {\r\n\t\t\t\treturn fn ?\r\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\r\n\t\t\t\t\tlist.length > 0;\r\n\t\t\t},\r\n\r\n\t\t\t// Remove all callbacks from the list\r\n\t\t\tempty: function() {\r\n\t\t\t\tif ( list ) {\r\n\t\t\t\t\tlist = [];\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\t// Disable .fire and .add\r\n\t\t\t// Abort any current/pending executions\r\n\t\t\t// Clear all callbacks and values\r\n\t\t\tdisable: function() {\r\n\t\t\t\tlocked = queue = [];\r\n\t\t\t\tlist = memory = \"\";\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\t\t\tdisabled: function() {\r\n\t\t\t\treturn !list;\r\n\t\t\t},\r\n\r\n\t\t\t// Disable .fire\r\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\r\n\t\t\t// Abort any pending executions\r\n\t\t\tlock: function() {\r\n\t\t\t\tlocked = queue = [];\r\n\t\t\t\tif ( !memory && !firing ) {\r\n\t\t\t\t\tlist = memory = \"\";\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\t\t\tlocked: function() {\r\n\t\t\t\treturn !!locked;\r\n\t\t\t},\r\n\r\n\t\t\t// Call all callbacks with the given context and arguments\r\n\t\t\tfireWith: function( context, args ) {\r\n\t\t\t\tif ( !locked ) {\r\n\t\t\t\t\targs = args || [];\r\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\r\n\t\t\t\t\tqueue.push( args );\r\n\t\t\t\t\tif ( !firing ) {\r\n\t\t\t\t\t\tfire();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\t// Call all the callbacks with the given arguments\r\n\t\t\tfire: function() {\r\n\t\t\t\tself.fireWith( this, arguments );\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\t// To know if the callbacks have already been called at least once\r\n\t\t\tfired: function() {\r\n\t\t\t\treturn !!fired;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\treturn self;\r\n};\r\n\r\n\r\nfunction Identity( v ) {\r\n\treturn v;\r\n}\r\nfunction Thrower( ex ) {\r\n\tthrow ex;\r\n}\r\n\r\nfunction adoptValue( value, resolve, reject, noValue ) {\r\n\tvar method;\r\n\r\n\ttry {\r\n\r\n\t\t// Check for promise aspect first to privilege synchronous behavior\r\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\r\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\r\n\r\n\t\t// Other thenables\r\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\r\n\t\t\tmethod.call( value, resolve, reject );\r\n\r\n\t\t// Other non-thenables\r\n\t\t} else {\r\n\r\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\r\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\r\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\r\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\r\n\t\t}\r\n\r\n\t// For Promises/A+, convert exceptions into rejections\r\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\r\n\t// Deferred#then to conditionally suppress rejection.\r\n\t} catch ( value ) {\r\n\r\n\t\t// Support: Android 4.0 only\r\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\r\n\t\treject.apply( undefined, [ value ] );\r\n\t}\r\n}\r\n\r\njQuery.extend( {\r\n\r\n\tDeferred: function( func ) {\r\n\t\tvar tuples = [\r\n\r\n\t\t\t\t// action, add listener, callbacks,\r\n\t\t\t\t// ... .then handlers, argument index, [final state]\r\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\r\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\r\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\r\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\r\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\r\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\r\n\t\t\t],\r\n\t\t\tstate = \"pending\",\r\n\t\t\tpromise = {\r\n\t\t\t\tstate: function() {\r\n\t\t\t\t\treturn state;\r\n\t\t\t\t},\r\n\t\t\t\talways: function() {\r\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t},\r\n\t\t\t\t\"catch\": function( fn ) {\r\n\t\t\t\t\treturn promise.then( null, fn );\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Keep pipe for back-compat\r\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\r\n\t\t\t\t\tvar fns = arguments;\r\n\r\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\r\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\r\n\r\n\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\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\r\n\r\n\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// deferred.done(function() { bind to newDefer or newDefer.resolve })\r\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\r\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\r\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\r\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\r\n\t\t\t\t\t\t\t\t\treturned.promise()\r\n\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.done( newDefer.resolve )\r\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\r\n\t\t\t\t\t\t\t\t\t\tthis,\r\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\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\tfns = null;\r\n\t\t\t\t\t} ).promise();\r\n\t\t\t\t},\r\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\r\n\t\t\t\t\tvar maxDepth = 0;\r\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\r\n\t\t\t\t\t\treturn function() {\r\n\t\t\t\t\t\t\tvar that = this,\r\n\t\t\t\t\t\t\t\targs = arguments,\r\n\t\t\t\t\t\t\t\tmightThrow = function() {\r\n\t\t\t\t\t\t\t\t\tvar returned, then;\r\n\r\n\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// https://promisesaplus.com/#point-59\r\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\r\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\r\n\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\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// Support: Promises/A+ section 2.3.1\r\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\r\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\r\n\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}\r\n\r\n\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// https://promisesaplus.com/#point-54\r\n\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// Retrieve `then` only once\r\n\t\t\t\t\t\t\t\t\tthen = returned &&\r\n\r\n\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// https://promisesaplus.com/#point-64\r\n\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( typeof returned === \"object\" ||\r\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\r\n\t\t\t\t\t\t\t\t\t\treturned.then;\r\n\r\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\r\n\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// Special processors (notify) just wait for resolution\r\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\r\n\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\treturned,\r\n\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\tresolve( maxDepth, deferred, Thrower, special )\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// Normal processors (resolve) also hook into progress\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// ...and disregard older resolution values\r\n\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\tthen.call(\r\n\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\tresolve( maxDepth, deferred, Identity, special ),\r\n\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\tresolve( maxDepth, deferred, Identity,\r\n\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);\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// Handle all other returned values\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// Only substitute handlers pass on context\r\n\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\tif ( handler !== Identity ) {\r\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\r\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\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// Process the value(s)\r\n\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( special || deferred.resolveWith )( that, args );\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 normal processors (resolve) catch and reject exceptions\r\n\t\t\t\t\t\t\t\tprocess = special ?\r\n\t\t\t\t\t\t\t\t\tmightThrow :\r\n\t\t\t\t\t\t\t\t\tfunction() {\r\n\t\t\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\r\n\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\tif ( jQuery.Deferred.exceptionHook ) {\r\n\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\tprocess.stackTrace );\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// Support: Promises/A+ section 2.3.3.3.4.1\r\n\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// Ignore post-resolution exceptions\r\n\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// Only substitute handlers pass on context\r\n\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\tif ( handler !== Thrower ) {\r\n\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\targs = [ e ];\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\tdeferred.rejectWith( that, args );\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// Support: Promises/A+ section 2.3.3.3.1\r\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\r\n\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// subsequent errors\r\n\t\t\t\t\t\t\tif ( depth ) {\r\n\t\t\t\t\t\t\t\tprocess();\r\n\t\t\t\t\t\t\t} else {\r\n\r\n\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// since it's otherwise lost when execution goes async\r\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\r\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\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 jQuery.Deferred( function( newDefer ) {\r\n\r\n\t\t\t\t\t\t// progress_handlers.add( ... )\r\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\r\n\t\t\t\t\t\t\tresolve(\r\n\t\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\t\tnewDefer,\r\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\r\n\t\t\t\t\t\t\t\t\tonProgress :\r\n\t\t\t\t\t\t\t\t\tIdentity,\r\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\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// fulfilled_handlers.add( ... )\r\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\r\n\t\t\t\t\t\t\tresolve(\r\n\t\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\t\tnewDefer,\r\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\r\n\t\t\t\t\t\t\t\t\tonFulfilled :\r\n\t\t\t\t\t\t\t\t\tIdentity\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// rejected_handlers.add( ... )\r\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\r\n\t\t\t\t\t\t\tresolve(\r\n\t\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\t\tnewDefer,\r\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\r\n\t\t\t\t\t\t\t\t\tonRejected :\r\n\t\t\t\t\t\t\t\t\tThrower\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t} ).promise();\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Get a promise for this deferred\r\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\r\n\t\t\t\tpromise: function( obj ) {\r\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tdeferred = {};\r\n\r\n\t\t// Add list-specific methods\r\n\t\tjQuery.each( tuples, function( i, tuple ) {\r\n\t\t\tvar list = tuple[ 2 ],\r\n\t\t\t\tstateString = tuple[ 5 ];\r\n\r\n\t\t\t// promise.progress = list.add\r\n\t\t\t// promise.done = list.add\r\n\t\t\t// promise.fail = list.add\r\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\r\n\r\n\t\t\t// Handle state\r\n\t\t\tif ( stateString ) {\r\n\t\t\t\tlist.add(\r\n\t\t\t\t\tfunction() {\r\n\r\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\r\n\t\t\t\t\t\t// state = \"rejected\"\r\n\t\t\t\t\t\tstate = stateString;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t// rejected_callbacks.disable\r\n\t\t\t\t\t// fulfilled_callbacks.disable\r\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\r\n\r\n\t\t\t\t\t// rejected_handlers.disable\r\n\t\t\t\t\t// fulfilled_handlers.disable\r\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\r\n\r\n\t\t\t\t\t// progress_callbacks.lock\r\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\r\n\r\n\t\t\t\t\t// progress_handlers.lock\r\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\t// progress_handlers.fire\r\n\t\t\t// fulfilled_handlers.fire\r\n\t\t\t// rejected_handlers.fire\r\n\t\t\tlist.add( tuple[ 3 ].fire );\r\n\r\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\r\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\r\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\r\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\r\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\r\n\t\t\t\treturn this;\r\n\t\t\t};\r\n\r\n\t\t\t// deferred.notifyWith = list.fireWith\r\n\t\t\t// deferred.resolveWith = list.fireWith\r\n\t\t\t// deferred.rejectWith = list.fireWith\r\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\r\n\t\t} );\r\n\r\n\t\t// Make the deferred a promise\r\n\t\tpromise.promise( deferred );\r\n\r\n\t\t// Call given func if any\r\n\t\tif ( func ) {\r\n\t\t\tfunc.call( deferred, deferred );\r\n\t\t}\r\n\r\n\t\t// All done!\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\t// Deferred helper\r\n\twhen: function( singleValue ) {\r\n\t\tvar\r\n\r\n\t\t\t// count of uncompleted subordinates\r\n\t\t\tremaining = arguments.length,\r\n\r\n\t\t\t// count of unprocessed arguments\r\n\t\t\ti = remaining,\r\n\r\n\t\t\t// subordinate fulfillment data\r\n\t\t\tresolveContexts = Array( i ),\r\n\t\t\tresolveValues = slice.call( arguments ),\r\n\r\n\t\t\t// the primary Deferred\r\n\t\t\tprimary = jQuery.Deferred(),\r\n\r\n\t\t\t// subordinate callback factory\r\n\t\t\tupdateFunc = function( i ) {\r\n\t\t\t\treturn function( value ) {\r\n\t\t\t\t\tresolveContexts[ i ] = this;\r\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\r\n\t\t\t\t\tif ( !( --remaining ) ) {\r\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t};\r\n\r\n\t\t// Single- and empty arguments are adopted like Promise.resolve\r\n\t\tif ( remaining <= 1 ) {\r\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\r\n\t\t\t\t!remaining );\r\n\r\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\r\n\t\t\tif ( primary.state() === \"pending\" ||\r\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\r\n\r\n\t\t\t\treturn primary.then();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Multiple arguments are aggregated like Promise.all array elements\r\n\t\twhile ( i-- ) {\r\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\r\n\t\t}\r\n\r\n\t\treturn primary.promise();\r\n\t}\r\n} );\r\n\r\n\r\n// These usually indicate a programmer mistake during development,\r\n// warn about them ASAP rather than swallowing them by default.\r\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\r\n\r\njQuery.Deferred.exceptionHook = function( error, stack ) {\r\n\r\n\t// Support: IE 8 - 9 only\r\n\t// Console exists when dev tools are open, which can happen at any time\r\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\r\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\r\n\t}\r\n};\r\n\r\n\r\n\r\n\r\njQuery.readyException = function( error ) {\r\n\twindow.setTimeout( function() {\r\n\t\tthrow error;\r\n\t} );\r\n};\r\n\r\n\r\n\r\n\r\n// The deferred used on DOM ready\r\nvar readyList = jQuery.Deferred();\r\n\r\njQuery.fn.ready = function( fn ) {\r\n\r\n\treadyList\r\n\t\t.then( fn )\r\n\r\n\t\t// Wrap jQuery.readyException in a function so that the lookup\r\n\t\t// happens at the time of error handling instead of callback\r\n\t\t// registration.\r\n\t\t.catch( function( error ) {\r\n\t\t\tjQuery.readyException( error );\r\n\t\t} );\r\n\r\n\treturn this;\r\n};\r\n\r\njQuery.extend( {\r\n\r\n\t// Is the DOM ready to be used? Set to true once it occurs.\r\n\tisReady: false,\r\n\r\n\t// A counter to track how many items to wait for before\r\n\t// the ready event fires. See #6781\r\n\treadyWait: 1,\r\n\r\n\t// Handle when the DOM is ready\r\n\tready: function( wait ) {\r\n\r\n\t\t// Abort if there are pending holds or we're already ready\r\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Remember that the DOM is ready\r\n\t\tjQuery.isReady = true;\r\n\r\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\r\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// If there are functions bound, to execute\r\n\t\treadyList.resolveWith( document, [ jQuery ] );\r\n\t}\r\n} );\r\n\r\njQuery.ready.then = readyList.then;\r\n\r\n// The ready event handler and self cleanup method\r\nfunction completed() {\r\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\r\n\twindow.removeEventListener( \"load\", completed );\r\n\tjQuery.ready();\r\n}\r\n\r\n// Catch cases where $(document).ready() is called\r\n// after the browser event has already occurred.\r\n// Support: IE <=9 - 10 only\r\n// Older IE sometimes signals \"interactive\" too soon\r\nif ( document.readyState === \"complete\" ||\r\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\r\n\r\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\r\n\twindow.setTimeout( jQuery.ready );\r\n\r\n} else {\r\n\r\n\t// Use the handy event callback\r\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\r\n\r\n\t// A fallback to window.onload, that will always work\r\n\twindow.addEventListener( \"load\", completed );\r\n}\r\n\r\n\r\n\r\n\r\n// Multifunctional method to get and set values of a collection\r\n// The value/s can optionally be executed if it's a function\r\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\r\n\tvar i = 0,\r\n\t\tlen = elems.length,\r\n\t\tbulk = key == null;\r\n\r\n\t// Sets many values\r\n\tif ( toType( key ) === \"object\" ) {\r\n\t\tchainable = true;\r\n\t\tfor ( i in key ) {\r\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\r\n\t\t}\r\n\r\n\t// Sets one value\r\n\t} else if ( value !== undefined ) {\r\n\t\tchainable = true;\r\n\r\n\t\tif ( !isFunction( value ) ) {\r\n\t\t\traw = true;\r\n\t\t}\r\n\r\n\t\tif ( bulk ) {\r\n\r\n\t\t\t// Bulk operations run against the entire set\r\n\t\t\tif ( raw ) {\r\n\t\t\t\tfn.call( elems, value );\r\n\t\t\t\tfn = null;\r\n\r\n\t\t\t// ...except when executing function values\r\n\t\t\t} else {\r\n\t\t\t\tbulk = fn;\r\n\t\t\t\tfn = function( elem, _key, value ) {\r\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( fn ) {\r\n\t\t\tfor ( ; i < len; i++ ) {\r\n\t\t\t\tfn(\r\n\t\t\t\t\telems[ i ], key, raw ?\r\n\t\t\t\t\t\tvalue :\r\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif ( chainable ) {\r\n\t\treturn elems;\r\n\t}\r\n\r\n\t// Gets\r\n\tif ( bulk ) {\r\n\t\treturn fn.call( elems );\r\n\t}\r\n\r\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\r\n};\r\n\r\n\r\n// Matches dashed string for camelizing\r\nvar rmsPrefix = /^-ms-/,\r\n\trdashAlpha = /-([a-z])/g;\r\n\r\n// Used by camelCase as callback to replace()\r\nfunction fcamelCase( _all, letter ) {\r\n\treturn letter.toUpperCase();\r\n}\r\n\r\n// Convert dashed to camelCase; used by the css and data modules\r\n// Support: IE <=9 - 11, Edge 12 - 15\r\n// Microsoft forgot to hump their vendor prefix (#9572)\r\nfunction camelCase( string ) {\r\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\r\n}\r\nvar acceptData = function( owner ) {\r\n\r\n\t// Accepts only:\r\n\t// - Node\r\n\t// - Node.ELEMENT_NODE\r\n\t// - Node.DOCUMENT_NODE\r\n\t// - Object\r\n\t// - Any\r\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\r\n};\r\n\r\n\r\n\r\n\r\nfunction Data() {\r\n\tthis.expando = jQuery.expando + Data.uid++;\r\n}\r\n\r\nData.uid = 1;\r\n\r\nData.prototype = {\r\n\r\n\tcache: function( owner ) {\r\n\r\n\t\t// Check if the owner object already has a cache\r\n\t\tvar value = owner[ this.expando ];\r\n\r\n\t\t// If not, create one\r\n\t\tif ( !value ) {\r\n\t\t\tvalue = {};\r\n\r\n\t\t\t// We can accept data for non-element nodes in modern browsers,\r\n\t\t\t// but we should not, see #8335.\r\n\t\t\t// Always return an empty object.\r\n\t\t\tif ( acceptData( owner ) ) {\r\n\r\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\r\n\t\t\t\t// use plain assignment\r\n\t\t\t\tif ( owner.nodeType ) {\r\n\t\t\t\t\towner[ this.expando ] = value;\r\n\r\n\t\t\t\t// Otherwise secure it in a non-enumerable property\r\n\t\t\t\t// configurable must be true to allow the property to be\r\n\t\t\t\t// deleted when data is removed\r\n\t\t\t\t} else {\r\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\r\n\t\t\t\t\t\tvalue: value,\r\n\t\t\t\t\t\tconfigurable: true\r\n\t\t\t\t\t} );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn value;\r\n\t},\r\n\tset: function( owner, data, value ) {\r\n\t\tvar prop,\r\n\t\t\tcache = this.cache( owner );\r\n\r\n\t\t// Handle: [ owner, key, value ] args\r\n\t\t// Always use camelCase key (gh-2257)\r\n\t\tif ( typeof data === \"string\" ) {\r\n\t\t\tcache[ camelCase( data ) ] = value;\r\n\r\n\t\t// Handle: [ owner, { properties } ] args\r\n\t\t} else {\r\n\r\n\t\t\t// Copy the properties one-by-one to the cache object\r\n\t\t\tfor ( prop in data ) {\r\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn cache;\r\n\t},\r\n\tget: function( owner, key ) {\r\n\t\treturn key === undefined ?\r\n\t\t\tthis.cache( owner ) :\r\n\r\n\t\t\t// Always use camelCase key (gh-2257)\r\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\r\n\t},\r\n\taccess: function( owner, key, value ) {\r\n\r\n\t\t// In cases where either:\r\n\t\t//\r\n\t\t// 1. No key was specified\r\n\t\t// 2. A string key was specified, but no value provided\r\n\t\t//\r\n\t\t// Take the \"read\" path and allow the get method to determine\r\n\t\t// which value to return, respectively either:\r\n\t\t//\r\n\t\t// 1. The entire cache object\r\n\t\t// 2. The data stored at the key\r\n\t\t//\r\n\t\tif ( key === undefined ||\r\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\r\n\r\n\t\t\treturn this.get( owner, key );\r\n\t\t}\r\n\r\n\t\t// When the key is not a string, or both a key and value\r\n\t\t// are specified, set or extend (existing objects) with either:\r\n\t\t//\r\n\t\t// 1. An object of properties\r\n\t\t// 2. A key and value\r\n\t\t//\r\n\t\tthis.set( owner, key, value );\r\n\r\n\t\t// Since the \"set\" path can have two possible entry points\r\n\t\t// return the expected data based on which path was taken[*]\r\n\t\treturn value !== undefined ? value : key;\r\n\t},\r\n\tremove: function( owner, key ) {\r\n\t\tvar i,\r\n\t\t\tcache = owner[ this.expando ];\r\n\r\n\t\tif ( cache === undefined ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( key !== undefined ) {\r\n\r\n\t\t\t// Support array or space separated string of keys\r\n\t\t\tif ( Array.isArray( key ) ) {\r\n\r\n\t\t\t\t// If key is an array of keys...\r\n\t\t\t\t// We always set camelCase keys, so remove that.\r\n\t\t\t\tkey = key.map( camelCase );\r\n\t\t\t} else {\r\n\t\t\t\tkey = camelCase( key );\r\n\r\n\t\t\t\t// If a key with the spaces exists, use it.\r\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\r\n\t\t\t\tkey = key in cache ?\r\n\t\t\t\t\t[ key ] :\r\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\r\n\t\t\t}\r\n\r\n\t\t\ti = key.length;\r\n\r\n\t\t\twhile ( i-- ) {\r\n\t\t\t\tdelete cache[ key[ i ] ];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Remove the expando if there's no more data\r\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\r\n\r\n\t\t\t// Support: Chrome <=35 - 45\r\n\t\t\t// Webkit & Blink performance suffers when deleting properties\r\n\t\t\t// from DOM nodes, so set to undefined instead\r\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\r\n\t\t\tif ( owner.nodeType ) {\r\n\t\t\t\towner[ this.expando ] = undefined;\r\n\t\t\t} else {\r\n\t\t\t\tdelete owner[ this.expando ];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\thasData: function( owner ) {\r\n\t\tvar cache = owner[ this.expando ];\r\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\r\n\t}\r\n};\r\nvar dataPriv = new Data();\r\n\r\nvar dataUser = new Data();\r\n\r\n\r\n\r\n//\tImplementation Summary\r\n//\r\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\r\n//\t2. Improve the module's maintainability by reducing the storage\r\n//\t\tpaths to a single mechanism.\r\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\r\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\r\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\r\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\r\n\r\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\r\n\trmultiDash = /[A-Z]/g;\r\n\r\nfunction getData( data ) {\r\n\tif ( data === \"true\" ) {\r\n\t\treturn true;\r\n\t}\r\n\r\n\tif ( data === \"false\" ) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tif ( data === \"null\" ) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\t// Only convert to a number if it doesn't change the string\r\n\tif ( data === +data + \"\" ) {\r\n\t\treturn +data;\r\n\t}\r\n\r\n\tif ( rbrace.test( data ) ) {\r\n\t\treturn JSON.parse( data );\r\n\t}\r\n\r\n\treturn data;\r\n}\r\n\r\nfunction dataAttr( elem, key, data ) {\r\n\tvar name;\r\n\r\n\t// If nothing was found internally, try to fetch any\r\n\t// data from the HTML5 data-* attribute\r\n\tif ( data === undefined && elem.nodeType === 1 ) {\r\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\r\n\t\tdata = elem.getAttribute( name );\r\n\r\n\t\tif ( typeof data === \"string\" ) {\r\n\t\t\ttry {\r\n\t\t\t\tdata = getData( data );\r\n\t\t\t} catch ( e ) {}\r\n\r\n\t\t\t// Make sure we set the data so it isn't changed later\r\n\t\t\tdataUser.set( elem, key, data );\r\n\t\t} else {\r\n\t\t\tdata = undefined;\r\n\t\t}\r\n\t}\r\n\treturn data;\r\n}\r\n\r\njQuery.extend( {\r\n\thasData: function( elem ) {\r\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\r\n\t},\r\n\r\n\tdata: function( elem, name, data ) {\r\n\t\treturn dataUser.access( elem, name, data );\r\n\t},\r\n\r\n\tremoveData: function( elem, name ) {\r\n\t\tdataUser.remove( elem, name );\r\n\t},\r\n\r\n\t// TODO: Now that all calls to _data and _removeData have been replaced\r\n\t// with direct calls to dataPriv methods, these can be deprecated.\r\n\t_data: function( elem, name, data ) {\r\n\t\treturn dataPriv.access( elem, name, data );\r\n\t},\r\n\r\n\t_removeData: function( elem, name ) {\r\n\t\tdataPriv.remove( elem, name );\r\n\t}\r\n} );\r\n\r\njQuery.fn.extend( {\r\n\tdata: function( key, value ) {\r\n\t\tvar i, name, data,\r\n\t\t\telem = this[ 0 ],\r\n\t\t\tattrs = elem && elem.attributes;\r\n\r\n\t\t// Gets all values\r\n\t\tif ( key === undefined ) {\r\n\t\t\tif ( this.length ) {\r\n\t\t\t\tdata = dataUser.get( elem );\r\n\r\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\r\n\t\t\t\t\ti = attrs.length;\r\n\t\t\t\t\twhile ( i-- ) {\r\n\r\n\t\t\t\t\t\t// Support: IE 11 only\r\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\r\n\t\t\t\t\t\tif ( attrs[ i ] ) {\r\n\t\t\t\t\t\t\tname = attrs[ i ].name;\r\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\r\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\r\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\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\tdataPriv.set( elem, \"hasDataAttrs\", true );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn data;\r\n\t\t}\r\n\r\n\t\t// Sets multiple values\r\n\t\tif ( typeof key === \"object\" ) {\r\n\t\t\treturn this.each( function() {\r\n\t\t\t\tdataUser.set( this, key );\r\n\t\t\t} );\r\n\t\t}\r\n\r\n\t\treturn access( this, function( value ) {\r\n\t\t\tvar data;\r\n\r\n\t\t\t// The calling jQuery object (element matches) is not empty\r\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\r\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\r\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\r\n\t\t\t// throw an exception if an attempt to read a data cache is made.\r\n\t\t\tif ( elem && value === undefined ) {\r\n\r\n\t\t\t\t// Attempt to get data from the cache\r\n\t\t\t\t// The key will always be camelCased in Data\r\n\t\t\t\tdata = dataUser.get( elem, key );\r\n\t\t\t\tif ( data !== undefined ) {\r\n\t\t\t\t\treturn data;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Attempt to \"discover\" the data in\r\n\t\t\t\t// HTML5 custom data-* attrs\r\n\t\t\t\tdata = dataAttr( elem, key );\r\n\t\t\t\tif ( data !== undefined ) {\r\n\t\t\t\t\treturn data;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// We tried really hard, but the data doesn't exist.\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Set the data...\r\n\t\t\tthis.each( function() {\r\n\r\n\t\t\t\t// We always store the camelCased key\r\n\t\t\t\tdataUser.set( this, key, value );\r\n\t\t\t} );\r\n\t\t}, null, value, arguments.length > 1, null, true );\r\n\t},\r\n\r\n\tremoveData: function( key ) {\r\n\t\treturn this.each( function() {\r\n\t\t\tdataUser.remove( this, key );\r\n\t\t} );\r\n\t}\r\n} );\r\n\r\n\r\njQuery.extend( {\r\n\tqueue: function( elem, type, data ) {\r\n\t\tvar queue;\r\n\r\n\t\tif ( elem ) {\r\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\r\n\t\t\tqueue = dataPriv.get( elem, type );\r\n\r\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\r\n\t\t\tif ( data ) {\r\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\r\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tqueue.push( data );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn queue || [];\r\n\t\t}\r\n\t},\r\n\r\n\tdequeue: function( elem, type ) {\r\n\t\ttype = type || \"fx\";\r\n\r\n\t\tvar queue = jQuery.queue( elem, type ),\r\n\t\t\tstartLength = queue.length,\r\n\t\t\tfn = queue.shift(),\r\n\t\t\thooks = jQuery._queueHooks( elem, type ),\r\n\t\t\tnext = function() {\r\n\t\t\t\tjQuery.dequeue( elem, type );\r\n\t\t\t};\r\n\r\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\r\n\t\tif ( fn === \"inprogress\" ) {\r\n\t\t\tfn = queue.shift();\r\n\t\t\tstartLength--;\r\n\t\t}\r\n\r\n\t\tif ( fn ) {\r\n\r\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\r\n\t\t\t// automatically dequeued\r\n\t\t\tif ( type === \"fx\" ) {\r\n\t\t\t\tqueue.unshift( \"inprogress\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Clear up the last queue stop function\r\n\t\t\tdelete hooks.stop;\r\n\t\t\tfn.call( elem, next, hooks );\r\n\t\t}\r\n\r\n\t\tif ( !startLength && hooks ) {\r\n\t\t\thooks.empty.fire();\r\n\t\t}\r\n\t},\r\n\r\n\t// Not public - generate a queueHooks object, or return the current one\r\n\t_queueHooks: function( elem, type ) {\r\n\t\tvar key = type + \"queueHooks\";\r\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\r\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\r\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\r\n\t\t\t} )\r\n\t\t} );\r\n\t}\r\n} );\r\n\r\njQuery.fn.extend( {\r\n\tqueue: function( type, data ) {\r\n\t\tvar setter = 2;\r\n\r\n\t\tif ( typeof type !== \"string\" ) {\r\n\t\t\tdata = type;\r\n\t\t\ttype = \"fx\";\r\n\t\t\tsetter--;\r\n\t\t}\r\n\r\n\t\tif ( arguments.length < setter ) {\r\n\t\t\treturn jQuery.queue( this[ 0 ], type );\r\n\t\t}\r\n\r\n\t\treturn data === undefined ?\r\n\t\t\tthis :\r\n\t\t\tthis.each( function() {\r\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\r\n\r\n\t\t\t\t// Ensure a hooks for this queue\r\n\t\t\t\tjQuery._queueHooks( this, type );\r\n\r\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\r\n\t\t\t\t\tjQuery.dequeue( this, type );\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\t},\r\n\tdequeue: function( type ) {\r\n\t\treturn this.each( function() {\r\n\t\t\tjQuery.dequeue( this, type );\r\n\t\t} );\r\n\t},\r\n\tclearQueue: function( type ) {\r\n\t\treturn this.queue( type || \"fx\", [] );\r\n\t},\r\n\r\n\t// Get a promise resolved when queues of a certain type\r\n\t// are emptied (fx is the type by default)\r\n\tpromise: function( type, obj ) {\r\n\t\tvar tmp,\r\n\t\t\tcount = 1,\r\n\t\t\tdefer = jQuery.Deferred(),\r\n\t\t\telements = this,\r\n\t\t\ti = this.length,\r\n\t\t\tresolve = function() {\r\n\t\t\t\tif ( !( --count ) ) {\r\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\tif ( typeof type !== \"string\" ) {\r\n\t\t\tobj = type;\r\n\t\t\ttype = undefined;\r\n\t\t}\r\n\t\ttype = type || \"fx\";\r\n\r\n\t\twhile ( i-- ) {\r\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\r\n\t\t\tif ( tmp && tmp.empty ) {\r\n\t\t\t\tcount++;\r\n\t\t\t\ttmp.empty.add( resolve );\r\n\t\t\t}\r\n\t\t}\r\n\t\tresolve();\r\n\t\treturn defer.promise( obj );\r\n\t}\r\n} );\r\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\r\n\r\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\r\n\r\n\r\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\r\n\r\nvar documentElement = document.documentElement;\r\n\r\n\r\n\r\n\tvar isAttached = function( elem ) {\r\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\r\n\t\t},\r\n\t\tcomposed = { composed: true };\r\n\r\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\r\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\r\n\t// Support: iOS 10.0-10.2 only\r\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\r\n\t// leading to errors. We need to check for `getRootNode`.\r\n\tif ( documentElement.getRootNode ) {\r\n\t\tisAttached = function( elem ) {\r\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\r\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\r\n\t\t};\r\n\t}\r\nvar isHiddenWithinTree = function( elem, el ) {\r\n\r\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\r\n\t\t// in that case, element will be second argument\r\n\t\telem = el || elem;\r\n\r\n\t\t// Inline style trumps all\r\n\t\treturn elem.style.display === \"none\" ||\r\n\t\t\telem.style.display === \"\" &&\r\n\r\n\t\t\t// Otherwise, check computed style\r\n\t\t\t// Support: Firefox <=43 - 45\r\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\r\n\t\t\t// in the document.\r\n\t\t\tisAttached( elem ) &&\r\n\r\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\r\n\t};\r\n\r\n\r\n\r\nfunction adjustCSS( elem, prop, valueParts, tween ) {\r\n\tvar adjusted, scale,\r\n\t\tmaxIterations = 20,\r\n\t\tcurrentValue = tween ?\r\n\t\t\tfunction() {\r\n\t\t\t\treturn tween.cur();\r\n\t\t\t} :\r\n\t\t\tfunction() {\r\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\r\n\t\t\t},\r\n\t\tinitial = currentValue(),\r\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\r\n\r\n\t\t// Starting value computation is required for potential unit mismatches\r\n\t\tinitialInUnit = elem.nodeType &&\r\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\r\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\r\n\r\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\r\n\r\n\t\t// Support: Firefox <=54\r\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\r\n\t\tinitial = initial / 2;\r\n\r\n\t\t// Trust units reported by jQuery.css\r\n\t\tunit = unit || initialInUnit[ 3 ];\r\n\r\n\t\t// Iteratively approximate from a nonzero starting point\r\n\t\tinitialInUnit = +initial || 1;\r\n\r\n\t\twhile ( maxIterations-- ) {\r\n\r\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\r\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\r\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\r\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\r\n\t\t\t\tmaxIterations = 0;\r\n\t\t\t}\r\n\t\t\tinitialInUnit = initialInUnit / scale;\r\n\r\n\t\t}\r\n\r\n\t\tinitialInUnit = initialInUnit * 2;\r\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\r\n\r\n\t\t// Make sure we update the tween properties later on\r\n\t\tvalueParts = valueParts || [];\r\n\t}\r\n\r\n\tif ( valueParts ) {\r\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\r\n\r\n\t\t// Apply relative offset (+=/-=) if specified\r\n\t\tadjusted = valueParts[ 1 ] ?\r\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\r\n\t\t\t+valueParts[ 2 ];\r\n\t\tif ( tween ) {\r\n\t\t\ttween.unit = unit;\r\n\t\t\ttween.start = initialInUnit;\r\n\t\t\ttween.end = adjusted;\r\n\t\t}\r\n\t}\r\n\treturn adjusted;\r\n}\r\n\r\n\r\nvar defaultDisplayMap = {};\r\n\r\nfunction getDefaultDisplay( elem ) {\r\n\tvar temp,\r\n\t\tdoc = elem.ownerDocument,\r\n\t\tnodeName = elem.nodeName,\r\n\t\tdisplay = defaultDisplayMap[ nodeName ];\r\n\r\n\tif ( display ) {\r\n\t\treturn display;\r\n\t}\r\n\r\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\r\n\tdisplay = jQuery.css( temp, \"display\" );\r\n\r\n\ttemp.parentNode.removeChild( temp );\r\n\r\n\tif ( display === \"none\" ) {\r\n\t\tdisplay = \"block\";\r\n\t}\r\n\tdefaultDisplayMap[ nodeName ] = display;\r\n\r\n\treturn display;\r\n}\r\n\r\nfunction showHide( elements, show ) {\r\n\tvar display, elem,\r\n\t\tvalues = [],\r\n\t\tindex = 0,\r\n\t\tlength = elements.length;\r\n\r\n\t// Determine new display value for elements that need to change\r\n\tfor ( ; index < length; index++ ) {\r\n\t\telem = elements[ index ];\r\n\t\tif ( !elem.style ) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tdisplay = elem.style.display;\r\n\t\tif ( show ) {\r\n\r\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\r\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\r\n\t\t\t// inline or about-to-be-restored)\r\n\t\t\tif ( display === \"none\" ) {\r\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\r\n\t\t\t\tif ( !values[ index ] ) {\r\n\t\t\t\t\telem.style.display = \"\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\r\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif ( display !== \"none\" ) {\r\n\t\t\t\tvalues[ index ] = \"none\";\r\n\r\n\t\t\t\t// Remember what we're overwriting\r\n\t\t\t\tdataPriv.set( elem, \"display\", display );\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Set the display of the elements in a second loop to avoid constant reflow\r\n\tfor ( index = 0; index < length; index++ ) {\r\n\t\tif ( values[ index ] != null ) {\r\n\t\t\telements[ index ].style.display = values[ index ];\r\n\t\t}\r\n\t}\r\n\r\n\treturn elements;\r\n}\r\n\r\njQuery.fn.extend( {\r\n\tshow: function() {\r\n\t\treturn showHide( this, true );\r\n\t},\r\n\thide: function() {\r\n\t\treturn showHide( this );\r\n\t},\r\n\ttoggle: function( state ) {\r\n\t\tif ( typeof state === \"boolean\" ) {\r\n\t\t\treturn state ? this.show() : this.hide();\r\n\t\t}\r\n\r\n\t\treturn this.each( function() {\r\n\t\t\tif ( isHiddenWithinTree( this ) ) {\r\n\t\t\t\tjQuery( this ).show();\r\n\t\t\t} else {\r\n\t\t\t\tjQuery( this ).hide();\r\n\t\t\t}\r\n\t\t} );\r\n\t}\r\n} );\r\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\r\n\r\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\r\n\r\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\r\n\r\n\r\n\r\n( function() {\r\n\tvar fragment = document.createDocumentFragment(),\r\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\r\n\t\tinput = document.createElement( \"input\" );\r\n\r\n\t// Support: Android 4.0 - 4.3 only\r\n\t// Check state lost if the name is set (#11217)\r\n\t// Support: Windows Web Apps (WWA)\r\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\r\n\tinput.setAttribute( \"type\", \"radio\" );\r\n\tinput.setAttribute( \"checked\", \"checked\" );\r\n\tinput.setAttribute( \"name\", \"t\" );\r\n\r\n\tdiv.appendChild( input );\r\n\r\n\t// Support: Android <=4.1 only\r\n\t// Older WebKit doesn't clone checked state correctly in fragments\r\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\r\n\r\n\t// Support: IE <=11 only\r\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\r\n\tdiv.innerHTML = \"\";\r\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\r\n\r\n\t// Support: IE <=9 only\r\n\t// IE <=9 replaces \";\r\n\tsupport.option = !!div.lastChild;\r\n} )();\r\n\r\n\r\n// We have to close these tags to support XHTML (#13200)\r\nvar wrapMap = {\r\n\r\n\t// XHTML parsers do not magically insert elements in the\r\n\t// same way that tag soup parsers do. So we cannot shorten\r\n\t// this by omitting or other required elements.\r\n\tthead: [ 1, \"\", \"
\" ],\r\n\tcol: [ 2, \"\", \"
\" ],\r\n\ttr: [ 2, \"\", \"
\" ],\r\n\ttd: [ 3, \"\", \"
\" ],\r\n\r\n\t_default: [ 0, \"\", \"\" ]\r\n};\r\n\r\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\r\nwrapMap.th = wrapMap.td;\r\n\r\n// Support: IE <=9 only\r\nif ( !support.option ) {\r\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\r\n}\r\n\r\n\r\nfunction getAll( context, tag ) {\r\n\r\n\t// Support: IE <=9 - 11 only\r\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\r\n\tvar ret;\r\n\r\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\r\n\t\tret = context.getElementsByTagName( tag || \"*\" );\r\n\r\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\r\n\t\tret = context.querySelectorAll( tag || \"*\" );\r\n\r\n\t} else {\r\n\t\tret = [];\r\n\t}\r\n\r\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\r\n\t\treturn jQuery.merge( [ context ], ret );\r\n\t}\r\n\r\n\treturn ret;\r\n}\r\n\r\n\r\n// Mark scripts as having already been evaluated\r\nfunction setGlobalEval( elems, refElements ) {\r\n\tvar i = 0,\r\n\t\tl = elems.length;\r\n\r\n\tfor ( ; i < l; i++ ) {\r\n\t\tdataPriv.set(\r\n\t\t\telems[ i ],\r\n\t\t\t\"globalEval\",\r\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\r\n\t\t);\r\n\t}\r\n}\r\n\r\n\r\nvar rhtml = /<|&#?\\w+;/;\r\n\r\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\r\n\tvar elem, tmp, tag, wrap, attached, j,\r\n\t\tfragment = context.createDocumentFragment(),\r\n\t\tnodes = [],\r\n\t\ti = 0,\r\n\t\tl = elems.length;\r\n\r\n\tfor ( ; i < l; i++ ) {\r\n\t\telem = elems[ i ];\r\n\r\n\t\tif ( elem || elem === 0 ) {\r\n\r\n\t\t\t// Add nodes directly\r\n\t\t\tif ( toType( elem ) === \"object\" ) {\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\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\r\n\r\n\t\t\t// Convert non-html into a text node\r\n\t\t\t} else if ( !rhtml.test( elem ) ) {\r\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\r\n\r\n\t\t\t// Convert html into DOM nodes\r\n\t\t\t} else {\r\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\r\n\r\n\t\t\t\t// Deserialize a standard representation\r\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\r\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\r\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\r\n\r\n\t\t\t\t// Descend through wrappers to the right content\r\n\t\t\t\tj = wrap[ 0 ];\r\n\t\t\t\twhile ( j-- ) {\r\n\t\t\t\t\ttmp = tmp.lastChild;\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\tjQuery.merge( nodes, tmp.childNodes );\r\n\r\n\t\t\t\t// Remember the top-level container\r\n\t\t\t\ttmp = fragment.firstChild;\r\n\r\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\r\n\t\t\t\ttmp.textContent = \"\";\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Remove wrapper from fragment\r\n\tfragment.textContent = \"\";\r\n\r\n\ti = 0;\r\n\twhile ( ( elem = nodes[ i++ ] ) ) {\r\n\r\n\t\t// Skip elements already in the context collection (trac-4087)\r\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\r\n\t\t\tif ( ignored ) {\r\n\t\t\t\tignored.push( elem );\r\n\t\t\t}\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tattached = isAttached( elem );\r\n\r\n\t\t// Append to fragment\r\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\r\n\r\n\t\t// Preserve script evaluation history\r\n\t\tif ( attached ) {\r\n\t\t\tsetGlobalEval( tmp );\r\n\t\t}\r\n\r\n\t\t// Capture executables\r\n\t\tif ( scripts ) {\r\n\t\t\tj = 0;\r\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\r\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\r\n\t\t\t\t\tscripts.push( elem );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn fragment;\r\n}\r\n\r\n\r\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\r\n\r\nfunction returnTrue() {\r\n\treturn true;\r\n}\r\n\r\nfunction returnFalse() {\r\n\treturn false;\r\n}\r\n\r\n// Support: IE <=9 - 11+\r\n// focus() and blur() are asynchronous, except when they are no-op.\r\n// So expect focus to be synchronous when the element is already active,\r\n// and blur to be synchronous when the element is not already active.\r\n// (focus and blur are always synchronous in other supported browsers,\r\n// this just defines when we can count on it).\r\nfunction expectSync( elem, type ) {\r\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\r\n}\r\n\r\n// Support: IE <=9 only\r\n// Accessing document.activeElement can throw unexpectedly\r\n// https://bugs.jquery.com/ticket/13393\r\nfunction safeActiveElement() {\r\n\ttry {\r\n\t\treturn document.activeElement;\r\n\t} catch ( err ) { }\r\n}\r\n\r\nfunction on( elem, types, selector, data, fn, one ) {\r\n\tvar origFn, type;\r\n\r\n\t// Types can be a map of types/handlers\r\n\tif ( typeof types === \"object\" ) {\r\n\r\n\t\t// ( types-Object, selector, data )\r\n\t\tif ( typeof selector !== \"string\" ) {\r\n\r\n\t\t\t// ( types-Object, data )\r\n\t\t\tdata = data || selector;\r\n\t\t\tselector = undefined;\r\n\t\t}\r\n\t\tfor ( type in types ) {\r\n\t\t\ton( elem, type, selector, data, types[ type ], one );\r\n\t\t}\r\n\t\treturn elem;\r\n\t}\r\n\r\n\tif ( data == null && fn == null ) {\r\n\r\n\t\t// ( types, fn )\r\n\t\tfn = selector;\r\n\t\tdata = selector = undefined;\r\n\t} else if ( fn == null ) {\r\n\t\tif ( typeof selector === \"string\" ) {\r\n\r\n\t\t\t// ( types, selector, fn )\r\n\t\t\tfn = data;\r\n\t\t\tdata = undefined;\r\n\t\t} else {\r\n\r\n\t\t\t// ( types, data, fn )\r\n\t\t\tfn = data;\r\n\t\t\tdata = selector;\r\n\t\t\tselector = undefined;\r\n\t\t}\r\n\t}\r\n\tif ( fn === false ) {\r\n\t\tfn = returnFalse;\r\n\t} else if ( !fn ) {\r\n\t\treturn elem;\r\n\t}\r\n\r\n\tif ( one === 1 ) {\r\n\t\torigFn = fn;\r\n\t\tfn = function( event ) {\r\n\r\n\t\t\t// Can use an empty set, since event contains the info\r\n\t\t\tjQuery().off( event );\r\n\t\t\treturn origFn.apply( this, arguments );\r\n\t\t};\r\n\r\n\t\t// Use same guid so caller can remove using origFn\r\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\r\n\t}\r\n\treturn elem.each( function() {\r\n\t\tjQuery.event.add( this, types, fn, data, selector );\r\n\t} );\r\n}\r\n\r\n/*\r\n * Helper functions for managing events -- not part of the public interface.\r\n * Props to Dean Edwards' addEvent library for many of the ideas.\r\n */\r\njQuery.event = {\r\n\r\n\tglobal: {},\r\n\r\n\tadd: function( elem, types, handler, data, selector ) {\r\n\r\n\t\tvar handleObjIn, eventHandle, tmp,\r\n\t\t\tevents, t, handleObj,\r\n\t\t\tspecial, handlers, type, namespaces, origType,\r\n\t\t\telemData = dataPriv.get( elem );\r\n\r\n\t\t// Only attach events to objects that accept data\r\n\t\tif ( !acceptData( elem ) ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Caller can pass in an object of custom data in lieu of the handler\r\n\t\tif ( handler.handler ) {\r\n\t\t\thandleObjIn = handler;\r\n\t\t\thandler = handleObjIn.handler;\r\n\t\t\tselector = handleObjIn.selector;\r\n\t\t}\r\n\r\n\t\t// Ensure that invalid selectors throw exceptions at attach time\r\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\r\n\t\tif ( selector ) {\r\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\r\n\t\t}\r\n\r\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\r\n\t\tif ( !handler.guid ) {\r\n\t\t\thandler.guid = jQuery.guid++;\r\n\t\t}\r\n\r\n\t\t// Init the element's event structure and main handler, if this is the first\r\n\t\tif ( !( events = elemData.events ) ) {\r\n\t\t\tevents = elemData.events = Object.create( null );\r\n\t\t}\r\n\t\tif ( !( eventHandle = elemData.handle ) ) {\r\n\t\t\teventHandle = elemData.handle = function( e ) {\r\n\r\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\r\n\t\t\t\t// when an event is called after a page has unloaded\r\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\r\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t// Handle multiple events separated by a space\r\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\r\n\t\tt = types.length;\r\n\t\twhile ( t-- ) {\r\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\r\n\t\t\ttype = origType = tmp[ 1 ];\r\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\r\n\r\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\r\n\t\t\tif ( !type ) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\t// If event changes its type, use the special event handlers for the changed type\r\n\t\t\tspecial = jQuery.event.special[ type ] || {};\r\n\r\n\t\t\t// If selector defined, determine special event api type, otherwise given type\r\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\r\n\r\n\t\t\t// Update special based on newly reset type\r\n\t\t\tspecial = jQuery.event.special[ type ] || {};\r\n\r\n\t\t\t// handleObj is passed to all event handlers\r\n\t\t\thandleObj = jQuery.extend( {\r\n\t\t\t\ttype: type,\r\n\t\t\t\torigType: origType,\r\n\t\t\t\tdata: data,\r\n\t\t\t\thandler: handler,\r\n\t\t\t\tguid: handler.guid,\r\n\t\t\t\tselector: selector,\r\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\r\n\t\t\t\tnamespace: namespaces.join( \".\" )\r\n\t\t\t}, handleObjIn );\r\n\r\n\t\t\t// Init the event handler queue if we're the first\r\n\t\t\tif ( !( handlers = events[ type ] ) ) {\r\n\t\t\t\thandlers = events[ type ] = [];\r\n\t\t\t\thandlers.delegateCount = 0;\r\n\r\n\t\t\t\t// Only use addEventListener if the special events handler returns false\r\n\t\t\t\tif ( !special.setup ||\r\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\r\n\r\n\t\t\t\t\tif ( elem.addEventListener ) {\r\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ( special.add ) {\r\n\t\t\t\tspecial.add.call( elem, handleObj );\r\n\r\n\t\t\t\tif ( !handleObj.handler.guid ) {\r\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Add to the element's handler list, delegates in front\r\n\t\t\tif ( selector ) {\r\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\r\n\t\t\t} else {\r\n\t\t\t\thandlers.push( handleObj );\r\n\t\t\t}\r\n\r\n\t\t\t// Keep track of which events have ever been used, for event optimization\r\n\t\t\tjQuery.event.global[ type ] = true;\r\n\t\t}\r\n\r\n\t},\r\n\r\n\t// Detach an event or set of events from an element\r\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\r\n\r\n\t\tvar j, origCount, tmp,\r\n\t\t\tevents, t, handleObj,\r\n\t\t\tspecial, handlers, type, namespaces, origType,\r\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\r\n\r\n\t\tif ( !elemData || !( events = elemData.events ) ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Once for each type.namespace in types; type may be omitted\r\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\r\n\t\tt = types.length;\r\n\t\twhile ( t-- ) {\r\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\r\n\t\t\ttype = origType = tmp[ 1 ];\r\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\r\n\r\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\r\n\t\t\tif ( !type ) {\r\n\t\t\t\tfor ( type in events ) {\r\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\r\n\t\t\t\t}\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tspecial = jQuery.event.special[ type ] || {};\r\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\r\n\t\t\thandlers = events[ type ] || [];\r\n\t\t\ttmp = tmp[ 2 ] &&\r\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\r\n\r\n\t\t\t// Remove matching events\r\n\t\t\torigCount = j = handlers.length;\r\n\t\t\twhile ( j-- ) {\r\n\t\t\t\thandleObj = handlers[ j ];\r\n\r\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\r\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\r\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\r\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\r\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\r\n\t\t\t\t\thandlers.splice( j, 1 );\r\n\r\n\t\t\t\t\tif ( handleObj.selector ) {\r\n\t\t\t\t\t\thandlers.delegateCount--;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( special.remove ) {\r\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\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// Remove generic event handler if we removed something and no more handlers exist\r\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\r\n\t\t\tif ( origCount && !handlers.length ) {\r\n\t\t\t\tif ( !special.teardown ||\r\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\r\n\r\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdelete events[ type ];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Remove data and the expando if it's no longer used\r\n\t\tif ( jQuery.isEmptyObject( events ) ) {\r\n\t\t\tdataPriv.remove( elem, \"handle events\" );\r\n\t\t}\r\n\t},\r\n\r\n\tdispatch: function( nativeEvent ) {\r\n\r\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\r\n\t\t\targs = new Array( arguments.length ),\r\n\r\n\t\t\t// Make a writable jQuery.Event from the native event object\r\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\r\n\r\n\t\t\thandlers = (\r\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\r\n\t\t\t)[ event.type ] || [],\r\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\r\n\r\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\r\n\t\targs[ 0 ] = event;\r\n\r\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\r\n\t\t\targs[ i ] = arguments[ i ];\r\n\t\t}\r\n\r\n\t\tevent.delegateTarget = this;\r\n\r\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\r\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Determine handlers\r\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\r\n\r\n\t\t// Run delegates first; they may want to stop propagation beneath us\r\n\t\ti = 0;\r\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\r\n\t\t\tevent.currentTarget = matched.elem;\r\n\r\n\t\t\tj = 0;\r\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\r\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\r\n\r\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\r\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\r\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\r\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\r\n\r\n\t\t\t\t\tevent.handleObj = handleObj;\r\n\t\t\t\t\tevent.data = handleObj.data;\r\n\r\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\r\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\r\n\r\n\t\t\t\t\tif ( ret !== undefined ) {\r\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\r\n\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\tevent.stopPropagation();\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}\r\n\r\n\t\t// Call the postDispatch hook for the mapped type\r\n\t\tif ( special.postDispatch ) {\r\n\t\t\tspecial.postDispatch.call( this, event );\r\n\t\t}\r\n\r\n\t\treturn event.result;\r\n\t},\r\n\r\n\thandlers: function( event, handlers ) {\r\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\r\n\t\t\thandlerQueue = [],\r\n\t\t\tdelegateCount = handlers.delegateCount,\r\n\t\t\tcur = event.target;\r\n\r\n\t\t// Find delegate handlers\r\n\t\tif ( delegateCount &&\r\n\r\n\t\t\t// Support: IE <=9\r\n\t\t\t// Black-hole SVG instance trees (trac-13180)\r\n\t\t\tcur.nodeType &&\r\n\r\n\t\t\t// Support: Firefox <=42\r\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\r\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\r\n\t\t\t// Support: IE 11 only\r\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\r\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\r\n\r\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\r\n\r\n\t\t\t\t// Don't check non-elements (#13208)\r\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\r\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\r\n\t\t\t\t\tmatchedHandlers = [];\r\n\t\t\t\t\tmatchedSelectors = {};\r\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\r\n\t\t\t\t\t\thandleObj = handlers[ i ];\r\n\r\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\r\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\r\n\r\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\r\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\r\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\r\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\r\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( matchedHandlers.length ) {\r\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Add the remaining (directly-bound) handlers\r\n\t\tcur = this;\r\n\t\tif ( delegateCount < handlers.length ) {\r\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\r\n\t\t}\r\n\r\n\t\treturn handlerQueue;\r\n\t},\r\n\r\n\taddProp: function( name, hook ) {\r\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\r\n\t\t\tenumerable: true,\r\n\t\t\tconfigurable: true,\r\n\r\n\t\t\tget: isFunction( hook ) ?\r\n\t\t\t\tfunction() {\r\n\t\t\t\t\tif ( this.originalEvent ) {\r\n\t\t\t\t\t\treturn hook( this.originalEvent );\r\n\t\t\t\t\t}\r\n\t\t\t\t} :\r\n\t\t\t\tfunction() {\r\n\t\t\t\t\tif ( this.originalEvent ) {\r\n\t\t\t\t\t\treturn this.originalEvent[ name ];\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\tset: function( value ) {\r\n\t\t\t\tObject.defineProperty( this, name, {\r\n\t\t\t\t\tenumerable: true,\r\n\t\t\t\t\tconfigurable: true,\r\n\t\t\t\t\twritable: true,\r\n\t\t\t\t\tvalue: value\r\n\t\t\t\t} );\r\n\t\t\t}\r\n\t\t} );\r\n\t},\r\n\r\n\tfix: function( originalEvent ) {\r\n\t\treturn originalEvent[ jQuery.expando ] ?\r\n\t\t\toriginalEvent :\r\n\t\t\tnew jQuery.Event( originalEvent );\r\n\t},\r\n\r\n\tspecial: {\r\n\t\tload: {\r\n\r\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\r\n\t\t\tnoBubble: true\r\n\t\t},\r\n\t\tclick: {\r\n\r\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\r\n\t\t\tsetup: function( data ) {\r\n\r\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\r\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\r\n\t\t\t\tvar el = this || data;\r\n\r\n\t\t\t\t// Claim the first handler\r\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\r\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\r\n\r\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\r\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Return false to allow normal processing in the caller\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\ttrigger: function( data ) {\r\n\r\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\r\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\r\n\t\t\t\tvar el = this || data;\r\n\r\n\t\t\t\t// Force setup before triggering a click\r\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\r\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\r\n\r\n\t\t\t\t\tleverageNative( el, \"click\" );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Return non-false to allow normal event-path propagation\r\n\t\t\t\treturn true;\r\n\t\t\t},\r\n\r\n\t\t\t// For cross-browser consistency, suppress native .click() on links\r\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\r\n\t\t\t_default: function( event ) {\r\n\t\t\t\tvar target = event.target;\r\n\t\t\t\treturn rcheckableType.test( target.type ) &&\r\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\r\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\r\n\t\t\t\t\tnodeName( target, \"a\" );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tbeforeunload: {\r\n\t\t\tpostDispatch: function( event ) {\r\n\r\n\t\t\t\t// Support: Firefox 20+\r\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\r\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\r\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n\r\n// Ensure the presence of an event listener that handles manually-triggered\r\n// synthetic events by interrupting progress until reinvoked in response to\r\n// *native* events that it fires directly, ensuring that state changes have\r\n// already occurred before other listeners are invoked.\r\nfunction leverageNative( el, type, expectSync ) {\r\n\r\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\r\n\tif ( !expectSync ) {\r\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\r\n\t\t\tjQuery.event.add( el, type, returnTrue );\r\n\t\t}\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Register the controller as a special universal handler for all event namespaces\r\n\tdataPriv.set( el, type, false );\r\n\tjQuery.event.add( el, type, {\r\n\t\tnamespace: false,\r\n\t\thandler: function( event ) {\r\n\t\t\tvar notAsync, result,\r\n\t\t\t\tsaved = dataPriv.get( this, type );\r\n\r\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\r\n\r\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\r\n\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// from an async native handler (gh-4350)\r\n\t\t\t\tif ( !saved.length ) {\r\n\r\n\t\t\t\t\t// Store arguments for use when handling the inner native event\r\n\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// will not be confused with a leftover capture object.\r\n\t\t\t\t\tsaved = slice.call( arguments );\r\n\t\t\t\t\tdataPriv.set( this, type, saved );\r\n\r\n\t\t\t\t\t// Trigger the native event and capture its result\r\n\t\t\t\t\t// Support: IE <=9 - 11+\r\n\t\t\t\t\t// focus() and blur() are asynchronous\r\n\t\t\t\t\tnotAsync = expectSync( this, type );\r\n\t\t\t\t\tthis[ type ]();\r\n\t\t\t\t\tresult = dataPriv.get( this, type );\r\n\t\t\t\t\tif ( saved !== result || notAsync ) {\r\n\t\t\t\t\t\tdataPriv.set( this, type, false );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tresult = {};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( saved !== result ) {\r\n\r\n\t\t\t\t\t\t// Cancel the outer synthetic event\r\n\t\t\t\t\t\tevent.stopImmediatePropagation();\r\n\t\t\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\t\t\t// Support: Chrome 86+\r\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\r\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\r\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\r\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\r\n\t\t\t\t\t\treturn result && result.value;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\r\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\r\n\t\t\t\t// native event and prevent that from happening again here.\r\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\r\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\r\n\t\t\t\t// less bad than duplication.\r\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\r\n\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t}\r\n\r\n\t\t\t// If this is a native event triggered above, everything is now in order\r\n\t\t\t// Fire an inner synthetic event with the original arguments\r\n\t\t\t} else if ( saved.length ) {\r\n\r\n\t\t\t\t// ...and capture the result\r\n\t\t\t\tdataPriv.set( this, type, {\r\n\t\t\t\t\tvalue: jQuery.event.trigger(\r\n\r\n\t\t\t\t\t\t// Support: IE <=9 - 11+\r\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\r\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\r\n\t\t\t\t\t\tsaved.slice( 1 ),\r\n\t\t\t\t\t\tthis\r\n\t\t\t\t\t)\r\n\t\t\t\t} );\r\n\r\n\t\t\t\t// Abort handling of the native event\r\n\t\t\t\tevent.stopImmediatePropagation();\r\n\t\t\t}\r\n\t\t}\r\n\t} );\r\n}\r\n\r\njQuery.removeEvent = function( elem, type, handle ) {\r\n\r\n\t// This \"if\" is needed for plain objects\r\n\tif ( elem.removeEventListener ) {\r\n\t\telem.removeEventListener( type, handle );\r\n\t}\r\n};\r\n\r\njQuery.Event = function( src, props ) {\r\n\r\n\t// Allow instantiation without the 'new' keyword\r\n\tif ( !( this instanceof jQuery.Event ) ) {\r\n\t\treturn new jQuery.Event( src, props );\r\n\t}\r\n\r\n\t// Event object\r\n\tif ( src && src.type ) {\r\n\t\tthis.originalEvent = src;\r\n\t\tthis.type = src.type;\r\n\r\n\t\t// Events bubbling up the document may have been marked as prevented\r\n\t\t// by a handler lower down the tree; reflect the correct value.\r\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\r\n\t\t\t\tsrc.defaultPrevented === undefined &&\r\n\r\n\t\t\t\t// Support: Android <=2.3 only\r\n\t\t\t\tsrc.returnValue === false ?\r\n\t\t\treturnTrue :\r\n\t\t\treturnFalse;\r\n\r\n\t\t// Create target properties\r\n\t\t// Support: Safari <=6 - 7 only\r\n\t\t// Target should not be a text node (#504, #13143)\r\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\r\n\t\t\tsrc.target.parentNode :\r\n\t\t\tsrc.target;\r\n\r\n\t\tthis.currentTarget = src.currentTarget;\r\n\t\tthis.relatedTarget = src.relatedTarget;\r\n\r\n\t// Event type\r\n\t} else {\r\n\t\tthis.type = src;\r\n\t}\r\n\r\n\t// Put explicitly provided properties onto the event object\r\n\tif ( props ) {\r\n\t\tjQuery.extend( this, props );\r\n\t}\r\n\r\n\t// Create a timestamp if incoming event doesn't have one\r\n\tthis.timeStamp = src && src.timeStamp || Date.now();\r\n\r\n\t// Mark it as fixed\r\n\tthis[ jQuery.expando ] = true;\r\n};\r\n\r\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\r\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\r\njQuery.Event.prototype = {\r\n\tconstructor: jQuery.Event,\r\n\tisDefaultPrevented: returnFalse,\r\n\tisPropagationStopped: returnFalse,\r\n\tisImmediatePropagationStopped: returnFalse,\r\n\tisSimulated: false,\r\n\r\n\tpreventDefault: function() {\r\n\t\tvar e = this.originalEvent;\r\n\r\n\t\tthis.isDefaultPrevented = returnTrue;\r\n\r\n\t\tif ( e && !this.isSimulated ) {\r\n\t\t\te.preventDefault();\r\n\t\t}\r\n\t},\r\n\tstopPropagation: function() {\r\n\t\tvar e = this.originalEvent;\r\n\r\n\t\tthis.isPropagationStopped = returnTrue;\r\n\r\n\t\tif ( e && !this.isSimulated ) {\r\n\t\t\te.stopPropagation();\r\n\t\t}\r\n\t},\r\n\tstopImmediatePropagation: function() {\r\n\t\tvar e = this.originalEvent;\r\n\r\n\t\tthis.isImmediatePropagationStopped = returnTrue;\r\n\r\n\t\tif ( e && !this.isSimulated ) {\r\n\t\t\te.stopImmediatePropagation();\r\n\t\t}\r\n\r\n\t\tthis.stopPropagation();\r\n\t}\r\n};\r\n\r\n// Includes all common event props including KeyEvent and MouseEvent specific props\r\njQuery.each( {\r\n\taltKey: true,\r\n\tbubbles: true,\r\n\tcancelable: true,\r\n\tchangedTouches: true,\r\n\tctrlKey: true,\r\n\tdetail: true,\r\n\teventPhase: true,\r\n\tmetaKey: true,\r\n\tpageX: true,\r\n\tpageY: true,\r\n\tshiftKey: true,\r\n\tview: true,\r\n\t\"char\": true,\r\n\tcode: true,\r\n\tcharCode: true,\r\n\tkey: true,\r\n\tkeyCode: true,\r\n\tbutton: true,\r\n\tbuttons: true,\r\n\tclientX: true,\r\n\tclientY: true,\r\n\toffsetX: true,\r\n\toffsetY: true,\r\n\tpointerId: true,\r\n\tpointerType: true,\r\n\tscreenX: true,\r\n\tscreenY: true,\r\n\ttargetTouches: true,\r\n\ttoElement: true,\r\n\ttouches: true,\r\n\twhich: true\r\n}, jQuery.event.addProp );\r\n\r\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\r\n\tjQuery.event.special[ type ] = {\r\n\r\n\t\t// Utilize native event if possible so blur/focus sequence is correct\r\n\t\tsetup: function() {\r\n\r\n\t\t\t// Claim the first handler\r\n\t\t\t// dataPriv.set( this, \"focus\", ... )\r\n\t\t\t// dataPriv.set( this, \"blur\", ... )\r\n\t\t\tleverageNative( this, type, expectSync );\r\n\r\n\t\t\t// Return false to allow normal processing in the caller\r\n\t\t\treturn false;\r\n\t\t},\r\n\t\ttrigger: function() {\r\n\r\n\t\t\t// Force setup before trigger\r\n\t\t\tleverageNative( this, type );\r\n\r\n\t\t\t// Return non-false to allow normal event-path propagation\r\n\t\t\treturn true;\r\n\t\t},\r\n\r\n\t\t// Suppress native focus or blur as it's already being fired\r\n\t\t// in leverageNative.\r\n\t\t_default: function() {\r\n\t\t\treturn true;\r\n\t\t},\r\n\r\n\t\tdelegateType: delegateType\r\n\t};\r\n} );\r\n\r\n// Create mouseenter/leave events using mouseover/out and event-time checks\r\n// so that event delegation works in jQuery.\r\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\r\n//\r\n// Support: Safari 7 only\r\n// Safari sends mouseenter too often; see:\r\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\r\n// for the description of the bug (it existed in older Chrome versions as well).\r\njQuery.each( {\r\n\tmouseenter: \"mouseover\",\r\n\tmouseleave: \"mouseout\",\r\n\tpointerenter: \"pointerover\",\r\n\tpointerleave: \"pointerout\"\r\n}, function( orig, fix ) {\r\n\tjQuery.event.special[ orig ] = {\r\n\t\tdelegateType: fix,\r\n\t\tbindType: fix,\r\n\r\n\t\thandle: function( event ) {\r\n\t\t\tvar ret,\r\n\t\t\t\ttarget = this,\r\n\t\t\t\trelated = event.relatedTarget,\r\n\t\t\t\thandleObj = event.handleObj;\r\n\r\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\r\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\r\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\r\n\t\t\t\tevent.type = handleObj.origType;\r\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\r\n\t\t\t\tevent.type = fix;\r\n\t\t\t}\r\n\t\t\treturn ret;\r\n\t\t}\r\n\t};\r\n} );\r\n\r\njQuery.fn.extend( {\r\n\r\n\ton: function( types, selector, data, fn ) {\r\n\t\treturn on( this, types, selector, data, fn );\r\n\t},\r\n\tone: function( types, selector, data, fn ) {\r\n\t\treturn on( this, types, selector, data, fn, 1 );\r\n\t},\r\n\toff: function( types, selector, fn ) {\r\n\t\tvar handleObj, type;\r\n\t\tif ( types && types.preventDefault && types.handleObj ) {\r\n\r\n\t\t\t// ( event ) dispatched jQuery.Event\r\n\t\t\thandleObj = types.handleObj;\r\n\t\t\tjQuery( types.delegateTarget ).off(\r\n\t\t\t\thandleObj.namespace ?\r\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\r\n\t\t\t\t\thandleObj.origType,\r\n\t\t\t\thandleObj.selector,\r\n\t\t\t\thandleObj.handler\r\n\t\t\t);\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tif ( typeof types === \"object\" ) {\r\n\r\n\t\t\t// ( types-object [, selector] )\r\n\t\t\tfor ( type in types ) {\r\n\t\t\t\tthis.off( type, selector, types[ type ] );\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tif ( selector === false || typeof selector === \"function\" ) {\r\n\r\n\t\t\t// ( types [, fn] )\r\n\t\t\tfn = selector;\r\n\t\t\tselector = undefined;\r\n\t\t}\r\n\t\tif ( fn === false ) {\r\n\t\t\tfn = returnFalse;\r\n\t\t}\r\n\t\treturn this.each( function() {\r\n\t\t\tjQuery.event.remove( this, types, fn, selector );\r\n\t\t} );\r\n\t}\r\n} );\r\n\r\n\r\nvar\r\n\r\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\r\n\t// In IE/Edge using regex groups here causes severe slowdowns.\r\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\r\n\trnoInnerhtml = /\\s*$/g;\r\n\r\n// Prefer a tbody over its parent table for containing new rows\r\nfunction manipulationTarget( elem, content ) {\r\n\tif ( nodeName( elem, \"table\" ) &&\r\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\r\n\r\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\r\n\t}\r\n\r\n\treturn elem;\r\n}\r\n\r\n// Replace/restore the type attribute of script elements for safe DOM manipulation\r\nfunction disableScript( elem ) {\r\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\r\n\treturn elem;\r\n}\r\nfunction restoreScript( elem ) {\r\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\r\n\t\telem.type = elem.type.slice( 5 );\r\n\t} else {\r\n\t\telem.removeAttribute( \"type\" );\r\n\t}\r\n\r\n\treturn elem;\r\n}\r\n\r\nfunction cloneCopyEvent( src, dest ) {\r\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\r\n\r\n\tif ( dest.nodeType !== 1 ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// 1. Copy private data: events, handlers, etc.\r\n\tif ( dataPriv.hasData( src ) ) {\r\n\t\tpdataOld = dataPriv.get( src );\r\n\t\tevents = pdataOld.events;\r\n\r\n\t\tif ( events ) {\r\n\t\t\tdataPriv.remove( dest, \"handle events\" );\r\n\r\n\t\t\tfor ( type in events ) {\r\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\r\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// 2. Copy user data\r\n\tif ( dataUser.hasData( src ) ) {\r\n\t\tudataOld = dataUser.access( src );\r\n\t\tudataCur = jQuery.extend( {}, udataOld );\r\n\r\n\t\tdataUser.set( dest, udataCur );\r\n\t}\r\n}\r\n\r\n// Fix IE bugs, see support tests\r\nfunction fixInput( src, dest ) {\r\n\tvar nodeName = dest.nodeName.toLowerCase();\r\n\r\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\r\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\r\n\t\tdest.checked = src.checked;\r\n\r\n\t// Fails to return the selected option to the default selected state when cloning options\r\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\r\n\t\tdest.defaultValue = src.defaultValue;\r\n\t}\r\n}\r\n\r\nfunction domManip( collection, args, callback, ignored ) {\r\n\r\n\t// Flatten any nested arrays\r\n\targs = flat( args );\r\n\r\n\tvar fragment, first, scripts, hasScripts, node, doc,\r\n\t\ti = 0,\r\n\t\tl = collection.length,\r\n\t\tiNoClone = l - 1,\r\n\t\tvalue = args[ 0 ],\r\n\t\tvalueIsFunction = isFunction( value );\r\n\r\n\t// We can't cloneNode fragments that contain checked, in WebKit\r\n\tif ( valueIsFunction ||\r\n\t\t\t( l > 1 && typeof value === \"string\" &&\r\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\r\n\t\treturn collection.each( function( index ) {\r\n\t\t\tvar self = collection.eq( index );\r\n\t\t\tif ( valueIsFunction ) {\r\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\r\n\t\t\t}\r\n\t\t\tdomManip( self, args, callback, ignored );\r\n\t\t} );\r\n\t}\r\n\r\n\tif ( l ) {\r\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\r\n\t\tfirst = fragment.firstChild;\r\n\r\n\t\tif ( fragment.childNodes.length === 1 ) {\r\n\t\t\tfragment = first;\r\n\t\t}\r\n\r\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\r\n\t\tif ( first || ignored ) {\r\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\r\n\t\t\thasScripts = scripts.length;\r\n\r\n\t\t\t// Use the original fragment for the last item\r\n\t\t\t// instead of the first because it can end up\r\n\t\t\t// being emptied incorrectly in certain situations (#8070).\r\n\t\t\tfor ( ; i < l; i++ ) {\r\n\t\t\t\tnode = fragment;\r\n\r\n\t\t\t\tif ( i !== iNoClone ) {\r\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\r\n\r\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\r\n\t\t\t\t\tif ( hasScripts ) {\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// push.apply(_, arraylike) throws on ancient WebKit\r\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcallback.call( collection[ i ], node, i );\r\n\t\t\t}\r\n\r\n\t\t\tif ( hasScripts ) {\r\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\r\n\r\n\t\t\t\t// Reenable scripts\r\n\t\t\t\tjQuery.map( scripts, restoreScript );\r\n\r\n\t\t\t\t// Evaluate executable scripts on first document insertion\r\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\r\n\t\t\t\t\tnode = scripts[ i ];\r\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\r\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\r\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\r\n\r\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\r\n\r\n\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\tif ( jQuery._evalUrl && !node.noModule ) {\r\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\r\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\r\n\t\t\t\t\t\t\t\t}, doc );\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\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\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}\r\n\t}\r\n\r\n\treturn collection;\r\n}\r\n\r\nfunction remove( elem, selector, keepData ) {\r\n\tvar node,\r\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\r\n\t\ti = 0;\r\n\r\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\r\n\t\tif ( !keepData && node.nodeType === 1 ) {\r\n\t\t\tjQuery.cleanData( getAll( node ) );\r\n\t\t}\r\n\r\n\t\tif ( node.parentNode ) {\r\n\t\t\tif ( keepData && isAttached( node ) ) {\r\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\r\n\t\t\t}\r\n\t\t\tnode.parentNode.removeChild( node );\r\n\t\t}\r\n\t}\r\n\r\n\treturn elem;\r\n}\r\n\r\njQuery.extend( {\r\n\thtmlPrefilter: function( html ) {\r\n\t\treturn html;\r\n\t},\r\n\r\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\r\n\t\tvar i, l, srcElements, destElements,\r\n\t\t\tclone = elem.cloneNode( true ),\r\n\t\t\tinPage = isAttached( elem );\r\n\r\n\t\t// Fix IE cloning issues\r\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\r\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\r\n\r\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\r\n\t\t\tdestElements = getAll( clone );\r\n\t\t\tsrcElements = getAll( elem );\r\n\r\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\r\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Copy the events from the original to the clone\r\n\t\tif ( dataAndEvents ) {\r\n\t\t\tif ( deepDataAndEvents ) {\r\n\t\t\t\tsrcElements = srcElements || getAll( elem );\r\n\t\t\t\tdestElements = destElements || getAll( clone );\r\n\r\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\r\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tcloneCopyEvent( elem, clone );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Preserve script evaluation history\r\n\t\tdestElements = getAll( clone, \"script\" );\r\n\t\tif ( destElements.length > 0 ) {\r\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\r\n\t\t}\r\n\r\n\t\t// Return the cloned set\r\n\t\treturn clone;\r\n\t},\r\n\r\n\tcleanData: function( elems ) {\r\n\t\tvar data, elem, type,\r\n\t\t\tspecial = jQuery.event.special,\r\n\t\t\ti = 0;\r\n\r\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\r\n\t\t\tif ( acceptData( elem ) ) {\r\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\r\n\t\t\t\t\tif ( data.events ) {\r\n\t\t\t\t\t\tfor ( type in data.events ) {\r\n\t\t\t\t\t\t\tif ( special[ type ] ) {\r\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\r\n\r\n\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} else {\r\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\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: Chrome <=35 - 45+\r\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\r\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\r\n\t\t\t\t}\r\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\r\n\r\n\t\t\t\t\t// Support: Chrome <=35 - 45+\r\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\r\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n} );\r\n\r\njQuery.fn.extend( {\r\n\tdetach: function( selector ) {\r\n\t\treturn remove( this, selector, true );\r\n\t},\r\n\r\n\tremove: function( selector ) {\r\n\t\treturn remove( this, selector );\r\n\t},\r\n\r\n\ttext: function( value ) {\r\n\t\treturn access( this, function( value ) {\r\n\t\t\treturn value === undefined ?\r\n\t\t\t\tjQuery.text( this ) :\r\n\t\t\t\tthis.empty().each( function() {\r\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\r\n\t\t\t\t\t\tthis.textContent = value;\r\n\t\t\t\t\t}\r\n\t\t\t\t} );\r\n\t\t}, null, value, arguments.length );\r\n\t},\r\n\r\n\tappend: function() {\r\n\t\treturn domManip( this, arguments, function( elem ) {\r\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\r\n\t\t\t\tvar target = manipulationTarget( this, elem );\r\n\t\t\t\ttarget.appendChild( elem );\r\n\t\t\t}\r\n\t\t} );\r\n\t},\r\n\r\n\tprepend: function() {\r\n\t\treturn domManip( this, arguments, function( elem ) {\r\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\r\n\t\t\t\tvar target = manipulationTarget( this, elem );\r\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\r\n\t\t\t}\r\n\t\t} );\r\n\t},\r\n\r\n\tbefore: function() {\r\n\t\treturn domManip( this, arguments, function( elem ) {\r\n\t\t\tif ( this.parentNode ) {\r\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\r\n\t\t\t}\r\n\t\t} );\r\n\t},\r\n\r\n\tafter: function() {\r\n\t\treturn domManip( this, arguments, function( elem ) {\r\n\t\t\tif ( this.parentNode ) {\r\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\r\n\t\t\t}\r\n\t\t} );\r\n\t},\r\n\r\n\tempty: function() {\r\n\t\tvar elem,\r\n\t\t\ti = 0;\r\n\r\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\r\n\t\t\tif ( elem.nodeType === 1 ) {\r\n\r\n\t\t\t\t// Prevent memory leaks\r\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\r\n\r\n\t\t\t\t// Remove any remaining nodes\r\n\t\t\t\telem.textContent = \"\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\r\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\r\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\r\n\r\n\t\treturn this.map( function() {\r\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\r\n\t\t} );\r\n\t},\r\n\r\n\thtml: function( value ) {\r\n\t\treturn access( this, function( value ) {\r\n\t\t\tvar elem = this[ 0 ] || {},\r\n\t\t\t\ti = 0,\r\n\t\t\t\tl = this.length;\r\n\r\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\r\n\t\t\t\treturn elem.innerHTML;\r\n\t\t\t}\r\n\r\n\t\t\t// See if we can take a shortcut and just use innerHTML\r\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\r\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\r\n\r\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tfor ( ; i < l; i++ ) {\r\n\t\t\t\t\t\telem = this[ i ] || {};\r\n\r\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\r\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\r\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\r\n\t\t\t\t\t\t\telem.innerHTML = value;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\telem = 0;\r\n\r\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\r\n\t\t\t\t} catch ( e ) {}\r\n\t\t\t}\r\n\r\n\t\t\tif ( elem ) {\r\n\t\t\t\tthis.empty().append( value );\r\n\t\t\t}\r\n\t\t}, null, value, arguments.length );\r\n\t},\r\n\r\n\treplaceWith: function() {\r\n\t\tvar ignored = [];\r\n\r\n\t\t// Make the changes, replacing each non-ignored context element with the new content\r\n\t\treturn domManip( this, arguments, function( elem ) {\r\n\t\t\tvar parent = this.parentNode;\r\n\r\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\r\n\t\t\t\tjQuery.cleanData( getAll( this ) );\r\n\t\t\t\tif ( parent ) {\r\n\t\t\t\t\tparent.replaceChild( elem, this );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t// Force callback invocation\r\n\t\t}, ignored );\r\n\t}\r\n} );\r\n\r\njQuery.each( {\r\n\tappendTo: \"append\",\r\n\tprependTo: \"prepend\",\r\n\tinsertBefore: \"before\",\r\n\tinsertAfter: \"after\",\r\n\treplaceAll: \"replaceWith\"\r\n}, function( name, original ) {\r\n\tjQuery.fn[ name ] = function( selector ) {\r\n\t\tvar elems,\r\n\t\t\tret = [],\r\n\t\t\tinsert = jQuery( selector ),\r\n\t\t\tlast = insert.length - 1,\r\n\t\t\ti = 0;\r\n\r\n\t\tfor ( ; i <= last; i++ ) {\r\n\t\t\telems = i === last ? this : this.clone( true );\r\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\r\n\r\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\r\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\r\n\t\t\tpush.apply( ret, elems.get() );\r\n\t\t}\r\n\r\n\t\treturn this.pushStack( ret );\r\n\t};\r\n} );\r\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\r\n\r\nvar getStyles = function( elem ) {\r\n\r\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\r\n\t\t// IE throws on elements created in popups\r\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\r\n\t\tvar view = elem.ownerDocument.defaultView;\r\n\r\n\t\tif ( !view || !view.opener ) {\r\n\t\t\tview = window;\r\n\t\t}\r\n\r\n\t\treturn view.getComputedStyle( elem );\r\n\t};\r\n\r\nvar swap = function( elem, options, callback ) {\r\n\tvar ret, name,\r\n\t\told = {};\r\n\r\n\t// Remember the old values, and insert the new ones\r\n\tfor ( name in options ) {\r\n\t\told[ name ] = elem.style[ name ];\r\n\t\telem.style[ name ] = options[ name ];\r\n\t}\r\n\r\n\tret = callback.call( elem );\r\n\r\n\t// Revert the old values\r\n\tfor ( name in options ) {\r\n\t\telem.style[ name ] = old[ name ];\r\n\t}\r\n\r\n\treturn ret;\r\n};\r\n\r\n\r\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\r\n\r\n\r\n\r\n( function() {\r\n\r\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\r\n\t// so they're executed at the same time to save the second computation.\r\n\tfunction computeStyleTests() {\r\n\r\n\t\t// This is a singleton, we need to execute it only once\r\n\t\tif ( !div ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\r\n\t\t\t\"margin-top:1px;padding:0;border:0\";\r\n\t\tdiv.style.cssText =\r\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\r\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\r\n\t\t\t\"width:60%;top:1%\";\r\n\t\tdocumentElement.appendChild( container ).appendChild( div );\r\n\r\n\t\tvar divStyle = window.getComputedStyle( div );\r\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\r\n\r\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\r\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\r\n\r\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\r\n\t\t// Some styles come back with percentage values, even though they shouldn't\r\n\t\tdiv.style.right = \"60%\";\r\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\r\n\r\n\t\t// Support: IE 9 - 11 only\r\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\r\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\r\n\r\n\t\t// Support: IE 9 only\r\n\t\t// Detect overflow:scroll screwiness (gh-3699)\r\n\t\t// Support: Chrome <=64\r\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\r\n\t\tdiv.style.position = \"absolute\";\r\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\r\n\r\n\t\tdocumentElement.removeChild( container );\r\n\r\n\t\t// Nullify the div so it wouldn't be stored in the memory and\r\n\t\t// it will also be a sign that checks already performed\r\n\t\tdiv = null;\r\n\t}\r\n\r\n\tfunction roundPixelMeasures( measure ) {\r\n\t\treturn Math.round( parseFloat( measure ) );\r\n\t}\r\n\r\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\r\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\r\n\t\tcontainer = document.createElement( \"div\" ),\r\n\t\tdiv = document.createElement( \"div\" );\r\n\r\n\t// Finish early in limited (non-browser) environments\r\n\tif ( !div.style ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Support: IE <=9 - 11 only\r\n\t// Style of cloned element affects source element cloned (#8908)\r\n\tdiv.style.backgroundClip = \"content-box\";\r\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\r\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\r\n\r\n\tjQuery.extend( support, {\r\n\t\tboxSizingReliable: function() {\r\n\t\t\tcomputeStyleTests();\r\n\t\t\treturn boxSizingReliableVal;\r\n\t\t},\r\n\t\tpixelBoxStyles: function() {\r\n\t\t\tcomputeStyleTests();\r\n\t\t\treturn pixelBoxStylesVal;\r\n\t\t},\r\n\t\tpixelPosition: function() {\r\n\t\t\tcomputeStyleTests();\r\n\t\t\treturn pixelPositionVal;\r\n\t\t},\r\n\t\treliableMarginLeft: function() {\r\n\t\t\tcomputeStyleTests();\r\n\t\t\treturn reliableMarginLeftVal;\r\n\t\t},\r\n\t\tscrollboxSize: function() {\r\n\t\t\tcomputeStyleTests();\r\n\t\t\treturn scrollboxSizeVal;\r\n\t\t},\r\n\r\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\r\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\r\n\t\t// set in CSS while `offset*` properties report correct values.\r\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\r\n\t\t// some versions of this test; make sure not to make it pass there!\r\n\t\t//\r\n\t\t// Support: Firefox 70+\r\n\t\t// Only Firefox includes border widths\r\n\t\t// in computed dimensions. (gh-4529)\r\n\t\treliableTrDimensions: function() {\r\n\t\t\tvar table, tr, trChild, trStyle;\r\n\t\t\tif ( reliableTrDimensionsVal == null ) {\r\n\t\t\t\ttable = document.createElement( \"table\" );\r\n\t\t\t\ttr = document.createElement( \"tr\" );\r\n\t\t\t\ttrChild = document.createElement( \"div\" );\r\n\r\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\r\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\r\n\r\n\t\t\t\t// Support: Chrome 86+\r\n\t\t\t\t// Height set through cssText does not get applied.\r\n\t\t\t\t// Computed height then comes back as 0.\r\n\t\t\t\ttr.style.height = \"1px\";\r\n\t\t\t\ttrChild.style.height = \"9px\";\r\n\r\n\t\t\t\t// Support: Android 8 Chrome 86+\r\n\t\t\t\t// In our bodyBackground.html iframe,\r\n\t\t\t\t// display for all div elements is set to \"inline\",\r\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\r\n\t\t\t\t// Ensuring the div is display: block\r\n\t\t\t\t// gets around this issue.\r\n\t\t\t\ttrChild.style.display = \"block\";\r\n\r\n\t\t\t\tdocumentElement\r\n\t\t\t\t\t.appendChild( table )\r\n\t\t\t\t\t.appendChild( tr )\r\n\t\t\t\t\t.appendChild( trChild );\r\n\r\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\r\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\r\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\r\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\r\n\r\n\t\t\t\tdocumentElement.removeChild( table );\r\n\t\t\t}\r\n\t\t\treturn reliableTrDimensionsVal;\r\n\t\t}\r\n\t} );\r\n} )();\r\n\r\n\r\nfunction curCSS( elem, name, computed ) {\r\n\tvar width, minWidth, maxWidth, ret,\r\n\r\n\t\t// Support: Firefox 51+\r\n\t\t// Retrieving style before computed somehow\r\n\t\t// fixes an issue with getting wrong values\r\n\t\t// on detached elements\r\n\t\tstyle = elem.style;\r\n\r\n\tcomputed = computed || getStyles( elem );\r\n\r\n\t// getPropertyValue is needed for:\r\n\t// .css('filter') (IE 9 only, #12537)\r\n\t// .css('--customProperty) (#3144)\r\n\tif ( computed ) {\r\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\r\n\r\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\r\n\t\t\tret = jQuery.style( elem, name );\r\n\t\t}\r\n\r\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\r\n\t\t// Android Browser returns percentage for some values,\r\n\t\t// but width seems to be reliably pixels.\r\n\t\t// This is against the CSSOM draft spec:\r\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\r\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\r\n\r\n\t\t\t// Remember the original values\r\n\t\t\twidth = style.width;\r\n\t\t\tminWidth = style.minWidth;\r\n\t\t\tmaxWidth = style.maxWidth;\r\n\r\n\t\t\t// Put in the new values to get a computed value out\r\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\r\n\t\t\tret = computed.width;\r\n\r\n\t\t\t// Revert the changed values\r\n\t\t\tstyle.width = width;\r\n\t\t\tstyle.minWidth = minWidth;\r\n\t\t\tstyle.maxWidth = maxWidth;\r\n\t\t}\r\n\t}\r\n\r\n\treturn ret !== undefined ?\r\n\r\n\t\t// Support: IE <=9 - 11 only\r\n\t\t// IE returns zIndex value as an integer.\r\n\t\tret + \"\" :\r\n\t\tret;\r\n}\r\n\r\n\r\nfunction addGetHookIf( conditionFn, hookFn ) {\r\n\r\n\t// Define the hook, we'll check on the first run if it's really needed.\r\n\treturn {\r\n\t\tget: function() {\r\n\t\t\tif ( conditionFn() ) {\r\n\r\n\t\t\t\t// Hook not needed (or it's not possible to use it due\r\n\t\t\t\t// to missing dependency), remove it.\r\n\t\t\t\tdelete this.get;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\r\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\r\n\t\t}\r\n\t};\r\n}\r\n\r\n\r\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\r\n\temptyStyle = document.createElement( \"div\" ).style,\r\n\tvendorProps = {};\r\n\r\n// Return a vendor-prefixed property or undefined\r\nfunction vendorPropName( name ) {\r\n\r\n\t// Check for vendor prefixed names\r\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\r\n\t\ti = cssPrefixes.length;\r\n\r\n\twhile ( i-- ) {\r\n\t\tname = cssPrefixes[ i ] + capName;\r\n\t\tif ( name in emptyStyle ) {\r\n\t\t\treturn name;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\r\nfunction finalPropName( name ) {\r\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\r\n\r\n\tif ( final ) {\r\n\t\treturn final;\r\n\t}\r\n\tif ( name in emptyStyle ) {\r\n\t\treturn name;\r\n\t}\r\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\r\n}\r\n\r\n\r\nvar\r\n\r\n\t// Swappable if display is none or starts with table\r\n\t// except \"table\", \"table-cell\", or \"table-caption\"\r\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\r\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\r\n\trcustomProp = /^--/,\r\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\r\n\tcssNormalTransform = {\r\n\t\tletterSpacing: \"0\",\r\n\t\tfontWeight: \"400\"\r\n\t};\r\n\r\nfunction setPositiveNumber( _elem, value, subtract ) {\r\n\r\n\t// Any relative (+/-) values have already been\r\n\t// normalized at this point\r\n\tvar matches = rcssNum.exec( value );\r\n\treturn matches ?\r\n\r\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\r\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\r\n\t\tvalue;\r\n}\r\n\r\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\r\n\tvar i = dimension === \"width\" ? 1 : 0,\r\n\t\textra = 0,\r\n\t\tdelta = 0;\r\n\r\n\t// Adjustment may not be necessary\r\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tfor ( ; i < 4; i += 2 ) {\r\n\r\n\t\t// Both box models exclude margin\r\n\t\tif ( box === \"margin\" ) {\r\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\r\n\t\t}\r\n\r\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\r\n\t\tif ( !isBorderBox ) {\r\n\r\n\t\t\t// Add padding\r\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\r\n\r\n\t\t\t// For \"border\" or \"margin\", add border\r\n\t\t\tif ( box !== \"padding\" ) {\r\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\r\n\r\n\t\t\t// But still keep track of it otherwise\r\n\t\t\t} else {\r\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\r\n\t\t\t}\r\n\r\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\r\n\t\t// \"padding\" or \"margin\"\r\n\t\t} else {\r\n\r\n\t\t\t// For \"content\", subtract padding\r\n\t\t\tif ( box === \"content\" ) {\r\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\r\n\t\t\t}\r\n\r\n\t\t\t// For \"content\" or \"padding\", subtract border\r\n\t\t\tif ( box !== \"margin\" ) {\r\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\r\n\tif ( !isBorderBox && computedVal >= 0 ) {\r\n\r\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\r\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\r\n\t\tdelta += Math.max( 0, Math.ceil(\r\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\r\n\t\t\tcomputedVal -\r\n\t\t\tdelta -\r\n\t\t\textra -\r\n\t\t\t0.5\r\n\r\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\r\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\r\n\t\t) ) || 0;\r\n\t}\r\n\r\n\treturn delta;\r\n}\r\n\r\nfunction getWidthOrHeight( elem, dimension, extra ) {\r\n\r\n\t// Start with computed style\r\n\tvar styles = getStyles( elem ),\r\n\r\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\r\n\t\t// Fake content-box until we know it's needed to know the true value.\r\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\r\n\t\tisBorderBox = boxSizingNeeded &&\r\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\r\n\t\tvalueIsBorderBox = isBorderBox,\r\n\r\n\t\tval = curCSS( elem, dimension, styles ),\r\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\r\n\r\n\t// Support: Firefox <=54\r\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\r\n\tif ( rnumnonpx.test( val ) ) {\r\n\t\tif ( !extra ) {\r\n\t\t\treturn val;\r\n\t\t}\r\n\t\tval = \"auto\";\r\n\t}\r\n\r\n\r\n\t// Support: IE 9 - 11 only\r\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\r\n\t// In those cases, the computed value can be trusted to be border-box.\r\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\r\n\r\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\r\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\r\n\t\t// set in CSS while `offset*` properties report correct values.\r\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\r\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\r\n\r\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\r\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\r\n\t\tval === \"auto\" ||\r\n\r\n\t\t// Support: Android <=4.1 - 4.3 only\r\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\r\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\r\n\r\n\t\t// Make sure the element is visible & connected\r\n\t\telem.getClientRects().length ) {\r\n\r\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\r\n\r\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\r\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\r\n\t\t// retrieved value as a content box dimension.\r\n\t\tvalueIsBorderBox = offsetProp in elem;\r\n\t\tif ( valueIsBorderBox ) {\r\n\t\t\tval = elem[ offsetProp ];\r\n\t\t}\r\n\t}\r\n\r\n\t// Normalize \"\" and auto\r\n\tval = parseFloat( val ) || 0;\r\n\r\n\t// Adjust for the element's box model\r\n\treturn ( val +\r\n\t\tboxModelAdjustment(\r\n\t\t\telem,\r\n\t\t\tdimension,\r\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\r\n\t\t\tvalueIsBorderBox,\r\n\t\t\tstyles,\r\n\r\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\r\n\t\t\tval\r\n\t\t)\r\n\t) + \"px\";\r\n}\r\n\r\njQuery.extend( {\r\n\r\n\t// Add in style property hooks for overriding the default\r\n\t// behavior of getting and setting a style property\r\n\tcssHooks: {\r\n\t\topacity: {\r\n\t\t\tget: function( elem, computed ) {\r\n\t\t\t\tif ( computed ) {\r\n\r\n\t\t\t\t\t// We should always get a number back from opacity\r\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\r\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t// Don't automatically add \"px\" to these possibly-unitless properties\r\n\tcssNumber: {\r\n\t\t\"animationIterationCount\": true,\r\n\t\t\"columnCount\": true,\r\n\t\t\"fillOpacity\": true,\r\n\t\t\"flexGrow\": true,\r\n\t\t\"flexShrink\": true,\r\n\t\t\"fontWeight\": true,\r\n\t\t\"gridArea\": true,\r\n\t\t\"gridColumn\": true,\r\n\t\t\"gridColumnEnd\": true,\r\n\t\t\"gridColumnStart\": true,\r\n\t\t\"gridRow\": true,\r\n\t\t\"gridRowEnd\": true,\r\n\t\t\"gridRowStart\": true,\r\n\t\t\"lineHeight\": true,\r\n\t\t\"opacity\": true,\r\n\t\t\"order\": true,\r\n\t\t\"orphans\": true,\r\n\t\t\"widows\": true,\r\n\t\t\"zIndex\": true,\r\n\t\t\"zoom\": true\r\n\t},\r\n\r\n\t// Add in properties whose names you wish to fix before\r\n\t// setting or getting the value\r\n\tcssProps: {},\r\n\r\n\t// Get and set the style property on a DOM Node\r\n\tstyle: function( elem, name, value, extra ) {\r\n\r\n\t\t// Don't set styles on text and comment nodes\r\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Make sure that we're working with the right name\r\n\t\tvar ret, type, hooks,\r\n\t\t\torigName = camelCase( name ),\r\n\t\t\tisCustomProp = rcustomProp.test( name ),\r\n\t\t\tstyle = elem.style;\r\n\r\n\t\t// Make sure that we're working with the right name. We don't\r\n\t\t// want to query the value if it is a CSS custom property\r\n\t\t// since they are user-defined.\r\n\t\tif ( !isCustomProp ) {\r\n\t\t\tname = finalPropName( origName );\r\n\t\t}\r\n\r\n\t\t// Gets hook for the prefixed version, then unprefixed version\r\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\r\n\r\n\t\t// Check if we're setting a value\r\n\t\tif ( value !== undefined ) {\r\n\t\t\ttype = typeof value;\r\n\r\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\r\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\r\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\r\n\r\n\t\t\t\t// Fixes bug #9237\r\n\t\t\t\ttype = \"number\";\r\n\t\t\t}\r\n\r\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\r\n\t\t\tif ( value == null || value !== value ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\r\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\r\n\t\t\t// \"px\" to a few hardcoded values.\r\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\r\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\r\n\t\t\t}\r\n\r\n\t\t\t// background-* props affect original clone's values\r\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\r\n\t\t\t\tstyle[ name ] = \"inherit\";\r\n\t\t\t}\r\n\r\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\r\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\r\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\r\n\r\n\t\t\t\tif ( isCustomProp ) {\r\n\t\t\t\t\tstyle.setProperty( name, value );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tstyle[ name ] = value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\r\n\t\t\t// If a hook was provided get the non-computed value from there\r\n\t\t\tif ( hooks && \"get\" in hooks &&\r\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\r\n\r\n\t\t\t\treturn ret;\r\n\t\t\t}\r\n\r\n\t\t\t// Otherwise just get the value from the style object\r\n\t\t\treturn style[ name ];\r\n\t\t}\r\n\t},\r\n\r\n\tcss: function( elem, name, extra, styles ) {\r\n\t\tvar val, num, hooks,\r\n\t\t\torigName = camelCase( name ),\r\n\t\t\tisCustomProp = rcustomProp.test( name );\r\n\r\n\t\t// Make sure that we're working with the right name. We don't\r\n\t\t// want to modify the value if it is a CSS custom property\r\n\t\t// since they are user-defined.\r\n\t\tif ( !isCustomProp ) {\r\n\t\t\tname = finalPropName( origName );\r\n\t\t}\r\n\r\n\t\t// Try prefixed name followed by the unprefixed name\r\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\r\n\r\n\t\t// If a hook was provided get the computed value from there\r\n\t\tif ( hooks && \"get\" in hooks ) {\r\n\t\t\tval = hooks.get( elem, true, extra );\r\n\t\t}\r\n\r\n\t\t// Otherwise, if a way to get the computed value exists, use that\r\n\t\tif ( val === undefined ) {\r\n\t\t\tval = curCSS( elem, name, styles );\r\n\t\t}\r\n\r\n\t\t// Convert \"normal\" to computed value\r\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\r\n\t\t\tval = cssNormalTransform[ name ];\r\n\t\t}\r\n\r\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\r\n\t\tif ( extra === \"\" || extra ) {\r\n\t\t\tnum = parseFloat( val );\r\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\r\n\t\t}\r\n\r\n\t\treturn val;\r\n\t}\r\n} );\r\n\r\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\r\n\tjQuery.cssHooks[ dimension ] = {\r\n\t\tget: function( elem, computed, extra ) {\r\n\t\t\tif ( computed ) {\r\n\r\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\r\n\t\t\t\t// but it must have a current display style that would benefit\r\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\r\n\r\n\t\t\t\t\t// Support: Safari 8+\r\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\r\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\r\n\t\t\t\t\t// Support: IE <=11 only\r\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\r\n\t\t\t\t\t// in IE throws an error.\r\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\r\n\t\t\t\t\tswap( elem, cssShow, function() {\r\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\r\n\t\t\t\t\t} ) :\r\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tset: function( elem, value, extra ) {\r\n\t\t\tvar matches,\r\n\t\t\t\tstyles = getStyles( elem ),\r\n\r\n\t\t\t\t// Only read styles.position if the test has a chance to fail\r\n\t\t\t\t// to avoid forcing a reflow.\r\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\r\n\t\t\t\t\tstyles.position === \"absolute\",\r\n\r\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\r\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\r\n\t\t\t\tisBorderBox = boxSizingNeeded &&\r\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\r\n\t\t\t\tsubtract = extra ?\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,\r\n\t\t\t\t\t\tisBorderBox,\r\n\t\t\t\t\t\tstyles\r\n\t\t\t\t\t) :\r\n\t\t\t\t\t0;\r\n\r\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\r\n\t\t\t// faking a content-box to get border and padding (gh-3699)\r\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\r\n\t\t\t\tsubtract -= Math.ceil(\r\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\r\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\r\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\r\n\t\t\t\t\t0.5\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\t// Convert to pixels if value adjustment is needed\r\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\r\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\r\n\r\n\t\t\t\telem.style[ dimension ] = value;\r\n\t\t\t\tvalue = jQuery.css( elem, dimension );\r\n\t\t\t}\r\n\r\n\t\t\treturn setPositiveNumber( elem, value, subtract );\r\n\t\t}\r\n\t};\r\n} );\r\n\r\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\r\n\tfunction( elem, computed ) {\r\n\t\tif ( computed ) {\r\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\r\n\t\t\t\telem.getBoundingClientRect().left -\r\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\r\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\r\n\t\t\t\t\t} )\r\n\t\t\t) + \"px\";\r\n\t\t}\r\n\t}\r\n);\r\n\r\n// These hooks are used by animate to expand properties\r\njQuery.each( {\r\n\tmargin: \"\",\r\n\tpadding: \"\",\r\n\tborder: \"Width\"\r\n}, function( prefix, suffix ) {\r\n\tjQuery.cssHooks[ prefix + suffix ] = {\r\n\t\texpand: function( value ) {\r\n\t\t\tvar i = 0,\r\n\t\t\t\texpanded = {},\r\n\r\n\t\t\t\t// Assumes a single number if not a string\r\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\r\n\r\n\t\t\tfor ( ; i < 4; i++ ) {\r\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\r\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\r\n\t\t\t}\r\n\r\n\t\t\treturn expanded;\r\n\t\t}\r\n\t};\r\n\r\n\tif ( prefix !== \"margin\" ) {\r\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\r\n\t}\r\n} );\r\n\r\njQuery.fn.extend( {\r\n\tcss: function( name, value ) {\r\n\t\treturn access( this, function( elem, name, value ) {\r\n\t\t\tvar styles, len,\r\n\t\t\t\tmap = {},\r\n\t\t\t\ti = 0;\r\n\r\n\t\t\tif ( Array.isArray( name ) ) {\r\n\t\t\t\tstyles = getStyles( elem );\r\n\t\t\t\tlen = name.length;\r\n\r\n\t\t\t\tfor ( ; i < len; i++ ) {\r\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn map;\r\n\t\t\t}\r\n\r\n\t\t\treturn value !== undefined ?\r\n\t\t\t\tjQuery.style( elem, name, value ) :\r\n\t\t\t\tjQuery.css( elem, name );\r\n\t\t}, name, value, arguments.length > 1 );\r\n\t}\r\n} );\r\n\r\n\r\nfunction Tween( elem, options, prop, end, easing ) {\r\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\r\n}\r\njQuery.Tween = Tween;\r\n\r\nTween.prototype = {\r\n\tconstructor: Tween,\r\n\tinit: function( elem, options, prop, end, easing, unit ) {\r\n\t\tthis.elem = elem;\r\n\t\tthis.prop = prop;\r\n\t\tthis.easing = easing || jQuery.easing._default;\r\n\t\tthis.options = options;\r\n\t\tthis.start = this.now = this.cur();\r\n\t\tthis.end = end;\r\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\r\n\t},\r\n\tcur: function() {\r\n\t\tvar hooks = Tween.propHooks[ this.prop ];\r\n\r\n\t\treturn hooks && hooks.get ?\r\n\t\t\thooks.get( this ) :\r\n\t\t\tTween.propHooks._default.get( this );\r\n\t},\r\n\trun: function( percent ) {\r\n\t\tvar eased,\r\n\t\t\thooks = Tween.propHooks[ this.prop ];\r\n\r\n\t\tif ( this.options.duration ) {\r\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\r\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tthis.pos = eased = percent;\r\n\t\t}\r\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\r\n\r\n\t\tif ( this.options.step ) {\r\n\t\t\tthis.options.step.call( this.elem, this.now, this );\r\n\t\t}\r\n\r\n\t\tif ( hooks && hooks.set ) {\r\n\t\t\thooks.set( this );\r\n\t\t} else {\r\n\t\t\tTween.propHooks._default.set( this );\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n};\r\n\r\nTween.prototype.init.prototype = Tween.prototype;\r\n\r\nTween.propHooks = {\r\n\t_default: {\r\n\t\tget: function( tween ) {\r\n\t\t\tvar result;\r\n\r\n\t\t\t// Use a property on the element directly when it is not a DOM element,\r\n\t\t\t// or when there is no matching style property that exists.\r\n\t\t\tif ( tween.elem.nodeType !== 1 ||\r\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\r\n\t\t\t\treturn tween.elem[ tween.prop ];\r\n\t\t\t}\r\n\r\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\r\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\r\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\r\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\r\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\r\n\r\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\r\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\r\n\t\t},\r\n\t\tset: function( tween ) {\r\n\r\n\t\t\t// Use step hook for back compat.\r\n\t\t\t// Use cssHook if its there.\r\n\t\t\t// Use .style if available and use plain properties where available.\r\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\r\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\r\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\r\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\r\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\r\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\r\n\t\t\t} else {\r\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n\r\n// Support: IE <=9 only\r\n// Panic based approach to setting things on disconnected nodes\r\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\r\n\tset: function( tween ) {\r\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\r\n\t\t\ttween.elem[ tween.prop ] = tween.now;\r\n\t\t}\r\n\t}\r\n};\r\n\r\njQuery.easing = {\r\n\tlinear: function( p ) {\r\n\t\treturn p;\r\n\t},\r\n\tswing: function( p ) {\r\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\r\n\t},\r\n\t_default: \"swing\"\r\n};\r\n\r\njQuery.fx = Tween.prototype.init;\r\n\r\n// Back compat <1.8 extension point\r\njQuery.fx.step = {};\r\n\r\n\r\n\r\n\r\nvar\r\n\tfxNow, inProgress,\r\n\trfxtypes = /^(?:toggle|show|hide)$/,\r\n\trrun = /queueHooks$/;\r\n\r\nfunction schedule() {\r\n\tif ( inProgress ) {\r\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\r\n\t\t\twindow.requestAnimationFrame( schedule );\r\n\t\t} else {\r\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\r\n\t\t}\r\n\r\n\t\tjQuery.fx.tick();\r\n\t}\r\n}\r\n\r\n// Animations created synchronously will run synchronously\r\nfunction createFxNow() {\r\n\twindow.setTimeout( function() {\r\n\t\tfxNow = undefined;\r\n\t} );\r\n\treturn ( fxNow = Date.now() );\r\n}\r\n\r\n// Generate parameters to create a standard animation\r\nfunction genFx( type, includeWidth ) {\r\n\tvar which,\r\n\t\ti = 0,\r\n\t\tattrs = { height: type };\r\n\r\n\t// If we include width, step value is 1 to do all cssExpand values,\r\n\t// otherwise step value is 2 to skip over Left and Right\r\n\tincludeWidth = includeWidth ? 1 : 0;\r\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\r\n\t\twhich = cssExpand[ i ];\r\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\r\n\t}\r\n\r\n\tif ( includeWidth ) {\r\n\t\tattrs.opacity = attrs.width = type;\r\n\t}\r\n\r\n\treturn attrs;\r\n}\r\n\r\nfunction createTween( value, prop, animation ) {\r\n\tvar tween,\r\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\r\n\t\tindex = 0,\r\n\t\tlength = collection.length;\r\n\tfor ( ; index < length; index++ ) {\r\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\r\n\r\n\t\t\t// We're done with this property\r\n\t\t\treturn tween;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction defaultPrefilter( elem, props, opts ) {\r\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\r\n\t\tisBox = \"width\" in props || \"height\" in props,\r\n\t\tanim = this,\r\n\t\torig = {},\r\n\t\tstyle = elem.style,\r\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\r\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\r\n\r\n\t// Queue-skipping animations hijack the fx hooks\r\n\tif ( !opts.queue ) {\r\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\r\n\t\tif ( hooks.unqueued == null ) {\r\n\t\t\thooks.unqueued = 0;\r\n\t\t\toldfire = hooks.empty.fire;\r\n\t\t\thooks.empty.fire = function() {\r\n\t\t\t\tif ( !hooks.unqueued ) {\r\n\t\t\t\t\toldfire();\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t\thooks.unqueued++;\r\n\r\n\t\tanim.always( function() {\r\n\r\n\t\t\t// Ensure the complete handler is called before this completes\r\n\t\t\tanim.always( function() {\r\n\t\t\t\thooks.unqueued--;\r\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\r\n\t\t\t\t\thooks.empty.fire();\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\t\t} );\r\n\t}\r\n\r\n\t// Detect show/hide animations\r\n\tfor ( prop in props ) {\r\n\t\tvalue = props[ prop ];\r\n\t\tif ( rfxtypes.test( value ) ) {\r\n\t\t\tdelete props[ prop ];\r\n\t\t\ttoggle = toggle || value === \"toggle\";\r\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\r\n\r\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\r\n\t\t\t\t// there is still data from a stopped show/hide\r\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\r\n\t\t\t\t\thidden = true;\r\n\r\n\t\t\t\t// Ignore all other no-op show/hide data\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\r\n\t\t}\r\n\t}\r\n\r\n\t// Bail out if this is a no-op like .hide().hide()\r\n\tpropTween = !jQuery.isEmptyObject( props );\r\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Restrict \"overflow\" and \"display\" styles during box animations\r\n\tif ( isBox && elem.nodeType === 1 ) {\r\n\r\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\r\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\r\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\r\n\t\t// the overflowX value there.\r\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\r\n\r\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\r\n\t\trestoreDisplay = dataShow && dataShow.display;\r\n\t\tif ( restoreDisplay == null ) {\r\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\r\n\t\t}\r\n\t\tdisplay = jQuery.css( elem, \"display\" );\r\n\t\tif ( display === \"none\" ) {\r\n\t\t\tif ( restoreDisplay ) {\r\n\t\t\t\tdisplay = restoreDisplay;\r\n\t\t\t} else {\r\n\r\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\r\n\t\t\t\tshowHide( [ elem ], true );\r\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\r\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\r\n\t\t\t\tshowHide( [ elem ] );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Animate inline elements as inline-block\r\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\r\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\r\n\r\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\r\n\t\t\t\tif ( !propTween ) {\r\n\t\t\t\t\tanim.done( function() {\r\n\t\t\t\t\t\tstyle.display = restoreDisplay;\r\n\t\t\t\t\t} );\r\n\t\t\t\t\tif ( restoreDisplay == null ) {\r\n\t\t\t\t\t\tdisplay = style.display;\r\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tstyle.display = \"inline-block\";\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif ( opts.overflow ) {\r\n\t\tstyle.overflow = \"hidden\";\r\n\t\tanim.always( function() {\r\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\r\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\r\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\r\n\t\t} );\r\n\t}\r\n\r\n\t// Implement show/hide animations\r\n\tpropTween = false;\r\n\tfor ( prop in orig ) {\r\n\r\n\t\t// General show/hide setup for this element animation\r\n\t\tif ( !propTween ) {\r\n\t\t\tif ( dataShow ) {\r\n\t\t\t\tif ( \"hidden\" in dataShow ) {\r\n\t\t\t\t\thidden = dataShow.hidden;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\r\n\t\t\t}\r\n\r\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\r\n\t\t\tif ( toggle ) {\r\n\t\t\t\tdataShow.hidden = !hidden;\r\n\t\t\t}\r\n\r\n\t\t\t// Show elements before animating them\r\n\t\t\tif ( hidden ) {\r\n\t\t\t\tshowHide( [ elem ], true );\r\n\t\t\t}\r\n\r\n\t\t\t/* eslint-disable no-loop-func */\r\n\r\n\t\t\tanim.done( function() {\r\n\r\n\t\t\t\t/* eslint-enable no-loop-func */\r\n\r\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\r\n\t\t\t\tif ( !hidden ) {\r\n\t\t\t\t\tshowHide( [ elem ] );\r\n\t\t\t\t}\r\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\r\n\t\t\t\tfor ( prop in orig ) {\r\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\t\t}\r\n\r\n\t\t// Per-property setup\r\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\r\n\t\tif ( !( prop in dataShow ) ) {\r\n\t\t\tdataShow[ prop ] = propTween.start;\r\n\t\t\tif ( hidden ) {\r\n\t\t\t\tpropTween.end = propTween.start;\r\n\t\t\t\tpropTween.start = 0;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction propFilter( props, specialEasing ) {\r\n\tvar index, name, easing, value, hooks;\r\n\r\n\t// camelCase, specialEasing and expand cssHook pass\r\n\tfor ( index in props ) {\r\n\t\tname = camelCase( index );\r\n\t\teasing = specialEasing[ name ];\r\n\t\tvalue = props[ index ];\r\n\t\tif ( Array.isArray( value ) ) {\r\n\t\t\teasing = value[ 1 ];\r\n\t\t\tvalue = props[ index ] = value[ 0 ];\r\n\t\t}\r\n\r\n\t\tif ( index !== name ) {\r\n\t\t\tprops[ name ] = value;\r\n\t\t\tdelete props[ index ];\r\n\t\t}\r\n\r\n\t\thooks = jQuery.cssHooks[ name ];\r\n\t\tif ( hooks && \"expand\" in hooks ) {\r\n\t\t\tvalue = hooks.expand( value );\r\n\t\t\tdelete props[ name ];\r\n\r\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\r\n\t\t\t// Reusing 'index' because we have the correct \"name\"\r\n\t\t\tfor ( index in value ) {\r\n\t\t\t\tif ( !( index in props ) ) {\r\n\t\t\t\t\tprops[ index ] = value[ index ];\r\n\t\t\t\t\tspecialEasing[ index ] = easing;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tspecialEasing[ name ] = easing;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction Animation( elem, properties, options ) {\r\n\tvar result,\r\n\t\tstopped,\r\n\t\tindex = 0,\r\n\t\tlength = Animation.prefilters.length,\r\n\t\tdeferred = jQuery.Deferred().always( function() {\r\n\r\n\t\t\t// Don't match elem in the :animated selector\r\n\t\t\tdelete tick.elem;\r\n\t\t} ),\r\n\t\ttick = function() {\r\n\t\t\tif ( stopped ) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tvar currentTime = fxNow || createFxNow(),\r\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\r\n\r\n\t\t\t\t// Support: Android 2.3 only\r\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\r\n\t\t\t\ttemp = remaining / animation.duration || 0,\r\n\t\t\t\tpercent = 1 - temp,\r\n\t\t\t\tindex = 0,\r\n\t\t\t\tlength = animation.tweens.length;\r\n\r\n\t\t\tfor ( ; index < length; index++ ) {\r\n\t\t\t\tanimation.tweens[ index ].run( percent );\r\n\t\t\t}\r\n\r\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\r\n\r\n\t\t\t// If there's more to do, yield\r\n\t\t\tif ( percent < 1 && length ) {\r\n\t\t\t\treturn remaining;\r\n\t\t\t}\r\n\r\n\t\t\t// If this was an empty animation, synthesize a final progress notification\r\n\t\t\tif ( !length ) {\r\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\r\n\t\t\t}\r\n\r\n\t\t\t// Resolve the animation and report its conclusion\r\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\r\n\t\t\treturn false;\r\n\t\t},\r\n\t\tanimation = deferred.promise( {\r\n\t\t\telem: elem,\r\n\t\t\tprops: jQuery.extend( {}, properties ),\r\n\t\t\topts: jQuery.extend( true, {\r\n\t\t\t\tspecialEasing: {},\r\n\t\t\t\teasing: jQuery.easing._default\r\n\t\t\t}, options ),\r\n\t\t\toriginalProperties: properties,\r\n\t\t\toriginalOptions: options,\r\n\t\t\tstartTime: fxNow || createFxNow(),\r\n\t\t\tduration: options.duration,\r\n\t\t\ttweens: [],\r\n\t\t\tcreateTween: function( prop, end ) {\r\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\r\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\r\n\t\t\t\tanimation.tweens.push( tween );\r\n\t\t\t\treturn tween;\r\n\t\t\t},\r\n\t\t\tstop: function( gotoEnd ) {\r\n\t\t\t\tvar index = 0,\r\n\r\n\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// otherwise we skip this part\r\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\r\n\t\t\t\tif ( stopped ) {\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t}\r\n\t\t\t\tstopped = true;\r\n\t\t\t\tfor ( ; index < length; index++ ) {\r\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\r\n\t\t\t\tif ( gotoEnd ) {\r\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\r\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\t\t} ),\r\n\t\tprops = animation.props;\r\n\r\n\tpropFilter( props, animation.opts.specialEasing );\r\n\r\n\tfor ( ; index < length; index++ ) {\r\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\r\n\t\tif ( result ) {\r\n\t\t\tif ( isFunction( result.stop ) ) {\r\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\r\n\t\t\t\t\tresult.stop.bind( result );\r\n\t\t\t}\r\n\t\t\treturn result;\r\n\t\t}\r\n\t}\r\n\r\n\tjQuery.map( props, createTween, animation );\r\n\r\n\tif ( isFunction( animation.opts.start ) ) {\r\n\t\tanimation.opts.start.call( elem, animation );\r\n\t}\r\n\r\n\t// Attach callbacks from options\r\n\tanimation\r\n\t\t.progress( animation.opts.progress )\r\n\t\t.done( animation.opts.done, animation.opts.complete )\r\n\t\t.fail( animation.opts.fail )\r\n\t\t.always( animation.opts.always );\r\n\r\n\tjQuery.fx.timer(\r\n\t\tjQuery.extend( tick, {\r\n\t\t\telem: elem,\r\n\t\t\tanim: animation,\r\n\t\t\tqueue: animation.opts.queue\r\n\t\t} )\r\n\t);\r\n\r\n\treturn animation;\r\n}\r\n\r\njQuery.Animation = jQuery.extend( Animation, {\r\n\r\n\ttweeners: {\r\n\t\t\"*\": [ function( prop, value ) {\r\n\t\t\tvar tween = this.createTween( prop, value );\r\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\r\n\t\t\treturn tween;\r\n\t\t} ]\r\n\t},\r\n\r\n\ttweener: function( props, callback ) {\r\n\t\tif ( isFunction( props ) ) {\r\n\t\t\tcallback = props;\r\n\t\t\tprops = [ \"*\" ];\r\n\t\t} else {\r\n\t\t\tprops = props.match( rnothtmlwhite );\r\n\t\t}\r\n\r\n\t\tvar prop,\r\n\t\t\tindex = 0,\r\n\t\t\tlength = props.length;\r\n\r\n\t\tfor ( ; index < length; index++ ) {\r\n\t\t\tprop = props[ index ];\r\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\r\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\r\n\t\t}\r\n\t},\r\n\r\n\tprefilters: [ defaultPrefilter ],\r\n\r\n\tprefilter: function( callback, prepend ) {\r\n\t\tif ( prepend ) {\r\n\t\t\tAnimation.prefilters.unshift( callback );\r\n\t\t} else {\r\n\t\t\tAnimation.prefilters.push( callback );\r\n\t\t}\r\n\t}\r\n} );\r\n\r\njQuery.speed = function( speed, easing, fn ) {\r\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\r\n\t\tcomplete: fn || !fn && easing ||\r\n\t\t\tisFunction( speed ) && speed,\r\n\t\tduration: speed,\r\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\r\n\t};\r\n\r\n\t// Go to the end state if fx are off\r\n\tif ( jQuery.fx.off ) {\r\n\t\topt.duration = 0;\r\n\r\n\t} else {\r\n\t\tif ( typeof opt.duration !== \"number\" ) {\r\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\r\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\r\n\r\n\t\t\t} else {\r\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\r\n\tif ( opt.queue == null || opt.queue === true ) {\r\n\t\topt.queue = \"fx\";\r\n\t}\r\n\r\n\t// Queueing\r\n\topt.old = opt.complete;\r\n\r\n\topt.complete = function() {\r\n\t\tif ( isFunction( opt.old ) ) {\r\n\t\t\topt.old.call( this );\r\n\t\t}\r\n\r\n\t\tif ( opt.queue ) {\r\n\t\t\tjQuery.dequeue( this, opt.queue );\r\n\t\t}\r\n\t};\r\n\r\n\treturn opt;\r\n};\r\n\r\njQuery.fn.extend( {\r\n\tfadeTo: function( speed, to, easing, callback ) {\r\n\r\n\t\t// Show any hidden elements after setting opacity to 0\r\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\r\n\r\n\t\t\t// Animate to the value specified\r\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\r\n\t},\r\n\tanimate: function( prop, speed, easing, callback ) {\r\n\t\tvar empty = jQuery.isEmptyObject( prop ),\r\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\r\n\t\t\tdoAnimation = function() {\r\n\r\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\r\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\r\n\r\n\t\t\t\t// Empty animations, or finishing resolves immediately\r\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\r\n\t\t\t\t\tanim.stop( true );\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\tdoAnimation.finish = doAnimation;\r\n\r\n\t\treturn empty || optall.queue === false ?\r\n\t\t\tthis.each( doAnimation ) :\r\n\t\t\tthis.queue( optall.queue, doAnimation );\r\n\t},\r\n\tstop: function( type, clearQueue, gotoEnd ) {\r\n\t\tvar stopQueue = function( hooks ) {\r\n\t\t\tvar stop = hooks.stop;\r\n\t\t\tdelete hooks.stop;\r\n\t\t\tstop( gotoEnd );\r\n\t\t};\r\n\r\n\t\tif ( typeof type !== \"string\" ) {\r\n\t\t\tgotoEnd = clearQueue;\r\n\t\t\tclearQueue = type;\r\n\t\t\ttype = undefined;\r\n\t\t}\r\n\t\tif ( clearQueue ) {\r\n\t\t\tthis.queue( type || \"fx\", [] );\r\n\t\t}\r\n\r\n\t\treturn this.each( function() {\r\n\t\t\tvar dequeue = true,\r\n\t\t\t\tindex = type != null && type + \"queueHooks\",\r\n\t\t\t\ttimers = jQuery.timers,\r\n\t\t\t\tdata = dataPriv.get( this );\r\n\r\n\t\t\tif ( index ) {\r\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\r\n\t\t\t\t\tstopQueue( data[ index ] );\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor ( index in data ) {\r\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\r\n\t\t\t\t\t\tstopQueue( data[ index ] );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfor ( index = timers.length; index--; ) {\r\n\t\t\t\tif ( timers[ index ].elem === this &&\r\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\r\n\r\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\r\n\t\t\t\t\tdequeue = false;\r\n\t\t\t\t\ttimers.splice( index, 1 );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Start the next in the queue if the last step wasn't forced.\r\n\t\t\t// Timers currently will call their complete callbacks, which\r\n\t\t\t// will dequeue but only if they were gotoEnd.\r\n\t\t\tif ( dequeue || !gotoEnd ) {\r\n\t\t\t\tjQuery.dequeue( this, type );\r\n\t\t\t}\r\n\t\t} );\r\n\t},\r\n\tfinish: function( type ) {\r\n\t\tif ( type !== false ) {\r\n\t\t\ttype = type || \"fx\";\r\n\t\t}\r\n\t\treturn this.each( function() {\r\n\t\t\tvar index,\r\n\t\t\t\tdata = dataPriv.get( this ),\r\n\t\t\t\tqueue = data[ type + \"queue\" ],\r\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\r\n\t\t\t\ttimers = jQuery.timers,\r\n\t\t\t\tlength = queue ? queue.length : 0;\r\n\r\n\t\t\t// Enable finishing flag on private data\r\n\t\t\tdata.finish = true;\r\n\r\n\t\t\t// Empty the queue first\r\n\t\t\tjQuery.queue( this, type, [] );\r\n\r\n\t\t\tif ( hooks && hooks.stop ) {\r\n\t\t\t\thooks.stop.call( this, true );\r\n\t\t\t}\r\n\r\n\t\t\t// Look for any active animations, and finish them\r\n\t\t\tfor ( index = timers.length; index--; ) {\r\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\r\n\t\t\t\t\ttimers[ index ].anim.stop( true );\r\n\t\t\t\t\ttimers.splice( index, 1 );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Look for any animations in the old queue and finish them\r\n\t\t\tfor ( index = 0; index < length; index++ ) {\r\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\r\n\t\t\t\t\tqueue[ index ].finish.call( this );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Turn off finishing flag\r\n\t\t\tdelete data.finish;\r\n\t\t} );\r\n\t}\r\n} );\r\n\r\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\r\n\tvar cssFn = jQuery.fn[ name ];\r\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\r\n\t\treturn speed == null || typeof speed === \"boolean\" ?\r\n\t\t\tcssFn.apply( this, arguments ) :\r\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\r\n\t};\r\n} );\r\n\r\n// Generate shortcuts for custom animations\r\njQuery.each( {\r\n\tslideDown: genFx( \"show\" ),\r\n\tslideUp: genFx( \"hide\" ),\r\n\tslideToggle: genFx( \"toggle\" ),\r\n\tfadeIn: { opacity: \"show\" },\r\n\tfadeOut: { opacity: \"hide\" },\r\n\tfadeToggle: { opacity: \"toggle\" }\r\n}, function( name, props ) {\r\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\r\n\t\treturn this.animate( props, speed, easing, callback );\r\n\t};\r\n} );\r\n\r\njQuery.timers = [];\r\njQuery.fx.tick = function() {\r\n\tvar timer,\r\n\t\ti = 0,\r\n\t\ttimers = jQuery.timers;\r\n\r\n\tfxNow = Date.now();\r\n\r\n\tfor ( ; i < timers.length; i++ ) {\r\n\t\ttimer = timers[ i ];\r\n\r\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\r\n\t\tif ( !timer() && timers[ i ] === timer ) {\r\n\t\t\ttimers.splice( i--, 1 );\r\n\t\t}\r\n\t}\r\n\r\n\tif ( !timers.length ) {\r\n\t\tjQuery.fx.stop();\r\n\t}\r\n\tfxNow = undefined;\r\n};\r\n\r\njQuery.fx.timer = function( timer ) {\r\n\tjQuery.timers.push( timer );\r\n\tjQuery.fx.start();\r\n};\r\n\r\njQuery.fx.interval = 13;\r\njQuery.fx.start = function() {\r\n\tif ( inProgress ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tinProgress = true;\r\n\tschedule();\r\n};\r\n\r\njQuery.fx.stop = function() {\r\n\tinProgress = null;\r\n};\r\n\r\njQuery.fx.speeds = {\r\n\tslow: 600,\r\n\tfast: 200,\r\n\r\n\t// Default speed\r\n\t_default: 400\r\n};\r\n\r\n\r\n// Based off of the plugin by Clint Helfers, with permission.\r\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\r\njQuery.fn.delay = function( time, type ) {\r\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\r\n\ttype = type || \"fx\";\r\n\r\n\treturn this.queue( type, function( next, hooks ) {\r\n\t\tvar timeout = window.setTimeout( next, time );\r\n\t\thooks.stop = function() {\r\n\t\t\twindow.clearTimeout( timeout );\r\n\t\t};\r\n\t} );\r\n};\r\n\r\n\r\n( function() {\r\n\tvar input = document.createElement( \"input\" ),\r\n\t\tselect = document.createElement( \"select\" ),\r\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\r\n\r\n\tinput.type = \"checkbox\";\r\n\r\n\t// Support: Android <=4.3 only\r\n\t// Default value for a checkbox should be \"on\"\r\n\tsupport.checkOn = input.value !== \"\";\r\n\r\n\t// Support: IE <=11 only\r\n\t// Must access selectedIndex to make default options select\r\n\tsupport.optSelected = opt.selected;\r\n\r\n\t// Support: IE <=11 only\r\n\t// An input loses its value after becoming a radio\r\n\tinput = document.createElement( \"input\" );\r\n\tinput.value = \"t\";\r\n\tinput.type = \"radio\";\r\n\tsupport.radioValue = input.value === \"t\";\r\n} )();\r\n\r\n\r\nvar boolHook,\r\n\tattrHandle = jQuery.expr.attrHandle;\r\n\r\njQuery.fn.extend( {\r\n\tattr: function( name, value ) {\r\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\r\n\t},\r\n\r\n\tremoveAttr: function( name ) {\r\n\t\treturn this.each( function() {\r\n\t\t\tjQuery.removeAttr( this, name );\r\n\t\t} );\r\n\t}\r\n} );\r\n\r\njQuery.extend( {\r\n\tattr: function( elem, name, value ) {\r\n\t\tvar ret, hooks,\r\n\t\t\tnType = elem.nodeType;\r\n\r\n\t\t// Don't get/set attributes on text, comment and attribute nodes\r\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Fallback to prop when attributes are not supported\r\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\r\n\t\t\treturn jQuery.prop( elem, name, value );\r\n\t\t}\r\n\r\n\t\t// Attribute hooks are determined by the lowercase version\r\n\t\t// Grab necessary hook if one is defined\r\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\r\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\r\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\r\n\t\t}\r\n\r\n\t\tif ( value !== undefined ) {\r\n\t\t\tif ( value === null ) {\r\n\t\t\t\tjQuery.removeAttr( elem, name );\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif ( hooks && \"set\" in hooks &&\r\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\r\n\t\t\t\treturn ret;\r\n\t\t\t}\r\n\r\n\t\t\telem.setAttribute( name, value + \"\" );\r\n\t\t\treturn value;\r\n\t\t}\r\n\r\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\r\n\t\t\treturn ret;\r\n\t\t}\r\n\r\n\t\tret = jQuery.find.attr( elem, name );\r\n\r\n\t\t// Non-existent attributes return null, we normalize to undefined\r\n\t\treturn ret == null ? undefined : ret;\r\n\t},\r\n\r\n\tattrHooks: {\r\n\t\ttype: {\r\n\t\t\tset: function( elem, value ) {\r\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\r\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\r\n\t\t\t\t\tvar val = elem.value;\r\n\t\t\t\t\telem.setAttribute( \"type\", value );\r\n\t\t\t\t\tif ( val ) {\r\n\t\t\t\t\t\telem.value = val;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tremoveAttr: function( elem, value ) {\r\n\t\tvar name,\r\n\t\t\ti = 0,\r\n\r\n\t\t\t// Attribute names can contain non-HTML whitespace characters\r\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\r\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\r\n\r\n\t\tif ( attrNames && elem.nodeType === 1 ) {\r\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\r\n\t\t\t\telem.removeAttribute( name );\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n} );\r\n\r\n// Hooks for boolean attributes\r\nboolHook = {\r\n\tset: function( elem, value, name ) {\r\n\t\tif ( value === false ) {\r\n\r\n\t\t\t// Remove boolean attributes when set to false\r\n\t\t\tjQuery.removeAttr( elem, name );\r\n\t\t} else {\r\n\t\t\telem.setAttribute( name, name );\r\n\t\t}\r\n\t\treturn name;\r\n\t}\r\n};\r\n\r\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\r\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\r\n\r\n\tattrHandle[ name ] = function( elem, name, isXML ) {\r\n\t\tvar ret, handle,\r\n\t\t\tlowercaseName = name.toLowerCase();\r\n\r\n\t\tif ( !isXML ) {\r\n\r\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\r\n\t\t\thandle = attrHandle[ lowercaseName ];\r\n\t\t\tattrHandle[ lowercaseName ] = ret;\r\n\t\t\tret = getter( elem, name, isXML ) != null ?\r\n\t\t\t\tlowercaseName :\r\n\t\t\t\tnull;\r\n\t\t\tattrHandle[ lowercaseName ] = handle;\r\n\t\t}\r\n\t\treturn ret;\r\n\t};\r\n} );\r\n\r\n\r\n\r\n\r\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\r\n\trclickable = /^(?:a|area)$/i;\r\n\r\njQuery.fn.extend( {\r\n\tprop: function( name, value ) {\r\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\r\n\t},\r\n\r\n\tremoveProp: function( name ) {\r\n\t\treturn this.each( function() {\r\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\r\n\t\t} );\r\n\t}\r\n} );\r\n\r\njQuery.extend( {\r\n\tprop: function( elem, name, value ) {\r\n\t\tvar ret, hooks,\r\n\t\t\tnType = elem.nodeType;\r\n\r\n\t\t// Don't get/set properties on text, comment and attribute nodes\r\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\r\n\r\n\t\t\t// Fix name and attach hooks\r\n\t\t\tname = jQuery.propFix[ name ] || name;\r\n\t\t\thooks = jQuery.propHooks[ name ];\r\n\t\t}\r\n\r\n\t\tif ( value !== undefined ) {\r\n\t\t\tif ( hooks && \"set\" in hooks &&\r\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\r\n\t\t\t\treturn ret;\r\n\t\t\t}\r\n\r\n\t\t\treturn ( elem[ name ] = value );\r\n\t\t}\r\n\r\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\r\n\t\t\treturn ret;\r\n\t\t}\r\n\r\n\t\treturn elem[ name ];\r\n\t},\r\n\r\n\tpropHooks: {\r\n\t\ttabIndex: {\r\n\t\t\tget: function( elem ) {\r\n\r\n\t\t\t\t// Support: IE <=9 - 11 only\r\n\t\t\t\t// elem.tabIndex doesn't always return the\r\n\t\t\t\t// correct value when it hasn't been explicitly set\r\n\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// Use proper attribute retrieval(#12072)\r\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\r\n\r\n\t\t\t\tif ( tabindex ) {\r\n\t\t\t\t\treturn parseInt( tabindex, 10 );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\r\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\r\n\t\t\t\t\telem.href\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn -1;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tpropFix: {\r\n\t\t\"for\": \"htmlFor\",\r\n\t\t\"class\": \"className\"\r\n\t}\r\n} );\r\n\r\n// Support: IE <=11 only\r\n// Accessing the selectedIndex property\r\n// forces the browser to respect setting selected\r\n// on the option\r\n// The getter ensures a default option is selected\r\n// when in an optgroup\r\n// eslint rule \"no-unused-expressions\" is disabled for this code\r\n// since it considers such accessions noop\r\nif ( !support.optSelected ) {\r\n\tjQuery.propHooks.selected = {\r\n\t\tget: function( elem ) {\r\n\r\n\t\t\t/* eslint no-unused-expressions: \"off\" */\r\n\r\n\t\t\tvar parent = elem.parentNode;\r\n\t\t\tif ( parent && parent.parentNode ) {\r\n\t\t\t\tparent.parentNode.selectedIndex;\r\n\t\t\t}\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tset: function( elem ) {\r\n\r\n\t\t\t/* eslint no-unused-expressions: \"off\" */\r\n\r\n\t\t\tvar parent = elem.parentNode;\r\n\t\t\tif ( parent ) {\r\n\t\t\t\tparent.selectedIndex;\r\n\r\n\t\t\t\tif ( parent.parentNode ) {\r\n\t\t\t\t\tparent.parentNode.selectedIndex;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}\r\n\r\njQuery.each( [\r\n\t\"tabIndex\",\r\n\t\"readOnly\",\r\n\t\"maxLength\",\r\n\t\"cellSpacing\",\r\n\t\"cellPadding\",\r\n\t\"rowSpan\",\r\n\t\"colSpan\",\r\n\t\"useMap\",\r\n\t\"frameBorder\",\r\n\t\"contentEditable\"\r\n], function() {\r\n\tjQuery.propFix[ this.toLowerCase() ] = this;\r\n} );\r\n\r\n\r\n\r\n\r\n\t// Strip and collapse whitespace according to HTML spec\r\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\r\n\tfunction stripAndCollapse( value ) {\r\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\r\n\t\treturn tokens.join( \" \" );\r\n\t}\r\n\r\n\r\nfunction getClass( elem ) {\r\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\r\n}\r\n\r\nfunction classesToArray( value ) {\r\n\tif ( Array.isArray( value ) ) {\r\n\t\treturn value;\r\n\t}\r\n\tif ( typeof value === \"string\" ) {\r\n\t\treturn value.match( rnothtmlwhite ) || [];\r\n\t}\r\n\treturn [];\r\n}\r\n\r\njQuery.fn.extend( {\r\n\taddClass: function( value ) {\r\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\r\n\t\t\ti = 0;\r\n\r\n\t\tif ( isFunction( value ) ) {\r\n\t\t\treturn this.each( function( j ) {\r\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\r\n\t\t\t} );\r\n\t\t}\r\n\r\n\t\tclasses = classesToArray( value );\r\n\r\n\t\tif ( classes.length ) {\r\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\r\n\t\t\t\tcurValue = getClass( elem );\r\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\r\n\r\n\t\t\t\tif ( cur ) {\r\n\t\t\t\t\tj = 0;\r\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\r\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\r\n\t\t\t\t\t\t\tcur += clazz + \" \";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\r\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\r\n\t\t\t\t\tif ( curValue !== finalValue ) {\r\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tremoveClass: function( value ) {\r\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\r\n\t\t\ti = 0;\r\n\r\n\t\tif ( isFunction( value ) ) {\r\n\t\t\treturn this.each( function( j ) {\r\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\r\n\t\t\t} );\r\n\t\t}\r\n\r\n\t\tif ( !arguments.length ) {\r\n\t\t\treturn this.attr( \"class\", \"\" );\r\n\t\t}\r\n\r\n\t\tclasses = classesToArray( value );\r\n\r\n\t\tif ( classes.length ) {\r\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\r\n\t\t\t\tcurValue = getClass( elem );\r\n\r\n\t\t\t\t// This expression is here for better compressibility (see addClass)\r\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\r\n\r\n\t\t\t\tif ( cur ) {\r\n\t\t\t\t\tj = 0;\r\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\r\n\r\n\t\t\t\t\t\t// Remove *all* instances\r\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\r\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\r\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\r\n\t\t\t\t\tif ( curValue !== finalValue ) {\r\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\ttoggleClass: function( value, stateVal ) {\r\n\t\tvar type = typeof value,\r\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\r\n\r\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\r\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\r\n\t\t}\r\n\r\n\t\tif ( isFunction( value ) ) {\r\n\t\t\treturn this.each( function( i ) {\r\n\t\t\t\tjQuery( this ).toggleClass(\r\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\r\n\t\t\t\t\tstateVal\r\n\t\t\t\t);\r\n\t\t\t} );\r\n\t\t}\r\n\r\n\t\treturn this.each( function() {\r\n\t\t\tvar className, i, self, classNames;\r\n\r\n\t\t\tif ( isValidValue ) {\r\n\r\n\t\t\t\t// Toggle individual class names\r\n\t\t\t\ti = 0;\r\n\t\t\t\tself = jQuery( this );\r\n\t\t\t\tclassNames = classesToArray( value );\r\n\r\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\r\n\r\n\t\t\t\t\t// Check each className given, space separated list\r\n\t\t\t\t\tif ( self.hasClass( className ) ) {\r\n\t\t\t\t\t\tself.removeClass( className );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tself.addClass( className );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t// Toggle whole class name\r\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\r\n\t\t\t\tclassName = getClass( this );\r\n\t\t\t\tif ( className ) {\r\n\r\n\t\t\t\t\t// Store className if set\r\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// If the element has a class name or if we're passed `false`,\r\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\r\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\r\n\t\t\t\t// falling back to the empty string if nothing was stored.\r\n\t\t\t\tif ( this.setAttribute ) {\r\n\t\t\t\t\tthis.setAttribute( \"class\",\r\n\t\t\t\t\t\tclassName || value === false ?\r\n\t\t\t\t\t\t\t\"\" :\r\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} );\r\n\t},\r\n\r\n\thasClass: function( selector ) {\r\n\t\tvar className, elem,\r\n\t\t\ti = 0;\r\n\r\n\t\tclassName = \" \" + selector + \" \";\r\n\t\twhile ( ( elem = this[ i++ ] ) ) {\r\n\t\t\tif ( elem.nodeType === 1 &&\r\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n} );\r\n\r\n\r\n\r\n\r\nvar rreturn = /\\r/g;\r\n\r\njQuery.fn.extend( {\r\n\tval: function( value ) {\r\n\t\tvar hooks, ret, valueIsFunction,\r\n\t\t\telem = this[ 0 ];\r\n\r\n\t\tif ( !arguments.length ) {\r\n\t\t\tif ( elem ) {\r\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\r\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\r\n\r\n\t\t\t\tif ( hooks &&\r\n\t\t\t\t\t\"get\" in hooks &&\r\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn ret;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tret = elem.value;\r\n\r\n\t\t\t\t// Handle most common string cases\r\n\t\t\t\tif ( typeof ret === \"string\" ) {\r\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Handle cases where value is null/undef or number\r\n\t\t\t\treturn ret == null ? \"\" : ret;\r\n\t\t\t}\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvalueIsFunction = isFunction( value );\r\n\r\n\t\treturn this.each( function( i ) {\r\n\t\t\tvar val;\r\n\r\n\t\t\tif ( this.nodeType !== 1 ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif ( valueIsFunction ) {\r\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\r\n\t\t\t} else {\r\n\t\t\t\tval = value;\r\n\t\t\t}\r\n\r\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\r\n\t\t\tif ( val == null ) {\r\n\t\t\t\tval = \"\";\r\n\r\n\t\t\t} else if ( typeof val === \"number\" ) {\r\n\t\t\t\tval += \"\";\r\n\r\n\t\t\t} else if ( Array.isArray( val ) ) {\r\n\t\t\t\tval = jQuery.map( val, function( value ) {\r\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\r\n\t\t\t\t} );\r\n\t\t\t}\r\n\r\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\r\n\r\n\t\t\t// If set returns undefined, fall back to normal setting\r\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\r\n\t\t\t\tthis.value = val;\r\n\t\t\t}\r\n\t\t} );\r\n\t}\r\n} );\r\n\r\njQuery.extend( {\r\n\tvalHooks: {\r\n\t\toption: {\r\n\t\t\tget: function( elem ) {\r\n\r\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\r\n\t\t\t\treturn val != null ?\r\n\t\t\t\t\tval :\r\n\r\n\t\t\t\t\t// Support: IE <=10 - 11 only\r\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\r\n\t\t\t\t\t// Strip and collapse whitespace\r\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\r\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\r\n\t\t\t}\r\n\t\t},\r\n\t\tselect: {\r\n\t\t\tget: function( elem ) {\r\n\t\t\t\tvar value, option, i,\r\n\t\t\t\t\toptions = elem.options,\r\n\t\t\t\t\tindex = elem.selectedIndex,\r\n\t\t\t\t\tone = elem.type === \"select-one\",\r\n\t\t\t\t\tvalues = one ? null : [],\r\n\t\t\t\t\tmax = one ? index + 1 : options.length;\r\n\r\n\t\t\t\tif ( index < 0 ) {\r\n\t\t\t\t\ti = max;\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\ti = one ? index : 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Loop through all the selected options\r\n\t\t\t\tfor ( ; i < max; i++ ) {\r\n\t\t\t\t\toption = options[ i ];\r\n\r\n\t\t\t\t\t// Support: IE <=9 only\r\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\r\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\r\n\r\n\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!option.disabled &&\r\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\r\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\r\n\r\n\t\t\t\t\t\t// Get the specific value for the option\r\n\t\t\t\t\t\tvalue = jQuery( option ).val();\r\n\r\n\t\t\t\t\t\t// We don't need an array for one selects\r\n\t\t\t\t\t\tif ( one ) {\r\n\t\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Multi-Selects return an array\r\n\t\t\t\t\t\tvalues.push( value );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn values;\r\n\t\t\t},\r\n\r\n\t\t\tset: function( elem, value ) {\r\n\t\t\t\tvar optionSet, option,\r\n\t\t\t\t\toptions = elem.options,\r\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\r\n\t\t\t\t\ti = options.length;\r\n\r\n\t\t\t\twhile ( i-- ) {\r\n\t\t\t\t\toption = options[ i ];\r\n\r\n\t\t\t\t\t/* eslint-disable no-cond-assign */\r\n\r\n\t\t\t\t\tif ( option.selected =\r\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\toptionSet = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* eslint-enable no-cond-assign */\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\r\n\t\t\t\tif ( !optionSet ) {\r\n\t\t\t\t\telem.selectedIndex = -1;\r\n\t\t\t\t}\r\n\t\t\t\treturn values;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n} );\r\n\r\n// Radios and checkboxes getter/setter\r\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\r\n\tjQuery.valHooks[ this ] = {\r\n\t\tset: function( elem, value ) {\r\n\t\t\tif ( Array.isArray( value ) ) {\r\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\tif ( !support.checkOn ) {\r\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\r\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\r\n\t\t};\r\n\t}\r\n} );\r\n\r\n\r\n\r\n\r\n// Return jQuery for attributes-only inclusion\r\n\r\n\r\nsupport.focusin = \"onfocusin\" in window;\r\n\r\n\r\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\r\n\tstopPropagationCallback = function( e ) {\r\n\t\te.stopPropagation();\r\n\t};\r\n\r\njQuery.extend( jQuery.event, {\r\n\r\n\ttrigger: function( event, data, elem, onlyHandlers ) {\r\n\r\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\r\n\t\t\teventPath = [ elem || document ],\r\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\r\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\r\n\r\n\t\tcur = lastElement = tmp = elem = elem || document;\r\n\r\n\t\t// Don't do events on text and comment nodes\r\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\r\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\r\n\r\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\r\n\t\t\tnamespaces = type.split( \".\" );\r\n\t\t\ttype = namespaces.shift();\r\n\t\t\tnamespaces.sort();\r\n\t\t}\r\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\r\n\r\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\r\n\t\tevent = event[ jQuery.expando ] ?\r\n\t\t\tevent :\r\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\r\n\r\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\r\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\r\n\t\tevent.namespace = namespaces.join( \".\" );\r\n\t\tevent.rnamespace = event.namespace ?\r\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\r\n\t\t\tnull;\r\n\r\n\t\t// Clean up the event in case it is being reused\r\n\t\tevent.result = undefined;\r\n\t\tif ( !event.target ) {\r\n\t\t\tevent.target = elem;\r\n\t\t}\r\n\r\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\r\n\t\tdata = data == null ?\r\n\t\t\t[ event ] :\r\n\t\t\tjQuery.makeArray( data, [ event ] );\r\n\r\n\t\t// Allow special events to draw outside the lines\r\n\t\tspecial = jQuery.event.special[ type ] || {};\r\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\r\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\r\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\r\n\r\n\t\t\tbubbleType = special.delegateType || type;\r\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\r\n\t\t\t\tcur = cur.parentNode;\r\n\t\t\t}\r\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\r\n\t\t\t\teventPath.push( cur );\r\n\t\t\t\ttmp = cur;\r\n\t\t\t}\r\n\r\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\r\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\r\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Fire handlers on the event path\r\n\t\ti = 0;\r\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\r\n\t\t\tlastElement = cur;\r\n\t\t\tevent.type = i > 1 ?\r\n\t\t\t\tbubbleType :\r\n\t\t\t\tspecial.bindType || type;\r\n\r\n\t\t\t// jQuery handler\r\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\r\n\t\t\t\tdataPriv.get( cur, \"handle\" );\r\n\t\t\tif ( handle ) {\r\n\t\t\t\thandle.apply( cur, data );\r\n\t\t\t}\r\n\r\n\t\t\t// Native handler\r\n\t\t\thandle = ontype && cur[ ontype ];\r\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\r\n\t\t\t\tevent.result = handle.apply( cur, data );\r\n\t\t\t\tif ( event.result === false ) {\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tevent.type = type;\r\n\r\n\t\t// If nobody prevented the default action, do it now\r\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\r\n\r\n\t\t\tif ( ( !special._default ||\r\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\r\n\t\t\t\tacceptData( elem ) ) {\r\n\r\n\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// Don't do default actions on window, that's where global variables be (#6170)\r\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\r\n\r\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\r\n\t\t\t\t\ttmp = elem[ ontype ];\r\n\r\n\t\t\t\t\tif ( tmp ) {\r\n\t\t\t\t\t\telem[ ontype ] = null;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\r\n\t\t\t\t\tjQuery.event.triggered = type;\r\n\r\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\r\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\telem[ type ]();\r\n\r\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\r\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tjQuery.event.triggered = undefined;\r\n\r\n\t\t\t\t\tif ( tmp ) {\r\n\t\t\t\t\t\telem[ ontype ] = tmp;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn event.result;\r\n\t},\r\n\r\n\t// Piggyback on a donor event to simulate a different one\r\n\t// Used only for `focus(in | out)` events\r\n\tsimulate: function( type, elem, event ) {\r\n\t\tvar e = jQuery.extend(\r\n\t\t\tnew jQuery.Event(),\r\n\t\t\tevent,\r\n\t\t\t{\r\n\t\t\t\ttype: type,\r\n\t\t\t\tisSimulated: true\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tjQuery.event.trigger( e, null, elem );\r\n\t}\r\n\r\n} );\r\n\r\njQuery.fn.extend( {\r\n\r\n\ttrigger: function( type, data ) {\r\n\t\treturn this.each( function() {\r\n\t\t\tjQuery.event.trigger( type, data, this );\r\n\t\t} );\r\n\t},\r\n\ttriggerHandler: function( type, data ) {\r\n\t\tvar elem = this[ 0 ];\r\n\t\tif ( elem ) {\r\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\r\n\t\t}\r\n\t}\r\n} );\r\n\r\n\r\n// Support: Firefox <=44\r\n// Firefox doesn't have focus(in | out) events\r\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\r\n//\r\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\r\n// focus(in | out) events fire after focus & blur events,\r\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\r\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\r\nif ( !support.focusin ) {\r\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\r\n\r\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\r\n\t\tvar handler = function( event ) {\r\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\r\n\t\t};\r\n\r\n\t\tjQuery.event.special[ fix ] = {\r\n\t\t\tsetup: function() {\r\n\r\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\r\n\t\t\t\t// (via `this.document`) & document (via `this`).\r\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\r\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\r\n\r\n\t\t\t\tif ( !attaches ) {\r\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\r\n\t\t\t\t}\r\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\r\n\t\t\t},\r\n\t\t\tteardown: function() {\r\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\r\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\r\n\r\n\t\t\t\tif ( !attaches ) {\r\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\r\n\t\t\t\t\tdataPriv.remove( doc, fix );\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t} );\r\n}\r\nvar location = window.location;\r\n\r\nvar nonce = { guid: Date.now() };\r\n\r\nvar rquery = ( /\\?/ );\r\n\r\n\r\n\r\n// Cross-browser xml parsing\r\njQuery.parseXML = function( data ) {\r\n\tvar xml, parserErrorElem;\r\n\tif ( !data || typeof data !== \"string\" ) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\t// Support: IE 9 - 11 only\r\n\t// IE throws on parseFromString with invalid input.\r\n\ttry {\r\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\r\n\t} catch ( e ) {}\r\n\r\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\r\n\tif ( !xml || parserErrorElem ) {\r\n\t\tjQuery.error( \"Invalid XML: \" + (\r\n\t\t\tparserErrorElem ?\r\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\r\n\t\t\t\t\treturn el.textContent;\r\n\t\t\t\t} ).join( \"\\n\" ) :\r\n\t\t\t\tdata\r\n\t\t) );\r\n\t}\r\n\treturn xml;\r\n};\r\n\r\n\r\nvar\r\n\trbracket = /\\[\\]$/,\r\n\trCRLF = /\\r?\\n/g,\r\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\r\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\r\n\r\nfunction buildParams( prefix, obj, traditional, add ) {\r\n\tvar name;\r\n\r\n\tif ( Array.isArray( obj ) ) {\r\n\r\n\t\t// Serialize array item.\r\n\t\tjQuery.each( obj, function( i, v ) {\r\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\r\n\r\n\t\t\t\t// Treat each array item as a scalar.\r\n\t\t\t\tadd( prefix, v );\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\r\n\t\t\t\tbuildParams(\r\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\r\n\t\t\t\t\tv,\r\n\t\t\t\t\ttraditional,\r\n\t\t\t\t\tadd\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t} );\r\n\r\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\r\n\r\n\t\t// Serialize object item.\r\n\t\tfor ( name in obj ) {\r\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\r\n\t\t}\r\n\r\n\t} else {\r\n\r\n\t\t// Serialize scalar item.\r\n\t\tadd( prefix, obj );\r\n\t}\r\n}\r\n\r\n// Serialize an array of form elements or a set of\r\n// key/values into a query string\r\njQuery.param = function( a, traditional ) {\r\n\tvar prefix,\r\n\t\ts = [],\r\n\t\tadd = function( key, valueOrFunction ) {\r\n\r\n\t\t\t// If value is a function, invoke it and use its return value\r\n\t\t\tvar value = isFunction( valueOrFunction ) ?\r\n\t\t\t\tvalueOrFunction() :\r\n\t\t\t\tvalueOrFunction;\r\n\r\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\r\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\r\n\t\t};\r\n\r\n\tif ( a == null ) {\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\t// If an array was passed in, assume that it is an array of form elements.\r\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\r\n\r\n\t\t// Serialize the form elements\r\n\t\tjQuery.each( a, function() {\r\n\t\t\tadd( this.name, this.value );\r\n\t\t} );\r\n\r\n\t} else {\r\n\r\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\r\n\t\t// did it), otherwise encode params recursively.\r\n\t\tfor ( prefix in a ) {\r\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\r\n\t\t}\r\n\t}\r\n\r\n\t// Return the resulting serialization\r\n\treturn s.join( \"&\" );\r\n};\r\n\r\njQuery.fn.extend( {\r\n\tserialize: function() {\r\n\t\treturn jQuery.param( this.serializeArray() );\r\n\t},\r\n\tserializeArray: function() {\r\n\t\treturn this.map( function() {\r\n\r\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\r\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\r\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\r\n\t\t} ).filter( function() {\r\n\t\t\tvar type = this.type;\r\n\r\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\r\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\r\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\r\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\r\n\t\t} ).map( function( _i, elem ) {\r\n\t\t\tvar val = jQuery( this ).val();\r\n\r\n\t\t\tif ( val == null ) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\tif ( Array.isArray( val ) ) {\r\n\t\t\t\treturn jQuery.map( val, function( val ) {\r\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\r\n\t\t\t\t} );\r\n\t\t\t}\r\n\r\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\r\n\t\t} ).get();\r\n\t}\r\n} );\r\n\r\n\r\nvar\r\n\tr20 = /%20/g,\r\n\trhash = /#.*$/,\r\n\trantiCache = /([?&])_=[^&]*/,\r\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\r\n\r\n\t// #7653, #8125, #8152: local protocol detection\r\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\r\n\trnoContent = /^(?:GET|HEAD)$/,\r\n\trprotocol = /^\\/\\//,\r\n\r\n\t/* Prefilters\r\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\r\n\t * 2) These are called:\r\n\t * - BEFORE asking for a transport\r\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\r\n\t * 3) key is the dataType\r\n\t * 4) the catchall symbol \"*\" can be used\r\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\r\n\t */\r\n\tprefilters = {},\r\n\r\n\t/* Transports bindings\r\n\t * 1) key is the dataType\r\n\t * 2) the catchall symbol \"*\" can be used\r\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\r\n\t */\r\n\ttransports = {},\r\n\r\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\r\n\tallTypes = \"*/\".concat( \"*\" ),\r\n\r\n\t// Anchor tag for parsing the document origin\r\n\toriginAnchor = document.createElement( \"a\" );\r\n\r\noriginAnchor.href = location.href;\r\n\r\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\r\nfunction addToPrefiltersOrTransports( structure ) {\r\n\r\n\t// dataTypeExpression is optional and defaults to \"*\"\r\n\treturn function( dataTypeExpression, func ) {\r\n\r\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\r\n\t\t\tfunc = dataTypeExpression;\r\n\t\t\tdataTypeExpression = \"*\";\r\n\t\t}\r\n\r\n\t\tvar dataType,\r\n\t\t\ti = 0,\r\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\r\n\r\n\t\tif ( isFunction( func ) ) {\r\n\r\n\t\t\t// For each dataType in the dataTypeExpression\r\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\r\n\r\n\t\t\t\t// Prepend if requested\r\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\r\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\r\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\r\n\r\n\t\t\t\t// Otherwise append\r\n\t\t\t\t} else {\r\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}\r\n\r\n// Base inspection function for prefilters and transports\r\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\r\n\r\n\tvar inspected = {},\r\n\t\tseekingTransport = ( structure === transports );\r\n\r\n\tfunction inspect( dataType ) {\r\n\t\tvar selected;\r\n\t\tinspected[ dataType ] = true;\r\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\r\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\r\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\r\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\r\n\r\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\r\n\t\t\t\tinspect( dataTypeOrTransport );\r\n\t\t\t\treturn false;\r\n\t\t\t} else if ( seekingTransport ) {\r\n\t\t\t\treturn !( selected = dataTypeOrTransport );\r\n\t\t\t}\r\n\t\t} );\r\n\t\treturn selected;\r\n\t}\r\n\r\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\r\n}\r\n\r\n// A special extend for ajax options\r\n// that takes \"flat\" options (not to be deep extended)\r\n// Fixes #9887\r\nfunction ajaxExtend( target, src ) {\r\n\tvar key, deep,\r\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\r\n\r\n\tfor ( key in src ) {\r\n\t\tif ( src[ key ] !== undefined ) {\r\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\r\n\t\t}\r\n\t}\r\n\tif ( deep ) {\r\n\t\tjQuery.extend( true, target, deep );\r\n\t}\r\n\r\n\treturn target;\r\n}\r\n\r\n/* Handles responses to an ajax request:\r\n * - finds the right dataType (mediates between content-type and expected dataType)\r\n * - returns the corresponding response\r\n */\r\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\r\n\r\n\tvar ct, type, finalDataType, firstDataType,\r\n\t\tcontents = s.contents,\r\n\t\tdataTypes = s.dataTypes;\r\n\r\n\t// Remove auto dataType and get content-type in the process\r\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\r\n\t\tdataTypes.shift();\r\n\t\tif ( ct === undefined ) {\r\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\r\n\t\t}\r\n\t}\r\n\r\n\t// Check if we're dealing with a known content-type\r\n\tif ( ct ) {\r\n\t\tfor ( type in contents ) {\r\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\r\n\t\t\t\tdataTypes.unshift( type );\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Check to see if we have a response for the expected dataType\r\n\tif ( dataTypes[ 0 ] in responses ) {\r\n\t\tfinalDataType = dataTypes[ 0 ];\r\n\t} else {\r\n\r\n\t\t// Try convertible dataTypes\r\n\t\tfor ( type in responses ) {\r\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\r\n\t\t\t\tfinalDataType = type;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tif ( !firstDataType ) {\r\n\t\t\t\tfirstDataType = type;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Or just use first one\r\n\t\tfinalDataType = finalDataType || firstDataType;\r\n\t}\r\n\r\n\t// If we found a dataType\r\n\t// We add the dataType to the list if needed\r\n\t// and return the corresponding response\r\n\tif ( finalDataType ) {\r\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\r\n\t\t\tdataTypes.unshift( finalDataType );\r\n\t\t}\r\n\t\treturn responses[ finalDataType ];\r\n\t}\r\n}\r\n\r\n/* Chain conversions given the request and the original response\r\n * Also sets the responseXXX fields on the jqXHR instance\r\n */\r\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\r\n\tvar conv2, current, conv, tmp, prev,\r\n\t\tconverters = {},\r\n\r\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\r\n\t\tdataTypes = s.dataTypes.slice();\r\n\r\n\t// Create converters map with lowercased keys\r\n\tif ( dataTypes[ 1 ] ) {\r\n\t\tfor ( conv in s.converters ) {\r\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\r\n\t\t}\r\n\t}\r\n\r\n\tcurrent = dataTypes.shift();\r\n\r\n\t// Convert to each sequential dataType\r\n\twhile ( current ) {\r\n\r\n\t\tif ( s.responseFields[ current ] ) {\r\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\r\n\t\t}\r\n\r\n\t\t// Apply the dataFilter if provided\r\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\r\n\t\t\tresponse = s.dataFilter( response, s.dataType );\r\n\t\t}\r\n\r\n\t\tprev = current;\r\n\t\tcurrent = dataTypes.shift();\r\n\r\n\t\tif ( current ) {\r\n\r\n\t\t\t// There's only work to do if current dataType is non-auto\r\n\t\t\tif ( current === \"*\" ) {\r\n\r\n\t\t\t\tcurrent = prev;\r\n\r\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\r\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\r\n\r\n\t\t\t\t// Seek a direct converter\r\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\r\n\r\n\t\t\t\t// If none found, seek a pair\r\n\t\t\t\tif ( !conv ) {\r\n\t\t\t\t\tfor ( conv2 in converters ) {\r\n\r\n\t\t\t\t\t\t// If conv2 outputs current\r\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\r\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\r\n\r\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\r\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\r\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\r\n\t\t\t\t\t\t\tif ( conv ) {\r\n\r\n\t\t\t\t\t\t\t\t// Condense equivalence converters\r\n\t\t\t\t\t\t\t\tif ( conv === true ) {\r\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\r\n\r\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\r\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\r\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\r\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\r\n\t\t\t\t\t\t\t\t}\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\t\t\t\t}\r\n\r\n\t\t\t\t// Apply converter (if not an equivalence)\r\n\t\t\t\tif ( conv !== true ) {\r\n\r\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\r\n\t\t\t\t\tif ( conv && s.throws ) {\r\n\t\t\t\t\t\tresponse = conv( response );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tresponse = conv( response );\r\n\t\t\t\t\t\t} catch ( e ) {\r\n\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\r\n\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};\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}\r\n\t}\r\n\r\n\treturn { state: \"success\", data: response };\r\n}\r\n\r\njQuery.extend( {\r\n\r\n\t// Counter for holding the number of active queries\r\n\tactive: 0,\r\n\r\n\t// Last-Modified header cache for next request\r\n\tlastModified: {},\r\n\tetag: {},\r\n\r\n\tajaxSettings: {\r\n\t\turl: location.href,\r\n\t\ttype: \"GET\",\r\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\r\n\t\tglobal: true,\r\n\t\tprocessData: true,\r\n\t\tasync: true,\r\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\r\n\r\n\t\t/*\r\n\t\ttimeout: 0,\r\n\t\tdata: null,\r\n\t\tdataType: null,\r\n\t\tusername: null,\r\n\t\tpassword: null,\r\n\t\tcache: null,\r\n\t\tthrows: false,\r\n\t\ttraditional: false,\r\n\t\theaders: {},\r\n\t\t*/\r\n\r\n\t\taccepts: {\r\n\t\t\t\"*\": allTypes,\r\n\t\t\ttext: \"text/plain\",\r\n\t\t\thtml: \"text/html\",\r\n\t\t\txml: \"application/xml, text/xml\",\r\n\t\t\tjson: \"application/json, text/javascript\"\r\n\t\t},\r\n\r\n\t\tcontents: {\r\n\t\t\txml: /\\bxml\\b/,\r\n\t\t\thtml: /\\bhtml/,\r\n\t\t\tjson: /\\bjson\\b/\r\n\t\t},\r\n\r\n\t\tresponseFields: {\r\n\t\t\txml: \"responseXML\",\r\n\t\t\ttext: \"responseText\",\r\n\t\t\tjson: \"responseJSON\"\r\n\t\t},\r\n\r\n\t\t// Data converters\r\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\r\n\t\tconverters: {\r\n\r\n\t\t\t// Convert anything to text\r\n\t\t\t\"* text\": String,\r\n\r\n\t\t\t// Text to html (true = no transformation)\r\n\t\t\t\"text html\": true,\r\n\r\n\t\t\t// Evaluate text as a json expression\r\n\t\t\t\"text json\": JSON.parse,\r\n\r\n\t\t\t// Parse text as xml\r\n\t\t\t\"text xml\": jQuery.parseXML\r\n\t\t},\r\n\r\n\t\t// For options that shouldn't be deep extended:\r\n\t\t// you can add your own custom options here if\r\n\t\t// and when you create one that shouldn't be\r\n\t\t// deep extended (see ajaxExtend)\r\n\t\tflatOptions: {\r\n\t\t\turl: true,\r\n\t\t\tcontext: true\r\n\t\t}\r\n\t},\r\n\r\n\t// Creates a full fledged settings object into target\r\n\t// with both ajaxSettings and settings fields.\r\n\t// If target is omitted, writes into ajaxSettings.\r\n\tajaxSetup: function( target, settings ) {\r\n\t\treturn settings ?\r\n\r\n\t\t\t// Building a settings object\r\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\r\n\r\n\t\t\t// Extending ajaxSettings\r\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\r\n\t},\r\n\r\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\r\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\r\n\r\n\t// Main method\r\n\tajax: function( url, options ) {\r\n\r\n\t\t// If url is an object, simulate pre-1.5 signature\r\n\t\tif ( typeof url === \"object\" ) {\r\n\t\t\toptions = url;\r\n\t\t\turl = undefined;\r\n\t\t}\r\n\r\n\t\t// Force options to be an object\r\n\t\toptions = options || {};\r\n\r\n\t\tvar transport,\r\n\r\n\t\t\t// URL without anti-cache param\r\n\t\t\tcacheURL,\r\n\r\n\t\t\t// Response headers\r\n\t\t\tresponseHeadersString,\r\n\t\t\tresponseHeaders,\r\n\r\n\t\t\t// timeout handle\r\n\t\t\ttimeoutTimer,\r\n\r\n\t\t\t// Url cleanup var\r\n\t\t\turlAnchor,\r\n\r\n\t\t\t// Request state (becomes false upon send and true upon completion)\r\n\t\t\tcompleted,\r\n\r\n\t\t\t// To know if global events are to be dispatched\r\n\t\t\tfireGlobals,\r\n\r\n\t\t\t// Loop variable\r\n\t\t\ti,\r\n\r\n\t\t\t// uncached part of the url\r\n\t\t\tuncached,\r\n\r\n\t\t\t// Create the final options object\r\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\r\n\r\n\t\t\t// Callbacks context\r\n\t\t\tcallbackContext = s.context || s,\r\n\r\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\r\n\t\t\tglobalEventContext = s.context &&\r\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\r\n\t\t\t\tjQuery( callbackContext ) :\r\n\t\t\t\tjQuery.event,\r\n\r\n\t\t\t// Deferreds\r\n\t\t\tdeferred = jQuery.Deferred(),\r\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\r\n\r\n\t\t\t// Status-dependent callbacks\r\n\t\t\tstatusCode = s.statusCode || {},\r\n\r\n\t\t\t// Headers (they are sent all at once)\r\n\t\t\trequestHeaders = {},\r\n\t\t\trequestHeadersNames = {},\r\n\r\n\t\t\t// Default abort message\r\n\t\t\tstrAbort = \"canceled\",\r\n\r\n\t\t\t// Fake xhr\r\n\t\t\tjqXHR = {\r\n\t\t\t\treadyState: 0,\r\n\r\n\t\t\t\t// Builds headers hashtable if needed\r\n\t\t\t\tgetResponseHeader: function( key ) {\r\n\t\t\t\t\tvar match;\r\n\t\t\t\t\tif ( completed ) {\r\n\t\t\t\t\t\tif ( !responseHeaders ) {\r\n\t\t\t\t\t\t\tresponseHeaders = {};\r\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\r\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\r\n\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.concat( match[ 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\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Raw string\r\n\t\t\t\tgetAllResponseHeaders: function() {\r\n\t\t\t\t\treturn completed ? responseHeadersString : null;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Caches the header\r\n\t\t\t\tsetRequestHeader: function( name, value ) {\r\n\t\t\t\t\tif ( completed == null ) {\r\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\r\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\r\n\t\t\t\t\t\trequestHeaders[ name ] = value;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Overrides response content-type header\r\n\t\t\t\toverrideMimeType: function( type ) {\r\n\t\t\t\t\tif ( completed == null ) {\r\n\t\t\t\t\t\ts.mimeType = type;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Status-dependent callbacks\r\n\t\t\t\tstatusCode: function( map ) {\r\n\t\t\t\t\tvar code;\r\n\t\t\t\t\tif ( map ) {\r\n\t\t\t\t\t\tif ( completed ) {\r\n\r\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\r\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\r\n\t\t\t\t\t\t} else {\r\n\r\n\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\tfor ( code in map ) {\r\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\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\treturn this;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Cancel the request\r\n\t\t\t\tabort: function( statusText ) {\r\n\t\t\t\t\tvar finalText = statusText || strAbort;\r\n\t\t\t\t\tif ( transport ) {\r\n\t\t\t\t\t\ttransport.abort( finalText );\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdone( 0, finalText );\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// Attach deferreds\r\n\t\tdeferred.promise( jqXHR );\r\n\r\n\t\t// Add protocol if not provided (prefilters might expect it)\r\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\r\n\t\t// We also use the url parameter if available\r\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\r\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\r\n\r\n\t\t// Alias method option to type as per ticket #12004\r\n\t\ts.type = options.method || options.type || s.method || s.type;\r\n\r\n\t\t// Extract dataTypes list\r\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\r\n\r\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\r\n\t\tif ( s.crossDomain == null ) {\r\n\t\t\turlAnchor = document.createElement( \"a\" );\r\n\r\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\r\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\r\n\t\t\t// e.g. http://example.com:80x/\r\n\t\t\ttry {\r\n\t\t\t\turlAnchor.href = s.url;\r\n\r\n\t\t\t\t// Support: IE <=8 - 11 only\r\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\r\n\t\t\t\turlAnchor.href = urlAnchor.href;\r\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\r\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\r\n\t\t\t} catch ( e ) {\r\n\r\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\r\n\t\t\t\t// it can be rejected by the transport if it is invalid\r\n\t\t\t\ts.crossDomain = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Convert data if not already a string\r\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\r\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\r\n\t\t}\r\n\r\n\t\t// Apply prefilters\r\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\r\n\r\n\t\t// If request was aborted inside a prefilter, stop there\r\n\t\tif ( completed ) {\r\n\t\t\treturn jqXHR;\r\n\t\t}\r\n\r\n\t\t// We can fire global events as of now if asked to\r\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\r\n\t\tfireGlobals = jQuery.event && s.global;\r\n\r\n\t\t// Watch for a new set of requests\r\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\r\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\r\n\t\t}\r\n\r\n\t\t// Uppercase the type\r\n\t\ts.type = s.type.toUpperCase();\r\n\r\n\t\t// Determine if request has content\r\n\t\ts.hasContent = !rnoContent.test( s.type );\r\n\r\n\t\t// Save the URL in case we're toying with the If-Modified-Since\r\n\t\t// and/or If-None-Match header later on\r\n\t\t// Remove hash to simplify url manipulation\r\n\t\tcacheURL = s.url.replace( rhash, \"\" );\r\n\r\n\t\t// More options handling for requests with no content\r\n\t\tif ( !s.hasContent ) {\r\n\r\n\t\t\t// Remember the hash so we can put it back\r\n\t\t\tuncached = s.url.slice( cacheURL.length );\r\n\r\n\t\t\t// If data is available and should be processed, append data to url\r\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\r\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\r\n\r\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\r\n\t\t\t\tdelete s.data;\r\n\t\t\t}\r\n\r\n\t\t\t// Add or update anti-cache param if needed\r\n\t\t\tif ( s.cache === false ) {\r\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\r\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\r\n\t\t\t\t\tuncached;\r\n\t\t\t}\r\n\r\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\r\n\t\t\ts.url = cacheURL + uncached;\r\n\r\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\r\n\t\t} else if ( s.data && s.processData &&\r\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\r\n\t\t\ts.data = s.data.replace( r20, \"+\" );\r\n\t\t}\r\n\r\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\r\n\t\tif ( s.ifModified ) {\r\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\r\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\r\n\t\t\t}\r\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\r\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Set the correct header, if data is being sent\r\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\r\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\r\n\t\t}\r\n\r\n\t\t// Set the Accepts header for the server, depending on the dataType\r\n\t\tjqXHR.setRequestHeader(\r\n\t\t\t\"Accept\",\r\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\r\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\r\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\r\n\t\t\t\ts.accepts[ \"*\" ]\r\n\t\t);\r\n\r\n\t\t// Check for headers option\r\n\t\tfor ( i in s.headers ) {\r\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\r\n\t\t}\r\n\r\n\t\t// Allow custom headers/mimetypes and early abort\r\n\t\tif ( s.beforeSend &&\r\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\r\n\r\n\t\t\t// Abort if not done already and return\r\n\t\t\treturn jqXHR.abort();\r\n\t\t}\r\n\r\n\t\t// Aborting is no longer a cancellation\r\n\t\tstrAbort = \"abort\";\r\n\r\n\t\t// Install callbacks on deferreds\r\n\t\tcompleteDeferred.add( s.complete );\r\n\t\tjqXHR.done( s.success );\r\n\t\tjqXHR.fail( s.error );\r\n\r\n\t\t// Get transport\r\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\r\n\r\n\t\t// If no transport, we auto-abort\r\n\t\tif ( !transport ) {\r\n\t\t\tdone( -1, \"No Transport\" );\r\n\t\t} else {\r\n\t\t\tjqXHR.readyState = 1;\r\n\r\n\t\t\t// Send global event\r\n\t\t\tif ( fireGlobals ) {\r\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\r\n\t\t\t}\r\n\r\n\t\t\t// If request was aborted inside ajaxSend, stop there\r\n\t\t\tif ( completed ) {\r\n\t\t\t\treturn jqXHR;\r\n\t\t\t}\r\n\r\n\t\t\t// Timeout\r\n\t\t\tif ( s.async && s.timeout > 0 ) {\r\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\r\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\r\n\t\t\t\t}, s.timeout );\r\n\t\t\t}\r\n\r\n\t\t\ttry {\r\n\t\t\t\tcompleted = false;\r\n\t\t\t\ttransport.send( requestHeaders, done );\r\n\t\t\t} catch ( e ) {\r\n\r\n\t\t\t\t// Rethrow post-completion exceptions\r\n\t\t\t\tif ( completed ) {\r\n\t\t\t\t\tthrow e;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Propagate others as results\r\n\t\t\t\tdone( -1, e );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Callback for when everything is done\r\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\r\n\t\t\tvar isSuccess, success, error, response, modified,\r\n\t\t\t\tstatusText = nativeStatusText;\r\n\r\n\t\t\t// Ignore repeat invocations\r\n\t\t\tif ( completed ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tcompleted = true;\r\n\r\n\t\t\t// Clear timeout if it exists\r\n\t\t\tif ( timeoutTimer ) {\r\n\t\t\t\twindow.clearTimeout( timeoutTimer );\r\n\t\t\t}\r\n\r\n\t\t\t// Dereference transport for early garbage collection\r\n\t\t\t// (no matter how long the jqXHR object will be used)\r\n\t\t\ttransport = undefined;\r\n\r\n\t\t\t// Cache response headers\r\n\t\t\tresponseHeadersString = headers || \"\";\r\n\r\n\t\t\t// Set readyState\r\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\r\n\r\n\t\t\t// Determine if successful\r\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\r\n\r\n\t\t\t// Get response data\r\n\t\t\tif ( responses ) {\r\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\r\n\t\t\t}\r\n\r\n\t\t\t// Use a noop converter for missing script but not if jsonp\r\n\t\t\tif ( !isSuccess &&\r\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\r\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\r\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\r\n\t\t\t}\r\n\r\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\r\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\r\n\r\n\t\t\t// If successful, handle type chaining\r\n\t\t\tif ( isSuccess ) {\r\n\r\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\r\n\t\t\t\tif ( s.ifModified ) {\r\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\r\n\t\t\t\t\tif ( modified ) {\r\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\r\n\t\t\t\t\tif ( modified ) {\r\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// if no content\r\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\r\n\t\t\t\t\tstatusText = \"nocontent\";\r\n\r\n\t\t\t\t// if not modified\r\n\t\t\t\t} else if ( status === 304 ) {\r\n\t\t\t\t\tstatusText = \"notmodified\";\r\n\r\n\t\t\t\t// If we have data, let's convert it\r\n\t\t\t\t} else {\r\n\t\t\t\t\tstatusText = response.state;\r\n\t\t\t\t\tsuccess = response.data;\r\n\t\t\t\t\terror = response.error;\r\n\t\t\t\t\tisSuccess = !error;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\r\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\r\n\t\t\t\terror = statusText;\r\n\t\t\t\tif ( status || !statusText ) {\r\n\t\t\t\t\tstatusText = \"error\";\r\n\t\t\t\t\tif ( status < 0 ) {\r\n\t\t\t\t\t\tstatus = 0;\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// Set data for the fake xhr object\r\n\t\t\tjqXHR.status = status;\r\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\r\n\r\n\t\t\t// Success/Error\r\n\t\t\tif ( isSuccess ) {\r\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\r\n\t\t\t} else {\r\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\r\n\t\t\t}\r\n\r\n\t\t\t// Status-dependent callbacks\r\n\t\t\tjqXHR.statusCode( statusCode );\r\n\t\t\tstatusCode = undefined;\r\n\r\n\t\t\tif ( fireGlobals ) {\r\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\r\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\r\n\t\t\t}\r\n\r\n\t\t\t// Complete\r\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\r\n\r\n\t\t\tif ( fireGlobals ) {\r\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\r\n\r\n\t\t\t\t// Handle the global AJAX counter\r\n\t\t\t\tif ( !( --jQuery.active ) ) {\r\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn jqXHR;\r\n\t},\r\n\r\n\tgetJSON: function( url, data, callback ) {\r\n\t\treturn jQuery.get( url, data, callback, \"json\" );\r\n\t},\r\n\r\n\tgetScript: function( url, callback ) {\r\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\r\n\t}\r\n} );\r\n\r\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\r\n\tjQuery[ method ] = function( url, data, callback, type ) {\r\n\r\n\t\t// Shift arguments if data argument was omitted\r\n\t\tif ( isFunction( data ) ) {\r\n\t\t\ttype = type || callback;\r\n\t\t\tcallback = data;\r\n\t\t\tdata = undefined;\r\n\t\t}\r\n\r\n\t\t// The url can be an options object (which then must have .url)\r\n\t\treturn jQuery.ajax( jQuery.extend( {\r\n\t\t\turl: url,\r\n\t\t\ttype: method,\r\n\t\t\tdataType: type,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: callback\r\n\t\t}, jQuery.isPlainObject( url ) && url ) );\r\n\t};\r\n} );\r\n\r\njQuery.ajaxPrefilter( function( s ) {\r\n\tvar i;\r\n\tfor ( i in s.headers ) {\r\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\r\n\t\t\ts.contentType = s.headers[ i ] || \"\";\r\n\t\t}\r\n\t}\r\n} );\r\n\r\n\r\njQuery._evalUrl = function( url, options, doc ) {\r\n\treturn jQuery.ajax( {\r\n\t\turl: url,\r\n\r\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\r\n\t\ttype: \"GET\",\r\n\t\tdataType: \"script\",\r\n\t\tcache: true,\r\n\t\tasync: false,\r\n\t\tglobal: false,\r\n\r\n\t\t// Only evaluate the response if it is successful (gh-4126)\r\n\t\t// dataFilter is not invoked for failure responses, so using it instead\r\n\t\t// of the default converter is kludgy but it works.\r\n\t\tconverters: {\r\n\t\t\t\"text script\": function() {}\r\n\t\t},\r\n\t\tdataFilter: function( response ) {\r\n\t\t\tjQuery.globalEval( response, options, doc );\r\n\t\t}\r\n\t} );\r\n};\r\n\r\n\r\njQuery.fn.extend( {\r\n\twrapAll: function( html ) {\r\n\t\tvar wrap;\r\n\r\n\t\tif ( this[ 0 ] ) {\r\n\t\t\tif ( isFunction( html ) ) {\r\n\t\t\t\thtml = html.call( this[ 0 ] );\r\n\t\t\t}\r\n\r\n\t\t\t// The elements to wrap the target around\r\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\r\n\r\n\t\t\tif ( this[ 0 ].parentNode ) {\r\n\t\t\t\twrap.insertBefore( this[ 0 ] );\r\n\t\t\t}\r\n\r\n\t\t\twrap.map( function() {\r\n\t\t\t\tvar elem = this;\r\n\r\n\t\t\t\twhile ( elem.firstElementChild ) {\r\n\t\t\t\t\telem = elem.firstElementChild;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn elem;\r\n\t\t\t} ).append( this );\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\twrapInner: function( html ) {\r\n\t\tif ( isFunction( html ) ) {\r\n\t\t\treturn this.each( function( i ) {\r\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\r\n\t\t\t} );\r\n\t\t}\r\n\r\n\t\treturn this.each( function() {\r\n\t\t\tvar self = jQuery( this ),\r\n\t\t\t\tcontents = self.contents();\r\n\r\n\t\t\tif ( contents.length ) {\r\n\t\t\t\tcontents.wrapAll( html );\r\n\r\n\t\t\t} else {\r\n\t\t\t\tself.append( html );\r\n\t\t\t}\r\n\t\t} );\r\n\t},\r\n\r\n\twrap: function( html ) {\r\n\t\tvar htmlIsFunction = isFunction( html );\r\n\r\n\t\treturn this.each( function( i ) {\r\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\r\n\t\t} );\r\n\t},\r\n\r\n\tunwrap: function( selector ) {\r\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\r\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\r\n\t\t} );\r\n\t\treturn this;\r\n\t}\r\n} );\r\n\r\n\r\njQuery.expr.pseudos.hidden = function( elem ) {\r\n\treturn !jQuery.expr.pseudos.visible( elem );\r\n};\r\njQuery.expr.pseudos.visible = function( elem ) {\r\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\r\n};\r\n\r\n\r\n\r\n\r\njQuery.ajaxSettings.xhr = function() {\r\n\ttry {\r\n\t\treturn new window.XMLHttpRequest();\r\n\t} catch ( e ) {}\r\n};\r\n\r\nvar xhrSuccessStatus = {\r\n\r\n\t\t// File protocol always yields status code 0, assume 200\r\n\t\t0: 200,\r\n\r\n\t\t// Support: IE <=9 only\r\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\r\n\t\t1223: 204\r\n\t},\r\n\txhrSupported = jQuery.ajaxSettings.xhr();\r\n\r\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\r\nsupport.ajax = xhrSupported = !!xhrSupported;\r\n\r\njQuery.ajaxTransport( function( options ) {\r\n\tvar callback, errorCallback;\r\n\r\n\t// Cross domain only allowed if supported through XMLHttpRequest\r\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\r\n\t\treturn {\r\n\t\t\tsend: function( headers, complete ) {\r\n\t\t\t\tvar i,\r\n\t\t\t\t\txhr = options.xhr();\r\n\r\n\t\t\t\txhr.open(\r\n\t\t\t\t\toptions.type,\r\n\t\t\t\t\toptions.url,\r\n\t\t\t\t\toptions.async,\r\n\t\t\t\t\toptions.username,\r\n\t\t\t\t\toptions.password\r\n\t\t\t\t);\r\n\r\n\t\t\t\t// Apply custom fields if provided\r\n\t\t\t\tif ( options.xhrFields ) {\r\n\t\t\t\t\tfor ( i in options.xhrFields ) {\r\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Override mime type if needed\r\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\r\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// X-Requested-With header\r\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\r\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\r\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\r\n\t\t\t\t// For same-domain requests, won't change header if already provided.\r\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\r\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Set headers\r\n\t\t\t\tfor ( i in headers ) {\r\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Callback\r\n\t\t\t\tcallback = function( type ) {\r\n\t\t\t\t\treturn function() {\r\n\t\t\t\t\t\tif ( callback ) {\r\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\r\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\r\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\r\n\r\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\r\n\t\t\t\t\t\t\t\txhr.abort();\r\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\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// On a manual native abort, IE9 throws\r\n\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\tif ( typeof xhr.status !== \"number\" ) {\r\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tcomplete(\r\n\r\n\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\txhr.status,\r\n\t\t\t\t\t\t\t\t\t\txhr.statusText\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} else {\r\n\t\t\t\t\t\t\t\tcomplete(\r\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\r\n\t\t\t\t\t\t\t\t\txhr.statusText,\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\r\n\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// For XHR2 non-text, let the caller handle it (gh-2498)\r\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\r\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\r\n\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{ text: xhr.responseText },\r\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\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\t// Listen to events\r\n\t\t\t\txhr.onload = callback();\r\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\r\n\r\n\t\t\t\t// Support: IE 9 only\r\n\t\t\t\t// Use onreadystatechange to replace onabort\r\n\t\t\t\t// to handle uncaught aborts\r\n\t\t\t\tif ( xhr.onabort !== undefined ) {\r\n\t\t\t\t\txhr.onabort = errorCallback;\r\n\t\t\t\t} else {\r\n\t\t\t\t\txhr.onreadystatechange = function() {\r\n\r\n\t\t\t\t\t\t// Check readyState before timeout as it changes\r\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\r\n\r\n\t\t\t\t\t\t\t// Allow onerror to be called first,\r\n\t\t\t\t\t\t\t// but that will not handle a native abort\r\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\r\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\r\n\t\t\t\t\t\t\twindow.setTimeout( function() {\r\n\t\t\t\t\t\t\t\tif ( callback ) {\r\n\t\t\t\t\t\t\t\t\terrorCallback();\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\t// Create the abort callback\r\n\t\t\t\tcallback = callback( \"abort\" );\r\n\r\n\t\t\t\ttry {\r\n\r\n\t\t\t\t\t// Do send the request (this may raise an exception)\r\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\r\n\t\t\t\t} catch ( e ) {\r\n\r\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\r\n\t\t\t\t\tif ( callback ) {\r\n\t\t\t\t\t\tthrow e;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\tabort: function() {\r\n\t\t\t\tif ( callback ) {\r\n\t\t\t\t\tcallback();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n} );\r\n\r\n\r\n\r\n\r\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\r\njQuery.ajaxPrefilter( function( s ) {\r\n\tif ( s.crossDomain ) {\r\n\t\ts.contents.script = false;\r\n\t}\r\n} );\r\n\r\n// Install script dataType\r\njQuery.ajaxSetup( {\r\n\taccepts: {\r\n\t\tscript: \"text/javascript, application/javascript, \" +\r\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\r\n\t},\r\n\tcontents: {\r\n\t\tscript: /\\b(?:java|ecma)script\\b/\r\n\t},\r\n\tconverters: {\r\n\t\t\"text script\": function( text ) {\r\n\t\t\tjQuery.globalEval( text );\r\n\t\t\treturn text;\r\n\t\t}\r\n\t}\r\n} );\r\n\r\n// Handle cache's special case and crossDomain\r\njQuery.ajaxPrefilter( \"script\", function( s ) {\r\n\tif ( s.cache === undefined ) {\r\n\t\ts.cache = false;\r\n\t}\r\n\tif ( s.crossDomain ) {\r\n\t\ts.type = \"GET\";\r\n\t}\r\n} );\r\n\r\n// Bind script tag hack transport\r\njQuery.ajaxTransport( \"script\", function( s ) {\r\n\r\n\t// This transport only deals with cross domain or forced-by-attrs requests\r\n\tif ( s.crossDomain || s.scriptAttrs ) {\r\n\t\tvar script, callback;\r\n\t\treturn {\r\n\t\t\tsend: function( _, complete ) {\r\n\t\t\t\tscript = jQuery( \"