{"version":3,"sources":["webpack:///webpack/bootstrap","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:///(webpack)/buildin/global.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./app/javascript/controllers sync _controller\\.js$","webpack:///./app/javascript/controllers/clipboard_controller.js","webpack:///./app/javascript/controllers/dropdown_controller.js","webpack:///./app/javascript/controllers/hello_controller.js","webpack:///./app/javascript/controllers/menu_controller.js","webpack:///./app/javascript/controllers/scroll_controller.js","webpack:///./node_modules/@fortawesome/fontawesome-free/js/fontawesome.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/@fortawesome/fontawesome-free/js/solid.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./app/javascript/controllers/index.js","webpack:///./node_modules/@stimulus/webpack-helpers/dist/index.js","webpack:///./node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js","webpack:///./node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable.js","webpack:///./node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable_stream_source_element.js","webpack:///./app/javascript/packs/application.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","installedModules","0","__webpack_require__","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","s","EventListener","eventTarget","eventName","eventOptions","this","unorderedBindings","Set","connect","addEventListener","disconnect","removeEventListener","bindingConnected","binding","add","bindingDisconnected","delete","handleEvent","extendedEvent","stopImmediatePropagation_1","stopImmediatePropagation","assign","immediatePropagationStopped","extendEvent","_i","_a","bindings","Array","from","sort","left","right","leftIndex","index","rightIndex","configurable","Dispatcher","application","eventListenerMaps","Map","started","start","eventListeners","forEach","eventListener","stop","values","reduce","listeners","map","concat","fetchEventListenerForBinding","handleError","detail","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","cacheKey","createEventListener","set","parts","keys","join","descriptorPattern","parseEventTarget","eventTargetName","Action","element","descriptor","tagName","toLowerCase","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","forToken","token","descriptorString","content","matches","trim","match","split","options","replace","test","toString","eventNameSuffix","getAttribute","Binding","context","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","nodeType","Node","ELEMENT_NODE","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","hasAttribute","querySelectorAll","selector","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__","__","constructor","_super","IndexedMultimap","keysByValue","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","Math","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","Context","controllerConstructor","bindingObserver","dispatcher","valueObserver","initialize","parentElement","readInheritableStaticArrayValues","propertyName","ancestors","getAncestorsForConstructor","definition","isArray","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","apply","getOwnStaticObjectPairs","getPrototypeOf","reverse","__spreadArrays","il","arguments","k","a","j","jl","bless","properties","shadowConstructor","extend","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","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","fulfilled","step","next","rejected","result","done","then","__generator","body","f","y","g","label","sent","trys","ops","verb","iterator","v","op","TypeError","pop","Application","documentElement","router","readyState","register","load","rest","definitions","unload","identifiers","getControllerForElementAndIdentifier","ClassPropertiesBlessing","classDefinition","TargetPropertiesBlessing","targetDefinition","ValuePropertiesBlessing","valueDefinitionPairs","propertyDescriptorMap","valueDefinitionPair","valueDescriptor","parseValueDefinitionPair","read","readers","write","writers","default","propertiesForValueDefinitionPair","defaultValuesByType","valueDescriptorForTokenAndType","typeConstant","Boolean","Number","String","parseValueTypeConstant","boolean","number","string","array","JSON","parse","parseFloat","writeJSON","stringify","Controller","blessings","Function","global","factory","w","noGlobal","arr","getProto","flat","indexOf","class2type","hasOwn","fnToString","ObjectFunctionString","support","isFunction","obj","item","isWindow","preservedScriptAttributes","nonce","noModule","DOMEval","code","doc","val","text","parentNode","removeChild","toType","version","jQuery","fn","init","isArrayLike","jquery","toArray","num","pushStack","elems","ret","merge","prevObject","each","callback","elem","first","eq","last","even","grep","_elem","odd","len","end","splice","copy","copyIsArray","clone","deep","isPlainObject","expando","random","isReady","msg","noop","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","callbackExpect","arg","guid","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","Date","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pushNative","list","booleans","whitespace","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","dir","childNodes","els","seed","nid","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","testContext","toSelector","qsaError","cache","cacheLength","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","hasCompare","subWindow","defaultView","top","attachEvent","className","createComment","getById","getElementsByName","attrId","getAttributeNode","tag","tmp","input","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","attr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","matcher","unmatched","lang","elemLang","hash","location","activeElement","hasFocus","href","tabIndex","checked","selected","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","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","self","rootjQuery","root","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","rnothtmlwhite","Identity","Thrower","ex","adoptValue","noValue","fail","Callbacks","flag","createOptions","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","empty","disable","lock","fireWith","Deferred","func","tuples","state","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","stack","readyException","readyList","completed","catch","readyWait","wait","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","acceptData","owner","Data","uid","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","getData","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","show","hide","toggle","div","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","selection","ignored","wrap","attached","fragment","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","on","types","one","origFn","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","button","addProp","hook","originalEvent","writable","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","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","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","getComputedStyle","swap","old","rboxStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","height","parseInt","borderTopWidth","borderBottomWidth","offsetHeight","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","isCustomProp","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","margin","padding","border","prefix","suffix","expand","expanded","propHooks","run","percent","eased","duration","pos","fx","scrollTop","scrollLeft","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","complete","timer","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhr","XMLHttpRequest","xhrSuccessStatus","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","_jQuery","_$","$","noConflict","webpackContext","req","webpackContextResolve","_Controller","_inherits","_createSuper","_classCallCheck","isPassword","sourceTarget","supported","queryCommandSupported","log","execCommand","CopyRange","createRange","selectNode","getSelection","addRange","removeRange","closeMenu","nevermind","hideMenus","buttonTarget","submenuTargets","submenu","classList","submenuTarget","openMenu","_e","closeTimeout","menuTarget","scroll","observer","mutationsList","_step","_iterator","_createForOfIteratorHelper","scrollIntoView","_typeof","_defineProperties","_defineProperty","_objectSpread","ownKeys","sym","_slicedToArray","_arrayWithHoles","_arr","_n","_d","_s","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","arr2","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","mark","performance","_ref$userAgent","navigator","userAgent","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_BROWSER","IS_DOM","IS_IE","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","HTML_CLASS_I2SVG_BASE_CLASS","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","PREFIX_TO_STYLE","STYLE_TO_PREFIX","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","FONT_WEIGHT_TO_PREFIX","oneToTen","oneToTwenty","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","RESERVED_CLASSES","FontAwesomeConfig","querySelector","_ref","_ref2","coerce","getAttrConfig","_config","familyPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","config","shims","functions","loaded","domready","listener","asyncTimer","PENDING","SETTLED","FULFILLED","REJECTED","NOOP","isNode","emit","asyncSetTimer","setImmediate","asyncQueue","asyncFlush","asyncCall","invokeCallback","subscriber","settled","_state","handleThenable","resolved","fulfill","reason","publishFulfillment","publishRejection","publish","_then","_handled","notifyRejectionHandled","resolver","rejectPromise","invokeResolver","onFulfillment","onRejection","race","picked","meaninglessTransform","x","rotate","flipX","flipY","insertCss","headChildren","beforeChild","child","nextUniqueId","classArray","getIconName","cls","iconName","htmlEscape","str","joinStyles","acc","styleName","transformIsMeaningful","transform","transformForSvg","containerWidth","iconWidth","outer","innerTranslate","innerScale","innerRotate","inner","path","ALL_SPACE","fillBlack","abstract","force","fill","makeInlineSvgAbstract","_params$icons","icons","main","mask","symbol","title","maskId","titleId","_params$watchable","watchable","found","isUploadedIcon","widthClass","attrClass","role","uploadedIconWidthStyle","explicitMaskId","mainWidth","mainPath","icon","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","makeIconMasking","styleString","makeIconStandard","asSymbol","asIcon","makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","transformForCss","class","makeLayersCounterAbstract","noop$1","preamble","perf","subject","initialValue","thisContext","bindInternal4","toHex","unicode","defineIcons","_params$skipHooks","skipHooks","normalized","addPack","_byUnicode","_byLigature","_byOldName","build","lookup","reducer","ligatures","ligature","hasRegular","shim","oldName","byUnicode","styles$1","getCanonicalIcon","autoFetchSvg","iconFromMapping","mapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","joinAttributes","noop$2","isWatched","mutators","newOuterHTML","outerHTML","newNode","nest","forSvg","splitClasses","toSvg","toNode","newInnerHTML","performOperationSync","perform","callbackFunction","frame","mutator","enableObservation","mo","treeCallback","nodeCallback","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","objects","mutationRecord","_getCanonicalIcon","characterData","classParser","existingPrefix","existingIconName","innerText","parseTransformString","transformString","parseMeta","_classParser","extraClasses","extraStyles","styleParser","transformParser","symbolParser","extraAttributes","attributesParser","maskParser","MissingIcon","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","RING","OPACITY_ANIMATE","missing","cx","cy","styles$2","asFoundIcon","vectorData","findIcon","styles$3","generateMutation","nodeMeta","computedFontSize","fontSize","boundingClientRect","generateLayersText","generateSvgReplacementMutation","onTree","htmlClassList","hclAdd","hclRemove","prefixes","prefixesDomQuery","candidates","resolvedMutations","onNode","replaceForPosition","pendingAttribute","alreadyProcessedPseudoElement","fontFamily","_content","hexValue","substr","iconIdentifier","meta","processable","operations","dfp","drc","fp","rc","dPatt","customPropPatt","rPatt","ensureCss","_cssInserted","apiObject","abstractCreator","findIconDefinition","iconLookup","_iconLookup$prefix","library","Library","instance","Constructor","protoProps","staticProps","_len","additions","_pullDefinitions","_normalized$key","dom","i2svg","_params$node","_params$callback","watch","autoReplaceSvgRoot","autoReplace","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","maybeIconDefinition","api","noAuto","_params$transform2","_params$title2","_params$classes2","_params$attributes2","_params$styles2","counter","_params$title3","_params$classes3","_params$attributes3","_params$styles3","layer","assembler","_params$classes4","_params$autoReplaceSv","bunker","FontAwesome","addShims","_namespace$shims","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","close","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","nextTick","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","task","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","browser","env","argv","versions","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","loadCSPNonce","cspNonce","setData","csrfParam","csrfToken","CSRFProtection","refreshCSRFTokens","CustomEvent","createEvent","initCustomEvent","dispatchEvent","stopEverything","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","floor","OPENED","accept","withCredentials","DONE","parser","isCrossDomain","serializeElement","additionalParam","inputs","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","require","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext","_x","_r","return","minLen","_arrayLikeToArray","_unsupportedIterableToArray","customElements","polyfillWrapFlushCallback","BuiltInHTMLElement","HTMLElement","wrapperForTheName","submittersByForm","clickCaptured","submitter","candidate","findSubmitterFromClickTarget","FrameLoadingStyle","FetchMethod","FormSubmissionState","FormEnctype","HTMLFormElement","FrameElement","super","delegateConstructor","loadingStyleChanged","sourceURLChanged","lazy","eager","frameLoadingStyleFromString","isLoading","isPreview","expandURL","locatable","anchor","URL","getAnchor","anchorMatch","getExtension","pathname","getPathComponents","getLastPathComponent","isPrefixedBy","baseURL","origin","endsWith","getPrefix","startsWith","toCacheKey","anchorLength","FetchResponse","ok","succeeded","redirected","header","isHTML","nextAnimationFrame","parseHTMLDocument","unindent","strings","lines","interpolate","indent","line","uuid","FetchRequest","URLSearchParams","abortController","AbortController","isIdempotent","entries","currentSearchParams","search","_ref3","File","searchParams","mergeFormDataEntries","fetchOptions","requestStarted","receive","requestErrored","requestFinished","fetchResponse","requestPreventedHandlingResponse","requestSucceededWithResponse","requestFailedWithResponse","credentials","redirect","signal","abortSignal","defaultHeaders","prepareHeadersForRequest","AppearanceObserver","intersect","lastEntry","isIntersecting","elementAppearedInViewport","intersectionObserver","IntersectionObserver","unobserve","StreamMessage","templateElement","foreignElements","importNode","templateChildren","streamElements","FormSubmission","formElement","mustRedirect","initialized","formData","buildFormData","fetchRequest","post","put","patch","fetchMethodFromString","urlEncoded","stringFormData","encoding","multipart","plain","formEnctypeFromString","_ref4","_ref5","_FormSubmissionState","requesting","_FormSubmissionState2","stopping","cancel","cookieName","cookie","decodeURIComponent","getCookieValue","getMetaContent","waiting","formSubmission","formSubmissionStarted","clientError","serverError","formSubmissionFailedWithResponse","requestMustRedirect","responseSucceededWithoutRedirect","formSubmissionErrored","receiving","formSubmissionSucceededWithResponse","formSubmissionFinished","Snapshot","getElementForAnchor","snapshot","permanentElements","_ref6","getPermanentElementById","FormInterceptor","submitBubbled","shouldInterceptFormSubmission","formSubmissionIntercepted","View","scrollToElement","scrollToPosition","_ref7","scrollRoot","renderer","shouldRender","newSnapshot","prepareToRenderSnapshot","viewWillRenderSnapshot","renderSnapshot","viewRenderedSnapshot","finishRenderingSnapshot","invalidate","viewInvalidated","markAsPreview","prepareToRender","render","finishRendering","FrameView","LinkInterceptor","clickBubbled","respondsToEventTarget","clickEvent","linkClicked","shouldInterceptLinkClick","linkClickIntercepted","willVisit","Renderer","currentSnapshot","resolvingFunctions","createdScriptElement","destinationElement","sourceElement","_ref8","copyElementAttributes","placeholders","getPermanentElementsPresentInSnapshot","permanentElement","newElement","placeholder","createPlaceholderForPermanentElement","replaceElementWithElement","_ref9","replacePlaceholderElementsWithClonedPermanentElements","firstAutofocusableElement","elementIsFocusable","fromElement","FrameRenderer","preservingPermanentElements","loadFrameElement","scrollFrameIntoView","focusFirstAutofocusableElement","destinationRange","selectNodeContents","currentElement","deleteContents","frameElement","sourceRange","extractContents","autoscroll","block","getFrameElementById","activateElement","StreamActions","targetElement","templateContent","StreamElement","renderPromise","beforeRenderEvent","performAction","actionFunction","raise","HTMLTemplateElement","description","resolveVisitPromise","appearanceObserver","linkInterceptor","formInterceptor","loadingStyle","loadSourceURL","isActive","sourceURL","loadingURL","visit","responseHTML","extractForeignFrameElement","shouldInterceptNavigation","navigateFrame","loadResponse","findFrameElement","CSS","enabled","loading","define","currentScript","ProgressBar","hiding","trickle","setValue","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","installStylesheetElement","animationDuration","installProgressElement","startTrickling","fadeProgressElement","uninstallProgressElement","stopTrickling","trickleInterval","defaultCSS","HeadSnapshot","detailsByOuterHTML","details","elementType","tracked","elementIsTracked","getElementsMatchingTypeNotInSnapshot","matchedType","_ref10","_ref11","_this$detailsByOuterH","findMetaElementByName","elementIsMetaElementWithName","elementIsScript","elementIsStylesheet","PageSnapshot","headSnapshot","fromDocument","_ref12","getSetting","cacheControlValue","getMetaValue","TimingMetric","VisitState","defaultOptions","historyChanged","SystemStatusCode","PageStage","Visit","restorationIdentifier","timingMetrics","followedRedirect","scrolled","snapshotCached","_Object$assign","referrer","snapshotHTML","adapter","history","getRestorationDataForIdentifier","recordTimingMetric","visitStart","visitStarted","cancelRender","canceled","visitEnd","visitCompleted","failed","visitFailed","actionForHistory","getHistoryMethodForAction","update","hasPreloadedResponse","simulateRequest","shouldIssueRequest","startRequest","recordResponse","finishRequest","requestStart","visitRequestStarted","isSuccessful","visitRequestCompleted","visitRequestFailedWithStatusCode","requestEnd","visitRequestFinished","_this$response","cacheSnapshot","renderPage","fromHTMLString","visitRendered","renderError","getCachedSnapshotForLocation","getPreloadedSnapshot","hasAnchor","isPreviewable","getCachedSnapshot","redirectedToLocation","contentTypeMismatch","networkFailure","scrollToRestoredPosition","scrollToTop","scrollToAnchor","scrollPosition","restorationData","metric","getTime","replaceState","pushState","hasCachedSnapshot","performScroll","cancelAnimationFrame","BrowserAdapter","session","progressBar","showProgressBar","startVisit","issueRequest","changeHistory","loadCachedSnapshot","showProgressBarAfterDelay","timeoutFailure","reload","hideProgressBar","followRedirect","progressBarTimeout","progressBarDelay","FormSubmitObserver","submitCaptured","willSubmitForm","formSubmitted","FrameRedirector","shouldRedirect","History","pageLoaded","onPopState","shouldHandlePopState","turbo","historyPoppedToLocationWithRestorationIdentifier","onPageLoad","additionalData","previousScrollRestoration","scrollRestoration","pageIsLoaded","LinkClickObserver","clickEventIsSignificant","findLinkFromClickTarget","getLocationForLink","willFollowLinkToLocation","followedLinkToLocation","isContentEditable","Navigator","allowsVisitingLocation","visitProposedToLocation","currentVisit","proposeVisit","clearSnapshotCache","visitOptions","PageObserver","stage","interpretReadyState","pageIsInteractive","pageIsComplete","pageWillUnload","interactive","pageBecameInteractive","ScrollObserver","onScroll","updatePosition","scrollPositionChanged","StreamObserver","sources","inspectFetchResponse","fetchResponseFromEvent","fetchResponseIsStream","receiveMessageResponse","receiveMessageEvent","receiveMessageHTML","streamSourceIsConnected","receivedMessageFromStream","ErrorRenderer","replaceHeadAndBody","activateScriptElements","_document","newHead","replaceableElement","scriptElements","createScriptElement","PageRenderer","isVisitable","trackedElementsAreIdentical","mergeHead","replaceBody","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","activateNewBody","assignNewBody","currentHeadSnapshot","trackedElementSignature","newHeadSnapshot","newHeadStylesheetElements","newHeadScriptElements","currentHeadProvisionalElements","newHeadProvisionalElements","adoptNode","activateNewBodyScriptElements","inertScriptElement","newBodyScriptElements","HTMLBodyElement","getStylesheetElementsNotInSnapshot","getScriptElementsNotInSnapshot","provisionalElements","SnapshotCache","snapshots","touch","PageView","snapshotCache","lastRenderedLocation","shouldCacheSnapshot","viewWillCacheSnapshot","isCacheable","extendURLWithDeprecatedProperties","deprecatedLocationPropertyDescriptors","absoluteURL","pageObserver","linkClickObserver","formSubmitObserver","scrollObserver","streamObserver","frameRedirector","connectStreamSource","disconnectStreamSource","pageInvalidated","updateRestorationData","elementIsNavigable","locationIsVisitable","applicationAllowsFollowingLinkToLocation","getActionForLink","applicationAllowsVisitingLocation","notifyApplicationAfterVisitingLocation","notifyApplicationAfterPageLoad","getTimingMetrics","submitForm","assumeControlOfScrollRestoration","relinquishControlOfScrollRestoration","renderStreamMessage","notifyApplicationBeforeCachingSnapshot","_ref14","notifyApplicationBeforeRender","notifyApplicationAfterRender","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","newBody","timing","isAction","rootLocation","consumer","getConsumer","createConsumer","newConsumer","subscription","mixin","subscriptions","subscribeTo","received","dispatchMessageEvent","unsubscribe","MessageEvent","signed_stream_name"],"mappings":"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","file":"js/application-29d70a836a7684706d8a.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \"-\" + {\"1\":\"122da1e0a10801491dd7\"}[chunkId] + \".chunk.js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 17);\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 };","var g;\n\n// This works in non-strict mode\ng = function () {\n return this;\n}();\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;","/*!\n * jQuery JavaScript Library v3.6.0\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: 2021-03-02T17:08Z\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 #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.0\",\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 (#9521)\n // Strict HTML recognition (#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 #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 (#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 #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 (#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 (#11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (#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 (#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 (#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 (#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 (#13208)\n // Don't process clicks on disabled elements (#6911, #8165, #11382, #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 (#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 (#504, #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 as it's already being fired\n // in leverageNative.\n _default: function () {\n return true;\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 (#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 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 getStyles = function (elem) {\n // Support: IE <=11 only, Firefox <=30 (#15098, #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 (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 (#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 // 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, #12537)\n // .css('--customProperty) (#3144)\n if (computed) {\n ret = computed.getPropertyValue(name) || computed[name];\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 rcustomProp = /^--/,\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 (#7345)\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret);\n\n // Fixes bug #9237\n type = \"number\";\n }\n\n // Make sure that null and NaN values aren't set (#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 )` (#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 // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\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 // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n // Use proper attribute retrieval(#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 classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n classes = classesToArray(value);\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem);\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n if (cur) {\n j = 0;\n while (clazz = classes[j++]) {\n if (cur.indexOf(\" \" + clazz + \" \") < 0) {\n cur += clazz + \" \";\n }\n }\n\n // Only assign if different to avoid unneeded rendering.\n finalValue = stripAndCollapse(cur);\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n return this;\n },\n removeClass: function (value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\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 classes = classesToArray(value);\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem);\n\n // This expression is here for better compressibility (see addClass)\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n if (cur) {\n j = 0;\n while (clazz = classes[j++]) {\n // Remove *all* instances\n while (cur.indexOf(\" \" + clazz + \" \") > -1) {\n cur = cur.replace(\" \" + clazz + \" \", \" \");\n }\n }\n\n // Only assign if different to avoid unneeded rendering.\n finalValue = stripAndCollapse(cur);\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n return this;\n },\n toggleClass: function (value, stateVal) {\n var type = typeof value,\n isValidValue = type === \"string\" || Array.isArray(value);\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\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 return this.each(function () {\n var className, i, self, classNames;\n if (isValidValue) {\n // Toggle individual class names\n i = 0;\n self = jQuery(this);\n classNames = classesToArray(value);\n while (className = classNames[i++]) {\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 (#14686, #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 (#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 (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#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 (#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 // #7653, #8125, #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 (#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 #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 (#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 #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 (#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 // #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 (#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 // #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 #8605, #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 // #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(\"\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n }\n if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n var val = coerce(getAttrConfig(attr));\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n }\n var _default = {\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n };\n var _config = _objectSpread({}, _default, initial);\n if (!_config.autoReplaceSvg) _config.observeMutations = false;\n var config = _objectSpread({}, _config);\n WINDOW.FontAwesomeConfig = config;\n var w = WINDOW || {};\n if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n var namespace = w[NAMESPACE_IDENTIFIER];\n var functions = [];\n var listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n };\n var loaded = false;\n if (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n }\n function domready(fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n }\n var PENDING = 'pending';\n var SETTLED = 'settled';\n var FULFILLED = 'fulfilled';\n var REJECTED = 'rejected';\n var NOOP = function NOOP() {};\n var isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\n var asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\n var asyncQueue = [];\n var asyncTimer;\n function asyncFlush() {\n // run promise callbacks\n for (var i = 0; i < asyncQueue.length; i++) {\n asyncQueue[i][0](asyncQueue[i][1]);\n } // reset async asyncQueue\n\n asyncQueue = [];\n asyncTimer = false;\n }\n function asyncCall(callback, arg) {\n asyncQueue.push([callback, arg]);\n if (!asyncTimer) {\n asyncTimer = true;\n asyncSetTimer(asyncFlush, 0);\n }\n }\n function invokeResolver(resolver, promise) {\n function resolvePromise(value) {\n resolve(promise, value);\n }\n function rejectPromise(reason) {\n reject(promise, reason);\n }\n try {\n resolver(resolvePromise, rejectPromise);\n } catch (e) {\n rejectPromise(e);\n }\n }\n function invokeCallback(subscriber) {\n var owner = subscriber.owner;\n var settled = owner._state;\n var value = owner._data;\n var callback = subscriber[settled];\n var promise = subscriber.then;\n if (typeof callback === 'function') {\n settled = FULFILLED;\n try {\n value = callback(value);\n } catch (e) {\n reject(promise, e);\n }\n }\n if (!handleThenable(promise, value)) {\n if (settled === FULFILLED) {\n resolve(promise, value);\n }\n if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n }\n function handleThenable(promise, value) {\n var resolved;\n try {\n if (promise === value) {\n throw new TypeError('A promises callback cannot return that same promise.');\n }\n if (value && (typeof value === 'function' || _typeof(value) === 'object')) {\n // then should be retrieved only once\n var then = value.then;\n if (typeof then === 'function') {\n then.call(value, function (val) {\n if (!resolved) {\n resolved = true;\n if (value === val) {\n fulfill(promise, val);\n } else {\n resolve(promise, val);\n }\n }\n }, function (reason) {\n if (!resolved) {\n resolved = true;\n reject(promise, reason);\n }\n });\n return true;\n }\n }\n } catch (e) {\n if (!resolved) {\n reject(promise, e);\n }\n return true;\n }\n return false;\n }\n function resolve(promise, value) {\n if (promise === value || !handleThenable(promise, value)) {\n fulfill(promise, value);\n }\n }\n function fulfill(promise, value) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = value;\n asyncCall(publishFulfillment, promise);\n }\n }\n function reject(promise, reason) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = reason;\n asyncCall(publishRejection, promise);\n }\n }\n function publish(promise) {\n promise._then = promise._then.forEach(invokeCallback);\n }\n function publishFulfillment(promise) {\n promise._state = FULFILLED;\n publish(promise);\n }\n function publishRejection(promise) {\n promise._state = REJECTED;\n publish(promise);\n if (!promise._handled && isNode) {\n global.process.emit('unhandledRejection', promise._data, promise);\n }\n }\n function notifyRejectionHandled(promise) {\n global.process.emit('rejectionHandled', promise);\n }\n /**\n * @class\n */\n\n function P(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('Promise resolver ' + resolver + ' is not a function');\n }\n if (this instanceof P === false) {\n throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n }\n this._then = [];\n invokeResolver(resolver, this);\n }\n P.prototype = {\n constructor: P,\n _state: PENDING,\n _then: null,\n _data: undefined,\n _handled: false,\n then: function then(onFulfillment, onRejection) {\n var subscriber = {\n owner: this,\n then: new this.constructor(NOOP),\n fulfilled: onFulfillment,\n rejected: onRejection\n };\n if ((onRejection || onFulfillment) && !this._handled) {\n this._handled = true;\n if (this._state === REJECTED && isNode) {\n asyncCall(notifyRejectionHandled, this);\n }\n }\n if (this._state === FULFILLED || this._state === REJECTED) {\n // already resolved, call callback async\n asyncCall(invokeCallback, subscriber);\n } else {\n // subscribe\n this._then.push(subscriber);\n }\n return subscriber.then;\n },\n catch: function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n };\n P.all = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.all().');\n }\n return new P(function (resolve, reject) {\n var results = [];\n var remaining = 0;\n function resolver(index) {\n remaining++;\n return function (value) {\n results[index] = value;\n if (! --remaining) {\n resolve(results);\n }\n };\n }\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n if (promise && typeof promise.then === 'function') {\n promise.then(resolver(i), reject);\n } else {\n results[i] = promise;\n }\n }\n if (!remaining) {\n resolve(results);\n }\n });\n };\n P.race = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.race().');\n }\n return new P(function (resolve, reject) {\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n if (promise && typeof promise.then === 'function') {\n promise.then(resolve, reject);\n } else {\n resolve(promise);\n }\n }\n });\n };\n P.resolve = function (value) {\n if (value && _typeof(value) === 'object' && value.constructor === P) {\n return value;\n }\n return new P(function (resolve) {\n resolve(value);\n });\n };\n P.reject = function (reason) {\n return new P(function (resolve, reject) {\n reject(reason);\n });\n };\n var picked = typeof Promise === 'function' ? Promise : P;\n var d = UNITS_IN_GRID;\n var meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n };\n function isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n }\n function bunker(fn) {\n try {\n fn();\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n }\n function insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n }\n var idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n function nextUniqueId() {\n var size = 12;\n var id = '';\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n return id;\n }\n function toArray(obj) {\n var array = [];\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n return array;\n }\n function classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n }\n function getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n }\n function htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n }\n function joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n }\n function joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName], \";\");\n }, '');\n }\n function transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n }\n function transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n }\n function transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n }\n var ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n };\n function fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n return abstract;\n }\n function deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n }\n function makeIconMasking(_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread({}, ALL_SPACE, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [fillBlack(_objectSpread({\n tag: mainPath.tag,\n attributes: _objectSpread({}, mainPath.attributes, trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread({}, ALL_SPACE, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n }\n function makeIconStandard(_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n transform = _ref.transform,\n styles = _ref.styles;\n var styleString = joinStyles(styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n if (transformIsMeaningful(transform)) {\n var trans = transformForSvg({\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n children.push({\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread({}, main.icon.attributes, trans.path)\n }]\n }]\n });\n } else {\n children.push(main.icon);\n }\n return {\n children: children,\n attributes: attributes\n };\n }\n function asIcon(_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread({}, styles, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n }\n function asSymbol(_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread({}, attributes, {\n id: id\n }),\n children: children\n }]\n }];\n }\n function makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n var isUploadedIcon = prefix === 'fak';\n var widthClass = isUploadedIcon ? '' : \"fa-w-\".concat(Math.ceil(width / height * 16));\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : '', widthClass].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread({}, extra.attributes, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n if (title) content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n var args = _objectSpread({}, content, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread({}, uploadedIconWidthStyle, extra.styles)\n });\n var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\n children = _ref2.children,\n attributes = _ref2.attributes;\n args.children = children;\n args.attributes = attributes;\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n }\n function makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n var styles = _objectSpread({}, extra.styles);\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n var styleString = joinStyles(styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n return val;\n }\n function makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n var styleString = joinStyles(extra.styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n return val;\n }\n var noop$1 = function noop() {};\n var p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n };\n var preamble = \"FA \\\"5.15.3\\\"\";\n var begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n };\n var end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n };\n var perf = {\n begin: begin,\n end: end\n };\n\n /**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\n var bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n };\n\n /**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n var reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n return result;\n };\n function toHex(unicode) {\n var result = '';\n for (var i = 0; i < unicode.length; i++) {\n var hex = unicode.charCodeAt(i).toString(16);\n result += ('000' + hex).slice(-4);\n }\n return result;\n }\n function defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n return acc;\n }, {});\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n }\n var styles = namespace.styles,\n shims = namespace.shims;\n var _byUnicode = {};\n var _byLigature = {};\n var _byOldName = {};\n var build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n var ligatures = icon[2];\n acc[iconName] = iconName;\n ligatures.forEach(function (ligature) {\n acc[ligature] = iconName;\n });\n return acc;\n });\n var hasRegular = ('far' in styles);\n _byOldName = reduce(shims, function (acc, shim) {\n var oldName = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n acc[oldName] = {\n prefix: prefix,\n iconName: iconName\n };\n return acc;\n }, {});\n };\n build();\n function byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n }\n function byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n }\n function byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n }\n var styles$1 = namespace.styles;\n var emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n };\n function getCanonicalIcon(values) {\n return values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n if (styles$1[cls]) {\n acc.prefix = cls;\n } else if (config.autoFetchSvg && Object.keys(PREFIX_TO_STYLE).indexOf(cls) > -1) {\n acc.prefix = cls;\n } else if (iconName) {\n var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n acc.iconName = shim.iconName || iconName;\n acc.prefix = shim.prefix || acc.prefix;\n } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n acc.rest.push(cls);\n }\n return acc;\n }, emptyCanonicalIcon());\n }\n function iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n }\n function toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n }\n var noop$2 = function noop() {};\n function isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n }\n function getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n }\n var mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n var newOuterHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n if (node.parentNode && node.outerHTML) {\n node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? \"\") : '');\n } else if (node.parentNode) {\n var newNode = document.createElement('span');\n node.parentNode.replaceChild(newNode, node);\n newNode.outerHTML = newOuterHTML;\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.style;\n delete abstract[0].attributes.id;\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute('class', splitClasses.toNode.join(' '));\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n };\n function performOperationSync(op) {\n op();\n }\n function perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n }\n var disabled = false;\n function disableObservation() {\n disabled = true;\n }\n function enableObservation() {\n disabled = false;\n }\n var mo = null;\n function observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n if (!config.observeMutations) {\n return;\n }\n var treeCallback = options.treeCallback,\n nodeCallback = options.nodeCallback,\n pseudoElementsCallback = options.pseudoElementsCallback,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n treeCallback(mutationRecord.target);\n }\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class') {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n } else {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n }\n function disconnect() {\n if (!mo) return;\n mo.disconnect();\n }\n function styleParser(node) {\n var style = node.getAttribute('style');\n var val = [];\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n return acc;\n }, {});\n }\n return val;\n }\n function classParser(node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n if (val.prefix && innerText.length > 1) {\n val.iconName = byLigature(val.prefix, node.innerText);\n } else if (val.prefix && innerText.length === 1) {\n val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n }\n return val;\n }\n var parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n if (!transformString) {\n return transform;\n } else {\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n rest = parseFloat(rest);\n if (isNaN(rest)) {\n return acc;\n }\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n case 'left':\n acc.x = acc.x - rest;\n break;\n case 'right':\n acc.x = acc.x + rest;\n break;\n case 'up':\n acc.y = acc.y - rest;\n break;\n case 'down':\n acc.y = acc.y + rest;\n break;\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n return acc;\n }, transform);\n }\n };\n function transformParser(node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n }\n function symbolParser(node) {\n var symbol = node.getAttribute('data-fa-symbol');\n return symbol === null ? false : symbol === '' ? true : symbol;\n }\n function attributesParser(node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n return extraAttributes;\n }\n function maskParser(node) {\n var mask = node.getAttribute('data-fa-mask');\n if (!mask) {\n return emptyCanonicalIcon();\n } else {\n return getCanonicalIcon(mask.split(' ').map(function (i) {\n return i.trim();\n }));\n }\n }\n function blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: null,\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n }\n function parseMeta(node) {\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n var extraStyles = styleParser(node);\n var transform = transformParser(node);\n var symbol = symbolParser(node);\n var extraAttributes = attributesParser(node);\n var mask = maskParser(node);\n return {\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: node.getAttribute('data-fa-mask-id'),\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n };\n }\n function MissingIcon(error) {\n this.name = 'MissingIcon';\n this.message = error || 'Icon unavailable';\n this.stack = new Error().stack;\n }\n MissingIcon.prototype = Object.create(Error.prototype);\n MissingIcon.prototype.constructor = MissingIcon;\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n };\n var RING = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n };\n var OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n });\n var DOT = {\n tag: 'circle',\n attributes: _objectSpread({}, FILL, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;1;1;0;1;'\n })\n }]\n };\n var QUESTION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;0;0;0;1;'\n })\n }]\n };\n var EXCLAMATION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '0;0;1;1;0;0;'\n })\n }]\n };\n var missing = {\n tag: 'g',\n children: [RING, DOT, QUESTION, EXCLAMATION]\n };\n var styles$2 = namespace.styles;\n function asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n var element = null;\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n }\n function findIcon(iconName, prefix) {\n return new picked(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: missing\n };\n if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {\n var icon = styles$2[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n if (iconName && prefix && !config.showMissingIcons) {\n reject(new MissingIcon(\"Icon is missing for prefix \".concat(prefix, \" with icon name \").concat(iconName)));\n } else {\n resolve(val);\n }\n });\n }\n var styles$3 = namespace.styles;\n function generateSvgReplacementMutation(node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new picked(function (resolve, reject) {\n picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n });\n });\n }\n function generateLayersText(node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n return picked.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n }\n function generateMutation(node) {\n var nodeMeta = parseMeta(node);\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return generateLayersText(node, nodeMeta);\n } else {\n return generateSvgReplacementMutation(node, nodeMeta);\n }\n }\n function onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return;\n var htmlClassList = DOCUMENT.documentElement.classList;\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n if (prefixesDomQuery.length === 0) {\n return;\n }\n var candidates = [];\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return;\n }\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e instanceof MissingIcon) {\n console.error(e);\n }\n }\n }\n return acc;\n }, []);\n return new picked(function (resolve, reject) {\n picked.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function () {\n mark();\n reject();\n });\n });\n }\n function onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n }\n function replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new picked(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n var hexValue = toHex(_content.length === 3 ? _content.substr(1, 1) : _content);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n if (position === ':before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n }\n function replace(node) {\n return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]);\n }\n function processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n }\n function searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new picked(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n picked.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n }\n var baseStyles = \"svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top left;transform-origin:top left}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fad.fa-inverse{color:#fff}\";\n function css() {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n return s;\n }\n var Library = /*#__PURE__*/\n function () {\n function Library() {\n _classCallCheck(this, Library);\n this.definitions = {};\n }\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n defineIcons(key, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n if (!additions[prefix]) additions[prefix] = {};\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n return Library;\n }();\n function ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n }\n function apiObject(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n }\n function findIconDefinition(iconLookup) {\n var _iconLookup$prefix = iconLookup.prefix,\n prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,\n iconName = iconLookup.iconName;\n if (!iconName) return;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n }\n function resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n return next(iconDefinition, _objectSpread({}, params, {\n mask: mask\n }));\n };\n }\n var library = new Library();\n var noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n disconnect();\n };\n var _cssInserted = false;\n var dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (IS_DOM) {\n ensureCss();\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n return onTree(node, callback);\n } else {\n return picked.reject('Operation requires a DOM of some kind.');\n }\n },\n css: css,\n insertCss: function insertCss$$1() {\n if (!_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n observeMutationsRoot = params.observeMutationsRoot;\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements,\n observeMutationsRoot: observeMutationsRoot\n });\n });\n }\n };\n var parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n };\n var icon = resolveIcons(function (iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return apiObject(_objectSpread({\n type: 'icon'\n }, iconDefinition), function () {\n ensureCss();\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread({}, meaninglessTransform, transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n });\n var text = function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform2 = params.transform,\n transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2,\n _params$title2 = params.title,\n title = _params$title2 === void 0 ? null : _params$title2,\n _params$classes2 = params.classes,\n classes = _params$classes2 === void 0 ? [] : _params$classes2,\n _params$attributes2 = params.attributes,\n attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,\n _params$styles2 = params.styles,\n styles = _params$styles2 === void 0 ? {} : _params$styles2;\n return apiObject({\n type: 'text',\n content: content\n }, function () {\n ensureCss();\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread({}, meaninglessTransform, transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n };\n var counter = function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title3 = params.title,\n title = _params$title3 === void 0 ? null : _params$title3,\n _params$classes3 = params.classes,\n classes = _params$classes3 === void 0 ? [] : _params$classes3,\n _params$attributes3 = params.attributes,\n attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,\n _params$styles3 = params.styles,\n styles = _params$styles3 === void 0 ? {} : _params$styles3;\n return apiObject({\n type: 'counter',\n content: content\n }, function () {\n ensureCss();\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n };\n var layer = function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes4 = params.classes,\n classes = _params$classes4 === void 0 ? [] : _params$classes4;\n return apiObject({\n type: 'layer'\n }, function () {\n ensureCss();\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n };\n var api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n library: library,\n parse: parse,\n findIconDefinition: findIconDefinition,\n icon: icon,\n text: text,\n counter: counter,\n layer: layer,\n toHtml: toHtml\n };\n var autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n };\n function bootstrap() {\n if (IS_BROWSER) {\n if (!WINDOW.FontAwesome) {\n WINDOW.FontAwesome = api;\n }\n domready(function () {\n autoReplace();\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements\n });\n });\n }\n namespace.hooks = _objectSpread({}, namespace.hooks, {\n addPack: function addPack(prefix, icons) {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, icons);\n build();\n autoReplace();\n },\n addShims: function addShims(shims) {\n var _namespace$shims;\n (_namespace$shims = namespace.shims).push.apply(_namespace$shims, _toConsumableArray(shims));\n build();\n autoReplace();\n }\n });\n }\n bunker(bootstrap);\n})();","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n function installNextTickImplementation() {\n registerImmediate = function (handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function (event) {\n if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n registerImmediate = function (handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n registerImmediate = function (handle) {\n channel.port2.postMessage(handle);\n };\n }\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function (handle) {\n // Create a