{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/jquery/src/core.js","webpack:///./node_modules/jquery/src/var/isFunction.js","webpack:///./node_modules/jquery/src/var/document.js","webpack:///./node_modules/jquery/src/selector.js","webpack:///./node_modules/@stimulus/core/dist/event_listener.js","webpack:///./node_modules/@stimulus/core/dist/dispatcher.js","webpack:///./node_modules/@stimulus/core/dist/action_descriptor.js","webpack:///./node_modules/@stimulus/core/dist/action.js","webpack:///./node_modules/@stimulus/core/dist/binding.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/element_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/attribute_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/string_map_observer.js","webpack:///./node_modules/@stimulus/multimap/dist/set_operations.js","webpack:///./node_modules/@stimulus/multimap/dist/multimap.js","webpack:///./node_modules/@stimulus/multimap/dist/indexed_multimap.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/token_list_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/value_list_observer.js","webpack:///./node_modules/@stimulus/core/dist/binding_observer.js","webpack:///./node_modules/@stimulus/core/dist/value_observer.js","webpack:///./node_modules/@stimulus/core/dist/context.js","webpack:///./node_modules/@stimulus/core/dist/inheritable_statics.js","webpack:///./node_modules/@stimulus/core/dist/blessing.js","webpack:///./node_modules/@stimulus/core/dist/module.js","webpack:///./node_modules/@stimulus/core/dist/definition.js","webpack:///./node_modules/@stimulus/core/dist/class_map.js","webpack:///./node_modules/@stimulus/core/dist/string_helpers.js","webpack:///./node_modules/@stimulus/core/dist/data_map.js","webpack:///./node_modules/@stimulus/core/dist/guide.js","webpack:///./node_modules/@stimulus/core/dist/selectors.js","webpack:///./node_modules/@stimulus/core/dist/target_set.js","webpack:///./node_modules/@stimulus/core/dist/scope.js","webpack:///./node_modules/@stimulus/core/dist/scope_observer.js","webpack:///./node_modules/@stimulus/core/dist/router.js","webpack:///./node_modules/@stimulus/core/dist/schema.js","webpack:///./node_modules/@stimulus/core/dist/application.js","webpack:///./node_modules/@stimulus/core/dist/class_properties.js","webpack:///./node_modules/@stimulus/core/dist/target_properties.js","webpack:///./node_modules/@stimulus/core/dist/value_properties.js","webpack:///./node_modules/@stimulus/core/dist/controller.js","webpack:///./node_modules/jquery/src/core/init.js","webpack:///./node_modules/jquery/src/data/var/dataPriv.js","webpack:///./node_modules/jquery/src/core/nodeName.js","webpack:///./node_modules/jquery/src/var/rnothtmlwhite.js","webpack:///./node_modules/jquery/src/var/support.js","webpack:///./node_modules/jquery/src/core/access.js","webpack:///./node_modules/jquery/src/ajax.js","webpack:///./node_modules/jquery/src/jquery.js","webpack:///./node_modules/jquery/src/core/toType.js","webpack:///./node_modules/jquery/src/traversing.js","webpack:///./node_modules/jquery/src/deferred.js","webpack:///./node_modules/jquery/src/event.js","webpack:///./node_modules/jquery/src/var/arr.js","webpack:///./node_modules/jquery/src/var/isWindow.js","webpack:///./node_modules/jquery/src/core/camelCase.js","webpack:///./node_modules/jquery/src/css.js","webpack:///./node_modules/jquery/src/var/slice.js","webpack:///./node_modules/jquery/src/var/class2type.js","webpack:///./node_modules/jquery/src/data/var/acceptData.js","webpack:///./node_modules/jquery/src/core/isAttached.js","webpack:///./node_modules/jquery/src/var/documentElement.js","webpack:///./node_modules/jquery/src/manipulation.js","webpack:///./node_modules/jquery/src/var/indexOf.js","webpack:///./node_modules/jquery/src/var/hasOwn.js","webpack:///./node_modules/jquery/src/callbacks.js","webpack:///./node_modules/jquery/src/queue.js","webpack:///./node_modules/jquery/src/effects.js","webpack:///./node_modules/jquery/src/var/rcssNum.js","webpack:///./node_modules/jquery/src/css/var/cssExpand.js","webpack:///./node_modules/jquery/src/var/rcheckableType.js","webpack:///./node_modules/jquery/src/css/var/rnumnonpx.js","webpack:///./node_modules/jquery/src/css/support.js","webpack:///./node_modules/jquery/src/attributes/support.js","webpack:///./node_modules/jquery/src/core/stripAndCollapse.js","webpack:///./node_modules/jquery/src/event/trigger.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/jquery/src/var/getProto.js","webpack:///./node_modules/jquery/src/var/flat.js","webpack:///./node_modules/jquery/src/var/push.js","webpack:///./node_modules/jquery/src/var/toString.js","webpack:///./node_modules/jquery/src/var/fnToString.js","webpack:///./node_modules/jquery/src/core/DOMEval.js","webpack:///./node_modules/jquery/src/traversing/var/rneedsContext.js","webpack:///./node_modules/jquery/src/core/var/rsingleTag.js","webpack:///./node_modules/jquery/src/traversing/findFilter.js","webpack:///./node_modules/jquery/src/core/ready.js","webpack:///./node_modules/jquery/src/data/Data.js","webpack:///./node_modules/jquery/src/data/var/dataUser.js","webpack:///./node_modules/jquery/src/var/pnum.js","webpack:///./node_modules/jquery/src/css/var/isHiddenWithinTree.js","webpack:///./node_modules/jquery/src/css/adjustCSS.js","webpack:///./node_modules/jquery/src/manipulation/var/rtagName.js","webpack:///./node_modules/jquery/src/manipulation/var/rscriptType.js","webpack:///./node_modules/jquery/src/manipulation/wrapMap.js","webpack:///./node_modules/jquery/src/manipulation/support.js","webpack:///./node_modules/jquery/src/manipulation/getAll.js","webpack:///./node_modules/jquery/src/manipulation/setGlobalEval.js","webpack:///./node_modules/jquery/src/manipulation/buildFragment.js","webpack:///./node_modules/jquery/src/css/var/rcustomProp.js","webpack:///./node_modules/jquery/src/css/var/getStyles.js","webpack:///./node_modules/jquery/src/css/curCSS.js","webpack:///./node_modules/jquery/src/css/addGetHookIf.js","webpack:///./node_modules/jquery/src/css/finalPropName.js","webpack:///./node_modules/jquery/src/attributes/prop.js","webpack:///./node_modules/jquery/src/ajax/var/nonce.js","webpack:///./node_modules/jquery/src/ajax/var/rquery.js","webpack:///./node_modules/jquery/src/core/parseXML.js","webpack:///./node_modules/jquery/src/serialize.js","webpack:///./node_modules/jquery/src/core/parseHTML.js","webpack:///./app/javascript/controllers/map_base_controller.js","webpack:///./app/javascript/packs/helpers.js","webpack:///./app/javascript/packs/hotjar.js","webpack:///./node_modules/jquery/src/var/ObjectFunctionString.js","webpack:///./node_modules/jquery/src/selector-sizzle.js","webpack:///./node_modules/jquery/external/sizzle/dist/sizzle.js","webpack:///./node_modules/jquery/src/traversing/var/dir.js","webpack:///./node_modules/jquery/src/traversing/var/siblings.js","webpack:///./node_modules/jquery/src/deferred/exceptionHook.js","webpack:///./node_modules/jquery/src/core/readyException.js","webpack:///./node_modules/jquery/src/data.js","webpack:///./node_modules/jquery/src/queue/delay.js","webpack:///./node_modules/jquery/src/css/showHide.js","webpack:///./node_modules/jquery/src/css/var/swap.js","webpack:///./node_modules/jquery/src/css/var/rboxStyle.js","webpack:///./node_modules/jquery/src/var/rtrimCSS.js","webpack:///./node_modules/jquery/src/var/whitespace.js","webpack:///./node_modules/jquery/src/effects/Tween.js","webpack:///./node_modules/jquery/src/attributes.js","webpack:///./node_modules/jquery/src/attributes/attr.js","webpack:///./node_modules/jquery/src/attributes/classes.js","webpack:///./node_modules/jquery/src/attributes/val.js","webpack:///./node_modules/jquery/src/event/focusin.js","webpack:///./node_modules/jquery/src/event/support.js","webpack:///./node_modules/jquery/src/manipulation/_evalUrl.js","webpack:///./node_modules/jquery/src/ajax/var/location.js","webpack:///./node_modules/jquery/src/wrap.js","webpack:///./node_modules/jquery/src/css/hiddenVisibleSelectors.js","webpack:///./node_modules/jquery/src/ajax/xhr.js","webpack:///./node_modules/jquery/src/ajax/script.js","webpack:///./node_modules/jquery/src/ajax/jsonp.js","webpack:///./node_modules/jquery/src/ajax/load.js","webpack:///./node_modules/jquery/src/core/support.js","webpack:///./node_modules/jquery/src/effects/animatedSelector.js","webpack:///./node_modules/jquery/src/offset.js","webpack:///./node_modules/jquery/src/dimensions.js","webpack:///./node_modules/jquery/src/deprecated.js","webpack:///./node_modules/jquery/src/deprecated/ajax-event-alias.js","webpack:///./node_modules/jquery/src/deprecated/event.js","webpack:///./node_modules/jquery/src/exports/amd.js","webpack:///./node_modules/jquery/src/exports/global.js","webpack:///./app/javascript/controllers/utils.js","webpack:///./app/javascript/packs/application.js","webpack:///(webpack)/buildin/global.js","webpack:///./app/javascript/controllers sync _controller\\.(js|ts)$","webpack:///./app/javascript/controllers/about_controller.js","webpack:///./app/javascript/controllers/collapsible_controller.js","webpack:///./app/javascript/controllers/confirmation_countdown_controller.js","webpack:///./app/javascript/controllers/decline_invitation_controller.js","webpack:///./app/javascript/controllers/development_controller.js","webpack:///./app/javascript/controllers/header_controller.js","webpack:///./app/javascript/controllers/journey_confirm_controller.js","webpack:///./app/javascript/controllers/map_controller.js","webpack:///./app/javascript/controllers/map_events_controller.js","webpack:///./app/javascript/controllers/map_geofences_controller.js","webpack:///./app/javascript/controllers/modal_controller.js","webpack:///./app/javascript/controllers/scroll_controller.js","webpack:///./app/javascript/controllers/withdraw_invitation_controller.js","webpack:///./app/javascript/controllers/index.js","webpack:///./node_modules/@stimulus/webpack-helpers/dist/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","arr","getProto","slice","flat","push","indexOf","class2type","toString","hasOwn","fnToString","ObjectFunctionString","support","isFunction","isWindow","DOMEval","toType","version","jQuery","selector","context","fn","init","isArrayLike","obj","length","type","jquery","constructor","toArray","this","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","apply","arguments","first","eq","last","even","grep","_elem","odd","len","j","end","sort","splice","extend","options","src","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","Error","noop","proto","Ctor","isEmptyObject","globalEval","code","doc","nonce","makeArray","results","inArray","second","invert","matches","callbackExpect","arg","guid","iterator","split","_i","toLowerCase","nodeType","item","window","document","EventListener","eventTarget","eventName","eventOptions","unorderedBindings","Set","connect","addEventListener","disconnect","removeEventListener","bindingConnected","binding","add","bindingDisconnected","delete","handleEvent","event","extendedEvent","stopImmediatePropagation_1","stopImmediatePropagation","assign","immediatePropagationStopped","extendEvent","_a","bindings","from","left","right","leftIndex","index","rightIndex","configurable","Dispatcher","application","eventListenerMaps","Map","started","start","eventListeners","forEach","eventListener","stop","values","reduce","listeners","concat","fetchEventListenerForBinding","handleError","message","detail","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","cacheKey","createEventListener","set","parts","keys","join","descriptorPattern","parseEventTarget","eventTargetName","Action","element","descriptor","tagName","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","forToken","token","descriptorString","content","trim","match","test","eventNameSuffix","e","getAttribute","Binding","action","willBeInvokedByEvent","invokeWithEvent","method","controller","Element","contains","scope","containsElement","ElementObserver","delegate","_this","elements","mutationObserver","MutationObserver","mutations","processMutations","observe","attributes","childList","subtree","refresh","takeRecords","matchElementsInTree","has","removeElement","_b","_c","addElement","mutations_1","mutation","processMutation","processAttributeChange","attributeName","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","node","elementAttributeChanged","matchElement","nodes","elementFromNode","processTree","elementIsActive","tree","processor","Node","ELEMENT_NODE","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","hasAttribute","querySelectorAll","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","StringMapObserver","stringMap","knownAttributeNames","refreshAttribute","getStringMapKeyForAttribute","stringMapKeyAdded","stringMapValueChanged","stringMapKeyRemoved","currentAttributeNames","recordedAttributeNames","attribute","fetch","del","size","prune","extendStatics","Multimap","valuesByKey","hasKey","hasValue","some","getValuesForKey","getKeysForValue","filter","__extends","b","setPrototypeOf","__proto__","__","_super","IndexedMultimap","keysByValue","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","max","_","findIndex","tokensAreEqual","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","connectAction","disconnectAction","clear","ValueObserver","receiver","stringMapObserver","valueDescriptorMap","invokeChangedCallbacksForDefaultValues","attributeValue","invokeChangedCallbackForValue","valueDescriptors","name_1","defaultValue","data","Context","controllerConstructor","bindingObserver","dispatcher","valueObserver","initialize","parentElement","readInheritableStaticArrayValues","propertyName","ancestors","getAncestorsForConstructor","definition","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","getOwnStaticObjectPairs","getPrototypeOf","reverse","__spreadArrays","il","k","a","jl","bless","properties","shadowConstructor","shadowProperties","getOwnKeys","shadowingDescriptor","getOwnPropertyDescriptor","getShadowedDescriptor","getShadowProperties","defineProperties","shadow","blessedProperties","blessing","getBlessedProperties","getOwnPropertySymbols","getOwnPropertyNames","extendWithReflect","extended","_newTarget","Reflect","construct","Module","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","ClassMap","getDataKey","getAttributeName","getAttributeNameForKey","camelize","char","toUpperCase","capitalize","charAt","dasherize","DataMap","setAttribute","removeAttribute","Guide","logger","warnedKeysByObject","warn","warnedKeys","attributeValueContainsToken","TargetSet","targetName","find","targetNames","findTarget","findLegacyTarget","findAll","targets","findAllTargets","findAllLegacyTargets","getSelectorForTargetName","findElement","findAllElements","getLegacySelectorForTargetName","deprecate","targetDescriptor","targetAttribute","guide","Scope","classes","closest","controllerSelector","queryElements","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","createScopeForElementAndIdentifier","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","contexts","loadDefinition","unloadIdentifier","connectModule","disconnectModule","getContextForElementAndIdentifier","defaultSchema","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","f","y","g","label","sent","trys","ops","verb","v","op","TypeError","pop","Application","documentElement","console","router","readyState","register","load","head","rest","definitions","unload","identifiers","getControllerForElementAndIdentifier","ClassPropertiesBlessing","classDefinition","TargetPropertiesBlessing","targetDefinition","ValuePropertiesBlessing","valueDefinitionPairs","propertyDescriptorMap","valueDefinitionPair","valueDescriptor","parseValueDefinitionPair","read","readers","write","writers","default","propertiesForValueDefinitionPair","typeConstant","Boolean","Number","String","parseValueTypeConstant","defaultValuesByType","valueDescriptorForTokenAndType","array","boolean","number","string","JSON","parse","parseFloat","writeJSON","stringify","Controller","blessings","rsingleTag","rootjQuery","rquickExpr","root","exec","parseHTML","ownerDocument","attr","getElementById","ready","Data","nodeName","access","chainable","emptyGet","raw","bulk","_key","rnothtmlwhite","location","rquery","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","prefilters","transports","allTypes","originAnchor","createElement","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","originalOptions","jqXHR","inspected","seekingTransport","inspect","selected","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","href","active","lastModified","etag","url","isLocal","protocol","global","processData","async","contentType","accepts","text","html","xml","json","contents","responseFields","converters","parseXML","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","completed","fireGlobals","uncached","callbackContext","globalEventContext","deferred","Deferred","completeDeferred","Callbacks","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","always","status","abort","statusText","finalText","promise","crossDomain","host","param","traditional","trigger","hasContent","cache","ifModified","headers","beforeSend","complete","success","fail","timeout","setTimeout","send","nativeStatusText","responses","isSuccess","response","modified","clearTimeout","ct","finalDataType","firstDataType","shift","ajaxHandleResponses","conv2","current","conv","tmp","prev","dataFilter","throws","state","ajaxConvert","resolveWith","rejectWith","fireWith","getJSON","getScript","dir","siblings","rneedsContext","rparentsprev","guaranteedUnique","children","sibling","cur","selectors","matched","parentNode","matchesSelector","uniqueSort","prevAll","addBack","parent","parents","parentsUntil","until","nextAll","nextUntil","prevUntil","firstChild","contentDocument","childNodes","Identity","Thrower","ex","adoptValue","noValue","tuples","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","handler","special","that","args","mightThrow","notifyWith","process","exceptionHook","stackTrace","getStackHook","list","stateString","disable","lock","fire","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rcheckableType","acceptData","dataPriv","rtypenamespace","returnTrue","returnFalse","expectSync","activeElement","err","safeActiveElement","on","types","one","origFn","off","leverageNative","el","namespace","notAsync","saved","isTrigger","delegateType","stopPropagation","preventDefault","Event","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","needsContext","expr","delegateCount","setup","remove","mappedTypes","origCount","hasData","RegExp","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","sel","matchedHandlers","matchedSelectors","button","disabled","addProp","hook","originalEvent","writable","noBubble","click","_default","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","Date","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","rcssNum","rnumnonpx","rcustomProp","cssExpand","getStyles","swap","curCSS","adjustCSS","addGetHookIf","finalPropName","rdisplayswap","cssShow","position","visibility","display","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","css","ceil","getWidthOrHeight","boxSizingReliable","valueIsBorderBox","val","offsetProp","reliableTrDimensions","getClientRects","cssHooks","opacity","computed","cssNumber","cssProps","style","hooks","origName","isCustomProp","clearCloneStyle","setProperty","isFinite","getBoundingClientRect","width","scrollboxSizeBuggy","scrollboxSize","marginLeft","reliableMarginLeft","margin","padding","border","prefix","suffix","expand","expanded","owner","isAttached","composed","getRootNode","rtagName","rscriptType","wrapMap","getAll","setGlobalEval","buildFragment","dataUser","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","checked","domManip","collection","ignored","fragment","scripts","hasScripts","iNoClone","valueIsFunction","checkClone","self","_evalUrl","noModule","textContent","keepData","cleanData","removeChild","htmlPrefilter","dataAndEvents","deepDataAndEvents","srcElements","destElements","cloneNode","inPage","noCloneChecked","isXMLDoc","detach","empty","append","appendChild","prepend","insertBefore","before","after","nextSibling","innerHTML","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","flag","createOptions","firing","memory","fired","locked","queue","firingIndex","once","stopOnFalse","unique","dequeue","startLength","_queueHooks","setter","clearQueue","count","defer","isHiddenWithinTree","showHide","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","fx","interval","tick","createFxNow","genFx","includeWidth","attrs","height","createTween","prop","animation","tween","Animation","tweeners","stopped","currentTime","startTime","duration","percent","tweens","run","opts","specialEasing","easing","originalProperties","Tween","gotoEnd","propFilter","timer","anim","tweener","toggle","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","old","fadeTo","to","show","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","pnum","computeStyleTests","div","container","cssText","divStyle","getComputedStyle","pixelPositionVal","top","reliableMarginLeftVal","roundPixelMeasures","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","offsetWidth","measure","round","reliableTrDimensionsVal","backgroundClip","pixelBoxStyles","pixelPosition","table","tr","trChild","trStyle","parseInt","borderTopWidth","borderBottomWidth","offsetHeight","input","checkOn","optSelected","radioValue","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","defaultView","parentWindow","simulate","triggerHandler","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","loadCSPNonce","ref","querySelector","cspNonce","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","setData","$","csrfParam","csrfToken","meta","CSRFProtection","xhr","refreshCSRFTokens","CustomEvent","params","evt","createEvent","initCustomEvent","dispatchEvent","stopEverything","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","script","responseText","floor","XMLHttpRequest","OPENED","accept","open","withCredentials","onreadystatechange","DONE","parser","DOMParser","parseFromString","isCrossDomain","serializeElement","additionalParam","inputs","option","encodeURIComponent","formElements","form","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","link","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","_rails_loaded","factory","w","noGlobal","preservedScriptAttributes","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pushNative","booleans","whitespace","pseudos","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rsibling","runescape","funescape","escape","nonHex","high","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","els","seed","nid","groups","newSelector","newContext","id","getElementsByTagName","getElementsByClassName","qsa","testContext","toSelector","qsaError","cacheLength","markFunction","assert","addHandle","attrHandle","siblingCheck","diff","sourceIndex","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespaceURI","hasCompare","subWindow","attachEvent","className","createComment","getById","getElementsByName","attrId","getAttributeNode","tag","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","specified","duplicates","detectDuplicates","sortStable","nodeValue","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","what","_argument","simple","forward","ofType","_context","uniqueCache","outerCache","nodeIndex","useCache","lastChild","uniqueID","pseudo","setFilters","idx","matcher","unmatched","lang","elemLang","hash","hasFocus","tabIndex","selectedIndex","_matchIndexes","radio","checkbox","file","password","image","submit","reset","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","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","compiled","_name","escapeSelector","truncate","is","winnow","qualifier","not","rerrorNames","stack","readyException","readyList","catch","readyWait","wait","doScroll","uid","rbrace","rmultiDash","dataAttr","removeData","_data","_removeData","source","valueParts","adjusted","scale","maxIterations","currentValue","initial","unit","initialInUnit","defaultDisplayMap","getDefaultDisplay","hide","createDocumentFragment","thead","col","td","refElements","tbody","tfoot","colgroup","caption","th","optgroup","selection","wrap","attached","createTextNode","opener","rboxStyle","rtrimCSS","minWidth","maxWidth","getPropertyValue","conditionFn","hookFn","cssPrefixes","emptyStyle","vendorProps","final","capName","vendorPropName","propHooks","eased","pos","scrollTop","scrollLeft","linear","swing","cos","PI","delay","time","boolHook","removeAttr","nType","attrHooks","bool","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","classNames","curValue","finalValue","removeClass","toggleClass","stateVal","isValidValue","hasClass","rreturn","valHooks","optionSet","focusin","attaches","parserErrorElem","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","valueOrFunction","serialize","serializeArray","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhrSuccessStatus","xhrSupported","cors","errorCallback","username","xhrFields","onload","onerror","onabort","ontimeout","responseType","binary","scriptAttrs","charset","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","_jQuery","_$","noConflict","MapBaseController","L","mapbox","accessToken","zoom","animationDuration","mapPoints","destroy","update","fitInBounds","showLoader","interactive","isMobile","Control","Zoom","addTo","dragging","touchZoom","doubleClickZoom","invalidateSize","fitBounds","getLatLng","coordinates","setView","lat","lon","scrollFunction","hotjarTrackingCode","h","gon","hotjar_id","hotjar_sv","hj","q","_hjSettings","hjid","hjsv","_sizzle","navigator","userAgent","require","isAppMode","onscroll","journeyId","tagId","Function","webpackContext","req","webpackContextResolve","FloTelematics","sdkTarget","I18n","getVersion","mobileTarget","getAAAMobileVersion","collapsed","labelTarget","chevronTarget","transform","collapsibleTarget","classList","scrollIntoView","behavior","block","ConfirmationCountdownController","journeyEndDate","startingTime","getTime","seconds","endDate","difference","daysDifference","hoursDifference","minutesDifference","secondsDifference","countdownElement","idValue","countdownInterval","setInterval","updateCountdown","clearInterval","remainingTime","calculateJourneyRemainingTime","updateIframe","actionPath","title","email","emailValue","redirectTo","redirectToValue","guidTarget","FloSDK","getGUID","osTarget","getOS","versionTarget","getOSVersion","updateDebugData","urlTarget","isoTimeTarget","toISOString","rawJourneyState","getJourneyLoggingState","rawJourneyStateTarget","rawJourneyDuration","getJourneyDuration","rawJourneyDurationTarget","journeyState","getJourneyState","journeyStateTarget","journeyDuration","journeyDurationTarget","journeyStart","getJourneyStart","journeyStartTarget","acknowledgedJourney","localStorage","acknowledgedJourneyTarget","batterySaver","isPowerSaveModeEnabled","batterySaverTarget","getLocationAuthorizationStatus","locationTarget","accuracy","getAccuracyStatusForPlatform","accuracyTarget","motion","getMotionSensorAuthorizationStatus","motionTarget","batteryOptimization","getBatteryOptimizationStatus","batteryOptimizationTarget","batteryLevel","getBatteryLevel","batteryLevelTarget","batterySavePauseThreshold","getBatterySaveThreshold","pause","batterySaveThresholdTarget","isBatteryPaused","isBatteryPausedTarget","HeaderController","selectedTagIdValue","journeyTagIdValue","journeyElement","journeyIdValue","wasDrivingButtonTarget","wasNotDrivingButtonTarget","toggleButtons","confirmButtonTarget","tag_id","URLSearchParams","handleResponse","alert","updateUnsavedJourneysCount","handleDrivingStatus","handleNotDrivingStatus","unsavedJourneysCount","pluralizeSuffix","journeyTagId","selectedTagId","MapController","observer","IntersectionObserver","entries","isIntersecting","buildMap","centerOnCoordinate","windowWidth","innerWidth","showEventsValue","addEvents","loadMapPoints","zoomControl","attributionControl","compact","addLayer","styleLayer","addControls","interactiveValue","addEndPoints","addRoute","hideLoader","marker","LatLng","icon","divIcon","iconSize","_map","latlng","journeyPath","polyline","color","weight","loadEvents","addEventMarker","latLng","event_title","popupAnchor","iconAnchor","showEvents","latitudeValue","longitudeValue","latitude","longitude","MapGeofencesController","fence","editing","shapes","loadPoints","instance","cssClass","toggleState","displayOnlyValue","enableDragging","drawing","drawStart","drawMove","drawEnd","getTouchLatLng","touch","mapOffset","_container","point","offsetLeft","offsetTop","containerPointToLatLng","dragPan","enable","points","exist","addGeofence","centerLocation","splitPoints","lng","fill","fillColor","noClip","getBounds","scrollWheelZoom","boxZoom","tap","removeLayer","addLatLng","getLatLngs","filteredPoints","peuckerFilteredPoints","setLatLngs","setStyle","getFenceLatLngs","clearMap","disableDragging","latlngs","locate","log","epsilon","perpendicularDistance","leftRecursiveResults","rightRecursiveResults","maxIndex","maxDistance","findPerpendicularDistance","line","pointCoords","latLngToContainerPoint","line1Coords","line2Coords","pointX","x","pointY","lineStart","lineEnd","slope","intercept","abs","sqrt","pow","displayOnly","titleTarget","textTarget","emailTarget","close","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext"],"mappings":"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","file":"js/application-d1e9cde3cb9b0653e37f.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\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 = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 117);\n","/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\ndefine([\"./var/arr\", \"./var/getProto\", \"./var/slice\", \"./var/flat\", \"./var/push\", \"./var/indexOf\", \"./var/class2type\", \"./var/toString\", \"./var/hasOwn\", \"./var/fnToString\", \"./var/ObjectFunctionString\", \"./var/support\", \"./var/isFunction\", \"./var/isWindow\", \"./core/DOMEval\", \"./core/toType\"], function (arr, getProto, slice, flat, push, indexOf, class2type, toString, hasOwn, fnToString, ObjectFunctionString, support, isFunction, isWindow, DOMEval, toType) {\n \"use strict\";\n\n var version = \"3.6.1\",\n // Define a local copy of jQuery\n jQuery = function (selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function () {\n return slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function (num) {\n // Return all the elements in a clean array\n if (num == null) {\n return slice.call(this);\n }\n\n // Return just the one element from the set\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function (elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems);\n\n // Add the old object onto the stack (as a reference)\n ret.prevObject = this;\n\n // Return the newly-formed element set\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function (callback) {\n return jQuery.each(this, callback);\n },\n map: function (callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function () {\n return this.pushStack(slice.apply(this, arguments));\n },\n first: function () {\n return this.eq(0);\n },\n last: function () {\n return this.eq(-1);\n },\n even: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function (i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function () {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false;\n\n // Handle a deep copy situation\n if (typeof target === \"boolean\") {\n deep = target;\n\n // Skip the boolean and the target\n target = arguments[i] || {};\n i++;\n }\n\n // Handle case when target is a string or something (possible in deep copy)\n if (typeof target !== \"object\" && !isFunction(target)) {\n target = {};\n }\n\n // Extend jQuery itself if only one argument is passed\n if (i === length) {\n target = this;\n i--;\n }\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name];\n\n // Prevent Object.prototype pollution\n // Prevent never-ending loop\n if (name === \"__proto__\" || target === copy) {\n continue;\n }\n\n // Recurse if we're merging plain objects or arrays\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name];\n\n // Ensure proper type for the source value\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n copyIsArray = false;\n\n // Never move original objects, clone them\n target[name] = jQuery.extend(deep, clone, copy);\n\n // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n\n // Return the modified object\n return target;\n };\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function (msg) {\n throw new Error(msg);\n },\n noop: function () {},\n isPlainObject: function (obj) {\n var proto, Ctor;\n\n // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n proto = getProto(obj);\n\n // Objects with no prototype (e.g., `Object.create( null )`) are plain\n if (!proto) {\n return true;\n }\n\n // Objects with prototype are plain iff they were constructed by a global Object function\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function (obj) {\n var name;\n for (name in obj) {\n return false;\n }\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function (code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function (obj, callback) {\n var length,\n i = 0;\n if (isArrayLike(obj)) {\n length = obj.length;\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n return obj;\n },\n // results is for internal usage only\n makeArray: function (arr, results) {\n var ret = results || [];\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n return ret;\n },\n inArray: function (elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function (first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n first.length = i;\n return first;\n },\n grep: function (elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert;\n\n // Go through the array, only saving the items\n // that pass the validator function\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n return matches;\n },\n // arg is for internal usage only\n map: function (elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = [];\n\n // Go through the array, translating each of the items to their new values\n if (isArrayLike(elems)) {\n length = elems.length;\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n if (value != null) {\n ret.push(value);\n }\n }\n\n // Go through every key on the object,\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n if (value != null) {\n ret.push(value);\n }\n }\n }\n\n // Flatten any nested arrays\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n }\n\n // Populate the class2type map\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n return jQuery;\n});","define(function () {\n \"use strict\";\n\n return function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n // Plus for old WebKit, typeof returns \"function\" for HTML collections\n // (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\" && typeof obj.item !== \"function\";\n };\n});","define(function () {\n \"use strict\";\n\n return window.document;\n});","define([\"./selector-sizzle\"], function () {\n \"use strict\";\n});","var EventListener = /** @class */function () {\n function EventListener(eventTarget, eventName, eventOptions) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n EventListener.prototype.connect = function () {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n };\n EventListener.prototype.disconnect = function () {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n };\n // Binding observer delegate\n /** @hidden */\n EventListener.prototype.bindingConnected = function (binding) {\n this.unorderedBindings.add(binding);\n };\n /** @hidden */\n EventListener.prototype.bindingDisconnected = function (binding) {\n this.unorderedBindings.delete(binding);\n };\n EventListener.prototype.handleEvent = function (event) {\n var extendedEvent = extendEvent(event);\n for (var _i = 0, _a = this.bindings; _i < _a.length; _i++) {\n var binding = _a[_i];\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n };\n Object.defineProperty(EventListener.prototype, \"bindings\", {\n get: function () {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n },\n enumerable: false,\n configurable: true\n });\n return EventListener;\n}();\nexport { EventListener };\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var stopImmediatePropagation_1 = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function () {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation_1.call(this);\n }\n });\n }\n}","import { EventListener } from \"./event_listener\";\nvar Dispatcher = /** @class */function () {\n function Dispatcher(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n Dispatcher.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n };\n Dispatcher.prototype.stop = function () {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n };\n Object.defineProperty(Dispatcher.prototype, \"eventListeners\", {\n get: function () {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n // Binding observer delegate\n /** @hidden */\n Dispatcher.prototype.bindingConnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n };\n /** @hidden */\n Dispatcher.prototype.bindingDisconnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n };\n // Error handling\n Dispatcher.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n this.application.handleError(error, \"Error \" + message, detail);\n };\n Dispatcher.prototype.fetchEventListenerForBinding = function (binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName,\n eventOptions = binding.eventOptions;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n };\n Dispatcher.prototype.fetchEventListener = function (eventTarget, eventName, eventOptions) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var cacheKey = this.cacheKey(eventName, eventOptions);\n var eventListener = eventListenerMap.get(cacheKey);\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n eventListenerMap.set(cacheKey, eventListener);\n }\n return eventListener;\n };\n Dispatcher.prototype.createEventListener = function (eventTarget, eventName, eventOptions) {\n var eventListener = new EventListener(eventTarget, eventName, eventOptions);\n if (this.started) {\n eventListener.connect();\n }\n return eventListener;\n };\n Dispatcher.prototype.fetchEventListenerMapForEventTarget = function (eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n return eventListenerMap;\n };\n Dispatcher.prototype.cacheKey = function (eventName, eventOptions) {\n var parts = [eventName];\n Object.keys(eventOptions).sort().forEach(function (key) {\n parts.push(\"\" + (eventOptions[key] ? \"\" : \"!\") + key);\n });\n return parts.join(\":\");\n };\n return Dispatcher;\n}();\nexport { Dispatcher };","// capture nos.: 12 23 4 43 1 5 56 7 768 9 98\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;\nexport function parseActionDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n eventOptions: matches[9] ? parseEventOptions(matches[9]) : {},\n identifier: matches[5],\n methodName: matches[7]\n };\n}\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\nfunction parseEventOptions(eventOptions) {\n return eventOptions.split(\":\").reduce(function (options, token) {\n var _a;\n return Object.assign(options, (_a = {}, _a[token.replace(/^!/, \"\")] = !/^!/.test(token), _a));\n }, {});\n}\nexport function stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}","import { parseActionDescriptorString, stringifyEventTarget } from \"./action_descriptor\";\nvar Action = /** @class */function () {\n function Action(element, index, descriptor) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.eventOptions = descriptor.eventOptions || {};\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n Action.forToken = function (token) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content));\n };\n Action.prototype.toString = function () {\n var eventNameSuffix = this.eventTargetName ? \"@\" + this.eventTargetName : \"\";\n return \"\" + this.eventName + eventNameSuffix + \"->\" + this.identifier + \"#\" + this.methodName;\n };\n Object.defineProperty(Action.prototype, \"eventTargetName\", {\n get: function () {\n return stringifyEventTarget(this.eventTarget);\n },\n enumerable: false,\n configurable: true\n });\n return Action;\n}();\nexport { Action };\nvar defaultEventNames = {\n \"a\": function (e) {\n return \"click\";\n },\n \"button\": function (e) {\n return \"click\";\n },\n \"form\": function (e) {\n return \"submit\";\n },\n \"input\": function (e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\";\n },\n \"select\": function (e) {\n return \"change\";\n },\n \"textarea\": function (e) {\n return \"input\";\n }\n};\nexport function getDefaultEventNameForElement(element) {\n var tagName = element.tagName.toLowerCase();\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\nfunction error(message) {\n throw new Error(message);\n}","var Binding = /** @class */function () {\n function Binding(context, action) {\n this.context = context;\n this.action = action;\n }\n Object.defineProperty(Binding.prototype, \"index\", {\n get: function () {\n return this.action.index;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventTarget\", {\n get: function () {\n return this.action.eventTarget;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventOptions\", {\n get: function () {\n return this.action.eventOptions;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"identifier\", {\n get: function () {\n return this.context.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Binding.prototype.handleEvent = function (event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n };\n Object.defineProperty(Binding.prototype, \"eventName\", {\n get: function () {\n return this.action.eventName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"method\", {\n get: function () {\n var method = this.controller[this.methodName];\n if (typeof method == \"function\") {\n return method;\n }\n throw new Error(\"Action \\\"\" + this.action + \"\\\" references undefined method \\\"\" + this.methodName + \"\\\"\");\n },\n enumerable: false,\n configurable: true\n });\n Binding.prototype.invokeWithEvent = function (event) {\n try {\n this.method.call(this.controller, event);\n } catch (error) {\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element,\n index = _a.index;\n var detail = {\n identifier: identifier,\n controller: controller,\n element: element,\n index: index,\n event: event\n };\n this.context.handleError(error, \"invoking action \\\"\" + this.action + \"\\\"\", detail);\n }\n };\n Binding.prototype.willBeInvokedByEvent = function (event) {\n var eventTarget = event.target;\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return this.scope.containsElement(this.action.element);\n }\n };\n Object.defineProperty(Binding.prototype, \"controller\", {\n get: function () {\n return this.context.controller;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"methodName\", {\n get: function () {\n return this.action.methodName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"scope\", {\n get: function () {\n return this.context.scope;\n },\n enumerable: false,\n configurable: true\n });\n return Binding;\n}();\nexport { Binding };","var ElementObserver = /** @class */function () {\n function ElementObserver(element, delegate) {\n var _this = this;\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n ElementObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n childList: true,\n subtree: true\n });\n this.refresh();\n }\n };\n ElementObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n ElementObserver.prototype.refresh = function () {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n for (var _i = 0, _a = Array.from(this.elements); _i < _a.length; _i++) {\n var element = _a[_i];\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n for (var _b = 0, _c = Array.from(matches); _b < _c.length; _b++) {\n var element = _c[_b];\n this.addElement(element);\n }\n }\n };\n // Mutation record processing\n ElementObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n ElementObserver.prototype.processMutation = function (mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n };\n ElementObserver.prototype.processAttributeChange = function (node, attributeName) {\n var element = node;\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n } else {\n this.removeElement(element);\n }\n } else if (this.matchElement(element)) {\n this.addElement(element);\n }\n };\n ElementObserver.prototype.processRemovedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n };\n ElementObserver.prototype.processAddedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n };\n // Element matching\n ElementObserver.prototype.matchElement = function (element) {\n return this.delegate.matchElement(element);\n };\n ElementObserver.prototype.matchElementsInTree = function (tree) {\n if (tree === void 0) {\n tree = this.element;\n }\n return this.delegate.matchElementsInTree(tree);\n };\n ElementObserver.prototype.processTree = function (tree, processor) {\n for (var _i = 0, _a = this.matchElementsInTree(tree); _i < _a.length; _i++) {\n var element = _a[_i];\n processor.call(this, element);\n }\n };\n ElementObserver.prototype.elementFromNode = function (node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n };\n ElementObserver.prototype.elementIsActive = function (element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n };\n // Element tracking\n ElementObserver.prototype.addElement = function (element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n };\n ElementObserver.prototype.removeElement = function (element) {\n if (this.elements.has(element)) {\n this.elements.delete(element);\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n };\n return ElementObserver;\n}();\nexport { ElementObserver };","import { ElementObserver } from \"./element_observer\";\nvar AttributeObserver = /** @class */function () {\n function AttributeObserver(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n Object.defineProperty(AttributeObserver.prototype, \"element\", {\n get: function () {\n return this.elementObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function () {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: false,\n configurable: true\n });\n AttributeObserver.prototype.start = function () {\n this.elementObserver.start();\n };\n AttributeObserver.prototype.stop = function () {\n this.elementObserver.stop();\n };\n AttributeObserver.prototype.refresh = function () {\n this.elementObserver.refresh();\n };\n Object.defineProperty(AttributeObserver.prototype, \"started\", {\n get: function () {\n return this.elementObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n // Element observer delegate\n AttributeObserver.prototype.matchElement = function (element) {\n return element.hasAttribute(this.attributeName);\n };\n AttributeObserver.prototype.matchElementsInTree = function (tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n };\n AttributeObserver.prototype.elementMatched = function (element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n };\n AttributeObserver.prototype.elementUnmatched = function (element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n };\n AttributeObserver.prototype.elementAttributeChanged = function (element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n };\n return AttributeObserver;\n}();\nexport { AttributeObserver };","var StringMapObserver = /** @class */function () {\n function StringMapObserver(element, delegate) {\n var _this = this;\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n StringMapObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true\n });\n this.refresh();\n }\n };\n StringMapObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n StringMapObserver.prototype.refresh = function () {\n if (this.started) {\n for (var _i = 0, _a = this.knownAttributeNames; _i < _a.length; _i++) {\n var attributeName = _a[_i];\n this.refreshAttribute(attributeName);\n }\n }\n };\n // Mutation record processing\n StringMapObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n StringMapObserver.prototype.processMutation = function (mutation) {\n var attributeName = mutation.attributeName;\n if (attributeName) {\n this.refreshAttribute(attributeName);\n }\n };\n // State tracking\n StringMapObserver.prototype.refreshAttribute = function (attributeName) {\n var key = this.delegate.getStringMapKeyForAttribute(attributeName);\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n var value = this.element.getAttribute(attributeName);\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key);\n }\n if (value == null) {\n this.stringMap.delete(attributeName);\n this.stringMapKeyRemoved(key, attributeName);\n } else {\n this.stringMap.set(attributeName, value);\n }\n }\n };\n StringMapObserver.prototype.stringMapKeyAdded = function (key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n };\n StringMapObserver.prototype.stringMapValueChanged = function (value, key) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key);\n }\n };\n StringMapObserver.prototype.stringMapKeyRemoved = function (key, attributeName) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName);\n }\n };\n Object.defineProperty(StringMapObserver.prototype, \"knownAttributeNames\", {\n get: function () {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StringMapObserver.prototype, \"currentAttributeNames\", {\n get: function () {\n return Array.from(this.element.attributes).map(function (attribute) {\n return attribute.name;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StringMapObserver.prototype, \"recordedAttributeNames\", {\n get: function () {\n return Array.from(this.stringMap.keys());\n },\n enumerable: false,\n configurable: true\n });\n return StringMapObserver;\n}();\nexport { StringMapObserver };","export function add(map, key, value) {\n fetch(map, key).add(value);\n}\nexport function del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\nexport function fetch(map, key) {\n var values = map.get(key);\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n return values;\n}\nexport function prune(map, key) {\n var values = map.get(key);\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}","import { add, del } from \"./set_operations\";\nvar Multimap = /** @class */function () {\n function Multimap() {\n this.valuesByKey = new Map();\n }\n Object.defineProperty(Multimap.prototype, \"values\", {\n get: function () {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) {\n return values.concat(Array.from(set));\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Multimap.prototype, \"size\", {\n get: function () {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n },\n enumerable: false,\n configurable: true\n });\n Multimap.prototype.add = function (key, value) {\n add(this.valuesByKey, key, value);\n };\n Multimap.prototype.delete = function (key, value) {\n del(this.valuesByKey, key, value);\n };\n Multimap.prototype.has = function (key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n };\n Multimap.prototype.hasKey = function (key) {\n return this.valuesByKey.has(key);\n };\n Multimap.prototype.hasValue = function (value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n };\n Multimap.prototype.getValuesForKey = function (key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n };\n Multimap.prototype.getKeysForValue = function (value) {\n return Array.from(this.valuesByKey).filter(function (_a) {\n var key = _a[0],\n values = _a[1];\n return values.has(value);\n }).map(function (_a) {\n var key = _a[0],\n values = _a[1];\n return key;\n });\n };\n return Multimap;\n}();\nexport { Multimap };","var __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nimport { Multimap } from \"./multimap\";\nimport { add, del } from \"./set_operations\";\nvar IndexedMultimap = /** @class */function (_super) {\n __extends(IndexedMultimap, _super);\n function IndexedMultimap() {\n var _this = _super.call(this) || this;\n _this.keysByValue = new Map();\n return _this;\n }\n Object.defineProperty(IndexedMultimap.prototype, \"values\", {\n get: function () {\n return Array.from(this.keysByValue.keys());\n },\n enumerable: false,\n configurable: true\n });\n IndexedMultimap.prototype.add = function (key, value) {\n _super.prototype.add.call(this, key, value);\n add(this.keysByValue, value, key);\n };\n IndexedMultimap.prototype.delete = function (key, value) {\n _super.prototype.delete.call(this, key, value);\n del(this.keysByValue, value, key);\n };\n IndexedMultimap.prototype.hasValue = function (value) {\n return this.keysByValue.has(value);\n };\n IndexedMultimap.prototype.getKeysForValue = function (value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n };\n return IndexedMultimap;\n}(Multimap);\nexport { IndexedMultimap };","import { AttributeObserver } from \"./attribute_observer\";\nimport { Multimap } from \"@stimulus/multimap\";\nvar TokenListObserver = /** @class */function () {\n function TokenListObserver(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n Object.defineProperty(TokenListObserver.prototype, \"started\", {\n get: function () {\n return this.attributeObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n TokenListObserver.prototype.start = function () {\n this.attributeObserver.start();\n };\n TokenListObserver.prototype.stop = function () {\n this.attributeObserver.stop();\n };\n TokenListObserver.prototype.refresh = function () {\n this.attributeObserver.refresh();\n };\n Object.defineProperty(TokenListObserver.prototype, \"element\", {\n get: function () {\n return this.attributeObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function () {\n return this.attributeObserver.attributeName;\n },\n enumerable: false,\n configurable: true\n });\n // Attribute observer delegate\n TokenListObserver.prototype.elementMatchedAttribute = function (element) {\n this.tokensMatched(this.readTokensForElement(element));\n };\n TokenListObserver.prototype.elementAttributeValueChanged = function (element) {\n var _a = this.refreshTokensForElement(element),\n unmatchedTokens = _a[0],\n matchedTokens = _a[1];\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n };\n TokenListObserver.prototype.elementUnmatchedAttribute = function (element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n };\n TokenListObserver.prototype.tokensMatched = function (tokens) {\n var _this = this;\n tokens.forEach(function (token) {\n return _this.tokenMatched(token);\n });\n };\n TokenListObserver.prototype.tokensUnmatched = function (tokens) {\n var _this = this;\n tokens.forEach(function (token) {\n return _this.tokenUnmatched(token);\n });\n };\n TokenListObserver.prototype.tokenMatched = function (token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n };\n TokenListObserver.prototype.tokenUnmatched = function (token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n };\n TokenListObserver.prototype.refreshTokensForElement = function (element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_a) {\n var previousToken = _a[0],\n currentToken = _a[1];\n return !tokensAreEqual(previousToken, currentToken);\n });\n if (firstDifferingIndex == -1) {\n return [[], []];\n } else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n };\n TokenListObserver.prototype.readTokensForElement = function (element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n };\n return TokenListObserver;\n}();\nexport { TokenListObserver };\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) {\n return content.length;\n }).map(function (content, index) {\n return {\n element: element,\n attributeName: attributeName,\n content: content,\n index: index\n };\n });\n}\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({\n length: length\n }, function (_, index) {\n return [left[index], right[index]];\n });\n}\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}","import { TokenListObserver } from \"./token_list_observer\";\nvar ValueListObserver = /** @class */function () {\n function ValueListObserver(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n Object.defineProperty(ValueListObserver.prototype, \"started\", {\n get: function () {\n return this.tokenListObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n ValueListObserver.prototype.start = function () {\n this.tokenListObserver.start();\n };\n ValueListObserver.prototype.stop = function () {\n this.tokenListObserver.stop();\n };\n ValueListObserver.prototype.refresh = function () {\n this.tokenListObserver.refresh();\n };\n Object.defineProperty(ValueListObserver.prototype, \"element\", {\n get: function () {\n return this.tokenListObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function () {\n return this.tokenListObserver.attributeName;\n },\n enumerable: false,\n configurable: true\n });\n ValueListObserver.prototype.tokenMatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n };\n ValueListObserver.prototype.tokenUnmatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n };\n ValueListObserver.prototype.fetchParseResultForToken = function (token) {\n var parseResult = this.parseResultsByToken.get(token);\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n return parseResult;\n };\n ValueListObserver.prototype.fetchValuesByTokenForElement = function (element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n return valuesByToken;\n };\n ValueListObserver.prototype.parseToken = function (token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return {\n value: value\n };\n } catch (error) {\n return {\n error: error\n };\n }\n };\n return ValueListObserver;\n}();\nexport { ValueListObserver };","import { Action } from \"./action\";\nimport { Binding } from \"./binding\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\nvar BindingObserver = /** @class */function () {\n function BindingObserver(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n BindingObserver.prototype.start = function () {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n };\n BindingObserver.prototype.stop = function () {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n };\n Object.defineProperty(BindingObserver.prototype, \"element\", {\n get: function () {\n return this.context.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"identifier\", {\n get: function () {\n return this.context.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"actionAttribute\", {\n get: function () {\n return this.schema.actionAttribute;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"schema\", {\n get: function () {\n return this.context.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"bindings\", {\n get: function () {\n return Array.from(this.bindingsByAction.values());\n },\n enumerable: false,\n configurable: true\n });\n BindingObserver.prototype.connectAction = function (action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n };\n BindingObserver.prototype.disconnectAction = function (action) {\n var binding = this.bindingsByAction.get(action);\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n };\n BindingObserver.prototype.disconnectAllActions = function () {\n var _this = this;\n this.bindings.forEach(function (binding) {\n return _this.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n };\n // Value observer delegate\n BindingObserver.prototype.parseValueForToken = function (token) {\n var action = Action.forToken(token);\n if (action.identifier == this.identifier) {\n return action;\n }\n };\n BindingObserver.prototype.elementMatchedValue = function (element, action) {\n this.connectAction(action);\n };\n BindingObserver.prototype.elementUnmatchedValue = function (element, action) {\n this.disconnectAction(action);\n };\n return BindingObserver;\n}();\nexport { BindingObserver };","import { StringMapObserver } from \"@stimulus/mutation-observers\";\nvar ValueObserver = /** @class */function () {\n function ValueObserver(context, receiver) {\n this.context = context;\n this.receiver = receiver;\n this.stringMapObserver = new StringMapObserver(this.element, this);\n this.valueDescriptorMap = this.controller.valueDescriptorMap;\n this.invokeChangedCallbacksForDefaultValues();\n }\n ValueObserver.prototype.start = function () {\n this.stringMapObserver.start();\n };\n ValueObserver.prototype.stop = function () {\n this.stringMapObserver.stop();\n };\n Object.defineProperty(ValueObserver.prototype, \"element\", {\n get: function () {\n return this.context.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ValueObserver.prototype, \"controller\", {\n get: function () {\n return this.context.controller;\n },\n enumerable: false,\n configurable: true\n });\n // String map observer delegate\n ValueObserver.prototype.getStringMapKeyForAttribute = function (attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n };\n ValueObserver.prototype.stringMapValueChanged = function (attributeValue, name) {\n this.invokeChangedCallbackForValue(name);\n };\n ValueObserver.prototype.invokeChangedCallbacksForDefaultValues = function () {\n for (var _i = 0, _a = this.valueDescriptors; _i < _a.length; _i++) {\n var _b = _a[_i],\n key = _b.key,\n name_1 = _b.name,\n defaultValue = _b.defaultValue;\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallbackForValue(name_1);\n }\n }\n };\n ValueObserver.prototype.invokeChangedCallbackForValue = function (name) {\n var methodName = name + \"Changed\";\n var method = this.receiver[methodName];\n if (typeof method == \"function\") {\n var value = this.receiver[name];\n method.call(this.receiver, value);\n }\n };\n Object.defineProperty(ValueObserver.prototype, \"valueDescriptors\", {\n get: function () {\n var valueDescriptorMap = this.valueDescriptorMap;\n return Object.keys(valueDescriptorMap).map(function (key) {\n return valueDescriptorMap[key];\n });\n },\n enumerable: false,\n configurable: true\n });\n return ValueObserver;\n}();\nexport { ValueObserver };","import { BindingObserver } from \"./binding_observer\";\nimport { ValueObserver } from \"./value_observer\";\nvar Context = /** @class */function () {\n function Context(module, scope) {\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n try {\n this.controller.initialize();\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n Context.prototype.connect = function () {\n this.bindingObserver.start();\n this.valueObserver.start();\n try {\n this.controller.connect();\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n };\n Context.prototype.disconnect = function () {\n try {\n this.controller.disconnect();\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n this.valueObserver.stop();\n this.bindingObserver.stop();\n };\n Object.defineProperty(Context.prototype, \"application\", {\n get: function () {\n return this.module.application;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"identifier\", {\n get: function () {\n return this.module.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"schema\", {\n get: function () {\n return this.application.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"dispatcher\", {\n get: function () {\n return this.application.dispatcher;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"parentElement\", {\n get: function () {\n return this.element.parentElement;\n },\n enumerable: false,\n configurable: true\n });\n // Error handling\n Context.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element;\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \" + message, detail);\n };\n return Context;\n}();\nexport { Context };","export function readInheritableStaticArrayValues(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (values, constructor) {\n getOwnStaticArrayValues(constructor, propertyName).forEach(function (name) {\n return values.add(name);\n });\n return values;\n }, new Set()));\n}\nexport function readInheritableStaticObjectPairs(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce(function (pairs, constructor) {\n pairs.push.apply(pairs, getOwnStaticObjectPairs(constructor, propertyName));\n return pairs;\n }, []);\n}\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n return ancestors.reverse();\n}\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n var definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n var definition = constructor[propertyName];\n return definition ? Object.keys(definition).map(function (key) {\n return [key, definition[key]];\n }) : [];\n}","var __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n};\nimport { readInheritableStaticArrayValues } from \"./inheritable_statics\";\n/** @hidden */\nexport function bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\nfunction shadow(constructor, properties) {\n var shadowConstructor = extend(constructor);\n var shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\nfunction getBlessedProperties(constructor) {\n var blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce(function (blessedProperties, blessing) {\n var properties = blessing(constructor);\n for (var key in properties) {\n var descriptor = blessedProperties[key] || {};\n blessedProperties[key] = Object.assign(descriptor, properties[key]);\n }\n return blessedProperties;\n }, {});\n}\nfunction getShadowProperties(prototype, properties) {\n return getOwnKeys(properties).reduce(function (shadowProperties, key) {\n var _a;\n var descriptor = getShadowedDescriptor(prototype, properties, key);\n if (descriptor) {\n Object.assign(shadowProperties, (_a = {}, _a[key] = descriptor, _a));\n }\n return shadowProperties;\n }, {});\n}\nfunction getShadowedDescriptor(prototype, properties, key) {\n var shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n var shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n if (!shadowedByValue) {\n var descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n if (shadowingDescriptor) {\n descriptor.get = shadowingDescriptor.get || descriptor.get;\n descriptor.set = shadowingDescriptor.set || descriptor.set;\n }\n return descriptor;\n }\n}\nvar getOwnKeys = function () {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return function (object) {\n return __spreadArrays(Object.getOwnPropertyNames(object), Object.getOwnPropertySymbols(object));\n };\n } else {\n return Object.getOwnPropertyNames;\n }\n}();\nvar extend = function () {\n function extendWithReflect(constructor) {\n function extended() {\n var _newTarget = this && this instanceof extended ? this.constructor : void 0;\n return Reflect.construct(constructor, arguments, _newTarget);\n }\n extended.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: extended\n }\n });\n Reflect.setPrototypeOf(extended, constructor);\n return extended;\n }\n function testReflectExtension() {\n var a = function () {\n this.a.call(this);\n };\n var b = extendWithReflect(a);\n b.prototype.a = function () {};\n return new b();\n }\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return function (constructor) {\n return (/** @class */function (_super) {\n __extends(extended, _super);\n function extended() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return extended;\n }(constructor)\n );\n };\n }\n}();","import { Context } from \"./context\";\nimport { blessDefinition } from \"./definition\";\nvar Module = /** @class */function () {\n function Module(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n Object.defineProperty(Module.prototype, \"identifier\", {\n get: function () {\n return this.definition.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"controllerConstructor\", {\n get: function () {\n return this.definition.controllerConstructor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"contexts\", {\n get: function () {\n return Array.from(this.connectedContexts);\n },\n enumerable: false,\n configurable: true\n });\n Module.prototype.connectContextForScope = function (scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n };\n Module.prototype.disconnectContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n };\n Module.prototype.fetchContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n return context;\n };\n return Module;\n}();\nexport { Module };","import { bless } from \"./blessing\";\n/** @hidden */\nexport function blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor)\n };\n}","var ClassMap = /** @class */function () {\n function ClassMap(scope) {\n this.scope = scope;\n }\n ClassMap.prototype.has = function (name) {\n return this.data.has(this.getDataKey(name));\n };\n ClassMap.prototype.get = function (name) {\n return this.data.get(this.getDataKey(name));\n };\n ClassMap.prototype.getAttributeName = function (name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n };\n ClassMap.prototype.getDataKey = function (name) {\n return name + \"-class\";\n };\n Object.defineProperty(ClassMap.prototype, \"data\", {\n get: function () {\n return this.scope.data;\n },\n enumerable: false,\n configurable: true\n });\n return ClassMap;\n}();\nexport { ClassMap };","export function camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, function (_, char) {\n return char.toUpperCase();\n });\n}\nexport function capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\nexport function dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, char) {\n return \"-\" + char.toLowerCase();\n });\n}","import { dasherize } from \"./string_helpers\";\nvar DataMap = /** @class */function () {\n function DataMap(scope) {\n this.scope = scope;\n }\n Object.defineProperty(DataMap.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DataMap.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n DataMap.prototype.get = function (key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n };\n DataMap.prototype.set = function (key, value) {\n var name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n };\n DataMap.prototype.has = function (key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n };\n DataMap.prototype.delete = function (key) {\n if (this.has(key)) {\n var name_1 = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name_1);\n return true;\n } else {\n return false;\n }\n };\n DataMap.prototype.getAttributeNameForKey = function (key) {\n return \"data-\" + this.identifier + \"-\" + dasherize(key);\n };\n return DataMap;\n}();\nexport { DataMap };","var Guide = /** @class */function () {\n function Guide(logger) {\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n Guide.prototype.warn = function (object, key, message) {\n var warnedKeys = this.warnedKeysByObject.get(object);\n if (!warnedKeys) {\n warnedKeys = new Set();\n this.warnedKeysByObject.set(object, warnedKeys);\n }\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n this.logger.warn(message, object);\n }\n };\n return Guide;\n}();\nexport { Guide };","/** @hidden */\nexport function attributeValueContainsToken(attributeName, token) {\n return \"[\" + attributeName + \"~=\\\"\" + token + \"\\\"]\";\n}","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n};\nimport { attributeValueContainsToken } from \"./selectors\";\nvar TargetSet = /** @class */function () {\n function TargetSet(scope) {\n this.scope = scope;\n }\n Object.defineProperty(TargetSet.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"schema\", {\n get: function () {\n return this.scope.schema;\n },\n enumerable: false,\n configurable: true\n });\n TargetSet.prototype.has = function (targetName) {\n return this.find(targetName) != null;\n };\n TargetSet.prototype.find = function () {\n var _this = this;\n var targetNames = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n return targetNames.reduce(function (target, targetName) {\n return target || _this.findTarget(targetName) || _this.findLegacyTarget(targetName);\n }, undefined);\n };\n TargetSet.prototype.findAll = function () {\n var _this = this;\n var targetNames = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n return targetNames.reduce(function (targets, targetName) {\n return __spreadArrays(targets, _this.findAllTargets(targetName), _this.findAllLegacyTargets(targetName));\n }, []);\n };\n TargetSet.prototype.findTarget = function (targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n };\n TargetSet.prototype.findAllTargets = function (targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n };\n TargetSet.prototype.getSelectorForTargetName = function (targetName) {\n var attributeName = \"data-\" + this.identifier + \"-target\";\n return attributeValueContainsToken(attributeName, targetName);\n };\n TargetSet.prototype.findLegacyTarget = function (targetName) {\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n };\n TargetSet.prototype.findAllLegacyTargets = function (targetName) {\n var _this = this;\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map(function (element) {\n return _this.deprecate(element, targetName);\n });\n };\n TargetSet.prototype.getLegacySelectorForTargetName = function (targetName) {\n var targetDescriptor = this.identifier + \".\" + targetName;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n };\n TargetSet.prototype.deprecate = function (element, targetName) {\n if (element) {\n var identifier = this.identifier;\n var attributeName = this.schema.targetAttribute;\n this.guide.warn(element, \"target:\" + targetName, \"Please replace \" + attributeName + \"=\\\"\" + identifier + \".\" + targetName + \"\\\" with data-\" + identifier + \"-target=\\\"\" + targetName + \"\\\". \" + (\"The \" + attributeName + \" attribute is deprecated and will be removed in a future version of Stimulus.\"));\n }\n return element;\n };\n Object.defineProperty(TargetSet.prototype, \"guide\", {\n get: function () {\n return this.scope.guide;\n },\n enumerable: false,\n configurable: true\n });\n return TargetSet;\n}();\nexport { TargetSet };","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n};\nimport { ClassMap } from \"./class_map\";\nimport { DataMap } from \"./data_map\";\nimport { Guide } from \"./guide\";\nimport { attributeValueContainsToken } from \"./selectors\";\nimport { TargetSet } from \"./target_set\";\nvar Scope = /** @class */function () {\n function Scope(schema, element, identifier, logger) {\n var _this = this;\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n this.containsElement = function (element) {\n return element.closest(_this.controllerSelector) === _this.element;\n };\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n }\n Scope.prototype.findElement = function (selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n };\n Scope.prototype.findAllElements = function (selector) {\n return __spreadArrays(this.element.matches(selector) ? [this.element] : [], this.queryElements(selector).filter(this.containsElement));\n };\n Scope.prototype.queryElements = function (selector) {\n return Array.from(this.element.querySelectorAll(selector));\n };\n Object.defineProperty(Scope.prototype, \"controllerSelector\", {\n get: function () {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n },\n enumerable: false,\n configurable: true\n });\n return Scope;\n}();\nexport { Scope };","import { ValueListObserver } from \"@stimulus/mutation-observers\";\nvar ScopeObserver = /** @class */function () {\n function ScopeObserver(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n ScopeObserver.prototype.start = function () {\n this.valueListObserver.start();\n };\n ScopeObserver.prototype.stop = function () {\n this.valueListObserver.stop();\n };\n Object.defineProperty(ScopeObserver.prototype, \"controllerAttribute\", {\n get: function () {\n return this.schema.controllerAttribute;\n },\n enumerable: false,\n configurable: true\n });\n // Value observer delegate\n /** @hidden */\n ScopeObserver.prototype.parseValueForToken = function (token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n if (!scope) {\n scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n scopesByIdentifier.set(identifier, scope);\n }\n return scope;\n };\n /** @hidden */\n ScopeObserver.prototype.elementMatchedValue = function (element, value) {\n var referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n };\n /** @hidden */\n ScopeObserver.prototype.elementUnmatchedValue = function (element, value) {\n var referenceCount = this.scopeReferenceCounts.get(value);\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n };\n ScopeObserver.prototype.fetchScopesByIdentifierForElement = function (element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n return scopesByIdentifier;\n };\n return ScopeObserver;\n}();\nexport { ScopeObserver };","import { Module } from \"./module\";\nimport { Multimap } from \"@stimulus/multimap\";\nimport { Scope } from \"./scope\";\nimport { ScopeObserver } from \"./scope_observer\";\nvar Router = /** @class */function () {\n function Router(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n Object.defineProperty(Router.prototype, \"element\", {\n get: function () {\n return this.application.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"schema\", {\n get: function () {\n return this.application.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"logger\", {\n get: function () {\n return this.application.logger;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"controllerAttribute\", {\n get: function () {\n return this.schema.controllerAttribute;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"modules\", {\n get: function () {\n return Array.from(this.modulesByIdentifier.values());\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"contexts\", {\n get: function () {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n Router.prototype.start = function () {\n this.scopeObserver.start();\n };\n Router.prototype.stop = function () {\n this.scopeObserver.stop();\n };\n Router.prototype.loadDefinition = function (definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n };\n Router.prototype.unloadIdentifier = function (identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n if (module) {\n this.disconnectModule(module);\n }\n };\n Router.prototype.getContextForElementAndIdentifier = function (element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n if (module) {\n return module.contexts.find(function (context) {\n return context.element == element;\n });\n }\n };\n // Error handler delegate\n /** @hidden */\n Router.prototype.handleError = function (error, message, detail) {\n this.application.handleError(error, message, detail);\n };\n // Scope observer delegate\n /** @hidden */\n Router.prototype.createScopeForElementAndIdentifier = function (element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n };\n /** @hidden */\n Router.prototype.scopeConnected = function (scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.connectContextForScope(scope);\n }\n };\n /** @hidden */\n Router.prototype.scopeDisconnected = function (scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.disconnectContextForScope(scope);\n }\n };\n // Modules\n Router.prototype.connectModule = function (module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.connectContextForScope(scope);\n });\n };\n Router.prototype.disconnectModule = function (module) {\n this.modulesByIdentifier.delete(module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.disconnectContextForScope(scope);\n });\n };\n return Router;\n}();\nexport { Router };","export var defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\"\n};","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n};\nimport { Dispatcher } from \"./dispatcher\";\nimport { Router } from \"./router\";\nimport { defaultSchema } from \"./schema\";\nvar Application = /** @class */function () {\n function Application(element, schema) {\n if (element === void 0) {\n element = document.documentElement;\n }\n if (schema === void 0) {\n schema = defaultSchema;\n }\n this.logger = console;\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n Application.start = function (element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n };\n Application.prototype.start = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, domReady()];\n case 1:\n _a.sent();\n this.dispatcher.start();\n this.router.start();\n return [2 /*return*/];\n }\n });\n });\n };\n\n Application.prototype.stop = function () {\n this.dispatcher.stop();\n this.router.stop();\n };\n Application.prototype.register = function (identifier, controllerConstructor) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n };\n Application.prototype.load = function (head) {\n var _this = this;\n var rest = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n var definitions = Array.isArray(head) ? head : __spreadArrays([head], rest);\n definitions.forEach(function (definition) {\n return _this.router.loadDefinition(definition);\n });\n };\n Application.prototype.unload = function (head) {\n var _this = this;\n var rest = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n var identifiers = Array.isArray(head) ? head : __spreadArrays([head], rest);\n identifiers.forEach(function (identifier) {\n return _this.router.unloadIdentifier(identifier);\n });\n };\n Object.defineProperty(Application.prototype, \"controllers\", {\n // Controllers\n get: function () {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n },\n enumerable: false,\n configurable: true\n });\n Application.prototype.getControllerForElementAndIdentifier = function (element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n };\n // Error handling\n Application.prototype.handleError = function (error, message, detail) {\n this.logger.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n };\n return Application;\n}();\nexport { Application };\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", resolve);\n } else {\n resolve();\n }\n });\n}","import { readInheritableStaticArrayValues } from \"./inheritable_statics\";\nimport { capitalize } from \"./string_helpers\";\n/** @hidden */\nexport function ClassPropertiesBlessing(constructor) {\n var classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce(function (properties, classDefinition) {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\nfunction propertiesForClassDefinition(key) {\n var _a;\n var name = key + \"Class\";\n return _a = {}, _a[name] = {\n get: function () {\n var classes = this.classes;\n if (classes.has(key)) {\n return classes.get(key);\n } else {\n var attribute = classes.getAttributeName(key);\n throw new Error(\"Missing attribute \\\"\" + attribute + \"\\\"\");\n }\n }\n }, _a[\"has\" + capitalize(name)] = {\n get: function () {\n return this.classes.has(key);\n }\n }, _a;\n}","import { readInheritableStaticArrayValues } from \"./inheritable_statics\";\nimport { capitalize } from \"./string_helpers\";\n/** @hidden */\nexport function TargetPropertiesBlessing(constructor) {\n var targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce(function (properties, targetDefinition) {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\nfunction propertiesForTargetDefinition(name) {\n var _a;\n return _a = {}, _a[name + \"Target\"] = {\n get: function () {\n var target = this.targets.find(name);\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\" + this.identifier + \".\" + name + \"\\\"\");\n }\n }\n }, _a[name + \"Targets\"] = {\n get: function () {\n return this.targets.findAll(name);\n }\n }, _a[\"has\" + capitalize(name) + \"Target\"] = {\n get: function () {\n return this.targets.has(name);\n }\n }, _a;\n}","import { readInheritableStaticObjectPairs } from \"./inheritable_statics\";\nimport { camelize, capitalize, dasherize } from \"./string_helpers\";\n/** @hidden */\nexport function ValuePropertiesBlessing(constructor) {\n var valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n var propertyDescriptorMap = {\n valueDescriptorMap: {\n get: function () {\n var _this = this;\n return valueDefinitionPairs.reduce(function (result, valueDefinitionPair) {\n var _a;\n var valueDescriptor = parseValueDefinitionPair(valueDefinitionPair);\n var attributeName = _this.data.getAttributeNameForKey(valueDescriptor.key);\n return Object.assign(result, (_a = {}, _a[attributeName] = valueDescriptor, _a));\n }, {});\n }\n }\n };\n return valueDefinitionPairs.reduce(function (properties, valueDefinitionPair) {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\n/** @hidden */\nexport function propertiesForValueDefinitionPair(valueDefinitionPair) {\n var _a;\n var definition = parseValueDefinitionPair(valueDefinitionPair);\n var type = definition.type,\n key = definition.key,\n name = definition.name;\n var read = readers[type],\n write = writers[type] || writers.default;\n return _a = {}, _a[name] = {\n get: function () {\n var value = this.data.get(key);\n if (value !== null) {\n return read(value);\n } else {\n return definition.defaultValue;\n }\n },\n set: function (value) {\n if (value === undefined) {\n this.data.delete(key);\n } else {\n this.data.set(key, write(value));\n }\n }\n }, _a[\"has\" + capitalize(name)] = {\n get: function () {\n return this.data.has(key);\n }\n }, _a;\n}\nfunction parseValueDefinitionPair(_a) {\n var token = _a[0],\n typeConstant = _a[1];\n var type = parseValueTypeConstant(typeConstant);\n return valueDescriptorForTokenAndType(token, type);\n}\nfunction parseValueTypeConstant(typeConstant) {\n switch (typeConstant) {\n case Array:\n return \"array\";\n case Boolean:\n return \"boolean\";\n case Number:\n return \"number\";\n case Object:\n return \"object\";\n case String:\n return \"string\";\n }\n throw new Error(\"Unknown value type constant \\\"\" + typeConstant + \"\\\"\");\n}\nfunction valueDescriptorForTokenAndType(token, type) {\n var key = dasherize(token) + \"-value\";\n return {\n type: type,\n key: key,\n name: camelize(key),\n get defaultValue() {\n return defaultValuesByType[type];\n }\n };\n}\nvar defaultValuesByType = {\n get array() {\n return [];\n },\n boolean: false,\n number: 0,\n get object() {\n return {};\n },\n string: \"\"\n};\nvar readers = {\n array: function (value) {\n var array = JSON.parse(value);\n if (!Array.isArray(array)) {\n throw new TypeError(\"Expected array\");\n }\n return array;\n },\n boolean: function (value) {\n return !(value == \"0\" || value == \"false\");\n },\n number: function (value) {\n return parseFloat(value);\n },\n object: function (value) {\n var object = JSON.parse(value);\n if (object === null || typeof object != \"object\" || Array.isArray(object)) {\n throw new TypeError(\"Expected object\");\n }\n return object;\n },\n string: function (value) {\n return value;\n }\n};\nvar writers = {\n default: writeString,\n array: writeJSON,\n object: writeJSON\n};\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\nfunction writeString(value) {\n return \"\" + value;\n}","import { ClassPropertiesBlessing } from \"./class_properties\";\nimport { TargetPropertiesBlessing } from \"./target_properties\";\nimport { ValuePropertiesBlessing } from \"./value_properties\";\nvar Controller = /** @class */function () {\n function Controller(context) {\n this.context = context;\n }\n Object.defineProperty(Controller.prototype, \"application\", {\n get: function () {\n return this.context.application;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"scope\", {\n get: function () {\n return this.context.scope;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"targets\", {\n get: function () {\n return this.scope.targets;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"classes\", {\n get: function () {\n return this.scope.classes;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"data\", {\n get: function () {\n return this.scope.data;\n },\n enumerable: false,\n configurable: true\n });\n Controller.prototype.initialize = function () {\n // Override in your subclass to set up initial controller state\n };\n Controller.prototype.connect = function () {\n // Override in your subclass to respond when the controller is connected to the DOM\n };\n Controller.prototype.disconnect = function () {\n // Override in your subclass to respond when the controller is disconnected from the DOM\n };\n Controller.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];\n Controller.targets = [];\n Controller.values = {};\n return Controller;\n}();\nexport { Controller };","// Initialize a jQuery object\ndefine([\"../core\", \"../var/document\", \"../var/isFunction\", \"./var/rsingleTag\", \"../traversing/findFilter\"], function (jQuery, document, isFunction, rsingleTag) {\n \"use strict\";\n\n // A central reference to the root jQuery(document)\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (trac-9521)\n // Strict HTML recognition (trac-11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem;\n\n // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n if (!selector) {\n return this;\n }\n\n // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n root = root || rootjQuery;\n\n // Handle HTML strings\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n }\n\n // Match html or make sure no context is specified for #id\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context;\n\n // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true));\n\n // HANDLE: $(html, props)\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]);\n\n // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n return this;\n\n // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n return this;\n }\n\n // HANDLE: $(expr, $(...))\n } else if (!context || context.jquery) {\n return (context || root).find(selector);\n\n // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n }\n\n // HANDLE: $(DOMElement)\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this;\n\n // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) :\n // Execute immediately if ready is not present\n selector(jQuery);\n }\n return jQuery.makeArray(selector, this);\n };\n\n // Give the init function the jQuery prototype for later instantiation\n init.prototype = jQuery.fn;\n\n // Initialize central reference\n rootjQuery = jQuery(document);\n return init;\n});","define([\"../Data\"], function (Data) {\n \"use strict\";\n\n return new Data();\n});","define(function () {\n \"use strict\";\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n return nodeName;\n});","define(function () {\n \"use strict\";\n\n // Only count HTML whitespace\n // Other whitespace should count in values\n // https://infra.spec.whatwg.org/#ascii-whitespace\n return /[^\\x20\\t\\r\\n\\f]+/g;\n});","define(function () {\n \"use strict\";\n\n // All support tests are defined in their respective modules.\n return {};\n});","define([\"../core\", \"../core/toType\", \"../var/isFunction\"], function (jQuery, toType, isFunction) {\n \"use strict\";\n\n // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n var access = function (elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null;\n\n // Sets many values\n if (toType(key) === \"object\") {\n chainable = true;\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n }\n\n // Sets one value\n } else if (value !== undefined) {\n chainable = true;\n if (!isFunction(value)) {\n raw = true;\n }\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null;\n\n // ...except when executing function values\n } else {\n bulk = fn;\n fn = function (elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n if (chainable) {\n return elems;\n }\n\n // Gets\n if (bulk) {\n return fn.call(elems);\n }\n return len ? fn(elems[0], key) : emptyGet;\n };\n return access;\n});","define([\"./core\", \"./var/document\", \"./var/isFunction\", \"./var/rnothtmlwhite\", \"./ajax/var/location\", \"./ajax/var/nonce\", \"./ajax/var/rquery\", \"./core/init\", \"./core/parseXML\", \"./event/trigger\", \"./deferred\", \"./serialize\" // jQuery.param\n], function (jQuery, document, isFunction, rnothtmlwhite, location, nonce, rquery) {\n \"use strict\";\n\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // trac-7653, trac-8125, trac-8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href;\n\n // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func);\n\n // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n }\n\n // Base inspection function for prefilters and transports\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n }\n\n // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes trac-9887\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n return target;\n }\n\n /* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes;\n\n // Remove auto dataType and get content-type in the process\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n }\n\n // Check if we're dealing with a known content-type\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n }\n\n // Check to see if we have a response for the expected dataType\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n if (!firstDataType) {\n firstDataType = type;\n }\n }\n\n // Or just use first one\n finalDataType = finalDataType || firstDataType;\n }\n\n // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n return responses[finalDataType];\n }\n }\n\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice();\n\n // Create converters map with lowercased keys\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n current = dataTypes.shift();\n\n // Convert to each sequential dataType\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n }\n\n // Apply the dataFilter if provided\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n prev = current;\n current = dataTypes.shift();\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev;\n\n // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current];\n\n // If none found, seek a pair\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2];\n\n // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n break;\n }\n }\n }\n }\n\n // Apply converter (if not an equivalence)\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s.throws) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n return {\n state: \"success\",\n data: response\n };\n }\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function (target, settings) {\n return settings ?\n // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) :\n // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function (url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (typeof url === \"object\") {\n options = url;\n url = undefined;\n }\n\n // Force options to be an object\n options = options || {};\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function (key) {\n var match;\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function () {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function (name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function (type) {\n if (completed == null) {\n s.mimeType = type;\n }\n return this;\n },\n // Status-dependent callbacks\n statusCode: function (map) {\n var code;\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n statusCode[code] = [statusCode[code], map[code]];\n }\n }\n }\n return this;\n },\n // Cancel the request\n abort: function (statusText) {\n var finalText = statusText || strAbort;\n if (transport) {\n transport.abort(finalText);\n }\n done(0, finalText);\n return this;\n }\n };\n\n // Attach deferreds\n deferred.promise(jqXHR);\n\n // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (trac-10093: consistency with old signature)\n // We also use the url parameter if available\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\");\n\n // Alias method option to type as per ticket trac-12004\n s.type = options.method || options.type || s.method || s.type;\n\n // Extract dataTypes list\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"];\n\n // A cross-domain request is in order when the origin doesn't match the current origin.\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\");\n\n // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n try {\n urlAnchor.href = s.url;\n\n // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n }\n\n // Convert data if not already a string\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n }\n\n // Apply prefilters\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR);\n\n // If request was aborted inside a prefilter, stop there\n if (completed) {\n return jqXHR;\n }\n\n // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n fireGlobals = jQuery.event && s.global;\n\n // Watch for a new set of requests\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n }\n\n // Uppercase the type\n s.type = s.type.toUpperCase();\n\n // Determine if request has content\n s.hasContent = !rnoContent.test(s.type);\n\n // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n cacheURL = s.url.replace(rhash, \"\");\n\n // More options handling for requests with no content\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length);\n\n // If data is available and should be processed, append data to url\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data;\n\n // trac-9682: remove data so that it's not used in an eventual retry\n delete s.data;\n }\n\n // Add or update anti-cache param if needed\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n }\n\n // Put hash and anti-cache on the URL that will be requested (gh-1732)\n s.url = cacheURL + uncached;\n\n // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n }\n\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n }\n\n // Set the correct header, if data is being sent\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n }\n\n // Set the Accepts header for the server, depending on the dataType\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]);\n\n // Check for headers option\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n }\n\n // Allow custom headers/mimetypes and early abort\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n }\n\n // Aborting is no longer a cancellation\n strAbort = \"abort\";\n\n // Install callbacks on deferreds\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error);\n\n // Get transport\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR);\n\n // If no transport, we auto-abort\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1;\n\n // Send global event\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n }\n\n // If request was aborted inside ajaxSend, stop there\n if (completed) {\n return jqXHR;\n }\n\n // Timeout\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n }\n\n // Propagate others as results\n done(-1, e);\n }\n }\n\n // Callback for when everything is done\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText;\n\n // Ignore repeat invocations\n if (completed) {\n return;\n }\n completed = true;\n\n // Clear timeout if it exists\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n }\n\n // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n transport = undefined;\n\n // Cache response headers\n responseHeadersString = headers || \"\";\n\n // Set readyState\n jqXHR.readyState = status > 0 ? 4 : 0;\n\n // Determine if successful\n isSuccess = status >= 200 && status < 300 || status === 304;\n\n // Get response data\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n }\n\n // Use a noop converter for missing script but not if jsonp\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1 && jQuery.inArray(\"json\", s.dataTypes) < 0) {\n s.converters[\"text script\"] = function () {};\n }\n\n // Convert no matter what (that way responseXXX fields are always set)\n response = ajaxConvert(s, response, jqXHR, isSuccess);\n\n // If successful, handle type chaining\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n modified = jqXHR.getResponseHeader(\"etag\");\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n }\n\n // if no content\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\";\n\n // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\";\n\n // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n if (status || !statusText) {\n statusText = \"error\";\n if (status < 0) {\n status = 0;\n }\n }\n }\n\n // Set data for the fake xhr object\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\";\n\n // Success/Error\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n }\n\n // Status-dependent callbacks\n jqXHR.statusCode(statusCode);\n statusCode = undefined;\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n }\n\n // Complete\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]);\n\n // Handle the global AJAX counter\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n return jqXHR;\n },\n getJSON: function (url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function (url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n }\n\n // The url can be an options object (which then must have .url)\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n return jQuery;\n});","define([\"./core\", \"./selector\", \"./traversing\", \"./callbacks\", \"./deferred\", \"./deferred/exceptionHook\", \"./core/ready\", \"./data\", \"./queue\", \"./queue/delay\", \"./attributes\", \"./event\", \"./event/focusin\", \"./manipulation\", \"./manipulation/_evalUrl\", \"./wrap\", \"./css\", \"./css/hiddenVisibleSelectors\", \"./serialize\", \"./ajax\", \"./ajax/xhr\", \"./ajax/script\", \"./ajax/jsonp\", \"./ajax/load\", \"./core/parseXML\", \"./core/parseHTML\", \"./effects\", \"./effects/animatedSelector\", \"./offset\", \"./dimensions\", \"./deprecated\", \"./exports/amd\", \"./exports/global\"], function (jQuery) {\n \"use strict\";\n\n return jQuery;\n});","define([\"../var/class2type\", \"../var/toString\"], function (class2type, toString) {\n \"use strict\";\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n }\n\n // Support: Android <=2.3 only (functionish RegExp)\n return typeof obj === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : typeof obj;\n }\n return toType;\n});","define([\"./core\", \"./var/getProto\", \"./var/indexOf\", \"./traversing/var/dir\", \"./traversing/var/siblings\", \"./traversing/var/rneedsContext\", \"./core/nodeName\", \"./core/init\", \"./traversing/findFilter\", \"./selector\"], function (jQuery, getProto, indexOf, dir, siblings, rneedsContext, nodeName) {\n \"use strict\";\n\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function (target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function (selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors);\n\n // Positional selectors never match, since there's no _selection_ context\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 :\n // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function (elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n }\n\n // Index in selector\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n }\n\n // Locate the position of the desired element\n return indexOf.call(this,\n // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function (selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function (selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n return cur;\n }\n jQuery.each({\n parent: function (elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function (elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function (elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function (elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function (elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function (elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function (elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function (elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function (elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function (elem) {\n return siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function (elem) {\n return siblings(elem.firstChild);\n },\n contents: function (elem) {\n if (elem.contentDocument != null &&\n // Support: IE 11+\n // elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n }\n\n // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n }\n\n // Reverse order for parents* and prev-derivatives\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n return this.pushStack(matched);\n };\n });\n return jQuery;\n});","define([\"./core\", \"./var/isFunction\", \"./var/slice\", \"./callbacks\"], function (jQuery, isFunction, slice) {\n \"use strict\";\n\n function Identity(v) {\n return v;\n }\n function Thrower(ex) {\n throw ex;\n }\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject);\n\n // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject);\n\n // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n }\n\n // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n jQuery.extend({\n Deferred: function (func) {\n var tuples = [\n // action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n state = \"pending\",\n promise = {\n state: function () {\n return state;\n },\n always: function () {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function (fn) {\n return promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function /* fnDone, fnFail, fnProgress */\n () {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]];\n\n // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function (onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function () {\n var returned, then;\n\n // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n if (depth < maxDepth) {\n return;\n }\n returned = handler.apply(that, args);\n\n // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n }\n\n // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n then = returned && (\n // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n typeof returned === \"object\" || typeof returned === \"function\") && returned.then;\n\n // Handle a returned thenable\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special));\n\n // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n }\n\n // Handle all other returned values\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n }\n\n // Process the value(s)\n // Default process is resolve\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.stackTrace);\n }\n\n // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n deferred.rejectWith(that, args);\n }\n }\n };\n\n // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the stack, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getStackHook) {\n process.stackTrace = jQuery.Deferred.getStackHook();\n }\n window.setTimeout(process);\n }\n };\n }\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith));\n\n // fulfilled_handlers.add( ... )\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity));\n\n // rejected_handlers.add( ... )\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function (obj) {\n return obj != null ? jQuery.extend(obj, promise) : promise;\n }\n },\n deferred = {};\n\n // Add list-specific methods\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5];\n\n // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n promise[tuple[1]] = list.add;\n\n // Handle state\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n state = stateString;\n },\n // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable,\n // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable,\n // progress_callbacks.lock\n tuples[0][2].lock,\n // progress_handlers.lock\n tuples[0][3].lock);\n }\n\n // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n list.add(tuple[3].fire);\n\n // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n };\n\n // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n deferred[tuple[0] + \"With\"] = list.fireWith;\n });\n\n // Make the deferred a promise\n promise.promise(deferred);\n\n // Call given func if any\n if (func) {\n func.call(deferred, deferred);\n }\n\n // All done!\n return deferred;\n },\n // Deferred helper\n when: function (singleValue) {\n var\n // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = slice.call(arguments),\n // the primary Deferred\n primary = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function (i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? slice.call(arguments) : value;\n if (! --remaining) {\n primary.resolveWith(resolveContexts, resolveValues);\n }\n };\n };\n\n // Single- and empty arguments are adopted like Promise.resolve\n if (remaining <= 1) {\n adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining);\n\n // Use .then() to unwrap secondary thenables (cf. gh-3000)\n if (primary.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return primary.then();\n }\n }\n\n // Multiple arguments are aggregated like Promise.all array elements\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), primary.reject);\n }\n return primary.promise();\n }\n });\n return jQuery;\n});","define([\"./core\", \"./var/document\", \"./var/documentElement\", \"./var/isFunction\", \"./var/rnothtmlwhite\", \"./var/rcheckableType\", \"./var/slice\", \"./data/var/acceptData\", \"./data/var/dataPriv\", \"./core/nodeName\", \"./core/init\", \"./selector\"], function (jQuery, document, documentElement, isFunction, rnothtmlwhite, rcheckableType, slice, acceptData, dataPriv, nodeName) {\n \"use strict\";\n\n var rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n function returnTrue() {\n return true;\n }\n function returnFalse() {\n return false;\n }\n\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous, except when they are no-op.\n // So expect focus to be synchronous when the element is already active,\n // and blur to be synchronous when the element is not already active.\n // (focus and blur are always synchronous in other supported browsers,\n // this just defines when we can count on it).\n function expectSync(elem, type) {\n return elem === safeActiveElement() === (type === \"focus\");\n }\n\n // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n function on(elem, types, selector, data, fn, one) {\n var origFn, type;\n\n // Types can be a map of types/handlers\n if (typeof types === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n for (type in types) {\n on(elem, type, selector, data, types[type], one);\n }\n return elem;\n }\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n if (one === 1) {\n origFn = fn;\n fn = function (event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n };\n\n // Use same guid so caller can remove using origFn\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n jQuery.event = {\n global: {},\n add: function (elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem);\n\n // Only attach events to objects that accept data\n if (!acceptData(elem)) {\n return;\n }\n\n // Caller can pass in an object of custom data in lieu of the handler\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n }\n\n // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n }\n\n // Make sure that the handler has a unique ID, used to find/remove it later\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n }\n\n // Init the element's event structure and main handler, if this is the first\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n }\n\n // Handle multiple events separated by a space\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort();\n\n // There *must* be a type, no attaching namespace-only handlers\n if (!type) {\n continue;\n }\n\n // If event changes its type, use the special event handlers for the changed type\n special = jQuery.event.special[type] || {};\n\n // If selector defined, determine special event api type, otherwise given type\n type = (selector ? special.delegateType : special.bindType) || type;\n\n // Update special based on newly reset type\n special = jQuery.event.special[type] || {};\n\n // handleObj is passed to all event handlers\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn);\n\n // Init the event handler queue if we're the first\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0;\n\n // Only use addEventListener if the special events handler returns false\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n if (special.add) {\n special.add.call(elem, handleObj);\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n }\n\n // Add to the element's handler list, delegates in front\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n }\n\n // Keep track of which events have ever been used, for event optimization\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function (elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n if (!elemData || !(events = elemData.events)) {\n return;\n }\n\n // Once for each type.namespace in types; type may be omitted\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort();\n\n // Unbind all events (on this namespace, if provided) for the element\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n continue;\n }\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\");\n\n // Remove matching events\n origCount = j = handlers.length;\n while (j--) {\n handleObj = handlers[j];\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n }\n\n // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n delete events[type];\n }\n }\n\n // Remove data and the expando if it's no longer used\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function (nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {};\n\n // Use the fix-ed jQuery.Event rather than the (read-only) native event\n args[0] = event;\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n event.delegateTarget = this;\n\n // Call the preDispatch hook for the mapped type, and let it bail if desired\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n }\n\n // Determine handlers\n handlerQueue = jQuery.event.handlers.call(this, event, handlers);\n\n // Run delegates first; they may want to stop propagation beneath us\n i = 0;\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n }\n\n // Call the postDispatch hook for the mapped type\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n return event.result;\n },\n handlers: function (event, handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = handlers.delegateCount,\n cur = event.target;\n\n // Find delegate handlers\n if (delegateCount &&\n // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType &&\n // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (trac-13208)\n // Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n for (i = 0; i < delegateCount; i++) {\n handleObj = handlers[i];\n\n // Don't conflict with Object.prototype properties (trac-13203)\n sel = handleObj.selector + \" \";\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n }\n\n // Add the remaining (directly-bound) handlers\n cur = this;\n if (delegateCount < handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: handlers.slice(delegateCount)\n });\n }\n return handlerQueue;\n },\n addProp: function (name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function (value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function (originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data;\n\n // Claim the first handler\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n }\n\n // Return false to allow normal processing in the caller\n return false;\n },\n trigger: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data;\n\n // Force setup before triggering a click\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n }\n\n // Return non-false to allow normal event-path propagation\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function (event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function (event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\n };\n\n // Ensure the presence of an event listener that handles manually-triggered\n // synthetic events by interrupting progress until reinvoked in response to\n // *native* events that it fires directly, ensuring that state changes have\n // already occurred before other listeners are invoked.\n function leverageNative(el, type, expectSync) {\n // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n if (!expectSync) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n return;\n }\n\n // Register the controller as a special universal handler for all event namespaces\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function (event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n // Saved data should be false in such cases, but might be a leftover capture object\n // from an async native handler (gh-4350)\n if (!saved.length) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = slice.call(arguments);\n dataPriv.set(this, type, saved);\n\n // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault();\n\n // Support: Chrome 86+\n // In Chrome, if an element having a focusout handler is blurred by\n // clicking outside of it, it invokes the handler synchronously. If\n // that handler calls `.remove()` on the element, the data is cleared,\n // leaving `result` undefined. We need to guard against this.\n return result && result.value;\n }\n\n // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering the\n // native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n }\n\n // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger(\n // Support: IE <=9 - 11+\n // Extend with the prototype to reset the above stopImmediatePropagation()\n jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n });\n\n // Abort handling of the native event\n event.stopImmediatePropagation();\n }\n }\n });\n }\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n }\n\n // Event object\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type;\n\n // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined &&\n // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse;\n\n // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (trac-504, trac-13143)\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget;\n\n // Event type\n } else {\n this.type = src;\n }\n\n // Put explicitly provided properties onto the event object\n if (props) {\n jQuery.extend(this, props);\n }\n\n // Create a timestamp if incoming event doesn't have one\n this.timeStamp = src && src.timeStamp || Date.now();\n\n // Mark it as fixed\n this[jQuery.expando] = true;\n };\n\n // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function () {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function () {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function () {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n this.stopPropagation();\n }\n };\n\n // Includes all common event props including KeyEvent and MouseEvent specific props\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: true\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function () {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync);\n\n // Return false to allow normal processing in the caller\n return false;\n },\n trigger: function () {\n // Force setup before trigger\n leverageNative(this, type);\n\n // Return non-false to allow normal event-path propagation\n return true;\n },\n // Suppress native focus or blur if we're currently inside\n // a leveraged native-event stack\n _default: function (event) {\n return dataPriv.get(event.target, type);\n },\n delegateType: delegateType\n };\n });\n\n // Create mouseenter/leave events using mouseover/out and event-time checks\n // so that event delegation works in jQuery.\n // Do the same for pointerenter/pointerleave and pointerover/pointerout\n //\n // Support: Safari 7 only\n // Safari sends mouseenter too often; see:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n // for the description of the bug (it existed in older Chrome versions as well).\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function (event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj;\n\n // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn);\n },\n one: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn, 1);\n },\n off: function (types, selector, fn) {\n var handleObj, type;\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n if (typeof types === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n return this;\n }\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n if (fn === false) {\n fn = returnFalse;\n }\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n return jQuery;\n});","define(function () {\n \"use strict\";\n\n return [];\n});","define(function () {\n \"use strict\";\n\n return function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n});","define([], function () {\n \"use strict\";\n\n // Matches dashed string for camelizing\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g;\n\n // Used by camelCase as callback to replace()\n function fcamelCase(_all, letter) {\n return letter.toUpperCase();\n }\n\n // Convert dashed to camelCase; used by the css and data modules\n // Support: IE <=9 - 11, Edge 12 - 15\n // Microsoft forgot to hump their vendor prefix (trac-9572)\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n return camelCase;\n});","define([\"./core\", \"./core/access\", \"./core/camelCase\", \"./core/nodeName\", \"./var/rcssNum\", \"./css/var/rnumnonpx\", \"./css/var/rcustomProp\", \"./css/var/cssExpand\", \"./css/var/getStyles\", \"./css/var/swap\", \"./css/curCSS\", \"./css/adjustCSS\", \"./css/addGetHookIf\", \"./css/support\", \"./css/finalPropName\", \"./core/init\", \"./core/ready\", \"./selector\" // contains\n], function (jQuery, access, camelCase, nodeName, rcssNum, rnumnonpx, rcustomProp, cssExpand, getStyles, swap, curCSS, adjustCSS, addGetHookIf, support, finalPropName) {\n \"use strict\";\n\n var\n // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ?\n // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0;\n\n // Adjustment may not be necessary\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n if (box === \"margin\") {\n delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n }\n\n // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n\n // For \"border\" or \"margin\", add border\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n\n // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n\n // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n }\n\n // For \"content\" or \"padding\", subtract border\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n }\n\n // Account for positive content-box scroll gutter when requested by providing computedVal\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5\n\n // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n return delta;\n }\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1);\n\n // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n val = \"auto\";\n }\n\n // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n if ((!support.boxSizingReliable() && isBorderBox ||\n // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") ||\n // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" ||\n // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") &&\n // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\";\n\n // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n valueIsBorderBox = offsetProp in elem;\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n }\n\n // Normalize \"\" and auto\n val = parseFloat(val) || 0;\n\n // Adjust for the element's box model\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles,\n // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function (elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n \"animationIterationCount\": true,\n \"columnCount\": true,\n \"fillOpacity\": true,\n \"flexGrow\": true,\n \"flexShrink\": true,\n \"fontWeight\": true,\n \"gridArea\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnStart\": true,\n \"gridRow\": true,\n \"gridRowEnd\": true,\n \"gridRowStart\": true,\n \"lineHeight\": true,\n \"opacity\": true,\n \"order\": true,\n \"orphans\": true,\n \"widows\": true,\n \"zIndex\": true,\n \"zoom\": true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function (elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n }\n\n // Make sure that we're working with the right name\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style;\n\n // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n if (!isCustomProp) {\n name = finalPropName(origName);\n }\n\n // Gets hook for the prefixed version, then unprefixed version\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\n\n // Check if we're setting a value\n if (value !== undefined) {\n type = typeof value;\n\n // Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret);\n\n // Fixes bug trac-9237\n type = \"number\";\n }\n\n // Make sure that null and NaN values aren't set (trac-7116)\n if (value == null || value !== value) {\n return;\n }\n\n // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n }\n\n // background-* props affect original clone's values\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n }\n\n // If a hook was provided, use that value, otherwise just set the specified value\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n }\n\n // Otherwise just get the value from the style object\n return style[name];\n }\n },\n css: function (elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name);\n\n // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n if (!isCustomProp) {\n name = finalPropName(origName);\n }\n\n // Try prefixed name followed by the unprefixed name\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\n\n // If a hook was provided get the computed value from there\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n }\n\n // Otherwise, if a way to get the computed value exists, use that\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n }\n\n // Convert \"normal\" to computed value\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n }\n\n // Make numeric if forced or a qualifier was provided and val looks numeric\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function (elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && (\n // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function (elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0;\n\n // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n }\n\n // Convert to pixels if value adjustment is needed\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n });\n\n // These hooks are used by animate to expand properties\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function (value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n return expanded;\n }\n };\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function (name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n return map;\n }\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n return jQuery;\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.slice;\n});","define(function () {\n \"use strict\";\n\n // [[Class]] -> type pairs\n return {};\n});","define(function () {\n \"use strict\";\n\n /**\n * Determines whether an object can have data\n */\n return function (owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n});","define([\"../core\", \"../var/documentElement\", \"../selector\" // jQuery.contains\n], function (jQuery, documentElement) {\n \"use strict\";\n\n var isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n };\n\n // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n if (documentElement.getRootNode) {\n isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n return isAttached;\n});","define([\"./document\"], function (document) {\n \"use strict\";\n\n return document.documentElement;\n});","define([\"./core\", \"./core/isAttached\", \"./var/flat\", \"./var/isFunction\", \"./var/push\", \"./var/rcheckableType\", \"./core/access\", \"./manipulation/var/rtagName\", \"./manipulation/var/rscriptType\", \"./manipulation/wrapMap\", \"./manipulation/getAll\", \"./manipulation/setGlobalEval\", \"./manipulation/buildFragment\", \"./manipulation/support\", \"./data/var/dataPriv\", \"./data/var/dataUser\", \"./data/var/acceptData\", \"./core/DOMEval\", \"./core/nodeName\", \"./core/init\", \"./traversing\", \"./selector\", \"./event\"], function (jQuery, isAttached, flat, isFunction, push, rcheckableType, access, rtagName, rscriptType, wrapMap, getAll, setGlobalEval, buildFragment, support, dataPriv, dataUser, acceptData, DOMEval, nodeName) {\n \"use strict\";\n\n var\n // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g;\n\n // Prefer a tbody over its parent table for containing new rows\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n return elem;\n }\n\n // Replace/restore the type attribute of script elements for safe DOM manipulation\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n return elem;\n }\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n if (dest.nodeType !== 1) {\n return;\n }\n\n // 1. Copy private data: events, handlers, etc.\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n }\n\n // 2. Copy user data\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n }\n\n // Fix IE bugs, see support tests\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase();\n\n // Fails to persist the checked state of a cloned checkbox or radio button.\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked;\n\n // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value);\n\n // We can't cloneNode fragments that contain checked, in WebKit\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n domManip(self, args, callback, ignored);\n });\n }\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n if (fragment.childNodes.length === 1) {\n fragment = first;\n }\n\n // Require either new content or an interest in ignored elements to invoke the callback\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length;\n\n // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (trac-8070).\n for (; i < l; i++) {\n node = fragment;\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true);\n\n // Keep references to cloned scripts for later restoration\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n callback.call(collection[i], node, i);\n }\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument;\n\n // Reenable scripts\n jQuery.map(scripts, restoreScript);\n\n // Evaluate executable scripts on first document insertion\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n // Unwrap a CDATA section containing script contents. This shouldn't be\n // needed as in XML documents they're already not visible when\n // inspecting element contents and in HTML documents they have no\n // meaning but we're preserving that logic for backwards compatibility.\n // This will be removed completely in 4.0. See gh-4904.\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n return collection;\n }\n function remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n node.parentNode.removeChild(node);\n }\n }\n return elem;\n }\n jQuery.extend({\n htmlPrefilter: function (html) {\n return html;\n },\n clone: function (elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem);\n\n // Fix IE cloning issues\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n }\n\n // Copy the events from the original to the clone\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n }\n\n // Preserve script evaluation history\n destElements = getAll(clone, \"script\");\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n }\n\n // Return the cloned set\n return clone;\n },\n cleanData: function (elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type);\n\n // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n }\n\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataPriv.expando] = undefined;\n }\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function (selector) {\n return remove(this, selector, true);\n },\n remove: function (selector) {\n return remove(this, selector);\n },\n text: function (value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function () {\n var elem,\n i = 0;\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false));\n\n // Remove any remaining nodes\n elem.textContent = \"\";\n }\n }\n return this;\n },\n clone: function (dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function (value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n }\n\n // See if we can take a shortcut and just use innerHTML\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n try {\n for (; i < l; i++) {\n elem = this[i] || {};\n\n // Remove element nodes and prevent memory leaks\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n elem = 0;\n\n // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function () {\n var ignored = [];\n\n // Make the changes, replacing each non-ignored context element with the new content\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n if (parent) {\n parent.replaceChild(elem, this);\n }\n }\n\n // Force callback invocation\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems);\n\n // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n push.apply(ret, elems.get());\n }\n return this.pushStack(ret);\n };\n });\n return jQuery;\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.indexOf;\n});","define([\"./class2type\"], function (class2type) {\n \"use strict\";\n\n return class2type.hasOwnProperty;\n});","define([\"./core\", \"./core/toType\", \"./var/isFunction\", \"./var/rnothtmlwhite\"], function (jQuery, toType, isFunction, rnothtmlwhite) {\n \"use strict\";\n\n // Convert String-formatted options into Object-formatted ones\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n var\n // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n fired,\n // Flag to prevent firing\n locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function () {\n // Enforce single-firing\n locked = locked || options.once;\n\n // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n fired = firing = true;\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n }\n\n // Forget the data if we're done with it\n if (!options.memory) {\n memory = false;\n }\n firing = false;\n\n // Clean up if we're done firing for good\n if (locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = [];\n\n // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function () {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n if (memory && !firing) {\n fire();\n }\n }\n return this;\n },\n // Remove a callback from the list\n remove: function () {\n jQuery.each(arguments, function (_, arg) {\n var index;\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1);\n\n // Handle firing indexes\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function (fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function () {\n if (list) {\n list = [];\n }\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function () {\n locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function () {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function () {\n locked = queue = [];\n if (!memory && !firing) {\n list = memory = \"\";\n }\n return this;\n },\n locked: function () {\n return !!locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function (context, args) {\n if (!locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n if (!firing) {\n fire();\n }\n }\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function () {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function () {\n return !!fired;\n }\n };\n return self;\n };\n return jQuery;\n});","define([\"./core\", \"./data/var/dataPriv\", \"./deferred\", \"./callbacks\"], function (jQuery, dataPriv) {\n \"use strict\";\n\n jQuery.extend({\n queue: function (elem, type, data) {\n var queue;\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type);\n\n // Speed up dequeue by getting out quickly if this is just a lookup\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n return queue || [];\n }\n },\n dequeue: function (elem, type) {\n type = type || \"fx\";\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function () {\n jQuery.dequeue(elem, type);\n };\n\n // If the fx queue is dequeued, always remove the progress sentinel\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n }\n\n // Clear up the last queue stop function\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function (elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function (type, data) {\n var setter = 2;\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data);\n\n // Ensure a hooks for this queue\n jQuery._queueHooks(this, type);\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function (type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function (type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function (type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function () {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n type = type || \"fx\";\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n resolve();\n return defer.promise(obj);\n }\n });\n return jQuery;\n});","define([\"./core\", \"./core/camelCase\", \"./var/document\", \"./var/isFunction\", \"./var/rcssNum\", \"./var/rnothtmlwhite\", \"./css/var/cssExpand\", \"./css/var/isHiddenWithinTree\", \"./css/adjustCSS\", \"./data/var/dataPriv\", \"./css/showHide\", \"./core/init\", \"./queue\", \"./deferred\", \"./traversing\", \"./manipulation\", \"./css\", \"./effects/Tween\"], function (jQuery, camelCase, document, isFunction, rcssNum, rnothtmlwhite, cssExpand, isHiddenWithinTree, adjustCSS, dataPriv, showHide) {\n \"use strict\";\n\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n jQuery.fx.tick();\n }\n }\n\n // Animations created synchronously will run synchronously\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n }\n\n // Generate parameters to create a standard animation\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n };\n\n // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n includeWidth = includeWidth ? 1 : 0;\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n return attrs;\n }\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\");\n\n // Queue-skipping animations hijack the fx hooks\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n }\n\n // Detect show/hide animations\n for (prop in props) {\n value = props[prop];\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true;\n\n // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n }\n\n // Bail out if this is a no-op like .hide().hide()\n propTween = !jQuery.isEmptyObject(props);\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n }\n\n // Restrict \"overflow\" and \"display\" styles during box animations\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY];\n\n // Identify a display type, preferring old show/hide data over the CSS cascade\n restoreDisplay = dataShow && dataShow.display;\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n display = jQuery.css(elem, \"display\");\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n }\n\n // Animate inline elements as inline-block\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n style.display = \"inline-block\";\n }\n }\n }\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n }\n\n // Implement show/hide animations\n propTween = false;\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n }\n\n // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n if (toggle) {\n dataShow.hidden = !hidden;\n }\n\n // Show elements before animating them\n if (hidden) {\n showHide([elem], true);\n }\n\n /* eslint-disable no-loop-func */\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n dataPriv.remove(elem, \"fxshow\");\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n }\n\n // Per-property setup\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks;\n\n // camelCase, specialEasing and expand cssHook pass\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n hooks = jQuery.cssHooks[name];\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name];\n\n // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function () {\n if (stopped) {\n return false;\n }\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n deferred.notifyWith(elem, [animation, percent, remaining]);\n\n // If there's more to do, yield\n if (percent < 1 && length) {\n return remaining;\n }\n\n // If this was an empty animation, synthesize a final progress notification\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n }\n\n // Resolve the animation and report its conclusion\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function (prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function (gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n if (stopped) {\n return this;\n }\n stopped = true;\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n }\n\n // Resolve when we played the last frame; otherwise, reject\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n return this;\n }\n }),\n props = animation.props;\n propFilter(props, animation.opts.specialEasing);\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n return result;\n }\n }\n jQuery.map(props, createTween, animation);\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n }\n\n // Attach callbacks from options\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function (props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n var prop,\n index = 0,\n length = props.length;\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function (callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && typeof speed === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n };\n\n // Go to the end state if fx are off\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n }\n\n // Normalize opt.queue - true/undefined/null -> \"fx\"\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n }\n\n // Queueing\n opt.old = opt.complete;\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n return opt;\n };\n jQuery.fn.extend({\n fadeTo: function (speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show()\n\n // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function (prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function () {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall);\n\n // Empty animations, or finishing resolves immediately\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function (type, clearQueue, gotoEnd) {\n var stopQueue = function (hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n }\n\n // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function (type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0;\n\n // Enable finishing flag on private data\n data.finish = true;\n\n // Empty the queue first\n jQuery.queue(this, type, []);\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n }\n\n // Look for any active animations, and finish them\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n }\n\n // Look for any animations in the old queue and finish them\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n }\n\n // Turn off finishing flag\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n });\n\n // Generate shortcuts for custom animations\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n for (; i < timers.length; i++) {\n timer = timers[i];\n\n // Run the timer and safely remove it when done (allowing for external removal)\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n if (!timers.length) {\n jQuery.fx.stop();\n }\n fxNow = undefined;\n };\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n jQuery.fx.interval = 13;\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n inProgress = true;\n schedule();\n };\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n };\n return jQuery;\n});","define([\"../var/pnum\"], function (pnum) {\n \"use strict\";\n\n return new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n});","define(function () {\n \"use strict\";\n\n return [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n});","define(function () {\n \"use strict\";\n\n return /^(?:checkbox|radio)$/i;\n});","define([\"../../var/pnum\"], function (pnum) {\n \"use strict\";\n\n return new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n});","define([\"../core\", \"../var/document\", \"../var/documentElement\", \"../var/support\"], function (jQuery, document, documentElement, support) {\n \"use strict\";\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\";\n\n // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12;\n\n // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36;\n\n // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36;\n\n // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container);\n\n // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n div = null;\n }\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\");\n\n // Finish early in limited (non-browser) environments\n if (!div.style) {\n return;\n }\n\n // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (trac-8908)\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function () {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function () {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function () {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function () {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function () {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n //\n // Support: Firefox 70+\n // Only Firefox includes border widths\n // in computed dimensions. (gh-4529)\n reliableTrDimensions: function () {\n var table, tr, trChild, trStyle;\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n tr.style.cssText = \"border:1px solid\";\n\n // Support: Chrome 86+\n // Height set through cssText does not get applied.\n // Computed height then comes back as 0.\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\";\n\n // Support: Android 8 Chrome 86+\n // In our bodyBackground.html iframe,\n // display for all div elements is set to \"inline\",\n // which causes a problem only in Android 8 Chrome 86.\n // Ensuring the div is display: block\n // gets around this issue.\n trChild.style.display = \"block\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight;\n documentElement.removeChild(table);\n }\n return reliableTrDimensionsVal;\n }\n });\n })();\n return support;\n});","define([\"../var/document\", \"../var/support\"], function (document, support) {\n \"use strict\";\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\";\n\n // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n support.checkOn = input.value !== \"\";\n\n // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n support.optSelected = opt.selected;\n\n // Support: IE <=11 only\n // An input loses its value after becoming a radio\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n return support;\n});","define([\"../var/rnothtmlwhite\"], function (rnothtmlwhite) {\n \"use strict\";\n\n // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n return stripAndCollapse;\n});","define([\"../core\", \"../var/document\", \"../data/var/dataPriv\", \"../data/var/acceptData\", \"../var/hasOwn\", \"../var/isFunction\", \"../var/isWindow\", \"../event\"], function (jQuery, document, dataPriv, acceptData, hasOwn, isFunction, isWindow) {\n \"use strict\";\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function (e) {\n e.stopPropagation();\n };\n jQuery.extend(jQuery.event, {\n trigger: function (event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document;\n\n // Don't do events on text and comment nodes\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n }\n\n // focus/blur morphs to focusin/out; ensure we're not firing them right now\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n ontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n // Caller can pass in a jQuery.Event object, Object, or just an event type string\n event = event[jQuery.expando] ? event : new jQuery.Event(type, typeof event === \"object\" && event);\n\n // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null;\n\n // Clean up the event in case it is being reused\n event.result = undefined;\n if (!event.target) {\n event.target = elem;\n }\n\n // Clone any incoming data and prepend the event, creating the handler arg list\n data = data == null ? [event] : jQuery.makeArray(data, [event]);\n\n // Allow special events to draw outside the lines\n special = jQuery.event.special[type] || {};\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n }\n\n // Determine event propagation path in advance, per W3C events spec (trac-9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n }\n\n // Only add window if we got to document (e.g., not plain obj or detached DOM)\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n }\n\n // Fire handlers on the event path\n i = 0;\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type;\n\n // jQuery handler\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n if (handle) {\n handle.apply(cur, data);\n }\n\n // Native handler\n handle = ontype && cur[ontype];\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n event.type = type;\n\n // If nobody prevented the default action, do it now\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (trac-6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n if (tmp) {\n elem[ontype] = null;\n }\n\n // Prevent re-triggering of the same event, since we already bubbled it above\n jQuery.event.triggered = type;\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n elem[type]();\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n jQuery.event.triggered = undefined;\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function (type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function (type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function (type, data) {\n var elem = this[0];\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n });\n return jQuery;\n});","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n expando = '_ujsData';\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n return element[expando][key] = value;\n };\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function (event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function () {\n return true;\n }\n });\n }\n return result;\n };\n }\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n prepareOptions = function (options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n return options;\n };\n createXHR = function (options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n };\n processResponse = function (response, type) {\n var parser, script;\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n return response;\n };\n Rails.href = function (element) {\n return element.href;\n };\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n toArray = function (e) {\n return Array.prototype.slice.call(e);\n };\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n if (additionalParam) {\n params.push(additionalParam);\n }\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n allowAction = function (element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n if (!message) {\n return true;\n }\n answer = false;\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n callback = fire(element, 'confirm:complete', [answer]);\n }\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n Rails.enableElement = function (e) {\n var element;\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n element = e.target;\n } else {\n element = e;\n }\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n disableLinkElement = function (element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n enableLinkElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n disableFormElements = function (form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n disableFormElement = function (element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n enableFormElements = function (form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n enableFormElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, 'ujs:enable-with', null);\n }\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n isXhrRedirect = function (event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n if (!method) {\n return;\n }\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n isRemote = function (element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function (xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n if (!form) {\n return;\n }\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","/*!\n * jQuery JavaScript Library v3.6.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2022-08-26T17:52Z\n */\n(function (global, factory) {\n \"use strict\";\n\n if (typeof module === \"object\" && typeof module.exports === \"object\") {\n // For CommonJS and CommonJS-like environments where a proper `window`\n // is present, execute the factory and get jQuery.\n // For environments that do not have a `window` with a `document`\n // (such as Node.js), expose a factory as module.exports.\n // This accentuates the need for the creation of a real `window`.\n // e.g. var jQuery = require(\"jquery\")(window);\n // See ticket trac-14549 for more info.\n module.exports = global.document ? factory(global, true) : function (w) {\n if (!w.document) {\n throw new Error(\"jQuery requires a window with a document\");\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n\n // Pass this if window is not defined yet\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\n // Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n // enough that all such attempts are guarded in a try block.\n \"use strict\";\n\n var arr = [];\n var getProto = Object.getPrototypeOf;\n var slice = arr.slice;\n var flat = arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n var push = arr.push;\n var indexOf = arr.indexOf;\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var fnToString = hasOwn.toString;\n var ObjectFunctionString = fnToString.call(Object);\n var support = {};\n var isFunction = function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n // Plus for old WebKit, typeof returns \"function\" for HTML collections\n // (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\" && typeof obj.item !== \"function\";\n };\n var isWindow = function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n var document = window.document;\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n }\n\n // Support: Android <=2.3 only (functionish RegExp)\n return typeof obj === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : typeof obj;\n }\n /* global Symbol */\n // Defining this global in .eslintrc.json would create a danger of using the global\n // unguarded in another place, it seems safer to define global only for this module\n\n var version = \"3.6.1\",\n // Define a local copy of jQuery\n jQuery = function (selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function () {\n return slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function (num) {\n // Return all the elements in a clean array\n if (num == null) {\n return slice.call(this);\n }\n\n // Return just the one element from the set\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function (elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems);\n\n // Add the old object onto the stack (as a reference)\n ret.prevObject = this;\n\n // Return the newly-formed element set\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function (callback) {\n return jQuery.each(this, callback);\n },\n map: function (callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function () {\n return this.pushStack(slice.apply(this, arguments));\n },\n first: function () {\n return this.eq(0);\n },\n last: function () {\n return this.eq(-1);\n },\n even: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function (i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function () {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false;\n\n // Handle a deep copy situation\n if (typeof target === \"boolean\") {\n deep = target;\n\n // Skip the boolean and the target\n target = arguments[i] || {};\n i++;\n }\n\n // Handle case when target is a string or something (possible in deep copy)\n if (typeof target !== \"object\" && !isFunction(target)) {\n target = {};\n }\n\n // Extend jQuery itself if only one argument is passed\n if (i === length) {\n target = this;\n i--;\n }\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name];\n\n // Prevent Object.prototype pollution\n // Prevent never-ending loop\n if (name === \"__proto__\" || target === copy) {\n continue;\n }\n\n // Recurse if we're merging plain objects or arrays\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name];\n\n // Ensure proper type for the source value\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n copyIsArray = false;\n\n // Never move original objects, clone them\n target[name] = jQuery.extend(deep, clone, copy);\n\n // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n\n // Return the modified object\n return target;\n };\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function (msg) {\n throw new Error(msg);\n },\n noop: function () {},\n isPlainObject: function (obj) {\n var proto, Ctor;\n\n // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n proto = getProto(obj);\n\n // Objects with no prototype (e.g., `Object.create( null )`) are plain\n if (!proto) {\n return true;\n }\n\n // Objects with prototype are plain iff they were constructed by a global Object function\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function (obj) {\n var name;\n for (name in obj) {\n return false;\n }\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function (code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function (obj, callback) {\n var length,\n i = 0;\n if (isArrayLike(obj)) {\n length = obj.length;\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n return obj;\n },\n // results is for internal usage only\n makeArray: function (arr, results) {\n var ret = results || [];\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n return ret;\n },\n inArray: function (elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function (first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n first.length = i;\n return first;\n },\n grep: function (elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert;\n\n // Go through the array, only saving the items\n // that pass the validator function\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n return matches;\n },\n // arg is for internal usage only\n map: function (elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = [];\n\n // Go through the array, translating each of the items to their new values\n if (isArrayLike(elems)) {\n length = elems.length;\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n if (value != null) {\n ret.push(value);\n }\n }\n\n // Go through every key on the object,\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n if (value != null) {\n ret.push(value);\n }\n }\n }\n\n // Flatten any nested arrays\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n }\n\n // Populate the class2type map\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n var Sizzle =\n /*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function (a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n return 0;\n },\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n pushNative = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // https://jsperf.com/thor-indexof-vs-for/5\n indexOf = function (list, elem) {\n var i = 0,\n len = list.length;\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" + \"ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace +\n // \"Attribute values must be CSS identifiers [capture 5]\n // or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" +\n // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rhtml = /HTML$/i,\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n funescape = function (escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n return nonHex ?\n // Strip the backslash prefix from a non-hex escape sequence\n nonHex :\n // Replace a hexadecimal escape sequence with the encoded Unicode code point\n // Support: IE <=11+\n // For values outside the Basic Multilingual Plane (BMP), manually construct a\n // surrogate pair\n high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n fcssescape = function (ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n }\n\n // Control characters and (dependent upon position) numbers get escaped as code points\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n }\n\n // Other potentially-special ASCII characters get backslash-escaped\n return \"\\\\\" + ch;\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function () {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n });\n\n // Optimize for push.apply( _, NodeList )\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes);\n\n // Support: Android<4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ?\n // Leverage slice if possible\n function (target, els) {\n pushNative.apply(target, slice.call(els));\n } :\n // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0;\n\n // Can't trust NodeList.length\n while (target[j++] = els[i++]) {}\n target.length = j - 1;\n }\n };\n }\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || [];\n\n // Return early from calls with invalid selector or context\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n }\n\n // Try to shortcut find operations (as opposed to filters) in HTML documents\n if (!seed) {\n setDocument(context);\n context = context || document;\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n }\n\n // Element context\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n }\n\n // Type selector\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results;\n\n // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n }\n\n // Take advantage of querySelectorAll\n if (support.qsa && !nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && (\n // Support: IE 8 only\n // Exclude object elements\n nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\n newSelector = selector;\n newContext = context;\n\n // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // The technique has to be used as well when a leading combinator is used\n // as such selectors are not recognized by querySelectorAll.\n // Thanks to Andrew Dupont for this technique.\n if (nodeType === 1 && (rdescend.test(selector) || rcombinators.test(selector))) {\n // Expand context for sibling selectors\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context;\n\n // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n if (newContext !== context || !support.scope) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rcssescape, fcssescape);\n } else {\n context.setAttribute(\"id\", nid = expando);\n }\n }\n\n // Prefix every selector in the list\n groups = tokenize(selector);\n i = groups.length;\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n newSelector = groups.join(\",\");\n }\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n }\n\n // All others\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\n }\n\n /**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\n function createCache() {\n var keys = [];\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n return cache[key + \" \"] = value;\n }\n return cache;\n }\n\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // release memory in IE\n el = null;\n }\n }\n\n /**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\n }\n }\n\n /**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex;\n\n // Use IE sourceIndex if available on both nodes\n if (diff) {\n return diff;\n }\n\n // Check if b follows a\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n return a ? 1 : -1;\n }\n\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n\n /**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n }\n\n // Support: IE 6 - 11\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n return elem.isDisabled === disabled ||\n // Where there is no isDisabled, check manually\n /* jshint -W018 */\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n return elem.disabled === disabled;\n\n // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n }\n\n // Remaining elements are neither :enabled nor :disabled\n return false;\n };\n }\n\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length;\n\n // Match elements found at the specified indexes\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n\n /**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n }\n\n // Expose support vars for convenience\n support = Sizzle.support = {};\n\n /**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\n isXML = Sizzle.isXML = function (elem) {\n var namespace = elem && elem.namespaceURI,\n docElem = elem && (elem.ownerDocument || elem).documentElement;\n\n // Support: IE <=8\n // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n // https://bugs.jquery.com/ticket/4833\n return !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\n };\n\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc;\n\n // Return early if doc is invalid or already selected\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n }\n\n // Update global variables\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document);\n\n // Support: IE 9 - 11+, Edge 12 - 18+\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 11, Edge\n if (subWindow.addEventListener) {\n subWindow.addEventListener(\"unload\", unloadHandler, false);\n\n // Support: IE 9 - 10 only\n } else if (subWindow.attachEvent) {\n subWindow.attachEvent(\"onunload\", unloadHandler);\n }\n }\n\n // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n // Safari 4 - 5 only, Opera <=11.6 - 12.x only\n // IE/Edge & older browsers don't support the :scope pseudo-class.\n // Support: Safari 6.0 only\n // Safari 6.0 supports :scope but it's an alias of :root there.\n support.scope = assert(function (el) {\n docElem.appendChild(el).appendChild(document.createElement(\"div\"));\n return typeof el.querySelectorAll !== \"undefined\" && !el.querySelectorAll(\":scope fieldset div\").length;\n });\n\n /* Attributes\n ---------------------------------------------------------------------- */\n\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n support.attributes = assert(function (el) {\n el.className = \"i\";\n return !el.getAttribute(\"className\");\n });\n\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n\n // Check if getElementsByTagName(\"*\") returns only elements\n support.getElementsByTagName = assert(function (el) {\n el.appendChild(document.createComment(\"\"));\n return !el.getElementsByTagName(\"*\").length;\n });\n\n // Support: IE<9\n support.getElementsByClassName = rnative.test(document.getElementsByClassName);\n\n // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n support.getById = assert(function (el) {\n docElem.appendChild(el).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n });\n\n // ID filter and find\n if (support.getById) {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n };\n\n // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n if (node && node.value === id) {\n return [elem];\n }\n\n // Fall back on getElementsByName\n elems = context.getElementsByName(id);\n i = 0;\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n return [];\n }\n };\n }\n\n // Tag\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag);\n\n // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag);\n\n // Filter out possible comments\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n return tmp;\n }\n return results;\n };\n\n // Class\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n\n // QSA and matchesSelector support\n\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n rbuggyMatches = [];\n\n // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See https://bugs.jquery.com/ticket/13378\n rbuggyQSA = [];\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n var input;\n\n // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // https://bugs.jquery.com/ticket/12359\n docElem.appendChild(el).innerHTML = \"\" + \"\";\n\n // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n if (el.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n }\n\n // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n }\n\n // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n }\n\n // Support: IE 11+, Edge 15 - 18+\n // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n // Adding a temporary attribute to the document before the selection works\n // around the issue.\n // Interestingly, IE 10 & older don't seem to have the issue.\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n }\n\n // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n }\n\n // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n }\n\n // Support: Firefox <=3.6 - 5 only\n // Old Firefox doesn't throw on a badly-escaped identifier.\n el.querySelectorAll(\"\\\\\\f\");\n rbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\n });\n assert(function (el) {\n el.innerHTML = \"\" + \"\";\n\n // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\");\n\n // Support: IE8\n // Enforce case-sensitivity of name attribute\n if (el.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n }\n\n // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n if (el.querySelectorAll(\":enabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n }\n\n // Support: IE9-11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n docElem.appendChild(el).disabled = true;\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n }\n\n // Support: Opera 10 - 11 only\n // Opera 10-11 does not throw on post-comma invalid pseudos\n el.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (el) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(el, \"*\");\n\n // This should fail with an exception\n // Gecko does not error, returns false instead\n matches.call(el, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n\n /* Contains\n ---------------------------------------------------------------------- */\n hasCompare = rnative.test(docElem.compareDocumentPosition);\n\n // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n return false;\n };\n\n /* Sorting\n ---------------------------------------------------------------------- */\n\n // Document order sorting\n sortOrder = hasCompare ? function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n // Sort on method existence if only one input has compareDocumentPosition\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n if (compare) {\n return compare;\n }\n\n // Calculate position if both inputs belong to the same document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) :\n // Otherwise we know they are disconnected\n 1;\n\n // Disconnected nodes\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (a == document || a.ownerDocument == preferredDoc && contains(preferredDoc, a)) {\n return -1;\n }\n\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (b == document || b.ownerDocument == preferredDoc && contains(preferredDoc, b)) {\n return 1;\n }\n\n // Maintain original order\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n // Exit early if the nodes are identical\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b];\n\n // Parentless nodes are either documents or disconnected\n if (!aup || !bup) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n /* eslint-disable eqeqeq */\n return a == document ? -1 : b == document ? 1 : /* eslint-enable eqeqeq */\n aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n\n // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n }\n\n // Otherwise we need full lists of their ancestors for comparison\n cur = a;\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n cur = b;\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n }\n\n // Walk down the tree looking for a discrepancy\n while (ap[i] === bp[i]) {\n i++;\n }\n return i ?\n // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) :\n // Otherwise nodes in our document sort first\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n /* eslint-disable eqeqeq */\n ap[i] == preferredDoc ? -1 : bp[i] == preferredDoc ? 1 : /* eslint-enable eqeqeq */\n 0;\n };\n return document;\n };\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n Sizzle.matchesSelector = function (elem, expr) {\n setDocument(elem);\n if (support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr);\n\n // IE 9's matchesSelector returns false on disconnected nodes\n if (ret || support.disconnectedMatch ||\n // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n nonnativeSelectorCache(expr, true);\n }\n }\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n Sizzle.contains = function (context, elem) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((context.ownerDocument || context) != document) {\n setDocument(context);\n }\n return contains(context, elem);\n };\n Sizzle.attr = function (elem, name) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((elem.ownerDocument || elem) != document) {\n setDocument(elem);\n }\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (jQuery #13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n Sizzle.escape = function (sel) {\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0;\n\n // Unless we *know* we can detect duplicates, assume their presence\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n }\n\n // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n sortInput = null;\n return results;\n };\n\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n // Use textContent for elements\n // innerText usage removed for consistency of new lines (jQuery #11153)\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n // Traverse its children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n }\n\n // Do not include comment or processing instruction nodes\n\n return ret;\n };\n Expr = Sizzle.selectors = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n \"ATTR\": function (match) {\n match[1] = match[1].replace(runescape, funescape);\n\n // Move the given value to match[3] whether quoted or unquoted\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n return match.slice(0, 4);\n },\n \"CHILD\": function (match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n }\n\n // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\");\n\n // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n return match;\n },\n \"PSEUDO\": function (match) {\n var excess,\n unquoted = !match[6] && match[2];\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n }\n\n // Accept quoted arguments as-is\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\";\n\n // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && (\n // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && (\n // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n }\n\n // Return only captures needed by the pseudo filter method (type and argument)\n return match.slice(0, 3);\n }\n },\n filter: {\n \"TAG\": function (nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n \"CLASS\": function (className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n \"ATTR\": function (name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n if (result == null) {\n return operator === \"!=\";\n }\n if (!operator) {\n return true;\n }\n result += \"\";\n\n /* eslint-disable max-len */\n\n return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : operator === \"*=\" ? check && result.indexOf(check) > -1 : operator === \"$=\" ? check && result.slice(-check.length) === check : operator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 : operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" : false;\n /* eslint-enable max-len */\n };\n },\n\n \"CHILD\": function (type, what, _argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ?\n // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, _context, xml) {\n var cache,\n uniqueCache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n }\n\n // Reverse direction for :only-* (if we haven't yet done so)\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n return true;\n }\n start = [forward ? parent.firstChild : parent.lastChild];\n\n // non-xml :nth-child(...) stores cache data on `parent`\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n\n // ...in a gzip-friendly way\n node = parent;\n outerCache = node[expando] || (node[expando] = {});\n\n // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n while (node = ++nodeIndex && node && node[dir] || (\n // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n uniqueCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n // ...in a gzip-friendly way\n node = elem;\n outerCache = node[expando] || (node[expando] = {});\n\n // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n }\n\n // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {});\n\n // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n uniqueCache[type] = [dirruns, diff];\n }\n if (node === elem) {\n break;\n }\n }\n }\n }\n }\n\n // Incorporate the offset, then check against cycle size\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n \"PSEUDO\": function (pseudo, argument) {\n // pseudo-class names are case-insensitive\n // http://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo);\n\n // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n if (fn[expando]) {\n return fn(argument);\n }\n\n // But maintain support for old signatures\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n while (i--) {\n idx = indexOf(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n \"not\": markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, _context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length;\n\n // Match elements unmatched by `matcher`\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, _context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results);\n\n // Don't keep the element (issue #299)\n input[0] = null;\n return !results.pop();\n };\n }),\n \"has\": markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n \"contains\": markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || getText(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // http://www.w3.org/TR/selectors/#lang-pseudo\n \"lang\": markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n return false;\n };\n }),\n // Miscellaneous\n \"target\": function (elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n \"root\": function (elem) {\n return elem === docElem;\n },\n \"focus\": function (elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n \"enabled\": createDisabledPseudo(false),\n \"disabled\": createDisabledPseudo(true),\n \"checked\": function (elem) {\n // In CSS3, :checked should return both checked and selected elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n },\n \"selected\": function (elem) {\n // Accessing this property makes selected-by-default\n // options in Safari work properly\n if (elem.parentNode) {\n // eslint-disable-next-line no-unused-expressions\n elem.parentNode.selectedIndex;\n }\n return elem.selected === true;\n },\n // Contents\n \"empty\": function (elem) {\n // http://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n return true;\n },\n \"parent\": function (elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n // Element/input types\n \"header\": function (elem) {\n return rheader.test(elem.nodeName);\n },\n \"input\": function (elem) {\n return rinputs.test(elem.nodeName);\n },\n \"button\": function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n \"text\": function (elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && (\n // Support: IE<8\n // New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n \"first\": createPositionalPseudo(function () {\n return [0];\n }),\n \"last\": createPositionalPseudo(function (_matchIndexes, length) {\n return [length - 1];\n }),\n \"eq\": createPositionalPseudo(function (_matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n \"even\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument > length ? length : argument;\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n // Add button/input type pseudos\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n }\n\n // Easy API for creating new setFilters\n function setFilters() {}\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n groups.push(tokens = []);\n }\n matched = false;\n\n // Combinators\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n }\n\n // Filters\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n if (!matched) {\n break;\n }\n }\n\n // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) :\n // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n return selector;\n }\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n skip = combinator.next,\n key = skip || dir,\n checkNonElements = base && key === \"parentNode\",\n doneName = done++;\n return combinator.first ?\n // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n return false;\n } :\n // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n uniqueCache,\n outerCache,\n newCache = [dirruns, doneName];\n\n // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {});\n\n // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n if (skip && skip === elem.nodeName.toLowerCase()) {\n elem = elem[dir] || elem;\n } else if ((oldCache = uniqueCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n uniqueCache[key] = newCache;\n\n // A match means we're done; a fail means we have to keep checking\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n return false;\n };\n }\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n return true;\n } : matchers[0];\n }\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n return results;\n }\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n return newUnmatched;\n }\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n matcherOut = matcher ?\n // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ?\n // ...intermediate processing is necessary\n [] :\n // ...otherwise use results directly\n results : matcherIn;\n\n // Find primary matches\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n }\n\n // Apply postFilter\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml);\n\n // Un-match failing elements by moving them back to matcherIn\n i = temp.length;\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n postFinder(null, matcherOut = [], temp, xml);\n }\n\n // Move matched elements from seed to results to keep them synchronized\n i = matcherOut.length;\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n }\n\n // Add elements to results, through postFinder if defined\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml));\n\n // Avoid hanging onto element (issue #299)\n checkContext = null;\n return ret;\n }];\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches);\n\n // Return special upon seeing a positional matcher\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector(\n // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n matchers.push(matcher);\n }\n }\n return elementMatcher(matchers);\n }\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function (seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n if (outermost) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n outermostContext = context == document || context || outermost;\n }\n\n // Add elements passing elementMatchers directly to results\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0;\n\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (!context && elem.ownerDocument != document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n results.push(elem);\n break;\n }\n }\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n }\n\n // Track unmatched elements for set filters\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n }\n\n // Lengthen the array for every element, matched or not\n if (seed) {\n unmatched.push(elem);\n }\n }\n }\n\n // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n matchedCount += i;\n\n // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n if (bySet && i !== matchedCount) {\n j = 0;\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n }\n\n // Discard index placeholder values to get only actual matches\n setMatched = condense(setMatched);\n }\n\n // Add matches to results\n push.apply(results, setMatched);\n\n // Seedless set matches succeeding multiple successful matchers stipulate sorting\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n }\n\n // Override manipulation of globals by nested matchers\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n return unmatched;\n };\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n compile = Sizzle.compile = function (selector, match /* Internal Use Only */) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n i = match.length;\n while (i--) {\n cached = matcherFromTokens(match[i]);\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n }\n\n // Cache the compiled function\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers));\n\n // Save selector and tokenization\n cached.selector = selector;\n }\n return cached;\n };\n\n /**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\n select = Sizzle.select = function (selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || [];\n\n // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n if (!context) {\n return results;\n\n // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n selector = selector.slice(tokens.shift().value.length);\n }\n\n // Fetch a seed set for right-to-left matching\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n while (i--) {\n token = tokens[i];\n\n // Abort if we hit a combinator\n if (Expr.relative[type = token.type]) {\n break;\n }\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n break;\n }\n }\n }\n }\n\n // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n };\n\n // One-time assignments\n\n // Sort stability\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando;\n\n // Support: Chrome 14-35+\n // Always assume duplicates if they aren't passed to the comparison function\n support.detectDuplicates = !!hasDuplicate;\n\n // Initialize against the default document\n setDocument();\n\n // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n support.sortDetached = assert(function (el) {\n // Should return 1, but returns 4 (following)\n return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n });\n\n // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n if (!assert(function (el) {\n el.innerHTML = \"\";\n return el.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n }\n\n // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n if (!support.attributes || !assert(function (el) {\n el.innerHTML = \"\";\n el.firstChild.setAttribute(\"value\", \"\");\n return el.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, _name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n }\n\n // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n if (!assert(function (el) {\n return el.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n }\n return Sizzle;\n }(window);\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors;\n\n // Deprecated\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n jQuery.escapeSelector = Sizzle.escape;\n var dir = function (elem, dir, until) {\n var matched = [],\n truncate = until !== undefined;\n while ((elem = elem[dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n matched.push(elem);\n }\n }\n return matched;\n };\n var siblings = function (n, elem) {\n var matched = [];\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n return matched;\n };\n var rneedsContext = jQuery.expr.match.needsContext;\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n var rsingleTag = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;\n\n // Implement the identical functionality for filter and not\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n }\n\n // Single element\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n }\n\n // Arraylike of elements (jQuery, arguments, Array)\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n }\n\n // Filtered directly for both simple and complex selectors\n return jQuery.filter(qualifier, elements, not);\n }\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n jQuery.fn.extend({\n find: function (selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n ret = this.pushStack([]);\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function (selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function (selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function (selector) {\n return !!winnow(this,\n // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n });\n\n // Initialize a jQuery object\n\n // A central reference to the root jQuery(document)\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (trac-9521)\n // Strict HTML recognition (trac-11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem;\n\n // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n if (!selector) {\n return this;\n }\n\n // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n root = root || rootjQuery;\n\n // Handle HTML strings\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n }\n\n // Match html or make sure no context is specified for #id\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context;\n\n // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true));\n\n // HANDLE: $(html, props)\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]);\n\n // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n return this;\n\n // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n return this;\n }\n\n // HANDLE: $(expr, $(...))\n } else if (!context || context.jquery) {\n return (context || root).find(selector);\n\n // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n }\n\n // HANDLE: $(DOMElement)\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this;\n\n // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) :\n // Execute immediately if ready is not present\n selector(jQuery);\n }\n return jQuery.makeArray(selector, this);\n };\n\n // Give the init function the jQuery prototype for later instantiation\n init.prototype = jQuery.fn;\n\n // Initialize central reference\n rootjQuery = jQuery(document);\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function (target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function (selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors);\n\n // Positional selectors never match, since there's no _selection_ context\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 :\n // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function (elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n }\n\n // Index in selector\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n }\n\n // Locate the position of the desired element\n return indexOf.call(this,\n // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function (selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function (selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n return cur;\n }\n jQuery.each({\n parent: function (elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function (elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function (elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function (elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function (elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function (elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function (elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function (elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function (elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function (elem) {\n return siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function (elem) {\n return siblings(elem.firstChild);\n },\n contents: function (elem) {\n if (elem.contentDocument != null &&\n // Support: IE 11+\n // elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n }\n\n // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n }\n\n // Reverse order for parents* and prev-derivatives\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n return this.pushStack(matched);\n };\n });\n var rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g;\n\n // Convert String-formatted options into Object-formatted ones\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n var\n // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n fired,\n // Flag to prevent firing\n locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function () {\n // Enforce single-firing\n locked = locked || options.once;\n\n // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n fired = firing = true;\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n }\n\n // Forget the data if we're done with it\n if (!options.memory) {\n memory = false;\n }\n firing = false;\n\n // Clean up if we're done firing for good\n if (locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = [];\n\n // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function () {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n if (memory && !firing) {\n fire();\n }\n }\n return this;\n },\n // Remove a callback from the list\n remove: function () {\n jQuery.each(arguments, function (_, arg) {\n var index;\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1);\n\n // Handle firing indexes\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function (fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function () {\n if (list) {\n list = [];\n }\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function () {\n locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function () {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function () {\n locked = queue = [];\n if (!memory && !firing) {\n list = memory = \"\";\n }\n return this;\n },\n locked: function () {\n return !!locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function (context, args) {\n if (!locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n if (!firing) {\n fire();\n }\n }\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function () {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function () {\n return !!fired;\n }\n };\n return self;\n };\n function Identity(v) {\n return v;\n }\n function Thrower(ex) {\n throw ex;\n }\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject);\n\n // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject);\n\n // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n }\n\n // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n jQuery.extend({\n Deferred: function (func) {\n var tuples = [\n // action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n state = \"pending\",\n promise = {\n state: function () {\n return state;\n },\n always: function () {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function (fn) {\n return promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function /* fnDone, fnFail, fnProgress */\n () {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]];\n\n // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function (onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function () {\n var returned, then;\n\n // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n if (depth < maxDepth) {\n return;\n }\n returned = handler.apply(that, args);\n\n // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n }\n\n // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n then = returned && (\n // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n typeof returned === \"object\" || typeof returned === \"function\") && returned.then;\n\n // Handle a returned thenable\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special));\n\n // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n }\n\n // Handle all other returned values\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n }\n\n // Process the value(s)\n // Default process is resolve\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.stackTrace);\n }\n\n // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n deferred.rejectWith(that, args);\n }\n }\n };\n\n // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the stack, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getStackHook) {\n process.stackTrace = jQuery.Deferred.getStackHook();\n }\n window.setTimeout(process);\n }\n };\n }\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith));\n\n // fulfilled_handlers.add( ... )\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity));\n\n // rejected_handlers.add( ... )\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function (obj) {\n return obj != null ? jQuery.extend(obj, promise) : promise;\n }\n },\n deferred = {};\n\n // Add list-specific methods\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5];\n\n // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n promise[tuple[1]] = list.add;\n\n // Handle state\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n state = stateString;\n },\n // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable,\n // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable,\n // progress_callbacks.lock\n tuples[0][2].lock,\n // progress_handlers.lock\n tuples[0][3].lock);\n }\n\n // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n list.add(tuple[3].fire);\n\n // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n };\n\n // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n deferred[tuple[0] + \"With\"] = list.fireWith;\n });\n\n // Make the deferred a promise\n promise.promise(deferred);\n\n // Call given func if any\n if (func) {\n func.call(deferred, deferred);\n }\n\n // All done!\n return deferred;\n },\n // Deferred helper\n when: function (singleValue) {\n var\n // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = slice.call(arguments),\n // the primary Deferred\n primary = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function (i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? slice.call(arguments) : value;\n if (! --remaining) {\n primary.resolveWith(resolveContexts, resolveValues);\n }\n };\n };\n\n // Single- and empty arguments are adopted like Promise.resolve\n if (remaining <= 1) {\n adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining);\n\n // Use .then() to unwrap secondary thenables (cf. gh-3000)\n if (primary.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return primary.then();\n }\n }\n\n // Multiple arguments are aggregated like Promise.all array elements\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), primary.reject);\n }\n return primary.promise();\n }\n });\n\n // These usually indicate a programmer mistake during development,\n // warn about them ASAP rather than swallowing them by default.\n var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n jQuery.Deferred.exceptionHook = function (error, stack) {\n // Support: IE 8 - 9 only\n // Console exists when dev tools are open, which can happen at any time\n if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, stack);\n }\n };\n jQuery.readyException = function (error) {\n window.setTimeout(function () {\n throw error;\n });\n };\n\n // The deferred used on DOM ready\n var readyList = jQuery.Deferred();\n jQuery.fn.ready = function (fn) {\n readyList.then(fn)\n\n // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n .catch(function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See trac-6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function (wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n }\n\n // Remember that the DOM is ready\n jQuery.isReady = true;\n\n // If a normal DOM Ready event fired, decrement, and wait if need be\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n }\n\n // If there are functions bound, to execute\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then;\n\n // The ready event handler and self cleanup method\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.ready();\n }\n\n // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE <=9 - 10 only\n // Older IE sometimes signals \"interactive\" too soon\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed);\n\n // A fallback to window.onload, that will always work\n window.addEventListener(\"load\", completed);\n }\n\n // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n var access = function (elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null;\n\n // Sets many values\n if (toType(key) === \"object\") {\n chainable = true;\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n }\n\n // Sets one value\n } else if (value !== undefined) {\n chainable = true;\n if (!isFunction(value)) {\n raw = true;\n }\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null;\n\n // ...except when executing function values\n } else {\n bulk = fn;\n fn = function (elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n if (chainable) {\n return elems;\n }\n\n // Gets\n if (bulk) {\n return fn.call(elems);\n }\n return len ? fn(elems[0], key) : emptyGet;\n };\n\n // Matches dashed string for camelizing\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g;\n\n // Used by camelCase as callback to replace()\n function fcamelCase(_all, letter) {\n return letter.toUpperCase();\n }\n\n // Convert dashed to camelCase; used by the css and data modules\n // Support: IE <=9 - 11, Edge 12 - 15\n // Microsoft forgot to hump their vendor prefix (trac-9572)\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n var acceptData = function (owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n Data.uid = 1;\n Data.prototype = {\n cache: function (owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando];\n\n // If not, create one\n if (!value) {\n value = {};\n\n // We can accept data for non-element nodes in modern browsers,\n // but we should not, see trac-8335.\n // Always return an empty object.\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value;\n\n // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n return value;\n },\n set: function (owner, data, value) {\n var prop,\n cache = this.cache(owner);\n\n // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value;\n\n // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n return cache;\n },\n get: function (owner, key) {\n return key === undefined ? this.cache(owner) :\n // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function (owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n }\n\n // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n this.set(owner, key, value);\n\n // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n return value !== undefined ? value : key;\n },\n remove: function (owner, key) {\n var i,\n cache = owner[this.expando];\n if (cache === undefined) {\n return;\n }\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key);\n\n // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n i = key.length;\n while (i--) {\n delete cache[key[i]];\n }\n }\n\n // Remove the expando if there's no more data\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function (owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n var dataPriv = new Data();\n var dataUser = new Data();\n\n //\tImplementation Summary\n //\n //\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n //\t2. Improve the module's maintainability by reducing the storage\n //\t\tpaths to a single mechanism.\n //\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n //\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n //\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n //\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /[A-Z]/g;\n function getData(data) {\n if (data === \"true\") {\n return true;\n }\n if (data === \"false\") {\n return false;\n }\n if (data === \"null\") {\n return null;\n }\n\n // Only convert to a number if it doesn't change the string\n if (data === +data + \"\") {\n return +data;\n }\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n return data;\n }\n function dataAttr(elem, key, data) {\n var name;\n\n // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n data = elem.getAttribute(name);\n if (typeof data === \"string\") {\n try {\n data = getData(data);\n } catch (e) {}\n\n // Make sure we set the data so it isn't changed later\n dataUser.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n return data;\n }\n jQuery.extend({\n hasData: function (elem) {\n return dataUser.hasData(elem) || dataPriv.hasData(elem);\n },\n data: function (elem, name, data) {\n return dataUser.access(elem, name, data);\n },\n removeData: function (elem, name) {\n dataUser.remove(elem, name);\n },\n // TODO: Now that all calls to _data and _removeData have been replaced\n // with direct calls to dataPriv methods, these can be deprecated.\n _data: function (elem, name, data) {\n return dataPriv.access(elem, name, data);\n },\n _removeData: function (elem, name) {\n dataPriv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function (key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes;\n\n // Gets all values\n if (key === undefined) {\n if (this.length) {\n data = dataUser.get(elem);\n if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n while (i--) {\n // Support: IE 11 only\n // The attrs elements can be null (trac-14894)\n if (attrs[i]) {\n name = attrs[i].name;\n if (name.indexOf(\"data-\") === 0) {\n name = camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n dataPriv.set(elem, \"hasDataAttrs\", true);\n }\n }\n return data;\n }\n\n // Sets multiple values\n if (typeof key === \"object\") {\n return this.each(function () {\n dataUser.set(this, key);\n });\n }\n return access(this, function (value) {\n var data;\n\n // The calling jQuery object (element matches) is not empty\n // (and therefore has an element appears at this[ 0 ]) and the\n // `value` parameter was not undefined. An empty jQuery object\n // will result in `undefined` for elem = this[ 0 ] which will\n // throw an exception if an attempt to read a data cache is made.\n if (elem && value === undefined) {\n // Attempt to get data from the cache\n // The key will always be camelCased in Data\n data = dataUser.get(elem, key);\n if (data !== undefined) {\n return data;\n }\n\n // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n data = dataAttr(elem, key);\n if (data !== undefined) {\n return data;\n }\n\n // We tried really hard, but the data doesn't exist.\n return;\n }\n\n // Set the data...\n this.each(function () {\n // We always store the camelCased key\n dataUser.set(this, key, value);\n });\n }, null, value, arguments.length > 1, null, true);\n },\n removeData: function (key) {\n return this.each(function () {\n dataUser.remove(this, key);\n });\n }\n });\n jQuery.extend({\n queue: function (elem, type, data) {\n var queue;\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type);\n\n // Speed up dequeue by getting out quickly if this is just a lookup\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n return queue || [];\n }\n },\n dequeue: function (elem, type) {\n type = type || \"fx\";\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function () {\n jQuery.dequeue(elem, type);\n };\n\n // If the fx queue is dequeued, always remove the progress sentinel\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n }\n\n // Clear up the last queue stop function\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function (elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function (type, data) {\n var setter = 2;\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data);\n\n // Ensure a hooks for this queue\n jQuery._queueHooks(this, type);\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function (type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function (type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function (type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function () {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n type = type || \"fx\";\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n resolve();\n return defer.promise(obj);\n }\n });\n var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n var documentElement = document.documentElement;\n var isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n };\n\n // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n if (documentElement.getRootNode) {\n isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n var isHiddenWithinTree = function (elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem;\n\n // Inline style trumps all\n return elem.style.display === \"none\" || elem.style.display === \"\" &&\n // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2;\n\n // Trust units reported by jQuery.css\n unit = unit || initialInUnit[3];\n\n // Iteratively approximate from a nonzero starting point\n initialInUnit = +initial || 1;\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n initialInUnit = initialInUnit / scale;\n }\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit);\n\n // Make sure we update the tween properties later on\n valueParts = valueParts || [];\n }\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0;\n\n // Apply relative offset (+=/-=) if specified\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n return adjusted;\n }\n var defaultDisplayMap = {};\n function getDefaultDisplay(elem) {\n var temp,\n doc = elem.ownerDocument,\n nodeName = elem.nodeName,\n display = defaultDisplayMap[nodeName];\n if (display) {\n return display;\n }\n temp = doc.body.appendChild(doc.createElement(nodeName));\n display = jQuery.css(temp, \"display\");\n temp.parentNode.removeChild(temp);\n if (display === \"none\") {\n display = \"block\";\n }\n defaultDisplayMap[nodeName] = display;\n return display;\n }\n function showHide(elements, show) {\n var display,\n elem,\n values = [],\n index = 0,\n length = elements.length;\n\n // Determine new display value for elements that need to change\n for (; index < length; index++) {\n elem = elements[index];\n if (!elem.style) {\n continue;\n }\n display = elem.style.display;\n if (show) {\n // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n // check is required in this first loop unless we have a nonempty display value (either\n // inline or about-to-be-restored)\n if (display === \"none\") {\n values[index] = dataPriv.get(elem, \"display\") || null;\n if (!values[index]) {\n elem.style.display = \"\";\n }\n }\n if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n values[index] = getDefaultDisplay(elem);\n }\n } else {\n if (display !== \"none\") {\n values[index] = \"none\";\n\n // Remember what we're overwriting\n dataPriv.set(elem, \"display\", display);\n }\n }\n }\n\n // Set the display of the elements in a second loop to avoid constant reflow\n for (index = 0; index < length; index++) {\n if (values[index] != null) {\n elements[index].style.display = values[index];\n }\n }\n return elements;\n }\n jQuery.fn.extend({\n show: function () {\n return showHide(this, true);\n },\n hide: function () {\n return showHide(this);\n },\n toggle: function (state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\n return this.each(function () {\n if (isHiddenWithinTree(this)) {\n jQuery(this).show();\n } else {\n jQuery(this).hide();\n }\n });\n }\n });\n var rcheckableType = /^(?:checkbox|radio)$/i;\n var rtagName = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n var rscriptType = /^$|^module$|\\/(?:java|ecma)script/i;\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\");\n\n // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (trac-11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (trac-14901)\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input);\n\n // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked;\n\n // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue;\n\n // Support: IE <=9 only\n // IE <=9 replaces \";\n support.option = !!div.lastChild;\n })();\n\n // We have to close these tags to support XHTML (trac-13200)\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting or other required elements.\n thead: [1, \"\", \"
\"],\n col: [2, \"\", \"
\"],\n tr: [2, \"\", \"
\"],\n td: [3, \"\", \"
\"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td;\n\n // Support: IE <=9 only\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"\"];\n }\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n var ret;\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n return ret;\n }\n\n // Mark scripts as having already been evaluated\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n var rhtml = /<|&#?\\w+;/;\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n for (; i < l; i++) {\n elem = elems[i];\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem);\n\n // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem));\n\n // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\"));\n\n // Deserialize a standard representation\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2];\n\n // Descend through wrappers to the right content\n j = wrap[0];\n while (j--) {\n tmp = tmp.lastChild;\n }\n\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, tmp.childNodes);\n\n // Remember the top-level container\n tmp = fragment.firstChild;\n\n // Ensure the created nodes are orphaned (trac-12392)\n tmp.textContent = \"\";\n }\n }\n }\n\n // Remove wrapper from fragment\n fragment.textContent = \"\";\n i = 0;\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n continue;\n }\n attached = isAttached(elem);\n\n // Append to fragment\n tmp = getAll(fragment.appendChild(elem), \"script\");\n\n // Preserve script evaluation history\n if (attached) {\n setGlobalEval(tmp);\n }\n\n // Capture executables\n if (scripts) {\n j = 0;\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n return fragment;\n }\n var rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n function returnTrue() {\n return true;\n }\n function returnFalse() {\n return false;\n }\n\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous, except when they are no-op.\n // So expect focus to be synchronous when the element is already active,\n // and blur to be synchronous when the element is not already active.\n // (focus and blur are always synchronous in other supported browsers,\n // this just defines when we can count on it).\n function expectSync(elem, type) {\n return elem === safeActiveElement() === (type === \"focus\");\n }\n\n // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n function on(elem, types, selector, data, fn, one) {\n var origFn, type;\n\n // Types can be a map of types/handlers\n if (typeof types === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n for (type in types) {\n on(elem, type, selector, data, types[type], one);\n }\n return elem;\n }\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n if (one === 1) {\n origFn = fn;\n fn = function (event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n };\n\n // Use same guid so caller can remove using origFn\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n jQuery.event = {\n global: {},\n add: function (elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem);\n\n // Only attach events to objects that accept data\n if (!acceptData(elem)) {\n return;\n }\n\n // Caller can pass in an object of custom data in lieu of the handler\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n }\n\n // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n }\n\n // Make sure that the handler has a unique ID, used to find/remove it later\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n }\n\n // Init the element's event structure and main handler, if this is the first\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n }\n\n // Handle multiple events separated by a space\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort();\n\n // There *must* be a type, no attaching namespace-only handlers\n if (!type) {\n continue;\n }\n\n // If event changes its type, use the special event handlers for the changed type\n special = jQuery.event.special[type] || {};\n\n // If selector defined, determine special event api type, otherwise given type\n type = (selector ? special.delegateType : special.bindType) || type;\n\n // Update special based on newly reset type\n special = jQuery.event.special[type] || {};\n\n // handleObj is passed to all event handlers\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn);\n\n // Init the event handler queue if we're the first\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0;\n\n // Only use addEventListener if the special events handler returns false\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n if (special.add) {\n special.add.call(elem, handleObj);\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n }\n\n // Add to the element's handler list, delegates in front\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n }\n\n // Keep track of which events have ever been used, for event optimization\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function (elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n if (!elemData || !(events = elemData.events)) {\n return;\n }\n\n // Once for each type.namespace in types; type may be omitted\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort();\n\n // Unbind all events (on this namespace, if provided) for the element\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n continue;\n }\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\");\n\n // Remove matching events\n origCount = j = handlers.length;\n while (j--) {\n handleObj = handlers[j];\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n }\n\n // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n delete events[type];\n }\n }\n\n // Remove data and the expando if it's no longer used\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function (nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {};\n\n // Use the fix-ed jQuery.Event rather than the (read-only) native event\n args[0] = event;\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n event.delegateTarget = this;\n\n // Call the preDispatch hook for the mapped type, and let it bail if desired\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n }\n\n // Determine handlers\n handlerQueue = jQuery.event.handlers.call(this, event, handlers);\n\n // Run delegates first; they may want to stop propagation beneath us\n i = 0;\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n }\n\n // Call the postDispatch hook for the mapped type\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n return event.result;\n },\n handlers: function (event, handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = handlers.delegateCount,\n cur = event.target;\n\n // Find delegate handlers\n if (delegateCount &&\n // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType &&\n // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (trac-13208)\n // Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n for (i = 0; i < delegateCount; i++) {\n handleObj = handlers[i];\n\n // Don't conflict with Object.prototype properties (trac-13203)\n sel = handleObj.selector + \" \";\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n }\n\n // Add the remaining (directly-bound) handlers\n cur = this;\n if (delegateCount < handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: handlers.slice(delegateCount)\n });\n }\n return handlerQueue;\n },\n addProp: function (name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function (value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function (originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data;\n\n // Claim the first handler\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n }\n\n // Return false to allow normal processing in the caller\n return false;\n },\n trigger: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data;\n\n // Force setup before triggering a click\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n }\n\n // Return non-false to allow normal event-path propagation\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function (event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function (event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\n };\n\n // Ensure the presence of an event listener that handles manually-triggered\n // synthetic events by interrupting progress until reinvoked in response to\n // *native* events that it fires directly, ensuring that state changes have\n // already occurred before other listeners are invoked.\n function leverageNative(el, type, expectSync) {\n // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n if (!expectSync) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n return;\n }\n\n // Register the controller as a special universal handler for all event namespaces\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function (event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n // Saved data should be false in such cases, but might be a leftover capture object\n // from an async native handler (gh-4350)\n if (!saved.length) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = slice.call(arguments);\n dataPriv.set(this, type, saved);\n\n // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault();\n\n // Support: Chrome 86+\n // In Chrome, if an element having a focusout handler is blurred by\n // clicking outside of it, it invokes the handler synchronously. If\n // that handler calls `.remove()` on the element, the data is cleared,\n // leaving `result` undefined. We need to guard against this.\n return result && result.value;\n }\n\n // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering the\n // native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n }\n\n // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger(\n // Support: IE <=9 - 11+\n // Extend with the prototype to reset the above stopImmediatePropagation()\n jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n });\n\n // Abort handling of the native event\n event.stopImmediatePropagation();\n }\n }\n });\n }\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n }\n\n // Event object\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type;\n\n // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined &&\n // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse;\n\n // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (trac-504, trac-13143)\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget;\n\n // Event type\n } else {\n this.type = src;\n }\n\n // Put explicitly provided properties onto the event object\n if (props) {\n jQuery.extend(this, props);\n }\n\n // Create a timestamp if incoming event doesn't have one\n this.timeStamp = src && src.timeStamp || Date.now();\n\n // Mark it as fixed\n this[jQuery.expando] = true;\n };\n\n // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function () {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function () {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function () {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n this.stopPropagation();\n }\n };\n\n // Includes all common event props including KeyEvent and MouseEvent specific props\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: true\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function () {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync);\n\n // Return false to allow normal processing in the caller\n return false;\n },\n trigger: function () {\n // Force setup before trigger\n leverageNative(this, type);\n\n // Return non-false to allow normal event-path propagation\n return true;\n },\n // Suppress native focus or blur if we're currently inside\n // a leveraged native-event stack\n _default: function (event) {\n return dataPriv.get(event.target, type);\n },\n delegateType: delegateType\n };\n });\n\n // Create mouseenter/leave events using mouseover/out and event-time checks\n // so that event delegation works in jQuery.\n // Do the same for pointerenter/pointerleave and pointerover/pointerout\n //\n // Support: Safari 7 only\n // Safari sends mouseenter too often; see:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n // for the description of the bug (it existed in older Chrome versions as well).\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function (event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj;\n\n // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn);\n },\n one: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn, 1);\n },\n off: function (types, selector, fn) {\n var handleObj, type;\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n if (typeof types === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n return this;\n }\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n if (fn === false) {\n fn = returnFalse;\n }\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n var\n // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g;\n\n // Prefer a tbody over its parent table for containing new rows\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n return elem;\n }\n\n // Replace/restore the type attribute of script elements for safe DOM manipulation\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n return elem;\n }\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n if (dest.nodeType !== 1) {\n return;\n }\n\n // 1. Copy private data: events, handlers, etc.\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n }\n\n // 2. Copy user data\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n }\n\n // Fix IE bugs, see support tests\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase();\n\n // Fails to persist the checked state of a cloned checkbox or radio button.\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked;\n\n // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value);\n\n // We can't cloneNode fragments that contain checked, in WebKit\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n domManip(self, args, callback, ignored);\n });\n }\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n if (fragment.childNodes.length === 1) {\n fragment = first;\n }\n\n // Require either new content or an interest in ignored elements to invoke the callback\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length;\n\n // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (trac-8070).\n for (; i < l; i++) {\n node = fragment;\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true);\n\n // Keep references to cloned scripts for later restoration\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n callback.call(collection[i], node, i);\n }\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument;\n\n // Reenable scripts\n jQuery.map(scripts, restoreScript);\n\n // Evaluate executable scripts on first document insertion\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n // Unwrap a CDATA section containing script contents. This shouldn't be\n // needed as in XML documents they're already not visible when\n // inspecting element contents and in HTML documents they have no\n // meaning but we're preserving that logic for backwards compatibility.\n // This will be removed completely in 4.0. See gh-4904.\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n return collection;\n }\n function remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n node.parentNode.removeChild(node);\n }\n }\n return elem;\n }\n jQuery.extend({\n htmlPrefilter: function (html) {\n return html;\n },\n clone: function (elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem);\n\n // Fix IE cloning issues\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n }\n\n // Copy the events from the original to the clone\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n }\n\n // Preserve script evaluation history\n destElements = getAll(clone, \"script\");\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n }\n\n // Return the cloned set\n return clone;\n },\n cleanData: function (elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type);\n\n // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n }\n\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataPriv.expando] = undefined;\n }\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function (selector) {\n return remove(this, selector, true);\n },\n remove: function (selector) {\n return remove(this, selector);\n },\n text: function (value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function () {\n var elem,\n i = 0;\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false));\n\n // Remove any remaining nodes\n elem.textContent = \"\";\n }\n }\n return this;\n },\n clone: function (dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function (value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n }\n\n // See if we can take a shortcut and just use innerHTML\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n try {\n for (; i < l; i++) {\n elem = this[i] || {};\n\n // Remove element nodes and prevent memory leaks\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n elem = 0;\n\n // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function () {\n var ignored = [];\n\n // Make the changes, replacing each non-ignored context element with the new content\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n if (parent) {\n parent.replaceChild(elem, this);\n }\n }\n\n // Force callback invocation\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems);\n\n // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n push.apply(ret, elems.get());\n }\n return this.pushStack(ret);\n };\n });\n var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n var rcustomProp = /^--/;\n var getStyles = function (elem) {\n // Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n if (!view || !view.opener) {\n view = window;\n }\n return view.getComputedStyle(elem);\n };\n var swap = function (elem, options, callback) {\n var ret,\n name,\n old = {};\n\n // Remember the old values, and insert the new ones\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n ret = callback.call(elem);\n\n // Revert the old values\n for (name in options) {\n elem.style[name] = old[name];\n }\n return ret;\n };\n var rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\n var whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n var rtrimCSS = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\");\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\";\n\n // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12;\n\n // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36;\n\n // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36;\n\n // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container);\n\n // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n div = null;\n }\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\");\n\n // Finish early in limited (non-browser) environments\n if (!div.style) {\n return;\n }\n\n // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (trac-8908)\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function () {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function () {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function () {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function () {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function () {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n //\n // Support: Firefox 70+\n // Only Firefox includes border widths\n // in computed dimensions. (gh-4529)\n reliableTrDimensions: function () {\n var table, tr, trChild, trStyle;\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n tr.style.cssText = \"border:1px solid\";\n\n // Support: Chrome 86+\n // Height set through cssText does not get applied.\n // Computed height then comes back as 0.\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\";\n\n // Support: Android 8 Chrome 86+\n // In our bodyBackground.html iframe,\n // display for all div elements is set to \"inline\",\n // which causes a problem only in Android 8 Chrome 86.\n // Ensuring the div is display: block\n // gets around this issue.\n trChild.style.display = \"block\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight;\n documentElement.removeChild(table);\n }\n return reliableTrDimensionsVal;\n }\n });\n })();\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n isCustomProp = rcustomProp.test(name),\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem);\n\n // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, trac-12537)\n // .css('--customProperty) (gh-3144)\n if (computed) {\n ret = computed.getPropertyValue(name) || computed[name];\n\n // trim whitespace for custom property (issue gh-4926)\n if (isCustomProp) {\n // rtrim treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n // as whitespace while CSS does not, but this is not a problem\n // because CSS preprocessing replaces them with U+000A LINE FEED\n // (which *is* CSS whitespace)\n // https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n ret = ret.replace(rtrimCSS, \"$1\");\n }\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n }\n\n // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth;\n\n // Put in the new values to get a computed value out\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width;\n\n // Revert the changed values\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n return ret !== undefined ?\n // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function () {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n }\n\n // Hook needed; redefine it so that the support test is not executed again.\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {};\n\n // Return a vendor-prefixed property or undefined\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n while (i--) {\n name = cssPrefixes[i] + capName;\n if (name in emptyStyle) {\n return name;\n }\n }\n }\n\n // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n function finalPropName(name) {\n var final = jQuery.cssProps[name] || vendorProps[name];\n if (final) {\n return final;\n }\n if (name in emptyStyle) {\n return name;\n }\n return vendorProps[name] = vendorPropName(name) || name;\n }\n var\n // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ?\n // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0;\n\n // Adjustment may not be necessary\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n if (box === \"margin\") {\n delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n }\n\n // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n\n // For \"border\" or \"margin\", add border\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n\n // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n\n // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n }\n\n // For \"content\" or \"padding\", subtract border\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n }\n\n // Account for positive content-box scroll gutter when requested by providing computedVal\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5\n\n // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n return delta;\n }\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1);\n\n // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n val = \"auto\";\n }\n\n // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n if ((!support.boxSizingReliable() && isBorderBox ||\n // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") ||\n // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" ||\n // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") &&\n // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\";\n\n // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n valueIsBorderBox = offsetProp in elem;\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n }\n\n // Normalize \"\" and auto\n val = parseFloat(val) || 0;\n\n // Adjust for the element's box model\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles,\n // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function (elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n \"animationIterationCount\": true,\n \"columnCount\": true,\n \"fillOpacity\": true,\n \"flexGrow\": true,\n \"flexShrink\": true,\n \"fontWeight\": true,\n \"gridArea\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnStart\": true,\n \"gridRow\": true,\n \"gridRowEnd\": true,\n \"gridRowStart\": true,\n \"lineHeight\": true,\n \"opacity\": true,\n \"order\": true,\n \"orphans\": true,\n \"widows\": true,\n \"zIndex\": true,\n \"zoom\": true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function (elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n }\n\n // Make sure that we're working with the right name\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style;\n\n // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n if (!isCustomProp) {\n name = finalPropName(origName);\n }\n\n // Gets hook for the prefixed version, then unprefixed version\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\n\n // Check if we're setting a value\n if (value !== undefined) {\n type = typeof value;\n\n // Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret);\n\n // Fixes bug trac-9237\n type = \"number\";\n }\n\n // Make sure that null and NaN values aren't set (trac-7116)\n if (value == null || value !== value) {\n return;\n }\n\n // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n }\n\n // background-* props affect original clone's values\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n }\n\n // If a hook was provided, use that value, otherwise just set the specified value\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n }\n\n // Otherwise just get the value from the style object\n return style[name];\n }\n },\n css: function (elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name);\n\n // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n if (!isCustomProp) {\n name = finalPropName(origName);\n }\n\n // Try prefixed name followed by the unprefixed name\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\n\n // If a hook was provided get the computed value from there\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n }\n\n // Otherwise, if a way to get the computed value exists, use that\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n }\n\n // Convert \"normal\" to computed value\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n }\n\n // Make numeric if forced or a qualifier was provided and val looks numeric\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function (elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && (\n // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function (elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0;\n\n // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n }\n\n // Convert to pixels if value adjustment is needed\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n });\n\n // These hooks are used by animate to expand properties\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function (value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n return expanded;\n }\n };\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function (name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n return map;\n }\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function (elem, options, prop, end, easing, unit) {\n this.elem = elem;\n this.prop = prop;\n this.easing = easing || jQuery.easing._default;\n this.options = options;\n this.start = this.now = this.cur();\n this.end = end;\n this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n },\n cur: function () {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function (percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n if (this.options.duration) {\n this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n } else {\n this.pos = eased = percent;\n }\n this.now = (this.end - this.start) * eased + this.start;\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function (tween) {\n var result;\n\n // Use a property on the element directly when it is not a DOM element,\n // or when there is no matching style property that exists.\n if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n return tween.elem[tween.prop];\n }\n\n // Passing an empty string as a 3rd parameter to .css will automatically\n // attempt a parseFloat and fallback to a string if the parse fails.\n // Simple values such as \"10px\" are parsed to Float;\n // complex values such as \"rotate(1rad)\" are returned as-is.\n result = jQuery.css(tween.elem, tween.prop, \"\");\n\n // Empty strings, null, undefined and \"auto\" are converted to 0.\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function (tween) {\n // Use step hook for back compat.\n // Use cssHook if its there.\n // Use .style if available and use plain properties where available.\n if (jQuery.fx.step[tween.prop]) {\n jQuery.fx.step[tween.prop](tween);\n } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n } else {\n tween.elem[tween.prop] = tween.now;\n }\n }\n }\n };\n\n // Support: IE <=9 only\n // Panic based approach to setting things on disconnected nodes\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function (tween) {\n if (tween.elem.nodeType && tween.elem.parentNode) {\n tween.elem[tween.prop] = tween.now;\n }\n }\n };\n jQuery.easing = {\n linear: function (p) {\n return p;\n },\n swing: function (p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n _default: \"swing\"\n };\n jQuery.fx = Tween.prototype.init;\n\n // Back compat <1.8 extension point\n jQuery.fx.step = {};\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n jQuery.fx.tick();\n }\n }\n\n // Animations created synchronously will run synchronously\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n }\n\n // Generate parameters to create a standard animation\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n };\n\n // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n includeWidth = includeWidth ? 1 : 0;\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n return attrs;\n }\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\");\n\n // Queue-skipping animations hijack the fx hooks\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n }\n\n // Detect show/hide animations\n for (prop in props) {\n value = props[prop];\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true;\n\n // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n }\n\n // Bail out if this is a no-op like .hide().hide()\n propTween = !jQuery.isEmptyObject(props);\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n }\n\n // Restrict \"overflow\" and \"display\" styles during box animations\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY];\n\n // Identify a display type, preferring old show/hide data over the CSS cascade\n restoreDisplay = dataShow && dataShow.display;\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n display = jQuery.css(elem, \"display\");\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n }\n\n // Animate inline elements as inline-block\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n style.display = \"inline-block\";\n }\n }\n }\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n }\n\n // Implement show/hide animations\n propTween = false;\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n }\n\n // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n if (toggle) {\n dataShow.hidden = !hidden;\n }\n\n // Show elements before animating them\n if (hidden) {\n showHide([elem], true);\n }\n\n /* eslint-disable no-loop-func */\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n dataPriv.remove(elem, \"fxshow\");\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n }\n\n // Per-property setup\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks;\n\n // camelCase, specialEasing and expand cssHook pass\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n hooks = jQuery.cssHooks[name];\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name];\n\n // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function () {\n if (stopped) {\n return false;\n }\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n deferred.notifyWith(elem, [animation, percent, remaining]);\n\n // If there's more to do, yield\n if (percent < 1 && length) {\n return remaining;\n }\n\n // If this was an empty animation, synthesize a final progress notification\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n }\n\n // Resolve the animation and report its conclusion\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function (prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function (gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n if (stopped) {\n return this;\n }\n stopped = true;\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n }\n\n // Resolve when we played the last frame; otherwise, reject\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n return this;\n }\n }),\n props = animation.props;\n propFilter(props, animation.opts.specialEasing);\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n return result;\n }\n }\n jQuery.map(props, createTween, animation);\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n }\n\n // Attach callbacks from options\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function (props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n var prop,\n index = 0,\n length = props.length;\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function (callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && typeof speed === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n };\n\n // Go to the end state if fx are off\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n }\n\n // Normalize opt.queue - true/undefined/null -> \"fx\"\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n }\n\n // Queueing\n opt.old = opt.complete;\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n return opt;\n };\n jQuery.fn.extend({\n fadeTo: function (speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show()\n\n // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function (prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function () {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall);\n\n // Empty animations, or finishing resolves immediately\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function (type, clearQueue, gotoEnd) {\n var stopQueue = function (hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n }\n\n // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function (type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0;\n\n // Enable finishing flag on private data\n data.finish = true;\n\n // Empty the queue first\n jQuery.queue(this, type, []);\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n }\n\n // Look for any active animations, and finish them\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n }\n\n // Look for any animations in the old queue and finish them\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n }\n\n // Turn off finishing flag\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n });\n\n // Generate shortcuts for custom animations\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n for (; i < timers.length; i++) {\n timer = timers[i];\n\n // Run the timer and safely remove it when done (allowing for external removal)\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n if (!timers.length) {\n jQuery.fx.stop();\n }\n fxNow = undefined;\n };\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n jQuery.fx.interval = 13;\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n inProgress = true;\n schedule();\n };\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n };\n\n // Based off of the plugin by Clint Helfers, with permission.\n jQuery.fn.delay = function (time, type) {\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n type = type || \"fx\";\n return this.queue(type, function (next, hooks) {\n var timeout = window.setTimeout(next, time);\n hooks.stop = function () {\n window.clearTimeout(timeout);\n };\n });\n };\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\";\n\n // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n support.checkOn = input.value !== \"\";\n\n // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n support.optSelected = opt.selected;\n\n // Support: IE <=11 only\n // An input loses its value after becoming a radio\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n var boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function (name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function (name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function (elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType;\n\n // Don't get/set attributes on text, comment and attribute nodes\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n // Fallback to prop when attributes are not supported\n if (typeof elem.getAttribute === \"undefined\") {\n return jQuery.prop(elem, name, value);\n }\n\n // Attribute hooks are determined by the lowercase version\n // Grab necessary hook if one is defined\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n }\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n return;\n }\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n elem.setAttribute(name, value + \"\");\n return value;\n }\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n ret = jQuery.find.attr(elem, name);\n\n // Non-existent attributes return null, we normalize to undefined\n return ret == null ? undefined : ret;\n },\n attrHooks: {\n type: {\n set: function (elem, value) {\n if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n if (val) {\n elem.value = val;\n }\n return value;\n }\n }\n }\n },\n removeAttr: function (elem, value) {\n var name,\n i = 0,\n // Attribute names can contain non-HTML whitespace characters\n // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n attrNames = value && value.match(rnothtmlwhite);\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n elem.removeAttribute(name);\n }\n }\n }\n });\n\n // Hooks for boolean attributes\n boolHook = {\n set: function (elem, value, name) {\n if (value === false) {\n // Remove boolean attributes when set to false\n jQuery.removeAttr(elem, name);\n } else {\n elem.setAttribute(name, name);\n }\n return name;\n }\n };\n jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\n var getter = attrHandle[name] || jQuery.find.attr;\n attrHandle[name] = function (elem, name, isXML) {\n var ret,\n handle,\n lowercaseName = name.toLowerCase();\n if (!isXML) {\n // Avoid an infinite loop by temporarily removing this function from the getter\n handle = attrHandle[lowercaseName];\n attrHandle[lowercaseName] = ret;\n ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n attrHandle[lowercaseName] = handle;\n }\n return ret;\n };\n });\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function (name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function (name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function (elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType;\n\n // Don't get/set properties on text, comment and attribute nodes\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n return elem[name] = value;\n }\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function (elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // Use proper attribute retrieval (trac-12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\n });\n\n // Support: IE <=11 only\n // Accessing the selectedIndex property\n // forces the browser to respect setting selected\n // on the option\n // The getter ensures a default option is selected\n // when in an optgroup\n // eslint rule \"no-unused-expressions\" is disabled for this code\n // since it considers such accessions noop\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function (elem) {\n /* eslint no-unused-expressions: \"off\" */\n\n var parent = elem.parentNode;\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n return null;\n },\n set: function (elem) {\n /* eslint no-unused-expressions: \"off\" */\n\n var parent = elem.parentNode;\n if (parent) {\n parent.selectedIndex;\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n });\n\n // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n function getClass(elem) {\n return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n }\n function classesToArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n if (typeof value === \"string\") {\n return value.match(rnothtmlwhite) || [];\n }\n return [];\n }\n jQuery.fn.extend({\n addClass: function (value) {\n var classNames, cur, curValue, className, i, finalValue;\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n classNames = classesToArray(value);\n if (classNames.length) {\n return this.each(function () {\n curValue = getClass(this);\n cur = this.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n if (cur) {\n for (i = 0; i < classNames.length; i++) {\n className = classNames[i];\n if (cur.indexOf(\" \" + className + \" \") < 0) {\n cur += className + \" \";\n }\n }\n\n // Only assign if different to avoid unneeded rendering.\n finalValue = stripAndCollapse(cur);\n if (curValue !== finalValue) {\n this.setAttribute(\"class\", finalValue);\n }\n }\n });\n }\n return this;\n },\n removeClass: function (value) {\n var classNames, cur, curValue, className, i, finalValue;\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, getClass(this)));\n });\n }\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n classNames = classesToArray(value);\n if (classNames.length) {\n return this.each(function () {\n curValue = getClass(this);\n\n // This expression is here for better compressibility (see addClass)\n cur = this.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n if (cur) {\n for (i = 0; i < classNames.length; i++) {\n className = classNames[i];\n\n // Remove *all* instances\n while (cur.indexOf(\" \" + className + \" \") > -1) {\n cur = cur.replace(\" \" + className + \" \", \" \");\n }\n }\n\n // Only assign if different to avoid unneeded rendering.\n finalValue = stripAndCollapse(cur);\n if (curValue !== finalValue) {\n this.setAttribute(\"class\", finalValue);\n }\n }\n });\n }\n return this;\n },\n toggleClass: function (value, stateVal) {\n var classNames,\n className,\n i,\n self,\n type = typeof value,\n isValidValue = type === \"string\" || Array.isArray(value);\n if (isFunction(value)) {\n return this.each(function (i) {\n jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n });\n }\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\n classNames = classesToArray(value);\n return this.each(function () {\n if (isValidValue) {\n // Toggle individual class names\n self = jQuery(this);\n for (i = 0; i < classNames.length; i++) {\n className = classNames[i];\n\n // Check each className given, space separated list\n if (self.hasClass(className)) {\n self.removeClass(className);\n } else {\n self.addClass(className);\n }\n }\n\n // Toggle whole class name\n } else if (value === undefined || type === \"boolean\") {\n className = getClass(this);\n if (className) {\n // Store className if set\n dataPriv.set(this, \"__className__\", className);\n }\n\n // If the element has a class name or if we're passed `false`,\n // then remove the whole classname (if there was one, the above saved it).\n // Otherwise bring back whatever was previously saved (if anything),\n // falling back to the empty string if nothing was stored.\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n }\n }\n });\n },\n hasClass: function (selector) {\n var className,\n elem,\n i = 0;\n className = \" \" + selector + \" \";\n while (elem = this[i++]) {\n if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n return true;\n }\n }\n return false;\n }\n });\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function (value) {\n var hooks,\n ret,\n valueIsFunction,\n elem = this[0];\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n ret = elem.value;\n\n // Handle most common string cases\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n }\n\n // Handle cases where value is null/undef or number\n return ret == null ? \"\" : ret;\n }\n return;\n }\n valueIsFunction = isFunction(value);\n return this.each(function (i) {\n var val;\n if (this.nodeType !== 1) {\n return;\n }\n if (valueIsFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n }\n\n // Treat null/undefined as \"\"; convert numbers to string\n if (val == null) {\n val = \"\";\n } else if (typeof val === \"number\") {\n val += \"\";\n } else if (Array.isArray(val)) {\n val = jQuery.map(val, function (value) {\n return value == null ? \"\" : value + \"\";\n });\n }\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()];\n\n // If set returns undefined, fall back to normal setting\n if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n this.value = val;\n }\n });\n }\n });\n jQuery.extend({\n valHooks: {\n option: {\n get: function (elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val :\n // Support: IE <=10 - 11 only\n // option.text throws exceptions (trac-14686, trac-14858)\n // Strip and collapse whitespace\n // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n stripAndCollapse(jQuery.text(elem));\n }\n },\n select: {\n get: function (elem) {\n var value,\n option,\n i,\n options = elem.options,\n index = elem.selectedIndex,\n one = elem.type === \"select-one\",\n values = one ? null : [],\n max = one ? index + 1 : options.length;\n if (index < 0) {\n i = max;\n } else {\n i = one ? index : 0;\n }\n\n // Loop through all the selected options\n for (; i < max; i++) {\n option = options[i];\n\n // Support: IE <=9 only\n // IE8-9 doesn't update selected after form reset (trac-2551)\n if ((option.selected || i === index) &&\n // Don't return options that are disabled or in a disabled optgroup\n !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n // Get the specific value for the option\n value = jQuery(option).val();\n\n // We don't need an array for one selects\n if (one) {\n return value;\n }\n\n // Multi-Selects return an array\n values.push(value);\n }\n }\n return values;\n },\n set: function (elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n while (i--) {\n option = options[i];\n\n /* eslint-disable no-cond-assign */\n\n if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n optionSet = true;\n }\n\n /* eslint-enable no-cond-assign */\n }\n\n // Force browsers to behave consistently when non-matching value is set\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n return values;\n }\n }\n }\n });\n\n // Radios and checkboxes getter/setter\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function (elem, value) {\n if (Array.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n }\n }\n };\n if (!support.checkOn) {\n jQuery.valHooks[this].get = function (elem) {\n return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n };\n }\n });\n\n // Return jQuery for attributes-only inclusion\n\n support.focusin = \"onfocusin\" in window;\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function (e) {\n e.stopPropagation();\n };\n jQuery.extend(jQuery.event, {\n trigger: function (event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document;\n\n // Don't do events on text and comment nodes\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n }\n\n // focus/blur morphs to focusin/out; ensure we're not firing them right now\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n ontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n // Caller can pass in a jQuery.Event object, Object, or just an event type string\n event = event[jQuery.expando] ? event : new jQuery.Event(type, typeof event === \"object\" && event);\n\n // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null;\n\n // Clean up the event in case it is being reused\n event.result = undefined;\n if (!event.target) {\n event.target = elem;\n }\n\n // Clone any incoming data and prepend the event, creating the handler arg list\n data = data == null ? [event] : jQuery.makeArray(data, [event]);\n\n // Allow special events to draw outside the lines\n special = jQuery.event.special[type] || {};\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n }\n\n // Determine event propagation path in advance, per W3C events spec (trac-9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n }\n\n // Only add window if we got to document (e.g., not plain obj or detached DOM)\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n }\n\n // Fire handlers on the event path\n i = 0;\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type;\n\n // jQuery handler\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n if (handle) {\n handle.apply(cur, data);\n }\n\n // Native handler\n handle = ontype && cur[ontype];\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n event.type = type;\n\n // If nobody prevented the default action, do it now\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (trac-6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n if (tmp) {\n elem[ontype] = null;\n }\n\n // Prevent re-triggering of the same event, since we already bubbled it above\n jQuery.event.triggered = type;\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n elem[type]();\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n jQuery.event.triggered = undefined;\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function (type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function (type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function (type, data) {\n var elem = this[0];\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n });\n\n // Support: Firefox <=44\n // Firefox doesn't have focus(in | out) events\n // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n //\n // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n // focus(in | out) events fire after focus & blur events,\n // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n if (!support.focusin) {\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (orig, fix) {\n // Attach a single capturing handler on the document while someone wants focusin/focusout\n var handler = function (event) {\n jQuery.event.simulate(fix, event.target, jQuery.event.fix(event));\n };\n jQuery.event.special[fix] = {\n setup: function () {\n // Handle: regular nodes (via `this.ownerDocument`), window\n // (via `this.document`) & document (via `this`).\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix);\n if (!attaches) {\n doc.addEventListener(orig, handler, true);\n }\n dataPriv.access(doc, fix, (attaches || 0) + 1);\n },\n teardown: function () {\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix) - 1;\n if (!attaches) {\n doc.removeEventListener(orig, handler, true);\n dataPriv.remove(doc, fix);\n } else {\n dataPriv.access(doc, fix, attaches);\n }\n }\n };\n });\n }\n var location = window.location;\n var nonce = {\n guid: Date.now()\n };\n var rquery = /\\?/;\n\n // Cross-browser xml parsing\n jQuery.parseXML = function (data) {\n var xml, parserErrorElem;\n if (!data || typeof data !== \"string\") {\n return null;\n }\n\n // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {}\n parserErrorElem = xml && xml.getElementsByTagName(\"parsererror\")[0];\n if (!xml || parserErrorElem) {\n jQuery.error(\"Invalid XML: \" + (parserErrorElem ? jQuery.map(parserErrorElem.childNodes, function (el) {\n return el.textContent;\n }).join(\"\\n\") : data));\n }\n return xml;\n };\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n function buildParams(prefix, obj, traditional, add) {\n var name;\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (typeof v === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n }\n\n // Serialize an array of form elements or a set of\n // key/values into a query string\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function (key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n if (a == null) {\n return \"\";\n }\n\n // If an array was passed in, assume that it is an array of form elements.\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n }\n\n // Return the resulting serialization\n return s.join(\"&\");\n };\n jQuery.fn.extend({\n serialize: function () {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function () {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type;\n\n // Use .is( \":disabled\" ) so that fieldset[disabled] works\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n if (val == null) {\n return null;\n }\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // trac-7653, trac-8125, trac-8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href;\n\n // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func);\n\n // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n }\n\n // Base inspection function for prefilters and transports\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n }\n\n // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes trac-9887\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n return target;\n }\n\n /* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes;\n\n // Remove auto dataType and get content-type in the process\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n }\n\n // Check if we're dealing with a known content-type\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n }\n\n // Check to see if we have a response for the expected dataType\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n if (!firstDataType) {\n firstDataType = type;\n }\n }\n\n // Or just use first one\n finalDataType = finalDataType || firstDataType;\n }\n\n // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n return responses[finalDataType];\n }\n }\n\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice();\n\n // Create converters map with lowercased keys\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n current = dataTypes.shift();\n\n // Convert to each sequential dataType\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n }\n\n // Apply the dataFilter if provided\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n prev = current;\n current = dataTypes.shift();\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev;\n\n // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current];\n\n // If none found, seek a pair\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2];\n\n // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n break;\n }\n }\n }\n }\n\n // Apply converter (if not an equivalence)\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s.throws) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n return {\n state: \"success\",\n data: response\n };\n }\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function (target, settings) {\n return settings ?\n // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) :\n // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function (url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (typeof url === \"object\") {\n options = url;\n url = undefined;\n }\n\n // Force options to be an object\n options = options || {};\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function (key) {\n var match;\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function () {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function (name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function (type) {\n if (completed == null) {\n s.mimeType = type;\n }\n return this;\n },\n // Status-dependent callbacks\n statusCode: function (map) {\n var code;\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n statusCode[code] = [statusCode[code], map[code]];\n }\n }\n }\n return this;\n },\n // Cancel the request\n abort: function (statusText) {\n var finalText = statusText || strAbort;\n if (transport) {\n transport.abort(finalText);\n }\n done(0, finalText);\n return this;\n }\n };\n\n // Attach deferreds\n deferred.promise(jqXHR);\n\n // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (trac-10093: consistency with old signature)\n // We also use the url parameter if available\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\");\n\n // Alias method option to type as per ticket trac-12004\n s.type = options.method || options.type || s.method || s.type;\n\n // Extract dataTypes list\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"];\n\n // A cross-domain request is in order when the origin doesn't match the current origin.\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\");\n\n // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n try {\n urlAnchor.href = s.url;\n\n // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n }\n\n // Convert data if not already a string\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n }\n\n // Apply prefilters\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR);\n\n // If request was aborted inside a prefilter, stop there\n if (completed) {\n return jqXHR;\n }\n\n // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n fireGlobals = jQuery.event && s.global;\n\n // Watch for a new set of requests\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n }\n\n // Uppercase the type\n s.type = s.type.toUpperCase();\n\n // Determine if request has content\n s.hasContent = !rnoContent.test(s.type);\n\n // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n cacheURL = s.url.replace(rhash, \"\");\n\n // More options handling for requests with no content\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length);\n\n // If data is available and should be processed, append data to url\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data;\n\n // trac-9682: remove data so that it's not used in an eventual retry\n delete s.data;\n }\n\n // Add or update anti-cache param if needed\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n }\n\n // Put hash and anti-cache on the URL that will be requested (gh-1732)\n s.url = cacheURL + uncached;\n\n // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n }\n\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n }\n\n // Set the correct header, if data is being sent\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n }\n\n // Set the Accepts header for the server, depending on the dataType\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]);\n\n // Check for headers option\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n }\n\n // Allow custom headers/mimetypes and early abort\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n }\n\n // Aborting is no longer a cancellation\n strAbort = \"abort\";\n\n // Install callbacks on deferreds\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error);\n\n // Get transport\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR);\n\n // If no transport, we auto-abort\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1;\n\n // Send global event\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n }\n\n // If request was aborted inside ajaxSend, stop there\n if (completed) {\n return jqXHR;\n }\n\n // Timeout\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n }\n\n // Propagate others as results\n done(-1, e);\n }\n }\n\n // Callback for when everything is done\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText;\n\n // Ignore repeat invocations\n if (completed) {\n return;\n }\n completed = true;\n\n // Clear timeout if it exists\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n }\n\n // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n transport = undefined;\n\n // Cache response headers\n responseHeadersString = headers || \"\";\n\n // Set readyState\n jqXHR.readyState = status > 0 ? 4 : 0;\n\n // Determine if successful\n isSuccess = status >= 200 && status < 300 || status === 304;\n\n // Get response data\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n }\n\n // Use a noop converter for missing script but not if jsonp\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1 && jQuery.inArray(\"json\", s.dataTypes) < 0) {\n s.converters[\"text script\"] = function () {};\n }\n\n // Convert no matter what (that way responseXXX fields are always set)\n response = ajaxConvert(s, response, jqXHR, isSuccess);\n\n // If successful, handle type chaining\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n modified = jqXHR.getResponseHeader(\"etag\");\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n }\n\n // if no content\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\";\n\n // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\";\n\n // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n if (status || !statusText) {\n statusText = \"error\";\n if (status < 0) {\n status = 0;\n }\n }\n }\n\n // Set data for the fake xhr object\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\";\n\n // Success/Error\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n }\n\n // Status-dependent callbacks\n jqXHR.statusCode(statusCode);\n statusCode = undefined;\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n }\n\n // Complete\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]);\n\n // Handle the global AJAX counter\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n return jqXHR;\n },\n getJSON: function (url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function (url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n }\n\n // The url can be an options object (which then must have .url)\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n jQuery._evalUrl = function (url, options, doc) {\n return jQuery.ajax({\n url: url,\n // Make this explicit, since user can override this through ajaxSetup (trac-11264)\n type: \"GET\",\n dataType: \"script\",\n cache: true,\n async: false,\n global: false,\n // Only evaluate the response if it is successful (gh-4126)\n // dataFilter is not invoked for failure responses, so using it instead\n // of the default converter is kludgy but it works.\n converters: {\n \"text script\": function () {}\n },\n dataFilter: function (response) {\n jQuery.globalEval(response, options, doc);\n }\n });\n };\n jQuery.fn.extend({\n wrapAll: function (html) {\n var wrap;\n if (this[0]) {\n if (isFunction(html)) {\n html = html.call(this[0]);\n }\n\n // The elements to wrap the target around\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n wrap.map(function () {\n var elem = this;\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n return elem;\n }).append(this);\n }\n return this;\n },\n wrapInner: function (html) {\n if (isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function (html) {\n var htmlIsFunction = isFunction(html);\n return this.each(function (i) {\n jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n });\n },\n unwrap: function (selector) {\n this.parent(selector).not(\"body\").each(function () {\n jQuery(this).replaceWith(this.childNodes);\n });\n return this;\n }\n });\n jQuery.expr.pseudos.hidden = function (elem) {\n return !jQuery.expr.pseudos.visible(elem);\n };\n jQuery.expr.pseudos.visible = function (elem) {\n return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n };\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {}\n };\n var xhrSuccessStatus = {\n // File protocol always yields status code 0, assume 200\n 0: 200,\n // Support: IE <=9 only\n // trac-1450: sometimes IE returns 1223 when it should be 204\n 1223: 204\n },\n xhrSupported = jQuery.ajaxSettings.xhr();\n support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n support.ajax = xhrSupported = !!xhrSupported;\n jQuery.ajaxTransport(function (options) {\n var callback, errorCallback;\n\n // Cross domain only allowed if supported through XMLHttpRequest\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function (headers, complete) {\n var i,\n xhr = options.xhr();\n xhr.open(options.type, options.url, options.async, options.username, options.password);\n\n // Apply custom fields if provided\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n }\n\n // Override mime type if needed\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\n }\n\n // X-Requested-With header\n // For cross-domain requests, seeing as conditions for a preflight are\n // akin to a jigsaw puzzle, we simply never set it to be sure.\n // (it can always be set on a per-request basis or even using ajaxSetup)\n // For same-domain requests, won't change header if already provided.\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n }\n\n // Set headers\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n }\n\n // Callback\n callback = function (type) {\n return function () {\n if (callback) {\n callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n if (type === \"abort\") {\n xhr.abort();\n } else if (type === \"error\") {\n // Support: IE <=9 only\n // On a manual native abort, IE9 throws\n // errors on any property access that is not readyState\n if (typeof xhr.status !== \"number\") {\n complete(0, \"error\");\n } else {\n complete(\n // File: protocol always yields status 0; see trac-8605, trac-14207\n xhr.status, xhr.statusText);\n }\n } else {\n complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText,\n // Support: IE <=9 only\n // IE9 has no XHR2 but throws on binary (trac-11426)\n // For XHR2 non-text, let the caller handle it (gh-2498)\n (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n binary: xhr.response\n } : {\n text: xhr.responseText\n }, xhr.getAllResponseHeaders());\n }\n }\n };\n };\n\n // Listen to events\n xhr.onload = callback();\n errorCallback = xhr.onerror = xhr.ontimeout = callback(\"error\");\n\n // Support: IE 9 only\n // Use onreadystatechange to replace onabort\n // to handle uncaught aborts\n if (xhr.onabort !== undefined) {\n xhr.onabort = errorCallback;\n } else {\n xhr.onreadystatechange = function () {\n // Check readyState before timeout as it changes\n if (xhr.readyState === 4) {\n // Allow onerror to be called first,\n // but that will not handle a native abort\n // Also, save errorCallback to a variable\n // as xhr.onerror cannot be accessed\n window.setTimeout(function () {\n if (callback) {\n errorCallback();\n }\n });\n }\n };\n }\n\n // Create the abort callback\n callback = callback(\"abort\");\n try {\n // Do send the request (this may raise an exception)\n xhr.send(options.hasContent && options.data || null);\n } catch (e) {\n // trac-14683: Only rethrow if this hasn't been notified as an error yet\n if (callback) {\n throw e;\n }\n }\n },\n abort: function () {\n if (callback) {\n callback();\n }\n }\n };\n }\n });\n\n // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n });\n\n // Install script dataType\n jQuery.ajaxSetup({\n accepts: {\n script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n },\n contents: {\n script: /\\b(?:java|ecma)script\\b/\n },\n converters: {\n \"text script\": function (text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n });\n\n // Handle cache's special case and crossDomain\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n });\n\n // Bind script tag hack transport\n jQuery.ajaxTransport(\"script\", function (s) {\n // This transport only deals with cross domain or forced-by-attrs requests\n if (s.crossDomain || s.scriptAttrs) {\n var script, callback;\n return {\n send: function (_, complete) {\n script = jQuery(\"