{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/core-js/internals/hide.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/bind-context.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/internals/function-to-string.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/user-agent.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/sloppy-array-method.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./app/frontend/AddCalEventZones.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/modules/es.array.slice.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/core-js/internals/wrapped-well-known-symbol.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./app/frontend/datepicker.js","webpack:///./app/frontend/masks.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./app/frontend/select2.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:///./node_modules/core-js/modules/es.array.sort.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/core-js/internals/forced-string-trim-method.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/core-js/internals/punycode-to-ascii.js","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/modules/es.object.entries.js","webpack:///./node_modules/core-js/internals/object-to-array.js","webpack:///./app/frontend/campus_steps.js","webpack:///./app/frontend/image_preview_fix.js","webpack:///./app/frontend/issue.js","webpack:///./app/frontend/pipeline.js","webpack:///./app/frontend/piscine.js","webpack:///./app/frontend/ransack.js","webpack:///./app/frontend/scan_list.js","webpack:///./app/frontend/scan.js","webpack:///./app/frontend/scan_id_checks.js","webpack:///./app/frontend/sortable.js","webpack:///./app/frontend/video.js","webpack:///./app/frontend/user_confirmation_steps.js","webpack:///./app/frontend/answers_contingent.js","webpack:///./app/frontend/simple_form_select2.js","webpack:///./app/frontend/email_users.js","webpack:///./app/frontend/mailing_iframe.js","webpack:///./app/frontend/mailing_edit.js","webpack:///./app/frontend/mailing_group_edit.js","webpack:///./app/frontend/mailing_group_show.js","webpack:///./app/frontend/campus_edit.js","webpack:///./app/frontend/index.js","webpack:///./app/frontend/calendarize_event.js","webpack:///./app/frontend/file_input.js","webpack:///./app/frontend/replace_with.js","webpack:///./app/frontend/AddCalEvent.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","check","it","Math","globalThis","O","window","self","global","Function","shared","uid","NATIVE_SYMBOL","store","exec","error","isObject","TypeError","String","fails","a","DESCRIPTORS","definePropertyModule","createPropertyDescriptor","f","IE8_DOM_DEFINE","anObject","toPrimitive","nativeDefineProperty","P","Attributes","getOwnPropertyDescriptor","hide","redefine","setGlobal","copyConstructorProperties","isForced","options","source","target","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","undefined","sham","toString","slice","has","nativeFunctionToString","InternalStateModule","getInternalState","enforceInternalState","enforce","TEMPLATE","split","unsafe","simple","join","this","IS_PURE","push","version","copyright","toInteger","min","argument","IndexedObject","requireObjectCoercible","set","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","WeakMap","wmget","wmhas","wmset","metadata","STATE","getterFor","TYPE","state","type","path","aFunction","variable","namespace","method","arguments","length","ceil","floor","isNaN","bitmap","configurable","writable","propertyIsEnumerableModule","toIndexedObject","nativeGetOwnPropertyDescriptor","input","PREFERRED_STRING","fn","val","valueOf","id","postfix","random","that","b","apply","$","$find","find","addToUnscopables","SKIPS_HOLES","Array","proto","callbackfn","document","EXISTS","createElement","keys","TO_STRING_TAG","wellKnownSymbol","TAG","ObjectPrototype","classof","propertyIsEnumerable","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","nativePropertyIsEnumerable","NASHORN_BUG","1","V","internalObjectKeys","concat","getOwnPropertyNames","getOwnPropertySymbols","Iterators","ITERATOR","classofRaw","CORRECT_ARGUMENTS","tag","result","tryGet","callee","DOMIterables","forEach","COLLECTION_NAME","Collection","CollectionPrototype","fixRegExpWellKnownSymbolLogic","toObject","toLength","advanceStringIndex","regExpExec","max","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","REPLACE","nativeReplace","maybeCallNative","searchValue","replaceValue","replacer","regexp","res","done","rx","S","functionalReplace","fullUnicode","unicode","lastIndex","results","accumulatedResult","nextSourcePosition","matched","position","index","captures","j","namedCaptures","groups","replacerArgs","getSubstitution","str","tailPos","symbols","match","ch","capture","charAt","FunctionPrototype","FunctionPrototypeToString","nameRE","defer","channel","port","html","location","setImmediate","clear","clearImmediate","process","MessageChannel","Dispatch","counter","queue","run","runner","listener","event","post","postMessage","protocol","host","args","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","getBuiltIn","PromiseCapability","C","resolve","reject","promise","$$resolve","$$reject","isArray","createProperty","arraySpeciesCreate","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","array","SPECIES_SUPPORT","isConcatSpreadable","spreadable","arg","k","len","E","A","g","e","test","integer","createMethod","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","specificCreate","boundFunction","map","filter","some","every","findIndex","isRegExp","speciesConstructor","callRegExpExec","regexpExec","arrayPush","SUPPORTS_Y","RegExp","SPLIT","nativeSplit","internalSplit","separator","limit","lim","lastLength","output","flags","ignoreCase","multiline","sticky","lastLastIndex","separatorCopy","splitter","unicodeMatching","q","z","defineIterator","setInternalState","iterated","point","Constructor","ownKeys","getOwnPropertyDescriptorModule","indexOf","names","toAbsoluteIndex","IS_INCLUDES","el","fromIndex","includes","sloppyArrayMethod","nativeJoin","ES3_STRINGS","SLOPPY_METHOD","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","re","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","constructor","nativeRegExpMethod","methods","nativeMethod","arg2","forceStringMethod","stringMethod","regexMethod","re1","re2","regexpFlags","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","defaultConstructor","R","iterator","ENTRIES","returnMethod","ArrayPrototype","SAFE_CLOSING","called","iteratorWithReturn","next","from","SKIP_CLOSING","ITERATION_SUPPORT","$map","CONSTRUCTOR_NAME","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","kind","Arguments","src","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","originalArray","METHOD_NAME","foo","Boolean","$filter","dotAll","CONVERT_TO_STRING","pos","first","second","size","charCodeAt","codeAt","checkCorrectnessOfIteration","iterable","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","redefineAll","setToStringTag","setSpecies","anInstance","iterate","task","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","userAgent","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","fetch","versions","v8","newPromiseCapability","newGenericPromiseCapability","IS_NODE","DISPATCH_EVENT","createEvent","dispatchEvent","FORCED","empty","FakePromise","PromiseRejectionEvent","then","INCORRECT_ITERATION","all","isThenable","notify","isReject","notified","chain","reactions","ok","exited","reaction","handler","fail","domain","rejection","onHandleUnhandled","enter","exit","onUnhandled","reason","initEvent","isUnhandled","emit","parent","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","wrap","Promise","capability","x","$promiseResolve","values","remaining","alreadyCalled","race","isArrayIteratorMethod","getIteratorMethod","callWithSafeIterationClosing","Result","stopped","AS_ENTRIES","IS_ITERATOR","iterFn","step","stop","flush","head","last","toggle","node","macrotask","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","createTextNode","observe","characterData","promiseCapability","console","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","Error","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","obj","err","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","reverse","pop","skipTempReset","prev","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","propertyKey","enumBugKeys","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","MATCH","nativeMatch","matcher","matchStr","nativeObjectCreate","objectKeys","getOwnPropertyNamesExternal","wrappedWellKnownSymbolModule","defineWellKnownSymbol","$forEach","HIDDEN","TO_PRIMITIVE","JSON","nativeJSONStringify","stringify","nativeGetOwnPropertyNames","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","description","symbol","isSymbol","$defineProperty","$defineProperties","Properties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","setter","keyFor","sym","useSetter","useSimple","defineProperties","$replacer","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","desc","ArrayIteratorMethods","ArrayValues","UNSCOPABLES","documentCreateElement","IE_PROTO","Empty","createDict","iframeDocument","iframe","style","display","contentWindow","open","write","lt","close","F","$includes","arrayLike","argumentsLength","mapfn","mapping","createIteratorConstructor","IteratorsCore","BUGGY_SAFARI_ITERATORS","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","PrototypeOfArrayIteratorPrototype","arrayIterator","CORRECT_PROTOTYPE_GETTER","aPossiblePrototype","CORRECT_SETTER","notARegExp","correctIsRegExpLogic","searchString","nativeSlice","start","end","fin","_typeof","factory","w","noGlobal","arr","_slice","flat","class2type","fnToString","ObjectFunctionString","support","isFunction","nodeType","item","isWindow","preservedScriptAttributes","nonce","noModule","DOMEval","code","doc","script","text","getAttribute","setAttribute","parentNode","toType","jQuery","selector","init","isArrayLike","jquery","toArray","num","pushStack","elems","ret","merge","prevObject","each","callback","elem","eq","even","grep","_elem","odd","sort","splice","extend","copy","copyIsArray","clone","deep","isPlainObject","expando","isReady","msg","noop","Ctor","isEmptyObject","globalEval","makeArray","inArray","invert","matches","callbackExpect","guid","_i","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","Date","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pushNative","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","fromCharCode","rcssescape","fcssescape","asCodePoint","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","dir","childNodes","els","seed","nid","newSelector","newContext","ownerDocument","getElementById","getElementsByTagName","getElementsByClassName","qsa","testContext","scope","toSelector","querySelectorAll","qsaError","removeAttribute","cache","cacheLength","shift","markFunction","assert","addHandle","attrs","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","matchIndexes","namespaceURI","documentElement","hasCompare","subWindow","defaultView","top","attachEvent","className","createComment","getById","getElementsByName","attrId","getAttributeNode","tmp","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","what","_argument","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","useCache","lastChild","uniqueID","pseudo","setFilters","idx","unmatched","lang","elemLang","hash","activeElement","hasFocus","href","tabIndex","checked","selected","selectedIndex","_matchIndexes","radio","checkbox","file","password","image","submit","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","_dir","until","truncate","is","_siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","rootjQuery","root","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","sibling","targets","closest","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","content","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","noValue","Callbacks","_","flag","createOptions","firing","memory","_fired","_locked","firingIndex","fire","once","stopOnFalse","remove","disable","lock","locked","fireWith","fired","Deferred","func","tuples","_state","_promise","always","deferred","pipe","fns","newDefer","tuple","returned","progress","onProgress","maxDepth","depth","special","mightThrow","notifyWith","resolveWith","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","stack","warn","message","readyException","readyList","completed","removeEventListener","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","toUpperCase","camelCase","acceptData","owner","Data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","parse","getData","_data","removeData","_removeData","dequeue","startLength","hooks","_queueHooks","clearQueue","count","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","show","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","attached","fragment","nodes","htmlPrefilter","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","_on","types","one","origFn","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","_handlers","matchedHandlers","matchedSelectors","button","addProp","hook","originalEvent","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","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","on","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","_evalUrl","_remove","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","getComputedStyle","swap","old","rboxStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","height","parseInt","borderTopWidth","borderBottomWidth","offsetHeight","cssPrefixes","emptyStyle","vendorProps","finalPropName","_final","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","isCustomProp","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","propHooks","percent","eased","duration","fx","scrollTop","scrollLeft","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","timer","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","isLocal","processData","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","_statusCode","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","visible","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","_callback","errorCallback","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","_callback2","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","trim","_jQuery","_$","noConflict","URL","searchParams","pathname","toJSON","URLSearchParams","flatpickr","dateFormat","clickOpens","allowInput","enableTime","mask","dataset","inheritIfRequired","getFlags","NativeRegExp","CORRECT_NEW","RegExpWrapper","thisIsRegExp","patternIsRegExp","flagsAreUndefined","dummy","Wrapper","NewTarget","NewTargetPrototype","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","y","S2","select2","amd","requirejs","require","define","undef","main","req","makeMap","defined","waiting","config","defining","aps","jsSuffixRegExp","hasProp","baseName","nameParts","nameSegment","mapValue","foundMap","foundI","foundStarMap","starI","part","baseParts","starMap","nodeIdCompat","makeRequire","relName","forceSync","makeLoad","depName","callDep","splitPrefix","substring","makeRelParts","makeConfig","relParts","plugin","relResourceName","pr","uri","deps","cjsModule","usingExports","callbackType","alt","cfg","_defined","Utils","getMethods","theClass","methodName","Extend","ChildClass","SuperClass","__hasProp","BaseConstructor","__super__","Decorate","DecoratorClass","decoratedMethods","superMethods","DecoratedClass","argCount","calledConstructor","superMethod","calledMethod","originalMethod","decoratedMethod","Observable","listeners","_type","generateChars","chars","_convertData","originalKey","dataLevel","hasScroll","$el","innerHeight","scrollHeight","innerWidth","scrollWidth","escapeMarkup","markup","replaceMap","'","__cache","GetUniqueElementId","element","select2Id","StoreData","GetData","RemoveData","copyNonInternalCssClasses","destinationClasses","sourceClasses","replacements","Results","$element","dataAdapter","render","$results","displayMessage","hideLoading","$message","hideMessages","$options","$option","$dropdown","sorter","highlightFirstItem","$selected","ensureHighlightVisible","setClasses","selectedIds","classList","showLoading","loading","loadingMore","$loading","Element","_resultId","title","role","label","template","$children","child","$child","$childrenContainer","$container","isOpen","$highlighted","getHighlightedResults","currentIndex","nextIndex","$next","currentOffset","nextTop","nextOffset","outerHeight","nextBottom","mousewheel","bottom","deltaY","isAtTop","isAtBottom","destroy","offsetDelta","BACKSPACE","TAB","ENTER","SHIFT","CTRL","ALT","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DELETE","KEYS","BaseSelection","$selection","_tabindex","resultsId","_handleBlur","update","_attachCloseHandler","_detachCloseHandler","$select","isEnabled","SingleSelection","$rendered","selectionContainer","formatted","MultipleSelection","$selections","selectionIdPrefix","selectionId","removeItem","$remove","Placeholder","decorated","placeholder","normalizePlaceholder","createPlaceholder","$placeholder","placeholderTitle","singlePlaceholder","AllowClear","_handleClear","_handleKeyboardClear","$clear","previousVal","unselectData","prevented","removeAll","Search","searchLabel","$search","$searchContainer","_transferTabIndex","resizeSearch","_keyUpPrevented","$previousChoice","searchRemoveChoice","msie","documentMode","disableInputEvents","handleSearch","searchHadFocus","term","SelectionCSS","selectionCssClass","EventRelay","relayEvents","preventableEvents","Translation","dict","translation","_cache","loadPath","translations","BaseAdapter","query","generateResultId","SelectAdapter","selectedElement","tagName","currentData","unselect","addOptions","innerText","normalizedData","_normalizeItem","ArrayAdapter","_dataToConvert","convertToOptions","elm","$existing","existingIds","onlyItem","$existingOption","existingData","newData","$newOption","AjaxAdapter","ajaxOptions","_applyDefaults","processResults","defaults","failure","$request","_request","request","_queryTimeout","Tags","tags","createTag","insertTag","_removeOldTags","page","checkChildren","Tokenizer","tokenizer","dropdown","tokenData","separators","termChar","substr","MinimumInputLength","$e","minimumInputLength","minimum","MaximumInputLength","maximumInputLength","maximum","MaximumSelectionLength","maximumSelectionLength","_checkIfMaximumSelected","successCallback","Dropdown","showSearch","HidePlaceholder","removePlaceholder","modifiedData","InfiniteScroll","lastParams","$loadingMore","createLoadingMore","showLoadingMore","loadMoreIfNeeded","isLoadMoreVisible","loadMore","pagination","more","AttachBody","$dropdownParent","_showDropdown","_attachPositioningHandler","_bindContainerResultHandlers","_hideDropdown","_detachPositioningHandler","$dropdownContainer","_containerResultsHandlersBound","_positionDropdown","_resizeDropdown","scrollEvent","resizeEvent","orientationEvent","$watchers","ev","$window","isCurrentlyAbove","isCurrentlyBelow","newDirection","viewport","enoughRoomAbove","enoughRoomBelow","$offsetParent","isConnected","outerWidth","MinimumResultsForSearch","minimumResultsForSearch","Infinity","countResults","SelectOnClose","_handleSelectOnClose","originalSelect2Event","$highlightedResults","CloseOnSelect","_selectTriggered","DropdownCSS","dropdownCssClass","TagsSearchHighlight","$firstOption","firstElement","errorLoading","inputTooLong","overChars","inputTooShort","maximumSelected","noResults","searching","removeAllItems","search","ResultsList","SelectionSearch","DIACRITICS","SelectData","ArrayData","AjaxData","DropdownSearch","EnglishTranslation","Defaults","tokenSeparators","resultsAdapter","selectOnClose","dropdownAdapter","multiple","SearchableDropdown","closeOnSelect","selectionAdapter","allowClear","language","_resolveLanguage","uniqueLanguages","_processTranslations","debug","stripDiacritics","amdLanguageBase","autocomplete","dropdownAutoWidth","scrollAfterSelect","templateResult","templateSelection","theme","applyFromElement","optionLanguage","defaultLanguage","elementLanguage","parentLanguage","languages","resolvedLanguages","baseLanguage","languageData","convertedData","Options","fromElement","excludedData","upperCaseLetter","attributeName","dataName","dataValue","Select2","_generateId","DataAdapter","_placeContainer","SelectionAdapter","DropdownAdapter","ResultsAdapter","_bindAdapters","_registerDomEvents","_registerDataEvents","_registerSelectionEvents","_registerDropdownEvents","_registerResultsEvents","_registerEvents","initialData","_syncAttributes","_resolveWidth","WIDTH","styleWidth","elementWidth","_syncA","_syncS","_syncSubtree","_observer","mutations","childList","subtree","nonRelayEvents","toggleDropdown","_isChangeMutation","addedNodes","removedNodes","mutation","changed","actualTrigger","preTriggerMap","preTriggerName","preTriggerArgs","enable","newVal","disconnect","thisMethods","instanceOptions","instance","originalModule","webpackPolyfill","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","comparefn","deleteCount","insertCount","actualDeleteCount","actualStart","$trim","forcedStringTrimMethod","ltrim","whitespaces","__webpack_amd_options__","deprecate","paths","windowNames","getWindowNames","EOF","USE_NATIVE_URL","assign","arrayFrom","toASCII","URLSearchParamsModule","NativeURL","getInternalSearchParamsState","getState","getInternalURLState","pow","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","codePoints","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","radix","number","ipv4","numbersSeen","ipv4Piece","swaps","address","pieceIndex","compress","pointer","char","serializeHost","ignore0","ipv6","maxIndex","maxLength","currStart","currLength","findLongestZeroSequence","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","specialSchemes","ftp","gopher","http","https","ws","wss","scheme","includesCredentials","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","segment","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","bufferCodePoints","buffer","seenAt","seenBracket","seenPasswordToken","codePoint","encodedCodePoints","URLConstructor","baseState","urlString","searchParamsState","updateSearchParams","updateURL","serializeURL","origin","getOrigin","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","getPathname","getSearch","getSearchParams","getHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","blob","nativeAssign","B","chr","T","regexNonASCII","regexSeparators","OVERFLOW_ERROR","stringFromCharCode","digitToBasic","digit","adapt","numPoints","firstTime","baseMinusTMin","encode","inputLength","ucs2decode","bias","basicLength","handledCPCount","handledCPCountPlusOne","RangeError","qMinusT","baseMinusT","encoded","labels","getIterator","getInternalParamsState","getInternalIteratorState","URL_SEARCH_PARAMS","plus","sequences","percentSequence","bytes","percentDecode","sequence","decodeURIComponent","deserialize","parseSearchParams","attribute","validateArgumentsLength","passed","required","URLSearchParamsIterator","URLSearchParamsConstructor","entryIterator","URLSearchParamsPrototype","found","entriesIndex","sliceIndex","$entries","TO_ENTRIES","hide_campus_step_fields","newItem","origin_title","new_title","OSName","nav","ua","vers","browser","navigator","appName","appVersion","platform","category","campus","csrCategoryId","categoryId","selectedOptions","Pipeline","emailsList","baseUrl","submitBtn","setDataAsLoading","getPipelineData","data_confirm_val","$data_confirm_elem","getConfirmModal","confirmModal","count_existing_emails","count_non_existing_emails","count_non_existing","data_confirm_html","lastIndexOf","Piscine","winnersList","getPiscineData","count_winners","count_losers","selects","selecte","selecti","selectb","attrtype","getTime","cond","valueInput","selectInputVal","predicateSelect","selectInput","predicateValue","originValueInputId","originValueInputName","lastField","getSelectOptions","result1","filterTable","bindSearch","keyup","matchesValue","rowValue","inputValue","QrScanner","editUrl","authToken","checkIdentity","scanHistoric","scanner","Instascan","Scanner","video","backgroundScan","mirror","addListener","onScannedQrCode","Camera","getCameras","cameras","addCameras","getUserData","displayResponse","askForConfirmation","validateResource","hasWarnings","validateBtn","editBtn","validateModale","warnings","uniq","warning","log","cssClass","camera","intersection","normarlizeCameraName","camLi","startCamera","QrScannerIdChecks","words","updatePositions","sortable","onSort","insertedItem","Video","onPlayerStateChange","YT","PlayerState","PLAYING","incrementWatchedDuration","stopIncrementingWatchedDuration","incrementor","watchedDuration","player","getPlaybackRate","fixWatchedDurationOffset","checkIfVideoIsWatched","abs","getCurrentTime","onPlayerReady","totalDuration","getDuration","stopVideo","videoWatched","onVideoWatched","durationDelta","btnSelector","form","action","formUrl","appendCheaters","formSelector","modal","JSConfetti","addConfetti","emojis","emojiSize","confettiNumber","videoId","Player","getFormData","user","first_name","last_name","gender","dob","country","targetNode","observer","modal_body","resetModalData","addUserDataToModal","querySelector","getModal","showUserData","firstScriptTag","onYouTubeIframeAPIReady","btn","contContent","defineSelectorEvent","formSelected","query_params","queryParams","label_entity_attribute","labelEntityAttribute","label_attribute","labelAttribute","label_entity","labelEntity","is_polymorphic","polymorphic","entity_type","total_count","allow_clear","login","email","slug","fields","entity","localStorage","setItem","getItem","getFieldValue","updatePolymorphicFields","updateField","selectedAttribute","initEmailFormButton","showEmailForm","clearLocalStorageAndResetForm","subject","initLocalStorage","getEmailFromLocalStorage","initMarked","saveContent","saveToLocalStorage","saveSubject","subject_input","content_input","submitMassEmailForm","getWindowUrl","serializeFormParamsToJson","objs","levels","level","payload","createRequest","showSuccessMessage","alert","Request","getHeaders","credentials","Headers","csrfToken","successMessage","resizeIframe","buttonToTest","addTestWithModel","buttonToChangeLocale","locale","targetId","changeLocale","selectChanged","buttonToShowFilter","mailingId","newPath","changeMailing","scrollingElement","selectResourceChange","refresh","mailableTypeSelector","selectMailingChange","mailingSelectElement","parentElement","parsedData","getDataFromSelect","selectedData","initSearch","initLocalBtn","localBtnClick","onclick","onchange","fieldSelect","searchRow","operatorSelect","generateSelect","operators","newElem","HTMLoptions","replaceInputWithSelect","fieldSelectChanged","searchRowTemplate","searchRows","newSearchRow","addRow","removeRow","currentLocale","textArea","mailableType","expectedStep","allowOtherGenderChange","reasonField","disableSignupChange","zone","ical","addcalevent","removeInput","addInput","SimpleMDE","spellChecker","MailingGroupEdit","MailingGroupShow","MailingIframe","MailingEdit","CampusEdit","MassEmail","submitButton","chosen","custom_input","customizable","deselected","tooltip","tab","marked","toRemove","scroll_height","SimpleFormSelect2","DEFAULT_EVENT","organizer","allday","_create","failed","apps","ics","preVal","disabledClass","linkText","_disable","_sanitizeData","_attach","_click","_clickShow","_hide","_show","dd","_createDropdown","opening","ddCss","_eventPublisher","showOpts","isValid","_createHtml","styleString","_getStyle","optionLinks","_isLinkNeeded","linkId","isOK","_runIcsTest","testData","_getDataFromEl","timeObj","invalidStartDate","invalidEndDate","_lookupTimeZone","invalidTimeZone","AddCalEventZones","invalidDataString","_update","_addEvent","calendarLinkType","sameWindow","_getUrl_ics","_getUrl_google","_getUrl_yahoo","_getUrl_hotmail","_getUTCTime","dateObj","newDateObj","_adjustToUTC","_getDatePart","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","hours","mins","dateOut","setHours","setMinutes","digits","_getDateDiff","startDate","endDate","evtObj","buttonId","getEventData","returnObj","thisCall","onhashchange","currentAction","actionMapping","newAction","newUrl","Turbolinks","controller","getPath","pushHistoryWithLocationAndRestorationIdentifier","uuid","initCookie","newId","navLink"],"mappings":"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SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,OAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,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","file":"js/application-30af2b711f8251da0ce1.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 157);\n","var O = 'object';\nvar check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == O && globalThis) ||\n check(typeof window == O && window) ||\n check(typeof self == O && self) ||\n check(typeof global == O && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nvar Symbol = global.Symbol;\nvar store = shared('wks');\n\nmodule.exports = function (name) {\n return store[name] || (store[name] = NATIVE_SYMBOL && Symbol[name]\n || (NATIVE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar hide = require('../internals/hide');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n hide(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hide = require('../internals/hide');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar nativeFunctionToString = require('../internals/function-to-string');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(nativeFunctionToString).split('toString');\n\nshared('inspectSource', function (it) {\n return nativeFunctionToString.call(it);\n});\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else hide(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || nativeFunctionToString.call(this);\n});\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\nvar IS_PURE = require('../internals/is-pure');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.2.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar hide = require('../internals/hide');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n hide(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var global = require('../internals/global');\nvar hide = require('../internals/hide');\n\nmodule.exports = function (key, value) {\n try {\n hide(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","module.exports = false;\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","module.exports = {};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var shared = require('../internals/shared');\n\nmodule.exports = shared('native-function-to-string', Function.toString);\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\nvar ObjectPrototype = Object.prototype;\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (toString !== ObjectPrototype.toString) {\n redefine(ObjectPrototype, 'toString', toString, { unsafe: true });\n}\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","module.exports = require('../internals/global');\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar hide = require('../internals/hide');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n hide(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\nvar IS_CONCAT_SPREADABLE_SUPPORT = !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (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","var global = require('../internals/global');\nvar nativeFunctionToString = require('../internals/function-to-string');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(nativeFunctionToString.call(WeakMap));\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(length, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","exports.f = Object.getOwnPropertySymbols;\n","var bind = require('../internals/bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","module.exports = require(\"regenerator-runtime\");\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar SLOPPY_METHOD = sloppyArrayMethod('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || SLOPPY_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar hide = require('../internals/hide');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n if (sham) hide(RegExp.prototype[SYMBOL], 'sham', true);\n }\n};\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('map') }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n return !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('filter') }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !method || !fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar classof = require('../internals/classof');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = String(test) !== '[object z]' ? function toString() {\n return '[object ' + classof(this) + ']';\n} : test.toString;\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar path = require('../internals/path');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar userAgent = require('../internals/user-agent');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = global.fetch;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n // correct subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var empty = function () { /* empty */ };\n var FakePromise = (promise.constructor = {})[SPECIES] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return !((IS_NODE || typeof PromiseRejectionEvent == 'function')\n && (!IS_PURE || promise['finally'])\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = path[PROMISE];\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n while (!(step = iterator.next()).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar userAgent = require('../internals/user-agent');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !/(iphone|ipod|ipad).*applewebkit/i.test(userAgent)) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar hide = require('../internals/hide');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/wrapped-well-known-symbol');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar JSON = global.JSON;\nvar nativeJSONStringify = JSON && JSON.stringify;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = NATIVE_SYMBOL && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nJSON && $({ target: 'JSON', stat: true, forced: !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return nativeJSONStringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || nativeJSONStringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || nativeJSONStringify(Object(symbol)) != '{}';\n}) }, {\n stringify: function stringify(it) {\n var args = [it];\n var index = 1;\n var replacer, $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return nativeJSONStringify.apply(JSON, args);\n }\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) hide($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar hide = require('../internals/hide');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n hide(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) hide(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n hide(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","// To minimize code sent to the client, only include this on the client if the time zone offset cannot be\n// identified on the server.\n\nvar AddCalEventZones = {\n 'A': '+01:00',\n 'ACDT': '+10:30',\n 'ACST': '+09:30',\n 'ADT': '-03:00',\n 'ADT': '-03:00',\n 'AEDT': '+11:00',\n 'AEST': '+10:00',\n 'AFT': '+04:30',\n 'AKDT': '-08:00',\n 'AKST': '-09:00',\n 'ALMT': '+06:00',\n 'AMST': '+05:00',\n 'AMST': '-03:00',\n 'AMT': '+04:00',\n 'AMT': '-04:00',\n 'ANAST': '+12:00',\n 'ANAT': '+12:00',\n 'AQTT': '+05:00',\n 'ART': '-03:00',\n 'AST': '+03:00',\n 'AST': '-04:00',\n 'AST': '-04:00',\n 'AST': '-04:00',\n 'AWDT': '+09:00',\n 'AWST': '+08:00',\n 'AZOST': '+00:00',\n 'AZOT': '-01:00',\n 'AZST': '+05:00',\n 'AZT': '+04:00',\n 'B': '+02:00',\n 'BNT': '+08:00',\n 'BOT': '-04:00',\n 'BRST': '-02:00',\n 'BRT': '-03:00',\n 'BST': '+06:00',\n 'BST': '+01:00',\n 'BTT': '+06:00',\n 'C': '+03:00',\n 'CAST': '+08:00',\n 'CAT': '+02:00',\n 'CCT': '+06:30',\n 'CDT': '-04:00',\n 'CDT': '-05:00',\n 'CEST': '+02:00',\n 'CET': '+01:00',\n 'CET': '+01:00',\n 'CHADT': '+13:45',\n 'CHAST': '+12:45',\n 'CKT': '-10:00',\n 'CLST': '-03:00',\n 'CLT': '-04:00',\n 'COT': '-05:00',\n 'CST': '+08:00',\n 'CST': '-06:00',\n 'CST': '-05:00',\n 'CST': '-06:00',\n 'CVT': '-01:00',\n 'CXT': '+07:00',\n 'ChST': '+10:00',\n 'D': '+04:00',\n 'DAVT': '+07:00',\n 'E': '+05:00',\n 'EASST': '-05:00',\n 'EAST': '-06:00',\n 'EAT': '+03:00',\n 'EAT': '+03:00',\n 'ECT': '-05:00',\n 'EDT': '-04:00',\n 'EDT': '-04:00',\n 'EDT': '+11:00',\n 'EEST': '+03:00',\n 'EEST': '+03:00',\n 'EEST': '+03:00',\n 'EET': '+02:00',\n 'EET': '+02:00',\n 'EET': '+02:00',\n 'EGST': '+00:00',\n 'EGT': '-01:00',\n 'EST': '-05:00',\n 'EST': '-05:00',\n 'EST': '-05:00',\n 'ET': '-05:00',\n 'ET': '-05:00',\n 'ET': '-05:00',\n 'F': '+06:00',\n 'FJST': '+13:00',\n 'FJT': '+12:00',\n 'FKST': '-03:00',\n 'FKT': '-04:00',\n 'FNT': '-02:00',\n 'G': '+07:00',\n 'GALT': '-06:00',\n 'GAMT': '-09:00',\n 'GET': '+04:00',\n 'GFT': '-03:00',\n 'GILT': '+12:00',\n 'GMT': '+00:00',\n 'GMT': '+00:00',\n 'GST': '+04:00',\n 'GYT': '-04:00',\n 'H': '+08:00',\n 'HAA': '-03:00',\n 'HAA': '-03:00',\n 'HAC': '-05:00',\n 'HADT': '-09:00',\n 'HAE': '-04:00',\n 'HAE': '-04:00',\n 'HAP': '-07:00',\n 'HAR': '-06:00',\n 'HAST': '-10:00',\n 'HAT': '-02:30',\n 'HAY': '-08:00',\n 'HKT': '+08:00',\n 'HLV': '-04:30',\n 'HNA': '-04:00',\n 'HNA': '-04:00',\n 'HNA': '-04:00',\n 'HNC': '-06:00',\n 'HNC': '-06:00',\n 'HNE': '-05:00',\n 'HNE': '-05:00',\n 'HNE': '-05:00',\n 'HNP': '-08:00',\n 'HNR': '-07:00',\n 'HNT': '-03:30',\n 'HNY': '-09:00',\n 'HOVT': '+07:00',\n 'I': '+09:00',\n 'ICT': '+07:00',\n 'IDT': '+03:00',\n 'IOT': '+06:00',\n 'IRDT': '+04:30',\n 'IRKST': '+09:00',\n 'IRKT': '+09:00',\n 'IRST': '+03:30',\n 'IST': '+02:00',\n 'IST': '+05:30',\n 'IST': '+01:00',\n 'JST': '+09:00',\n 'K': '+10:00',\n 'KGT': '+06:00',\n 'KRAST': '+08:00',\n 'KRAT': '+08:00',\n 'KST': '+09:00',\n 'KUYT': '+04:00',\n 'L': '+11:00',\n 'LHDT': '+11:00',\n 'LHST': '+10:30',\n 'LINT': '+14:00',\n 'M': '+12:00',\n 'MAGST': '+12:00',\n 'MAGT': '+12:00',\n 'MART': '-09:30',\n 'MAWT': '+05:00',\n 'MDT': '-06:00',\n 'MESZ': '+02:00',\n 'MEZ': '+01:00',\n 'MHT': '+12:00',\n 'MMT': '+06:30',\n 'MSD': '+04:00',\n 'MSK': '+04:00',\n 'MST': '-07:00',\n 'MUT': '+04:00',\n 'MVT': '+05:00',\n 'MYT': '+08:00',\n 'N': '-01:00',\n 'NCT': '+11:00',\n 'NDT': '-02:30',\n 'NFT': '+11:30',\n 'NOVST': '+07:00',\n 'NOVT': '+06:00',\n 'NPT': '+05:45',\n 'NST': '-03:30',\n 'NUT': '-11:00',\n 'NZDT': '+13:00',\n 'NZDT': '+13:00',\n 'NZST': '+12:00',\n 'NZST': '+12:00',\n 'O': '-02:00',\n 'OMSST': '+07:00',\n 'OMST': '+07:00',\n 'P': '-03:00',\n 'PDT': '-07:00',\n 'PET': '-05:00',\n 'PETST': '+12:00',\n 'PETT': '+12:00',\n 'PGT': '+10:00',\n 'PHOT': '+13:00',\n 'PHT': '+08:00',\n 'PKT': '+05:00',\n 'PMDT': '-02:00',\n 'PMST': '-03:00',\n 'PONT': '+11:00',\n 'PST': '-08:00',\n 'PST': '-08:00',\n 'PT': '-08:00',\n 'PWT': '+09:00',\n 'PYST': '-03:00',\n 'PYT': '-04:00',\n 'Q': '-04:00',\n 'R': '-05:00',\n 'RET': '+04:00',\n 'S': '-06:00',\n 'SAMT': '+04:00',\n 'SAST': '+02:00',\n 'SBT': '+11:00',\n 'SCT': '+04:00',\n 'SGT': '+08:00',\n 'SRT': '-03:00',\n 'SST': '-11:00',\n 'T': '-07:00',\n 'TAHT': '-10:00',\n 'TFT': '+05:00',\n 'TJT': '+05:00',\n 'TKT': '+13:00',\n 'TLT': '+09:00',\n 'TMT': '+05:00',\n 'TVT': '+12:00',\n 'U': '-08:00',\n 'ULAT': '+08:00',\n 'UTC': '+00:00',\n 'UYST': '-02:00',\n 'UYT': '-03:00',\n 'UZT': '+05:00',\n 'V': '-09:00',\n 'VET': '-04:30',\n 'VLAST': '+11:00',\n 'VLAT': '+11:00',\n 'VUT': '+11:00',\n 'W': '-10:00',\n 'WAST': '+02:00',\n 'WAT': '+01:00',\n 'WEST': '+01:00',\n 'WEST': '+01:00',\n 'WESZ': '+01:00',\n 'WET': '+00:00',\n 'WET': '+00:00',\n 'WEZ': '+00:00',\n 'WFT': '+12:00',\n 'WGST': '-02:00',\n 'WGT': '-03:00',\n 'WIB': '+07:00',\n 'WIT': '+09:00',\n 'WITA': '+08:00',\n 'WST': '+01:00',\n 'WST': '+13:00',\n 'WT': '+00:00',\n 'X': '-11:00',\n 'Y': '-12:00',\n 'YAKST': '+10:00',\n 'YAKT': '+10:00',\n 'YAPT': '+10:00',\n 'YEKST': '+06:00',\n 'YEKT': '+06:00',\n 'Z': '+00:00'\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar hide = require('../internals/hide');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n hide(ArrayPrototype, UNSCOPABLES, create(null));\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar PROTOTYPE = 'prototype';\nvar Empty = function () { /* empty */ };\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var length = enumBugKeys.length;\n var lt = '<';\n var script = 'script';\n var gt = '>';\n var js = 'java' + script + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n iframe.src = String(js);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + script + gt + 'document.F=Object' + lt + '/' + script + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]];\n return createDict();\n};\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\nhiddenKeys[IE_PROTO] = true;\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = sloppyArrayMethod('forEach') ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","'use strict';\nvar bind = require('../internals/bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iteratorMethod = getIteratorMethod(O);\n var length, result, step, iterator;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n result = new C();\n for (;!(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping\n ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true)\n : step.value\n );\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar hide = require('../internals/hide');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n hide(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n hide(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar hide = require('../internals/hide');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('slice') }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\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 === \"undefined\" ? \"undefined\" : _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\n return factory(w);\n };\n } else {\n factory(global);\n } // Pass this if window is not defined yet\n\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\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\n var isWindow = function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n\n var document = window.document;\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\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\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\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n } // Support: Android <=2.3 only (functionish RegExp)\n\n\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\n var version = \"3.6.0\",\n // Define a local copy of jQuery\n jQuery = function jQuery(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\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 toArray() {\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 get(num) {\n // Return all the elements in a clean array\n if (num == null) {\n return _slice.call(this);\n } // Return just the one element from the set\n\n\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 pushStack(elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n ret.prevObject = this; // Return the newly-formed element set\n\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function each(callback) {\n return jQuery.each(this, callback);\n },\n map: function map(callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function slice() {\n return this.pushStack(_slice.apply(this, arguments));\n },\n first: function first() {\n return this.eq(0);\n },\n last: function last() {\n return this.eq(-1);\n },\n even: function even() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function odd() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function eq(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 end() {\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\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; // Handle a deep copy situation\n\n if (typeof target === \"boolean\") {\n deep = target; // Skip the boolean and the target\n\n target = arguments[i] || {};\n i++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (_typeof(target) !== \"object\" && !isFunction(target)) {\n target = {};\n } // Extend jQuery itself if only one argument is passed\n\n\n if (i === length) {\n target = this;\n i--;\n }\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]; // Prevent Object.prototype pollution\n // Prevent never-ending loop\n\n if (name === \"__proto__\" || target === copy) {\n continue;\n } // Recurse if we're merging plain objects or arrays\n\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name]; // Ensure proper type for the source value\n\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n\n copyIsArray = false; // Never move original objects, clone them\n\n target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\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 error(msg) {\n throw new Error(msg);\n },\n noop: function noop() {},\n isPlainObject: function isPlainObject(obj) {\n var proto, Ctor; // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n\n proto = getProto(obj); // Objects with no prototype (e.g., `Object.create( null )`) are plain\n\n if (!proto) {\n return true;\n } // Objects with prototype are plain iff they were constructed by a global Object function\n\n\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function isEmptyObject(obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\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 globalEval(code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function each(obj, callback) {\n var length,\n i = 0;\n\n if (isArrayLike(obj)) {\n length = obj.length;\n\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\n return obj;\n },\n // results is for internal usage only\n makeArray: function makeArray(arr, results) {\n var ret = results || [];\n\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\n return ret;\n },\n inArray: function inArray(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 merge(first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n\n first.length = i;\n return first;\n },\n grep: function grep(elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert; // Go through the array, only saving the items\n // that pass the validator function\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n // arg is for internal usage only\n map: function map(elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = []; // Go through the array, translating each of the items to their new values\n\n if (isArrayLike(elems)) {\n length = elems.length;\n\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n } // Go through every key on the object,\n\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } // Flatten any nested arrays\n\n\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\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n } // Populate the class2type map\n\n\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\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\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\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 sortOrder(a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\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 indexOf(list, elem) {\n var i = 0,\n len = list.length;\n\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\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 // 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 + // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace + // \"Attribute values must be CSS identifiers [capture 5]\n // or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + // 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 funescape(escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n return nonHex ? // Strip the backslash prefix from a non-hex escape sequence\n nonHex : // 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 fcssescape(ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n } // Control characters and (dependent upon position) numbers get escaped as code points\n\n\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n } // Other potentially-special ASCII characters get backslash-escaped\n\n\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 unloadHandler() {\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 }); // Optimize for push.apply( _, NodeList )\n\n\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? // Leverage slice if possible\n function (target, els) {\n pushNative.apply(target, slice.call(els));\n } : // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0; // Can't trust NodeList.length\n\n while (target[j++] = els[i++]) {}\n\n target.length = j - 1;\n }\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 || []; // Return early from calls with invalid selector or context\n\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n } // Try to shortcut find operations (as opposed to filters) in HTML documents\n\n\n if (!seed) {\n setDocument(context);\n context = context || document;\n\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 } // Element context\n\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 } // Type selector\n\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results; // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n } // Take advantage of querySelectorAll\n\n\n if (support.qsa && !nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && ( // Support: IE 8 only\n // Exclude object elements\n nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\n newSelector = selector;\n newContext = context; // 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\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; // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n\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 } // Prefix every selector in the list\n\n\n groups = tokenize(selector);\n i = groups.length;\n\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n\n newSelector = groups.join(\",\");\n }\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 } // All others\n\n\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\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\n\n function createCache() {\n var keys = [];\n\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\n return cache[key + \" \"] = value;\n }\n\n return cache;\n }\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n\n\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n\n\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n\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 } // release memory in IE\n\n\n el = null;\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\n\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\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\n\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; // Use IE sourceIndex if available on both nodes\n\n if (diff) {\n return diff;\n } // Check if b follows a\n\n\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n\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 * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n\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 * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\n\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 } // Support: IE 6 - 11\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\n\n return elem.isDisabled === disabled || // Where there is no isDisabled, check manually\n\n /* jshint -W018 */\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n\n return elem.disabled === disabled; // 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 } // Remaining elements are neither :enabled nor :disabled\n\n\n return false;\n };\n }\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n\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; // Match elements found at the specified indexes\n\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\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\n\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n } // Expose support vars for convenience\n\n\n support = Sizzle.support = {};\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\n isXML = Sizzle.isXML = function (elem) {\n var namespace = elem && elem.namespaceURI,\n docElem = elem && (elem.ownerDocument || elem).documentElement; // 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\n return !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\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\n\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc; // 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\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n } // Update global variables\n\n\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document); // 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\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); // Support: IE 9 - 10 only\n } else if (subWindow.attachEvent) {\n subWindow.attachEvent(\"onunload\", unloadHandler);\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\n\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 /* Attributes\n ---------------------------------------------------------------------- */\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n\n support.attributes = assert(function (el) {\n el.className = \"i\";\n return !el.getAttribute(\"className\");\n });\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n // Check if getElementsByTagName(\"*\") returns only elements\n\n support.getElementsByTagName = assert(function (el) {\n el.appendChild(document.createComment(\"\"));\n return !el.getElementsByTagName(\"*\").length;\n }); // Support: IE<9\n\n support.getElementsByClassName = rnative.test(document.getElementsByClassName); // 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\n support.getById = assert(function (el) {\n docElem.appendChild(el).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n }); // ID filter and find\n\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\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 }; // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n\n\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\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n } // Fall back on getElementsByName\n\n\n elems = context.getElementsByName(id);\n i = 0;\n\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n\n return [];\n }\n };\n } // Tag\n\n\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag); // 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); // Filter out possible comments\n\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n\n return results;\n }; // Class\n\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n // QSA and matchesSelector support\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\n\n rbuggyMatches = []; // 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\n rbuggyQSA = [];\n\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; // 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\n docElem.appendChild(el).innerHTML = \"\" + \"\"; // 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\n if (el.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n\n\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\n\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\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\n\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\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\n\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\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\n\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n } // Support: Firefox <=3.6 - 5 only\n // Old Firefox doesn't throw on a badly-escaped identifier.\n\n\n el.querySelectorAll(\"\\\\\\f\");\n rbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\n });\n assert(function (el) {\n el.innerHTML = \"\" + \"\"; // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\"); // Support: IE8\n // Enforce case-sensitivity of name attribute\n\n if (el.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\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\n\n if (el.querySelectorAll(\":enabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: IE9-11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n\n\n docElem.appendChild(el).disabled = true;\n\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: Opera 10 - 11 only\n // Opera 10-11 does not throw on post-comma invalid pseudos\n\n\n el.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\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, \"*\"); // This should fail with an exception\n // Gecko does not error, returns false instead\n\n matches.call(el, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n /* Contains\n ---------------------------------------------------------------------- */\n\n hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n\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\n return false;\n };\n /* Sorting\n ---------------------------------------------------------------------- */\n // Document order sorting\n\n sortOrder = hasCompare ? function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n } // Sort on method existence if only one input has compareDocumentPosition\n\n\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\n if (compare) {\n return compare;\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\n\n compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) : // Otherwise we know they are disconnected\n 1; // Disconnected nodes\n\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 } // 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\n\n if (b == document || b.ownerDocument == preferredDoc && contains(preferredDoc, b)) {\n return 1;\n } // Maintain original order\n\n\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\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\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b]; // Parentless nodes are either documents or disconnected\n\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\n /* eslint-disable eqeqeq */\n return a == document ? -1 : b == document ? 1 :\n /* eslint-enable eqeqeq */\n aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n } // Otherwise we need full lists of their ancestors for comparison\n\n\n cur = a;\n\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n\n cur = b;\n\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n } // Walk down the tree looking for a discrepancy\n\n\n while (ap[i] === bp[i]) {\n i++;\n }\n\n return i ? // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) : // 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\n /* eslint-disable eqeqeq */\n ap[i] == preferredDoc ? -1 : bp[i] == preferredDoc ? 1 :\n /* eslint-enable eqeqeq */\n 0;\n };\n return document;\n };\n\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n\n Sizzle.matchesSelector = function (elem, expr) {\n setDocument(elem);\n\n if (support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes\n\n if (ret || support.disconnectedMatch || // 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\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\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\n return contains(context, elem);\n };\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\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\n Sizzle.escape = function (sel) {\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n\n\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0; // Unless we *know* we can detect duplicates, assume their presence\n\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n } // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n\n\n sortInput = null;\n return results;\n };\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n\n\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n\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 } // Do not include comment or processing instruction nodes\n\n\n return ret;\n };\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 ATTR(match) {\n match[1] = match[1].replace(runescape, funescape); // Move the given value to match[3] whether quoted or unquoted\n\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n\n return match.slice(0, 4);\n },\n \"CHILD\": function CHILD(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\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n } // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n\n\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\"); // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n\n return match;\n },\n \"PSEUDO\": function PSEUDO(match) {\n var excess,\n unquoted = !match[6] && match[2];\n\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n } // Accept quoted arguments as-is\n\n\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\"; // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && ( // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && ( // 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 } // Return only captures needed by the pseudo filter method (type and argument)\n\n\n return match.slice(0, 3);\n }\n },\n filter: {\n \"TAG\": function TAG(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 CLASS(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 ATTR(name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n\n if (result == null) {\n return operator === \"!=\";\n }\n\n if (!operator) {\n return true;\n }\n\n result += \"\";\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 \"CHILD\": function CHILD(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 ? // 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\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n } // Reverse direction for :only-* (if we haven't yet done so)\n\n\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n\n return true;\n }\n\n start = [forward ? parent.firstChild : parent.lastChild]; // non-xml :nth-child(...) stores cache data on `parent`\n\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n // ...in a gzip-friendly way\n node = parent;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\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\n while (node = ++nodeIndex && node && node[dir] || ( // 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] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n } // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\n\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] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n uniqueCache[type] = [dirruns, diff];\n }\n\n if (node === elem) {\n break;\n }\n }\n }\n }\n } // Incorporate the offset, then check against cycle size\n\n\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n \"PSEUDO\": function PSEUDO(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); // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n\n if (fn[expando]) {\n return fn(argument);\n } // But maintain support for old signatures\n\n\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\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\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; // Match elements unmatched by `matcher`\n\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); // Don't keep the element (issue #299)\n\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\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n\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\n return false;\n };\n }),\n // Miscellaneous\n \"target\": function target(elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n \"root\": function root(elem) {\n return elem === docElem;\n },\n \"focus\": function focus(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 checked(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 selected(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\n return elem.selected === true;\n },\n // Contents\n \"empty\": function empty(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\n return true;\n },\n \"parent\": function parent(elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n // Element/input types\n \"header\": function header(elem) {\n return rheader.test(elem.nodeName);\n },\n \"input\": function input(elem) {\n return rinputs.test(elem.nodeName);\n },\n \"button\": function button(elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n \"text\": function text(elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && ( // 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\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument > length ? length : argument;\n\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"]; // Add button/input type pseudos\n\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\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n } // Easy API for creating new setFilters\n\n\n function setFilters() {}\n\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n\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\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n\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\n groups.push(tokens = []);\n }\n\n matched = false; // Combinators\n\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 } // Filters\n\n\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\n if (!matched) {\n break;\n }\n } // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n\n\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n\n return selector;\n }\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 ? // 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\n return false;\n } : // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n uniqueCache,\n outerCache,\n newCache = [dirruns, doneName]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\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] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n\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; // A match means we're done; a fail means we have to keep checking\n\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n\n return false;\n };\n }\n\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n\n return true;\n } : matchers[0];\n }\n\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n\n return results;\n }\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\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n\n return newUnmatched;\n }\n\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\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 ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ? // ...intermediate processing is necessary\n [] : // ...otherwise use results directly\n results : matcherIn; // Find primary matches\n\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n } // Apply postFilter\n\n\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml); // Un-match failing elements by moving them back to matcherIn\n\n i = temp.length;\n\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\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\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\n postFinder(null, matcherOut = [], temp, xml);\n } // Move matched elements from seed to results to keep them synchronized\n\n\n i = matcherOut.length;\n\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 } // Add elements to results, through postFinder if defined\n\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\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)); // Avoid hanging onto element (issue #299)\n\n checkContext = null;\n return ret;\n }];\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); // Return special upon seeing a positional matcher\n\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( // 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\n matchers.push(matcher);\n }\n }\n\n return elementMatcher(matchers);\n }\n\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function superMatcher(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\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 } // Add elements passing elementMatchers directly to results\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\n\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0; // 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\n if (!context && elem.ownerDocument != document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n results.push(elem);\n break;\n }\n }\n\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n } // Track unmatched elements for set filters\n\n\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n } // Lengthen the array for every element, matched or not\n\n\n if (seed) {\n unmatched.push(elem);\n }\n }\n } // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n\n\n matchedCount += i; // 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\n if (bySet && i !== matchedCount) {\n j = 0;\n\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\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 } // Discard index placeholder values to get only actual matches\n\n\n setMatched = condense(setMatched);\n } // Add matches to results\n\n\n push.apply(results, setMatched); // Seedless set matches succeeding multiple successful matchers stipulate sorting\n\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n } // Override manipulation of globals by nested matchers\n\n\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n\n return unmatched;\n };\n\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n\n compile = Sizzle.compile = function (selector, match\n /* Internal Use Only */\n ) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n\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\n i = match.length;\n\n while (i--) {\n cached = matcherFromTokens(match[i]);\n\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n } // Cache the compiled function\n\n\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); // Save selector and tokenization\n\n cached.selector = selector;\n }\n\n return cached;\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\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 || []; // 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\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\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\n if (!context) {\n return results; // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n\n selector = selector.slice(tokens.shift().value.length);\n } // Fetch a seed set for right-to-left matching\n\n\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n\n while (i--) {\n token = tokens[i]; // Abort if we hit a combinator\n\n if (Expr.relative[type = token.type]) {\n break;\n }\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\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n\n break;\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\n\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }; // One-time assignments\n // Sort stability\n\n\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando; // Support: Chrome 14-35+\n // Always assume duplicates if they aren't passed to the comparison function\n\n support.detectDuplicates = !!hasDuplicate; // Initialize against the default document\n\n setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n\n support.sortDetached = assert(function (el) {\n // Should return 1, but returns 4 (following)\n return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n }); // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\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 } // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n\n\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 } // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n\n\n if (!assert(function (el) {\n return el.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n }\n\n return Sizzle;\n }(window);\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors; // Deprecated\n\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\n var dir = function dir(elem, _dir, until) {\n var matched = [],\n truncate = until !== undefined;\n\n while ((elem = elem[_dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n\n matched.push(elem);\n }\n }\n\n return matched;\n };\n\n var _siblings = function siblings(n, elem) {\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n\n return matched;\n };\n\n var rneedsContext = jQuery.expr.match.needsContext;\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n\n var rsingleTag = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i; // Implement the identical functionality for filter and not\n\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 } // Single element\n\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n } // Arraylike of elements (jQuery, arguments, Array)\n\n\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n } // Filtered directly for both simple and complex selectors\n\n\n return jQuery.filter(qualifier, elements, not);\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function find(selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n\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\n ret = this.pushStack([]);\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function filter(selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function not(selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function is(selector) {\n return !!winnow(this, // 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 }); // Initialize a jQuery object\n // A central reference to the root jQuery(document)\n\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; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n if (!selector) {\n return this;\n } // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n\n\n root = root || rootjQuery; // Handle HTML strings\n\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 } // Match html or make sure no context is specified for #id\n\n\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context; // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\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]); // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this; // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n\n return this;\n } // HANDLE: $(expr, $(...))\n\n } else if (!context || context.jquery) {\n return (context || root).find(selector); // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n } // HANDLE: $(DOMElement)\n\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this; // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) : // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n return jQuery.makeArray(selector, this);\n }; // Give the init function the jQuery prototype for later instantiation\n\n\n init.prototype = jQuery.fn; // Initialize central reference\n\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 has(target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function closest(selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors); // Positional selectors never match, since there's no _selection_ context\n\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 : // 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\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 index(elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n } // Index in selector\n\n\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n } // Locate the position of the desired element\n\n\n return indexOf.call(this, // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function add(selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function addBack(selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n\n return cur;\n }\n\n jQuery.each({\n parent: function parent(elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function parents(elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function parentsUntil(elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function next(elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function prev(elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function nextAll(elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function prevAll(elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function nextUntil(elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function prevUntil(elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function siblings(elem) {\n return _siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function children(elem) {\n return _siblings(elem.firstChild);\n },\n contents: function contents(elem) {\n if (elem.contentDocument != null && // 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 } // 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\n\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\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\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n } // Reverse order for parents* and prev-derivatives\n\n\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n\n return this.pushStack(matched);\n };\n });\n var rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g; // Convert String-formatted options into Object-formatted ones\n\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 * 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\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\n var // 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 fire() {\n // Enforce single-firing\n _locked = _locked || options.once; // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n\n _fired = firing = true;\n\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n\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 } // Forget the data if we're done with it\n\n\n if (!options.memory) {\n memory = false;\n }\n\n firing = false; // Clean up if we're done firing for good\n\n if (_locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = []; // 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 add() {\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\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\n if (memory && !firing) {\n fire();\n }\n }\n\n return this;\n },\n // Remove a callback from the list\n remove: function remove() {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\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 has(fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function empty() {\n if (list) {\n list = [];\n }\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 disable() {\n _locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function disabled() {\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 lock() {\n _locked = queue = [];\n\n if (!memory && !firing) {\n list = memory = \"\";\n }\n\n return this;\n },\n locked: function locked() {\n return !!_locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function fireWith(context, args) {\n if (!_locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n\n if (!firing) {\n fire();\n }\n }\n\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function fire() {\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 fired() {\n return !!_fired;\n }\n };\n\n return self;\n };\n\n function Identity(v) {\n return v;\n }\n\n function Thrower(ex) {\n throw ex;\n }\n\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n\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); // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject); // 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 } // 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\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\n jQuery.extend({\n Deferred: function Deferred(func) {\n var tuples = [// 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 state() {\n return _state;\n },\n always: function always() {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function _catch(fn) {\n return _promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function pipe()\n /* 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]]; // 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\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\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 then(onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function mightThrow() {\n var returned, then; // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n\n if (depth < maxDepth) {\n return;\n }\n\n returned = handler.apply(that, args); // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\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\n\n then = returned && ( // 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; // Handle a returned thenable\n\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)); // 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 } // Handle all other returned values\n\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 } // Process the value(s)\n // Default process is resolve\n\n\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 } // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n\n\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\n deferred.rejectWith(that, args);\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\n\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\n window.setTimeout(process);\n }\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)); // fulfilled_handlers.add( ... )\n\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)); // rejected_handlers.add( ... )\n\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 promise(obj) {\n return obj != null ? jQuery.extend(obj, _promise) : _promise;\n }\n },\n deferred = {}; // Add list-specific methods\n\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5]; // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n\n _promise[tuple[1]] = list.add; // Handle state\n\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n _state = stateString;\n }, // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable, // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable, // progress_callbacks.lock\n tuples[0][2].lock, // progress_handlers.lock\n tuples[0][3].lock);\n } // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n\n\n list.add(tuple[3].fire); // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n }; // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n }); // Make the deferred a promise\n\n _promise.promise(deferred); // Call given func if any\n\n\n if (func) {\n func.call(deferred, deferred);\n } // All done!\n\n\n return deferred;\n },\n // Deferred helper\n when: function when(singleValue) {\n var // 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 updateFunc(i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? _slice.call(arguments) : value;\n\n if (! --remaining) {\n primary.resolveWith(resolveContexts, resolveValues);\n }\n };\n }; // Single- and empty arguments are adopted like Promise.resolve\n\n\n if (remaining <= 1) {\n adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining); // Use .then() to unwrap secondary thenables (cf. gh-3000)\n\n if (primary.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return primary.then();\n }\n } // Multiple arguments are aggregated like Promise.all array elements\n\n\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), primary.reject);\n }\n\n return primary.promise();\n }\n }); // These usually indicate a programmer mistake during development,\n // warn about them ASAP rather than swallowing them by default.\n\n var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\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\n jQuery.readyException = function (error) {\n window.setTimeout(function () {\n throw error;\n });\n }; // The deferred used on DOM ready\n\n\n var readyList = jQuery.Deferred();\n\n jQuery.fn.ready = function (fn) {\n readyList.then(fn) // 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\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 ready(wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n } // Remember that the DOM is ready\n\n\n jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n } // If there are functions bound, to execute\n\n\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method\n\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.ready();\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\n\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); // A fallback to window.onload, that will always work\n\n window.addEventListener(\"load\", completed);\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\n\n var access = function access(elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null; // Sets many values\n\n if (toType(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n } // Sets one value\n\n } else if (value !== undefined) {\n chainable = true;\n\n if (!isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null; // ...except when executing function values\n } else {\n bulk = fn;\n\n fn = function fn(elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\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\n if (chainable) {\n return elems;\n } // Gets\n\n\n if (bulk) {\n return fn.call(elems);\n }\n\n return len ? fn(elems[0], key) : emptyGet;\n }; // Matches dashed string for camelizing\n\n\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace()\n\n function fcamelCase(_all, letter) {\n return letter.toUpperCase();\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\n\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n\n var acceptData = function acceptData(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\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n\n Data.uid = 1;\n Data.prototype = {\n cache: function cache(owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando]; // If not, create one\n\n if (!value) {\n value = {}; // 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\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; // 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\n return value;\n },\n set: function set(owner, data, value) {\n var prop,\n cache = this.cache(owner); // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value; // 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\n return cache;\n },\n get: function get(owner, key) {\n return key === undefined ? this.cache(owner) : // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function access(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 } // 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\n\n this.set(owner, key, value); // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n\n return value !== undefined ? value : key;\n },\n remove: function remove(owner, key) {\n var i,\n cache = owner[this.expando];\n\n if (cache === undefined) {\n return;\n }\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); // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n\n i = key.length;\n\n while (i--) {\n delete cache[key[i]];\n }\n } // Remove the expando if there's no more data\n\n\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 hasData(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(); //\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\n function getData(data) {\n if (data === \"true\") {\n return true;\n }\n\n if (data === \"false\") {\n return false;\n }\n\n if (data === \"null\") {\n return null;\n } // Only convert to a number if it doesn't change the string\n\n\n if (data === +data + \"\") {\n return +data;\n }\n\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n\n return data;\n }\n\n function dataAttr(elem, key, data) {\n var name; // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n data = elem.getAttribute(name);\n\n if (typeof data === \"string\") {\n try {\n data = getData(data);\n } catch (e) {} // Make sure we set the data so it isn't changed later\n\n\n dataUser.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n\n return data;\n }\n\n jQuery.extend({\n hasData: function hasData(elem) {\n return dataUser.hasData(elem) || dataPriv.hasData(elem);\n },\n data: function data(elem, name, _data) {\n return dataUser.access(elem, name, _data);\n },\n removeData: function removeData(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 _data(elem, name, data) {\n return dataPriv.access(elem, name, data);\n },\n _removeData: function _removeData(elem, name) {\n dataPriv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function data(key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes; // Gets all values\n\n if (key === undefined) {\n if (this.length) {\n data = dataUser.get(elem);\n\n if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n\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\n if (name.indexOf(\"data-\") === 0) {\n name = camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n\n dataPriv.set(elem, \"hasDataAttrs\", true);\n }\n }\n\n return data;\n } // Sets multiple values\n\n\n if (_typeof(key) === \"object\") {\n return this.each(function () {\n dataUser.set(this, key);\n });\n }\n\n return access(this, function (value) {\n var data; // 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\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\n if (data !== undefined) {\n return data;\n } // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n\n\n data = dataAttr(elem, key);\n\n if (data !== undefined) {\n return data;\n } // We tried really hard, but the data doesn't exist.\n\n\n return;\n } // Set the data...\n\n\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 removeData(key) {\n return this.each(function () {\n dataUser.remove(this, key);\n });\n }\n });\n jQuery.extend({\n queue: function queue(elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\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\n return queue || [];\n }\n },\n dequeue: function dequeue(elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function next() {\n jQuery.dequeue(elem, type);\n }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\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 } // Clear up the last queue stop function\n\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\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 _queueHooks(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 queue(type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data); // Ensure a hooks for this queue\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function dequeue(type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function clearQueue(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 promise(type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function resolve() {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\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\n var isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\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\n\n if (documentElement.getRootNode) {\n isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n\n var isHiddenWithinTree = function isHiddenWithinTree(elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem; // Inline style trumps all\n\n return elem.style.display === \"none\" || elem.style.display === \"\" && // 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\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\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; // Trust units reported by jQuery.css\n\n unit = unit || initialInUnit[3]; // Iteratively approximate from a nonzero starting point\n\n initialInUnit = +initial || 1;\n\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\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n\n initialInUnit = initialInUnit / scale;\n }\n\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit); // Make sure we update the tween properties later on\n\n valueParts = valueParts || [];\n }\n\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n\n return adjusted;\n }\n\n var defaultDisplayMap = {};\n\n function getDefaultDisplay(elem) {\n var temp,\n doc = elem.ownerDocument,\n nodeName = elem.nodeName,\n display = defaultDisplayMap[nodeName];\n\n if (display) {\n return display;\n }\n\n temp = doc.body.appendChild(doc.createElement(nodeName));\n display = jQuery.css(temp, \"display\");\n temp.parentNode.removeChild(temp);\n\n if (display === \"none\") {\n display = \"block\";\n }\n\n defaultDisplayMap[nodeName] = display;\n return display;\n }\n\n function showHide(elements, show) {\n var display,\n elem,\n values = [],\n index = 0,\n length = elements.length; // Determine new display value for elements that need to change\n\n for (; index < length; index++) {\n elem = elements[index];\n\n if (!elem.style) {\n continue;\n }\n\n display = elem.style.display;\n\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\n if (!values[index]) {\n elem.style.display = \"\";\n }\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\"; // Remember what we're overwriting\n\n dataPriv.set(elem, \"display\", display);\n }\n }\n } // Set the display of the elements in a second loop to avoid constant reflow\n\n\n for (index = 0; index < length; index++) {\n if (values[index] != null) {\n elements[index].style.display = values[index];\n }\n }\n\n return elements;\n }\n\n jQuery.fn.extend({\n show: function show() {\n return showHide(this, true);\n },\n hide: function hide() {\n return showHide(this);\n },\n toggle: function toggle(state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\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\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\"); // 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\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input); // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // Support: IE <=9 only\n // IE <=9 replaces \";\n support.option = !!div.lastChild;\n })(); // We have to close these tags to support XHTML (#13200)\n\n\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; // Support: IE <=9 only\n\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"\"];\n }\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\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\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n\n return ret;\n } // Mark scripts as having already been evaluated\n\n\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n\n var rhtml = /<|&#?\\w+;/;\n\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\n for (; i < l; i++) {\n elem = elems[i];\n\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); // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem)); // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\")); // Deserialize a standard representation\n\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2]; // Descend through wrappers to the right content\n\n j = wrap[0];\n\n while (j--) {\n tmp = tmp.lastChild;\n } // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n\n\n jQuery.merge(nodes, tmp.childNodes); // Remember the top-level container\n\n tmp = fragment.firstChild; // Ensure the created nodes are orphaned (#12392)\n\n tmp.textContent = \"\";\n }\n }\n } // Remove wrapper from fragment\n\n\n fragment.textContent = \"\";\n i = 0;\n\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\n continue;\n }\n\n attached = isAttached(elem); // Append to fragment\n\n tmp = getAll(fragment.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n if (attached) {\n setGlobalEval(tmp);\n } // Capture executables\n\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n return fragment;\n }\n\n var rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\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\n\n function expectSync(elem, type) {\n return elem === safeActiveElement() === (type === \"focus\");\n } // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n function _on(elem, types, selector, data, fn, one) {\n var origFn, type; // Types can be a map of types/handlers\n\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\n for (type in types) {\n _on(elem, type, selector, data, types[type], one);\n }\n\n return elem;\n }\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\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function fn(event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n }; // Use same guid so caller can remove using origFn\n\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\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\n\n jQuery.event = {\n global: {},\n add: function add(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); // Only attach events to objects that accept data\n\n if (!acceptData(elem)) {\n return;\n } // Caller can pass in an object of custom data in lieu of the handler\n\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\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\n\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n } // Init the element's event structure and main handler, if this is the first\n\n\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\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 } // Handle multiple events separated by a space\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n if (!type) {\n continue;\n } // If event changes its type, use the special event handlers for the changed type\n\n\n special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\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); // Init the event handler queue if we're the first\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false\n\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\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n } // Add to the element's handler list, delegates in front\n\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n } // Keep track of which events have ever been used, for event optimization\n\n\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function remove(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\n if (!elemData || !(events = elemData.events)) {\n return;\n } // Once for each type.namespace in types; type may be omitted\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\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(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\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\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\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\n\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\n delete events[type];\n }\n } // Remove data and the expando if it's no longer used\n\n\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function dispatch(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] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n args[0] = event;\n\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n } // Determine handlers\n\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\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\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n } // Call the postDispatch hook for the mapped type\n\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function handlers(event, _handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = _handlers.delegateCount,\n cur = event.target; // Find delegate handlers\n\n if (delegateCount && // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType && // 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\n for (i = 0; i < delegateCount; i++) {\n handleObj = _handlers[i]; // Don't conflict with Object.prototype properties (#13203)\n\n sel = handleObj.selector + \" \";\n\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\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n } // Add the remaining (directly-bound) handlers\n\n\n cur = this;\n\n if (delegateCount < _handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: _handlers.slice(delegateCount)\n });\n }\n\n return handlerQueue;\n },\n addProp: function addProp(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 set(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 fix(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 setup(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; // Claim the first handler\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n } // Return false to allow normal processing in the caller\n\n\n return false;\n },\n trigger: function trigger(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; // Force setup before triggering a click\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n } // Return non-false to allow normal event-path propagation\n\n\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 _default(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 postDispatch(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 }; // 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\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\n return;\n } // Register the controller as a special universal handler for all event namespaces\n\n\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function handler(event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n\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); // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault(); // 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\n return result && result.value;\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\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\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\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger( // 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 }); // Abort handling of the native event\n\n event.stopImmediatePropagation();\n }\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\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 } // Event object\n\n\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type; // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse; // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (#504, #13143)\n\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget; // Event type\n } else {\n this.type = src;\n } // Put explicitly provided properties onto the event object\n\n\n if (props) {\n jQuery.extend(this, props);\n } // Create a timestamp if incoming event doesn't have one\n\n\n this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed\n\n this[jQuery.expando] = true;\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\n\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function preventDefault() {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function stopPropagation() {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function stopImmediatePropagation() {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n\n this.stopPropagation();\n }\n }; // Includes all common event props including KeyEvent and MouseEvent specific props\n\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 setup() {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync); // Return false to allow normal processing in the caller\n\n return false;\n },\n trigger: function trigger() {\n // Force setup before trigger\n leverageNative(this, type); // Return non-false to allow normal event-path propagation\n\n return true;\n },\n // Suppress native focus or blur as it's already being fired\n // in leverageNative.\n _default: function _default() {\n return true;\n },\n delegateType: delegateType\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\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 handle(event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj; // 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\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\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function on(types, selector, data, fn) {\n return _on(this, types, selector, data, fn);\n },\n one: function one(types, selector, data, fn) {\n return _on(this, types, selector, data, fn, 1);\n },\n off: function off(types, selector, fn) {\n var handleObj, type;\n\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\n if (_typeof(types) === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n\n return this;\n }\n\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n\n if (fn === false) {\n fn = returnFalse;\n }\n\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n var // 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; // Prefer a tbody over its parent table for containing new rows\n\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\n return elem;\n } // Replace/restore the type attribute of script elements for safe DOM manipulation\n\n\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\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\n return elem;\n }\n\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n\n if (dest.nodeType !== 1) {\n return;\n } // 1. Copy private data: events, handlers, etc.\n\n\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n\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 } // 2. Copy user data\n\n\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n } // Fix IE bugs, see support tests\n\n\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button.\n\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked; // 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\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); // We can't cloneNode fragments that contain checked, in WebKit\n\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\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n\n domManip(self, args, callback, ignored);\n });\n }\n\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n\n if (fragment.childNodes.length === 1) {\n fragment = first;\n } // Require either new content or an interest in ignored elements to invoke the callback\n\n\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length; // 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\n for (; i < l; i++) {\n node = fragment;\n\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true); // Keep references to cloned scripts for later restoration\n\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\n callback.call(collection[i], node, i);\n }\n\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument; // Reenable scripts\n\n jQuery.map(scripts, restoreScript); // Evaluate executable scripts on first document insertion\n\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n\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\n return collection;\n }\n\n function _remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n\n node.parentNode.removeChild(node);\n }\n }\n\n return elem;\n }\n\n jQuery.extend({\n htmlPrefilter: function htmlPrefilter(html) {\n return html;\n },\n clone: function clone(elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem); // Fix IE cloning issues\n\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\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n } // Copy the events from the original to the clone\n\n\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n\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 } // Preserve script evaluation history\n\n\n destElements = getAll(clone, \"script\");\n\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n } // Return the cloned set\n\n\n return clone;\n },\n cleanData: function cleanData(elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n\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); // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n } // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n\n\n elem[dataPriv.expando] = undefined;\n }\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 detach(selector) {\n return _remove(this, selector, true);\n },\n remove: function remove(selector) {\n return _remove(this, selector);\n },\n text: function text(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 append() {\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 prepend() {\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 before() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function after() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function empty() {\n var elem,\n i = 0;\n\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false)); // Remove any remaining nodes\n\n elem.textContent = \"\";\n }\n }\n\n return this;\n },\n clone: function clone(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 html(value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n } // See if we can take a shortcut and just use innerHTML\n\n\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n\n try {\n for (; i < l; i++) {\n elem = this[i] || {}; // Remove element nodes and prevent memory leaks\n\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n\n elem = 0; // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function replaceWith() {\n var ignored = []; // Make the changes, replacing each non-ignored context element with the new content\n\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n\n if (parent) {\n parent.replaceChild(elem, this);\n }\n } // Force callback invocation\n\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\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems); // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n\n push.apply(ret, elems.get());\n }\n\n return this.pushStack(ret);\n };\n });\n var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n\n var getStyles = function getStyles(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\n if (!view || !view.opener) {\n view = window;\n }\n\n return view.getComputedStyle(elem);\n };\n\n var swap = function swap(elem, options, callback) {\n var ret,\n name,\n old = {}; // Remember the old values, and insert the new ones\n\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n\n ret = callback.call(elem); // Revert the old values\n\n for (name in options) {\n elem.style[name] = old[name];\n }\n\n return ret;\n };\n\n var rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n\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%\"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; // 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\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; // 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\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container); // 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\n div = null;\n }\n\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\"); // Finish early in limited (non-browser) environments\n\n if (!div.style) {\n return;\n } // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (#8908)\n\n\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 boxSizingReliable() {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function pixelBoxStyles() {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function pixelPosition() {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function reliableMarginLeft() {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function scrollboxSize() {\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 reliableTrDimensions() {\n var table, tr, trChild, trStyle;\n\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\"; // Support: Chrome 86+\n // Height set through cssText does not get applied.\n // Computed height then comes back as 0.\n\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\"; // 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\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\n return reliableTrDimensionsVal;\n }\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); // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, #12537)\n // .css('--customProperty) (#3144)\n\n if (computed) {\n ret = computed.getPropertyValue(name) || computed[name];\n\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\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\n\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; // Put in the new values to get a computed value out\n\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width; // Revert the changed values\n\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n\n return ret !== undefined ? // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\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 get() {\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 } // Hook needed; redefine it so that the support test is not executed again.\n\n\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {}; // Return a vendor-prefixed property or undefined\n\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n\n while (i--) {\n name = cssPrefixes[i] + capName;\n\n if (name in emptyStyle) {\n return name;\n }\n }\n } // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n\n\n function finalPropName(name) {\n var _final = jQuery.cssProps[name] || vendorProps[name];\n\n if (_final) {\n return _final;\n }\n\n if (name in emptyStyle) {\n return name;\n }\n\n return vendorProps[name] = vendorPropName(name) || name;\n }\n\n var // 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\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 ? // 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\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0; // Adjustment may not be necessary\n\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\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 } // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\n\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles); // For \"border\" or \"margin\", add border\n\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles); // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n } // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n } // For \"content\" or \"padding\", subtract border\n\n\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n } // Account for positive content-box scroll gutter when requested by providing computedVal\n\n\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 // 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\n return delta;\n }\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); // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n\n val = \"auto\";\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\n\n if ((!support.boxSizingReliable() && isBorderBox || // 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\") || // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" || // 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\") && // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\"; // 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\n valueIsBorderBox = offsetProp in elem;\n\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n } // Normalize \"\" and auto\n\n\n val = parseFloat(val) || 0; // Adjust for the element's box model\n\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles, // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\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 get(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 style(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 } // Make sure that we're working with the right name\n\n\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style; // 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\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Gets hook for the prefixed version, then unprefixed version\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // Check if we're setting a value\n\n if (value !== undefined) {\n type = _typeof(value); // Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret); // Fixes bug #9237\n\n type = \"number\";\n } // Make sure that null and NaN values aren't set (#7116)\n\n\n if (value == null || value !== value) {\n return;\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\n\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n } // background-* props affect original clone's values\n\n\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n } // If a hook was provided, use that value, otherwise just set the specified value\n\n\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 } // Otherwise just get the value from the style object\n\n\n return style[name];\n }\n },\n css: function css(elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name); // 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\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Try prefixed name followed by the unprefixed name\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // If a hook was provided get the computed value from there\n\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n } // Otherwise, if a way to get the computed value exists, use that\n\n\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n } // Convert \"normal\" to computed value\n\n\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n } // Make numeric if forced or a qualifier was provided and val looks numeric\n\n\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function get(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\")) && ( // 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 set(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; // 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\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 } // Convert to pixels if value adjustment is needed\n\n\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\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 }); // These hooks are used by animate to expand properties\n\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function expand(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\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n\n return expanded;\n }\n };\n\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function css(name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n\n return map;\n }\n\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function init(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 cur() {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function run(percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n\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\n this.now = (this.end - this.start) * eased + this.start;\n\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function get(tween) {\n var result; // 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\n if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n return tween.elem[tween.prop];\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\n\n result = jQuery.css(tween.elem, tween.prop, \"\"); // Empty strings, null, undefined and \"auto\" are converted to 0.\n\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function set(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 }; // Support: IE <=9 only\n // Panic based approach to setting things on disconnected nodes\n\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function set(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 linear(p) {\n return p;\n },\n swing: function swing(p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n _default: \"swing\"\n };\n jQuery.fx = Tween.prototype.init; // Back compat <1.8 extension point\n\n jQuery.fx.step = {};\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n\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\n jQuery.fx.tick();\n }\n } // Animations created synchronously will run synchronously\n\n\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n } // Generate parameters to create a standard animation\n\n\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\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\n includeWidth = includeWidth ? 1 : 0;\n\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n\n return attrs;\n }\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\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\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\"); // Queue-skipping animations hijack the fx hooks\n\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\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\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n } // Detect show/hide animations\n\n\n for (prop in props) {\n value = props[prop];\n\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n\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; // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n } // Bail out if this is a no-op like .hide().hide()\n\n\n propTween = !jQuery.isEmptyObject(props);\n\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n } // Restrict \"overflow\" and \"display\" styles during box animations\n\n\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]; // Identify a display type, preferring old show/hide data over the CSS cascade\n\n restoreDisplay = dataShow && dataShow.display;\n\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n\n display = jQuery.css(elem, \"display\");\n\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 } // Animate inline elements as inline-block\n\n\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\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n\n style.display = \"inline-block\";\n }\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 } // Implement show/hide animations\n\n\n propTween = false;\n\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 } // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\n\n if (toggle) {\n dataShow.hidden = !hidden;\n } // Show elements before animating them\n\n\n if (hidden) {\n showHide([elem], true);\n }\n /* eslint-disable no-loop-func */\n\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n\n dataPriv.remove(elem, \"fxshow\");\n\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n } // Per-property setup\n\n\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass\n\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n\n hooks = jQuery.cssHooks[name];\n\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name]; // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n\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\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 tick() {\n if (stopped) {\n return false;\n }\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\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n\n deferred.notifyWith(elem, [animation, percent, remaining]); // If there's more to do, yield\n\n if (percent < 1 && length) {\n return remaining;\n } // If this was an empty animation, synthesize a final progress notification\n\n\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n } // Resolve the animation and report its conclusion\n\n\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 createTween(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 stop(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\n if (stopped) {\n return this;\n }\n\n stopped = true;\n\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n } // Resolve when we played the last frame; otherwise, reject\n\n\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\n return this;\n }\n }),\n props = animation.props;\n\n propFilter(props, animation.opts.specialEasing);\n\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n\n return result;\n }\n }\n\n jQuery.map(props, createTween, animation);\n\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n } // Attach callbacks from options\n\n\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\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 tweener(props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n\n var prop,\n index = 0,\n length = props.length;\n\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 prefilter(callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\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 }; // Go to the end state if fx are off\n\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 } // Normalize opt.queue - true/undefined/null -> \"fx\"\n\n\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n } // Queueing\n\n\n opt.old = opt.complete;\n\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n\n return opt;\n };\n\n jQuery.fn.extend({\n fadeTo: function fadeTo(speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show() // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function animate(prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function doAnimation() {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall); // Empty animations, or finishing resolves immediately\n\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function stop(type, clearQueue, gotoEnd) {\n var stopQueue = function stopQueue(hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\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\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\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 } // 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\n\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function finish(type) {\n if (type !== false) {\n type = type || \"fx\";\n }\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; // Enable finishing flag on private data\n\n data.finish = true; // Empty the queue first\n\n jQuery.queue(this, type, []);\n\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n } // Look for any active animations, and finish them\n\n\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 } // Look for any animations in the old queue and finish them\n\n\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n } // Turn off finishing flag\n\n\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n\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 }); // Generate shortcuts for custom animations\n\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\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n\n for (; i < timers.length; i++) {\n timer = timers[i]; // Run the timer and safely remove it when done (allowing for external removal)\n\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n\n if (!timers.length) {\n jQuery.fx.stop();\n }\n\n fxNow = undefined;\n };\n\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n\n jQuery.fx.interval = 13;\n\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n\n inProgress = true;\n schedule();\n };\n\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\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\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\n hooks.stop = function () {\n window.clearTimeout(timeout);\n };\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\"; // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n\n support.checkOn = input.value !== \"\"; // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n\n support.optSelected = opt.selected; // Support: IE <=11 only\n // An input loses its value after becoming a radio\n\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n\n var boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function attr(name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function removeAttr(name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function attr(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set attributes on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n } // Fallback to prop when attributes are not supported\n\n\n if (typeof elem.getAttribute === \"undefined\") {\n return jQuery.prop(elem, name, value);\n } // Attribute hooks are determined by the lowercase version\n // Grab necessary hook if one is defined\n\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n }\n\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n return;\n }\n\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n elem.setAttribute(name, value + \"\");\n return value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n ret = jQuery.find.attr(elem, name); // Non-existent attributes return null, we normalize to undefined\n\n return ret == null ? undefined : ret;\n },\n attrHooks: {\n type: {\n set: function set(elem, value) {\n if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n\n if (val) {\n elem.value = val;\n }\n\n return value;\n }\n }\n }\n },\n removeAttr: function removeAttr(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\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n elem.removeAttribute(name);\n }\n }\n }\n }); // Hooks for boolean attributes\n\n boolHook = {\n set: function set(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\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\n attrHandle[name] = function (elem, name, isXML) {\n var ret,\n handle,\n lowercaseName = name.toLowerCase();\n\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\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 prop(name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function removeProp(name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function prop(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\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\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n return elem[name] = value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function get(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\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\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\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function get(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n\n return null;\n },\n set: function set(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent) {\n parent.selectedIndex;\n\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\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 }); // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n\n function getClass(elem) {\n return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n }\n\n function classesToArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n if (typeof value === \"string\") {\n return value.match(rnothtmlwhite) || [];\n }\n\n return [];\n }\n\n jQuery.fn.extend({\n addClass: function addClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem);\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n if (cur.indexOf(\" \" + clazz + \" \") < 0) {\n cur += clazz + \" \";\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n removeClass: function removeClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, getClass(this)));\n });\n }\n\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem); // This expression is here for better compressibility (see addClass)\n\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n // Remove *all* instances\n while (cur.indexOf(\" \" + clazz + \" \") > -1) {\n cur = cur.replace(\" \" + clazz + \" \", \" \");\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n toggleClass: function toggleClass(value, stateVal) {\n var type = _typeof(value),\n isValidValue = type === \"string\" || Array.isArray(value);\n\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\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\n return this.each(function () {\n var className, i, self, classNames;\n\n if (isValidValue) {\n // Toggle individual class names\n i = 0;\n self = jQuery(this);\n classNames = classesToArray(value);\n\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 } // Toggle whole class name\n\n } else if (value === undefined || type === \"boolean\") {\n className = getClass(this);\n\n if (className) {\n // Store className if set\n dataPriv.set(this, \"__className__\", className);\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\n\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n }\n }\n });\n },\n hasClass: function hasClass(selector) {\n var className,\n elem,\n i = 0;\n className = \" \" + selector + \" \";\n\n while (elem = this[i++]) {\n if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n return true;\n }\n }\n\n return false;\n }\n });\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function val(value) {\n var hooks,\n ret,\n valueIsFunction,\n elem = this[0];\n\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n\n ret = elem.value; // Handle most common string cases\n\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n } // Handle cases where value is null/undef or number\n\n\n return ret == null ? \"\" : ret;\n }\n\n return;\n }\n\n valueIsFunction = isFunction(value);\n return this.each(function (i) {\n var val;\n\n if (this.nodeType !== 1) {\n return;\n }\n\n if (valueIsFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n } // Treat null/undefined as \"\"; convert numbers to string\n\n\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\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()]; // If set returns undefined, fall back to normal setting\n\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 get(elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val : // 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 get(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\n if (index < 0) {\n i = max;\n } else {\n i = one ? index : 0;\n } // Loop through all the selected options\n\n\n for (; i < max; i++) {\n option = options[i]; // Support: IE <=9 only\n // IE8-9 doesn't update selected after form reset (#2551)\n\n if ((option.selected || i === index) && // 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(); // We don't need an array for one selects\n\n if (one) {\n return value;\n } // Multi-Selects return an array\n\n\n values.push(value);\n }\n }\n\n return values;\n },\n set: function set(elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n\n while (i--) {\n option = options[i];\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 /* eslint-enable no-cond-assign */\n\n } // Force browsers to behave consistently when non-matching value is set\n\n\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n\n return values;\n }\n }\n }\n }); // Radios and checkboxes getter/setter\n\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function set(elem, value) {\n if (Array.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n }\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 }); // Return jQuery for attributes-only inclusion\n\n support.focusin = \"onfocusin\" in window;\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function stopPropagationCallback(e) {\n e.stopPropagation();\n };\n\n jQuery.extend(jQuery.event, {\n trigger: function trigger(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; // Don't do events on text and comment nodes\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\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\n ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n event = event[jQuery.expando] ? event : new jQuery.Event(type, _typeof(event) === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\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\n\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n } // Fire handlers on the event path\n\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n } // Native handler\n\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type; // If nobody prevented the default action, do it now\n\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\n if (tmp) {\n elem[ontype] = null;\n } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n jQuery.event.triggered = type;\n\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n\n elem[type]();\n\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\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 simulate(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 trigger(type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function triggerHandler(type, data) {\n var elem = this[0];\n\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\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\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 handler(event) {\n jQuery.event.simulate(fix, event.target, jQuery.event.fix(event));\n };\n\n jQuery.event.special[fix] = {\n setup: function setup() {\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\n if (!attaches) {\n doc.addEventListener(orig, handler, true);\n }\n\n dataPriv.access(doc, fix, (attaches || 0) + 1);\n },\n teardown: function teardown() {\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix) - 1;\n\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\n var location = window.location;\n var nonce = {\n guid: Date.now()\n };\n var rquery = /\\?/; // Cross-browser xml parsing\n\n jQuery.parseXML = function (data) {\n var xml, parserErrorElem;\n\n if (!data || typeof data !== \"string\") {\n return null;\n } // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n\n\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {}\n\n parserErrorElem = xml && xml.getElementsByTagName(\"parsererror\")[0];\n\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\n return xml;\n };\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\n function buildParams(prefix, obj, traditional, add) {\n var name;\n\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 } // Serialize an array of form elements or a set of\n // key/values into a query string\n\n\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function add(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\n if (a == null) {\n return \"\";\n } // If an array was passed in, assume that it is an array of form elements.\n\n\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 } // Return the resulting serialization\n\n\n return s.join(\"&\");\n };\n\n jQuery.fn.extend({\n serialize: function serialize() {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function serializeArray() {\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; // Use .is( \":disabled\" ) so that fieldset[disabled] works\n\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\n if (val == null) {\n return null;\n }\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\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\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\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; // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n\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\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n\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); // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n } // Base inspection function for prefilters and transports\n\n\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n\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\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\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n } // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes #9887\n\n\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n\n return target;\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\n\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process\n\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n } // Check if we're dealing with a known content-type\n\n\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 } // Check to see if we have a response for the expected dataType\n\n\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\n if (!firstDataType) {\n firstDataType = type;\n }\n } // Or just use first one\n\n\n finalDataType = finalDataType || firstDataType;\n } // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n\n\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n\n return responses[finalDataType];\n }\n }\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n\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(); // Create converters map with lowercased keys\n\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n\n current = dataTypes.shift(); // Convert to each sequential dataType\n\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n } // Apply the dataFilter if provided\n\n\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n\n prev = current;\n current = dataTypes.shift();\n\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev; // 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]; // If none found, seek a pair\n\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2]; // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n\n break;\n }\n }\n }\n } // Apply converter (if not an equivalence)\n\n\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\n return {\n state: \"success\",\n data: response\n };\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 /*\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 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 ajaxSetup(target, settings) {\n return settings ? // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function ajax(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 } // Force options to be an object\n\n\n options = options || {};\n\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 getResponseHeader(key) {\n var match;\n\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function getAllResponseHeaders() {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function setRequestHeader(name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function overrideMimeType(type) {\n if (completed == null) {\n s.mimeType = type;\n }\n\n return this;\n },\n // Status-dependent callbacks\n statusCode: function statusCode(map) {\n var code;\n\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\n return this;\n },\n // Cancel the request\n abort: function abort(statusText) {\n var finalText = statusText || strAbort;\n\n if (transport) {\n transport.abort(finalText);\n }\n\n done(0, finalText);\n return this;\n }\n }; // Attach deferreds\n\n\n deferred.promise(jqXHR); // 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\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\"); // Alias method option to type as per ticket #12004\n\n s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list\n\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"]; // A cross-domain request is in order when the origin doesn't match the current origin.\n\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\"); // 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\n try {\n urlAnchor.href = s.url; // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n\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 } // Convert data if not already a string\n\n\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n } // Apply prefilters\n\n\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); // If request was aborted inside a prefilter, stop there\n\n if (completed) {\n return jqXHR;\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\n\n fireGlobals = jQuery.event && s.global; // Watch for a new set of requests\n\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n } // Uppercase the type\n\n\n s.type = s.type.toUpperCase(); // Determine if request has content\n\n s.hasContent = !rnoContent.test(s.type); // 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\n cacheURL = s.url.replace(rhash, \"\"); // More options handling for requests with no content\n\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length); // If data is available and should be processed, append data to url\n\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data; // #9682: remove data so that it's not used in an eventual retry\n\n delete s.data;\n } // Add or update anti-cache param if needed\n\n\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n } // Put hash and anti-cache on the URL that will be requested (gh-1732)\n\n\n s.url = cacheURL + uncached; // 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 } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\n\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n } // Set the correct header, if data is being sent\n\n\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n } // Set the Accepts header for the server, depending on the dataType\n\n\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[\"*\"]); // Check for headers option\n\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n } // Allow custom headers/mimetypes and early abort\n\n\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 } // Aborting is no longer a cancellation\n\n\n strAbort = \"abort\"; // Install callbacks on deferreds\n\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error); // Get transport\n\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); // If no transport, we auto-abort\n\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1; // Send global event\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n } // If request was aborted inside ajaxSend, stop there\n\n\n if (completed) {\n return jqXHR;\n } // Timeout\n\n\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\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 } // Propagate others as results\n\n\n done(-1, e);\n }\n } // Callback for when everything is done\n\n\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText; // Ignore repeat invocations\n\n if (completed) {\n return;\n }\n\n completed = true; // Clear timeout if it exists\n\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n } // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n\n\n transport = undefined; // Cache response headers\n\n responseHeadersString = headers || \"\"; // Set readyState\n\n jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful\n\n isSuccess = status >= 200 && status < 300 || status === 304; // Get response data\n\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n } // Use a noop converter for missing script but not if jsonp\n\n\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1 && jQuery.inArray(\"json\", s.dataTypes) < 0) {\n s.converters[\"text script\"] = function () {};\n } // Convert no matter what (that way responseXXX fields are always set)\n\n\n response = ajaxConvert(s, response, jqXHR, isSuccess); // If successful, handle type chaining\n\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\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n\n modified = jqXHR.getResponseHeader(\"etag\");\n\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n } // if no content\n\n\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\"; // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\"; // 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\n if (status || !statusText) {\n statusText = \"error\";\n\n if (status < 0) {\n status = 0;\n }\n }\n } // Set data for the fake xhr object\n\n\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\"; // Success/Error\n\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n } // Status-dependent callbacks\n\n\n jqXHR.statusCode(_statusCode);\n _statusCode = undefined;\n\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n } // Complete\n\n\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]); // Handle the global AJAX counter\n\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n\n return jqXHR;\n },\n getJSON: function getJSON(url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function getScript(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 } // The url can be an options object (which then must have .url)\n\n\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\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\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 textScript() {}\n },\n dataFilter: function dataFilter(response) {\n jQuery.globalEval(response, options, doc);\n }\n });\n };\n\n jQuery.fn.extend({\n wrapAll: function wrapAll(html) {\n var wrap;\n\n if (this[0]) {\n if (isFunction(html)) {\n html = html.call(this[0]);\n } // The elements to wrap the target around\n\n\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n\n wrap.map(function () {\n var elem = this;\n\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n\n return elem;\n }).append(this);\n }\n\n return this;\n },\n wrapInner: function wrapInner(html) {\n if (isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function wrap(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 unwrap(selector) {\n this.parent(selector).not(\"body\").each(function () {\n jQuery(this).replaceWith(this.childNodes);\n });\n return this;\n }\n });\n\n jQuery.expr.pseudos.hidden = function (elem) {\n return !jQuery.expr.pseudos.visible(elem);\n };\n\n jQuery.expr.pseudos.visible = function (elem) {\n return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n };\n\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {}\n };\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; // Cross domain only allowed if supported through XMLHttpRequest\n\n\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function send(headers, complete) {\n var i,\n xhr = options.xhr();\n xhr.open(options.type, options.url, options.async, options.username, options.password); // Apply custom fields if provided\n\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n } // Override mime type if needed\n\n\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\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\n\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n } // Set headers\n\n\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n } // Callback\n\n\n _callback = function callback(type) {\n return function () {\n if (_callback) {\n _callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n\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( // 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, // 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 }; // Listen to events\n\n\n xhr.onload = _callback();\n errorCallback = xhr.onerror = xhr.ontimeout = _callback(\"error\"); // Support: IE 9 only\n // Use onreadystatechange to replace onabort\n // to handle uncaught aborts\n\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 } // Create the abort callback\n\n\n _callback = _callback(\"abort\");\n\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 abort() {\n if (_callback) {\n _callback();\n }\n }\n };\n }\n }); // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n }); // Install script dataType\n\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 textScript(text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n }); // Handle cache's special case and crossDomain\n\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n }); // Bind script tag hack transport\n\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, _callback2;\n\n return {\n send: function send(_, complete) {\n script = jQuery(\"\\n')\ndocument.write('')\n\n$(document).on('turbolinks:load cocoon:after-insert', function () {\n $(\"input[type='date']\").flatpickr({ dateFormat: \"Y-m-d\" , clickOpens: \"true\", allowInput: \"true\"});\n $(\"input[type='datetime'], input[type='datetime-local']\").flatpickr({ dateFormat: \"Y-m-d H:i\", enableTime: true , clickOpens: \"true\", allowInput: \"true\"});\n})\n","document.addEventListener(\"turbolinks:load\", function() {\n _.each($('input[data-mask]'), function(elem) {\n $(elem).mask(elem.dataset['mask'])\n });\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar getFlags = require('../internals/regexp-flags');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n})));\n\n// `RegExp` constructor\n// https://tc39.github.io/ecma262/#sec-regexp-constructor\nif (FORCED) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n return !thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined ? pattern\n : inheritIfRequired(CORRECT_NEW\n ? new NativeRegExp(patternIsRegExp && !flagsAreUndefined ? pattern.source : pattern, flags)\n : NativeRegExp((patternIsRegExp = pattern instanceof RegExpWrapper)\n ? pattern.source\n : pattern, patternIsRegExp && flagsAreUndefined ? getFlags.call(pattern) : flags)\n , thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n };\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n var keys = getOwnPropertyNames(NativeRegExp);\n var index = 0;\n while (keys.length > index) proxy(keys[index++]);\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.github.io/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (e) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (f) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative(nativeSearch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","// `SameValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","/*!\n * Select2 4.1.0-rc.0\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/select2/blob/master/LICENSE.md\n */\n;(function (factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // Node/CommonJS\n module.exports = function (root, jQuery) {\n if (jQuery === undefined) {\n // require('jQuery') returns a factory that requires window to\n // build a jQuery instance, we normalize how we use modules\n // that require this pattern but the window provided is a noop\n // if it's defined (how jquery works)\n if (typeof window !== 'undefined') {\n jQuery = require('jquery');\n }\n else {\n jQuery = require('jquery')(root);\n }\n }\n factory(jQuery);\n return jQuery;\n };\n } else {\n // Browser globals\n factory(jQuery);\n }\n} (function (jQuery) {\n // This is needed so we can catch the AMD loader configuration and use it\n // The inner file should be wrapped (by `banner.start.js`) in a function that\n // returns the AMD loader references.\n var S2 =(function () {\n // Restore the Select2 AMD loader so it can be used\n // Needed mostly in the language files, where the loader is not inserted\n if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\n var S2 = jQuery.fn.select2.amd;\n }\n var S2;(function () { if (!S2 || !S2.requirejs) {\n if (!S2) { S2 = {}; } else { require = S2; }\n /**\n * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.\n * Released under MIT license, http://github.com/requirejs/almond/LICENSE\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n /*global setTimeout: false */\n\n var requirejs, require, define;\n (function (undef) {\n var main, req, makeMap, handlers,\n defined = {},\n waiting = {},\n config = {},\n defining = {},\n hasOwn = Object.prototype.hasOwnProperty,\n aps = [].slice,\n jsSuffixRegExp = /\\.js$/;\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @returns {String} normalized name\n */\n function normalize(name, baseName) {\n var nameParts, nameSegment, mapValue, foundMap, lastIndex,\n foundI, foundStarMap, starI, i, j, part, normalizedBaseParts,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = (map && map['*']) || {};\n\n //Adjust any relative paths.\n if (name) {\n name = name.split('/');\n lastIndex = name.length - 1;\n\n // If wanting node ID compatibility, strip .js from end\n // of IDs. Have to do this here, and not in nameToUrl\n // because node allows either .js or non .js to map\n // to same file.\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n }\n\n // Starts with a '.' so need the baseName\n if (name[0].charAt(0) === '.' && baseParts) {\n //Convert baseName to array, and lop off the last part,\n //so that . matches that 'directory' and not name of the baseName's\n //module. For instance, baseName of 'one/two/three', maps to\n //'one/two/three.js', but we want the directory, 'one/two' for\n //this normalization.\n normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);\n name = normalizedBaseParts.concat(name);\n }\n\n //start trimDots\n for (i = 0; i < name.length; i++) {\n part = name[i];\n if (part === '.') {\n name.splice(i, 1);\n i -= 1;\n } else if (part === '..') {\n // If at the start, or previous value is still ..,\n // keep them so that when converted to a path it may\n // still work when converted to a path, even though\n // as an ID it is less than ideal. In larger point\n // releases, may be better to just kick out an error.\n if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {\n continue;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n }\n //end trimDots\n\n name = name.join('/');\n }\n\n //Apply map config if available.\n if ((baseParts || starMap) && map) {\n nameParts = name.split('/');\n\n for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join(\"/\");\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = map[baseParts.slice(0, j).join('/')];\n\n //baseName segment has config, find if it has one for\n //this name.\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break;\n }\n }\n }\n }\n\n if (foundMap) {\n break;\n }\n\n //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n if (!foundStarMap && starMap && starMap[nameSegment]) {\n foundStarMap = starMap[nameSegment];\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n return name;\n }\n\n function makeRequire(relName, forceSync) {\n return function () {\n //A version of a require function that passes a moduleName\n //value for items that may need to\n //look up paths relative to the moduleName\n var args = aps.call(arguments, 0);\n\n //If first arg is not require('string'), and there is only\n //one arg, it is the array form without a callback. Insert\n //a null so that the following concat is correct.\n if (typeof args[0] !== 'string' && args.length === 1) {\n args.push(null);\n }\n return req.apply(undef, args.concat([relName, forceSync]));\n };\n }\n\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(depName) {\n return function (value) {\n defined[depName] = value;\n };\n }\n\n function callDep(name) {\n if (hasProp(waiting, name)) {\n var args = waiting[name];\n delete waiting[name];\n defining[name] = true;\n main.apply(undef, args);\n }\n\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\n throw new Error('No ' + name);\n }\n return defined[name];\n }\n\n //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n return [prefix, name];\n }\n\n //Creates a parts array for a relName where first part is plugin ID,\n //second part is resource ID. Assumes relName has already been normalized.\n function makeRelParts(relName) {\n return relName ? splitPrefix(relName) : [];\n }\n\n /**\n * Makes a name map, normalizing the name, and using a plugin\n * for normalization if necessary. Grabs a ref to plugin\n * too, as an optimization.\n */\n makeMap = function (name, relParts) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0],\n relResourceName = relParts[1];\n\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relResourceName);\n plugin = callDep(prefix);\n }\n\n //Normalize according\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relResourceName));\n } else {\n name = normalize(name, relResourceName);\n }\n } else {\n name = normalize(name, relResourceName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n if (prefix) {\n plugin = callDep(prefix);\n }\n }\n\n //Using ridiculous property names for space reasons\n return {\n f: prefix ? prefix + '!' + name : name, //fullName\n n: name,\n pr: prefix,\n p: plugin\n };\n };\n\n function makeConfig(name) {\n return function () {\n return (config && config.config && config.config[name]) || {};\n };\n }\n\n handlers = {\n require: function (name) {\n return makeRequire(name);\n },\n exports: function (name) {\n var e = defined[name];\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return (defined[name] = {});\n }\n },\n module: function (name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function (name, deps, callback, relName) {\n var cjsModule, depName, ret, map, i, relParts,\n args = [],\n callbackType = typeof callback,\n usingExports;\n\n //Use name if no relName\n relName = relName || name;\n relParts = makeRelParts(relName);\n\n //Call the callback to define the module, if necessary.\n if (callbackType === 'undefined' || callbackType === 'function') {\n //Pull out the defined dependencies and pass the ordered\n //values to the callback.\n //Default to [require, exports, module] if no deps\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relParts);\n depName = map.f;\n\n //Fast path CommonJS standard dependencies.\n if (depName === \"require\") {\n args[i] = handlers.require(name);\n } else if (depName === \"exports\") {\n //CommonJS module spec 1.1\n args[i] = handlers.exports(name);\n usingExports = true;\n } else if (depName === \"module\") {\n //CommonJS module spec 1.1\n cjsModule = args[i] = handlers.module(name);\n } else if (hasProp(defined, depName) ||\n hasProp(waiting, depName) ||\n hasProp(defining, depName)) {\n args[i] = callDep(depName);\n } else if (map.p) {\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n args[i] = defined[depName];\n } else {\n throw new Error(name + ' missing ' + depName);\n }\n }\n\n ret = callback ? callback.apply(defined[name], args) : undefined;\n\n if (name) {\n //If setting exports via \"module\" is in play,\n //favor that over return value and exports. After that,\n //favor a non-undefined return value over exports use.\n if (cjsModule && cjsModule.exports !== undef &&\n cjsModule.exports !== defined[name]) {\n defined[name] = cjsModule.exports;\n } else if (ret !== undef || !usingExports) {\n //Use the return value from the function.\n defined[name] = ret;\n }\n }\n } else if (name) {\n //May just be an object definition for the module. Only\n //worry about defining if have a module name.\n defined[name] = callback;\n }\n };\n\n requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n if (typeof deps === \"string\") {\n if (handlers[deps]) {\n //callback in this case is really relName\n return handlers[deps](callback);\n }\n //Just return the module wanted. In this scenario, the\n //deps arg is the module name, and second arg (if passed)\n //is just the relName.\n //Normalize module name, if it contains . or ..\n return callDep(makeMap(deps, makeRelParts(callback)).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n if (config.deps) {\n req(config.deps, config.callback);\n }\n if (!callback) {\n return;\n }\n\n if (callback.splice) {\n //callback is an array, which means it is a dependency list.\n //Adjust args if there are dependencies\n deps = callback;\n callback = relName;\n relName = null;\n } else {\n deps = undef;\n }\n }\n\n //Support require(['a'])\n callback = callback || function () {};\n\n //If relName is a function, it is an errback handler,\n //so remove it.\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n }\n\n //Simulate async callback;\n if (forceSync) {\n main(undef, deps, callback, relName);\n } else {\n //Using a non-zero value because of concern for what old browsers\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n //If want a value immediately, use require('id') instead -- something\n //that works in almond on the global level, but not guaranteed and\n //unlikely to work in other AMD implementations.\n setTimeout(function () {\n main(undef, deps, callback, relName);\n }, 4);\n }\n\n return req;\n };\n\n /**\n * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n req.config = function (cfg) {\n return req(cfg);\n };\n\n /**\n * Expose module registry for debugging and tooling\n */\n requirejs._defined = defined;\n\n define = function (name, deps, callback) {\n if (typeof name !== 'string') {\n throw new Error('See almond README: incorrect module build, no module name');\n }\n\n //This module may not have dependencies\n if (!deps.splice) {\n //deps is not an array, so probably means\n //an object literal or factory function for\n //the value. Adjust args.\n callback = deps;\n deps = [];\n }\n\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n waiting[name] = [name, deps, callback];\n }\n };\n\n define.amd = {\n jQuery: true\n };\n }());\n\n S2.requirejs = requirejs;S2.require = require;S2.define = define;\n }\n }());\n S2.define(\"almond\", function(){});\n\n /* global jQuery:false, $:false */\n S2.define('jquery',[],function () {\n var _$ = jQuery || $;\n\n if (_$ == null && console && console.error) {\n console.error(\n 'Select2: An instance of jQuery or a jQuery-compatible library was not ' +\n 'found. Make sure that you are including jQuery before Select2 on your ' +\n 'web page.'\n );\n }\n\n return _$;\n });\n\n S2.define('select2/utils',[\n 'jquery'\n ], function ($) {\n var Utils = {};\n\n Utils.Extend = function (ChildClass, SuperClass) {\n var __hasProp = {}.hasOwnProperty;\n\n function BaseConstructor () {\n this.constructor = ChildClass;\n }\n\n for (var key in SuperClass) {\n if (__hasProp.call(SuperClass, key)) {\n ChildClass[key] = SuperClass[key];\n }\n }\n\n BaseConstructor.prototype = SuperClass.prototype;\n ChildClass.prototype = new BaseConstructor();\n ChildClass.__super__ = SuperClass.prototype;\n\n return ChildClass;\n };\n\n function getMethods (theClass) {\n var proto = theClass.prototype;\n\n var methods = [];\n\n for (var methodName in proto) {\n var m = proto[methodName];\n\n if (typeof m !== 'function') {\n continue;\n }\n\n if (methodName === 'constructor') {\n continue;\n }\n\n methods.push(methodName);\n }\n\n return methods;\n }\n\n Utils.Decorate = function (SuperClass, DecoratorClass) {\n var decoratedMethods = getMethods(DecoratorClass);\n var superMethods = getMethods(SuperClass);\n\n function DecoratedClass () {\n var unshift = Array.prototype.unshift;\n\n var argCount = DecoratorClass.prototype.constructor.length;\n\n var calledConstructor = SuperClass.prototype.constructor;\n\n if (argCount > 0) {\n unshift.call(arguments, SuperClass.prototype.constructor);\n\n calledConstructor = DecoratorClass.prototype.constructor;\n }\n\n calledConstructor.apply(this, arguments);\n }\n\n DecoratorClass.displayName = SuperClass.displayName;\n\n function ctr () {\n this.constructor = DecoratedClass;\n }\n\n DecoratedClass.prototype = new ctr();\n\n for (var m = 0; m < superMethods.length; m++) {\n var superMethod = superMethods[m];\n\n DecoratedClass.prototype[superMethod] =\n SuperClass.prototype[superMethod];\n }\n\n var calledMethod = function (methodName) {\n // Stub out the original method if it's not decorating an actual method\n var originalMethod = function () {};\n\n if (methodName in DecoratedClass.prototype) {\n originalMethod = DecoratedClass.prototype[methodName];\n }\n\n var decoratedMethod = DecoratorClass.prototype[methodName];\n\n return function () {\n var unshift = Array.prototype.unshift;\n\n unshift.call(arguments, originalMethod);\n\n return decoratedMethod.apply(this, arguments);\n };\n };\n\n for (var d = 0; d < decoratedMethods.length; d++) {\n var decoratedMethod = decoratedMethods[d];\n\n DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\n }\n\n return DecoratedClass;\n };\n\n var Observable = function () {\n this.listeners = {};\n };\n\n Observable.prototype.on = function (event, callback) {\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.listeners[event].push(callback);\n } else {\n this.listeners[event] = [callback];\n }\n };\n\n Observable.prototype.trigger = function (event) {\n var slice = Array.prototype.slice;\n var params = slice.call(arguments, 1);\n\n this.listeners = this.listeners || {};\n\n // Params should always come in as an array\n if (params == null) {\n params = [];\n }\n\n // If there are no arguments to the event, use a temporary object\n if (params.length === 0) {\n params.push({});\n }\n\n // Set the `_type` of the first object to the event\n params[0]._type = event;\n\n if (event in this.listeners) {\n this.invoke(this.listeners[event], slice.call(arguments, 1));\n }\n\n if ('*' in this.listeners) {\n this.invoke(this.listeners['*'], arguments);\n }\n };\n\n Observable.prototype.invoke = function (listeners, params) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n listeners[i].apply(this, params);\n }\n };\n\n Utils.Observable = Observable;\n\n Utils.generateChars = function (length) {\n var chars = '';\n\n for (var i = 0; i < length; i++) {\n var randomChar = Math.floor(Math.random() * 36);\n chars += randomChar.toString(36);\n }\n\n return chars;\n };\n\n Utils.bind = function (func, context) {\n return function () {\n func.apply(context, arguments);\n };\n };\n\n Utils._convertData = function (data) {\n for (var originalKey in data) {\n var keys = originalKey.split('-');\n\n var dataLevel = data;\n\n if (keys.length === 1) {\n continue;\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k];\n\n // Lowercase the first letter\n // By default, dash-separated becomes camelCase\n key = key.substring(0, 1).toLowerCase() + key.substring(1);\n\n if (!(key in dataLevel)) {\n dataLevel[key] = {};\n }\n\n if (k == keys.length - 1) {\n dataLevel[key] = data[originalKey];\n }\n\n dataLevel = dataLevel[key];\n }\n\n delete data[originalKey];\n }\n\n return data;\n };\n\n Utils.hasScroll = function (index, el) {\n // Adapted from the function created by @ShadowScripter\n // and adapted by @BillBarry on the Stack Exchange Code Review website.\n // The original code can be found at\n // http://codereview.stackexchange.com/q/13338\n // and was designed to be used with the Sizzle selector engine.\n\n var $el = $(el);\n var overflowX = el.style.overflowX;\n var overflowY = el.style.overflowY;\n\n //Check both x and y declarations\n if (overflowX === overflowY &&\n (overflowY === 'hidden' || overflowY === 'visible')) {\n return false;\n }\n\n if (overflowX === 'scroll' || overflowY === 'scroll') {\n return true;\n }\n\n return ($el.innerHeight() < el.scrollHeight ||\n $el.innerWidth() < el.scrollWidth);\n };\n\n Utils.escapeMarkup = function (markup) {\n var replaceMap = {\n '\\\\': '\',\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': ''',\n '/': '/'\n };\n\n // Do not try to escape the markup if it's not a string\n if (typeof markup !== 'string') {\n return markup;\n }\n\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n return replaceMap[match];\n });\n };\n\n // Cache objects in Utils.__cache instead of $.data (see #4346)\n Utils.__cache = {};\n\n var id = 0;\n Utils.GetUniqueElementId = function (element) {\n // Get a unique element Id. If element has no id,\n // creates a new unique number, stores it in the id\n // attribute and returns the new id with a prefix.\n // If an id already exists, it simply returns it with a prefix.\n\n var select2Id = element.getAttribute('data-select2-id');\n\n if (select2Id != null) {\n return select2Id;\n }\n\n // If element has id, use it.\n if (element.id) {\n select2Id = 'select2-data-' + element.id;\n } else {\n select2Id = 'select2-data-' + (++id).toString() +\n '-' + Utils.generateChars(4);\n }\n\n element.setAttribute('data-select2-id', select2Id);\n\n return select2Id;\n };\n\n Utils.StoreData = function (element, name, value) {\n // Stores an item in the cache for a specified element.\n // name is the cache key.\n var id = Utils.GetUniqueElementId(element);\n if (!Utils.__cache[id]) {\n Utils.__cache[id] = {};\n }\n\n Utils.__cache[id][name] = value;\n };\n\n Utils.GetData = function (element, name) {\n // Retrieves a value from the cache by its key (name)\n // name is optional. If no name specified, return\n // all cache items for the specified element.\n // and for a specified element.\n var id = Utils.GetUniqueElementId(element);\n if (name) {\n if (Utils.__cache[id]) {\n if (Utils.__cache[id][name] != null) {\n return Utils.__cache[id][name];\n }\n return $(element).data(name); // Fallback to HTML5 data attribs.\n }\n return $(element).data(name); // Fallback to HTML5 data attribs.\n } else {\n return Utils.__cache[id];\n }\n };\n\n Utils.RemoveData = function (element) {\n // Removes all cached items for a specified element.\n var id = Utils.GetUniqueElementId(element);\n if (Utils.__cache[id] != null) {\n delete Utils.__cache[id];\n }\n\n element.removeAttribute('data-select2-id');\n };\n\n Utils.copyNonInternalCssClasses = function (dest, src) {\n var classes;\n\n var destinationClasses = dest.getAttribute('class').trim().split(/\\s+/);\n\n destinationClasses = destinationClasses.filter(function (clazz) {\n // Save all Select2 classes\n return clazz.indexOf('select2-') === 0;\n });\n\n var sourceClasses = src.getAttribute('class').trim().split(/\\s+/);\n\n sourceClasses = sourceClasses.filter(function (clazz) {\n // Only copy non-Select2 classes\n return clazz.indexOf('select2-') !== 0;\n });\n\n var replacements = destinationClasses.concat(sourceClasses);\n\n dest.setAttribute('class', replacements.join(' '));\n };\n\n return Utils;\n });\n\n S2.define('select2/results',[\n 'jquery',\n './utils'\n ], function ($, Utils) {\n function Results ($element, options, dataAdapter) {\n this.$element = $element;\n this.data = dataAdapter;\n this.options = options;\n\n Results.__super__.constructor.call(this);\n }\n\n Utils.Extend(Results, Utils.Observable);\n\n Results.prototype.render = function () {\n var $results = $(\n '
    '\n );\n\n if (this.options.get('multiple')) {\n $results.attr('aria-multiselectable', 'true');\n }\n\n this.$results = $results;\n\n return $results;\n };\n\n Results.prototype.clear = function () {\n this.$results.empty();\n };\n\n Results.prototype.displayMessage = function (params) {\n var escapeMarkup = this.options.get('escapeMarkup');\n\n this.clear();\n this.hideLoading();\n\n var $message = $(\n '
  • '\n );\n\n var message = this.options.get('translations').get(params.message);\n\n $message.append(\n escapeMarkup(\n message(params.args)\n )\n );\n\n $message[0].className += ' select2-results__message';\n\n this.$results.append($message);\n };\n\n Results.prototype.hideMessages = function () {\n this.$results.find('.select2-results__message').remove();\n };\n\n Results.prototype.append = function (data) {\n this.hideLoading();\n\n var $options = [];\n\n if (data.results == null || data.results.length === 0) {\n if (this.$results.children().length === 0) {\n this.trigger('results:message', {\n message: 'noResults'\n });\n }\n\n return;\n }\n\n data.results = this.sort(data.results);\n\n for (var d = 0; d < data.results.length; d++) {\n var item = data.results[d];\n\n var $option = this.option(item);\n\n $options.push($option);\n }\n\n this.$results.append($options);\n };\n\n Results.prototype.position = function ($results, $dropdown) {\n var $resultsContainer = $dropdown.find('.select2-results');\n $resultsContainer.append($results);\n };\n\n Results.prototype.sort = function (data) {\n var sorter = this.options.get('sorter');\n\n return sorter(data);\n };\n\n Results.prototype.highlightFirstItem = function () {\n var $options = this.$results\n .find('.select2-results__option--selectable');\n\n var $selected = $options.filter('.select2-results__option--selected');\n\n // Check if there are any selected options\n if ($selected.length > 0) {\n // If there are selected options, highlight the first\n $selected.first().trigger('mouseenter');\n } else {\n // If there are no selected options, highlight the first option\n // in the dropdown\n $options.first().trigger('mouseenter');\n }\n\n this.ensureHighlightVisible();\n };\n\n Results.prototype.setClasses = function () {\n var self = this;\n\n this.data.current(function (selected) {\n var selectedIds = selected.map(function (s) {\n return s.id.toString();\n });\n\n var $options = self.$results\n .find('.select2-results__option--selectable');\n\n $options.each(function () {\n var $option = $(this);\n\n var item = Utils.GetData(this, 'data');\n\n // id needs to be converted to a string when comparing\n var id = '' + item.id;\n\n if ((item.element != null && item.element.selected) ||\n (item.element == null && selectedIds.indexOf(id) > -1)) {\n this.classList.add('select2-results__option--selected');\n $option.attr('aria-selected', 'true');\n } else {\n this.classList.remove('select2-results__option--selected');\n $option.attr('aria-selected', 'false');\n }\n });\n\n });\n };\n\n Results.prototype.showLoading = function (params) {\n this.hideLoading();\n\n var loadingMore = this.options.get('translations').get('searching');\n\n var loading = {\n disabled: true,\n loading: true,\n text: loadingMore(params)\n };\n var $loading = this.option(loading);\n $loading.className += ' loading-results';\n\n this.$results.prepend($loading);\n };\n\n Results.prototype.hideLoading = function () {\n this.$results.find('.loading-results').remove();\n };\n\n Results.prototype.option = function (data) {\n var option = document.createElement('li');\n option.classList.add('select2-results__option');\n option.classList.add('select2-results__option--selectable');\n\n var attrs = {\n 'role': 'option'\n };\n\n var matches = window.Element.prototype.matches ||\n window.Element.prototype.msMatchesSelector ||\n window.Element.prototype.webkitMatchesSelector;\n\n if ((data.element != null && matches.call(data.element, ':disabled')) ||\n (data.element == null && data.disabled)) {\n attrs['aria-disabled'] = 'true';\n\n option.classList.remove('select2-results__option--selectable');\n option.classList.add('select2-results__option--disabled');\n }\n\n if (data.id == null) {\n option.classList.remove('select2-results__option--selectable');\n }\n\n if (data._resultId != null) {\n option.id = data._resultId;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n if (data.children) {\n attrs.role = 'group';\n attrs['aria-label'] = data.text;\n\n option.classList.remove('select2-results__option--selectable');\n option.classList.add('select2-results__option--group');\n }\n\n for (var attr in attrs) {\n var val = attrs[attr];\n\n option.setAttribute(attr, val);\n }\n\n if (data.children) {\n var $option = $(option);\n\n var label = document.createElement('strong');\n label.className = 'select2-results__group';\n\n this.template(data, label);\n\n var $children = [];\n\n for (var c = 0; c < data.children.length; c++) {\n var child = data.children[c];\n\n var $child = this.option(child);\n\n $children.push($child);\n }\n\n var $childrenContainer = $('
      ', {\n 'class': 'select2-results__options select2-results__options--nested',\n 'role': 'none'\n });\n\n $childrenContainer.append($children);\n\n $option.append(label);\n $option.append($childrenContainer);\n } else {\n this.template(data, option);\n }\n\n Utils.StoreData(option, 'data', data);\n\n return option;\n };\n\n Results.prototype.bind = function (container, $container) {\n var self = this;\n\n var id = container.id + '-results';\n\n this.$results.attr('id', id);\n\n container.on('results:all', function (params) {\n self.clear();\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n self.highlightFirstItem();\n }\n });\n\n container.on('results:append', function (params) {\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n\n container.on('query', function (params) {\n self.hideMessages();\n self.showLoading(params);\n });\n\n container.on('select', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n\n container.on('unselect', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expended=\"true\"\n self.$results.attr('aria-expanded', 'true');\n self.$results.attr('aria-hidden', 'false');\n\n self.setClasses();\n self.ensureHighlightVisible();\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expended=\"false\"\n self.$results.attr('aria-expanded', 'false');\n self.$results.attr('aria-hidden', 'true');\n self.$results.removeAttr('aria-activedescendant');\n });\n\n container.on('results:toggle', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n $highlighted.trigger('mouseup');\n });\n\n container.on('results:select', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var data = Utils.GetData($highlighted[0], 'data');\n\n if ($highlighted.hasClass('select2-results__option--selected')) {\n self.trigger('close', {});\n } else {\n self.trigger('select', {\n data: data\n });\n }\n });\n\n container.on('results:previous', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('.select2-results__option--selectable');\n\n var currentIndex = $options.index($highlighted);\n\n // If we are already at the top, don't move further\n // If no options, currentIndex will be -1\n if (currentIndex <= 0) {\n return;\n }\n\n var nextIndex = currentIndex - 1;\n\n // If none are highlighted, highlight the first\n if ($highlighted.length === 0) {\n nextIndex = 0;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top;\n var nextTop = $next.offset().top;\n var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextTop - currentOffset < 0) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:next', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('.select2-results__option--selectable');\n\n var currentIndex = $options.index($highlighted);\n\n var nextIndex = currentIndex + 1;\n\n // If we are at the last option, stay there\n if (nextIndex >= $options.length) {\n return;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top +\n self.$results.outerHeight(false);\n var nextBottom = $next.offset().top + $next.outerHeight(false);\n var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextBottom > currentOffset) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:focus', function (params) {\n params.element[0].classList.add('select2-results__option--highlighted');\n params.element[0].setAttribute('aria-selected', 'true');\n });\n\n container.on('results:message', function (params) {\n self.displayMessage(params);\n });\n\n if ($.fn.mousewheel) {\n this.$results.on('mousewheel', function (e) {\n var top = self.$results.scrollTop();\n\n var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;\n\n var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\n var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\n\n if (isAtTop) {\n self.$results.scrollTop(0);\n\n e.preventDefault();\n e.stopPropagation();\n } else if (isAtBottom) {\n self.$results.scrollTop(\n self.$results.get(0).scrollHeight - self.$results.height()\n );\n\n e.preventDefault();\n e.stopPropagation();\n }\n });\n }\n\n this.$results.on('mouseup', '.select2-results__option--selectable',\n function (evt) {\n var $this = $(this);\n\n var data = Utils.GetData(this, 'data');\n\n if ($this.hasClass('select2-results__option--selected')) {\n if (self.options.get('multiple')) {\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n } else {\n self.trigger('close', {});\n }\n\n return;\n }\n\n self.trigger('select', {\n originalEvent: evt,\n data: data\n });\n });\n\n this.$results.on('mouseenter', '.select2-results__option--selectable',\n function (evt) {\n var data = Utils.GetData(this, 'data');\n\n self.getHighlightedResults()\n .removeClass('select2-results__option--highlighted')\n .attr('aria-selected', 'false');\n\n self.trigger('results:focus', {\n data: data,\n element: $(this)\n });\n });\n };\n\n Results.prototype.getHighlightedResults = function () {\n var $highlighted = this.$results\n .find('.select2-results__option--highlighted');\n\n return $highlighted;\n };\n\n Results.prototype.destroy = function () {\n this.$results.remove();\n };\n\n Results.prototype.ensureHighlightVisible = function () {\n var $highlighted = this.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var $options = this.$results.find('.select2-results__option--selectable');\n\n var currentIndex = $options.index($highlighted);\n\n var currentOffset = this.$results.offset().top;\n var nextTop = $highlighted.offset().top;\n var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\n\n var offsetDelta = nextTop - currentOffset;\n nextOffset -= $highlighted.outerHeight(false) * 2;\n\n if (currentIndex <= 2) {\n this.$results.scrollTop(0);\n } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\n this.$results.scrollTop(nextOffset);\n }\n };\n\n Results.prototype.template = function (result, container) {\n var template = this.options.get('templateResult');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n var content = template(result, container);\n\n if (content == null) {\n container.style.display = 'none';\n } else if (typeof content === 'string') {\n container.innerHTML = escapeMarkup(content);\n } else {\n $(container).append(content);\n }\n };\n\n return Results;\n });\n\n S2.define('select2/keys',[\n\n ], function () {\n var KEYS = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n };\n\n return KEYS;\n });\n\n S2.define('select2/selection/base',[\n 'jquery',\n '../utils',\n '../keys'\n ], function ($, Utils, KEYS) {\n function BaseSelection ($element, options) {\n this.$element = $element;\n this.options = options;\n\n BaseSelection.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseSelection, Utils.Observable);\n\n BaseSelection.prototype.render = function () {\n var $selection = $(\n '' +\n ''\n );\n\n this._tabindex = 0;\n\n if (Utils.GetData(this.$element[0], 'old-tabindex') != null) {\n this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex');\n } else if (this.$element.attr('tabindex') != null) {\n this._tabindex = this.$element.attr('tabindex');\n }\n\n $selection.attr('title', this.$element.attr('title'));\n $selection.attr('tabindex', this._tabindex);\n $selection.attr('aria-disabled', 'false');\n\n this.$selection = $selection;\n\n return $selection;\n };\n\n BaseSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n\n this.container = container;\n\n this.$selection.on('focus', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('blur', function (evt) {\n self._handleBlur(evt);\n });\n\n this.$selection.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n if (evt.which === KEYS.SPACE) {\n evt.preventDefault();\n }\n });\n\n container.on('results:focus', function (params) {\n self.$selection.attr('aria-activedescendant', params.data._resultId);\n });\n\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expanded=\"true\"\n self.$selection.attr('aria-expanded', 'true');\n self.$selection.attr('aria-owns', resultsId);\n\n self._attachCloseHandler(container);\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expanded=\"false\"\n self.$selection.attr('aria-expanded', 'false');\n self.$selection.removeAttr('aria-activedescendant');\n self.$selection.removeAttr('aria-owns');\n\n self.$selection.trigger('focus');\n\n self._detachCloseHandler(container);\n });\n\n container.on('enable', function () {\n self.$selection.attr('tabindex', self._tabindex);\n self.$selection.attr('aria-disabled', 'false');\n });\n\n container.on('disable', function () {\n self.$selection.attr('tabindex', '-1');\n self.$selection.attr('aria-disabled', 'true');\n });\n };\n\n BaseSelection.prototype._handleBlur = function (evt) {\n var self = this;\n\n // This needs to be delayed as the active element is the body when the tab\n // key is pressed, possibly along with others.\n window.setTimeout(function () {\n // Don't trigger `blur` if the focus is still in the selection\n if (\n (document.activeElement == self.$selection[0]) ||\n ($.contains(self.$selection[0], document.activeElement))\n ) {\n return;\n }\n\n self.trigger('blur', evt);\n }, 1);\n };\n\n BaseSelection.prototype._attachCloseHandler = function (container) {\n\n $(document.body).on('mousedown.select2.' + container.id, function (e) {\n var $target = $(e.target);\n\n var $select = $target.closest('.select2');\n\n var $all = $('.select2.select2-container--open');\n\n $all.each(function () {\n if (this == $select[0]) {\n return;\n }\n\n var $element = Utils.GetData(this, 'element');\n\n $element.select2('close');\n });\n });\n };\n\n BaseSelection.prototype._detachCloseHandler = function (container) {\n $(document.body).off('mousedown.select2.' + container.id);\n };\n\n BaseSelection.prototype.position = function ($selection, $container) {\n var $selectionContainer = $container.find('.selection');\n $selectionContainer.append($selection);\n };\n\n BaseSelection.prototype.destroy = function () {\n this._detachCloseHandler(this.container);\n };\n\n BaseSelection.prototype.update = function (data) {\n throw new Error('The `update` method must be defined in child classes.');\n };\n\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n BaseSelection.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n BaseSelection.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n return BaseSelection;\n });\n\n S2.define('select2/selection/single',[\n 'jquery',\n './base',\n '../utils',\n '../keys'\n ], function ($, BaseSelection, Utils, KEYS) {\n function SingleSelection () {\n SingleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(SingleSelection, BaseSelection);\n\n SingleSelection.prototype.render = function () {\n var $selection = SingleSelection.__super__.render.call(this);\n\n $selection[0].classList.add('select2-selection--single');\n\n $selection.html(\n '' +\n '' +\n '' +\n ''\n );\n\n return $selection;\n };\n\n SingleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n SingleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n\n this.$selection.find('.select2-selection__rendered')\n .attr('id', id)\n .attr('role', 'textbox')\n .attr('aria-readonly', 'true');\n this.$selection.attr('aria-labelledby', id);\n this.$selection.attr('aria-controls', id);\n\n this.$selection.on('mousedown', function (evt) {\n // Only respond to left clicks\n if (evt.which !== 1) {\n return;\n }\n\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on('focus', function (evt) {\n // User focuses on the container\n });\n\n this.$selection.on('blur', function (evt) {\n // User exits the container\n });\n\n container.on('focus', function (evt) {\n if (!container.isOpen()) {\n self.$selection.trigger('focus');\n }\n });\n };\n\n SingleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered.removeAttr('title'); // clear tooltip on empty\n };\n\n SingleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data, container));\n };\n\n SingleSelection.prototype.selectionContainer = function () {\n return $('');\n };\n\n SingleSelection.prototype.update = function (data) {\n if (data.length === 0) {\n this.clear();\n return;\n }\n\n var selection = data[0];\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n var formatted = this.display(selection, $rendered);\n\n $rendered.empty().append(formatted);\n\n var title = selection.title || selection.text;\n\n if (title) {\n $rendered.attr('title', title);\n } else {\n $rendered.removeAttr('title');\n }\n };\n\n return SingleSelection;\n });\n\n S2.define('select2/selection/multiple',[\n 'jquery',\n './base',\n '../utils'\n ], function ($, BaseSelection, Utils) {\n function MultipleSelection ($element, options) {\n MultipleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(MultipleSelection, BaseSelection);\n\n MultipleSelection.prototype.render = function () {\n var $selection = MultipleSelection.__super__.render.call(this);\n\n $selection[0].classList.add('select2-selection--multiple');\n\n $selection.html(\n '
        '\n );\n\n return $selection;\n };\n\n MultipleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n MultipleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n this.$selection.find('.select2-selection__rendered').attr('id', id);\n\n this.$selection.on('click', function (evt) {\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on(\n 'click',\n '.select2-selection__choice__remove',\n function (evt) {\n // Ignore the event if it is disabled\n if (self.isDisabled()) {\n return;\n }\n\n var $remove = $(this);\n var $selection = $remove.parent();\n\n var data = Utils.GetData($selection[0], 'data');\n\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n }\n );\n\n this.$selection.on(\n 'keydown',\n '.select2-selection__choice__remove',\n function (evt) {\n // Ignore the event if it is disabled\n if (self.isDisabled()) {\n return;\n }\n\n evt.stopPropagation();\n }\n );\n };\n\n MultipleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered.removeAttr('title');\n };\n\n MultipleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data, container));\n };\n\n MultipleSelection.prototype.selectionContainer = function () {\n var $container = $(\n '
      • ' +\n '' +\n '' +\n '
      • '\n );\n\n return $container;\n };\n\n MultipleSelection.prototype.update = function (data) {\n this.clear();\n\n if (data.length === 0) {\n return;\n }\n\n var $selections = [];\n\n var selectionIdPrefix = this.$selection.find('.select2-selection__rendered')\n .attr('id') + '-choice-';\n\n for (var d = 0; d < data.length; d++) {\n var selection = data[d];\n\n var $selection = this.selectionContainer();\n var formatted = this.display(selection, $selection);\n\n var selectionId = selectionIdPrefix + Utils.generateChars(4) + '-';\n\n if (selection.id) {\n selectionId += selection.id;\n } else {\n selectionId += Utils.generateChars(4);\n }\n\n $selection.find('.select2-selection__choice__display')\n .append(formatted)\n .attr('id', selectionId);\n\n var title = selection.title || selection.text;\n\n if (title) {\n $selection.attr('title', title);\n }\n\n var removeItem = this.options.get('translations').get('removeItem');\n\n var $remove = $selection.find('.select2-selection__choice__remove');\n\n $remove.attr('title', removeItem());\n $remove.attr('aria-label', removeItem());\n $remove.attr('aria-describedby', selectionId);\n\n Utils.StoreData($selection[0], 'data', selection);\n\n $selections.push($selection);\n }\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n\n $rendered.append($selections);\n };\n\n return MultipleSelection;\n });\n\n S2.define('select2/selection/placeholder',[\n\n ], function () {\n function Placeholder (decorated, $element, options) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options);\n }\n\n Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\n var $placeholder = this.selectionContainer();\n\n $placeholder.html(this.display(placeholder));\n $placeholder[0].classList.add('select2-selection__placeholder');\n $placeholder[0].classList.remove('select2-selection__choice');\n\n var placeholderTitle = placeholder.title ||\n placeholder.text ||\n $placeholder.text();\n\n this.$selection.find('.select2-selection__rendered').attr(\n 'title',\n placeholderTitle\n );\n\n return $placeholder;\n };\n\n Placeholder.prototype.update = function (decorated, data) {\n var singlePlaceholder = (\n data.length == 1 && data[0].id != this.placeholder.id\n );\n var multipleSelections = data.length > 1;\n\n if (multipleSelections || singlePlaceholder) {\n return decorated.call(this, data);\n }\n\n this.clear();\n\n var $placeholder = this.createPlaceholder(this.placeholder);\n\n this.$selection.find('.select2-selection__rendered').append($placeholder);\n };\n\n return Placeholder;\n });\n\n S2.define('select2/selection/allowClear',[\n 'jquery',\n '../keys',\n '../utils'\n ], function ($, KEYS, Utils) {\n function AllowClear () { }\n\n AllowClear.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n if (this.placeholder == null) {\n if (this.options.get('debug') && window.console && console.error) {\n console.error(\n 'Select2: The `allowClear` option should be used in combination ' +\n 'with the `placeholder` option.'\n );\n }\n }\n\n this.$selection.on('mousedown', '.select2-selection__clear',\n function (evt) {\n self._handleClear(evt);\n });\n\n container.on('keypress', function (evt) {\n self._handleKeyboardClear(evt, container);\n });\n };\n\n AllowClear.prototype._handleClear = function (_, evt) {\n // Ignore the event if it is disabled\n if (this.isDisabled()) {\n return;\n }\n\n var $clear = this.$selection.find('.select2-selection__clear');\n\n // Ignore the event if nothing has been selected\n if ($clear.length === 0) {\n return;\n }\n\n evt.stopPropagation();\n\n var data = Utils.GetData($clear[0], 'data');\n\n var previousVal = this.$element.val();\n this.$element.val(this.placeholder.id);\n\n var unselectData = {\n data: data\n };\n this.trigger('clear', unselectData);\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n\n for (var d = 0; d < data.length; d++) {\n unselectData = {\n data: data[d]\n };\n\n // Trigger the `unselect` event, so people can prevent it from being\n // cleared.\n this.trigger('unselect', unselectData);\n\n // If the event was prevented, don't clear it out.\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n }\n\n this.$element.trigger('input').trigger('change');\n\n this.trigger('toggle', {});\n };\n\n AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\n if (container.isOpen()) {\n return;\n }\n\n if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\n this._handleClear(evt);\n }\n };\n\n AllowClear.prototype.update = function (decorated, data) {\n decorated.call(this, data);\n\n this.$selection.find('.select2-selection__clear').remove();\n this.$selection[0].classList.remove('select2-selection--clearable');\n\n if (this.$selection.find('.select2-selection__placeholder').length > 0 ||\n data.length === 0) {\n return;\n }\n\n var selectionId = this.$selection.find('.select2-selection__rendered')\n .attr('id');\n\n var removeAll = this.options.get('translations').get('removeAllItems');\n\n var $remove = $(\n ''\n );\n $remove.attr('title', removeAll());\n $remove.attr('aria-label', removeAll());\n $remove.attr('aria-describedby', selectionId);\n Utils.StoreData($remove[0], 'data', data);\n\n this.$selection.prepend($remove);\n this.$selection[0].classList.add('select2-selection--clearable');\n };\n\n return AllowClear;\n });\n\n S2.define('select2/selection/search',[\n 'jquery',\n '../utils',\n '../keys'\n ], function ($, Utils, KEYS) {\n function Search (decorated, $element, options) {\n decorated.call(this, $element, options);\n }\n\n Search.prototype.render = function (decorated) {\n var searchLabel = this.options.get('translations').get('search');\n var $search = $(\n '' +\n '' +\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('textarea');\n\n this.$search.prop('autocomplete', this.options.get('autocomplete'));\n this.$search.attr('aria-label', searchLabel());\n\n var $rendered = decorated.call(this);\n\n this._transferTabIndex();\n $rendered.append(this.$searchContainer);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n var selectionId = container.id + '-container';\n\n decorated.call(this, container, $container);\n\n self.$search.attr('aria-describedby', selectionId);\n\n container.on('open', function () {\n self.$search.attr('aria-controls', resultsId);\n self.$search.trigger('focus');\n });\n\n container.on('close', function () {\n self.$search.val('');\n self.resizeSearch();\n self.$search.removeAttr('aria-controls');\n self.$search.removeAttr('aria-activedescendant');\n self.$search.trigger('focus');\n });\n\n container.on('enable', function () {\n self.$search.prop('disabled', false);\n\n self._transferTabIndex();\n });\n\n container.on('disable', function () {\n self.$search.prop('disabled', true);\n });\n\n container.on('focus', function (evt) {\n self.$search.trigger('focus');\n });\n\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search.attr('aria-activedescendant', params.data._resultId);\n } else {\n self.$search.removeAttr('aria-activedescendant');\n }\n });\n\n this.$selection.on('focusin', '.select2-search--inline', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('focusout', '.select2-search--inline', function (evt) {\n self._handleBlur(evt);\n });\n\n this.$selection.on('keydown', '.select2-search--inline', function (evt) {\n evt.stopPropagation();\n\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n\n var key = evt.which;\n\n if (key === KEYS.BACKSPACE && self.$search.val() === '') {\n var $previousChoice = self.$selection\n .find('.select2-selection__choice').last();\n\n if ($previousChoice.length > 0) {\n var item = Utils.GetData($previousChoice[0], 'data');\n\n self.searchRemoveChoice(item);\n\n evt.preventDefault();\n }\n }\n });\n\n this.$selection.on('click', '.select2-search--inline', function (evt) {\n if (self.$search.val()) {\n evt.stopPropagation();\n }\n });\n\n // Try to detect the IE version should the `documentMode` property that\n // is stored on the document. This is only implemented in IE and is\n // slightly cleaner than doing a user agent check.\n // This property is not available in Edge, but Edge also doesn't have\n // this bug.\n var msie = document.documentMode;\n var disableInputEvents = msie && msie <= 11;\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$selection.on(\n 'input.searchcheck',\n '.select2-search--inline',\n function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents) {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n // Unbind the duplicated `keyup` event\n self.$selection.off('keyup.search');\n }\n );\n\n this.$selection.on(\n 'keyup.search input.search',\n '.select2-search--inline',\n function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents && evt.type === 'input') {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n var key = evt.which;\n\n // We can freely ignore events from modifier keys\n if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {\n return;\n }\n\n // Tabbing will be handled during the `keydown` phase\n if (key == KEYS.TAB) {\n return;\n }\n\n self.handleSearch(evt);\n }\n );\n };\n\n /**\n * This method will transfer the tabindex attribute from the rendered\n * selection to the search box. This allows for the search box to be used as\n * the primary focus instead of the selection container.\n *\n * @private\n */\n Search.prototype._transferTabIndex = function (decorated) {\n this.$search.attr('tabindex', this.$selection.attr('tabindex'));\n this.$selection.attr('tabindex', '-1');\n };\n\n Search.prototype.createPlaceholder = function (decorated, placeholder) {\n this.$search.attr('placeholder', placeholder.text);\n };\n\n Search.prototype.update = function (decorated, data) {\n var searchHadFocus = this.$search[0] == document.activeElement;\n\n this.$search.attr('placeholder', '');\n\n decorated.call(this, data);\n\n this.resizeSearch();\n if (searchHadFocus) {\n this.$search.trigger('focus');\n }\n };\n\n Search.prototype.handleSearch = function () {\n this.resizeSearch();\n\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.searchRemoveChoice = function (decorated, item) {\n this.trigger('unselect', {\n data: item\n });\n\n this.$search.val(item.text);\n this.handleSearch();\n };\n\n Search.prototype.resizeSearch = function () {\n this.$search.css('width', '25px');\n\n var width = '100%';\n\n if (this.$search.attr('placeholder') === '') {\n var minimumWidth = this.$search.val().length + 1;\n\n width = (minimumWidth * 0.75) + 'em';\n }\n\n this.$search.css('width', width);\n };\n\n return Search;\n });\n\n S2.define('select2/selection/selectionCss',[\n '../utils'\n ], function (Utils) {\n function SelectionCSS () { }\n\n SelectionCSS.prototype.render = function (decorated) {\n var $selection = decorated.call(this);\n\n var selectionCssClass = this.options.get('selectionCssClass') || '';\n\n if (selectionCssClass.indexOf(':all:') !== -1) {\n selectionCssClass = selectionCssClass.replace(':all:', '');\n\n Utils.copyNonInternalCssClasses($selection[0], this.$element[0]);\n }\n\n $selection.addClass(selectionCssClass);\n\n return $selection;\n };\n\n return SelectionCSS;\n });\n\n S2.define('select2/selection/eventRelay',[\n 'jquery'\n ], function ($) {\n function EventRelay () { }\n\n EventRelay.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var relayEvents = [\n 'open', 'opening',\n 'close', 'closing',\n 'select', 'selecting',\n 'unselect', 'unselecting',\n 'clear', 'clearing'\n ];\n\n var preventableEvents = [\n 'opening', 'closing', 'selecting', 'unselecting', 'clearing'\n ];\n\n decorated.call(this, container, $container);\n\n container.on('*', function (name, params) {\n // Ignore events that should not be relayed\n if (relayEvents.indexOf(name) === -1) {\n return;\n }\n\n // The parameters should always be an object\n params = params || {};\n\n // Generate the jQuery event for the Select2 event\n var evt = $.Event('select2:' + name, {\n params: params\n });\n\n self.$element.trigger(evt);\n\n // Only handle preventable events if it was one\n if (preventableEvents.indexOf(name) === -1) {\n return;\n }\n\n params.prevented = evt.isDefaultPrevented();\n });\n };\n\n return EventRelay;\n });\n\n S2.define('select2/translation',[\n 'jquery',\n 'require'\n ], function ($, require) {\n function Translation (dict) {\n this.dict = dict || {};\n }\n\n Translation.prototype.all = function () {\n return this.dict;\n };\n\n Translation.prototype.get = function (key) {\n return this.dict[key];\n };\n\n Translation.prototype.extend = function (translation) {\n this.dict = $.extend({}, translation.all(), this.dict);\n };\n\n // Static functions\n\n Translation._cache = {};\n\n Translation.loadPath = function (path) {\n if (!(path in Translation._cache)) {\n var translations = require(path);\n\n Translation._cache[path] = translations;\n }\n\n return new Translation(Translation._cache[path]);\n };\n\n return Translation;\n });\n\n S2.define('select2/diacritics',[\n\n ], function () {\n var diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u0152': 'OE',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u0153': 'oe',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03CE': '\\u03C9',\n '\\u03C2': '\\u03C3',\n '\\u2019': '\\''\n };\n\n return diacritics;\n });\n\n S2.define('select2/data/base',[\n '../utils'\n ], function (Utils) {\n function BaseAdapter ($element, options) {\n BaseAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseAdapter, Utils.Observable);\n\n BaseAdapter.prototype.current = function (callback) {\n throw new Error('The `current` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.query = function (params, callback) {\n throw new Error('The `query` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.bind = function (container, $container) {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.destroy = function () {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.generateResultId = function (container, data) {\n var id = container.id + '-result-';\n\n id += Utils.generateChars(4);\n\n if (data.id != null) {\n id += '-' + data.id.toString();\n } else {\n id += '-' + Utils.generateChars(4);\n }\n return id;\n };\n\n return BaseAdapter;\n });\n\n S2.define('select2/data/select',[\n './base',\n '../utils',\n 'jquery'\n ], function (BaseAdapter, Utils, $) {\n function SelectAdapter ($element, options) {\n this.$element = $element;\n this.options = options;\n\n SelectAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(SelectAdapter, BaseAdapter);\n\n SelectAdapter.prototype.current = function (callback) {\n var self = this;\n\n var data = Array.prototype.map.call(\n this.$element[0].querySelectorAll(':checked'),\n function (selectedElement) {\n return self.item($(selectedElement));\n }\n );\n\n callback(data);\n };\n\n SelectAdapter.prototype.select = function (data) {\n var self = this;\n\n data.selected = true;\n\n // If data.element is a DOM node, use it instead\n if (\n data.element != null && data.element.tagName.toLowerCase() === 'option'\n ) {\n data.element.selected = true;\n\n this.$element.trigger('input').trigger('change');\n\n return;\n }\n\n if (this.$element.prop('multiple')) {\n this.current(function (currentData) {\n var val = [];\n\n data = [data];\n data.push.apply(data, currentData);\n\n for (var d = 0; d < data.length; d++) {\n var id = data[d].id;\n\n if (val.indexOf(id) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n self.$element.trigger('input').trigger('change');\n });\n } else {\n var val = data.id;\n\n this.$element.val(val);\n this.$element.trigger('input').trigger('change');\n }\n };\n\n SelectAdapter.prototype.unselect = function (data) {\n var self = this;\n\n if (!this.$element.prop('multiple')) {\n return;\n }\n\n data.selected = false;\n\n if (\n data.element != null &&\n data.element.tagName.toLowerCase() === 'option'\n ) {\n data.element.selected = false;\n\n this.$element.trigger('input').trigger('change');\n\n return;\n }\n\n this.current(function (currentData) {\n var val = [];\n\n for (var d = 0; d < currentData.length; d++) {\n var id = currentData[d].id;\n\n if (id !== data.id && val.indexOf(id) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n\n self.$element.trigger('input').trigger('change');\n });\n };\n\n SelectAdapter.prototype.bind = function (container, $container) {\n var self = this;\n\n this.container = container;\n\n container.on('select', function (params) {\n self.select(params.data);\n });\n\n container.on('unselect', function (params) {\n self.unselect(params.data);\n });\n };\n\n SelectAdapter.prototype.destroy = function () {\n // Remove anything added to child elements\n this.$element.find('*').each(function () {\n // Remove any custom data set by Select2\n Utils.RemoveData(this);\n });\n };\n\n SelectAdapter.prototype.query = function (params, callback) {\n var data = [];\n var self = this;\n\n var $options = this.$element.children();\n\n $options.each(function () {\n if (\n this.tagName.toLowerCase() !== 'option' &&\n this.tagName.toLowerCase() !== 'optgroup'\n ) {\n return;\n }\n\n var $option = $(this);\n\n var option = self.item($option);\n\n var matches = self.matches(params, option);\n\n if (matches !== null) {\n data.push(matches);\n }\n });\n\n callback({\n results: data\n });\n };\n\n SelectAdapter.prototype.addOptions = function ($options) {\n this.$element.append($options);\n };\n\n SelectAdapter.prototype.option = function (data) {\n var option;\n\n if (data.children) {\n option = document.createElement('optgroup');\n option.label = data.text;\n } else {\n option = document.createElement('option');\n\n if (option.textContent !== undefined) {\n option.textContent = data.text;\n } else {\n option.innerText = data.text;\n }\n }\n\n if (data.id !== undefined) {\n option.value = data.id;\n }\n\n if (data.disabled) {\n option.disabled = true;\n }\n\n if (data.selected) {\n option.selected = true;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n var normalizedData = this._normalizeItem(data);\n normalizedData.element = option;\n\n // Override the option's data with the combined data\n Utils.StoreData(option, 'data', normalizedData);\n\n return $(option);\n };\n\n SelectAdapter.prototype.item = function ($option) {\n var data = {};\n\n data = Utils.GetData($option[0], 'data');\n\n if (data != null) {\n return data;\n }\n\n var option = $option[0];\n\n if (option.tagName.toLowerCase() === 'option') {\n data = {\n id: $option.val(),\n text: $option.text(),\n disabled: $option.prop('disabled'),\n selected: $option.prop('selected'),\n title: $option.prop('title')\n };\n } else if (option.tagName.toLowerCase() === 'optgroup') {\n data = {\n text: $option.prop('label'),\n children: [],\n title: $option.prop('title')\n };\n\n var $children = $option.children('option');\n var children = [];\n\n for (var c = 0; c < $children.length; c++) {\n var $child = $($children[c]);\n\n var child = this.item($child);\n\n children.push(child);\n }\n\n data.children = children;\n }\n\n data = this._normalizeItem(data);\n data.element = $option[0];\n\n Utils.StoreData($option[0], 'data', data);\n\n return data;\n };\n\n SelectAdapter.prototype._normalizeItem = function (item) {\n if (item !== Object(item)) {\n item = {\n id: item,\n text: item\n };\n }\n\n item = $.extend({}, {\n text: ''\n }, item);\n\n var defaults = {\n selected: false,\n disabled: false\n };\n\n if (item.id != null) {\n item.id = item.id.toString();\n }\n\n if (item.text != null) {\n item.text = item.text.toString();\n }\n\n if (item._resultId == null && item.id && this.container != null) {\n item._resultId = this.generateResultId(this.container, item);\n }\n\n return $.extend({}, defaults, item);\n };\n\n SelectAdapter.prototype.matches = function (params, data) {\n var matcher = this.options.get('matcher');\n\n return matcher(params, data);\n };\n\n return SelectAdapter;\n });\n\n S2.define('select2/data/array',[\n './select',\n '../utils',\n 'jquery'\n ], function (SelectAdapter, Utils, $) {\n function ArrayAdapter ($element, options) {\n this._dataToConvert = options.get('data') || [];\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(ArrayAdapter, SelectAdapter);\n\n ArrayAdapter.prototype.bind = function (container, $container) {\n ArrayAdapter.__super__.bind.call(this, container, $container);\n\n this.addOptions(this.convertToOptions(this._dataToConvert));\n };\n\n ArrayAdapter.prototype.select = function (data) {\n var $option = this.$element.find('option').filter(function (i, elm) {\n return elm.value == data.id.toString();\n });\n\n if ($option.length === 0) {\n $option = this.option(data);\n\n this.addOptions($option);\n }\n\n ArrayAdapter.__super__.select.call(this, data);\n };\n\n ArrayAdapter.prototype.convertToOptions = function (data) {\n var self = this;\n\n var $existing = this.$element.find('option');\n var existingIds = $existing.map(function () {\n return self.item($(this)).id;\n }).get();\n\n var $options = [];\n\n // Filter out all items except for the one passed in the argument\n function onlyItem (item) {\n return function () {\n return $(this).val() == item.id;\n };\n }\n\n for (var d = 0; d < data.length; d++) {\n var item = this._normalizeItem(data[d]);\n\n // Skip items which were pre-loaded, only merge the data\n if (existingIds.indexOf(item.id) >= 0) {\n var $existingOption = $existing.filter(onlyItem(item));\n\n var existingData = this.item($existingOption);\n var newData = $.extend(true, {}, item, existingData);\n\n var $newOption = this.option(newData);\n\n $existingOption.replaceWith($newOption);\n\n continue;\n }\n\n var $option = this.option(item);\n\n if (item.children) {\n var $children = this.convertToOptions(item.children);\n\n $option.append($children);\n }\n\n $options.push($option);\n }\n\n return $options;\n };\n\n return ArrayAdapter;\n });\n\n S2.define('select2/data/ajax',[\n './array',\n '../utils',\n 'jquery'\n ], function (ArrayAdapter, Utils, $) {\n function AjaxAdapter ($element, options) {\n this.ajaxOptions = this._applyDefaults(options.get('ajax'));\n\n if (this.ajaxOptions.processResults != null) {\n this.processResults = this.ajaxOptions.processResults;\n }\n\n AjaxAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(AjaxAdapter, ArrayAdapter);\n\n AjaxAdapter.prototype._applyDefaults = function (options) {\n var defaults = {\n data: function (params) {\n return $.extend({}, params, {\n q: params.term\n });\n },\n transport: function (params, success, failure) {\n var $request = $.ajax(params);\n\n $request.then(success);\n $request.fail(failure);\n\n return $request;\n }\n };\n\n return $.extend({}, defaults, options, true);\n };\n\n AjaxAdapter.prototype.processResults = function (results) {\n return results;\n };\n\n AjaxAdapter.prototype.query = function (params, callback) {\n var matches = [];\n var self = this;\n\n if (this._request != null) {\n // JSONP requests cannot always be aborted\n if (typeof this._request.abort === 'function') {\n this._request.abort();\n }\n\n this._request = null;\n }\n\n var options = $.extend({\n type: 'GET'\n }, this.ajaxOptions);\n\n if (typeof options.url === 'function') {\n options.url = options.url.call(this.$element, params);\n }\n\n if (typeof options.data === 'function') {\n options.data = options.data.call(this.$element, params);\n }\n\n function request () {\n var $request = options.transport(options, function (data) {\n var results = self.processResults(data, params);\n\n if (self.options.get('debug') && window.console && console.error) {\n // Check to make sure that the response included a `results` key.\n if (!results || !results.results || !Array.isArray(results.results)) {\n console.error(\n 'Select2: The AJAX results did not return an array in the ' +\n '`results` key of the response.'\n );\n }\n }\n\n callback(results);\n }, function () {\n // Attempt to detect if a request was aborted\n // Only works if the transport exposes a status property\n if ('status' in $request &&\n ($request.status === 0 || $request.status === '0')) {\n return;\n }\n\n self.trigger('results:message', {\n message: 'errorLoading'\n });\n });\n\n self._request = $request;\n }\n\n if (this.ajaxOptions.delay && params.term != null) {\n if (this._queryTimeout) {\n window.clearTimeout(this._queryTimeout);\n }\n\n this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\n } else {\n request();\n }\n };\n\n return AjaxAdapter;\n });\n\n S2.define('select2/data/tags',[\n 'jquery'\n ], function ($) {\n function Tags (decorated, $element, options) {\n var tags = options.get('tags');\n\n var createTag = options.get('createTag');\n\n if (createTag !== undefined) {\n this.createTag = createTag;\n }\n\n var insertTag = options.get('insertTag');\n\n if (insertTag !== undefined) {\n this.insertTag = insertTag;\n }\n\n decorated.call(this, $element, options);\n\n if (Array.isArray(tags)) {\n for (var t = 0; t < tags.length; t++) {\n var tag = tags[t];\n var item = this._normalizeItem(tag);\n\n var $option = this.option(item);\n\n this.$element.append($option);\n }\n }\n }\n\n Tags.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n this._removeOldTags();\n\n if (params.term == null || params.page != null) {\n decorated.call(this, params, callback);\n return;\n }\n\n function wrapper (obj, child) {\n var data = obj.results;\n\n for (var i = 0; i < data.length; i++) {\n var option = data[i];\n\n var checkChildren = (\n option.children != null &&\n !wrapper({\n results: option.children\n }, true)\n );\n\n var optionText = (option.text || '').toUpperCase();\n var paramsTerm = (params.term || '').toUpperCase();\n\n var checkText = optionText === paramsTerm;\n\n if (checkText || checkChildren) {\n if (child) {\n return false;\n }\n\n obj.data = data;\n callback(obj);\n\n return;\n }\n }\n\n if (child) {\n return true;\n }\n\n var tag = self.createTag(params);\n\n if (tag != null) {\n var $option = self.option(tag);\n $option.attr('data-select2-tag', 'true');\n\n self.addOptions([$option]);\n\n self.insertTag(data, tag);\n }\n\n obj.results = data;\n\n callback(obj);\n }\n\n decorated.call(this, params, wrapper);\n };\n\n Tags.prototype.createTag = function (decorated, params) {\n if (params.term == null) {\n return null;\n }\n\n var term = params.term.trim();\n\n if (term === '') {\n return null;\n }\n\n return {\n id: term,\n text: term\n };\n };\n\n Tags.prototype.insertTag = function (_, data, tag) {\n data.unshift(tag);\n };\n\n Tags.prototype._removeOldTags = function (_) {\n var $options = this.$element.find('option[data-select2-tag]');\n\n $options.each(function () {\n if (this.selected) {\n return;\n }\n\n $(this).remove();\n });\n };\n\n return Tags;\n });\n\n S2.define('select2/data/tokenizer',[\n 'jquery'\n ], function ($) {\n function Tokenizer (decorated, $element, options) {\n var tokenizer = options.get('tokenizer');\n\n if (tokenizer !== undefined) {\n this.tokenizer = tokenizer;\n }\n\n decorated.call(this, $element, options);\n }\n\n Tokenizer.prototype.bind = function (decorated, container, $container) {\n decorated.call(this, container, $container);\n\n this.$search = container.dropdown.$search || container.selection.$search ||\n $container.find('.select2-search__field');\n };\n\n Tokenizer.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n function createAndSelect (data) {\n // Normalize the data object so we can use it for checks\n var item = self._normalizeItem(data);\n\n // Check if the data object already exists as a tag\n // Select it if it doesn't\n var $existingOptions = self.$element.find('option').filter(function () {\n return $(this).val() === item.id;\n });\n\n // If an existing option wasn't found for it, create the option\n if (!$existingOptions.length) {\n var $option = self.option(item);\n $option.attr('data-select2-tag', true);\n\n self._removeOldTags();\n self.addOptions([$option]);\n }\n\n // Select the item, now that we know there is an option for it\n select(item);\n }\n\n function select (data) {\n self.trigger('select', {\n data: data\n });\n }\n\n params.term = params.term || '';\n\n var tokenData = this.tokenizer(params, this.options, createAndSelect);\n\n if (tokenData.term !== params.term) {\n // Replace the search term if we have the search box\n if (this.$search.length) {\n this.$search.val(tokenData.term);\n this.$search.trigger('focus');\n }\n\n params.term = tokenData.term;\n }\n\n decorated.call(this, params, callback);\n };\n\n Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\n var separators = options.get('tokenSeparators') || [];\n var term = params.term;\n var i = 0;\n\n var createTag = this.createTag || function (params) {\n return {\n id: params.term,\n text: params.term\n };\n };\n\n while (i < term.length) {\n var termChar = term[i];\n\n if (separators.indexOf(termChar) === -1) {\n i++;\n\n continue;\n }\n\n var part = term.substr(0, i);\n var partParams = $.extend({}, params, {\n term: part\n });\n\n var data = createTag(partParams);\n\n if (data == null) {\n i++;\n continue;\n }\n\n callback(data);\n\n // Reset the term to not include the tokenized portion\n term = term.substr(i + 1) || '';\n i = 0;\n }\n\n return {\n term: term\n };\n };\n\n return Tokenizer;\n });\n\n S2.define('select2/data/minimumInputLength',[\n\n ], function () {\n function MinimumInputLength (decorated, $e, options) {\n this.minimumInputLength = options.get('minimumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MinimumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (params.term.length < this.minimumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooShort',\n args: {\n minimum: this.minimumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MinimumInputLength;\n });\n\n S2.define('select2/data/maximumInputLength',[\n\n ], function () {\n function MaximumInputLength (decorated, $e, options) {\n this.maximumInputLength = options.get('maximumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (this.maximumInputLength > 0 &&\n params.term.length > this.maximumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooLong',\n args: {\n maximum: this.maximumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MaximumInputLength;\n });\n\n S2.define('select2/data/maximumSelectionLength',[\n\n ], function (){\n function MaximumSelectionLength (decorated, $e, options) {\n this.maximumSelectionLength = options.get('maximumSelectionLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumSelectionLength.prototype.bind =\n function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('select', function () {\n self._checkIfMaximumSelected();\n });\n };\n\n MaximumSelectionLength.prototype.query =\n function (decorated, params, callback) {\n var self = this;\n\n this._checkIfMaximumSelected(function () {\n decorated.call(self, params, callback);\n });\n };\n\n MaximumSelectionLength.prototype._checkIfMaximumSelected =\n function (_, successCallback) {\n var self = this;\n\n this.current(function (currentData) {\n var count = currentData != null ? currentData.length : 0;\n if (self.maximumSelectionLength > 0 &&\n count >= self.maximumSelectionLength) {\n self.trigger('results:message', {\n message: 'maximumSelected',\n args: {\n maximum: self.maximumSelectionLength\n }\n });\n return;\n }\n\n if (successCallback) {\n successCallback();\n }\n });\n };\n\n return MaximumSelectionLength;\n });\n\n S2.define('select2/dropdown',[\n 'jquery',\n './utils'\n ], function ($, Utils) {\n function Dropdown ($element, options) {\n this.$element = $element;\n this.options = options;\n\n Dropdown.__super__.constructor.call(this);\n }\n\n Utils.Extend(Dropdown, Utils.Observable);\n\n Dropdown.prototype.render = function () {\n var $dropdown = $(\n '' +\n '' +\n ''\n );\n\n $dropdown.attr('dir', this.options.get('dir'));\n\n this.$dropdown = $dropdown;\n\n return $dropdown;\n };\n\n Dropdown.prototype.bind = function () {\n // Should be implemented in subclasses\n };\n\n Dropdown.prototype.position = function ($dropdown, $container) {\n // Should be implemented in subclasses\n };\n\n Dropdown.prototype.destroy = function () {\n // Remove the dropdown from the DOM\n this.$dropdown.remove();\n };\n\n return Dropdown;\n });\n\n S2.define('select2/dropdown/search',[\n 'jquery'\n ], function ($) {\n function Search () { }\n\n Search.prototype.render = function (decorated) {\n var $rendered = decorated.call(this);\n var searchLabel = this.options.get('translations').get('search');\n\n var $search = $(\n '' +\n '' +\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n this.$search.prop('autocomplete', this.options.get('autocomplete'));\n this.$search.attr('aria-label', searchLabel());\n\n $rendered.prepend($search);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n\n decorated.call(this, container, $container);\n\n this.$search.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n });\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$search.on('input', function (evt) {\n // Unbind the duplicated `keyup` event\n $(this).off('keyup');\n });\n\n this.$search.on('keyup input', function (evt) {\n self.handleSearch(evt);\n });\n\n container.on('open', function () {\n self.$search.attr('tabindex', 0);\n self.$search.attr('aria-controls', resultsId);\n\n self.$search.trigger('focus');\n\n window.setTimeout(function () {\n self.$search.trigger('focus');\n }, 0);\n });\n\n container.on('close', function () {\n self.$search.attr('tabindex', -1);\n self.$search.removeAttr('aria-controls');\n self.$search.removeAttr('aria-activedescendant');\n\n self.$search.val('');\n self.$search.trigger('blur');\n });\n\n container.on('focus', function () {\n if (!container.isOpen()) {\n self.$search.trigger('focus');\n }\n });\n\n container.on('results:all', function (params) {\n if (params.query.term == null || params.query.term === '') {\n var showSearch = self.showSearch(params);\n\n if (showSearch) {\n self.$searchContainer[0].classList.remove('select2-search--hide');\n } else {\n self.$searchContainer[0].classList.add('select2-search--hide');\n }\n }\n });\n\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search.attr('aria-activedescendant', params.data._resultId);\n } else {\n self.$search.removeAttr('aria-activedescendant');\n }\n });\n };\n\n Search.prototype.handleSearch = function (evt) {\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.showSearch = function (_, params) {\n return true;\n };\n\n return Search;\n });\n\n S2.define('select2/dropdown/hidePlaceholder',[\n\n ], function () {\n function HidePlaceholder (decorated, $element, options, dataAdapter) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n HidePlaceholder.prototype.append = function (decorated, data) {\n data.results = this.removePlaceholder(data.results);\n\n decorated.call(this, data);\n };\n\n HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n HidePlaceholder.prototype.removePlaceholder = function (_, data) {\n var modifiedData = data.slice(0);\n\n for (var d = data.length - 1; d >= 0; d--) {\n var item = data[d];\n\n if (this.placeholder.id === item.id) {\n modifiedData.splice(d, 1);\n }\n }\n\n return modifiedData;\n };\n\n return HidePlaceholder;\n });\n\n S2.define('select2/dropdown/infiniteScroll',[\n 'jquery'\n ], function ($) {\n function InfiniteScroll (decorated, $element, options, dataAdapter) {\n this.lastParams = {};\n\n decorated.call(this, $element, options, dataAdapter);\n\n this.$loadingMore = this.createLoadingMore();\n this.loading = false;\n }\n\n InfiniteScroll.prototype.append = function (decorated, data) {\n this.$loadingMore.remove();\n this.loading = false;\n\n decorated.call(this, data);\n\n if (this.showLoadingMore(data)) {\n this.$results.append(this.$loadingMore);\n this.loadMoreIfNeeded();\n }\n };\n\n InfiniteScroll.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('query', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n container.on('query:append', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n this.$results.on('scroll', this.loadMoreIfNeeded.bind(this));\n };\n\n InfiniteScroll.prototype.loadMoreIfNeeded = function () {\n var isLoadMoreVisible = $.contains(\n document.documentElement,\n this.$loadingMore[0]\n );\n\n if (this.loading || !isLoadMoreVisible) {\n return;\n }\n\n var currentOffset = this.$results.offset().top +\n this.$results.outerHeight(false);\n var loadingMoreOffset = this.$loadingMore.offset().top +\n this.$loadingMore.outerHeight(false);\n\n if (currentOffset + 50 >= loadingMoreOffset) {\n this.loadMore();\n }\n };\n\n InfiniteScroll.prototype.loadMore = function () {\n this.loading = true;\n\n var params = $.extend({}, {page: 1}, this.lastParams);\n\n params.page++;\n\n this.trigger('query:append', params);\n };\n\n InfiniteScroll.prototype.showLoadingMore = function (_, data) {\n return data.pagination && data.pagination.more;\n };\n\n InfiniteScroll.prototype.createLoadingMore = function () {\n var $option = $(\n '
      • '\n );\n\n var message = this.options.get('translations').get('loadingMore');\n\n $option.html(message(this.lastParams));\n\n return $option;\n };\n\n return InfiniteScroll;\n });\n\n S2.define('select2/dropdown/attachBody',[\n 'jquery',\n '../utils'\n ], function ($, Utils) {\n function AttachBody (decorated, $element, options) {\n this.$dropdownParent = $(options.get('dropdownParent') || document.body);\n\n decorated.call(this, $element, options);\n }\n\n AttachBody.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self._showDropdown();\n self._attachPositioningHandler(container);\n\n // Must bind after the results handlers to ensure correct sizing\n self._bindContainerResultHandlers(container);\n });\n\n container.on('close', function () {\n self._hideDropdown();\n self._detachPositioningHandler(container);\n });\n\n this.$dropdownContainer.on('mousedown', function (evt) {\n evt.stopPropagation();\n });\n };\n\n AttachBody.prototype.destroy = function (decorated) {\n decorated.call(this);\n\n this.$dropdownContainer.remove();\n };\n\n AttachBody.prototype.position = function (decorated, $dropdown, $container) {\n // Clone all of the container classes\n $dropdown.attr('class', $container.attr('class'));\n\n $dropdown[0].classList.remove('select2');\n $dropdown[0].classList.add('select2-container--open');\n\n $dropdown.css({\n position: 'absolute',\n top: -999999\n });\n\n this.$container = $container;\n };\n\n AttachBody.prototype.render = function (decorated) {\n var $container = $('');\n\n var $dropdown = decorated.call(this);\n $container.append($dropdown);\n\n this.$dropdownContainer = $container;\n\n return $container;\n };\n\n AttachBody.prototype._hideDropdown = function (decorated) {\n this.$dropdownContainer.detach();\n };\n\n AttachBody.prototype._bindContainerResultHandlers =\n function (decorated, container) {\n\n // These should only be bound once\n if (this._containerResultsHandlersBound) {\n return;\n }\n\n var self = this;\n\n container.on('results:all', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('results:append', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('results:message', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('select', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('unselect', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n this._containerResultsHandlersBound = true;\n };\n\n AttachBody.prototype._attachPositioningHandler =\n function (decorated, container) {\n var self = this;\n\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.each(function () {\n Utils.StoreData(this, 'select2-scroll-position', {\n x: $(this).scrollLeft(),\n y: $(this).scrollTop()\n });\n });\n\n $watchers.on(scrollEvent, function (ev) {\n var position = Utils.GetData(this, 'select2-scroll-position');\n $(this).scrollTop(position.y);\n });\n\n $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,\n function (e) {\n self._positionDropdown();\n self._resizeDropdown();\n });\n };\n\n AttachBody.prototype._detachPositioningHandler =\n function (decorated, container) {\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.off(scrollEvent);\n\n $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\n };\n\n AttachBody.prototype._positionDropdown = function () {\n var $window = $(window);\n\n var isCurrentlyAbove = this.$dropdown[0].classList\n .contains('select2-dropdown--above');\n var isCurrentlyBelow = this.$dropdown[0].classList\n .contains('select2-dropdown--below');\n\n var newDirection = null;\n\n var offset = this.$container.offset();\n\n offset.bottom = offset.top + this.$container.outerHeight(false);\n\n var container = {\n height: this.$container.outerHeight(false)\n };\n\n container.top = offset.top;\n container.bottom = offset.top + container.height;\n\n var dropdown = {\n height: this.$dropdown.outerHeight(false)\n };\n\n var viewport = {\n top: $window.scrollTop(),\n bottom: $window.scrollTop() + $window.height()\n };\n\n var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);\n var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);\n\n var css = {\n left: offset.left,\n top: container.bottom\n };\n\n // Determine what the parent element is to use for calculating the offset\n var $offsetParent = this.$dropdownParent;\n\n // For statically positioned elements, we need to get the element\n // that is determining the offset\n if ($offsetParent.css('position') === 'static') {\n $offsetParent = $offsetParent.offsetParent();\n }\n\n var parentOffset = {\n top: 0,\n left: 0\n };\n\n if (\n $.contains(document.body, $offsetParent[0]) ||\n $offsetParent[0].isConnected\n ) {\n parentOffset = $offsetParent.offset();\n }\n\n css.top -= parentOffset.top;\n css.left -= parentOffset.left;\n\n if (!isCurrentlyAbove && !isCurrentlyBelow) {\n newDirection = 'below';\n }\n\n if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\n newDirection = 'above';\n } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\n newDirection = 'below';\n }\n\n if (newDirection == 'above' ||\n (isCurrentlyAbove && newDirection !== 'below')) {\n css.top = container.top - parentOffset.top - dropdown.height;\n }\n\n if (newDirection != null) {\n this.$dropdown[0].classList.remove('select2-dropdown--below');\n this.$dropdown[0].classList.remove('select2-dropdown--above');\n this.$dropdown[0].classList.add('select2-dropdown--' + newDirection);\n\n this.$container[0].classList.remove('select2-container--below');\n this.$container[0].classList.remove('select2-container--above');\n this.$container[0].classList.add('select2-container--' + newDirection);\n }\n\n this.$dropdownContainer.css(css);\n };\n\n AttachBody.prototype._resizeDropdown = function () {\n var css = {\n width: this.$container.outerWidth(false) + 'px'\n };\n\n if (this.options.get('dropdownAutoWidth')) {\n css.minWidth = css.width;\n css.position = 'relative';\n css.width = 'auto';\n }\n\n this.$dropdown.css(css);\n };\n\n AttachBody.prototype._showDropdown = function (decorated) {\n this.$dropdownContainer.appendTo(this.$dropdownParent);\n\n this._positionDropdown();\n this._resizeDropdown();\n };\n\n return AttachBody;\n });\n\n S2.define('select2/dropdown/minimumResultsForSearch',[\n\n ], function () {\n function countResults (data) {\n var count = 0;\n\n for (var d = 0; d < data.length; d++) {\n var item = data[d];\n\n if (item.children) {\n count += countResults(item.children);\n } else {\n count++;\n }\n }\n\n return count;\n }\n\n function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {\n this.minimumResultsForSearch = options.get('minimumResultsForSearch');\n\n if (this.minimumResultsForSearch < 0) {\n this.minimumResultsForSearch = Infinity;\n }\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\n if (countResults(params.data.results) < this.minimumResultsForSearch) {\n return false;\n }\n\n return decorated.call(this, params);\n };\n\n return MinimumResultsForSearch;\n });\n\n S2.define('select2/dropdown/selectOnClose',[\n '../utils'\n ], function (Utils) {\n function SelectOnClose () { }\n\n SelectOnClose.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('close', function (params) {\n self._handleSelectOnClose(params);\n });\n };\n\n SelectOnClose.prototype._handleSelectOnClose = function (_, params) {\n if (params && params.originalSelect2Event != null) {\n var event = params.originalSelect2Event;\n\n // Don't select an item if the close event was triggered from a select or\n // unselect event\n if (event._type === 'select' || event._type === 'unselect') {\n return;\n }\n }\n\n var $highlightedResults = this.getHighlightedResults();\n\n // Only select highlighted results\n if ($highlightedResults.length < 1) {\n return;\n }\n\n var data = Utils.GetData($highlightedResults[0], 'data');\n\n // Don't re-select already selected resulte\n if (\n (data.element != null && data.element.selected) ||\n (data.element == null && data.selected)\n ) {\n return;\n }\n\n this.trigger('select', {\n data: data\n });\n };\n\n return SelectOnClose;\n });\n\n S2.define('select2/dropdown/closeOnSelect',[\n\n ], function () {\n function CloseOnSelect () { }\n\n CloseOnSelect.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('select', function (evt) {\n self._selectTriggered(evt);\n });\n\n container.on('unselect', function (evt) {\n self._selectTriggered(evt);\n });\n };\n\n CloseOnSelect.prototype._selectTriggered = function (_, evt) {\n var originalEvent = evt.originalEvent;\n\n // Don't close if the control key is being held\n if (originalEvent && (originalEvent.ctrlKey || originalEvent.metaKey)) {\n return;\n }\n\n this.trigger('close', {\n originalEvent: originalEvent,\n originalSelect2Event: evt\n });\n };\n\n return CloseOnSelect;\n });\n\n S2.define('select2/dropdown/dropdownCss',[\n '../utils'\n ], function (Utils) {\n function DropdownCSS () { }\n\n DropdownCSS.prototype.render = function (decorated) {\n var $dropdown = decorated.call(this);\n\n var dropdownCssClass = this.options.get('dropdownCssClass') || '';\n\n if (dropdownCssClass.indexOf(':all:') !== -1) {\n dropdownCssClass = dropdownCssClass.replace(':all:', '');\n\n Utils.copyNonInternalCssClasses($dropdown[0], this.$element[0]);\n }\n\n $dropdown.addClass(dropdownCssClass);\n\n return $dropdown;\n };\n\n return DropdownCSS;\n });\n\n S2.define('select2/dropdown/tagsSearchHighlight',[\n '../utils'\n ], function (Utils) {\n function TagsSearchHighlight () { }\n\n TagsSearchHighlight.prototype.highlightFirstItem = function (decorated) {\n var $options = this.$results\n .find(\n '.select2-results__option--selectable' +\n ':not(.select2-results__option--selected)'\n );\n\n if ($options.length > 0) {\n var $firstOption = $options.first();\n var data = Utils.GetData($firstOption[0], 'data');\n var firstElement = data.element;\n\n if (firstElement && firstElement.getAttribute) {\n if (firstElement.getAttribute('data-select2-tag') === 'true') {\n $firstOption.trigger('mouseenter');\n\n return;\n }\n }\n }\n\n decorated.call(this);\n };\n\n return TagsSearchHighlight;\n });\n\n S2.define('select2/i18n/en',[],function () {\n // English\n return {\n errorLoading: function () {\n return 'The results could not be loaded.';\n },\n inputTooLong: function (args) {\n var overChars = args.input.length - args.maximum;\n\n var message = 'Please delete ' + overChars + ' character';\n\n if (overChars != 1) {\n message += 's';\n }\n\n return message;\n },\n inputTooShort: function (args) {\n var remainingChars = args.minimum - args.input.length;\n\n var message = 'Please enter ' + remainingChars + ' or more characters';\n\n return message;\n },\n loadingMore: function () {\n return 'Loading more results…';\n },\n maximumSelected: function (args) {\n var message = 'You can only select ' + args.maximum + ' item';\n\n if (args.maximum != 1) {\n message += 's';\n }\n\n return message;\n },\n noResults: function () {\n return 'No results found';\n },\n searching: function () {\n return 'Searching…';\n },\n removeAllItems: function () {\n return 'Remove all items';\n },\n removeItem: function () {\n return 'Remove item';\n },\n search: function() {\n return 'Search';\n }\n };\n });\n\n S2.define('select2/defaults',[\n 'jquery',\n\n './results',\n\n './selection/single',\n './selection/multiple',\n './selection/placeholder',\n './selection/allowClear',\n './selection/search',\n './selection/selectionCss',\n './selection/eventRelay',\n\n './utils',\n './translation',\n './diacritics',\n\n './data/select',\n './data/array',\n './data/ajax',\n './data/tags',\n './data/tokenizer',\n './data/minimumInputLength',\n './data/maximumInputLength',\n './data/maximumSelectionLength',\n\n './dropdown',\n './dropdown/search',\n './dropdown/hidePlaceholder',\n './dropdown/infiniteScroll',\n './dropdown/attachBody',\n './dropdown/minimumResultsForSearch',\n './dropdown/selectOnClose',\n './dropdown/closeOnSelect',\n './dropdown/dropdownCss',\n './dropdown/tagsSearchHighlight',\n\n './i18n/en'\n ], function ($,\n\n ResultsList,\n\n SingleSelection, MultipleSelection, Placeholder, AllowClear,\n SelectionSearch, SelectionCSS, EventRelay,\n\n Utils, Translation, DIACRITICS,\n\n SelectData, ArrayData, AjaxData, Tags, Tokenizer,\n MinimumInputLength, MaximumInputLength, MaximumSelectionLength,\n\n Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,\n AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,\n DropdownCSS, TagsSearchHighlight,\n\n EnglishTranslation) {\n function Defaults () {\n this.reset();\n }\n\n Defaults.prototype.apply = function (options) {\n options = $.extend(true, {}, this.defaults, options);\n\n if (options.dataAdapter == null) {\n if (options.ajax != null) {\n options.dataAdapter = AjaxData;\n } else if (options.data != null) {\n options.dataAdapter = ArrayData;\n } else {\n options.dataAdapter = SelectData;\n }\n\n if (options.minimumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MinimumInputLength\n );\n }\n\n if (options.maximumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumInputLength\n );\n }\n\n if (options.maximumSelectionLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumSelectionLength\n );\n }\n\n if (options.tags) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\n }\n\n if (options.tokenSeparators != null || options.tokenizer != null) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Tokenizer\n );\n }\n }\n\n if (options.resultsAdapter == null) {\n options.resultsAdapter = ResultsList;\n\n if (options.ajax != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n InfiniteScroll\n );\n }\n\n if (options.placeholder != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n HidePlaceholder\n );\n }\n\n if (options.selectOnClose) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n SelectOnClose\n );\n }\n\n if (options.tags) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n TagsSearchHighlight\n );\n }\n }\n\n if (options.dropdownAdapter == null) {\n if (options.multiple) {\n options.dropdownAdapter = Dropdown;\n } else {\n var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\n\n options.dropdownAdapter = SearchableDropdown;\n }\n\n if (options.minimumResultsForSearch !== 0) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n MinimumResultsForSearch\n );\n }\n\n if (options.closeOnSelect) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n CloseOnSelect\n );\n }\n\n if (options.dropdownCssClass != null) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n DropdownCSS\n );\n }\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n AttachBody\n );\n }\n\n if (options.selectionAdapter == null) {\n if (options.multiple) {\n options.selectionAdapter = MultipleSelection;\n } else {\n options.selectionAdapter = SingleSelection;\n }\n\n // Add the placeholder mixin if a placeholder was specified\n if (options.placeholder != null) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n Placeholder\n );\n }\n\n if (options.allowClear) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n AllowClear\n );\n }\n\n if (options.multiple) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n SelectionSearch\n );\n }\n\n if (options.selectionCssClass != null) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n SelectionCSS\n );\n }\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n EventRelay\n );\n }\n\n // If the defaults were not previously applied from an element, it is\n // possible for the language option to have not been resolved\n options.language = this._resolveLanguage(options.language);\n\n // Always fall back to English since it will always be complete\n options.language.push('en');\n\n var uniqueLanguages = [];\n\n for (var l = 0; l < options.language.length; l++) {\n var language = options.language[l];\n\n if (uniqueLanguages.indexOf(language) === -1) {\n uniqueLanguages.push(language);\n }\n }\n\n options.language = uniqueLanguages;\n\n options.translations = this._processTranslations(\n options.language,\n options.debug\n );\n\n return options;\n };\n\n Defaults.prototype.reset = function () {\n function stripDiacritics (text) {\n // Used 'uni range + named function' from http://jsperf.com/diacritics/18\n function match(a) {\n return DIACRITICS[a] || a;\n }\n\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n }\n\n function matcher (params, data) {\n // Always return the object if there is nothing to compare\n if (params.term == null || params.term.trim() === '') {\n return data;\n }\n\n // Do a recursive check for options with children\n if (data.children && data.children.length > 0) {\n // Clone the data object if there are children\n // This is required as we modify the object to remove any non-matches\n var match = $.extend(true, {}, data);\n\n // Check each child of the option\n for (var c = data.children.length - 1; c >= 0; c--) {\n var child = data.children[c];\n\n var matches = matcher(params, child);\n\n // If there wasn't a match, remove the object in the array\n if (matches == null) {\n match.children.splice(c, 1);\n }\n }\n\n // If any children matched, return the new object\n if (match.children.length > 0) {\n return match;\n }\n\n // If there were no matching children, check just the plain object\n return matcher(params, match);\n }\n\n var original = stripDiacritics(data.text).toUpperCase();\n var term = stripDiacritics(params.term).toUpperCase();\n\n // Check if the text contains the term\n if (original.indexOf(term) > -1) {\n return data;\n }\n\n // If it doesn't contain the term, don't return anything\n return null;\n }\n\n this.defaults = {\n amdLanguageBase: './i18n/',\n autocomplete: 'off',\n closeOnSelect: true,\n debug: false,\n dropdownAutoWidth: false,\n escapeMarkup: Utils.escapeMarkup,\n language: {},\n matcher: matcher,\n minimumInputLength: 0,\n maximumInputLength: 0,\n maximumSelectionLength: 0,\n minimumResultsForSearch: 0,\n selectOnClose: false,\n scrollAfterSelect: false,\n sorter: function (data) {\n return data;\n },\n templateResult: function (result) {\n return result.text;\n },\n templateSelection: function (selection) {\n return selection.text;\n },\n theme: 'default',\n width: 'resolve'\n };\n };\n\n Defaults.prototype.applyFromElement = function (options, $element) {\n var optionLanguage = options.language;\n var defaultLanguage = this.defaults.language;\n var elementLanguage = $element.prop('lang');\n var parentLanguage = $element.closest('[lang]').prop('lang');\n\n var languages = Array.prototype.concat.call(\n this._resolveLanguage(elementLanguage),\n this._resolveLanguage(optionLanguage),\n this._resolveLanguage(defaultLanguage),\n this._resolveLanguage(parentLanguage)\n );\n\n options.language = languages;\n\n return options;\n };\n\n Defaults.prototype._resolveLanguage = function (language) {\n if (!language) {\n return [];\n }\n\n if ($.isEmptyObject(language)) {\n return [];\n }\n\n if ($.isPlainObject(language)) {\n return [language];\n }\n\n var languages;\n\n if (!Array.isArray(language)) {\n languages = [language];\n } else {\n languages = language;\n }\n\n var resolvedLanguages = [];\n\n for (var l = 0; l < languages.length; l++) {\n resolvedLanguages.push(languages[l]);\n\n if (typeof languages[l] === 'string' && languages[l].indexOf('-') > 0) {\n // Extract the region information if it is included\n var languageParts = languages[l].split('-');\n var baseLanguage = languageParts[0];\n\n resolvedLanguages.push(baseLanguage);\n }\n }\n\n return resolvedLanguages;\n };\n\n Defaults.prototype._processTranslations = function (languages, debug) {\n var translations = new Translation();\n\n for (var l = 0; l < languages.length; l++) {\n var languageData = new Translation();\n\n var language = languages[l];\n\n if (typeof language === 'string') {\n try {\n // Try to load it with the original name\n languageData = Translation.loadPath(language);\n } catch (e) {\n try {\n // If we couldn't load it, check if it wasn't the full path\n language = this.defaults.amdLanguageBase + language;\n languageData = Translation.loadPath(language);\n } catch (ex) {\n // The translation could not be loaded at all. Sometimes this is\n // because of a configuration problem, other times this can be\n // because of how Select2 helps load all possible translation files\n if (debug && window.console && console.warn) {\n console.warn(\n 'Select2: The language file for \"' + language + '\" could ' +\n 'not be automatically loaded. A fallback will be used instead.'\n );\n }\n }\n }\n } else if ($.isPlainObject(language)) {\n languageData = new Translation(language);\n } else {\n languageData = language;\n }\n\n translations.extend(languageData);\n }\n\n return translations;\n };\n\n Defaults.prototype.set = function (key, value) {\n var camelKey = $.camelCase(key);\n\n var data = {};\n data[camelKey] = value;\n\n var convertedData = Utils._convertData(data);\n\n $.extend(true, this.defaults, convertedData);\n };\n\n var defaults = new Defaults();\n\n return defaults;\n });\n\n S2.define('select2/options',[\n 'jquery',\n './defaults',\n './utils'\n ], function ($, Defaults, Utils) {\n function Options (options, $element) {\n this.options = options;\n\n if ($element != null) {\n this.fromElement($element);\n }\n\n if ($element != null) {\n this.options = Defaults.applyFromElement(this.options, $element);\n }\n\n this.options = Defaults.apply(this.options);\n }\n\n Options.prototype.fromElement = function ($e) {\n var excludedData = ['select2'];\n\n if (this.options.multiple == null) {\n this.options.multiple = $e.prop('multiple');\n }\n\n if (this.options.disabled == null) {\n this.options.disabled = $e.prop('disabled');\n }\n\n if (this.options.autocomplete == null && $e.prop('autocomplete')) {\n this.options.autocomplete = $e.prop('autocomplete');\n }\n\n if (this.options.dir == null) {\n if ($e.prop('dir')) {\n this.options.dir = $e.prop('dir');\n } else if ($e.closest('[dir]').prop('dir')) {\n this.options.dir = $e.closest('[dir]').prop('dir');\n } else {\n this.options.dir = 'ltr';\n }\n }\n\n $e.prop('disabled', this.options.disabled);\n $e.prop('multiple', this.options.multiple);\n\n if (Utils.GetData($e[0], 'select2Tags')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-select2-tags` attribute has been changed to ' +\n 'use the `data-data` and `data-tags=\"true\"` attributes and will be ' +\n 'removed in future versions of Select2.'\n );\n }\n\n Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags'));\n Utils.StoreData($e[0], 'tags', true);\n }\n\n if (Utils.GetData($e[0], 'ajaxUrl')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-ajax-url` attribute has been changed to ' +\n '`data-ajax--url` and support for the old attribute will be removed' +\n ' in future versions of Select2.'\n );\n }\n\n $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl'));\n Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl'));\n }\n\n var dataset = {};\n\n function upperCaseLetter(_, letter) {\n return letter.toUpperCase();\n }\n\n // Pre-load all of the attributes which are prefixed with `data-`\n for (var attr = 0; attr < $e[0].attributes.length; attr++) {\n var attributeName = $e[0].attributes[attr].name;\n var prefix = 'data-';\n\n if (attributeName.substr(0, prefix.length) == prefix) {\n // Get the contents of the attribute after `data-`\n var dataName = attributeName.substring(prefix.length);\n\n // Get the data contents from the consistent source\n // This is more than likely the jQuery data helper\n var dataValue = Utils.GetData($e[0], dataName);\n\n // camelCase the attribute name to match the spec\n var camelDataName = dataName.replace(/-([a-z])/g, upperCaseLetter);\n\n // Store the data attribute contents into the dataset since\n dataset[camelDataName] = dataValue;\n }\n }\n\n // Prefer the element's `dataset` attribute if it exists\n // jQuery 1.x does not correctly handle data attributes with multiple dashes\n if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\n dataset = $.extend(true, {}, $e[0].dataset, dataset);\n }\n\n // Prefer our internal data cache if it exists\n var data = $.extend(true, {}, Utils.GetData($e[0]), dataset);\n\n data = Utils._convertData(data);\n\n for (var key in data) {\n if (excludedData.indexOf(key) > -1) {\n continue;\n }\n\n if ($.isPlainObject(this.options[key])) {\n $.extend(this.options[key], data[key]);\n } else {\n this.options[key] = data[key];\n }\n }\n\n return this;\n };\n\n Options.prototype.get = function (key) {\n return this.options[key];\n };\n\n Options.prototype.set = function (key, val) {\n this.options[key] = val;\n };\n\n return Options;\n });\n\n S2.define('select2/core',[\n 'jquery',\n './options',\n './utils',\n './keys'\n ], function ($, Options, Utils, KEYS) {\n var Select2 = function ($element, options) {\n if (Utils.GetData($element[0], 'select2') != null) {\n Utils.GetData($element[0], 'select2').destroy();\n }\n\n this.$element = $element;\n\n this.id = this._generateId($element);\n\n options = options || {};\n\n this.options = new Options(options, $element);\n\n Select2.__super__.constructor.call(this);\n\n // Set up the tabindex\n\n var tabindex = $element.attr('tabindex') || 0;\n Utils.StoreData($element[0], 'old-tabindex', tabindex);\n $element.attr('tabindex', '-1');\n\n // Set up containers and adapters\n\n var DataAdapter = this.options.get('dataAdapter');\n this.dataAdapter = new DataAdapter($element, this.options);\n\n var $container = this.render();\n\n this._placeContainer($container);\n\n var SelectionAdapter = this.options.get('selectionAdapter');\n this.selection = new SelectionAdapter($element, this.options);\n this.$selection = this.selection.render();\n\n this.selection.position(this.$selection, $container);\n\n var DropdownAdapter = this.options.get('dropdownAdapter');\n this.dropdown = new DropdownAdapter($element, this.options);\n this.$dropdown = this.dropdown.render();\n\n this.dropdown.position(this.$dropdown, $container);\n\n var ResultsAdapter = this.options.get('resultsAdapter');\n this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\n this.$results = this.results.render();\n\n this.results.position(this.$results, this.$dropdown);\n\n // Bind events\n\n var self = this;\n\n // Bind the container to all of the adapters\n this._bindAdapters();\n\n // Register any DOM event handlers\n this._registerDomEvents();\n\n // Register any internal event handlers\n this._registerDataEvents();\n this._registerSelectionEvents();\n this._registerDropdownEvents();\n this._registerResultsEvents();\n this._registerEvents();\n\n // Set the initial state\n this.dataAdapter.current(function (initialData) {\n self.trigger('selection:update', {\n data: initialData\n });\n });\n\n // Hide the original select\n $element[0].classList.add('select2-hidden-accessible');\n $element.attr('aria-hidden', 'true');\n\n // Synchronize any monitored attributes\n this._syncAttributes();\n\n Utils.StoreData($element[0], 'select2', this);\n\n // Ensure backwards compatibility with $element.data('select2').\n $element.data('select2', this);\n };\n\n Utils.Extend(Select2, Utils.Observable);\n\n Select2.prototype._generateId = function ($element) {\n var id = '';\n\n if ($element.attr('id') != null) {\n id = $element.attr('id');\n } else if ($element.attr('name') != null) {\n id = $element.attr('name') + '-' + Utils.generateChars(2);\n } else {\n id = Utils.generateChars(4);\n }\n\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = 'select2-' + id;\n\n return id;\n };\n\n Select2.prototype._placeContainer = function ($container) {\n $container.insertAfter(this.$element);\n\n var width = this._resolveWidth(this.$element, this.options.get('width'));\n\n if (width != null) {\n $container.css('width', width);\n }\n };\n\n Select2.prototype._resolveWidth = function ($element, method) {\n var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\n\n if (method == 'resolve') {\n var styleWidth = this._resolveWidth($element, 'style');\n\n if (styleWidth != null) {\n return styleWidth;\n }\n\n return this._resolveWidth($element, 'element');\n }\n\n if (method == 'element') {\n var elementWidth = $element.outerWidth(false);\n\n if (elementWidth <= 0) {\n return 'auto';\n }\n\n return elementWidth + 'px';\n }\n\n if (method == 'style') {\n var style = $element.attr('style');\n\n if (typeof(style) !== 'string') {\n return null;\n }\n\n var attrs = style.split(';');\n\n for (var i = 0, l = attrs.length; i < l; i = i + 1) {\n var attr = attrs[i].replace(/\\s/g, '');\n var matches = attr.match(WIDTH);\n\n if (matches !== null && matches.length >= 1) {\n return matches[1];\n }\n }\n\n return null;\n }\n\n if (method == 'computedstyle') {\n var computedStyle = window.getComputedStyle($element[0]);\n\n return computedStyle.width;\n }\n\n return method;\n };\n\n Select2.prototype._bindAdapters = function () {\n this.dataAdapter.bind(this, this.$container);\n this.selection.bind(this, this.$container);\n\n this.dropdown.bind(this, this.$container);\n this.results.bind(this, this.$container);\n };\n\n Select2.prototype._registerDomEvents = function () {\n var self = this;\n\n this.$element.on('change.select2', function () {\n self.dataAdapter.current(function (data) {\n self.trigger('selection:update', {\n data: data\n });\n });\n });\n\n this.$element.on('focus.select2', function (evt) {\n self.trigger('focus', evt);\n });\n\n this._syncA = Utils.bind(this._syncAttributes, this);\n this._syncS = Utils.bind(this._syncSubtree, this);\n\n this._observer = new window.MutationObserver(function (mutations) {\n self._syncA();\n self._syncS(mutations);\n });\n this._observer.observe(this.$element[0], {\n attributes: true,\n childList: true,\n subtree: false\n });\n };\n\n Select2.prototype._registerDataEvents = function () {\n var self = this;\n\n this.dataAdapter.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerSelectionEvents = function () {\n var self = this;\n var nonRelayEvents = ['toggle', 'focus'];\n\n this.selection.on('toggle', function () {\n self.toggleDropdown();\n });\n\n this.selection.on('focus', function (params) {\n self.focus(params);\n });\n\n this.selection.on('*', function (name, params) {\n if (nonRelayEvents.indexOf(name) !== -1) {\n return;\n }\n\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerDropdownEvents = function () {\n var self = this;\n\n this.dropdown.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerResultsEvents = function () {\n var self = this;\n\n this.results.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerEvents = function () {\n var self = this;\n\n this.on('open', function () {\n self.$container[0].classList.add('select2-container--open');\n });\n\n this.on('close', function () {\n self.$container[0].classList.remove('select2-container--open');\n });\n\n this.on('enable', function () {\n self.$container[0].classList.remove('select2-container--disabled');\n });\n\n this.on('disable', function () {\n self.$container[0].classList.add('select2-container--disabled');\n });\n\n this.on('blur', function () {\n self.$container[0].classList.remove('select2-container--focus');\n });\n\n this.on('query', function (params) {\n if (!self.isOpen()) {\n self.trigger('open', {});\n }\n\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:all', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('query:append', function (params) {\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:append', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('keypress', function (evt) {\n var key = evt.which;\n\n if (self.isOpen()) {\n if (key === KEYS.ESC || (key === KEYS.UP && evt.altKey)) {\n self.close(evt);\n\n evt.preventDefault();\n } else if (key === KEYS.ENTER || key === KEYS.TAB) {\n self.trigger('results:select', {});\n\n evt.preventDefault();\n } else if ((key === KEYS.SPACE && evt.ctrlKey)) {\n self.trigger('results:toggle', {});\n\n evt.preventDefault();\n } else if (key === KEYS.UP) {\n self.trigger('results:previous', {});\n\n evt.preventDefault();\n } else if (key === KEYS.DOWN) {\n self.trigger('results:next', {});\n\n evt.preventDefault();\n }\n } else {\n if (key === KEYS.ENTER || key === KEYS.SPACE ||\n (key === KEYS.DOWN && evt.altKey)) {\n self.open();\n\n evt.preventDefault();\n }\n }\n });\n };\n\n Select2.prototype._syncAttributes = function () {\n this.options.set('disabled', this.$element.prop('disabled'));\n\n if (this.isDisabled()) {\n if (this.isOpen()) {\n this.close();\n }\n\n this.trigger('disable', {});\n } else {\n this.trigger('enable', {});\n }\n };\n\n Select2.prototype._isChangeMutation = function (mutations) {\n var self = this;\n\n if (mutations.addedNodes && mutations.addedNodes.length > 0) {\n for (var n = 0; n < mutations.addedNodes.length; n++) {\n var node = mutations.addedNodes[n];\n\n if (node.selected) {\n return true;\n }\n }\n } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {\n return true;\n } else if (Array.isArray(mutations)) {\n return mutations.some(function (mutation) {\n return self._isChangeMutation(mutation);\n });\n }\n\n return false;\n };\n\n Select2.prototype._syncSubtree = function (mutations) {\n var changed = this._isChangeMutation(mutations);\n var self = this;\n\n // Only re-pull the data if we think there is a change\n if (changed) {\n this.dataAdapter.current(function (currentData) {\n self.trigger('selection:update', {\n data: currentData\n });\n });\n }\n };\n\n /**\n * Override the trigger method to automatically trigger pre-events when\n * there are events that can be prevented.\n */\n Select2.prototype.trigger = function (name, args) {\n var actualTrigger = Select2.__super__.trigger;\n var preTriggerMap = {\n 'open': 'opening',\n 'close': 'closing',\n 'select': 'selecting',\n 'unselect': 'unselecting',\n 'clear': 'clearing'\n };\n\n if (args === undefined) {\n args = {};\n }\n\n if (name in preTriggerMap) {\n var preTriggerName = preTriggerMap[name];\n var preTriggerArgs = {\n prevented: false,\n name: name,\n args: args\n };\n\n actualTrigger.call(this, preTriggerName, preTriggerArgs);\n\n if (preTriggerArgs.prevented) {\n args.prevented = true;\n\n return;\n }\n }\n\n actualTrigger.call(this, name, args);\n };\n\n Select2.prototype.toggleDropdown = function () {\n if (this.isDisabled()) {\n return;\n }\n\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n };\n\n Select2.prototype.open = function () {\n if (this.isOpen()) {\n return;\n }\n\n if (this.isDisabled()) {\n return;\n }\n\n this.trigger('query', {});\n };\n\n Select2.prototype.close = function (evt) {\n if (!this.isOpen()) {\n return;\n }\n\n this.trigger('close', { originalEvent : evt });\n };\n\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n Select2.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n Select2.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n Select2.prototype.isOpen = function () {\n return this.$container[0].classList.contains('select2-container--open');\n };\n\n Select2.prototype.hasFocus = function () {\n return this.$container[0].classList.contains('select2-container--focus');\n };\n\n Select2.prototype.focus = function (data) {\n // No need to re-trigger focus events if we are already focused\n if (this.hasFocus()) {\n return;\n }\n\n this.$container[0].classList.add('select2-container--focus');\n this.trigger('focus', {});\n };\n\n Select2.prototype.enable = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"enable\")` method has been deprecated and will' +\n ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' +\n ' instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n args = [true];\n }\n\n var disabled = !args[0];\n\n this.$element.prop('disabled', disabled);\n };\n\n Select2.prototype.data = function () {\n if (this.options.get('debug') &&\n arguments.length > 0 && window.console && console.warn) {\n console.warn(\n 'Select2: Data can no longer be set using `select2(\"data\")`. You ' +\n 'should consider setting the value instead using `$element.val()`.'\n );\n }\n\n var data = [];\n\n this.dataAdapter.current(function (currentData) {\n data = currentData;\n });\n\n return data;\n };\n\n Select2.prototype.val = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"val\")` method has been deprecated and will be' +\n ' removed in later Select2 versions. Use $element.val() instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n return this.$element.val();\n }\n\n var newVal = args[0];\n\n if (Array.isArray(newVal)) {\n newVal = newVal.map(function (obj) {\n return obj.toString();\n });\n }\n\n this.$element.val(newVal).trigger('input').trigger('change');\n };\n\n Select2.prototype.destroy = function () {\n Utils.RemoveData(this.$container[0]);\n this.$container.remove();\n\n this._observer.disconnect();\n this._observer = null;\n\n this._syncA = null;\n this._syncS = null;\n\n this.$element.off('.select2');\n this.$element.attr('tabindex',\n Utils.GetData(this.$element[0], 'old-tabindex'));\n\n this.$element[0].classList.remove('select2-hidden-accessible');\n this.$element.attr('aria-hidden', 'false');\n Utils.RemoveData(this.$element[0]);\n this.$element.removeData('select2');\n\n this.dataAdapter.destroy();\n this.selection.destroy();\n this.dropdown.destroy();\n this.results.destroy();\n\n this.dataAdapter = null;\n this.selection = null;\n this.dropdown = null;\n this.results = null;\n };\n\n Select2.prototype.render = function () {\n var $container = $(\n '' +\n '' +\n '' +\n ''\n );\n\n $container.attr('dir', this.options.get('dir'));\n\n this.$container = $container;\n\n this.$container[0].classList\n .add('select2-container--' + this.options.get('theme'));\n\n Utils.StoreData($container[0], 'element', this.$element);\n\n return $container;\n };\n\n return Select2;\n });\n\n S2.define('jquery-mousewheel',[\n 'jquery'\n ], function ($) {\n // Used to shim jQuery.mousewheel for non-full builds.\n return $;\n });\n\n S2.define('jquery.select2',[\n 'jquery',\n 'jquery-mousewheel',\n\n './select2/core',\n './select2/defaults',\n './select2/utils'\n ], function ($, _, Select2, Defaults, Utils) {\n if ($.fn.select2 == null) {\n // All methods that should return the element\n var thisMethods = ['open', 'close', 'destroy'];\n\n $.fn.select2 = function (options) {\n options = options || {};\n\n if (typeof options === 'object') {\n this.each(function () {\n var instanceOptions = $.extend(true, {}, options);\n\n var instance = new Select2($(this), instanceOptions);\n });\n\n return this;\n } else if (typeof options === 'string') {\n var ret;\n var args = Array.prototype.slice.call(arguments, 1);\n\n this.each(function () {\n var instance = Utils.GetData(this, 'select2');\n\n if (instance == null && window.console && console.error) {\n console.error(\n 'The select2(\\'' + options + '\\') method was called on an ' +\n 'element that is not using Select2.'\n );\n }\n\n ret = instance[options].apply(instance, args);\n });\n\n // Check if we should be returning `this`\n if (thisMethods.indexOf(options) > -1) {\n return this;\n }\n\n return ret;\n } else {\n throw new Error('Invalid arguments for Select2: ' + options);\n }\n };\n }\n\n if ($.fn.select2.defaults == null) {\n $.fn.select2.defaults = Defaults;\n }\n\n return Select2;\n });\n\n // Return the AMD loader configuration so it can be used outside of this file\n return {\n define: S2.define,\n require: S2.require\n };\n }());\n\n // Autoload the jQuery bindings\n // We know that all of the modules exist above this, so we're safe\n var select2 = S2.require('jquery.select2');\n\n // Hold the AMD module references on the jQuery function that was just loaded\n // This allows Select2 to use the internal loader outside of this file, such\n // as in the language files.\n jQuery.fn.select2.amd = S2;\n\n // Return the Select2 instance for anyone who is importing it.\n return select2;\n}));\n","module.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\nvar nativeSort = [].sort;\nvar test = [1, 2, 3];\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar SLOPPY_METHOD = sloppyArrayMethod('sort');\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || SLOPPY_METHOD;\n\n// `Array.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? nativeSort.call(toObject(this))\n : nativeSort.call(toObject(this), aFunction(comparefn));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('splice') }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/forced-string-trim-method');\n\n// `String.prototype.trim` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+\\-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\u0009\\u000A\\u000D #%/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\u0009\\u000A\\u000D #/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\n// eslint-disable-next-line no-control-regex\nvar TAB_AND_NEW_LINE = /[\\u0009\\u000A\\u000D]/g;\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n gopher: 70,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URL(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !nativeAssign || fails(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/bind-context');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, step, entryIterator, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function () { /* empty */ },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n while (!(step = iterator.next()).done) {\n entryIterator = getIterator(anObject(step.value));\n if (\n (first = entryIterator.next()).done ||\n (second = entryIterator.next()).done ||\n !entryIterator.next().done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: first.value + '', value: second.value + '' });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n } else {\n parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.appent` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: name + '', value: value + '' });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = name + '';\n var val = value + '';\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.github.io/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.github.io/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","function hide_campus_step_fields() {\n $('#forms .list-group-item').each(function(){\n if (['radio', 'select', 'multiselect'].includes($(this).find('#campus-steps-kind').val()))\n $(this).find('#possible-answers').show();\n else\n $(this).find('#possible-answers').hide();\n });\n}\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n hide_campus_step_fields();\n});\n\n$(document).on('change', '#campus-steps-kind', function() {\n\thide_campus_step_fields();\n});\n\n$(document).on(\"cocoon:after-insert\", function(evt, newItem) {\n hide_campus_step_fields();\n if ($('#forms .list-group-item:visible').length > 1)\n $('#forms .list-group-item').find('a.remove_fields').show();\n});\n\n$(document).on(\"cocoon:after-remove\", function(evt) {\n if ($('#forms .list-group-item:visible').length == 1)\n $('#forms .list-group-item').find('a.remove_fields').hide();\n});\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n if ($('#forms .list-group-item:visible').length == 1)\n $('#forms .list-group-item').find('a.remove_fields').hide();\n});\n","$( document ).on('turbolinks:load', function() {\n $('.custom-file-label').each(function correctForField() {\n $(this).attr('for', ($(this).attr('for').replace(/\\[/g, '_').replace(/\\]/g, '')))\n if ($(this).parent().find(\"#campus_logo\").length) {\n var origin_title = $(this).attr(\"title\");\n var new_title = `
        ${origin_title}
        `;\n $(this).attr(\"title\", new_title);\n }\n });\n});\n","\nfunction BrowserCheck()\n{\n var nav = navigator.appName;\n var ua = navigator.userAgent;\n var vers = navigator.userAgent;\n var browser = ua.match(/(opera|chrome|safari|firefox|msie|trident)\\/?\\s*(\\.?\\d+(\\.\\d+)*)/i);\n if(browser && (vers= ua.match(/version\\/([\\.\\d]+)/i))!= null) {browser[2]=vers[1];}\n browser = browser? [browser[1], browser[2]]: [nav, navigator.appVersion,'-?'];\n return browser;\n}\n\nfunction getOS() {\n var OSName=\"Unknown OS\";\n if (navigator.platform.indexOf(\"Win\")!= -1) OSName=\"Windows\";\n if (navigator.userAgent.indexOf(\"Windows NT 10.0\")!= -1) OSName=\"Windows 10\";\n if (navigator.userAgent.indexOf(\"Windows NT 6.2\") != -1) OSName=\"Windows 8\";\n if (navigator.userAgent.indexOf(\"Windows NT 6.1\") != -1) OSName=\"Windows 7\";\n if (navigator.userAgent.indexOf(\"Windows NT 6.0\") != -1) OSName=\"Windows Vista\";\n if (navigator.userAgent.indexOf(\"Windows NT 5.1\") != -1) OSName=\"Windows XP\";\n if (navigator.userAgent.indexOf(\"Windows NT 5.0\") != -1) OSName=\"Windows 2000\";\n if (navigator.platform.indexOf(\"Mac\")!=-1) OSName=\"MacOS\";\n if (navigator.userAgent.indexOf(\"Mac OS X 10_12\") != -1) OSName=\"MAC OS X Sierra\";\n if (navigator.userAgent.indexOf(\"Mac OS X 10_11\") != -1) OSName=\"MAC OS X El Capitan\";\n if (navigator.userAgent.indexOf(\"Mac OS X 10_10\") != -1) OSName=\"MAC OS X Yosemite\";\n if (navigator.userAgent.indexOf(\"Mac OS X 10_13\") != -1) OSName=\"MAC OS X High Sierra\";\n if (navigator.userAgent.indexOf(\"Mac OS X 10_14\") != -1) OSName=\"MAC OS X Mojave\";\n if (navigator.platform.indexOf(\"X11\")!= -1) OSName=\"UNIX\";\n if (navigator.platform.indexOf(\"Linux\")!= -1) OSName=\"Linux\";\n if (navigator.platform.indexOf(\"iP\")!= -1) OSName=\"IOS\";\n if (navigator.platform.indexOf(\"Android\")!= -1) OSName=\"Android\";\n return OSName;\n}\n\n$(document).on(\"turbolinks:load\", function () {\n if (document.getElementById(\"browser\")) {\n document.getElementById(\"browser\").value = \"Using \" + BrowserCheck() + \" on \" + getOS();\n }\n\n $(\"#resolve-and-comment\").on(\"click\", function() {\n $(\"#message_resolve\").val(true)\n })\n\n $(\"#deny-and-comment\").on(\"click\", function() {\n $(\"#message_resolve\").val(false)\n })\n\n if (document.getElementById(\"issue_category_id\") !== null && document.getElementById(\"issue_campus_div\") !== null) {\n let category = document.getElementById(\"issue_category_id\");\n let campus = document.getElementById(\"issue_campus_div\");\n let csrCategoryId = document.getElementById('issue_campus_category_id').dataset.categoryId;\n\n if (parseInt(category.selectedOptions[0].value) === parseInt(csrCategoryId)) {\n campus.removeAttribute(\"hidden\");\n }\n\n document.getElementById(\"issue_category_id\").addEventListener('change', (event) => {\n if (parseInt(event.currentTarget.selectedOptions[0].value) === parseInt(csrCategoryId)) {\n campus.removeAttribute(\"hidden\");\n } else campus.setAttribute(\"hidden\", \"\");\n })\n }\n});\n\n","class Pipeline {\n constructor(options = {}) {\n self = this;\n self.emailsList = [];\n self.baseUrl = options['baseUrl'] || $('#upload-emails-container').attr('data-url');\n self.submitBtn = $(\"form#uploadEmails input[type=submit]\");\n $(\"form#uploadEmails\").on('click', \"input[type=submit]\" , function(e){;\n let emailsList = $(\"form#uploadEmails textarea[name='user[emails]']\").val().split(\"\\n\").filter(Boolean);\n self.setDataAsLoading()\n self.getPipelineData(emailsList);\n });\n }\n\n setDataAsLoading() {\n let data_confirm_val = self.submitBtn.data(\"confirm\");\n let $data_confirm_elem = $(\"

        \" + data_confirm_val + \"

        \");\n\n $data_confirm_elem.find(\"b#count_existing_emails\").text(\"...\")\n $data_confirm_elem.find(\"b#count_non_existing_emails\").text(\"...\")\n\n self.submitBtn.getConfirmModal().find('.modal-body p').html($data_confirm_elem.html());\n self.submitBtn.confirmModal();\n }\n\n getPipelineData(emailsList) {\n let url = self.baseUrl + '.json?pipeline[emails]=' + emailsList;\n let data_confirm_val = self.submitBtn.data(\"confirm\");\n let $data_confirm_elem = $(\"

        \" + data_confirm_val + \"

        \");\n $.get({\n url: url,\n success: function(response) {\n $data_confirm_elem.find(\"b#count_existing_emails\").text(response.count_existing_emails);\n $data_confirm_elem.find(\"b#count_non_existing_emails\").text(response.count_non_existing_emails);\n if (response.count_non_existing == 0) {\n let data_confirm_html = $data_confirm_elem.html();\n $data_confirm_elem.html(data_confirm_html.substring(0, data_confirm_html.lastIndexOf(\"
        \")));\n }\n self.submitBtn.getConfirmModal().find('.modal-body p').html($data_confirm_elem.html());\n self.submitBtn.confirmModal();\n },\n error: function(response) {\n let error_txt = '

        There was an error retrieving the informations of the pipeline applicants !

        ';\n self.submitBtn.getConfirmModal().find('.modal-body p').html(data_confirm_val + error_txt);\n self.submitBtn.confirmModal();\n }\n });\n }\n}\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n if ($('#upload-emails-container').length >= 1) {\n let pipeline = new Pipeline();\n }\n});\n","class Piscine {\n constructor(options = {}) {\n self = this;\n self.winnersList = [];\n self.baseUrl = options['baseUrl'] || $('#upload-winners-container').attr('data-url');\n self.submitBtn = $(\"form#uploadWinners input[type=submit]\");\n $(\"form#uploadWinners\").on('click', \"input[type=submit]\" , function(e){;\n let winnersList = $(\"form#uploadWinners textarea[name='piscine[content]']\").val().split(\"\\n\").filter(Boolean);\n self.getPiscineData(winnersList);\n });\n }\n\n getPiscineData(winnersList) {\n let url = self.baseUrl + '.json?piscine[content]=' + winnersList;\n let data_confirm_val = self.submitBtn.data(\"confirm\");\n let $data_confirm_elem = $(\"

        \" + data_confirm_val + \"

        \");\n $.get({\n url: url,\n success: function(response) {\n $data_confirm_elem.find(\"b#count_admitted\").text(response.count_winners);\n $data_confirm_elem.find(\"b#count_anonymized\").text(response.count_losers);\n $data_confirm_elem.find(\"b#count_not_found\").text(response.count_non_existing);\n if (response.count_non_existing == 0) {\n let data_confirm_html = $data_confirm_elem.html();\n $data_confirm_elem.html(data_confirm_html.substring(0, data_confirm_html.lastIndexOf(\"
        \")));\n }\n self.submitBtn.getConfirmModal().find('.modal-body p').html($data_confirm_elem.html());\n self.submitBtn.confirmModal();\n },\n error: function(response) {\n let error_txt = '

        There was an error retrieving the informations of the piscine applicants !

        ';\n self.submitBtn.getConfirmModal().find('.modal-body p').html(data_confirm_val + error_txt);\n self.submitBtn.confirmModal();\n }\n });\n }\n}\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n if ($('#upload-winners-container').length >= 1) {\n let piscine = new Piscine();\n }\n});\n","document.addEventListener('turbolinks:load', function() {\n if ($('.ransack-form').length === 0) {\n return;\n }\n const selects = $('.ransack-form').data('selects');\n const selecte = $('.ransack-form').data('selecte');\n const selecti = $('.ransack-form').data('selecti');\n const selectb = $('.ransack-form').data('selectb');\n const selectd = $('.ransack-form').data('selectd');\n const attrtype = $('.ransack-form').data('types');\n const enums = $('rasack-form').data('enums');\n\n $('form').on('click', '.remove_fields', function(event) {\n $(this).closest('.field').remove();\n return event.preventDefault();\n });\n\n $('form').on('click', '.add_fields', function(event) {\n const time = new Date().getTime();\n const regexp = new RegExp($(this).data('id'), 'g');\n $(this).before($(this).data('fields').replace(regexp, time));\n return event.preventDefault();\n });\n\n // les predicats qui n'ont pas besoin de valeur\n $('form').on('change', 'select#predic', function(event) {\n let type = attrtype[$('form select:first-of-type').val()];\n if (type === \"datetime\") type = \"date\";\n const cond = $(this).val();\n const valueInput = $(this).parent().children('.value-field');\n\n if ($.inArray(cond, ['present', 'blank', 'true', 'false', 'null', 'not_null']) >= 0) {\n valueInput.prop(\"type\", \"text\")\n valueInput.val('1');\n return valueInput.hide();\n } else {\n valueInput.prop(\"type\", type)\n return valueInput.show();\n }\n });\n $('form').on('change', 'select:first-of-type', function(event) {\n\n let key, selectInputVal, value;\n const getSelectOptions = (param, array, originValueInputId) =>\n Array.from(array).map((i) =>\n i[1] === param ?\n $(`#${originValueInputId}`).append(``)\n :\n $(`#${originValueInputId}`).append(``))\n ;\n\n const attributeName = $(this).val();\n const predicateSelect = $(this).next('select#predic'); // le selector du predicat (ex: inferieur a )\n const valueInput = $(this).parent().children('.value-field'); // la valeur du champ text (ou le select en cas d'enum)\n const selectInput = predicateSelect.next('select'); //Le selector du select en cas d'enum\n const predicateValue = predicateSelect.find('option:selected').val(); //la valeur selectionnee du select predicat\n const selectedEnumValue = predicateSelect.next('input').val(); //la valeur selectionnee du select enum\n const type = attrtype[attributeName]; //le type de l'attribut\n const originValueInputId = valueInput.attr('id'); //la valeur originale de l'ID du champ text (ou le select de l'enum)\n const originValueInputName = valueInput.attr('name'); //la valeur originale du nom du champ text (ou le select de l'enum)\n const enumselect = $(`select#${originValueInputId}`).val();\n const lastField = predicateSelect.next('input');\n predicateSelect.empty();\n\n if (type !== \"enum\") {\n predicateSelect.trigger('change');\n predicateSelect.next('select').replaceWith(``);\n }\n if (lastField.attr('type') == 'date' && ((type !== 'date') || (type !== 'datetime'))) {\n lastField.attr('type', 'string');\n }\n\n if (typeof selectInput.val() === \"undefined\") {\n selectInputVal = valueInput.val();\n } else {\n selectInputVal = selectInput.val();\n }\n if (type === 'boolean') {\n lastField.val('1');\n valueInput.hide();\n return (() => {\n const result = [];\n for (let key in selectb) {\n const value = selectb[key];\n if (key !== predicateValue) {\n result.push(predicateSelect.append(``));\n } else {\n result.push(predicateSelect.append(``));\n }\n }\n return result;\n })();\n\n } else if ((type === 'date') || (type === 'datetime') || (type === 'integer')) {\n valueInput.show();\n for (key in selecti) {\n value = selecti[key];\n if (key !== predicateValue) {\n predicateSelect.append(``);\n } else {\n predicateSelect.append(``);\n }\n }\n if ((type === 'date') || (type === 'datetime')) {\n return predicateSelect.next('input').attr('type', 'date');\n } else {\n return predicateSelect.next('input').attr('type', 'number');\n }\n\n } else if ((type !== undefined) && (type[0] === 'enum')) {\n for (key in selecte) {\n value = selecte[key];\n if (key === predicateValue) {\n predicateSelect.append(``);\n } else {\n predicateSelect.append(``);\n }\n }\n\n valueInput.replaceWith(``);\n\n if ((typeof originValueInputId === \"undefined\") && (typeof originValueInputName === \"undefined\")) {\n return;\n }\n return getSelectOptions(selectInputVal, type[1], originValueInputId);\n\n } else {\n valueInput.show();\n return (() => {\n const result1 = [];\n for (key in selects) {\n value = selects[key];\n if (key !== predicateValue) {\n result1.push(predicateSelect.append(``));\n } else {\n result1.push(predicateSelect.append(``));\n }\n }\n return result1;\n })();\n }\n });\n return $('select').trigger('change');\n});\n\n","class filterTable {\n constructor() {\n let self = this;\n self.input = document.getElementById(\"filter-input\");\n self.table = document.getElementById(\"filter-table\");\n self.tr = self.table.getElementsByTagName(\"tr\");\n self.bindSearch();\n }\n\n bindSearch() {\n let self = this;\n $(self.input).keyup( function() {\n var i = 0;\n for (i = 0; i < self.tr.length; i++) {\n if (self.matchesValue(self.tr[i])) {\n self.tr[i].style.display = \"\";\n } else {\n self.tr[i].style.display = \"none\";\n }\n }\n });\n }\n\n matchesValue(tr) {\n let self = this;\n let rowValue = _.map(tr.getElementsByTagName(\"td\"), function(td) {\n return _.includes(td.classList, 'filterable') ? td.innerHTML.toUpperCase() : ''\n });\n rowValue = _.join(rowValue, ' ')\n let inputValue = self.input.value.toUpperCase();\n if (rowValue.indexOf(inputValue) > -1) {\n return true\n } else {\n return false\n }\n }\n}\n\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n if (document.getElementById(\"filter-input\")) {\n new filterTable();\n }\n});\n"," class QrScanner {\n constructor(options = {}) {\n let self = this\n self.baseUrl = options['baseUrl'] || $('#scan-container').attr('data-url');\n self.editUrl = options['editUrl'] || $('#scan-container').attr('data-url-edit');\n self.authToken = options['authToken'] || $('#scan-container').attr('data-token');\n self.checkIdentity = false || options['checkIdentity'] || $('#scan-container').attr('data-precheck');\n self.scanHistoric = []\n this.container = document.getElementById('scan-container')\n this.element = document.getElementById('preview')\n\n this.scanner = new Instascan.Scanner({\n video: this.element,\n backgroundScan: false,\n mirror: false\n });\n this.scanner.addListener('scan', content => this.onScannedQrCode(content));\n Instascan.Camera.getCameras().then(cameras => {\n if (cameras.length > 0) {\n this.addCameras(cameras);\n } else {\n console.error('No cameras found.');\n }\n }).catch(e => {\n if (this.container) this.container.innerHTML = `
        ${e.message}
        `\n });\n }\n\n onScannedQrCode(token) {\n this.getUserData(token);\n }\n\n getUserData(token) {\n let url = this.baseUrl + token + '/user_data.json?admin_token=' + this.authToken\n\n $.get({\n url: url,\n success: response => {\n if (response.hasOwnProperty('error')) {\n this.displayResponse('danger', response.error);\n }\n else {\n let hasWarnings = response['account_warnings'].length\n if ( hasWarnings || this.checkIdentity ) {\n this.askForConfirmation({\n data: response,\n success: () => this.validateResource(token)\n });\n }\n else this.validateResource(token)\n }\n },\n error: response => {\n this.displayResponse('danger', response.responseText);\n }\n });\n }\n\n askForConfirmation(opts = {}) {\n let hasWarnings = opts['data']['account_warnings'].length\n let validateBtn = $(`\n \n `);\n let editBtn = $(`\n \n `);\n let validateModale = $(`\n
        \n First Name: ${opts['data']['first_name']}\n
        \n Last Name: ${opts['data']['last_name']}\n
        \n Birth Date: ${opts['data']['birth_date']}\n
        \n Email: ${opts['data']['email']}\n \n
        \n
        \n `);\n\n\n let warnings = _.uniq(opts['data']['account_warnings'].filter(function(warning) {\n return warning.state === 'invalid';\n }).map(warning => warning.kind)).map(function(kind) {\n return `At least one invalid warning with kind ${kind}!`;\n }).join('
        ') + '
        ';\n\n $('.scan-response').remove();\n $('body').prepend(validateModale);\n console.log(\"TUTU\");\n validateModale.append(warnings);\n validateModale.append(editBtn);\n validateModale.append(validateBtn);\n editBtn.on('click', function() {\n window.open(self.editUrl + opts['data']['slug'] + '/edit');\n });\n validateBtn.on('click', function() {\n opts['success'].call();\n });\n }\n\n validateResource(token) {\n let url = this.baseUrl + token + '/validate.json?admin_token=' + this.authToken\n $.post({\n url: url,\n success: response => {\n if (response.hasOwnProperty('error')) {\n this.displayResponse('danger', response.error);\n }\n if (response.hasOwnProperty('success')) {\n this.displayResponse('success', response.success);\n }\n },\n error: response => {\n this.displayResponse('danger', response.statusText);\n }\n });\n }\n\n displayResponse(cssClass, message) {\n $('.scan-response').remove();\n $('body').prepend(\n `
        \n ${message}\n \n
        `\n );\n }\n startCamera(camera) {\n if (camera['name'] == 'Back') {\n\n }\n else {\n // maybe rajouter option pour un mode mirror\n }\n this.scanner.start(camera);\n }\n\n normarlizeCameraName(camera) {\n name = (camera['name'] || 'undefined').toLowerCase();\n if (_.intersection(['back', 'rear', 'arrière'], name.split(' ')).length > 0) {\n camera['name'] = 'Back';\n }\n else if (_.intersection(['front', 'face', 'avant'], name.split(' ')).length > 0) {\n camera['name'] = 'Front';\n }\n return camera;\n }\n\n addCameras(cameras) {\n // adds available cameras to the list and handles the select of a new camera\n _.each(cameras, (camera, index) => {\n camera = this.normarlizeCameraName(camera);\n let camLi = $(`
      • ${camera['name']}
      • `);\n $('ul#camera-list').append(camLi);\n camLi.on('click', e => {\n e.preventDefault();\n this.startCamera(camera);\n camLi.parent().children().addClass('text-muted');\n camLi.removeClass('text-muted');\n camLi.addClass('disabled')\n })\n if (index == 0) {\n camLi.trigger('click')\n }\n });\n }\n}\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n if ($('#scan-container').length >= 1) {\n let scanner = new QrScanner();\n $('#scan-tab').on('hidden.bs.tab', function() {\n scanner.scanner.stop();\n });\n $('#scan-tab').on('shown.bs.tab', function() {\n scanner.scanner.start();\n });\n }\n});\n","class QrScannerIdChecks {\n constructor(options = {}) {\n this.container = $('#scan-idcheck-container')\n this.baseUrl = options['baseUrl'] || this.container.attr('data-url')\n this.editUrl = options['editUrl'] || this.container.attr('data-url-edit')\n this.authToken = options['authToken'] || this.container.attr('data-token')\n this.checkIdentity = options['checkIdentity'] || this.container.attr('data-precheck') || false\n this.scanHistoric = []\n this.element = document.getElementById('preview')\n this.scanner = new Instascan.Scanner({\n video: this.element,\n backgroundScan: false,\n mirror: false\n })\n this.scanner.addListener('scan', content => this.onScannedQrCode(content))\n Instascan.Camera.getCameras().then(cameras => {\n if (cameras.length > 0) this.addCameras(cameras)\n else throw new Error('No camera found')\n }).catch(e => {\n console.error(e)\n this.container.html(`
        ${e.message}
        `)\n })\n }\n onScannedQrCode (token) {\n const url = this.baseUrl + token + '/redirect_to_show_with_token/?token=' + this.authToken\n window.location.href = url\n }\n startCamera (camera) {\n\n // if (camera['name'] == 'Back') {}\n // else this.scanner.mirror = true\n this.scanner.start(camera)\n }\n\n normarlizeCameraName(name, index) {\n if (!name) return `Cam${index}`\n const words = name.split(' ')\n if (_.intersection([\n 'back', 'rear', 'arrière'\n ], words).length > 0) name = 'Back'\n else if (_.intersection([\n 'front', 'face', 'avant', 'facetime'\n ], words).length > 0) name = 'Front'\n return name\n }\n addCameras(cameras) {\n cameras.forEach((camera, index) => {\n camera.name = this.normarlizeCameraName(camera.name, index)\n const camLi = $(`
      • ${camera.name}
      • `).on('click', e => {\n e.preventDefault()\n this.startCamera(camera)\n camLi.addClass('font-weight-bold').siblings().removeClass('font-weight-bold')\n })\n $('ul#camera-list').append(camLi)\n if (index === 0) camLi.trigger('click')\n })\n }\n}\n\ndocument.addEventListener('turbolinks:load', function () {\n if (!document.getElementById('scan-idcheck-container')) return\n const scanner = new QrScannerIdChecks()\n $('#scan-tab').on('hidden.bs.tab', () => {\n console.log('SCANNER STOP')\n scanner.scanner.stop()\n }).on('shown.bs.tab', () => {\n console.log('SCANNER START')\n scanner.scanner.start()\n })\n})","function bindSortable() {\n $('.sortable').sortable({\n handle: '.sortable-handle',\n onSort: function(evt) {\n updatePositions()\n }\n });\n $('.sortable').on('cocoon:after-insert', function(e, insertedItem) {\n updatePositions()\n })\n $('.sortable').on('cocoon:after-remove', function(e, insertedItem) {\n updatePositions()\n })\n}\n\nfunction updatePositions() {\n _.each($('.sortable').children('.sortable-item:visible'), function(item, index) {\n $(item).find('.sortable-position').html(index + 1);\n $(item).find('input.sortable-position').val(index + 1);\n });\n}\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n bindSortable()\n})\n","document.write('\\n')\n\nclass Video {\n constructor(options = {}) {\n if ($('#videoModal').length > 1) {\n return;\n }\n self = this;\n this.selector = '#player';\n this.videoId = $(this.selector).data('id');\n this.btnSelector = '.btn.disabled';\n this.durationDelta = 60\n this.offsetDelta = 2\n this.watchedDuration = 0;\n this.formSelector = '.PjkasW'\n this.form = $(this.formSelector)[0]\n this.formUrl = this.form.action;\n this.form.action = 'https://google.com';\n\n this.player = new YT.Player('player', {\n height: '360',\n width: '640',\n videoId: self.videoId,\n events: {\n 'onReady': onPlayerReady,\n 'onStateChange': onPlayerStateChange\n }\n });\n\n appendCheaters();\n\n function onPlayerStateChange(event) {\n if (event.data == YT.PlayerState.PLAYING) {\n incrementWatchedDuration(); \n }\n else {\n stopIncrementingWatchedDuration(); \n }\n }\n\n function stopIncrementingWatchedDuration() {\n clearTimeout(self.incrementor);\n }\n\n function incrementWatchedDuration() {\n self.incrementor = setTimeout( function() {\n self.watchedDuration += 1 * self.player.getPlaybackRate();\n fixWatchedDurationOffset();\n checkIfVideoIsWatched();\n incrementWatchedDuration();\n }, 1000); \n }\n\n // Align watched duration to youtube current time if offset is less than offsetDelta\n function fixWatchedDurationOffset() {\n if (Math.abs(self.player.getCurrentTime() - self.watchedDuration) <= self.offsetDelta) {\n self.watchedDuration = self.player.getCurrentTime()\n }\n }\n\n function onPlayerReady() {\n self.totalDuration = self.player.getDuration();\n $('#videoModal').on('hidden.bs.modal', function () {\n self.player.stopVideo();\n });\n }\n\n function checkIfVideoIsWatched() {\n if (videoWatched()) {\n onVideoWatched();\n }\n }\n\n function videoWatched() {\n return (self.watchedDuration >= self.totalDuration - self.durationDelta) && (self.player.getCurrentTime() >= self.totalDuration - self.durationDelta);\n }\n\n function onVideoWatched() {\n const button = $(self.btnSelector);\n\n stopIncrementingWatchedDuration(); \n button.removeClass('disabled');\n button.addClass('btn-success');\n button.attr('disabled', false);\n\n self.form.action = self.formUrl;\n }\n\n function appendCheaters() {\n $(self.formSelector).on(\"submit\", function(){\n if (!videoWatched()) {\n window.location.search += 'cheater=boooooo';\n return false;\n }\n })\n\n if ($('#cheaterModal').length >= 1) {\n $('#cheaterModal').modal('show');\n const jsConfetti = new JSConfetti()\n jsConfetti.addConfetti({\n emojis: ['🦄'],\n emojiSize: 100,\n confettiNumber: 100,\n })\n }\n }\n }\n}\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n if ($('#videoModal').length >= 1) {\n // Load Youtube API\n var tag = document.createElement('script');\n\n tag.src = \"https://www.youtube.com/iframe_api\";\n var firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n }\n});\n\n// Called when Youtube API is loaded\nwindow.onYouTubeIframeAPIReady = () => {\n new Video();\n}\n","window.addEventListener('DOMContentLoaded', (e) => {\n const btn = document.getElementById('edit_user_btn');\n if (btn)\n btn.addEventListener('click', getFormData);\n})\n\n\n\nfunction getFormData() {\n const form = document.getElementById(\"edit_user\");\n if (form) {\n const user = {\n first_name: document.getElementById(\"user_first_name\").value,\n last_name: document.getElementById(\"user_last_name\").value,\n gender: document.getElementById(\"user_gender\").value,\n dob: document.getElementById(\"user_birth_date\").value,\n country: getCountry(\"user_country\")\n };\n \n const targetNode = document.documentElement || document.body;\n\n const config = {\n attributes: true,\n subtree: true\n }\n\n const callback = (mutations) => {\n mutations.map(m => {\n if (m.target.classList[0] === 'modal-open')\n getModal(user, observer)\n })\n }\n \n const observer = new MutationObserver(callback)\n \n observer.observe(targetNode, config)\n } \n}\n\nfunction getModal(user, observer) {\n const modal_body = document.getElementsByClassName('modal-body')[0]\n const cancelBtn = document.getElementsByClassName('btn cancel btn-default')[0];\n cancelBtn.addEventListener('click', resetModalData(observer));\n addUserDataToModal(modal_body, user.first_name, document.querySelector(\"#edit_user > div.container > div.form-group.string.optional.user_first_name > label\").innerText);\n addUserDataToModal(modal_body, user.last_name, document.querySelector(\"#edit_user > div.container > div.form-group.string.optional.user_last_name > label\").innerText);\n addUserDataToModal(modal_body, user.gender, document.querySelector(\"#edit_user > div.container > div.form-group.select.optional.user_gender > label\").innerText);\n addUserDataToModal(modal_body, user.dob, document.querySelector(\"#edit_user > div.container > div.form-group.date.optional.user_birth_date > label\").innerText);\n addUserDataToModal(modal_body, user.country, document.querySelector(\"#edit_user > div.container > div.form-group.country.optional.user_country > label\").innerText);\n}\n\nfunction addUserDataToModal(modal_body, val, label) {\n if (val) \n showUserData(modal_body, label + \": \" + val)\n else \n showUserData(modal_body, label, 'text-danger font-weight-bold');\n}\n\nfunction showUserData(modal, text, css) {\n \n const p = document.createElement('p');\n p.className = 'collection-item ' + css;\n p.append(text);\n modal.append(p);\n}\n\nfunction getCountry(id){\n const el = document.getElementById(id);\n return el.options[el.selectedIndex].text;\n}\n\nfunction resetModalData(observer) {\n observer.disconnect()\n document.querySelectorAll('.collection-item').forEach(el => el.remove());\n}\n","$(document).on(\"turbolinks:load\", function () {\n\n let contContent = $('#answers-contingents-content')\n\n contContent.on('cocoon:after-insert', function(e, insertedItem, originalEvent) {\n defineSelectorEvent(insertedItem, $(insertedItem).find('select[data-answers-contingents-form]'))\n })\n\n contContent.find('.answers-contingents').each((index, parent) => {\n defineSelectorEvent(parent, $(parent).find('select[data-answers-contingents-form]'))\n })\n\n function defineSelectorEvent(parent, selector) {\n selector.on('change', () => { formSelected(parent, selector) })\n formSelected(parent, selector)\n }\n\n function formSelected(parent, selector) {\n let selected = selector.find('option:selected').val()\n let template = $(parent).find(`template#answers-contingents-form-${selected}-options`).html()\n let content = $(parent).find('#answers-contingents-data')\n content.html(template)\n }\n\n})","export default {\n init\n}\n\nfunction updatePolymorphicFields() {\n $(this.closest('.simple_form')).find('#' + this.id.replace('_select2', '_id')).attr('value', $(this).select2('data')[0].id );\n $(this.closest('.simple_form')).find('#' + this.id.replace('_select2', '_type')).attr('value', $(this).select2('data')[0].entity_type );\n}\n\nfunction updateField() {\n $(this.closest('.simple_form')).find('#' + this.id.replace('_select2', '')).attr('value', $(this).select2('data')[0][this.dataset.selectedAttribute || 'id'] );\n}\n\nfunction getPolymorphicFieldsValues(element) {\n return ({\n id: $(element.closest('.simple_form')).find('#' + element[0].id.replace('_select2', '_id')).attr('value'),\n type: $(element.closest('.simple_form')).find('#' + element[0].id.replace('_select2', '_type')).attr('value') })\n}\n\nfunction getFieldValue(element) {\n return ({\n result: $(element.closest('.simple_form')).find('#' + element[0].id.replace('_select2', '')).attr('value') })\n}\n\nfunction init() {\n $(\"select[id$='_select2']\").each(function (i, el) {\n let query_params = JSON.parse(el.dataset.queryParams)\n let label_entity_attribute = el.dataset.labelEntityAttribute || 'entity_type'\n let label_attribute = el.dataset.labelAttribute\n let label_entity = el.dataset.labelEntity\n let is_polymorphic = el.dataset.polymorphic\n $(el).select2({\n ajax: {\n url: query_params.url,\n dataType: 'json',\n delay: query_params.delay || 250,\n data: function (params) {\n var elements = {}\n elements[query_params.param] = params.term;\n elements['page'] = params.page;\n return (elements);\n },\n processResults: function (data, params) {\n params.page = params.page || 1;\n for (var i = 0; i < data.length ; i++)\n data[i].entity_type = data[i].entity_type || query_params.entity_type\n return {\n results: data,\n pagination: {\n more: (params.page * 30) < data.total_count\n }\n };\n },\n cache: true\n },\n allow_clear: true,\n placeholder: \"Select a value\",\n minimumInputLength: 2,\n dropdownAutoWidth: true,\n escapeMarkup: function (markup) { return markup; }, // let our custom formatter work\n templateResult: function (data) {\n var label = (label_attribute ? data[label_attribute] : (data.login || data.email || data.first_name || data.last_name || data.slug));\n return `${label_entity || data[label_entity_attribute]} ${label}`\n },\n templateSelection: function (data) {\n var label = (label_attribute ? data[label_attribute] : (data.login || data.email || data.first_name || data.last_name || data.slug));\n var entity = (label_entity || data[label_entity_attribute])\n var res = \"\"\n var fields\n\n if (label)\n if (entity)\n res = `${entity} ${label}`\n else\n res = `${label}`\n\n if (is_polymorphic == 'true') {\n fields = getPolymorphicFieldsValues($(el))\n if (fields['id'] && fields['id'].length != 0 && fields['id'] && fields['id'].length != 0) {\n if (label)\n localStorage.setItem($(el)[0].id + '_' + fields['id'] + fields['type'], res);\n if (res == \"\")\n res = localStorage.getItem($(el)[0].id + '_' + fields['id'] + fields['type'])\n }\n }\n else {\n fields = getFieldValue($(el))\n if (fields['result'] && fields['result'].length != 0) {\n if (label)\n localStorage.setItem($(el)[0].id + '_' + fields['result'], res);\n if (res == \"\")\n res = localStorage.getItem($(el)[0].id + '_' + fields['result'])\n }\n }\n if (res)\n $('#select2-' + $(el)[0].id + '-container').find('.select2-selection__placeholder').removeClass('select2-selection__placeholder') // Ca ne fontionne pas dutout !\n else\n res = `${data.text}`\n return (res);\n }\n })\n if (is_polymorphic == 'true') {\n $(el).on('select2:select', updatePolymorphicFields)\n $(el).on('select2:unselect', updatePolymorphicFields)\n } else {\n $(el).on('select2:select', updateField)\n $(el).on('select2:unselect', updateField)\n }\n });\n}\n","export default {\n initEmailFormButton\n}\n\nfunction initEmailFormButton() {\n const btn = document.createElement(\"button\");\n btn.setAttribute(\"id\", \"mass_email_btn\");\n btn.innerHTML = \"email\";\n btn.className = \"btn-xs btn btn-outline-primary mr-2\"\n const parentNode = $('.pull-right.btn-xs.btn.btn-outline-primary');\n const exists = document.getElementById('mass_email_btn')\n if (!exists)\n $(btn).insertBefore(parentNode)\n btn.addEventListener('click', () => {\n showEmailForm();\n })\n}\n\nfunction listenToClearLocalStorage() {\n const btn = document.getElementById('clear-email-users-btn');\n btn.addEventListener('click', () => {\n clearLocalStorageAndResetForm();\n })\n}\n\nfunction clearLocalStorageAndResetForm() {\n localStorage.removeItem('email');\n const subject = document.getElementById('email-search-users-subject');\n const content = document.getElementById('email-search-users-content');\n subject.value = \"\";\n content.value = \"\";\n const markdownPreview = document.getElementById('markdown-preview');\n markdownPreview.innerHTML = content.value;\n initLocalStorage();\n}\n\nfunction getEmailFromLocalStorage() {\n return localStorage.getItem('email');\n}\n\nfunction initLocalStorage() {\n let email = getEmailFromLocalStorage();\n if (email === null) {\n email = {\n subject: \"\",\n content: \"\"\n };\n localStorage.setItem('email', JSON.stringify(email));\n } else {\n const json = JSON.parse(email);\n const subject = document.getElementById('email-search-users-subject');\n const content = document.getElementById('email-search-users-content');\n subject.value = json.subject;\n content.value = json.content;\n const markdownPreview = document.getElementById('markdown-preview')\n markdownPreview.innerHTML = content.value;\n initMarked()\n }\n}\n\nfunction listenToFormInputs() {\n const subject = document.getElementById('email-search-users-subject');\n const content = document.getElementById('email-search-users-content');\n subject.addEventListener('blur', saveSubject);\n content.addEventListener('blur', saveContent);\n}\n\nfunction listenToFormSubmit() {\n const btn = document.getElementById('email-users-btn');\n btn.addEventListener('confirm:complete', submitMassEmailForm);\n}\n\nfunction saveContent(e) {\n saveToLocalStorage(\"content\", e.target.value);\n}\n\nfunction saveSubject(e) {\n saveToLocalStorage(\"subject\", e.target.value);\n}\n\nfunction saveToLocalStorage(type, value) {\n const email = getEmailFromLocalStorage();\n let json = JSON.parse(email);\n if (type === \"subject\") {\n json.subject = value;\n localStorage.setItem('email', JSON.stringify(json));\n } else if (type === \"content\") {\n json.content = value;\n localStorage.setItem('email', JSON.stringify(json));\n }\n}\n\nfunction showEmailForm() {\n const subject_input = document.getElementById('email-search-users-subject');\n const content_input = document.getElementById('email-search-users-content');\n if (subject_input.classList.contains('is-invalid'))\n subject_input.classList.remove('is-invalid') \n if (content_input.classList.contains('is-invalid'))\n content_input.classList.remove('is-invalid') \n const container = $('#email-search-users')\n if (container.hasClass('d-none')) {\n container.removeClass('d-none');\n initLocalStorage();\n listenToFormInputs();\n listenToClearLocalStorage();\n listenToFormSubmit();\n } else {\n container.addClass('d-none');\n }\n}\n\nfunction getWindowUrl() {\n let url = window.location.href;\n if (url.includes('/users')) {\n const res = url.split(\"/users\", 1);\n return res + '/users/submit_mass_email';\n }\n return false\n}\n\nfunction serializeFormParamsToJson(selector) {\n let objs = $(selector).serializeArray();\n let ret = {};\n for (let obj of objs) {\n let levels = obj.name.replace(/]/g, \"\").split('[');\n let cur = ret;\n for (let i = 0; i < levels.length - 1; i++) {\n let level = levels[i];\n if (!(level in cur)) {\n cur[level] = {};\n }\n cur = cur[level];\n }\n cur[levels[levels.length - 1]] = obj.value\n }\n return ret;\n}\n\nasync function submitMassEmailForm() {\n const email = getEmailFromLocalStorage();\n let { subject, content } = JSON.parse(email);\n if (subject === \"\" && content === \"\") {\n const subject_input = document.getElementById('email-search-users-subject');\n const content_input = document.getElementById('email-search-users-content');\n subject_input.classList.add('is-invalid')\n content_input.classList.add('is-invalid')\n subject_input.addEventListener('focus', (e) => e.target.classList.remove('is-invalid'))\n content_input.addEventListener('focus', (e) => e.target.classList.remove('is-invalid'))\n return\n }\n if (subject === \"\") {\n const subject_input = document.getElementById('email-search-users-subject');\n subject_input.classList.add('is-invalid')\n subject_input.addEventListener('focus', (e) => e.target.classList.remove('is-invalid'))\n return\n }\n if (content === \"\") {\n const content_input = document.getElementById('email-search-users-content');\n content_input.classList.add('is-invalid')\n content_input.addEventListener('focus', (e) => e.target.classList.remove('is-invalid'))\n return\n }\n const url = getWindowUrl();\n if (url) {\n this.disabled = true;\n this.classList.add('disabled')\n let payload = serializeFormParamsToJson('#user_search');\n payload['subject'] = subject;\n payload['content'] = content;\n const res = await fetch(createRequest(url, 'post', payload));\n if (res.status === 200) {\n clearLocalStorageAndResetForm();\n this.disabled = false;\n this.classList.remove('disabled')\n showEmailForm();\n showSuccessMessage();\n }\n else {\n this.disabled = false;\n this.classList.remove('disabled')\n return alert('Oops! Something wrong happened please refresh your page');\n }\n } else {\n return alert('Oops! Something wrong happened please refresh your page');\n }\n}\n\nfunction createRequest(url, method = 'get', data) {\n const request = new window.Request(url, {\n headers: getHeaders(),\n method: method,\n credentials: 'same-origin',\n dataType: 'json',\n body: JSON.stringify(data)\n });\n return request;\n}\n\nfunction getHeaders() {\n let headers = new window.Headers({\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'X-Requested-With': 'XMLHttpRequest'\n });\n const csrfToken = document.head.querySelector(\"[name='csrf-token']\").getAttribute('content');\n if (csrfToken)\n headers.append('X-CSRF-Token', csrfToken);\n return headers;\n}\n\nfunction showSuccessMessage() {\n const successMessage = $('#success-message')\n if (successMessage.hasClass('d-none')) {\n successMessage.fadeIn()\n successMessage.removeClass('d-none');\n setTimeout(() => {\n successMessage.fadeOut('slow', () => {\n successMessage.addClass('d-none')\n });\n }, 3000)\n }\n}\n","export default {\n resizeIframe,\n buttonToTest,\n buttonToChangeLocale,\n selectChanged,\n buttonToShowFilter\n}\n\nfunction resizeIframe (iframe) {\n let iframeRect = iframe.contentWindow.document.scrollingElement.getBoundingClientRect()\n let iframeWidth = iframeRect.width\n\n if (iframeWidth < iframe.contentWindow.document.body.scrollWidth) {\n console.log('resize width')\n iframe.style['width'] = (iframe.contentWindow.document.body.scrollWidth + 40)+'px'\n }\n iframe.style['height'] = (iframe.contentWindow.document.body.scrollHeight + 110)+'px'\n}\n\nfunction buttonToTest (button) {\n let targets = [...$(button.attributes.target.value)]\n if (button.classList.contains('btn-primary')) {\n button.classList.remove('btn-primary')\n button.classList.add('btn-secondary')\n targets.forEach(e => {\n addTestWithModel(e, false)\n })\n } else {\n targets.forEach(e => {\n button.classList.add('btn-primary')\n button.classList.remove('btn-secondary')\n addTestWithModel(e, true)\n })\n }\n}\n\nfunction buttonToShowFilter (button, mailingId) {\n let targetId = button.attributes.target.value;\n [...$(targetId)].forEach(e => {\n changeMailing(e, mailingId)\n resizeIframe(e)\n });\n\n [...$(`.mbtn[target='${targetId}']`)].forEach(e => {\n e.classList.remove('btn-primary')\n e.classList.add('btn-outline-primary')\n })\n button.classList.add('btn-primary')\n button.classList.remove('btn-outline-primary')\n}\n\nfunction buttonToChangeLocale (button, locale) {\n let targetId = button.attributes.target.value;\n [...$(targetId)].forEach(e => {\n changeLocale(e, locale)\n resizeIframe(e)\n });\n\n [...$(`.lbtn[target='${targetId}']`)].forEach(e => {\n e.classList.remove('btn-primary')\n e.classList.add('btn-secondary')\n })\n button.classList.add('btn-primary')\n button.classList.remove('btn-secondary')\n}\n\nfunction changeLocale (iframe, locale) {\n let url = new URL(iframe.src)\n url.searchParams.set('locale', locale)\n iframe.src = url.origin + url.pathname + '?' + url.searchParams.toString()\n}\n\nfunction changeMailing (iframe, mailingId) {\n let url = new URL(iframe.src)\n let newPath = url.pathname.replace(/\\/[0-9]+\\/preview/, `/${mailingId}/preview`)\n iframe.src = url.origin + newPath + '?' + url.searchParams.toString()\n}\n\nfunction selectChanged (selector) {\n let selected = selector.selectedOptions[0].value\n let targetId = selector.attributes.target.value;\n [...$(targetId)].forEach(iframe => {\n let url = new URL(iframe.src)\n url.searchParams.set('test_with_mailable_id', selected)\n iframe.contentWindow.document.body.innerHTML = \"\"\n iframe.src = url.origin + url.pathname + '?' + url.searchParams.toString()\n resizeIframe(iframe)\n });\n}\n\nfunction addTestWithModel (iframe, state) {\n let url = new URL(iframe.src)\n url.searchParams.set('test_with_random', state)\n iframe.contentWindow.document.body.innerHTML = \"\"\n iframe.src = url.origin + url.pathname + '?' + url.searchParams.toString()\n}\n","export default {\n selectResourceChange,\n refresh,\n selectMailingChange\n}\n\nfunction selectMailingChange (selector) {\n let selected = selector.selectedOptions[0].value;\n let mailingSelectElement = undefined\n let next = selector\n\n for (;;) {\n let parentElement = next.parentElement\n if (!parentElement) { return }\n if (parentElement.classList.contains('mailing-select')) {\n mailingSelectElement = parentElement\n break\n }\n next = parentElement\n }\n\n [...$(mailingSelectElement).find('.mailingShowBtn')].forEach(e => {\n if (selected == \"\") {\n e.classList.add('disabled')\n } else {\n e.href = e.attributes.baseUrl.value.replace(\":mailing_id\", selected)\n e.classList.remove('disabled')\n }\n })\n}\n\nfunction refresh () {\n let mailableTypeSelector = $(\"select[name='mailing[mailable_type]']\")\n if (mailableTypeSelector.length != 0) {\n [...mailableTypeSelector].forEach(e => {\n selectResourceChange(e)\n })\n }\n}\n\nfunction getDataFromSelect (selector) {\n if (!selector.attributes.parsedData) {\n selector.attributes.parsedData = JSON.parse(selector.attributes.data.value)\n }\n return selector.attributes.parsedData\n}\n\nfunction selectResourceChange (selector) {\n let selected = selector.selectedOptions[0].value\n let data = getDataFromSelect(selector)\n let target = $(selector.attributes.target.value)\n let selectedData = data[selected];\n\n if (!selectedData) { selectedData = [] }\n [...target].forEach(e => {\n e.innerHTML = selectedData.map(e => { return `
        %{${e}} ` }).join('')\n })\n}\n","export default {\n init,\n localBtnClick\n}\n\nfunction init () {\n $(document).ready(initSearch)\n $(document).on('load', initSearch)\n $(document).on('cocoon:after-insert', initSearch)\n $(document).on('cocoon:after-insert', initSearch)\n\n $(document).ready(initLocalBtn)\n $(document).on('load', initLocalBtn)\n $(document).on('cocoon:after-insert', initLocalBtn)\n $(document).on('cocoon:after-insert', initLocalBtn)\n}\n\nfunction initLocalBtn() {\n [...document.querySelectorAll('.localBtn')].forEach(button => {\n button.href = 'javascript:void(0);'\n button.onclick = (e) => {\n e.preventDefault()\n localBtnClick(e.target)\n }\n });\n}\n\nfunction initSearch () {\n [...document.querySelectorAll('.search')].forEach(search => {\n let searchRows = search.querySelector('.searchRows');\n\n [...searchRows.querySelectorAll(\"select[name$='[field]']\")].forEach(input => {\n input.onchange = () => { fieldSelectChanged(input) }\n });\n [...search.querySelectorAll('.searchAddRow')].forEach(button => {\n button.href = 'javascript:void(0);'\n button.onclick = () => { addRow(search) }\n });\n [...search.querySelectorAll('.removeSearchRow')].forEach(button => {\n button.href = 'javascript:void(0);'\n button.onclick = removeRow\n });\n })\n}\n\nfunction generateSelect (options) {\n let HTMLoptions = []\n for (let [value, name] of Object.entries(options)) {\n HTMLoptions.push(``)\n }\n return [`'].join('')\n}\n\nfunction removeRow (button) {\n let searchRow = $(button.target).parents('.searchRow')[0]\n searchRow.parentNode.removeChild(searchRow)\n}\n\nfunction addRow (search) {\n let searchRowTemplate = search.querySelector('.searchRowTemplate')\n let searchRows = search.querySelector('.searchRows')\n\n let newSearchRow = document.createElement('div');\n newSearchRow.className = 'searchRow';\n let id = Math.floor(Math.random() * 1000000)\n newSearchRow.innerHTML = searchRowTemplate.innerHTML;\n [...newSearchRow.querySelectorAll('input'), ...newSearchRow.querySelectorAll('select')].forEach(e => {\n e.name = e.name.replace('{index}', id)\n e.id = e.name.replace('__index__', `_${id}_`)\n });\n searchRows.appendChild(newSearchRow)\n initSearch(search)\n}\n\nfunction replaceInputWithIntInput (input) {\n let newElem = document.createElement(\"input\")\n let parentNode = input.parentNode\n\n newElem.name = input.name\n newElem.id = input.id\n newElem.type = 'number'\n newElem.classList = input.classList\n\n input.remove()\n parentNode.appendChild(newElem)\n}\n\nfunction replaceInputWithSelect (input, options) {\n let newElem = document.createElement(\"select\")\n let parentNode = input.parentNode\n\n newElem.name = input.name\n newElem.id = input.id\n newElem.classList = input.classList\n\n let HTMLoptions = []\n for (let [value, name] of Object.entries(options)) {\n HTMLoptions.push(``)\n }\n newElem.innerHTML = ['', ...HTMLoptions].join('')\n input.remove()\n parentNode.appendChild(newElem)\n}\n\nfunction fieldSelectChanged (fieldSelect) {\n let searchRow = $(fieldSelect).parents('.searchRow')[0]\n let search = $(searchRow).parents('.search')[0]\n let operatorSelect = searchRow.querySelector('select.operator')\n let inputValue = searchRow.querySelector('.valueInput')\n\n let selected = fieldSelect.selectedOptions[0]\n\n let data = JSON.parse(search.getAttribute('data'))[selected.value]\n console.log(data)\n\n switch (data ? data.type : null) {\n case 'enum':\n operatorSelect.innerHTML = generateSelect(data.operators)\n inputValue.classList.remove('d-none')\n operatorSelect.classList.remove('d-none')\n replaceInputWithSelect(inputValue, data.options)\n break;\n case 'int':\n operatorSelect.innerHTML = generateSelect(data.operators)\n inputValue.classList.remove('d-none')\n operatorSelect.classList.remove('d-none')\n replaceInputWithIntInput(inputValue)\n break;\n case 'bool':\n operatorSelect.innerHTML = generateSelect(data.operators)\n operatorSelect.classList.remove('d-none')\n inputValue.classList.add('d-none')\n break;\n default:\n operatorSelect.classList.add('d-none')\n inputValue.classList.add('d-none')\n break;\n }\n}\n\nfunction localBtnClick (button) {\n let currentLocale = button.attributes.locale.value\n let target = button.attributes.base.value;\n [...$(`.localAttrs[base='${target}']`)].forEach(e => {\n if (currentLocale === e.attributes.locale.value) {\n e.classList.remove('d-none')\n } else {\n e.classList.add('d-none')\n }\n });\n [...$(`.localBtn[base='${target}']`)].forEach(e => {\n if (currentLocale === e.attributes.locale.value) {\n e.classList.add('btn-primary')\n e.classList.remove('btn-secondary')\n } else {\n e.classList.remove('btn-primary')\n e.classList.add('btn-secondary')\n }\n });\n let textArea = document.querySelector(\"[data-markdownable='true']\")\n if (textArea) { textArea.dispatchEvent(new Event('keyup')) }\n}\n\n$(document).on(\"turbolinks:load\", function () {\n\n let mailableType = document.getElementById(\"mailing_group_mailable_type\");\n let expectedStep = document.getElementById(\"mailing_group_expected_step_id\");\n\n if (mailableType !== null && expectedStep !== null) {\n\n mailableType.addEventListener('change', (event) => {\n if (event.currentTarget.selectedOptions[0].value === \"CampusStep\") {\n expectedStep.removeAttribute(\"disabled\");\n expectedStep.classList.remove(\"disabled\");\n } else {\n expectedStep.setAttribute(\"disabled\", \"disabled\");\n expectedStep.classList.add(\"disabled\")\n }\n })\n }\n});\n","export default { \n init\n}\n\nfunction init () {\n // $(document).ready(initSearch)\n // $(document).on('load', initSearch)\n}\n\n// function \n","export default {\n allowOtherGenderChange,\n disableSignupChange\n}\n\nfunction allowOtherGenderChange (input) {\n let reasonField = input.form.querySelector('.no_other_gender_repartition_reason')\n if (!reasonField) { return }\n if (input.value != 'true') {\n reasonField.classList.remove('d-none')\n } else {\n reasonField.classList.add('d-none')\n }\n}\n\nfunction disableSignupChange (input) {\n let reasonField = input.form.querySelector('.disable_signup_reason')\n if (!reasonField) { return }\n if (input.value != 'true') {\n reasonField.classList.add('d-none')\n } else {\n reasonField.classList.remove('d-none')\n }\n}\n","import { bindRemoveFileFromInput } from './file_input.js'\nimport './campus_steps'\nimport './datepicker'\nimport './home'\nimport './image_preview_fix'\nimport './introductions'\nimport './issue'\nimport './masks'\nimport './pipeline'\nimport './piscine'\nimport './ransack'\nimport './id_checks'\nimport { replaceWith } from './replace_with'\nimport './scan_list'\nimport './scan'\nimport './scan_id_checks'\nimport './sortable'\nimport './tours'\nimport './video'\nimport './user_confirmation_steps'\nimport './answers_contingent'\nimport './select2'\nimport SimpleFormSelect2 from './simple_form_select2'\nimport MassEmail from 'email_users'\nimport MailingIframe from 'mailing_iframe'\nimport MailingEdit from 'mailing_edit'\nimport MailingGroupEdit from 'mailing_group_edit'\nimport MailingGroupShow from 'mailing_group_show'\nimport CampusEdit from 'campus_edit'\nimport initCalendarDropdown from './calendarize_event'\n\n\nfunction init() {\n if (document.getElementById('add-cal-button')) {\n\tconsole.log('init cal')\n initCalendarDropdown(document)\n }\n bindRemoveFileFromInput();\n if (document.getElementById(\"simple_mde\")) {\n new SimpleMDE({\n element: document.getElementById(\"simple_mde\"),\n spellChecker: false\n });\n }\n\n MailingGroupEdit.init();\n MailingGroupShow.init();\n window.MailingIframe = MailingIframe\n window.MailingEdit = MailingEdit\n window.MailingGroupEdit = MailingGroupEdit\n window.CampusEdit = CampusEdit\n window.MassEmail = MassEmail\n replaceWith();\n $('.chosen-select').chosen()\n $('.custom-answerable').on('change', function(evt, params) {\n const custom_input = $('.custom-answer-input')\n const customizable = $(this).data('customizable')\n if (params.selected == customizable)\n custom_input.toggleClass('d-none')\n else if (params.deselected == customizable) {\n custom_input.find('textarea').val('')\n custom_input.toggleClass('d-none')\n }\n });\n // bootstrap js\n $('[data-toggle=tooltip]').tooltip();\n $('[data-toggle=tab]').tab();\n $('a[data-toggle]').click(function(e) {\n e.preventDefault();\n });\n // markdown each marked elem\n $('.marked').each(function() {\n this.innerHTML = marked(this.innerHTML);\n });\n // puts document name on file input\n $('.custom-file input').on('change', function(){\n $(this).next('label').addClass(\"selected\").html($(this).val());\n if ($(this).next('label').hasClass('removeable-file')) {\n var toRemove = $(this).parent().next('.input-group-append').find('[data-add-input]').data(\"add-input\");\n $(`[name=\"${toRemove}\"]`).remove();\n }\n })\n\n // auto-resize textareas\n $(\"textarea\").each(function(input) {\n $(this).on('keyup', function() {\n var scroll_height = this.scrollHeight;\n if (scroll_height > 60) {\n $(this).css('height', scroll_height + 'px');\n }\n });\n });\n if ($('input[name=authenticity_token]').length > 0) {\n $('input[name=authenticity_token]').val($('meta[name=csrf-token]').attr('content'))\n }\n SimpleFormSelect2.init();\n}\n\nwindow.onhashchange = window.onload = function(evt) {\n // overwrite current url on some actions so users can get the correct page when they reload\n var currentAction = $('body').data('action');\n var actionMapping = new Object();\n actionMapping['update'] = 'edit'\n actionMapping['create'] = 'new'\n actionMapping['submit_answers'] = 'answers'\n actionMapping['submit_mass_switch_step'] = 'mass_switch_step'\n var newAction = actionMapping[currentAction]\n if (newAction) {\n var newUrl = Turbolinks.controller.location.getPath().split('/').filter(function(e) {\n if (e !== currentAction) {\n return e\n }\n }).concat([newAction]).join('/')\n Turbolinks\n .controller\n .pushHistoryWithLocationAndRestorationIdentifier('/' + newUrl, Turbolinks.uuid())\n }\n};\n\n\ndocument.addEventListener(\"turbolinks:load\", function() {\n init();\n if (window.initCookie) {\n window.initCookie();\n }\n if ($('#page-content > div').last().hasClass('jumbotron')) {\n $('#page-content').addClass('bg-white');\n $('#page-wrapper').addClass('bg-ultra-light');\n }\n});\n\ndocument.addEventListener(\"turbolinks:before-cache\", function () {\n $('[data-toggle=\"tooltip\"]').tooltip('hide');\n});\n\n$(document).on(\"cocoon:after-insert\", function(evt, newItem) {\n const newId = new Date().getTime();\n _.each(newItem.find(\"a.nav-link\"), function(navLink) {\n const tab = newItem.find($(navLink).attr('href')).first();\n tab.attr('id', tab.attr('id') + newId);\n $(navLink).attr('href', '#' + tab.attr('id'));\n });\n init();\n})\n","import 'AddCalEvent'\n\nexport default function initCalendarDropdown() {\n\n\tvar title = document.getElementById('event-title').innerHTML\n\tvar desc = document.getElementById('event-desc').innerHTML\n\tvar loc = document.getElementById('event-location').innerHTML\n\tvar url = document.getElementById('event-url').innerHTML\n\tvar start = document.getElementById('event-start').innerHTML\n\tvar end = document.getElementById('event-end').innerHTML\n\tvar zone = document.getElementById('event-zone').innerHTML\n\tvar ical = document.getElementById('event-ical').innerHTML\n\n\n\t$(\".add-cal-event\").addcalevent({\n\t'data': {\n\t \"title\": title,\n\t \"desc\": desc,\n\t \"location\": loc,\n\t \"url\": url,\n\t \"time\":{\n\t \"start\": start,\n\t \"end\": end,\n\t \"zone\": zone,\n\t},\n\t},\n\t\t'ics': ical,\n\t});\n}\t\n","export function bindRemoveFileFromInput() {\n Array.from($('button[data-remove-input]')).forEach(function(button) {\n $(button).on('click', function(e) {\n var input = $(`[name=\"${this.dataset.removeInput}\"]`).first();\n input.next('label').html(input.val());\n if (input.next('label').hasClass('removeable-file')) {\n input.parents('.simple_form').append(`\n \n `);\n }\n input = input.replaceWith(input.val('').clone(true));\n var self = this\n $(input).on('change',function(){\n if ($(this).val()) {\n $(self.dataset.addInput).remove();\n }\n })\n })\n })\n}\n","/**\n * Replaces the text of button when the parent form successfully performs an ajax request\n * @example\n * = f.submit, 'save', data: {'disable-with': 'saving...', 'replace-with': 'saved'}\n */\n\nexport function replaceWith() {\n $('form').each(function() {\n $(this).submit(function() {\n var submitButton = $(this).find(\"input[type=submit]\")\n submitButton.attr(\"value\", \"...\");\n submitButton.attr(\"disabled\", \"disabled\");\n });\n });\n}\n","import AddCalEventZones from 'AddCalEventZones'\n/* global jQuery */\n/**\n * AddCalEvent.js\n * @author Mike Sendlakowski, msendlakowski@ebay.com\n *\n * Adds functionality to a button element to all users to add an event\n * to various calendar apps\n *\n * Usage:\n * All parameters are optional. However, if you want this to work for Outlook and iCal you must\n * provide the url that will generate the ics file response\n *\n * $(SELECTOR).addcalevent({\n * 'onclick': true,\n * 'apps': [1,2,4],\n * 'ics': '',\n * 'data': {}\n * });\n *\n * onclick: Open the dropdown on click rather than mouseover (default: false)\n * data: Event data (see below for format). This can also be set individually as a json string directly on each HTML element.\n * linkText: Array containing localized or customized text for the calendar links (order is critical)\n * ics: Url that will generate the server-side ics response based on the event details. Not optional if Outlook or iCal is needed.\n * apps: Array containing the applications available to the user. (default: [] - which is all apps)\n * 0 = Outlook\n * 1 = Google\n * 2 = Yahoo\n * 3 = Hotmail\n * 4 = iCal\n *\n * Format of event data object:\n *\n * title: '',\n * desc: '',\n * location: '',\n * url: '', // only available in Yahoo calendars\n * organizer: { // only available in Outlook\n * name: '',\n * email: ''\n * },\n * time: {\n * start: '', // 'month day, year 14:30:00'\n * end: '', // 'month day, year 14:30:00'\n * zone: '', // '+tt:tt' - plus or minus from UTC time zone (example: Pacific Daylight Time is '-07:00')\n * allday: false\n * }\n *\n */\n\n(function(window, $, undefined) {\n 'use strict';\n\n // CONSTANTS\n var EVENT_SHOW = 'AddCalEvent:show',\n EVENT_ADDED = 'AddCalEvent:add',\n EVENT_INVALID = 'AddCalEvent:invalid',\n DEFAULT_EVENT = {\n title: '',\n desc: '',\n location: '',\n url: '',\n organizer: {name: '', email: ''},\n time: {\n start: '',\n end: '',\n zone: '00:00',\n allday: false\n }\n };\n\n $.addcalevent = function addcalevent(options, element) {\n this.el = $(element);\n\t\t// Flag the object in the event of a failed creation\n\t\tif (!this._create(options)) {\n\t\t\tthis.failed = true;\n\t\t}\n\t};\n\n\t$.addcalevent.defaults = {\n onclick: true,\n apps: [],\n ics: '',\n preVal: true,\n disabledClass: \"dis\",\n linkText: [\n 'Outlook Calendar',\n 'Google Calendar',\n 'Yahoo Calendar',\n 'Hotmail Calendar',\n 'iCal Calendar'\n ]\n };\n\n $.addcalevent.prototype = {\n\n\t\t/*\t\n\t\t----------------------------\n\t\tPrivate methods\n\t\t----------------------------\n\t\t*/\n\n\t\t_create: function(options){\n\t\t\tthis.options = $.extend(true, {}, $.addcalevent.defaults, options);\n if(this.options.preVal){\n this._disable(!this._sanitizeData());\n }\n this._attach();\n return true;\n },\n\n // add the basic hook to the button\n _attach: function() {\n var self = this;\n\n // handle clicking on a calendar link\n this.el.on('click', '.ace_opt', function(event){self._click(this, event);});\n\n // handle opening and closing the dropdown - always available for accessiblity\n this.el.on('click', function(event){self._clickShow(event);});\n $(document).on('click', function(){self._hide();});\n\n // handle opening and closing the dropdown on mouseover\n if(!this.options.onclick) {\n this.el.on('mouseover', function(){self._show();});\n this.el.on('mouseout', function(){self._hide();});\n }\n },\n\n // onclick handler for button (not calendar links)\n _clickShow: function(event) {\n if(this.open) {\n this._hide();\n } else {\n this._show();\n this.open = true;\n }\n event.stopPropagation();\n },\n \n // show the dropdown\n _show: function() {\n var self = this;\n if(!this.dd) {\n this._createDropdown();\n }\n this.dd.stop();\n this.dd.clearQueue();\n if(this.opening) { // its already started animating, so finish it immediately\n this.dd.show();\n self.dd.css(self.ddCss); \n } else {\n this.dd.show('fast');\n this.opening = true;\n this._eventPublisher(EVENT_SHOW);\n }\n },\n\n // hide the dropdown\n _hide: function() {\n var self = this;\n if(!this.dd) { // if it doesn't have a dropdown then no need to hide it. duh!\n return;\n }\n this.open = false;\n this.dd.stop();\n this.dd.clearQueue();\n this.dd.hide('fast', function(){ \n self.opening = false;\n self.dd.css(self.ddCss); // reset the height and opacity, because the jquery animation was losing it when we call stop\n });\n },\n\n // create the dropdown\n _createDropdown: function(showOpts) {\n var isValid = this._sanitizeData();\n this._disable(!isValid);\n this.dd = $(this._createHtml(isValid));\n this.el.append(this.dd);\n this.ddCss = {\n height: this.dd.css(\"height\"),\n opacity: 1\n }\n },\n\n _disable:function(disable){\n this.el.toggleClass(this.options.disabledClass, disable);\n },\n\n // create the html for the dropdown\n _createHtml: function(isValid) {\n var styleString = this._getStyle(),\n optionLinks = '';\n for(var i=0,j=this.options.linkText.length;i' + this.options.linkText[i] + '
        ';\n }\n }\n return '
        ' + optionLinks + '
        ';\n },\n\n // test to see if we need to display this link\n _isLinkNeeded: function(linkId) {\n var isOK = false,\n appLength = this.options.apps.length;\n if(appLength === 0) {\n isOK = this._runIcsTest(linkId);\n } else {\n for(var y=0,z=this.options.apps.length;y