nextcloud/core/js/dist/install.js.map

1 line
802 KiB
Plaintext

{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/vue-style-loader/lib/listToStyles.js","webpack:///./node_modules/vue-style-loader/lib/addStylesClient.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/jquery-ui/ui/widgets/button.js","webpack:///./node_modules/jquery-ui/ui/widgets/controlgroup.js","webpack:///./node_modules/jquery-ui/ui/widgets/checkboxradio.js","webpack:///./node_modules/jquery-ui/ui/form-reset-mixin.js","webpack:///./node_modules/jquery-ui/ui/form.js","webpack:///./node_modules/jquery-ui/ui/labels.js","webpack:///./node_modules/jquery-ui/ui/keycode.js","webpack:///./node_modules/jquery-ui/themes/base/theme.css?a20c","webpack:///./node_modules/jquery-ui/themes/base/theme.css","webpack:///./node_modules/@nextcloud/l10n/dist/index.js","webpack:///./node_modules/jquery-ui/themes/base/images/ui-icons_444444_256x240.png","webpack:///./node_modules/jquery-ui/themes/base/images/ui-icons_555555_256x240.png","webpack:///./node_modules/jquery-ui/themes/base/images/ui-icons_ffffff_256x240.png","webpack:///./node_modules/jquery-ui/themes/base/images/ui-icons_777620_256x240.png","webpack:///./node_modules/jquery-ui/themes/base/images/ui-icons_cc0000_256x240.png","webpack:///./node_modules/jquery-ui/themes/base/images/ui-icons_777777_256x240.png","webpack:///./node_modules/jquery-ui/themes/base/button.css?81c6","webpack:///./node_modules/jquery-ui/themes/base/button.css","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./core/src/install.js","webpack:///./core/src/Util/get-url-parameter.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/core-js/modules/es.array.for-each.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/internals/freezing.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/@nextcloud/event-bus/dist/ProxyBus.js","webpack:///./node_modules/@nextcloud/event-bus/node_modules/semver/semver.js","webpack:///./node_modules/@nextcloud/event-bus/dist/SimpleBus.js","webpack:///./node_modules/core-js/internals/object-to-string.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/classof-raw.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/core-js/internals/array-method-uses-to-length.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/css-loader/dist/runtime/getUrl.js","webpack:///./node_modules/jquery-ui/ui/version.js","webpack:///./node_modules/@nextcloud/event-bus/dist/index.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./core/src/OC/requesttoken.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/strengthify/jquery.strengthify.js","webpack:///./node_modules/strengthify/strengthify.css?7441","webpack:///./node_modules/strengthify/strengthify.css","webpack:///./core/src/jquery/showpassword.js","webpack:///./node_modules/jquery-ui/ui/widget.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/jquery-ui/ui/escape-selector.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/internals/internal-metadata.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/internals/iterate.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","global","factory","window","this","noGlobal","arr","slice","concat","push","indexOf","class2type","toString","hasOwn","support","document","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","isArraylike","obj","length","type","isWindow","nodeType","jquery","constructor","toArray","num","pushStack","elems","ret","merge","prevObject","each","callback","args","map","elem","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","options","src","copy","copyIsArray","clone","target","deep","isFunction","isPlainObject","isArray","undefined","expando","Math","random","replace","isReady","error","msg","Error","noop","Array","isNumeric","parseFloat","isEmptyObject","globalEval","code","script","indirect","eval","trim","createElement","text","head","appendChild","parentNode","removeChild","camelCase","string","nodeName","toLowerCase","makeArray","results","inArray","second","grep","invert","matches","callbackExpect","arg","guid","proxy","tmp","now","Date","split","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","pop","push_native","list","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","unloadHandler","childNodes","e","els","seed","match","groups","old","nid","newContext","newSelector","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","getAttribute","setAttribute","toSelector","testContext","join","querySelectorAll","qsaError","removeAttribute","keys","cache","cacheLength","shift","markFunction","assert","div","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","parent","doc","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","find","filter","attrId","getAttributeNode","tag","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","dir","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","outerCache","nodeIndex","start","useCache","lastChild","pseudo","setFilters","idx","matched","matcher","unmatched","innerText","lang","elemLang","hash","location","activeElement","hasFocus","href","tabIndex","disabled","checked","selected","selectedIndex","radio","checkbox","file","password","image","submit","reset","tokens","addCombinator","combinator","base","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","div1","defaultValue","unique","isXMLDoc","rneedsContext","needsContext","rsingleTag","risSimple","winnow","qualifier","not","self","is","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","next","prev","sibling","until","truncate","has","targets","closest","pos","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","reverse","readyList","rnotwhite","optionsCache","completed","removeEventListener","Callbacks","flag","createOptions","memory","fired","firing","firingStart","firingLength","firingIndex","stack","once","fire","data","stopOnFalse","disable","remove","empty","lock","locked","fireWith","Deferred","func","tuples","state","promise","always","deferred","fail","then","fns","newDefer","tuple","returned","resolve","reject","progress","notify","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","remaining","updateFunc","values","notifyWith","resolveWith","readyWait","holdReady","hold","wait","triggerHandler","off","readyState","setTimeout","access","chainable","emptyGet","raw","bulk","Data","uid","acceptData","owner","accepts","descriptor","unlock","defineProperties","set","prop","stored","camel","hasData","discard","data_priv","data_user","rbrace","rmultiDash","dataAttr","parseJSON","removeData","_data","_removeData","camelKey","queue","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","cssExpand","isHidden","el","css","rcheckableType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","focusinBubbles","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","event","types","handleObjIn","eventHandle","events","handleObj","special","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","trigger","onlyHandlers","bubbleType","ontype","eventPath","Event","isTrigger","namespace_re","noBubble","parentWindow","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","button","props","fixHooks","keyHooks","original","which","charCode","keyCode","mouseHooks","eventDoc","body","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","originalEvent","fixHook","load","focus","blur","click","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","relatedTarget","attaches","on","one","origFn","rxhtmlTag","rtagName","rhtml","rnoInnerhtml","rchecked","rscriptType","rscriptTypeMasked","rcleanScript","wrapMap","option","thead","col","tr","td","manipulationTarget","content","disableScript","restoreScript","setGlobalEval","refElements","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","getAll","optgroup","tbody","tfoot","colgroup","caption","th","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","buildFragment","scripts","selection","wrap","fragment","nodes","createTextNode","cleanData","append","domManip","prepend","insertBefore","before","after","keepData","html","replaceWith","replaceChild","detach","hasScripts","iNoClone","_evalUrl","appendTo","prependTo","insertAfter","replaceAll","insert","iframe","elemdisplay","actualDisplay","style","display","getDefaultComputedStyle","defaultDisplay","write","close","rmargin","rnumnonpx","getStyles","opener","getComputedStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","addGetHookIf","conditionFn","hookFn","pixelPositionVal","boxSizingReliableVal","container","computePixelPositionAndBoxSizingReliable","cssText","divStyle","backgroundClip","clearCloneStyle","pixelPosition","boxSizingReliable","reliableMarginRight","marginDiv","marginRight","swap","rdisplayswap","rnumsplit","rrelNum","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","vendorPropName","capName","origName","setPositiveNumber","subtract","max","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","showHide","show","hidden","Tween","easing","cssHooks","opacity","cssNumber","cssProps","margin","padding","border","prefix","suffix","expand","expanded","parts","hide","toggle","unit","propHooks","run","percent","eased","duration","step","tween","fx","linear","swing","cos","PI","fxNow","timerId","rfxtypes","rfxnum","rrun","animationPrefilters","opts","oldfire","anim","dataShow","unqueued","overflow","overflowX","overflowY","createTween","tweeners","scale","maxIterations","createFxNow","genFx","includeWidth","height","animation","collection","Animation","properties","stopped","tick","currentTime","startTime","tweens","specialEasing","originalProperties","originalOptions","gotoEnd","rejectWith","propFilter","timer","complete","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","optDisabled","radioValue","boolHook","removeAttr","nType","attrHooks","bool","nodeHook","propName","attrNames","propFix","rfocusable","removeProp","hasAttribute","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","valHooks","optionSet","hover","fnOver","fnOut","unbind","delegate","undelegate","nonce","rquery","JSON","parse","parseXML","DOMParser","parseFromString","rhash","rts","rheaders","rnoContent","rprotocol","rurl","prefilters","transports","allTypes","ajaxLocation","ajaxLocParts","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","isLocal","processData","async","contentType","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","fireGlobals","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","mimeType","status","abort","statusText","finalText","success","method","crossDomain","param","traditional","hasContent","ifModified","headers","beforeSend","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","unwrap","visible","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","v","encodeURIComponent","serialize","serializeArray","xhr","XMLHttpRequest","xhrId","xhrCallbacks","xhrSuccessStatus","0","1223","xhrSupported","cors","open","username","xhrFields","onload","onerror","responseText","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","getWindow","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","left","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","size","andSelf","_jQuery","_$","$","noConflict","w","it","fails","replacement","isForced","feature","detection","normalize","POLYFILL","NATIVE","isObject","SPECIES","wellKnownSymbol","originalArray","C","toIndexedObject","addToUnscopables","Iterators","InternalStateModule","defineIterator","setInternalState","getInternalState","getterFor","iterated","kind","Arguments","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","O","tryGet","callee","useSourceMap","item","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","stringify","sourceURLs","sources","sourceRoot","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","_i","listToStyles","parentId","newStyles","part","media","hasDocument","DEBUG","stylesInDom","singletonElement","singletonCounter","isProduction","isOldIE","navigator","userAgent","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","addStyle","createStyleElement","styleElement","update","querySelector","styleIndex","applyToSingletonTag","applyToTag","newObj","textStore","replaceText","Boolean","styleSheet","cssNode","ssrId","toObject","toLength","createProperty","arraySpeciesCreate","arrayMethodHasSpeciesSupport","V8_VERSION","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","array","SPECIES_SUPPORT","isConcatSpreadable","spreadable","proto","forced","k","E","A","TypeError","toInteger","min","integer","definePropertyModule","UNSCOPABLES","ArrayPrototype","f","configurable","widget","version","defaultElement","icon","iconPosition","label","showLabel","_getCreateOptions","_super","isInput","element","originalLabel","_create","hasTitle","_addClass","_setOption","_enhance","_on","ui","SPACE","_updateIcon","_updateTooltip","title","displayBlock","_removeClass","_attachIcon","iconSpace","_attachIconSpace","_destroy","_setOptions","newShowLabel","newIcon","_toggleClass","refresh","isDisabled","uiBackCompat","icons","primary","secondary","_superApply","tagName","checkboxradio","buttonset","controlgroup","items","controlgroupCornerRegex","direction","onlyVisible","_callChildMethod","childWidgets","controlgroupLabel","_initWidgets","that","labels","instance","instanceOptions","_resolveClassesValues","widgetElement","_updateCornerClass","_buildSimpleOptions","_spinnerOptions","_buttonOptions","_checkboxradioOptions","_selectmenuOptions","middle","only","widgetName","formResetMixin","_readType","outerHTML","_bindFormResetHandler","_updateLabel","change","_getRadioGroup","nameSelector","escapeSelector","form","_toggleClasses","_unbindFormResetHandler","toAdd","_formResetHandler","instances","ancestor","ancestors","BACKSPACE","COMMA","DELETE","DOWN","END","ENTER","ESCAPE","HOME","LEFT","PAGE_DOWN","PAGE_UP","PERIOD","RIGHT","TAB","UP","locals","default","___CSS_LOADER_API_IMPORT___","___CSS_LOADER_GET_URL_IMPORT___","___CSS_LOADER_URL_IMPORT_0___","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_IMPORT_3___","___CSS_LOADER_URL_IMPORT_4___","___CSS_LOADER_URL_IMPORT_5___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","___CSS_LOADER_URL_REPLACEMENT_4___","___CSS_LOADER_URL_REPLACEMENT_5___","getLocale","OC","console","warn","getLanguage","translate","app","vars","L10N","translatePlural","textSingular","textPlural","getFirstDay","firstDay","getDayNames","dayNames","getDayNamesShort","dayNamesShort","getDayNamesMin","dayNamesMin","getMonthNames","monthNames","getMonthNamesShort","monthNamesShort","EXISTS","dbtypes","post","redirectURL","decodeURIComponent","search","redirectURLInput","currentDbType","strengthify","zxcvbn","linkTo","titles","drawTitles","getToken","showPassword","keyup","store","functionToString","Function","inspectSource","IS_PURE","copyright","DESCRIPTORS","IE8_DOM_DEFINE","anObject","toPrimitive","nativeDefineProperty","P","Attributes","internalObjectKeys","hiddenKeys","getOwnPropertyNames","createPropertyDescriptor","propertyKey","getOwnPropertySymbols","process","versions","v8","setGlobal","names","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","nextTick","browser","env","argv","addListener","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","forEach","$forEach","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","callbackfn","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","getPrototypeOf","createNonEnumerableProperty","ITERATOR","BUGGY_SAFARI_ITERATORS","redefine","getBuiltIn","CONSTRUCTOR_NAME","Constructor","requireObjectCoercible","createMethod","CONVERT_TO_STRING","$this","S","charCodeAt","charAt","codeAt","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","toAbsoluteIndex","IS_INCLUDES","fromIndex","includes","$filter","HAS_SPECIES_SUPPORT","enumBugKeys","isExtensible","preventExtensions","classof","nativePropertyIsEnumerable","propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","1","V","InternalMetadataModule","iterate","anInstance","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","wrapper","common","IS_MAP","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","KEY","nativeMethod","entries","getConstructor","REQUIRED","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","iterable","BUGGY_ZERO","$instance","dummy","clear","setStrong","SAFE_CLOSING","called","iteratorWithReturn","from","SKIP_CLOSING","ITERATION_SUPPORT","setPrototypeOf","Wrapper","NewTarget","NewTargetPrototype","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","objectKeys","Properties","returnThis","IteratorConstructor","NAME","F","point","copyConstructorProperties","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","g","enforceInternalState","enforce","TEMPLATE","unsafe","WeakMap","ownKeys","getOwnPropertyDescriptorModule","NATIVE_SYMBOL","iterator","collectionStrong","ENTRIES","returnMethod","redefineAll","setSpecies","fastKey","internalStateGetterFor","define","previous","entry","getEntry","removed","boundFunction","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","ArrayIteratorMethods","ArrayValues","METHOD_NAME","ProxyBus","_semver","_defineProperties","writable","packageJson","bus","_classCallCheck","_defineProperty","getVersion","valid","major","protoProps","staticProps","subscribe","unsubscribe","debug","NODE_DEBUG","log","SEMVER_SPEC_VERSION","MAX_SAFE_INTEGER","Number","re","R","tok","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","MAINVERSION","MAINVERSIONLOOSE","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","PRERELEASE","PRERELEASELOOSE","BUILDIDENTIFIER","BUILD","FULLPLAIN","FULL","LOOSEPLAIN","LOOSE","GTLT","XRANGEIDENTIFIERLOOSE","XRANGEIDENTIFIER","XRANGEPLAIN","XRANGEPLAINLOOSE","XRANGE","XRANGELOOSE","COERCE","COERCERTL","LONETILDE","TILDETRIM","TILDE","TILDELOOSE","LONECARET","CARETTRIM","CARET","CARETLOOSE","COMPARATORLOOSE","COMPARATOR","COMPARATORTRIM","HYPHENRANGE","HYPHENRANGELOOSE","STAR","loose","includePrerelease","SemVer","er","minor","patch","prerelease","build","format","clean","other","compareMain","comparePre","compareIdentifiers","compareBuild","inc","release","isNaN","version1","version2","v1","v2","defaultResult","numeric","anum","bnum","gt","lt","neq","gte","lte","cmp","op","Comparator","comp","semver","ANY","rcompareIdentifiers","compareLoose","versionA","versionB","rcompare","rsort","Range","range","parseRange","isSatisfiable","comparators","remainingComparators","testComparator","every","otherComparator","intersects","isX","hyphenReplace","$0","fM","fm","fp","fpr","fb","tM","tm","tp","tpr","tb","testSet","allowed","satisfies","outside","hilo","gtfn","ltefn","ltfn","ecomp","low","comparator","rangeTmp","sameDirectionIncreasing","sameDirectionDecreasing","sameSemVer","differentDirectionsInclusive","oppositeDirectionsLessThan","oppositeDirectionsGreaterThan","comps","hr","compRe","M","pr","replaceCaret","replaceCarets","replaceTilde","replaceTildes","gtlt","xM","xm","xp","anyX","replaceXRange","replaceXRanges","replaceStars","parseComparator","some","thisComparators","rangeComparators","thisComparator","rangeComparator","toComparators","maxSatisfying","maxSV","rangeObj","minSatisfying","minSV","minVersion","minver","compver","validRange","ltr","gtr","r1","r2","coerce","rtl","lastIndex","SimpleBus","Map","h","IndexedObject","NATIVE_WEAK_MAP","objectHas","sharedKey","wmget","wmhas","wmset","metadata","STATE","TYPE","path","aFunction","variable","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","specificCreate","findIndex","ceil","floor","thrower","ACCESSORS","argument0","argument1","propertyIsEnumerableModule","nativeGetOwnPropertyDescriptor","bitmap","PREFERRED_STRING","valueOf","TAG","needQuotes","_ProxyBus","_SimpleBus","_eventBus","_nc_event_bus","activeXDocument","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","LT","NullProtoObject","domain","ActiveXObject","iframeDocument","NullProtoObjectViaActiveX","contentWindow","globalThis","manageFromDocument","setToken","newToken","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","shared","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","postfix","paramOptions","defaults","userInputs","tilesOptions","tooltip","drawMessage","drawBars","$addAfter","getWrapperFor","drawStrengthify","substring","elemId","bsLevel","message","$wrapper","$container","$message","onResult","score","feedback","suggestions","placement","$elem","drawSelf","setState","$input","$checkbox","$clone","$element","cloneElement","widgetUuid","widgetSlice","existingConstructor","basePrototype","proxiedPrototype","fullName","Widget","_createWidget","_proto","_childConstructors","__super","__superApply","widgetEventPrefix","widgetFullName","child","childPrototype","bridge","inputIndex","inputLength","isMethodCall","methodValue","_init","uuid","eventNamespace","bindings","hoverable","focusable","classesElementLookup","destroy","_setOptionDisabled","_trigger","_getCreateEventData","curOption","_setOptionClasses","classKey","currentElements","_classes","enable","full","processClassString","checkOption","_untrackClassesElement","suppressDisabledCheck","delegateElement","handlerProxy","eventName","_off","_delay","_hoverable","_focusable","focusin","focusout","defaultEffect","hasOptions","effect","effectName","effects","selectorEscape","foo","createIteratorConstructor","IteratorsCore","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","aPossiblePrototype","CORRECT_SETTER","__proto__","FREEZING","METADATA","setMetadata","objectID","weakData","meta","getWeakData","onFreeze","isArrayIteratorMethod","getIteratorMethod","callWithSafeIterationClosing","Result","AS_ENTRIES","IS_ITERATOR","iterFn"],"mappings":"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","file":"install.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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1172);\n","/*!\n * jQuery JavaScript Library v2.1.4\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2015-04-28T16:01Z\n */\n\n(function( global, factory ) {\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n}(typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Support: Firefox 18+\n// Can't be in strict mode, several libs including ASP.NET trace\n// the stack via arguments.caller.callee and Firefox dies if\n// you try to trace through \"use strict\" call chains. (#13335)\n//\n\nvar arr = [];\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar support = {};\n\n\n\nvar\n\t// Use the correct document accordingly with window argument (sandbox)\n\tdocument = window.document,\n\n\tversion = \"2.1.4\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android<4.1\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t};\n\njQuery.fn = jQuery.prototype = {\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// Start with an empty selector\n\tselector: \"\",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num != null ?\n\n\t\t\t// Return just the one element from the set\n\t\t\t( num < 0 ? this[ num + this.length ] : this[ num ] ) :\n\n\t\t\t// Return all the elements in a clean array\n\t\t\tslice.call( this );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\t// (You can seed the arguments with an array of args, but this is\n\t// only used internally.)\n\teach: function( callback, args ) {\n\t\treturn jQuery.each( this, callback, args );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map(this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t}));\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor(null);\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[0] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction(target) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\t\t// Only deal with non-null/undefined values\n\t\tif ( (options = arguments[ i ]) != null ) {\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray(src) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject(src) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend({\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type(obj) === \"function\";\n\t},\n\n\tisArray: Array.isArray,\n\n\tisWindow: function( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\t\t// parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t// adding 1 corrects loss of precision from parseFloat (#15100)\n\t\treturn !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0;\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\t// Not plain objects:\n\t\t// - Any object or value whose internal [[Class]] property is not \"[object Object]\"\n\t\t// - DOM nodes\n\t\t// - window\n\t\tif ( jQuery.type( obj ) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( obj.constructor &&\n\t\t\t\t!hasOwn.call( obj.constructor.prototype, \"isPrototypeOf\" ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// If the function hasn't returned already, we're confident that\n\t\t// |obj| is a plain object, created by {} or constructed with new Object\n\t\treturn true;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn obj + \"\";\n\t\t}\n\t\t// Support: Android<4.0, iOS<6 (functionish RegExp)\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ toString.call(obj) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code ) {\n\t\tvar script,\n\t\t\tindirect = eval;\n\n\t\tcode = jQuery.trim( code );\n\n\t\tif ( code ) {\n\t\t\t// If the code includes a valid, prologue position\n\t\t\t// strict mode pragma, execute code by injecting a\n\t\t\t// script tag into the document.\n\t\t\tif ( code.indexOf(\"use strict\") === 1 ) {\n\t\t\t\tscript = document.createElement(\"script\");\n\t\t\t\tscript.text = code;\n\t\t\t\tdocument.head.appendChild( script ).parentNode.removeChild( script );\n\t\t\t} else {\n\t\t\t// Otherwise, avoid the DOM node creation, insertion\n\t\t\t// and removal by using an indirect global eval\n\t\t\t\tindirect( code );\n\t\t\t}\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Support: IE9-11+\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\t// args is for internal usage only\n\teach: function( obj, callback, args ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = obj.length,\n\t\t\tisArray = isArraylike( obj );\n\n\t\tif ( args ) {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// A special, fast, case for the most common use of each\n\t\t} else {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android<4.1\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArraylike( Object(arr) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tisArray = isArraylike( elems ),\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArray ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar tmp, args, proxy;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\tnow: Date.now,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n});\n\n// Populate the class2type map\njQuery.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n});\n\nfunction isArraylike( obj ) {\n\n\t// Support: iOS 8.2 (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = \"length\" in obj && obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( type === \"function\" || jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\tif ( obj.nodeType === 1 && length ) {\n\t\treturn true;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.2.0-pre\n * http://sizzlejs.com/\n *\n * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-12-16\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// General-purpose constants\n\tMAX_NEGATIVE = 1 << 31,\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// http://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\t// http://www.w3.org/TR/css3-syntax/#characters\n\tcharacterEncoding = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n\t// Loosely modeled on CSS identifier characters\n\t// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors\n\t// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = characterEncoding.replace( \"w\", \"w#\" ),\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + characterEncoding + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + characterEncoding + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + characterEncoding + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + characterEncoding + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + characterEncoding.replace( \"w\", \"w*\" ) + \")\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\trescape = /'|\\\\/g,\n\n\t// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t};\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar match, elem, m, nodeType,\n\t\t// QSA vars\n\t\ti, groups, old, nid, newContext, newSelector;\n\n\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\n\tcontext = context || document;\n\tresults = results || [];\n\tnodeType = context.nodeType;\n\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\tif ( !seed && documentIsHTML ) {\n\n\t\t// Try to shortcut find operations when possible (e.g., not under DocumentFragment)\n\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\t\t\t// Speed-up: Sizzle(\"#ID\")\n\t\t\tif ( (m = match[1]) ) {\n\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\telem = context.getElementById( m );\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document (jQuery #6963)\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE, Opera, and Webkit return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Context is not a document\n\t\t\t\t\tif ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&\n\t\t\t\t\t\tcontains( context, elem ) && elem.id === m ) {\n\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Speed-up: Sizzle(\"TAG\")\n\t\t\t} else if ( match[2] ) {\n\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\treturn results;\n\n\t\t\t// Speed-up: Sizzle(\".CLASS\")\n\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName ) {\n\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\treturn results;\n\t\t\t}\n\t\t}\n\n\t\t// QSA path\n\t\tif ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\t\t\tnid = old = expando;\n\t\t\tnewContext = context;\n\t\t\tnewSelector = nodeType !== 1 && selector;\n\n\t\t\t// qSA works strangely on Element-rooted queries\n\t\t\t// We can work around this by specifying an extra ID on the root\n\t\t\t// and working up from there (Thanks to Andrew Dupont for the technique)\n\t\t\t// IE 8 doesn't work on object elements\n\t\t\tif ( nodeType === 1 && context.nodeName.toLowerCase() !== \"object\" ) {\n\t\t\t\tgroups = tokenize( selector );\n\n\t\t\t\tif ( (old = context.getAttribute(\"id\")) ) {\n\t\t\t\t\tnid = old.replace( rescape, \"\\\\$&\" );\n\t\t\t\t} else {\n\t\t\t\t\tcontext.setAttribute( \"id\", nid );\n\t\t\t\t}\n\t\t\t\tnid = \"[id='\" + nid + \"'] \";\n\n\t\t\t\ti = groups.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tgroups[i] = nid + toSelector( groups[i] );\n\t\t\t\t}\n\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;\n\t\t\t\tnewSelector = groups.join(\",\");\n\t\t\t}\n\n\t\t\tif ( newSelector ) {\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch(qsaError) {\n\t\t\t\t} finally {\n\t\t\t\t\tif ( !old ) {\n\t\t\t\t\t\tcontext.removeAttribute(\"id\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {Function(string, Object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\nfunction assert( fn ) {\n\tvar div = document.createElement(\"div\");\n\n\ttry {\n\t\treturn !!fn( div );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( div.parentNode ) {\n\t\t\tdiv.parentNode.removeChild( div );\n\t\t}\n\t\t// release memory in IE\n\t\tdiv = null;\n\t}\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 */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = attrs.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\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 */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\t( ~b.sourceIndex || MAX_NEGATIVE ) -\n\t\t\t( ~a.sourceIndex || MAX_NEGATIVE );\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\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 */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, parent,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// If no document and documentElement is available, return\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Set our document\n\tdocument = doc;\n\tdocElem = doc.documentElement;\n\tparent = doc.defaultView;\n\n\t// Support: IE>8\n\t// If iframe document is assigned to \"document\" variable and if iframe has been reloaded,\n\t// IE will throw \"permission denied\" error when accessing \"document\" variable, see jQuery #13936\n\t// IE6-8 do not support the defaultView property so parent will be undefined\n\tif ( parent && parent !== parent.top ) {\n\t\t// IE11 does not have attachEvent, so all must suffer\n\t\tif ( parent.addEventListener ) {\n\t\t\tparent.addEventListener( \"unload\", unloadHandler, false );\n\t\t} else if ( parent.attachEvent ) {\n\t\t\tparent.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Support tests\n\t---------------------------------------------------------------------- */\n\tdocumentIsHTML = !isXML( doc );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( div ) {\n\t\tdiv.className = \"i\";\n\t\treturn !div.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( div ) {\n\t\tdiv.appendChild( doc.createComment(\"\") );\n\t\treturn !div.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( doc.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( div ) {\n\t\tdocElem.appendChild( div ).id = expando;\n\t\treturn !doc.getElementsByName || !doc.getElementsByName( expando ).length;\n\t});\n\n\t// ID find and filter\n\tif ( support.getById ) {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\treturn m && m.parentNode ? [ m ] : [];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t} else {\n\t\t// Support: IE6/7\n\t\t// getElementById is not reliable as a find shortcut\n\t\tdelete Expr.find[\"ID\"];\n\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See http://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( div ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// http://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( div ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\f]' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( div.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+\n\t\t\tif ( !div.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibing-combinator selector` fails\n\t\t\tif ( !div.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( div ) {\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = doc.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tdiv.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( div.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tdiv.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( div ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( div, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully does not implement inclusive descendent\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === doc ? -1 :\n\t\t\t\tb === doc ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn doc;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, diff, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || (parent[ expando ] = {});\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[0] === dirruns && cache[1];\n\t\t\t\t\t\t\tdiff = cache[0] === dirruns && cache[2];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {\n\t\t\t\t\t\t\tdiff = cache[1];\n\n\t\t\t\t\t\t// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\tif ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {\n\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": function( elem ) {\n\t\t\treturn elem.disabled === false;\n\t\t},\n\n\t\t\"disabled\": function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tcheckNonElements = base && dir === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\t\t\t\t\t\tif ( (oldCache = outerCache[ dir ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ dir ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context !== document && context;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Keep `i` a string if there are no elements so `matchedCount` will be \"00\" below\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\tmatchedCount += i;\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is no seed and only one group\n\tif ( match.length === 1 ) {\n\n\t\t// Take a shortcut and set the context if the root selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tsupport.getById && context.nodeType === 9 && documentIsHTML &&\n\t\t\t\tExpr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\trsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( div1 ) {\n\t// Should return 1, but returns 4 (following)\n\treturn div1.compareDocumentPosition( document.createElement(\"div\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( div ) {\n\tdiv.innerHTML = \"<a href='#'></a>\";\n\treturn div.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( div ) {\n\tdiv.innerHTML = \"<input/>\";\n\tdiv.firstChild.setAttribute( \"value\", \"\" );\n\treturn div.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( div ) {\n\treturn div.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[\":\"] = jQuery.expr.pseudos;\njQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = (/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/);\n\n\n\nvar risSimple = /^.[^:#\\[\\.,]*$/;\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\t/* jshint -W018 */\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t});\n\n\t}\n\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t});\n\n\t}\n\n\tif ( typeof qualifier === \"string\" ) {\n\t\tif ( risSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter( qualifier, elements, not );\n\t\t}\n\n\t\tqualifier = jQuery.filter( qualifier, elements );\n\t}\n\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( indexOf.call( qualifier, elem ) >= 0 ) !== not;\n\t});\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\treturn elems.length === 1 && elem.nodeType === 1 ?\n\t\tjQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :\n\t\tjQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\t\treturn elem.nodeType === 1;\n\t\t}));\n};\n\njQuery.fn.extend({\n\tfind: function( selector ) {\n\t\tvar i,\n\t\t\tlen = this.length,\n\t\t\tret = [],\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter(function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}) );\n\t\t}\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\n\t\tret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );\n\t\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\n\t\treturn ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], false) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], true) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n});\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n\tinit = jQuery.fn.init = function( selector, context ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[0] === \"<\" && selector[ selector.length - 1 ] === \">\" && selector.length >= 3 ) {\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && (match[1] || !context) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[1] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[0] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[1],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[2] );\n\n\t\t\t\t\t// Support: Blackberry 4.6\n\t\t\t\t\t// gEBID returns nodes no longer in the document (#6963)\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[0] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || rootjQuery ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis.context = this[0] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn typeof rootjQuery.ready !== \"undefined\" ?\n\t\t\t\trootjQuery.ready( selector ) :\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.extend({\n\tdir: function( elem, dir, until ) {\n\t\tvar matched = [],\n\t\t\ttruncate = until !== undefined;\n\n\t\twhile ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tmatched.push( elem );\n\t\t\t}\n\t\t}\n\t\treturn matched;\n\t},\n\n\tsibling: function( n, elem ) {\n\t\tvar matched = [];\n\n\t\tfor ( ; n; n = n.nextSibling ) {\n\t\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\t\tmatched.push( n );\n\t\t\t}\n\t\t}\n\n\t\treturn matched;\n\t}\n});\n\njQuery.fn.extend({\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter(function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[i] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tfor ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {\n\t\t\t\t// Always skip document fragments\n\t\t\t\tif ( cur.nodeType < 11 && (pos ?\n\t\t\t\t\tpos.index(cur) > -1 :\n\n\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\tjQuery.find.matchesSelector(cur, selectors)) ) {\n\n\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.unique(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter(selector)\n\t\t);\n\t}\n});\n\nfunction sibling( cur, dir ) {\n\twhile ( (cur = cur[dir]) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each({\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn jQuery.dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn jQuery.sibling( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn elem.contentDocument || jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.unique( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n});\nvar rnotwhite = (/\\S+/g);\n\n\n\n// String to Object options format cache\nvar optionsCache = {};\n\n// Convert String-formatted options into Object-formatted ones and store in cache\nfunction createOptions( options ) {\n\tvar object = optionsCache[ options ] = {};\n\tjQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t});\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\t( optionsCache[ options ] || createOptions( options ) ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Last fire value (for non-forgettable lists)\n\t\tmemory,\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\t\t// Flag to know if list is currently firing\n\t\tfiring,\n\t\t// First callback to fire (used internally by add and fireWith)\n\t\tfiringStart,\n\t\t// End of the loop when firing\n\t\tfiringLength,\n\t\t// Index of currently firing callback (modified by remove if needed)\n\t\tfiringIndex,\n\t\t// Actual callback list\n\t\tlist = [],\n\t\t// Stack of fire calls for repeatable lists\n\t\tstack = !options.once && [],\n\t\t// Fire callbacks\n\t\tfire = function( data ) {\n\t\t\tmemory = options.memory && data;\n\t\t\tfired = true;\n\t\t\tfiringIndex = firingStart || 0;\n\t\t\tfiringStart = 0;\n\t\t\tfiringLength = list.length;\n\t\t\tfiring = true;\n\t\t\tfor ( ; list && firingIndex < firingLength; firingIndex++ ) {\n\t\t\t\tif ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {\n\t\t\t\t\tmemory = false; // To prevent further calls using add\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfiring = false;\n\t\t\tif ( list ) {\n\t\t\t\tif ( stack ) {\n\t\t\t\t\tif ( stack.length ) {\n\t\t\t\t\t\tfire( stack.shift() );\n\t\t\t\t\t}\n\t\t\t\t} else if ( memory ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t} else {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Actual Callbacks object\n\t\tself = {\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\t// First, we save the current length\n\t\t\t\t\tvar start = list.length;\n\t\t\t\t\t(function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tvar type = jQuery.type( arg );\n\t\t\t\t\t\t\tif ( type === \"function\" ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && type !== \"string\" ) {\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t})( arguments );\n\t\t\t\t\t// Do we need to add the callbacks to the\n\t\t\t\t\t// current firing batch?\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tfiringLength = list.length;\n\t\t\t\t\t// With memory, if we're not firing then\n\t\t\t\t\t// we should call right away\n\t\t\t\t\t} else if ( memory ) {\n\t\t\t\t\t\tfiringStart = start;\n\t\t\t\t\t\tfire( memory );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\t\tvar index;\n\t\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\t\tlist.splice( index, 1 );\n\t\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\t\t\tif ( index <= firingLength ) {\n\t\t\t\t\t\t\t\t\tfiringLength--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );\n\t\t\t},\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tlist = [];\n\t\t\t\tfiringLength = 0;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Have the list do nothing anymore\n\t\t\tdisable: function() {\n\t\t\t\tlist = stack = memory = undefined;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it disabled?\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\t\t\t// Lock the list in its current state\n\t\t\tlock: function() {\n\t\t\t\tstack = undefined;\n\t\t\t\tif ( !memory ) {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it locked?\n\t\t\tlocked: function() {\n\t\t\t\treturn !stack;\n\t\t\t},\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( list && ( !fired || stack ) ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tstack.push( args );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfire( args );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\njQuery.extend({\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\t\t\t\t// action, add listener, listener list, final state\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\" ],\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks(\"memory\") ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\t\t\t\t\treturn jQuery.Deferred(function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\t\t\tvar fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\n\t\t\t\t\t\t\tdeferred[ tuple[1] ](function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject )\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t}).promise();\n\t\t\t\t},\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Keep pipe for back-compat\n\t\tpromise.pipe = promise.then;\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 3 ];\n\n\t\t\t// promise[ done | fail | progress ] = list.add\n\t\t\tpromise[ tuple[1] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(function() {\n\t\t\t\t\t// state = [ resolved | rejected ]\n\t\t\t\t\tstate = stateString;\n\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n\t\t\t}\n\n\t\t\t// deferred[ resolve | reject | notify ]\n\t\t\tdeferred[ tuple[0] ] = function() {\n\t\t\t\tdeferred[ tuple[0] + \"With\" ]( this === deferred ? promise : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\tdeferred[ tuple[0] + \"With\" ] = list.fireWith;\n\t\t});\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\n\t\tvar i = 0,\n\t\t\tresolveValues = slice.call( arguments ),\n\t\t\tlength = resolveValues.length,\n\n\t\t\t// the count of uncompleted subordinates\n\t\t\tremaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\n\n\t\t\t// the master Deferred. If resolveValues consist of only a single Deferred, just use that.\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n\t\t\t// Update function for both resolve and progress values\n\t\t\tupdateFunc = function( i, contexts, values ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tcontexts[ i ] = this;\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( values === progressValues ) {\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\n\t\t\t\t\t} else if ( !( --remaining ) ) {\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tprogressValues, progressContexts, resolveContexts;\n\n\t\t// Add listeners to Deferred subordinates; treat others as resolved\n\t\tif ( length > 1 ) {\n\t\t\tprogressValues = new Array( length );\n\t\t\tprogressContexts = new Array( length );\n\t\t\tresolveContexts = new Array( length );\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\n\t\t\t\t\tresolveValues[ i ].promise()\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\n\t\t\t\t\t\t.fail( deferred.reject )\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) );\n\t\t\t\t} else {\n\t\t\t\t\t--remaining;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// If we're not waiting on anything, resolve the master\n\t\tif ( !remaining ) {\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\n\t\t}\n\n\t\treturn deferred.promise();\n\t}\n});\n\n\n// The deferred used on DOM ready\nvar readyList;\n\njQuery.fn.ready = function( fn ) {\n\t// Add the callback\n\tjQuery.ready.promise().done( fn );\n\n\treturn this;\n};\n\njQuery.extend({\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\n\t\t// Trigger any bound ready events\n\t\tif ( jQuery.fn.triggerHandler ) {\n\t\t\tjQuery( document ).triggerHandler( \"ready\" );\n\t\t\tjQuery( document ).off( \"ready\" );\n\t\t}\n\t}\n});\n\n/**\n * The ready event handler and self cleanup method\n */\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed, false );\n\twindow.removeEventListener( \"load\", completed, false );\n\tjQuery.ready();\n}\n\njQuery.ready.promise = function( obj ) {\n\tif ( !readyList ) {\n\n\t\treadyList = jQuery.Deferred();\n\n\t\t// Catch cases where $(document).ready() is called after the browser event has already occurred.\n\t\t// We once tried to use readyState \"interactive\" here, but it caused issues like the one\n\t\t// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15\n\t\tif ( document.readyState === \"complete\" ) {\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\tsetTimeout( jQuery.ready );\n\n\t\t} else {\n\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", completed, false );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( \"load\", completed, false );\n\t\t}\n\t}\n\treturn readyList.promise( obj );\n};\n\n// Kick off the DOM ready check even if the user does not\njQuery.ready.promise();\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( jQuery.type( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\tjQuery.access( elems, fn, i, key[i], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn chainable ?\n\t\telems :\n\n\t\t// Gets\n\t\tbulk ?\n\t\t\tfn.call( elems ) :\n\t\t\tlen ? fn( elems[0], key ) : emptyGet;\n};\n\n\n/**\n * Determines whether an object can have data\n */\njQuery.acceptData = function( owner ) {\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\t/* jshint -W018 */\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\nfunction Data() {\n\t// Support: Android<4,\n\t// Old WebKit does not have Object.preventExtensions/freeze method,\n\t// return new empty object instead with no [[set]] accessor\n\tObject.defineProperty( this.cache = {}, 0, {\n\t\tget: function() {\n\t\t\treturn {};\n\t\t}\n\t});\n\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\nData.accepts = jQuery.acceptData;\n\nData.prototype = {\n\tkey: function( owner ) {\n\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t// but we should not, see #8335.\n\t\t// Always return the key for a frozen object.\n\t\tif ( !Data.accepts( owner ) ) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar descriptor = {},\n\t\t\t// Check if the owner object already has a cache key\n\t\t\tunlock = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !unlock ) {\n\t\t\tunlock = Data.uid++;\n\n\t\t\t// Secure it in a non-enumerable, non-writable property\n\t\t\ttry {\n\t\t\t\tdescriptor[ this.expando ] = { value: unlock };\n\t\t\t\tObject.defineProperties( owner, descriptor );\n\n\t\t\t// Support: Android<4\n\t\t\t// Fallback to a less secure definition\n\t\t\t} catch ( e ) {\n\t\t\t\tdescriptor[ this.expando ] = unlock;\n\t\t\t\tjQuery.extend( owner, descriptor );\n\t\t\t}\n\t\t}\n\n\t\t// Ensure the cache object\n\t\tif ( !this.cache[ unlock ] ) {\n\t\t\tthis.cache[ unlock ] = {};\n\t\t}\n\n\t\treturn unlock;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\t// There may be an unlock assigned to this node,\n\t\t\t// if there is no entry for this \"owner\", create one inline\n\t\t\t// and set the unlock as though an owner entry had always existed\n\t\t\tunlock = this.key( owner ),\n\t\t\tcache = this.cache[ unlock ];\n\n\t\t// Handle: [ owner, key, value ] args\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ data ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\t\t\t// Fresh assignments by object are shallow copied\n\t\t\tif ( jQuery.isEmptyObject( cache ) ) {\n\t\t\t\tjQuery.extend( this.cache[ unlock ], data );\n\t\t\t// Otherwise, copy the properties one-by-one to the cache object\n\t\t\t} else {\n\t\t\t\tfor ( prop in data ) {\n\t\t\t\t\tcache[ prop ] = data[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\t// Either a valid cache is found, or will be created.\n\t\t// New caches will be created and the unlock returned,\n\t\t// allowing direct access to the newly created\n\t\t// empty data object. A valid owner object must be provided.\n\t\tvar cache = this.cache[ this.key( owner ) ];\n\n\t\treturn key === undefined ?\n\t\t\tcache : cache[ key ];\n\t},\n\taccess: function( owner, key, value ) {\n\t\tvar stored;\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t((key && typeof key === \"string\") && value === undefined) ) {\n\n\t\t\tstored = this.get( owner, key );\n\n\t\t\treturn stored !== undefined ?\n\t\t\t\tstored : this.get( owner, jQuery.camelCase(key) );\n\t\t}\n\n\t\t// [*]When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i, name, camel,\n\t\t\tunlock = this.key( owner ),\n\t\t\tcache = this.cache[ unlock ];\n\n\t\tif ( key === undefined ) {\n\t\t\tthis.cache[ unlock ] = {};\n\n\t\t} else {\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( jQuery.isArray( key ) ) {\n\t\t\t\t// If \"name\" is an array of keys...\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\n\t\t\t\t// keys will be converted to camelCase.\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\n\t\t\t\t// both plain key and camelCase key. #12786\n\t\t\t\t// This will only penalize the array argument path.\n\t\t\t\tname = key.concat( key.map( jQuery.camelCase ) );\n\t\t\t} else {\n\t\t\t\tcamel = jQuery.camelCase( key );\n\t\t\t\t// Try the string as a key before any manipulation\n\t\t\t\tif ( key in cache ) {\n\t\t\t\t\tname = [ key, camel ];\n\t\t\t\t} else {\n\t\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\t\tname = camel;\n\t\t\t\t\tname = name in cache ?\n\t\t\t\t\t\t[ name ] : ( name.match( rnotwhite ) || [] );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ti = name.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ name[ i ] ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\treturn !jQuery.isEmptyObject(\n\t\t\tthis.cache[ owner[ this.expando ] ] || {}\n\t\t);\n\t},\n\tdiscard: function( owner ) {\n\t\tif ( owner[ this.expando ] ) {\n\t\t\tdelete this.cache[ owner[ this.expando ] ];\n\t\t}\n\t}\n};\nvar data_priv = new Data();\n\nvar data_user = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /([A-Z])/g;\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$1\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === \"true\" ? true :\n\t\t\t\t\tdata === \"false\" ? false :\n\t\t\t\t\tdata === \"null\" ? null :\n\t\t\t\t\t// Only convert to a number if it doesn't change the string\n\t\t\t\t\t+data + \"\" === data ? +data :\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\tdata;\n\t\t\t} catch( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdata_user.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend({\n\thasData: function( elem ) {\n\t\treturn data_user.hasData( elem ) || data_priv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn data_user.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdata_user.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to data_priv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn data_priv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdata_priv.remove( elem, name );\n\t}\n});\n\njQuery.fn.extend({\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = data_user.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !data_priv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE11+\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice(5) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdata_priv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each(function() {\n\t\t\t\tdata_user.set( this, key );\n\t\t\t});\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data,\n\t\t\t\tcamelKey = jQuery.camelCase( key );\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// with the key as-is\n\t\t\t\tdata = data_user.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// with the key camelized\n\t\t\t\tdata = data_user.get( elem, camelKey );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, camelKey, undefined );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each(function() {\n\t\t\t\t// First, attempt to store a copy or reference of any\n\t\t\t\t// data that might've been store with a camelCased key.\n\t\t\t\tvar data = data_user.get( this, camelKey );\n\n\t\t\t\t// For HTML5 data-* attribute interop, we have to\n\t\t\t\t// store property names with dashes in a camelCase form.\n\t\t\t\t// This might not apply to all properties...*\n\t\t\t\tdata_user.set( this, camelKey, value );\n\n\t\t\t\t// *... In the case of properties that might _actually_\n\t\t\t\t// have dashes, we need to also store a copy of that\n\t\t\t\t// unchanged property.\n\t\t\t\tif ( key.indexOf(\"-\") !== -1 && data !== undefined ) {\n\t\t\t\t\tdata_user.set( this, key, value );\n\t\t\t\t}\n\t\t\t});\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each(function() {\n\t\t\tdata_user.remove( this, key );\n\t\t});\n\t}\n});\n\n\njQuery.extend({\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = data_priv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray( data ) ) {\n\t\t\t\t\tqueue = data_priv.access( elem, type, jQuery.makeArray(data) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn data_priv.get( elem, key ) || data_priv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks(\"once memory\").add(function() {\n\t\t\t\tdata_priv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t})\n\t\t});\n\t}\n});\n\njQuery.fn.extend({\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[0], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each(function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[0] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t});\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t});\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = data_priv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n});\nvar pnum = (/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/).source;\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHidden = function( elem, el ) {\n\t\t// isHidden might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\t\treturn jQuery.css( elem, \"display\" ) === \"none\" || !jQuery.contains( elem.ownerDocument, elem );\n\t};\n\nvar rcheckableType = (/^(?:checkbox|radio)$/i);\n\n\n\n(function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Safari<=5.1\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Safari<=5.1, Android<4.2\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<=11+\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n})();\nvar strundefined = typeof undefined;\n\n\n\nsupport.focusinBubbles = \"onfocusin\" in window;\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,\n\trfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)$/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\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 */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = data_priv.get( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !(events = elemData.events) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !(eventHandle = elemData.handle) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend({\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join(\".\")\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !(handlers = events[ type ]) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle, false );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = data_priv.hasData( elem ) && data_priv.get( elem );\n\n\t\tif ( !elemData || !(events = elemData.events) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[2] && new RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdelete elemData.handle;\n\t\t\tdata_priv.remove( elem, \"events\" );\n\t\t}\n\t},\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split(\".\") : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf(\".\") >= 0 ) {\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split(\".\");\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join(\".\");\n\t\tevent.namespace_re = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === (elem.ownerDocument || document) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( data_priv.get( cur, \"events\" ) || {} )[ event.type ] && data_priv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && jQuery.acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&\n\t\t\t\tjQuery.acceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\telem[ type ]();\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, j, ret, matched, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\targs = slice.call( arguments ),\n\t\t\thandlers = ( data_priv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[0] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or 2) have namespace(s)\n\t\t\t\t// a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )\n\t\t\t\t\t\t\t.apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( (event.result = ret) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, matches, sel, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG <use> instance trees (#13180)\n\t\t// Avoid non-left-click bubbling in Firefox (#3861)\n\t\tif ( delegateCount && cur.nodeType && (!event.button || event.type !== \"click\") ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.disabled !== true || event.type !== \"click\" ) {\n\t\t\t\t\tmatches = [];\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matches[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatches[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) >= 0 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matches[ sel ] ) {\n\t\t\t\t\t\t\tmatches.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matches.length ) {\n\t\t\t\t\t\thandlerQueue.push({ elem: cur, handlers: matches });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\t// Includes some event props shared by KeyEvent and MouseEvent\n\tprops: \"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),\n\n\tfixHooks: {},\n\n\tkeyHooks: {\n\t\tprops: \"char charCode key keyCode\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null ) {\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tmouseHooks: {\n\t\tprops: \"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\t\t\tvar eventDoc, doc, body,\n\t\t\t\tbutton = original.button;\n\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\n\t\t\t\teventDoc = event.target.ownerDocument || document;\n\t\t\t\tdoc = eventDoc.documentElement;\n\t\t\t\tbody = eventDoc.body;\n\n\t\t\t\tevent.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );\n\t\t\t\tevent.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\t// Note: button is not normalized, so don't use it\n\t\t\tif ( !event.which && button !== undefined ) {\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tfix: function( event ) {\n\t\tif ( event[ jQuery.expando ] ) {\n\t\t\treturn event;\n\t\t}\n\n\t\t// Create a writable copy of the event object and normalize some properties\n\t\tvar i, prop, copy,\n\t\t\ttype = event.type,\n\t\t\toriginalEvent = event,\n\t\t\tfixHook = this.fixHooks[ type ];\n\n\t\tif ( !fixHook ) {\n\t\t\tthis.fixHooks[ type ] = fixHook =\n\t\t\t\trmouseEvent.test( type ) ? this.mouseHooks :\n\t\t\t\trkeyEvent.test( type ) ? this.keyHooks :\n\t\t\t\t{};\n\t\t}\n\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\n\n\t\tevent = new jQuery.Event( originalEvent );\n\n\t\ti = copy.length;\n\t\twhile ( i-- ) {\n\t\t\tprop = copy[ i ];\n\t\t\tevent[ prop ] = originalEvent[ prop ];\n\t\t}\n\n\t\t// Support: Cordova 2.5 (WebKit) (#13255)\n\t\t// All events should have a target; Cordova deviceready doesn't\n\t\tif ( !event.target ) {\n\t\t\tevent.target = document;\n\t\t}\n\n\t\t// Support: Safari 6.0+, Chrome<28\n\t\t// Target should not be a text node (#504, #13143)\n\t\tif ( event.target.nodeType === 3 ) {\n\t\t\tevent.target = event.target.parentNode;\n\t\t}\n\n\t\treturn fixHook.filter ? fixHook.filter( event, originalEvent ) : event;\n\t},\n\n\tspecial: {\n\t\tload: {\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\tthis.focus();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this.type === \"checkbox\" && this.click && jQuery.nodeName( this, \"input\" ) ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn jQuery.nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tsimulate: function( type, elem, event, bubble ) {\n\t\t// Piggyback on a donor event to simulate a different one.\n\t\t// Fake originalEvent to avoid donor's stopPropagation, but if the\n\t\t// simulated event prevents default then we do the same on the donor.\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true,\n\t\t\t\toriginalEvent: {}\n\t\t\t}\n\t\t);\n\t\tif ( bubble ) {\n\t\t\tjQuery.event.trigger( e, null, elem );\n\t\t} else {\n\t\t\tjQuery.event.dispatch.call( elem, e );\n\t\t}\n\t\tif ( e.isDefaultPrevented() ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n};\n\njQuery.removeEvent = function( elem, type, handle ) {\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle, false );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\t// Allow instantiation without the 'new' keyword\n\tif ( !(this instanceof jQuery.Event) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\t\t\t\t// Support: Android<4.0\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && e.preventDefault ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && e.stopPropagation ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && e.stopImmediatePropagation ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// Support: Chrome 15+\njQuery.each({\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mousenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || (related !== target && !jQuery.contains( target, related )) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n});\n\n// Support: Firefox, Chrome, Safari\n// Create \"bubbling\" focus and blur events\nif ( !support.focusinBubbles ) {\n\tjQuery.each({ focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );\n\t\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = data_priv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdata_priv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = data_priv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdata_priv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdata_priv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\njQuery.fn.extend({\n\n\ton: function( types, selector, data, fn, /*INTERNAL*/ one ) {\n\t\tvar origFn, type;\n\n\t\t// Types can be a map of types/handlers\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-Object, selector, data )\n\t\t\tif ( typeof selector !== \"string\" ) {\n\t\t\t\t// ( types-Object, data )\n\t\t\t\tdata = data || selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.on( type, selector, data, types[ type ], one );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( data == null && fn == null ) {\n\t\t\t// ( types, fn )\n\t\t\tfn = selector;\n\t\t\tdata = selector = undefined;\n\t\t} else if ( fn == null ) {\n\t\t\tif ( typeof selector === \"string\" ) {\n\t\t\t\t// ( types, selector, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = undefined;\n\t\t\t} else {\n\t\t\t\t// ( types, data, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t} else if ( !fn ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( one === 1 ) {\n\t\t\torigFn = fn;\n\t\t\tfn = function( event ) {\n\t\t\t\t// Can use an empty set, since event contains the info\n\t\t\t\tjQuery().off( event );\n\t\t\t\treturn origFn.apply( this, arguments );\n\t\t\t};\n\t\t\t// Use same guid so caller can remove using origFn\n\t\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.add( this, types, fn, data, selector );\n\t\t});\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn this.on( types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t});\n\t},\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t});\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[0];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n});\n\n\nvar\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,\n\trtagName = /<([\\w:]+)/,\n\trhtml = /<|&#?\\w+;/,\n\trnoInnerhtml = /<(?:script|style|link)/i,\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trscriptType = /^$|\\/(?:java|ecma)script/i,\n\trscriptTypeMasked = /^true\\/(.*)/,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g,\n\n\t// We have to close these tags to support XHTML (#13200)\n\twrapMap = {\n\n\t\t// Support: IE9\n\t\toption: [ 1, \"<select multiple='multiple'>\", \"</select>\" ],\n\n\t\tthead: [ 1, \"<table>\", \"</table>\" ],\n\t\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\t\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\t\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t\t_default: [ 0, \"\", \"\" ]\n\t};\n\n// Support: IE9\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: 1.x compatibility\n// Manipulating tables requires a tbody\nfunction manipulationTarget( elem, content ) {\n\treturn jQuery.nodeName( elem, \"table\" ) &&\n\t\tjQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ?\n\n\t\telem.getElementsByTagName(\"tbody\")[0] ||\n\t\t\telem.appendChild( elem.ownerDocument.createElement(\"tbody\") ) :\n\t\telem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\n\tif ( match ) {\n\t\telem.type = match[ 1 ];\n\t} else {\n\t\telem.removeAttribute(\"type\");\n\t}\n\n\treturn elem;\n}\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdata_priv.set(\n\t\t\telems[ i ], \"globalEval\", !refElements || data_priv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( data_priv.hasData( src ) ) {\n\t\tpdataOld = data_priv.access( src );\n\t\tpdataCur = data_priv.set( dest, pdataOld );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdelete pdataCur.handle;\n\t\t\tpdataCur.events = {};\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( data_user.hasData( src ) ) {\n\t\tudataOld = data_user.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdata_user.set( dest, udataCur );\n\t}\n}\n\nfunction getAll( context, tag ) {\n\tvar ret = context.getElementsByTagName ? context.getElementsByTagName( tag || \"*\" ) :\n\t\t\tcontext.querySelectorAll ? context.querySelectorAll( tag || \"*\" ) :\n\t\t\t[];\n\n\treturn tag === undefined || tag && jQuery.nodeName( context, tag ) ?\n\t\tjQuery.merge( [ context ], ret ) :\n\t\tret;\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\njQuery.extend({\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tbuildFragment: function( elems, context, scripts, selection ) {\n\t\tvar elem, tmp, tag, wrap, contains, j,\n\t\t\tfragment = context.createDocumentFragment(),\n\t\t\tnodes = [],\n\t\t\ti = 0,\n\t\t\tl = elems.length;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\telem = elems[ i ];\n\n\t\t\tif ( elem || elem === 0 ) {\n\n\t\t\t\t// Add nodes directly\n\t\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\n\t\t\t\t\t// Support: QtWebKit, PhantomJS\n\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t\t// Convert non-html into a text node\n\t\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t\t// Convert html into DOM nodes\n\t\t\t\t} else {\n\t\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement(\"div\") );\n\n\t\t\t\t\t// Deserialize a standard representation\n\t\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\t\ttmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, \"<$1></$2>\" ) + wrap[ 2 ];\n\n\t\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\t\tj = wrap[ 0 ];\n\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: QtWebKit, PhantomJS\n\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t\t// Remember the top-level container\n\t\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\t\ttmp.textContent = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Remove wrapper from fragment\n\t\tfragment.textContent = \"\";\n\n\t\ti = 0;\n\t\twhile ( (elem = nodes[ i++ ]) ) {\n\n\t\t\t// #4087 - If origin and destination elements are the same, and this is\n\t\t\t// that element, do not do anything\n\t\t\tif ( selection && jQuery.inArray( elem, selection ) !== -1 ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t\t// Append to fragment\n\t\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t\t// Preserve script evaluation history\n\t\t\tif ( contains ) {\n\t\t\t\tsetGlobalEval( tmp );\n\t\t\t}\n\n\t\t\t// Capture executables\n\t\t\tif ( scripts ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (elem = tmp[ j++ ]) ) {\n\t\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\t\tscripts.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn fragment;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type, key,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = elems[ i ]) !== undefined; i++ ) {\n\t\t\tif ( jQuery.acceptData( elem ) ) {\n\t\t\t\tkey = elem[ data_priv.expando ];\n\n\t\t\t\tif ( key && (data = data_priv.cache[ key ]) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( data_priv.cache[ key ] ) {\n\t\t\t\t\t\t// Discard any remaining `private` data\n\t\t\t\t\t\tdelete data_priv.cache[ key ];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Discard any remaining `user` data\n\t\t\tdelete data_user.cache[ elem[ data_user.expando ] ];\n\t\t}\n\t}\n});\n\njQuery.fn.extend({\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each(function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t});\n\t},\n\n\tprepend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t});\n\t},\n\n\tbefore: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t});\n\t},\n\n\tafter: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t});\n\t},\n\n\tremove: function( selector, keepData /* Internal Use Only */ ) {\n\t\tvar elem,\n\t\t\telems = selector ? jQuery.filter( selector, this ) : this,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( !keepData && elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem ) );\n\t\t\t}\n\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\tif ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\t\tsetGlobalEval( getAll( elem, \"script\" ) );\n\t\t\t\t}\n\t\t\t\telem.parentNode.removeChild( elem );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = this[i]) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map(function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t});\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = value.replace( rxhtmlTag, \"<$1></$2>\" );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar arg = arguments[ 0 ];\n\n\t\t// Make the changes, replacing each context element with the new content\n\t\tthis.domManip( arguments, function( elem ) {\n\t\t\targ = this.parentNode;\n\n\t\t\tjQuery.cleanData( getAll( this ) );\n\n\t\t\tif ( arg ) {\n\t\t\t\targ.replaceChild( elem, this );\n\t\t\t}\n\t\t});\n\n\t\t// Force removal if there was no new content (e.g., from empty arguments)\n\t\treturn arg && (arg.length || arg.nodeType) ? this : this.remove();\n\t},\n\n\tdetach: function( selector ) {\n\t\treturn this.remove( selector, true );\n\t},\n\n\tdomManip: function( args, callback ) {\n\n\t\t// Flatten any nested arrays\n\t\targs = concat.apply( [], args );\n\n\t\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tset = this,\n\t\t\tiNoClone = l - 1,\n\t\t\tvalue = args[ 0 ],\n\t\t\tisFunction = jQuery.isFunction( value );\n\n\t\t// We can't cloneNode fragments that contain checked, in WebKit\n\t\tif ( isFunction ||\n\t\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\t\treturn this.each(function( index ) {\n\t\t\t\tvar self = set.eq( index );\n\t\t\t\tif ( isFunction ) {\n\t\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t\t}\n\t\t\t\tself.domManip( args, callback );\n\t\t\t});\n\t\t}\n\n\t\tif ( l ) {\n\t\t\tfragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );\n\t\t\tfirst = fragment.firstChild;\n\n\t\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\t\tfragment = first;\n\t\t\t}\n\n\t\t\tif ( first ) {\n\t\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\t\thasScripts = scripts.length;\n\n\t\t\t\t// Use the original fragment for the last item instead of the first because it can end up\n\t\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\tnode = fragment;\n\n\t\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\t\t\t// Support: QtWebKit\n\t\t\t\t\t\t\t// jQuery.merge because push.apply(_, arraylike) throws\n\t\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback.call( this[ i ], node, i );\n\t\t\t\t}\n\n\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t\t// Reenable scripts\n\t\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t\t!data_priv.access( node, \"globalEval\" ) && jQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\t\tif ( node.src ) {\n\t\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.globalEval( node.textContent.replace( rcleanScript, \"\" ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n});\n\njQuery.each({\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: QtWebKit\n\t\t\t// .get() because push.apply(_, arraylike) throws\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\n\n\nvar iframe,\n\telemdisplay = {};\n\n/**\n * Retrieve the actual display of a element\n * @param {String} name nodeName of the element\n * @param {Object} doc Document object\n */\n// Called only from within defaultDisplay\nfunction actualDisplay( name, doc ) {\n\tvar style,\n\t\telem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),\n\n\t\t// getDefaultComputedStyle might be reliably used only on attached element\n\t\tdisplay = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?\n\n\t\t\t// Use of this method is a temporary fix (more like optimization) until something better comes along,\n\t\t\t// since it was removed from specification and supported only in FF\n\t\t\tstyle.display : jQuery.css( elem[ 0 ], \"display\" );\n\n\t// We don't have any data stored on the element,\n\t// so use \"detach\" method as fast way to get rid of the element\n\telem.detach();\n\n\treturn display;\n}\n\n/**\n * Try to determine the default display value of an element\n * @param {String} nodeName\n */\nfunction defaultDisplay( nodeName ) {\n\tvar doc = document,\n\t\tdisplay = elemdisplay[ nodeName ];\n\n\tif ( !display ) {\n\t\tdisplay = actualDisplay( nodeName, doc );\n\n\t\t// If the simple way fails, read from inside an iframe\n\t\tif ( display === \"none\" || !display ) {\n\n\t\t\t// Use the already-created iframe if possible\n\t\t\tiframe = (iframe || jQuery( \"<iframe frameborder='0' width='0' height='0'/>\" )).appendTo( doc.documentElement );\n\n\t\t\t// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse\n\t\t\tdoc = iframe[ 0 ].contentDocument;\n\n\t\t\t// Support: IE\n\t\t\tdoc.write();\n\t\t\tdoc.close();\n\n\t\t\tdisplay = actualDisplay( nodeName, doc );\n\t\t\tiframe.detach();\n\t\t}\n\n\t\t// Store the correct default display\n\t\telemdisplay[ nodeName ] = display;\n\t}\n\n\treturn display;\n}\nvar rmargin = (/^margin/);\n\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\t\t// Support: IE<=11+, Firefox<=30+ (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tif ( elem.ownerDocument.defaultView.opener ) {\n\t\t\treturn elem.ownerDocument.defaultView.getComputedStyle( elem, null );\n\t\t}\n\n\t\treturn window.getComputedStyle( elem, null );\n\t};\n\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// Support: IE9\n\t// getPropertyValue is only needed for .css('filter') (#12537)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\t}\n\n\tif ( computed ) {\n\n\t\tif ( ret === \"\" && !jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// Support: iOS < 6\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// iOS < 6 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels\n\t\t// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values\n\t\tif ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\t\t// Support: IE\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn (this.get = hookFn).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\n(function() {\n\tvar pixelPositionVal, boxSizingReliableVal,\n\t\tdocElem = document.documentElement,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE9-11+\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tcontainer.style.cssText = \"border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;\" +\n\t\t\"position:absolute\";\n\tcontainer.appendChild( div );\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computePixelPositionAndBoxSizingReliable() {\n\t\tdiv.style.cssText =\n\t\t\t// Support: Firefox<29, Android 2.3\n\t\t\t// Vendor-prefix box-sizing\n\t\t\t\"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;\" +\n\t\t\t\"box-sizing:border-box;display:block;margin-top:1%;top:1%;\" +\n\t\t\t\"border:1px;padding:1px;width:4px;position:absolute\";\n\t\tdiv.innerHTML = \"\";\n\t\tdocElem.appendChild( container );\n\n\t\tvar divStyle = window.getComputedStyle( div, null );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\t\tboxSizingReliableVal = divStyle.width === \"4px\";\n\n\t\tdocElem.removeChild( container );\n\t}\n\n\t// Support: node.js jsdom\n\t// Don't assume that getComputedStyle is a property of the global object\n\tif ( window.getComputedStyle ) {\n\t\tjQuery.extend( support, {\n\t\t\tpixelPosition: function() {\n\n\t\t\t\t// This test is executed only once but we still do memoizing\n\t\t\t\t// since we can use the boxSizingReliable pre-computing.\n\t\t\t\t// No need to check if the test was already performed, though.\n\t\t\t\tcomputePixelPositionAndBoxSizingReliable();\n\t\t\t\treturn pixelPositionVal;\n\t\t\t},\n\t\t\tboxSizingReliable: function() {\n\t\t\t\tif ( boxSizingReliableVal == null ) {\n\t\t\t\t\tcomputePixelPositionAndBoxSizingReliable();\n\t\t\t\t}\n\t\t\t\treturn boxSizingReliableVal;\n\t\t\t},\n\t\t\treliableMarginRight: function() {\n\n\t\t\t\t// Support: Android 2.3\n\t\t\t\t// Check if div with explicit width and no margin-right incorrectly\n\t\t\t\t// gets computed margin-right based on width of container. (#3333)\n\t\t\t\t// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right\n\t\t\t\t// This support function is only executed once so no memoizing is needed.\n\t\t\t\tvar ret,\n\t\t\t\t\tmarginDiv = div.appendChild( document.createElement( \"div\" ) );\n\n\t\t\t\t// Reset CSS: box-sizing; display; margin; border; padding\n\t\t\t\tmarginDiv.style.cssText = div.style.cssText =\n\t\t\t\t\t// Support: Firefox<29, Android 2.3\n\t\t\t\t\t// Vendor-prefix box-sizing\n\t\t\t\t\t\"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;\" +\n\t\t\t\t\t\"box-sizing:content-box;display:block;margin:0;border:0;padding:0\";\n\t\t\t\tmarginDiv.style.marginRight = marginDiv.style.width = \"0\";\n\t\t\t\tdiv.style.width = \"1px\";\n\t\t\t\tdocElem.appendChild( container );\n\n\t\t\t\tret = !parseFloat( window.getComputedStyle( marginDiv, null ).marginRight );\n\n\t\t\t\tdocElem.removeChild( container );\n\t\t\t\tdiv.removeChild( marginDiv );\n\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t});\n\t}\n})();\n\n\n// A method for quickly swapping in/out CSS properties to get correct calculations.\njQuery.swap = function( elem, options, callback, args ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.apply( elem, args || [] );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar\n\t// Swappable if display is none or starts with table except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trnumsplit = new RegExp( \"^(\" + pnum + \")(.*)$\", \"i\" ),\n\trrelNum = new RegExp( \"^([+-])=(\" + pnum + \")\", \"i\" ),\n\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t},\n\n\tcssPrefixes = [ \"Webkit\", \"O\", \"Moz\", \"ms\" ];\n\n// Return a css property mapped to a potentially vendor prefixed property\nfunction vendorPropName( style, name ) {\n\n\t// Shortcut for names that are not vendor prefixed\n\tif ( name in style ) {\n\t\treturn name;\n\t}\n\n\t// Check for vendor prefixed names\n\tvar capName = name[0].toUpperCase() + name.slice(1),\n\t\torigName = name,\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in style ) {\n\t\t\treturn name;\n\t\t}\n\t}\n\n\treturn origName;\n}\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\tvar matches = rnumsplit.exec( value );\n\treturn matches ?\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {\n\tvar i = extra === ( isBorderBox ? \"border\" : \"content\" ) ?\n\t\t// If we already have the right measurement, avoid augmentation\n\t\t4 :\n\t\t// Otherwise initialize for horizontal or vertical properties\n\t\tname === \"width\" ? 1 : 0,\n\n\t\tval = 0;\n\n\tfor ( ; i < 4; i += 2 ) {\n\t\t// Both box models exclude margin, so add it if we want it\n\t\tif ( extra === \"margin\" ) {\n\t\t\tval += jQuery.css( elem, extra + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\tif ( isBorderBox ) {\n\t\t\t// border-box includes padding, so remove it if we want content\n\t\t\tif ( extra === \"content\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// At this point, extra isn't border nor margin, so remove border\n\t\t\tif ( extra !== \"margin\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t} else {\n\t\t\t// At this point, extra isn't content, so add padding\n\t\t\tval += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// At this point, extra isn't content nor padding, so add border\n\t\t\tif ( extra !== \"padding\" ) {\n\t\t\t\tval += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn val;\n}\n\nfunction getWidthOrHeight( elem, name, extra ) {\n\n\t// Start with offset property, which is equivalent to the border-box value\n\tvar valueIsBorderBox = true,\n\t\tval = name === \"width\" ? elem.offsetWidth : elem.offsetHeight,\n\t\tstyles = getStyles( elem ),\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t// Some non-html elements return undefined for offsetWidth, so check for null/undefined\n\t// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285\n\t// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668\n\tif ( val <= 0 || val == null ) {\n\t\t// Fall back to computed then uncomputed css if necessary\n\t\tval = curCSS( elem, name, styles );\n\t\tif ( val < 0 || val == null ) {\n\t\t\tval = elem.style[ name ];\n\t\t}\n\n\t\t// Computed unit is not pixels. Stop here and return.\n\t\tif ( rnumnonpx.test(val) ) {\n\t\t\treturn val;\n\t\t}\n\n\t\t// Check for style in case a browser which returns unreliable values\n\t\t// for getComputedStyle silently falls back to the reliable elem.style\n\t\tvalueIsBorderBox = isBorderBox &&\n\t\t\t( support.boxSizingReliable() || val === elem.style[ name ] );\n\n\t\t// Normalize \"\", auto, and prepare for extra\n\t\tval = parseFloat( val ) || 0;\n\t}\n\n\t// Use the active box-sizing model to add/subtract irrelevant styles\n\treturn ( val +\n\t\taugmentWidthOrHeight(\n\t\t\telem,\n\t\t\tname,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles\n\t\t)\n\t) + \"px\";\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem, hidden,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tvalues[ index ] = data_priv.get( elem, \"olddisplay\" );\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\t\t\t// Reset the inline display of this element to learn if it is\n\t\t\t// being hidden by cascaded rules or not\n\t\t\tif ( !values[ index ] && display === \"none\" ) {\n\t\t\t\telem.style.display = \"\";\n\t\t\t}\n\n\t\t\t// Set elements which have been overridden with display: none\n\t\t\t// in a stylesheet to whatever the default browser style is\n\t\t\t// for such an element\n\t\t\tif ( elem.style.display === \"\" && isHidden( elem ) ) {\n\t\t\t\tvalues[ index ] = data_priv.access( elem, \"olddisplay\", defaultDisplay(elem.nodeName) );\n\t\t\t}\n\t\t} else {\n\t\t\thidden = isHidden( elem );\n\n\t\t\tif ( display !== \"none\" || !hidden ) {\n\t\t\t\tdata_priv.set( elem, \"olddisplay\", hidden ? display : jQuery.css( elem, \"display\" ) );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of most of the elements in a second loop\n\t// to avoid the constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( !show || elem.style.display === \"none\" || elem.style.display === \"\" ) {\n\t\t\telem.style.display = show ? values[ index ] || \"\" : \"none\";\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.extend({\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {\n\t\t\"float\": \"cssFloat\"\n\t},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = jQuery.camelCase( name ),\n\t\t\tstyle = elem.style;\n\n\t\tname = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && (ret = rrelNum.exec( value )) ) {\n\t\t\t\tvalue = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number, add 'px' to the (except for certain CSS properties)\n\t\t\tif ( type === \"number\" && !jQuery.cssNumber[ origName ] ) {\n\t\t\t\tvalue += \"px\";\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !(\"set\" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {\n\t\t\t\tstyle[ name ] = value;\n\t\t\t}\n\n\t\t} else {\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = jQuery.camelCase( name );\n\n\t\t// Make sure that we're working with the right name\n\t\tname = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || jQuery.isNumeric( num ) ? num || 0 : val;\n\t\t}\n\t\treturn val;\n\t}\n});\n\njQuery.each([ \"height\", \"width\" ], function( i, name ) {\n\tjQuery.cssHooks[ name ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) && elem.offsetWidth === 0 ?\n\t\t\t\t\tjQuery.swap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, name, extra );\n\t\t\t\t\t}) :\n\t\t\t\t\tgetWidthOrHeight( elem, name, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar styles = extra && getStyles( elem );\n\t\t\treturn setPositiveNumber( elem, value, extra ?\n\t\t\t\taugmentWidthOrHeight(\n\t\t\t\t\telem,\n\t\t\t\t\tname,\n\t\t\t\t\textra,\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\t\tstyles\n\t\t\t\t) : 0\n\t\t\t);\n\t\t}\n\t};\n});\n\n// Support: Android 2.3\njQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn jQuery.swap( elem, { \"display\": \"inline-block\" },\n\t\t\t\tcurCSS, [ elem, \"marginRight\" ] );\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each({\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split(\" \") : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( !rmargin.test( prefix ) ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n});\n\njQuery.fn.extend({\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( jQuery.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t},\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tif ( isHidden( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t});\n\t}\n});\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || \"swing\";\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\tif ( tween.elem[ tween.prop ] != null &&\n\t\t\t\t(!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE9\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t}\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back Compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, timerId,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trfxnum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" ),\n\trrun = /queueHooks$/,\n\tanimationPrefilters = [ defaultPrefilter ],\n\ttweeners = {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value ),\n\t\t\t\ttarget = tween.cur(),\n\t\t\t\tparts = rfxnum.exec( value ),\n\t\t\t\tunit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t\t\t// Starting value computation is required for potential unit mismatches\n\t\t\t\tstart = ( jQuery.cssNumber[ prop ] || unit !== \"px\" && +target ) &&\n\t\t\t\t\trfxnum.exec( jQuery.css( tween.elem, prop ) ),\n\t\t\t\tscale = 1,\n\t\t\t\tmaxIterations = 20;\n\n\t\t\tif ( start && start[ 3 ] !== unit ) {\n\t\t\t\t// Trust units reported by jQuery.css\n\t\t\t\tunit = unit || start[ 3 ];\n\n\t\t\t\t// Make sure we update the tween properties later on\n\t\t\t\tparts = parts || [];\n\n\t\t\t\t// Iteratively approximate from a nonzero starting point\n\t\t\t\tstart = +target || 1;\n\n\t\t\t\tdo {\n\t\t\t\t\t// If previous iteration zeroed out, double until we get *something*.\n\t\t\t\t\t// Use string for doubling so we don't accidentally see scale as unchanged below\n\t\t\t\t\tscale = scale || \".5\";\n\n\t\t\t\t\t// Adjust and apply\n\t\t\t\t\tstart = start / scale;\n\t\t\t\t\tjQuery.style( tween.elem, prop, start + unit );\n\n\t\t\t\t// Update scale, tolerating zero or NaN from tween.cur(),\n\t\t\t\t// break the loop if scale is unchanged or perfect, or if we've just had enough\n\t\t\t\t} while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations );\n\t\t\t}\n\n\t\t\t// Update tween properties\n\t\t\tif ( parts ) {\n\t\t\t\tstart = tween.start = +start || +target || 0;\n\t\t\t\ttween.unit = unit;\n\t\t\t\t// If a +=/-= token was provided, we're doing a relative animation\n\t\t\t\ttween.end = parts[ 1 ] ?\n\t\t\t\t\tstart + ( parts[ 1 ] + 1 ) * parts[ 2 ] :\n\t\t\t\t\t+parts[ 2 ];\n\t\t\t}\n\n\t\t\treturn tween;\n\t\t} ]\n\t};\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\tsetTimeout(function() {\n\t\tfxNow = undefined;\n\t});\n\treturn ( fxNow = jQuery.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4 ; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( tweeners[ prop ] || [] ).concat( tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( (tween = collection[ index ].call( animation, prop, value )) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\t/* jshint validthis: true */\n\tvar prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHidden( elem ),\n\t\tdataShow = data_priv.get( elem, \"fxshow\" );\n\n\t// Handle queue: false promises\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always(function() {\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always(function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t// Height/width overflow pass\n\tif ( elem.nodeType === 1 && ( \"height\" in props || \"width\" in props ) ) {\n\t\t// Make sure that nothing sneaks out\n\t\t// Record all 3 overflow attributes because IE9-10 do not\n\t\t// change the overflow attribute when overflowX and\n\t\t// overflowY are set to the same value\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Set display property to inline-block for height/width\n\t\t// animations on inline elements that are having width/height animated\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\n\t\t// Test default display if display is currently \"none\"\n\t\tcheckDisplay = display === \"none\" ?\n\t\t\tdata_priv.get( elem, \"olddisplay\" ) || defaultDisplay( elem.nodeName ) : display;\n\n\t\tif ( checkDisplay === \"inline\" && jQuery.css( elem, \"float\" ) === \"none\" ) {\n\t\t\tstyle.display = \"inline-block\";\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always(function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t});\n\t}\n\n\t// show/hide pass\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.exec( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\n\t\t// Any non-fx value stops us from restoring the original display value\n\t\t} else {\n\t\t\tdisplay = undefined;\n\t\t}\n\t}\n\n\tif ( !jQuery.isEmptyObject( orig ) ) {\n\t\tif ( dataShow ) {\n\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\thidden = dataShow.hidden;\n\t\t\t}\n\t\t} else {\n\t\t\tdataShow = data_priv.access( elem, \"fxshow\", {} );\n\t\t}\n\n\t\t// Store state if its toggle - enables .stop().toggle() to \"reverse\"\n\t\tif ( toggle ) {\n\t\t\tdataShow.hidden = !hidden;\n\t\t}\n\t\tif ( hidden ) {\n\t\t\tjQuery( elem ).show();\n\t\t} else {\n\t\t\tanim.done(function() {\n\t\t\t\tjQuery( elem ).hide();\n\t\t\t});\n\t\t}\n\t\tanim.done(function() {\n\t\t\tvar prop;\n\n\t\t\tdata_priv.remove( elem, \"fxshow\" );\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t}\n\t\t});\n\t\tfor ( prop in orig ) {\n\t\t\ttween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\n\t\t\tif ( !( prop in dataShow ) ) {\n\t\t\t\tdataShow[ prop ] = tween.start;\n\t\t\t\tif ( hidden ) {\n\t\t\t\t\ttween.end = tween.start;\n\t\t\t\t\ttween.start = prop === \"width\" || prop === \"height\" ? 1 : 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t// If this is a noop like .hide().hide(), restore an overwritten display value\n\t} else if ( (display === \"none\" ? defaultDisplay( elem.nodeName ) : display) === \"inline\" ) {\n\t\tstyle.display = display;\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = jQuery.camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( jQuery.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = animationPrefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t}),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\t\t\t\t// Support: Android 2.3\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length ; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ]);\n\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t} else {\n\t\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tanimation = deferred.promise({\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, { specialEasing: {} }, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length ; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length ; index++ ) {\n\t\tresult = animationPrefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( jQuery.isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t})\n\t);\n\n\t// attach callbacks from options\n\treturn animation.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweener: function( props, callback ) {\n\t\tif ( jQuery.isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.split(\" \");\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length ; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\ttweeners[ prop ] = tweeners[ prop ] || [];\n\t\t\ttweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tanimationPrefilters.unshift( callback );\n\t\t} else {\n\t\t\tanimationPrefilters.push( callback );\n\t\t}\n\t}\n});\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tjQuery.isFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !jQuery.isFunction( easing ) && easing\n\t};\n\n\topt.duration = jQuery.fx.off ? 0 : typeof opt.duration === \"number\" ? opt.duration :\n\t\topt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( jQuery.isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend({\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHidden ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate({ opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || data_priv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue && type !== false ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = data_priv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t});\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each(function() {\n\t\t\tvar index,\n\t\t\t\tdata = data_priv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t});\n\t}\n});\n\njQuery.each([ \"toggle\", \"show\", \"hide\" ], function( i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n});\n\n// Generate shortcuts for custom animations\njQuery.each({\n\tslideDown: genFx(\"show\"),\n\tslideUp: genFx(\"hide\"),\n\tslideToggle: genFx(\"toggle\"),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n});\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = jQuery.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\t\t// Checks the timer has not already been removed\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tif ( timer() ) {\n\t\tjQuery.fx.start();\n\t} else {\n\t\tjQuery.timers.pop();\n\t}\n};\n\njQuery.fx.interval = 13;\n\njQuery.fx.start = function() {\n\tif ( !timerId ) {\n\t\ttimerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );\n\t}\n};\n\njQuery.fx.stop = function() {\n\tclearInterval( timerId );\n\ttimerId = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\tclearTimeout( timeout );\n\t\t};\n\t});\n};\n\n\n(function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: iOS<=5.1, Android<=4.2+\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE<=11+\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: Android<=2.3\n\t// Options inside disabled selects are incorrectly marked as disabled\n\tselect.disabled = true;\n\tsupport.optDisabled = !opt.disabled;\n\n\t// Support: IE<=11+\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n})();\n\n\nvar nodeHook, boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend({\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t});\n\t}\n});\n\njQuery.extend({\n\tattr: function( elem, name, value ) {\n\t\tvar hooks, ret,\n\t\t\tnType = elem.nodeType;\n\n\t\t// don't get/set attributes on text, comment and attribute nodes\n\t\tif ( !elem || nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === strundefined ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// All attributes are lowercase\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\tname = name.toLowerCase();\n\t\t\thooks = jQuery.attrHooks[ name ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\n\t\t\t} else if ( hooks && \"set\" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {\n\t\t\t\treturn ret;\n\n\t\t\t} else {\n\t\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t} else if ( hooks && \"get\" in hooks && (ret = hooks.get( elem, name )) !== null ) {\n\t\t\treturn ret;\n\n\t\t} else {\n\t\t\tret = jQuery.find.attr( elem, name );\n\n\t\t\t// Non-existent attributes return null, we normalize to undefined\n\t\t\treturn ret == null ?\n\t\t\t\tundefined :\n\t\t\t\tret;\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name, propName,\n\t\t\ti = 0,\n\t\t\tattrNames = value && value.match( rnotwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( (name = attrNames[i++]) ) {\n\t\t\t\tpropName = jQuery.propFix[ name ] || name;\n\n\t\t\t\t// Boolean attributes get special treatment (#10870)\n\t\t\t\tif ( jQuery.expr.match.bool.test( name ) ) {\n\t\t\t\t\t// Set corresponding property to false\n\t\t\t\t\telem[ propName ] = false;\n\t\t\t\t}\n\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tjQuery.nodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n});\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle;\n\t\tif ( !isXML ) {\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ name ];\n\t\t\tattrHandle[ name ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tname.toLowerCase() :\n\t\t\t\tnull;\n\t\t\tattrHandle[ name ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n});\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i;\n\njQuery.fn.extend({\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each(function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t});\n\t}\n});\n\njQuery.extend({\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t},\n\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks, notxml,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( !elem || nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tnotxml = nType !== 1 || !jQuery.isXMLDoc( elem );\n\n\t\tif ( notxml ) {\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\treturn hooks && \"set\" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ?\n\t\t\t\tret :\n\t\t\t\t( elem[ name ] = value );\n\n\t\t} else {\n\t\t\treturn hooks && \"get\" in hooks && (ret = hooks.get( elem, name )) !== null ?\n\t\t\t\tret :\n\t\t\t\telem[ name ];\n\t\t}\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\t\t\t\treturn elem.hasAttribute( \"tabindex\" ) || rfocusable.test( elem.nodeName ) || elem.href ?\n\t\t\t\t\telem.tabIndex :\n\t\t\t\t\t-1;\n\t\t\t}\n\t\t}\n\t}\n});\n\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t};\n}\n\njQuery.each([\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n});\n\n\n\n\nvar rclass = /[\\t\\r\\n\\f]/g;\n\njQuery.fn.extend({\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, clazz, j, finalValue,\n\t\t\tproceed = typeof value === \"string\" && value,\n\t\t\ti = 0,\n\t\t\tlen = this.length;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, this.className ) );\n\t\t\t});\n\t\t}\n\n\t\tif ( proceed ) {\n\t\t\t// The disjunction here is for better compressibility (see removeClass)\n\t\t\tclasses = ( value || \"\" ).match( rnotwhite ) || [];\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\telem = this[ i ];\n\t\t\t\tcur = elem.nodeType === 1 && ( elem.className ?\n\t\t\t\t\t( \" \" + elem.className + \" \" ).replace( rclass, \" \" ) :\n\t\t\t\t\t\" \"\n\t\t\t\t);\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (clazz = classes[j++]) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = jQuery.trim( cur );\n\t\t\t\t\tif ( elem.className !== finalValue ) {\n\t\t\t\t\t\telem.className = finalValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, clazz, j, finalValue,\n\t\t\tproceed = arguments.length === 0 || typeof value === \"string\" && value,\n\t\t\ti = 0,\n\t\t\tlen = this.length;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, this.className ) );\n\t\t\t});\n\t\t}\n\t\tif ( proceed ) {\n\t\t\tclasses = ( value || \"\" ).match( rnotwhite ) || [];\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\telem = this[ i ];\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( elem.className ?\n\t\t\t\t\t( \" \" + elem.className + \" \" ).replace( rclass, \" \" ) :\n\t\t\t\t\t\"\"\n\t\t\t\t);\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (clazz = classes[j++]) ) {\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) >= 0 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = value ? jQuery.trim( cur ) : \"\";\n\t\t\t\t\tif ( elem.className !== finalValue ) {\n\t\t\t\t\t\telem.className = finalValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value;\n\n\t\tif ( typeof stateVal === \"boolean\" && type === \"string\" ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( i ) {\n\t\t\t\tjQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );\n\t\t\t});\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tif ( type === \"string\" ) {\n\t\t\t\t// Toggle individual class names\n\t\t\t\tvar className,\n\t\t\t\t\ti = 0,\n\t\t\t\t\tself = jQuery( this ),\n\t\t\t\t\tclassNames = value.match( rnotwhite ) || [];\n\n\t\t\t\twhile ( (className = classNames[ i++ ]) ) {\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( type === strundefined || type === \"boolean\" ) {\n\t\t\t\tif ( this.className ) {\n\t\t\t\t\t// store className if set\n\t\t\t\t\tdata_priv.set( this, \"__className__\", this.className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tthis.className = this.className || value === false ? \"\" : data_priv.get( this, \"__className__\" ) || \"\";\n\t\t\t}\n\t\t});\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className = \" \" + selector + \" \",\n\t\t\ti = 0,\n\t\t\tl = this.length;\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tif ( this[i].nodeType === 1 && (\" \" + this[i].className + \" \").replace(rclass, \" \").indexOf( className ) >= 0 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n});\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend({\n\tval: function( value ) {\n\t\tvar hooks, ret, isFunction,\n\t\t\telem = this[0];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks && \"get\" in hooks && (ret = hooks.get( elem, \"value\" )) !== undefined ) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\treturn typeof ret === \"string\" ?\n\t\t\t\t\t// Handle most common string cases\n\t\t\t\t\tret.replace(rreturn, \"\") :\n\t\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\t\tret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tisFunction = jQuery.isFunction( value );\n\n\t\treturn this.each(function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( jQuery.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t});\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !(\"set\" in hooks) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t});\n\t}\n});\n\njQuery.extend({\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\t\t\t\t\t// Support: IE10-11+\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\tjQuery.trim( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\" || index < 0,\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length,\n\t\t\t\t\ti = index < 0 ?\n\t\t\t\t\t\tmax :\n\t\t\t\t\t\tone ? index : 0;\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// IE6-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t( support.optDisabled ? !option.disabled : option.getAttribute( \"disabled\" ) === null ) &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\t\t\t\t\tif ( (option.selected = jQuery.inArray( option.value, values ) >= 0) ) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n});\n\n// Radios and checkboxes getter/setter\njQuery.each([ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( jQuery.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n\t\t};\n\t}\n});\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\njQuery.each( (\"blur focus focusin focusout load resize scroll unload click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup error contextmenu\").split(\" \"), function( i, name ) {\n\n\t// Handle event binding\n\tjQuery.fn[ name ] = function( data, fn ) {\n\t\treturn arguments.length > 0 ?\n\t\t\tthis.on( name, null, data, fn ) :\n\t\t\tthis.trigger( name );\n\t};\n});\n\njQuery.fn.extend({\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t},\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ? this.off( selector, \"**\" ) : this.off( types, selector || \"**\", fn );\n\t}\n});\n\n\nvar nonce = jQuery.now();\n\nvar rquery = (/\\?/);\n\n\n\n// Support: Android 2.3\n// Workaround failure to string-cast null input\njQuery.parseJSON = function( data ) {\n\treturn JSON.parse( data + \"\" );\n};\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, tmp;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE9\n\ttry {\n\t\ttmp = new DOMParser();\n\t\txml = tmp.parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trhash = /#.*$/,\n\trts = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\trurl = /^([\\w.+-]+:)(?:\\/\\/(?:[^\\/?#]*@|)([^\\/?#:]*)(?::(\\d+)|)|)/,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Document location\n\tajaxLocation = window.location.href,\n\n\t// Segment location into parts\n\tajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];\n\n\t\tif ( jQuery.isFunction( func ) ) {\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( (dataType = dataTypes[i++]) ) {\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[0] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t(structure[ dataType ] = structure[ dataType ] || []).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t(structure[ dataType ] = structure[ dataType ] || []).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t});\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[0] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s[ \"throws\" ] ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn { state: \"parsererror\", error: conv ? e : \"No conversion from \" + prev + \" to \" + current };\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend({\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: ajaxLocation,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /xml/,\n\t\t\thtml: /html/,\n\t\t\tjson: /json/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": jQuery.parseJSON,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\t\t\t// Cross-domain detection vars\n\t\t\tparts,\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\t\t\t// Loop variable\n\t\t\ti,\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks(\"once memory\"),\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\t\t\t// The jqXHR state\n\t\t\tstate = 0,\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( state === 2 ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( (match = rheaders.exec( responseHeadersString )) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[1].toLowerCase() ] = match[ 2 ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match;\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn state === 2 ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tvar lname = name.toLowerCase();\n\t\t\t\t\tif ( !state ) {\n\t\t\t\t\t\tname = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( !state ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( state < 2 ) {\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\t// Lazy-add the new callback in a way that preserves old ones\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR ).complete = completeDeferred.add;\n\t\tjqXHR.success = jqXHR.done;\n\t\tjqXHR.error = jqXHR.fail;\n\n\t\t// Remove hash character (#7531: and string promotion)\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || ajaxLocation ) + \"\" ).replace( rhash, \"\" )\n\t\t\t.replace( rprotocol, ajaxLocParts[ 1 ] + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = jQuery.trim( s.dataType || \"*\" ).toLowerCase().match( rnotwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when we have a protocol:host:port mismatch\n\t\tif ( s.crossDomain == null ) {\n\t\t\tparts = rurl.exec( s.url.toLowerCase() );\n\t\t\ts.crossDomain = !!( parts &&\n\t\t\t\t( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||\n\t\t\t\t\t( parts[ 3 ] || ( parts[ 1 ] === \"http:\" ? \"80\" : \"443\" ) ) !==\n\t\t\t\t\t\t( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === \"http:\" ? \"80\" : \"443\" ) ) )\n\t\t\t);\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( state === 2 ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger(\"ajaxStart\");\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\tcacheURL = s.url;\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// If data is available, append data to url\n\t\t\tif ( s.data ) {\n\t\t\t\tcacheURL = ( s.url += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data );\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add anti-cache in url if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\ts.url = rts.test( cacheURL ) ?\n\n\t\t\t\t\t// If there is already a '_' parameter, set its value\n\t\t\t\t\tcacheURL.replace( rts, \"$1_=\" + nonce++ ) :\n\n\t\t\t\t\t// Otherwise add one to the end\n\t\t\t\t\tcacheURL + ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + nonce++;\n\t\t\t}\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tfor ( i in { success: 1, error: 1, complete: 1 } ) {\n\t\t\tjqXHR[ i ]( s[ i ] );\n\t\t}\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = setTimeout(function() {\n\t\t\t\t\tjqXHR.abort(\"timeout\");\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tstate = 1;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\t\t\t\t// Propagate exception as error if not done\n\t\t\t\tif ( state < 2 ) {\n\t\t\t\t\tdone( -1, e );\n\t\t\t\t// Simply rethrow otherwise\n\t\t\t\t} else {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Called once\n\t\t\tif ( state === 2 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// State is \"done\" now\n\t\t\tstate = 2;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\tclearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader(\"Last-Modified\");\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader(\"etag\");\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger(\"ajaxStop\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n});\n\njQuery.each( [ \"get\", \"post\" ], function( i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( jQuery.isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\treturn jQuery.ajax({\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t});\n\t};\n});\n\n\njQuery._evalUrl = function( url ) {\n\treturn jQuery.ajax({\n\t\turl: url,\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tasync: false,\n\t\tglobal: false,\n\t\t\"throws\": true\n\t});\n};\n\n\njQuery.fn.extend({\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each(function( i ) {\n\t\t\t\tjQuery( this ).wrapAll( html.call(this, i) );\n\t\t\t});\n\t\t}\n\n\t\tif ( this[ 0 ] ) {\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map(function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t}).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each(function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call(this, i) );\n\t\t\t});\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t});\n\t},\n\n\twrap: function( html ) {\n\t\tvar isFunction = jQuery.isFunction( html );\n\n\t\treturn this.each(function( i ) {\n\t\t\tjQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );\n\t\t});\n\t},\n\n\tunwrap: function() {\n\t\treturn this.parent().each(function() {\n\t\t\tif ( !jQuery.nodeName( this, \"body\" ) ) {\n\t\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t\t}\n\t\t}).end();\n\t}\n});\n\n\njQuery.expr.filters.hidden = function( elem ) {\n\t// Support: Opera <= 12.12\n\t// Opera reports offsetWidths and offsetHeights less than zero on some elements\n\treturn elem.offsetWidth <= 0 && elem.offsetHeight <= 0;\n};\njQuery.expr.filters.visible = function( elem ) {\n\treturn !jQuery.expr.filters.hidden( elem );\n};\n\n\n\n\nvar r20 = /%20/g,\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( jQuery.isArray( obj ) ) {\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams( prefix + \"[\" + ( typeof v === \"object\" ? i : \"\" ) + \"]\", v, traditional, add );\n\t\t\t}\n\t\t});\n\n\t} else if ( !traditional && jQuery.type( obj ) === \"object\" ) {\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, value ) {\n\t\t\t// If value is a function, invoke it and return its value\n\t\t\tvalue = jQuery.isFunction( value ) ? value() : ( value == null ? \"\" : value );\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" + encodeURIComponent( value );\n\t\t};\n\n\t// Set traditional to true for jQuery <= 1.3.2 behavior.\n\tif ( traditional === undefined ) {\n\t\ttraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t});\n\n\t} else {\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" ).replace( r20, \"+\" );\n};\n\njQuery.fn.extend({\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map(function() {\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t})\n\t\t.filter(function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t})\n\t\t.map(function( i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\treturn val == null ?\n\t\t\t\tnull :\n\t\t\t\tjQuery.isArray( val ) ?\n\t\t\t\t\tjQuery.map( val, function( val ) {\n\t\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t\t}) :\n\t\t\t\t\t{ name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t}).get();\n\t}\n});\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new XMLHttpRequest();\n\t} catch( e ) {}\n};\n\nvar xhrId = 0,\n\txhrCallbacks = {},\n\txhrSuccessStatus = {\n\t\t// file protocol always yields status code 0, assume 200\n\t\t0: 200,\n\t\t// Support: IE9\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\n// Support: IE9\n// Open requests must be manually aborted on unload (#5280)\n// See https://support.microsoft.com/kb/2856746 for more info\nif ( window.attachEvent ) {\n\twindow.attachEvent( \"onunload\", function() {\n\t\tfor ( var key in xhrCallbacks ) {\n\t\t\txhrCallbacks[ key ]();\n\t\t}\n\t});\n}\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport(function( options ) {\n\tvar callback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr(),\n\t\t\t\t\tid = ++xhrId;\n\n\t\t\t\txhr.open( options.type, options.url, options.async, options.username, options.password );\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[\"X-Requested-With\"] ) {\n\t\t\t\t\theaders[\"X-Requested-With\"] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tdelete xhrCallbacks[ id ];\n\t\t\t\t\t\t\tcallback = xhr.onload = xhr.onerror = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\t// file: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\t\t\t\t\t\t\t\t\t// Support: IE9\n\t\t\t\t\t\t\t\t\t// Accessing binary-data responseText throws an exception\n\t\t\t\t\t\t\t\t\t// (#11426)\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText === \"string\" ? {\n\t\t\t\t\t\t\t\t\t\ttext: xhr.responseText\n\t\t\t\t\t\t\t\t\t} : undefined,\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\txhr.onerror = callback(\"error\");\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = xhrCallbacks[ id ] = callback(\"abort\");\n\n\t\t\t\ttry {\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n});\n\n\n\n\n// Install script dataType\njQuery.ajaxSetup({\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /(?:java|ecma)script/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n});\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n});\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\t// This transport only deals with cross domain requests\n\tif ( s.crossDomain ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery(\"<script>\").prop({\n\t\t\t\t\tasync: true,\n\t\t\t\t\tcharset: s.scriptCharset,\n\t\t\t\t\tsrc: s.url\n\t\t\t\t}).on(\n\t\t\t\t\t\"load error\",\n\t\t\t\t\tcallback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n});\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup({\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n});\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" && !( s.contentType || \"\" ).indexOf(\"application/x-www-form-urlencoded\") && rjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[\"script json\"] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always(function() {\n\t\t\t// Restore preexisting value\n\t\t\twindow[ callbackName ] = overwritten;\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\t\t\t\t// make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && jQuery.isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t});\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n});\n\n\n\n\n// data: string of html\n// context (optional): If specified, the fragment will be created in this context, defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\tcontext = context || document;\n\n\tvar parsed = rsingleTag.exec( data ),\n\t\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[1] ) ];\n\t}\n\n\tparsed = jQuery.buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n// Keep a copy of the old load method\nvar _load = jQuery.fn.load;\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tif ( typeof url !== \"string\" && _load ) {\n\t\treturn _load.apply( this, arguments );\n\t}\n\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf(\" \");\n\n\tif ( off >= 0 ) {\n\t\tselector = jQuery.trim( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( jQuery.isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax({\n\t\t\turl: url,\n\n\t\t\t// if \"type\" variable is undefined, then \"GET\" method will be used\n\t\t\ttype: type,\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t}).done(function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery(\"<div>\").append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t}).complete( callback && function( jqXHR, status ) {\n\t\t\tself.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t});\n\t}\n\n\treturn this;\n};\n\n\n\n\n// Attach a bunch of functions for handling common AJAX events\njQuery.each( [ \"ajaxStart\", \"ajaxStop\", \"ajaxComplete\", \"ajaxError\", \"ajaxSuccess\", \"ajaxSend\" ], function( i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n});\n\n\n\n\njQuery.expr.filters.animated = function( elem ) {\n\treturn jQuery.grep(jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t}).length;\n};\n\n\n\n\nvar docElem = window.document.documentElement;\n\n/**\n * Gets a window from an element\n */\nfunction getWindow( elem ) {\n\treturn jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;\n}\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf(\"auto\") > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( jQuery.isFunction( options ) ) {\n\t\t\toptions = options.call( elem, i, curOffset );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend({\n\toffset: function( options ) {\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each(function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t});\n\t\t}\n\n\t\tvar docElem, win,\n\t\t\telem = this[ 0 ],\n\t\t\tbox = { top: 0, left: 0 },\n\t\t\tdoc = elem && elem.ownerDocument;\n\n\t\tif ( !doc ) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocElem = doc.documentElement;\n\n\t\t// Make sure it's not a disconnected DOM node\n\t\tif ( !jQuery.contains( docElem, elem ) ) {\n\t\t\treturn box;\n\t\t}\n\n\t\t// Support: BlackBerry 5, iOS 3 (original iPhone)\n\t\t// If we don't have gBCR, just use 0,0 rather than error\n\t\tif ( typeof elem.getBoundingClientRect !== strundefined ) {\n\t\t\tbox = elem.getBoundingClientRect();\n\t\t}\n\t\twin = getWindow( doc );\n\t\treturn {\n\t\t\ttop: box.top + win.pageYOffset - docElem.clientTop,\n\t\t\tleft: box.left + win.pageXOffset - docElem.clientLeft\n\t\t};\n\t},\n\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\t\t\t// Assume getBoundingClientRect is there when computed position is fixed\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\t// Get *real* offsetParent\n\t\t\toffsetParent = this.offsetParent();\n\n\t\t\t// Get correct offsets\n\t\t\toffset = this.offset();\n\t\t\tif ( !jQuery.nodeName( offsetParent[ 0 ], \"html\" ) ) {\n\t\t\t\tparentOffset = offsetParent.offset();\n\t\t\t}\n\n\t\t\t// Add offsetParent borders\n\t\t\tparentOffset.top += jQuery.css( offsetParent[ 0 ], \"borderTopWidth\", true );\n\t\t\tparentOffset.left += jQuery.css( offsetParent[ 0 ], \"borderLeftWidth\", true );\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\toffsetParent: function() {\n\t\treturn this.map(function() {\n\t\t\tvar offsetParent = this.offsetParent || docElem;\n\n\t\t\twhile ( offsetParent && ( !jQuery.nodeName( offsetParent, \"html\" ) && jQuery.css( offsetParent, \"position\" ) === \"static\" ) ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || docElem;\n\t\t});\n\t}\n});\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\t\t\tvar win = getWindow( elem );\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : window.pageXOffset,\n\t\t\t\t\ttop ? val : window.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length, null );\n\t};\n});\n\n// Support: Safari<7+, Chrome<37+\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://code.google.com/p/chromium/issues/detail?id=229280\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n});\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( { padding: \"inner\" + name, content: type, \"\": \"outer\" + name }, function( defaultExtra, funcName ) {\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( jQuery.isWindow( elem ) ) {\n\t\t\t\t\t// As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there\n\t\t\t\t\t// isn't a whole lot we can do. See pull request at this URL for discussion:\n\t\t\t\t\t// https://github.com/jquery/jquery/pull/764\n\t\t\t\t\treturn elem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable, null );\n\t\t};\n\t});\n});\n\n\n// The number of elements contained in the matched element set\njQuery.fn.size = function() {\n\treturn this.length;\n};\n\njQuery.fn.andSelf = jQuery.fn.addBack;\n\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t});\n}\n\n\n\n\nvar\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( typeof noGlobal === strundefined ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n\n}));\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\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","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","'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 TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar 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 = TO_STRING_TAG_SUPPORT ? classofRaw : 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 fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\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');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !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 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(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\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 definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","/*!\n * jQuery UI Button 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Button\n//>>group: Widgets\n//>>description: Enhances a form with themeable buttons.\n//>>docs: http://api.jqueryui.com/button/\n//>>demos: http://jqueryui.com/button/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/button.css\n//>>css.theme: ../../themes/base/theme.css\n\n( function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [\n\t\t\t\"jquery\",\n\n\t\t\t// These are only for backcompat\n\t\t\t// TODO: Remove after 1.12\n\t\t\t\"./controlgroup\",\n\t\t\t\"./checkboxradio\",\n\n\t\t\t\"../keycode\",\n\t\t\t\"../widget\"\n\t\t], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}( function( $ ) {\n\n$.widget( \"ui.button\", {\n\tversion: \"1.12.1\",\n\tdefaultElement: \"<button>\",\n\toptions: {\n\t\tclasses: {\n\t\t\t\"ui-button\": \"ui-corner-all\"\n\t\t},\n\t\tdisabled: null,\n\t\ticon: null,\n\t\ticonPosition: \"beginning\",\n\t\tlabel: null,\n\t\tshowLabel: true\n\t},\n\n\t_getCreateOptions: function() {\n\t\tvar disabled,\n\n\t\t\t// This is to support cases like in jQuery Mobile where the base widget does have\n\t\t\t// an implementation of _getCreateOptions\n\t\t\toptions = this._super() || {};\n\n\t\tthis.isInput = this.element.is( \"input\" );\n\n\t\tdisabled = this.element[ 0 ].disabled;\n\t\tif ( disabled != null ) {\n\t\t\toptions.disabled = disabled;\n\t\t}\n\n\t\tthis.originalLabel = this.isInput ? this.element.val() : this.element.html();\n\t\tif ( this.originalLabel ) {\n\t\t\toptions.label = this.originalLabel;\n\t\t}\n\n\t\treturn options;\n\t},\n\n\t_create: function() {\n\t\tif ( !this.option.showLabel & !this.options.icon ) {\n\t\t\tthis.options.showLabel = true;\n\t\t}\n\n\t\t// We have to check the option again here even though we did in _getCreateOptions,\n\t\t// because null may have been passed on init which would override what was set in\n\t\t// _getCreateOptions\n\t\tif ( this.options.disabled == null ) {\n\t\t\tthis.options.disabled = this.element[ 0 ].disabled || false;\n\t\t}\n\n\t\tthis.hasTitle = !!this.element.attr( \"title\" );\n\n\t\t// Check to see if the label needs to be set or if its already correct\n\t\tif ( this.options.label && this.options.label !== this.originalLabel ) {\n\t\t\tif ( this.isInput ) {\n\t\t\t\tthis.element.val( this.options.label );\n\t\t\t} else {\n\t\t\t\tthis.element.html( this.options.label );\n\t\t\t}\n\t\t}\n\t\tthis._addClass( \"ui-button\", \"ui-widget\" );\n\t\tthis._setOption( \"disabled\", this.options.disabled );\n\t\tthis._enhance();\n\n\t\tif ( this.element.is( \"a\" ) ) {\n\t\t\tthis._on( {\n\t\t\t\t\"keyup\": function( event ) {\n\t\t\t\t\tif ( event.keyCode === $.ui.keyCode.SPACE ) {\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: PhantomJS <= 1.9, IE 8 Only\n\t\t\t\t\t\t// If a native click is available use it so we actually cause navigation\n\t\t\t\t\t\t// otherwise just trigger a click event\n\t\t\t\t\t\tif ( this.element[ 0 ].click ) {\n\t\t\t\t\t\t\tthis.element[ 0 ].click();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.element.trigger( \"click\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t},\n\n\t_enhance: function() {\n\t\tif ( !this.element.is( \"button\" ) ) {\n\t\t\tthis.element.attr( \"role\", \"button\" );\n\t\t}\n\n\t\tif ( this.options.icon ) {\n\t\t\tthis._updateIcon( \"icon\", this.options.icon );\n\t\t\tthis._updateTooltip();\n\t\t}\n\t},\n\n\t_updateTooltip: function() {\n\t\tthis.title = this.element.attr( \"title\" );\n\n\t\tif ( !this.options.showLabel && !this.title ) {\n\t\t\tthis.element.attr( \"title\", this.options.label );\n\t\t}\n\t},\n\n\t_updateIcon: function( option, value ) {\n\t\tvar icon = option !== \"iconPosition\",\n\t\t\tposition = icon ? this.options.iconPosition : value,\n\t\t\tdisplayBlock = position === \"top\" || position === \"bottom\";\n\n\t\t// Create icon\n\t\tif ( !this.icon ) {\n\t\t\tthis.icon = $( \"<span>\" );\n\n\t\t\tthis._addClass( this.icon, \"ui-button-icon\", \"ui-icon\" );\n\n\t\t\tif ( !this.options.showLabel ) {\n\t\t\t\tthis._addClass( \"ui-button-icon-only\" );\n\t\t\t}\n\t\t} else if ( icon ) {\n\n\t\t\t// If we are updating the icon remove the old icon class\n\t\t\tthis._removeClass( this.icon, null, this.options.icon );\n\t\t}\n\n\t\t// If we are updating the icon add the new icon class\n\t\tif ( icon ) {\n\t\t\tthis._addClass( this.icon, null, value );\n\t\t}\n\n\t\tthis._attachIcon( position );\n\n\t\t// If the icon is on top or bottom we need to add the ui-widget-icon-block class and remove\n\t\t// the iconSpace if there is one.\n\t\tif ( displayBlock ) {\n\t\t\tthis._addClass( this.icon, null, \"ui-widget-icon-block\" );\n\t\t\tif ( this.iconSpace ) {\n\t\t\t\tthis.iconSpace.remove();\n\t\t\t}\n\t\t} else {\n\n\t\t\t// Position is beginning or end so remove the ui-widget-icon-block class and add the\n\t\t\t// space if it does not exist\n\t\t\tif ( !this.iconSpace ) {\n\t\t\t\tthis.iconSpace = $( \"<span> </span>\" );\n\t\t\t\tthis._addClass( this.iconSpace, \"ui-button-icon-space\" );\n\t\t\t}\n\t\t\tthis._removeClass( this.icon, null, \"ui-wiget-icon-block\" );\n\t\t\tthis._attachIconSpace( position );\n\t\t}\n\t},\n\n\t_destroy: function() {\n\t\tthis.element.removeAttr( \"role\" );\n\n\t\tif ( this.icon ) {\n\t\t\tthis.icon.remove();\n\t\t}\n\t\tif ( this.iconSpace ) {\n\t\t\tthis.iconSpace.remove();\n\t\t}\n\t\tif ( !this.hasTitle ) {\n\t\t\tthis.element.removeAttr( \"title\" );\n\t\t}\n\t},\n\n\t_attachIconSpace: function( iconPosition ) {\n\t\tthis.icon[ /^(?:end|bottom)/.test( iconPosition ) ? \"before\" : \"after\" ]( this.iconSpace );\n\t},\n\n\t_attachIcon: function( iconPosition ) {\n\t\tthis.element[ /^(?:end|bottom)/.test( iconPosition ) ? \"append\" : \"prepend\" ]( this.icon );\n\t},\n\n\t_setOptions: function( options ) {\n\t\tvar newShowLabel = options.showLabel === undefined ?\n\t\t\t\tthis.options.showLabel :\n\t\t\t\toptions.showLabel,\n\t\t\tnewIcon = options.icon === undefined ? this.options.icon : options.icon;\n\n\t\tif ( !newShowLabel && !newIcon ) {\n\t\t\toptions.showLabel = true;\n\t\t}\n\t\tthis._super( options );\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"icon\" ) {\n\t\t\tif ( value ) {\n\t\t\t\tthis._updateIcon( key, value );\n\t\t\t} else if ( this.icon ) {\n\t\t\t\tthis.icon.remove();\n\t\t\t\tif ( this.iconSpace ) {\n\t\t\t\t\tthis.iconSpace.remove();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( key === \"iconPosition\" ) {\n\t\t\tthis._updateIcon( key, value );\n\t\t}\n\n\t\t// Make sure we can't end up with a button that has neither text nor icon\n\t\tif ( key === \"showLabel\" ) {\n\t\t\t\tthis._toggleClass( \"ui-button-icon-only\", null, !value );\n\t\t\t\tthis._updateTooltip();\n\t\t}\n\n\t\tif ( key === \"label\" ) {\n\t\t\tif ( this.isInput ) {\n\t\t\t\tthis.element.val( value );\n\t\t\t} else {\n\n\t\t\t\t// If there is an icon, append it, else nothing then append the value\n\t\t\t\t// this avoids removal of the icon when setting label text\n\t\t\t\tthis.element.html( value );\n\t\t\t\tif ( this.icon ) {\n\t\t\t\t\tthis._attachIcon( this.options.iconPosition );\n\t\t\t\t\tthis._attachIconSpace( this.options.iconPosition );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis._super( key, value );\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis._toggleClass( null, \"ui-state-disabled\", value );\n\t\t\tthis.element[ 0 ].disabled = value;\n\t\t\tif ( value ) {\n\t\t\t\tthis.element.blur();\n\t\t\t}\n\t\t}\n\t},\n\n\trefresh: function() {\n\n\t\t// Make sure to only check disabled if its an element that supports this otherwise\n\t\t// check for the disabled class to determine state\n\t\tvar isDisabled = this.element.is( \"input, button\" ) ?\n\t\t\tthis.element[ 0 ].disabled : this.element.hasClass( \"ui-button-disabled\" );\n\n\t\tif ( isDisabled !== this.options.disabled ) {\n\t\t\tthis._setOptions( { disabled: isDisabled } );\n\t\t}\n\n\t\tthis._updateTooltip();\n\t}\n} );\n\n// DEPRECATED\nif ( $.uiBackCompat !== false ) {\n\n\t// Text and Icons options\n\t$.widget( \"ui.button\", $.ui.button, {\n\t\toptions: {\n\t\t\ttext: true,\n\t\t\ticons: {\n\t\t\t\tprimary: null,\n\t\t\t\tsecondary: null\n\t\t\t}\n\t\t},\n\n\t\t_create: function() {\n\t\t\tif ( this.options.showLabel && !this.options.text ) {\n\t\t\t\tthis.options.showLabel = this.options.text;\n\t\t\t}\n\t\t\tif ( !this.options.showLabel && this.options.text ) {\n\t\t\t\tthis.options.text = this.options.showLabel;\n\t\t\t}\n\t\t\tif ( !this.options.icon && ( this.options.icons.primary ||\n\t\t\t\t\tthis.options.icons.secondary ) ) {\n\t\t\t\tif ( this.options.icons.primary ) {\n\t\t\t\t\tthis.options.icon = this.options.icons.primary;\n\t\t\t\t} else {\n\t\t\t\t\tthis.options.icon = this.options.icons.secondary;\n\t\t\t\t\tthis.options.iconPosition = \"end\";\n\t\t\t\t}\n\t\t\t} else if ( this.options.icon ) {\n\t\t\t\tthis.options.icons.primary = this.options.icon;\n\t\t\t}\n\t\t\tthis._super();\n\t\t},\n\n\t\t_setOption: function( key, value ) {\n\t\t\tif ( key === \"text\" ) {\n\t\t\t\tthis._super( \"showLabel\", value );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( key === \"showLabel\" ) {\n\t\t\t\tthis.options.text = value;\n\t\t\t}\n\t\t\tif ( key === \"icon\" ) {\n\t\t\t\tthis.options.icons.primary = value;\n\t\t\t}\n\t\t\tif ( key === \"icons\" ) {\n\t\t\t\tif ( value.primary ) {\n\t\t\t\t\tthis._super( \"icon\", value.primary );\n\t\t\t\t\tthis._super( \"iconPosition\", \"beginning\" );\n\t\t\t\t} else if ( value.secondary ) {\n\t\t\t\t\tthis._super( \"icon\", value.secondary );\n\t\t\t\t\tthis._super( \"iconPosition\", \"end\" );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._superApply( arguments );\n\t\t}\n\t} );\n\n\t$.fn.button = ( function( orig ) {\n\t\treturn function() {\n\t\t\tif ( !this.length || ( this.length && this[ 0 ].tagName !== \"INPUT\" ) ||\n\t\t\t\t\t( this.length && this[ 0 ].tagName === \"INPUT\" && (\n\t\t\t\t\t\tthis.attr( \"type\" ) !== \"checkbox\" && this.attr( \"type\" ) !== \"radio\"\n\t\t\t\t\t) ) ) {\n\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t}\n\t\t\tif ( !$.ui.checkboxradio ) {\n\t\t\t\t$.error( \"Checkboxradio widget missing\" );\n\t\t\t}\n\t\t\tif ( arguments.length === 0 ) {\n\t\t\t\treturn this.checkboxradio( {\n\t\t\t\t\t\"icon\": false\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn this.checkboxradio.apply( this, arguments );\n\t\t};\n\t} )( $.fn.button );\n\n\t$.fn.buttonset = function() {\n\t\tif ( !$.ui.controlgroup ) {\n\t\t\t$.error( \"Controlgroup widget missing\" );\n\t\t}\n\t\tif ( arguments[ 0 ] === \"option\" && arguments[ 1 ] === \"items\" && arguments[ 2 ] ) {\n\t\t\treturn this.controlgroup.apply( this,\n\t\t\t\t[ arguments[ 0 ], \"items.button\", arguments[ 2 ] ] );\n\t\t}\n\t\tif ( arguments[ 0 ] === \"option\" && arguments[ 1 ] === \"items\" ) {\n\t\t\treturn this.controlgroup.apply( this, [ arguments[ 0 ], \"items.button\" ] );\n\t\t}\n\t\tif ( typeof arguments[ 0 ] === \"object\" && arguments[ 0 ].items ) {\n\t\t\targuments[ 0 ].items = {\n\t\t\t\tbutton: arguments[ 0 ].items\n\t\t\t};\n\t\t}\n\t\treturn this.controlgroup.apply( this, arguments );\n\t};\n}\n\nreturn $.ui.button;\n\n} ) );\n","/*!\n * jQuery UI Controlgroup 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Controlgroup\n//>>group: Widgets\n//>>description: Visually groups form control widgets\n//>>docs: http://api.jqueryui.com/controlgroup/\n//>>demos: http://jqueryui.com/controlgroup/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/controlgroup.css\n//>>css.theme: ../../themes/base/theme.css\n\n( function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [\n\t\t\t\"jquery\",\n\t\t\t\"../widget\"\n\t\t], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}( function( $ ) {\nvar controlgroupCornerRegex = /ui-corner-([a-z]){2,6}/g;\n\nreturn $.widget( \"ui.controlgroup\", {\n\tversion: \"1.12.1\",\n\tdefaultElement: \"<div>\",\n\toptions: {\n\t\tdirection: \"horizontal\",\n\t\tdisabled: null,\n\t\tonlyVisible: true,\n\t\titems: {\n\t\t\t\"button\": \"input[type=button], input[type=submit], input[type=reset], button, a\",\n\t\t\t\"controlgroupLabel\": \".ui-controlgroup-label\",\n\t\t\t\"checkboxradio\": \"input[type='checkbox'], input[type='radio']\",\n\t\t\t\"selectmenu\": \"select\",\n\t\t\t\"spinner\": \".ui-spinner-input\"\n\t\t}\n\t},\n\n\t_create: function() {\n\t\tthis._enhance();\n\t},\n\n\t// To support the enhanced option in jQuery Mobile, we isolate DOM manipulation\n\t_enhance: function() {\n\t\tthis.element.attr( \"role\", \"toolbar\" );\n\t\tthis.refresh();\n\t},\n\n\t_destroy: function() {\n\t\tthis._callChildMethod( \"destroy\" );\n\t\tthis.childWidgets.removeData( \"ui-controlgroup-data\" );\n\t\tthis.element.removeAttr( \"role\" );\n\t\tif ( this.options.items.controlgroupLabel ) {\n\t\t\tthis.element\n\t\t\t\t.find( this.options.items.controlgroupLabel )\n\t\t\t\t.find( \".ui-controlgroup-label-contents\" )\n\t\t\t\t.contents().unwrap();\n\t\t}\n\t},\n\n\t_initWidgets: function() {\n\t\tvar that = this,\n\t\t\tchildWidgets = [];\n\n\t\t// First we iterate over each of the items options\n\t\t$.each( this.options.items, function( widget, selector ) {\n\t\t\tvar labels;\n\t\t\tvar options = {};\n\n\t\t\t// Make sure the widget has a selector set\n\t\t\tif ( !selector ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( widget === \"controlgroupLabel\" ) {\n\t\t\t\tlabels = that.element.find( selector );\n\t\t\t\tlabels.each( function() {\n\t\t\t\t\tvar element = $( this );\n\n\t\t\t\t\tif ( element.children( \".ui-controlgroup-label-contents\" ).length ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\telement.contents()\n\t\t\t\t\t\t.wrapAll( \"<span class='ui-controlgroup-label-contents'></span>\" );\n\t\t\t\t} );\n\t\t\t\tthat._addClass( labels, null, \"ui-widget ui-widget-content ui-state-default\" );\n\t\t\t\tchildWidgets = childWidgets.concat( labels.get() );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Make sure the widget actually exists\n\t\t\tif ( !$.fn[ widget ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// We assume everything is in the middle to start because we can't determine\n\t\t\t// first / last elements until all enhancments are done.\n\t\t\tif ( that[ \"_\" + widget + \"Options\" ] ) {\n\t\t\t\toptions = that[ \"_\" + widget + \"Options\" ]( \"middle\" );\n\t\t\t} else {\n\t\t\t\toptions = { classes: {} };\n\t\t\t}\n\n\t\t\t// Find instances of this widget inside controlgroup and init them\n\t\t\tthat.element\n\t\t\t\t.find( selector )\n\t\t\t\t.each( function() {\n\t\t\t\t\tvar element = $( this );\n\t\t\t\t\tvar instance = element[ widget ]( \"instance\" );\n\n\t\t\t\t\t// We need to clone the default options for this type of widget to avoid\n\t\t\t\t\t// polluting the variable options which has a wider scope than a single widget.\n\t\t\t\t\tvar instanceOptions = $.widget.extend( {}, options );\n\n\t\t\t\t\t// If the button is the child of a spinner ignore it\n\t\t\t\t\t// TODO: Find a more generic solution\n\t\t\t\t\tif ( widget === \"button\" && element.parent( \".ui-spinner\" ).length ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Create the widget if it doesn't exist\n\t\t\t\t\tif ( !instance ) {\n\t\t\t\t\t\tinstance = element[ widget ]()[ widget ]( \"instance\" );\n\t\t\t\t\t}\n\t\t\t\t\tif ( instance ) {\n\t\t\t\t\t\tinstanceOptions.classes =\n\t\t\t\t\t\t\tthat._resolveClassesValues( instanceOptions.classes, instance );\n\t\t\t\t\t}\n\t\t\t\t\telement[ widget ]( instanceOptions );\n\n\t\t\t\t\t// Store an instance of the controlgroup to be able to reference\n\t\t\t\t\t// from the outermost element for changing options and refresh\n\t\t\t\t\tvar widgetElement = element[ widget ]( \"widget\" );\n\t\t\t\t\t$.data( widgetElement[ 0 ], \"ui-controlgroup-data\",\n\t\t\t\t\t\tinstance ? instance : element[ widget ]( \"instance\" ) );\n\n\t\t\t\t\tchildWidgets.push( widgetElement[ 0 ] );\n\t\t\t\t} );\n\t\t} );\n\n\t\tthis.childWidgets = $( $.unique( childWidgets ) );\n\t\tthis._addClass( this.childWidgets, \"ui-controlgroup-item\" );\n\t},\n\n\t_callChildMethod: function( method ) {\n\t\tthis.childWidgets.each( function() {\n\t\t\tvar element = $( this ),\n\t\t\t\tdata = element.data( \"ui-controlgroup-data\" );\n\t\t\tif ( data && data[ method ] ) {\n\t\t\t\tdata[ method ]();\n\t\t\t}\n\t\t} );\n\t},\n\n\t_updateCornerClass: function( element, position ) {\n\t\tvar remove = \"ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all\";\n\t\tvar add = this._buildSimpleOptions( position, \"label\" ).classes.label;\n\n\t\tthis._removeClass( element, null, remove );\n\t\tthis._addClass( element, null, add );\n\t},\n\n\t_buildSimpleOptions: function( position, key ) {\n\t\tvar direction = this.options.direction === \"vertical\";\n\t\tvar result = {\n\t\t\tclasses: {}\n\t\t};\n\t\tresult.classes[ key ] = {\n\t\t\t\"middle\": \"\",\n\t\t\t\"first\": \"ui-corner-\" + ( direction ? \"top\" : \"left\" ),\n\t\t\t\"last\": \"ui-corner-\" + ( direction ? \"bottom\" : \"right\" ),\n\t\t\t\"only\": \"ui-corner-all\"\n\t\t}[ position ];\n\n\t\treturn result;\n\t},\n\n\t_spinnerOptions: function( position ) {\n\t\tvar options = this._buildSimpleOptions( position, \"ui-spinner\" );\n\n\t\toptions.classes[ \"ui-spinner-up\" ] = \"\";\n\t\toptions.classes[ \"ui-spinner-down\" ] = \"\";\n\n\t\treturn options;\n\t},\n\n\t_buttonOptions: function( position ) {\n\t\treturn this._buildSimpleOptions( position, \"ui-button\" );\n\t},\n\n\t_checkboxradioOptions: function( position ) {\n\t\treturn this._buildSimpleOptions( position, \"ui-checkboxradio-label\" );\n\t},\n\n\t_selectmenuOptions: function( position ) {\n\t\tvar direction = this.options.direction === \"vertical\";\n\t\treturn {\n\t\t\twidth: direction ? \"auto\" : false,\n\t\t\tclasses: {\n\t\t\t\tmiddle: {\n\t\t\t\t\t\"ui-selectmenu-button-open\": \"\",\n\t\t\t\t\t\"ui-selectmenu-button-closed\": \"\"\n\t\t\t\t},\n\t\t\t\tfirst: {\n\t\t\t\t\t\"ui-selectmenu-button-open\": \"ui-corner-\" + ( direction ? \"top\" : \"tl\" ),\n\t\t\t\t\t\"ui-selectmenu-button-closed\": \"ui-corner-\" + ( direction ? \"top\" : \"left\" )\n\t\t\t\t},\n\t\t\t\tlast: {\n\t\t\t\t\t\"ui-selectmenu-button-open\": direction ? \"\" : \"ui-corner-tr\",\n\t\t\t\t\t\"ui-selectmenu-button-closed\": \"ui-corner-\" + ( direction ? \"bottom\" : \"right\" )\n\t\t\t\t},\n\t\t\t\tonly: {\n\t\t\t\t\t\"ui-selectmenu-button-open\": \"ui-corner-top\",\n\t\t\t\t\t\"ui-selectmenu-button-closed\": \"ui-corner-all\"\n\t\t\t\t}\n\n\t\t\t}[ position ]\n\t\t};\n\t},\n\n\t_resolveClassesValues: function( classes, instance ) {\n\t\tvar result = {};\n\t\t$.each( classes, function( key ) {\n\t\t\tvar current = instance.options.classes[ key ] || \"\";\n\t\t\tcurrent = $.trim( current.replace( controlgroupCornerRegex, \"\" ) );\n\t\t\tresult[ key ] = ( current + \" \" + classes[ key ] ).replace( /\\s+/g, \" \" );\n\t\t} );\n\t\treturn result;\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"direction\" ) {\n\t\t\tthis._removeClass( \"ui-controlgroup-\" + this.options.direction );\n\t\t}\n\n\t\tthis._super( key, value );\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis._callChildMethod( value ? \"disable\" : \"enable\" );\n\t\t\treturn;\n\t\t}\n\n\t\tthis.refresh();\n\t},\n\n\trefresh: function() {\n\t\tvar children,\n\t\t\tthat = this;\n\n\t\tthis._addClass( \"ui-controlgroup ui-controlgroup-\" + this.options.direction );\n\n\t\tif ( this.options.direction === \"horizontal\" ) {\n\t\t\tthis._addClass( null, \"ui-helper-clearfix\" );\n\t\t}\n\t\tthis._initWidgets();\n\n\t\tchildren = this.childWidgets;\n\n\t\t// We filter here because we need to track all childWidgets not just the visible ones\n\t\tif ( this.options.onlyVisible ) {\n\t\t\tchildren = children.filter( \":visible\" );\n\t\t}\n\n\t\tif ( children.length ) {\n\n\t\t\t// We do this last because we need to make sure all enhancment is done\n\t\t\t// before determining first and last\n\t\t\t$.each( [ \"first\", \"last\" ], function( index, value ) {\n\t\t\t\tvar instance = children[ value ]().data( \"ui-controlgroup-data\" );\n\n\t\t\t\tif ( instance && that[ \"_\" + instance.widgetName + \"Options\" ] ) {\n\t\t\t\t\tvar options = that[ \"_\" + instance.widgetName + \"Options\" ](\n\t\t\t\t\t\tchildren.length === 1 ? \"only\" : value\n\t\t\t\t\t);\n\t\t\t\t\toptions.classes = that._resolveClassesValues( options.classes, instance );\n\t\t\t\t\tinstance.element[ instance.widgetName ]( options );\n\t\t\t\t} else {\n\t\t\t\t\tthat._updateCornerClass( children[ value ](), value );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Finally call the refresh method on each of the child widgets.\n\t\t\tthis._callChildMethod( \"refresh\" );\n\t\t}\n\t}\n} );\n} ) );\n","/*!\n * jQuery UI Checkboxradio 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Checkboxradio\n//>>group: Widgets\n//>>description: Enhances a form with multiple themeable checkboxes or radio buttons.\n//>>docs: http://api.jqueryui.com/checkboxradio/\n//>>demos: http://jqueryui.com/checkboxradio/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/button.css\n//>>css.structure: ../../themes/base/checkboxradio.css\n//>>css.theme: ../../themes/base/theme.css\n\n( function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [\n\t\t\t\"jquery\",\n\t\t\t\"../escape-selector\",\n\t\t\t\"../form-reset-mixin\",\n\t\t\t\"../labels\",\n\t\t\t\"../widget\"\n\t\t], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}( function( $ ) {\n\n$.widget( \"ui.checkboxradio\", [ $.ui.formResetMixin, {\n\tversion: \"1.12.1\",\n\toptions: {\n\t\tdisabled: null,\n\t\tlabel: null,\n\t\ticon: true,\n\t\tclasses: {\n\t\t\t\"ui-checkboxradio-label\": \"ui-corner-all\",\n\t\t\t\"ui-checkboxradio-icon\": \"ui-corner-all\"\n\t\t}\n\t},\n\n\t_getCreateOptions: function() {\n\t\tvar disabled, labels;\n\t\tvar that = this;\n\t\tvar options = this._super() || {};\n\n\t\t// We read the type here, because it makes more sense to throw a element type error first,\n\t\t// rather then the error for lack of a label. Often if its the wrong type, it\n\t\t// won't have a label (e.g. calling on a div, btn, etc)\n\t\tthis._readType();\n\n\t\tlabels = this.element.labels();\n\n\t\t// If there are multiple labels, use the last one\n\t\tthis.label = $( labels[ labels.length - 1 ] );\n\t\tif ( !this.label.length ) {\n\t\t\t$.error( \"No label found for checkboxradio widget\" );\n\t\t}\n\n\t\tthis.originalLabel = \"\";\n\n\t\t// We need to get the label text but this may also need to make sure it does not contain the\n\t\t// input itself.\n\t\tthis.label.contents().not( this.element[ 0 ] ).each( function() {\n\n\t\t\t// The label contents could be text, html, or a mix. We concat each element to get a\n\t\t\t// string representation of the label, without the input as part of it.\n\t\t\tthat.originalLabel += this.nodeType === 3 ? $( this ).text() : this.outerHTML;\n\t\t} );\n\n\t\t// Set the label option if we found label text\n\t\tif ( this.originalLabel ) {\n\t\t\toptions.label = this.originalLabel;\n\t\t}\n\n\t\tdisabled = this.element[ 0 ].disabled;\n\t\tif ( disabled != null ) {\n\t\t\toptions.disabled = disabled;\n\t\t}\n\t\treturn options;\n\t},\n\n\t_create: function() {\n\t\tvar checked = this.element[ 0 ].checked;\n\n\t\tthis._bindFormResetHandler();\n\n\t\tif ( this.options.disabled == null ) {\n\t\t\tthis.options.disabled = this.element[ 0 ].disabled;\n\t\t}\n\n\t\tthis._setOption( \"disabled\", this.options.disabled );\n\t\tthis._addClass( \"ui-checkboxradio\", \"ui-helper-hidden-accessible\" );\n\t\tthis._addClass( this.label, \"ui-checkboxradio-label\", \"ui-button ui-widget\" );\n\n\t\tif ( this.type === \"radio\" ) {\n\t\t\tthis._addClass( this.label, \"ui-checkboxradio-radio-label\" );\n\t\t}\n\n\t\tif ( this.options.label && this.options.label !== this.originalLabel ) {\n\t\t\tthis._updateLabel();\n\t\t} else if ( this.originalLabel ) {\n\t\t\tthis.options.label = this.originalLabel;\n\t\t}\n\n\t\tthis._enhance();\n\n\t\tif ( checked ) {\n\t\t\tthis._addClass( this.label, \"ui-checkboxradio-checked\", \"ui-state-active\" );\n\t\t\tif ( this.icon ) {\n\t\t\t\tthis._addClass( this.icon, null, \"ui-state-hover\" );\n\t\t\t}\n\t\t}\n\n\t\tthis._on( {\n\t\t\tchange: \"_toggleClasses\",\n\t\t\tfocus: function() {\n\t\t\t\tthis._addClass( this.label, null, \"ui-state-focus ui-visual-focus\" );\n\t\t\t},\n\t\t\tblur: function() {\n\t\t\t\tthis._removeClass( this.label, null, \"ui-state-focus ui-visual-focus\" );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_readType: function() {\n\t\tvar nodeName = this.element[ 0 ].nodeName.toLowerCase();\n\t\tthis.type = this.element[ 0 ].type;\n\t\tif ( nodeName !== \"input\" || !/radio|checkbox/.test( this.type ) ) {\n\t\t\t$.error( \"Can't create checkboxradio on element.nodeName=\" + nodeName +\n\t\t\t\t\" and element.type=\" + this.type );\n\t\t}\n\t},\n\n\t// Support jQuery Mobile enhanced option\n\t_enhance: function() {\n\t\tthis._updateIcon( this.element[ 0 ].checked );\n\t},\n\n\twidget: function() {\n\t\treturn this.label;\n\t},\n\n\t_getRadioGroup: function() {\n\t\tvar group;\n\t\tvar name = this.element[ 0 ].name;\n\t\tvar nameSelector = \"input[name='\" + $.ui.escapeSelector( name ) + \"']\";\n\n\t\tif ( !name ) {\n\t\t\treturn $( [] );\n\t\t}\n\n\t\tif ( this.form.length ) {\n\t\t\tgroup = $( this.form[ 0 ].elements ).filter( nameSelector );\n\t\t} else {\n\n\t\t\t// Not inside a form, check all inputs that also are not inside a form\n\t\t\tgroup = $( nameSelector ).filter( function() {\n\t\t\t\treturn $( this ).form().length === 0;\n\t\t\t} );\n\t\t}\n\n\t\treturn group.not( this.element );\n\t},\n\n\t_toggleClasses: function() {\n\t\tvar checked = this.element[ 0 ].checked;\n\t\tthis._toggleClass( this.label, \"ui-checkboxradio-checked\", \"ui-state-active\", checked );\n\n\t\tif ( this.options.icon && this.type === \"checkbox\" ) {\n\t\t\tthis._toggleClass( this.icon, null, \"ui-icon-check ui-state-checked\", checked )\n\t\t\t\t._toggleClass( this.icon, null, \"ui-icon-blank\", !checked );\n\t\t}\n\n\t\tif ( this.type === \"radio\" ) {\n\t\t\tthis._getRadioGroup()\n\t\t\t\t.each( function() {\n\t\t\t\t\tvar instance = $( this ).checkboxradio( \"instance\" );\n\n\t\t\t\t\tif ( instance ) {\n\t\t\t\t\t\tinstance._removeClass( instance.label,\n\t\t\t\t\t\t\t\"ui-checkboxradio-checked\", \"ui-state-active\" );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}\n\t},\n\n\t_destroy: function() {\n\t\tthis._unbindFormResetHandler();\n\n\t\tif ( this.icon ) {\n\t\t\tthis.icon.remove();\n\t\t\tthis.iconSpace.remove();\n\t\t}\n\t},\n\n\t_setOption: function( key, value ) {\n\n\t\t// We don't allow the value to be set to nothing\n\t\tif ( key === \"label\" && !value ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._super( key, value );\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis._toggleClass( this.label, null, \"ui-state-disabled\", value );\n\t\t\tthis.element[ 0 ].disabled = value;\n\n\t\t\t// Don't refresh when setting disabled\n\t\t\treturn;\n\t\t}\n\t\tthis.refresh();\n\t},\n\n\t_updateIcon: function( checked ) {\n\t\tvar toAdd = \"ui-icon ui-icon-background \";\n\n\t\tif ( this.options.icon ) {\n\t\t\tif ( !this.icon ) {\n\t\t\t\tthis.icon = $( \"<span>\" );\n\t\t\t\tthis.iconSpace = $( \"<span> </span>\" );\n\t\t\t\tthis._addClass( this.iconSpace, \"ui-checkboxradio-icon-space\" );\n\t\t\t}\n\n\t\t\tif ( this.type === \"checkbox\" ) {\n\t\t\t\ttoAdd += checked ? \"ui-icon-check ui-state-checked\" : \"ui-icon-blank\";\n\t\t\t\tthis._removeClass( this.icon, null, checked ? \"ui-icon-blank\" : \"ui-icon-check\" );\n\t\t\t} else {\n\t\t\t\ttoAdd += \"ui-icon-blank\";\n\t\t\t}\n\t\t\tthis._addClass( this.icon, \"ui-checkboxradio-icon\", toAdd );\n\t\t\tif ( !checked ) {\n\t\t\t\tthis._removeClass( this.icon, null, \"ui-icon-check ui-state-checked\" );\n\t\t\t}\n\t\t\tthis.icon.prependTo( this.label ).after( this.iconSpace );\n\t\t} else if ( this.icon !== undefined ) {\n\t\t\tthis.icon.remove();\n\t\t\tthis.iconSpace.remove();\n\t\t\tdelete this.icon;\n\t\t}\n\t},\n\n\t_updateLabel: function() {\n\n\t\t// Remove the contents of the label ( minus the icon, icon space, and input )\n\t\tvar contents = this.label.contents().not( this.element[ 0 ] );\n\t\tif ( this.icon ) {\n\t\t\tcontents = contents.not( this.icon[ 0 ] );\n\t\t}\n\t\tif ( this.iconSpace ) {\n\t\t\tcontents = contents.not( this.iconSpace[ 0 ] );\n\t\t}\n\t\tcontents.remove();\n\n\t\tthis.label.append( this.options.label );\n\t},\n\n\trefresh: function() {\n\t\tvar checked = this.element[ 0 ].checked,\n\t\t\tisDisabled = this.element[ 0 ].disabled;\n\n\t\tthis._updateIcon( checked );\n\t\tthis._toggleClass( this.label, \"ui-checkboxradio-checked\", \"ui-state-active\", checked );\n\t\tif ( this.options.label !== null ) {\n\t\t\tthis._updateLabel();\n\t\t}\n\n\t\tif ( isDisabled !== this.options.disabled ) {\n\t\t\tthis._setOptions( { \"disabled\": isDisabled } );\n\t\t}\n\t}\n\n} ] );\n\nreturn $.ui.checkboxradio;\n\n} ) );\n","/*!\n * jQuery UI Form Reset Mixin 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Form Reset Mixin\n//>>group: Core\n//>>description: Refresh input widgets when their form is reset\n//>>docs: http://api.jqueryui.com/form-reset-mixin/\n\n( function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [\n\t\t\t\"jquery\",\n\t\t\t\"./form\",\n\t\t\t\"./version\"\n\t\t], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}( function( $ ) {\n\nreturn $.ui.formResetMixin = {\n\t_formResetHandler: function() {\n\t\tvar form = $( this );\n\n\t\t// Wait for the form reset to actually happen before refreshing\n\t\tsetTimeout( function() {\n\t\t\tvar instances = form.data( \"ui-form-reset-instances\" );\n\t\t\t$.each( instances, function() {\n\t\t\t\tthis.refresh();\n\t\t\t} );\n\t\t} );\n\t},\n\n\t_bindFormResetHandler: function() {\n\t\tthis.form = this.element.form();\n\t\tif ( !this.form.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar instances = this.form.data( \"ui-form-reset-instances\" ) || [];\n\t\tif ( !instances.length ) {\n\n\t\t\t// We don't use _on() here because we use a single event handler per form\n\t\t\tthis.form.on( \"reset.ui-form-reset\", this._formResetHandler );\n\t\t}\n\t\tinstances.push( this );\n\t\tthis.form.data( \"ui-form-reset-instances\", instances );\n\t},\n\n\t_unbindFormResetHandler: function() {\n\t\tif ( !this.form.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar instances = this.form.data( \"ui-form-reset-instances\" );\n\t\tinstances.splice( $.inArray( this, instances ), 1 );\n\t\tif ( instances.length ) {\n\t\t\tthis.form.data( \"ui-form-reset-instances\", instances );\n\t\t} else {\n\t\t\tthis.form\n\t\t\t\t.removeData( \"ui-form-reset-instances\" )\n\t\t\t\t.off( \"reset.ui-form-reset\" );\n\t\t}\n\t}\n};\n\n} ) );\n","( function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\", \"./version\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} ( function( $ ) {\n\n// Support: IE8 Only\n// IE8 does not support the form attribute and when it is supplied. It overwrites the form prop\n// with a string, so we need to find the proper form.\nreturn $.fn.form = function() {\n\treturn typeof this[ 0 ].form === \"string\" ? this.closest( \"form\" ) : $( this[ 0 ].form );\n};\n\n} ) );\n","/*!\n * jQuery UI Labels 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: labels\n//>>group: Core\n//>>description: Find all the labels associated with a given input\n//>>docs: http://api.jqueryui.com/labels/\n\n( function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\", \"./version\", \"./escape-selector\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} ( function( $ ) {\n\nreturn $.fn.labels = function() {\n\tvar ancestor, selector, id, labels, ancestors;\n\n\t// Check control.labels first\n\tif ( this[ 0 ].labels && this[ 0 ].labels.length ) {\n\t\treturn this.pushStack( this[ 0 ].labels );\n\t}\n\n\t// Support: IE <= 11, FF <= 37, Android <= 2.3 only\n\t// Above browsers do not support control.labels. Everything below is to support them\n\t// as well as document fragments. control.labels does not work on document fragments\n\tlabels = this.eq( 0 ).parents( \"label\" );\n\n\t// Look for the label based on the id\n\tid = this.attr( \"id\" );\n\tif ( id ) {\n\n\t\t// We don't search against the document in case the element\n\t\t// is disconnected from the DOM\n\t\tancestor = this.eq( 0 ).parents().last();\n\n\t\t// Get a full set of top level ancestors\n\t\tancestors = ancestor.add( ancestor.length ? ancestor.siblings() : this.siblings() );\n\n\t\t// Create a selector for the label based on the id\n\t\tselector = \"label[for='\" + $.ui.escapeSelector( id ) + \"']\";\n\n\t\tlabels = labels.add( ancestors.find( selector ).addBack( selector ) );\n\n\t}\n\n\t// Return whatever we have found for labels\n\treturn this.pushStack( labels );\n};\n\n} ) );\n","/*!\n * jQuery UI Keycode 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Keycode\n//>>group: Core\n//>>description: Provide keycodes as keynames\n//>>docs: http://api.jqueryui.com/jQuery.ui.keyCode/\n\n( function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\", \"./version\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} ( function( $ ) {\nreturn $.ui.keyCode = {\n\tBACKSPACE: 8,\n\tCOMMA: 188,\n\tDELETE: 46,\n\tDOWN: 40,\n\tEND: 35,\n\tENTER: 13,\n\tESCAPE: 27,\n\tHOME: 36,\n\tLEFT: 37,\n\tPAGE_DOWN: 34,\n\tPAGE_UP: 33,\n\tPERIOD: 190,\n\tRIGHT: 39,\n\tSPACE: 32,\n\tTAB: 9,\n\tUP: 38\n};\n\n} ) );\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js!./theme.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"49a5ecab\", content, true, {});","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_GET_URL_IMPORT___ = require(\"../../../css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL_IMPORT_0___ = require(\"./images/ui-icons_444444_256x240.png\");\nvar ___CSS_LOADER_URL_IMPORT_1___ = require(\"./images/ui-icons_555555_256x240.png\");\nvar ___CSS_LOADER_URL_IMPORT_2___ = require(\"./images/ui-icons_ffffff_256x240.png\");\nvar ___CSS_LOADER_URL_IMPORT_3___ = require(\"./images/ui-icons_777620_256x240.png\");\nvar ___CSS_LOADER_URL_IMPORT_4___ = require(\"./images/ui-icons_cc0000_256x240.png\");\nvar ___CSS_LOADER_URL_IMPORT_5___ = require(\"./images/ui-icons_777777_256x240.png\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\n// Module\nexports.push([module.id, \"/*!\\n * jQuery UI CSS Framework 1.12.1\\n * http://jqueryui.com\\n *\\n * Copyright jQuery Foundation and other contributors\\n * Released under the MIT license.\\n * http://jquery.org/license\\n *\\n * http://api.jqueryui.com/category/theming/\\n *\\n * To view and modify this theme, visit http://jqueryui.com/themeroller/\\n */\\n\\n\\n/* Component containers\\n----------------------------------*/\\n.ui-widget {\\n\\tfont-family: Arial,Helvetica,sans-serif/*{ffDefault}*/;\\n\\tfont-size: 1em/*{fsDefault}*/;\\n}\\n.ui-widget .ui-widget {\\n\\tfont-size: 1em;\\n}\\n.ui-widget input,\\n.ui-widget select,\\n.ui-widget textarea,\\n.ui-widget button {\\n\\tfont-family: Arial,Helvetica,sans-serif/*{ffDefault}*/;\\n\\tfont-size: 1em;\\n}\\n.ui-widget.ui-widget-content {\\n\\tborder: 1px solid #c5c5c5/*{borderColorDefault}*/;\\n}\\n.ui-widget-content {\\n\\tborder: 1px solid #dddddd/*{borderColorContent}*/;\\n\\tbackground: #ffffff/*{bgColorContent}*/ /*{bgImgUrlContent}*/ /*{bgContentXPos}*/ /*{bgContentYPos}*/ /*{bgContentRepeat}*/;\\n\\tcolor: #333333/*{fcContent}*/;\\n}\\n.ui-widget-content a {\\n\\tcolor: #333333/*{fcContent}*/;\\n}\\n.ui-widget-header {\\n\\tborder: 1px solid #dddddd/*{borderColorHeader}*/;\\n\\tbackground: #e9e9e9/*{bgColorHeader}*/ /*{bgImgUrlHeader}*/ /*{bgHeaderXPos}*/ /*{bgHeaderYPos}*/ /*{bgHeaderRepeat}*/;\\n\\tcolor: #333333/*{fcHeader}*/;\\n\\tfont-weight: bold;\\n}\\n.ui-widget-header a {\\n\\tcolor: #333333/*{fcHeader}*/;\\n}\\n\\n/* Interaction states\\n----------------------------------*/\\n.ui-state-default,\\n.ui-widget-content .ui-state-default,\\n.ui-widget-header .ui-state-default,\\n.ui-button,\\n\\n/* We use html here because we need a greater specificity to make sure disabled\\nworks properly when clicked or hovered */\\nhtml .ui-button.ui-state-disabled:hover,\\nhtml .ui-button.ui-state-disabled:active {\\n\\tborder: 1px solid #c5c5c5/*{borderColorDefault}*/;\\n\\tbackground: #f6f6f6/*{bgColorDefault}*/ /*{bgImgUrlDefault}*/ /*{bgDefaultXPos}*/ /*{bgDefaultYPos}*/ /*{bgDefaultRepeat}*/;\\n\\tfont-weight: normal/*{fwDefault}*/;\\n\\tcolor: #454545/*{fcDefault}*/;\\n}\\n.ui-state-default a,\\n.ui-state-default a:link,\\n.ui-state-default a:visited,\\na.ui-button,\\na:link.ui-button,\\na:visited.ui-button,\\n.ui-button {\\n\\tcolor: #454545/*{fcDefault}*/;\\n\\ttext-decoration: none;\\n}\\n.ui-state-hover,\\n.ui-widget-content .ui-state-hover,\\n.ui-widget-header .ui-state-hover,\\n.ui-state-focus,\\n.ui-widget-content .ui-state-focus,\\n.ui-widget-header .ui-state-focus,\\n.ui-button:hover,\\n.ui-button:focus {\\n\\tborder: 1px solid #cccccc/*{borderColorHover}*/;\\n\\tbackground: #ededed/*{bgColorHover}*/ /*{bgImgUrlHover}*/ /*{bgHoverXPos}*/ /*{bgHoverYPos}*/ /*{bgHoverRepeat}*/;\\n\\tfont-weight: normal/*{fwDefault}*/;\\n\\tcolor: #2b2b2b/*{fcHover}*/;\\n}\\n.ui-state-hover a,\\n.ui-state-hover a:hover,\\n.ui-state-hover a:link,\\n.ui-state-hover a:visited,\\n.ui-state-focus a,\\n.ui-state-focus a:hover,\\n.ui-state-focus a:link,\\n.ui-state-focus a:visited,\\na.ui-button:hover,\\na.ui-button:focus {\\n\\tcolor: #2b2b2b/*{fcHover}*/;\\n\\ttext-decoration: none;\\n}\\n\\n.ui-visual-focus {\\n\\tbox-shadow: 0 0 3px 1px rgb(94, 158, 214);\\n}\\n.ui-state-active,\\n.ui-widget-content .ui-state-active,\\n.ui-widget-header .ui-state-active,\\na.ui-button:active,\\n.ui-button:active,\\n.ui-button.ui-state-active:hover {\\n\\tborder: 1px solid #003eff/*{borderColorActive}*/;\\n\\tbackground: #007fff/*{bgColorActive}*/ /*{bgImgUrlActive}*/ /*{bgActiveXPos}*/ /*{bgActiveYPos}*/ /*{bgActiveRepeat}*/;\\n\\tfont-weight: normal/*{fwDefault}*/;\\n\\tcolor: #ffffff/*{fcActive}*/;\\n}\\n.ui-icon-background,\\n.ui-state-active .ui-icon-background {\\n\\tborder: #003eff/*{borderColorActive}*/;\\n\\tbackground-color: #ffffff/*{fcActive}*/;\\n}\\n.ui-state-active a,\\n.ui-state-active a:link,\\n.ui-state-active a:visited {\\n\\tcolor: #ffffff/*{fcActive}*/;\\n\\ttext-decoration: none;\\n}\\n\\n/* Interaction Cues\\n----------------------------------*/\\n.ui-state-highlight,\\n.ui-widget-content .ui-state-highlight,\\n.ui-widget-header .ui-state-highlight {\\n\\tborder: 1px solid #dad55e/*{borderColorHighlight}*/;\\n\\tbackground: #fffa90/*{bgColorHighlight}*/ /*{bgImgUrlHighlight}*/ /*{bgHighlightXPos}*/ /*{bgHighlightYPos}*/ /*{bgHighlightRepeat}*/;\\n\\tcolor: #777620/*{fcHighlight}*/;\\n}\\n.ui-state-checked {\\n\\tborder: 1px solid #dad55e/*{borderColorHighlight}*/;\\n\\tbackground: #fffa90/*{bgColorHighlight}*/;\\n}\\n.ui-state-highlight a,\\n.ui-widget-content .ui-state-highlight a,\\n.ui-widget-header .ui-state-highlight a {\\n\\tcolor: #777620/*{fcHighlight}*/;\\n}\\n.ui-state-error,\\n.ui-widget-content .ui-state-error,\\n.ui-widget-header .ui-state-error {\\n\\tborder: 1px solid #f1a899/*{borderColorError}*/;\\n\\tbackground: #fddfdf/*{bgColorError}*/ /*{bgImgUrlError}*/ /*{bgErrorXPos}*/ /*{bgErrorYPos}*/ /*{bgErrorRepeat}*/;\\n\\tcolor: #5f3f3f/*{fcError}*/;\\n}\\n.ui-state-error a,\\n.ui-widget-content .ui-state-error a,\\n.ui-widget-header .ui-state-error a {\\n\\tcolor: #5f3f3f/*{fcError}*/;\\n}\\n.ui-state-error-text,\\n.ui-widget-content .ui-state-error-text,\\n.ui-widget-header .ui-state-error-text {\\n\\tcolor: #5f3f3f/*{fcError}*/;\\n}\\n.ui-priority-primary,\\n.ui-widget-content .ui-priority-primary,\\n.ui-widget-header .ui-priority-primary {\\n\\tfont-weight: bold;\\n}\\n.ui-priority-secondary,\\n.ui-widget-content .ui-priority-secondary,\\n.ui-widget-header .ui-priority-secondary {\\n\\topacity: .7;\\n\\tfilter:Alpha(Opacity=70); /* support: IE8 */\\n\\tfont-weight: normal;\\n}\\n.ui-state-disabled,\\n.ui-widget-content .ui-state-disabled,\\n.ui-widget-header .ui-state-disabled {\\n\\topacity: .35;\\n\\tfilter:Alpha(Opacity=35); /* support: IE8 */\\n\\tbackground-image: none;\\n}\\n.ui-state-disabled .ui-icon {\\n\\tfilter:Alpha(Opacity=35); /* support: IE8 - See #6059 */\\n}\\n\\n/* Icons\\n----------------------------------*/\\n\\n/* states and images */\\n.ui-icon {\\n\\twidth: 16px;\\n\\theight: 16px;\\n}\\n.ui-icon,\\n.ui-widget-content .ui-icon {\\n\\tbackground-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");\\n}\\n.ui-widget-header .ui-icon {\\n\\tbackground-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");\\n}\\n.ui-state-hover .ui-icon,\\n.ui-state-focus .ui-icon,\\n.ui-button:hover .ui-icon,\\n.ui-button:focus .ui-icon {\\n\\tbackground-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \");\\n}\\n.ui-state-active .ui-icon,\\n.ui-button:active .ui-icon {\\n\\tbackground-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \");\\n}\\n.ui-state-highlight .ui-icon,\\n.ui-button .ui-state-highlight.ui-icon {\\n\\tbackground-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \");\\n}\\n.ui-state-error .ui-icon,\\n.ui-state-error-text .ui-icon {\\n\\tbackground-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \");\\n}\\n.ui-button .ui-icon {\\n\\tbackground-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \");\\n}\\n\\n/* positioning */\\n.ui-icon-blank { background-position: 16px 16px; }\\n.ui-icon-caret-1-n { background-position: 0 0; }\\n.ui-icon-caret-1-ne { background-position: -16px 0; }\\n.ui-icon-caret-1-e { background-position: -32px 0; }\\n.ui-icon-caret-1-se { background-position: -48px 0; }\\n.ui-icon-caret-1-s { background-position: -65px 0; }\\n.ui-icon-caret-1-sw { background-position: -80px 0; }\\n.ui-icon-caret-1-w { background-position: -96px 0; }\\n.ui-icon-caret-1-nw { background-position: -112px 0; }\\n.ui-icon-caret-2-n-s { background-position: -128px 0; }\\n.ui-icon-caret-2-e-w { background-position: -144px 0; }\\n.ui-icon-triangle-1-n { background-position: 0 -16px; }\\n.ui-icon-triangle-1-ne { background-position: -16px -16px; }\\n.ui-icon-triangle-1-e { background-position: -32px -16px; }\\n.ui-icon-triangle-1-se { background-position: -48px -16px; }\\n.ui-icon-triangle-1-s { background-position: -65px -16px; }\\n.ui-icon-triangle-1-sw { background-position: -80px -16px; }\\n.ui-icon-triangle-1-w { background-position: -96px -16px; }\\n.ui-icon-triangle-1-nw { background-position: -112px -16px; }\\n.ui-icon-triangle-2-n-s { background-position: -128px -16px; }\\n.ui-icon-triangle-2-e-w { background-position: -144px -16px; }\\n.ui-icon-arrow-1-n { background-position: 0 -32px; }\\n.ui-icon-arrow-1-ne { background-position: -16px -32px; }\\n.ui-icon-arrow-1-e { background-position: -32px -32px; }\\n.ui-icon-arrow-1-se { background-position: -48px -32px; }\\n.ui-icon-arrow-1-s { background-position: -65px -32px; }\\n.ui-icon-arrow-1-sw { background-position: -80px -32px; }\\n.ui-icon-arrow-1-w { background-position: -96px -32px; }\\n.ui-icon-arrow-1-nw { background-position: -112px -32px; }\\n.ui-icon-arrow-2-n-s { background-position: -128px -32px; }\\n.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }\\n.ui-icon-arrow-2-e-w { background-position: -160px -32px; }\\n.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }\\n.ui-icon-arrowstop-1-n { background-position: -192px -32px; }\\n.ui-icon-arrowstop-1-e { background-position: -208px -32px; }\\n.ui-icon-arrowstop-1-s { background-position: -224px -32px; }\\n.ui-icon-arrowstop-1-w { background-position: -240px -32px; }\\n.ui-icon-arrowthick-1-n { background-position: 1px -48px; }\\n.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }\\n.ui-icon-arrowthick-1-e { background-position: -32px -48px; }\\n.ui-icon-arrowthick-1-se { background-position: -48px -48px; }\\n.ui-icon-arrowthick-1-s { background-position: -64px -48px; }\\n.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }\\n.ui-icon-arrowthick-1-w { background-position: -96px -48px; }\\n.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }\\n.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }\\n.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }\\n.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }\\n.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }\\n.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }\\n.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }\\n.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }\\n.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }\\n.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }\\n.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }\\n.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }\\n.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }\\n.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }\\n.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }\\n.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }\\n.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }\\n.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }\\n.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }\\n.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }\\n.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }\\n.ui-icon-arrow-4 { background-position: 0 -80px; }\\n.ui-icon-arrow-4-diag { background-position: -16px -80px; }\\n.ui-icon-extlink { background-position: -32px -80px; }\\n.ui-icon-newwin { background-position: -48px -80px; }\\n.ui-icon-refresh { background-position: -64px -80px; }\\n.ui-icon-shuffle { background-position: -80px -80px; }\\n.ui-icon-transfer-e-w { background-position: -96px -80px; }\\n.ui-icon-transferthick-e-w { background-position: -112px -80px; }\\n.ui-icon-folder-collapsed { background-position: 0 -96px; }\\n.ui-icon-folder-open { background-position: -16px -96px; }\\n.ui-icon-document { background-position: -32px -96px; }\\n.ui-icon-document-b { background-position: -48px -96px; }\\n.ui-icon-note { background-position: -64px -96px; }\\n.ui-icon-mail-closed { background-position: -80px -96px; }\\n.ui-icon-mail-open { background-position: -96px -96px; }\\n.ui-icon-suitcase { background-position: -112px -96px; }\\n.ui-icon-comment { background-position: -128px -96px; }\\n.ui-icon-person { background-position: -144px -96px; }\\n.ui-icon-print { background-position: -160px -96px; }\\n.ui-icon-trash { background-position: -176px -96px; }\\n.ui-icon-locked { background-position: -192px -96px; }\\n.ui-icon-unlocked { background-position: -208px -96px; }\\n.ui-icon-bookmark { background-position: -224px -96px; }\\n.ui-icon-tag { background-position: -240px -96px; }\\n.ui-icon-home { background-position: 0 -112px; }\\n.ui-icon-flag { background-position: -16px -112px; }\\n.ui-icon-calendar { background-position: -32px -112px; }\\n.ui-icon-cart { background-position: -48px -112px; }\\n.ui-icon-pencil { background-position: -64px -112px; }\\n.ui-icon-clock { background-position: -80px -112px; }\\n.ui-icon-disk { background-position: -96px -112px; }\\n.ui-icon-calculator { background-position: -112px -112px; }\\n.ui-icon-zoomin { background-position: -128px -112px; }\\n.ui-icon-zoomout { background-position: -144px -112px; }\\n.ui-icon-search { background-position: -160px -112px; }\\n.ui-icon-wrench { background-position: -176px -112px; }\\n.ui-icon-gear { background-position: -192px -112px; }\\n.ui-icon-heart { background-position: -208px -112px; }\\n.ui-icon-star { background-position: -224px -112px; }\\n.ui-icon-link { background-position: -240px -112px; }\\n.ui-icon-cancel { background-position: 0 -128px; }\\n.ui-icon-plus { background-position: -16px -128px; }\\n.ui-icon-plusthick { background-position: -32px -128px; }\\n.ui-icon-minus { background-position: -48px -128px; }\\n.ui-icon-minusthick { background-position: -64px -128px; }\\n.ui-icon-close { background-position: -80px -128px; }\\n.ui-icon-closethick { background-position: -96px -128px; }\\n.ui-icon-key { background-position: -112px -128px; }\\n.ui-icon-lightbulb { background-position: -128px -128px; }\\n.ui-icon-scissors { background-position: -144px -128px; }\\n.ui-icon-clipboard { background-position: -160px -128px; }\\n.ui-icon-copy { background-position: -176px -128px; }\\n.ui-icon-contact { background-position: -192px -128px; }\\n.ui-icon-image { background-position: -208px -128px; }\\n.ui-icon-video { background-position: -224px -128px; }\\n.ui-icon-script { background-position: -240px -128px; }\\n.ui-icon-alert { background-position: 0 -144px; }\\n.ui-icon-info { background-position: -16px -144px; }\\n.ui-icon-notice { background-position: -32px -144px; }\\n.ui-icon-help { background-position: -48px -144px; }\\n.ui-icon-check { background-position: -64px -144px; }\\n.ui-icon-bullet { background-position: -80px -144px; }\\n.ui-icon-radio-on { background-position: -96px -144px; }\\n.ui-icon-radio-off { background-position: -112px -144px; }\\n.ui-icon-pin-w { background-position: -128px -144px; }\\n.ui-icon-pin-s { background-position: -144px -144px; }\\n.ui-icon-play { background-position: 0 -160px; }\\n.ui-icon-pause { background-position: -16px -160px; }\\n.ui-icon-seek-next { background-position: -32px -160px; }\\n.ui-icon-seek-prev { background-position: -48px -160px; }\\n.ui-icon-seek-end { background-position: -64px -160px; }\\n.ui-icon-seek-start { background-position: -80px -160px; }\\n/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */\\n.ui-icon-seek-first { background-position: -80px -160px; }\\n.ui-icon-stop { background-position: -96px -160px; }\\n.ui-icon-eject { background-position: -112px -160px; }\\n.ui-icon-volume-off { background-position: -128px -160px; }\\n.ui-icon-volume-on { background-position: -144px -160px; }\\n.ui-icon-power { background-position: 0 -176px; }\\n.ui-icon-signal-diag { background-position: -16px -176px; }\\n.ui-icon-signal { background-position: -32px -176px; }\\n.ui-icon-battery-0 { background-position: -48px -176px; }\\n.ui-icon-battery-1 { background-position: -64px -176px; }\\n.ui-icon-battery-2 { background-position: -80px -176px; }\\n.ui-icon-battery-3 { background-position: -96px -176px; }\\n.ui-icon-circle-plus { background-position: 0 -192px; }\\n.ui-icon-circle-minus { background-position: -16px -192px; }\\n.ui-icon-circle-close { background-position: -32px -192px; }\\n.ui-icon-circle-triangle-e { background-position: -48px -192px; }\\n.ui-icon-circle-triangle-s { background-position: -64px -192px; }\\n.ui-icon-circle-triangle-w { background-position: -80px -192px; }\\n.ui-icon-circle-triangle-n { background-position: -96px -192px; }\\n.ui-icon-circle-arrow-e { background-position: -112px -192px; }\\n.ui-icon-circle-arrow-s { background-position: -128px -192px; }\\n.ui-icon-circle-arrow-w { background-position: -144px -192px; }\\n.ui-icon-circle-arrow-n { background-position: -160px -192px; }\\n.ui-icon-circle-zoomin { background-position: -176px -192px; }\\n.ui-icon-circle-zoomout { background-position: -192px -192px; }\\n.ui-icon-circle-check { background-position: -208px -192px; }\\n.ui-icon-circlesmall-plus { background-position: 0 -208px; }\\n.ui-icon-circlesmall-minus { background-position: -16px -208px; }\\n.ui-icon-circlesmall-close { background-position: -32px -208px; }\\n.ui-icon-squaresmall-plus { background-position: -48px -208px; }\\n.ui-icon-squaresmall-minus { background-position: -64px -208px; }\\n.ui-icon-squaresmall-close { background-position: -80px -208px; }\\n.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }\\n.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }\\n.ui-icon-grip-solid-vertical { background-position: -32px -224px; }\\n.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }\\n.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }\\n.ui-icon-grip-diagonal-se { background-position: -80px -224px; }\\n\\n\\n/* Misc visuals\\n----------------------------------*/\\n\\n/* Corner radius */\\n.ui-corner-all,\\n.ui-corner-top,\\n.ui-corner-left,\\n.ui-corner-tl {\\n\\tborder-top-left-radius: 3px/*{cornerRadius}*/;\\n}\\n.ui-corner-all,\\n.ui-corner-top,\\n.ui-corner-right,\\n.ui-corner-tr {\\n\\tborder-top-right-radius: 3px/*{cornerRadius}*/;\\n}\\n.ui-corner-all,\\n.ui-corner-bottom,\\n.ui-corner-left,\\n.ui-corner-bl {\\n\\tborder-bottom-left-radius: 3px/*{cornerRadius}*/;\\n}\\n.ui-corner-all,\\n.ui-corner-bottom,\\n.ui-corner-right,\\n.ui-corner-br {\\n\\tborder-bottom-right-radius: 3px/*{cornerRadius}*/;\\n}\\n\\n/* Overlays */\\n.ui-widget-overlay {\\n\\tbackground: #aaaaaa/*{bgColorOverlay}*/ /*{bgImgUrlOverlay}*/ /*{bgOverlayXPos}*/ /*{bgOverlayYPos}*/ /*{bgOverlayRepeat}*/;\\n\\topacity: .3/*{opacityOverlay}*/;\\n\\tfilter: Alpha(Opacity=30)/*{opacityFilterOverlay}*/; /* support: IE8 */\\n}\\n.ui-widget-shadow {\\n\\t-webkit-box-shadow: 0/*{offsetLeftShadow}*/ 0/*{offsetTopShadow}*/ 5px/*{thicknessShadow}*/ #666666/*{bgColorShadow}*/;\\n\\tbox-shadow: 0/*{offsetLeftShadow}*/ 0/*{offsetTopShadow}*/ 5px/*{thicknessShadow}*/ #666666/*{bgColorShadow}*/;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLocale = getLocale;\nexports.getLanguage = getLanguage;\nexports.translate = translate;\nexports.translatePlural = translatePlural;\nexports.getFirstDay = getFirstDay;\nexports.getDayNames = getDayNames;\nexports.getDayNamesShort = getDayNamesShort;\nexports.getDayNamesMin = getDayNamesMin;\nexports.getMonthNames = getMonthNames;\nexports.getMonthNamesShort = getMonthNamesShort;\n\n/// <reference types=\"@nextcloud/typings\" />\n\n/**\n * Returns the user's locale\n */\nfunction getLocale() {\n if (typeof OC === 'undefined') {\n console.warn('No OC found');\n return 'en';\n }\n\n return OC.getLocale();\n}\n/**\n * Returns the user's language\n */\n\n\nfunction getLanguage() {\n if (typeof OC === 'undefined') {\n console.warn('No OC found');\n return 'en';\n }\n\n return OC.getLanguage();\n}\n\n/**\n * Translate a string\n *\n * @param {string} app the id of the app for which to translate the string\n * @param {string} text the string to translate\n * @param {object} vars map of placeholder key to value\n * @param {number} number to replace %n with\n * @param {object} [options] options object\n * @return {string}\n */\nfunction translate(app, text, vars, count, options) {\n if (typeof OC === 'undefined') {\n console.warn('No OC found');\n return text;\n }\n\n return OC.L10N.translate(app, text, vars, count, options);\n}\n/**\n * Translate a plural string\n *\n * @param {string} app the id of the app for which to translate the string\n * @param {string} textSingular the string to translate for exactly one object\n * @param {string} textPlural the string to translate for n objects\n * @param {number} count number to determine whether to use singular or plural\n * @param {Object} vars of placeholder key to value\n * @param {object} options options object\n * @return {string}\n */\n\n\nfunction translatePlural(app, textSingular, textPlural, count, vars, options) {\n if (typeof OC === 'undefined') {\n console.warn('No OC found');\n return textSingular;\n }\n\n return OC.L10N.translatePlural(app, textSingular, textPlural, count, vars, options);\n}\n/**\n * Get the first day of the week\n *\n * @return {number}\n */\n\n\nfunction getFirstDay() {\n if (typeof window.firstDay === 'undefined') {\n console.warn('No firstDay found');\n return 1;\n }\n\n return window.firstDay;\n}\n/**\n * Get a list of day names (full names)\n *\n * @return {string[]}\n */\n\n\nfunction getDayNames() {\n if (typeof window.dayNames === 'undefined') {\n console.warn('No dayNames found');\n return ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n }\n\n return window.dayNames;\n}\n/**\n * Get a list of day names (short names)\n *\n * @return {string[]}\n */\n\n\nfunction getDayNamesShort() {\n if (typeof window.dayNamesShort === 'undefined') {\n console.warn('No dayNamesShort found');\n return ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.'];\n }\n\n return window.dayNamesShort;\n}\n/**\n * Get a list of day names (minified names)\n *\n * @return {string[]}\n */\n\n\nfunction getDayNamesMin() {\n if (typeof window.dayNamesMin === 'undefined') {\n console.warn('No dayNamesMin found');\n return ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n }\n\n return window.dayNamesMin;\n}\n/**\n * Get a list of month names (full names)\n *\n * @return {string[]}\n */\n\n\nfunction getMonthNames() {\n if (typeof window.monthNames === 'undefined') {\n console.warn('No monthNames found');\n return ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n }\n\n return window.monthNames;\n}\n/**\n * Get a list of month names (short names)\n *\n * @return {string[]}\n */\n\n\nfunction getMonthNamesShort() {\n if (typeof window.monthNamesShort === 'undefined') {\n console.warn('No monthNamesShort found');\n return ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.'];\n }\n\n return window.monthNamesShort;\n}\n//# sourceMappingURL=index.js.map","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAMAAADYSUr5AAABDlBMVEVEREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREQf23IJAAAAWnRSTlMAGf8QMwQIUL+CmS8iVXFAZmAaEzLMDSE8FkJISyAeWiMnMVMshTSHgMNqyM/GOEUcvLi+fKu1pYyqqK0fsin9AZ5RJO8KBgIDj6JilEqgr23fnEdjP29/kWiyI5UtAAAM80lEQVR4Aezb3XLzOgiFYXh8//e8T8MwQeNJ8yXd5T2zF8RiCfm3jWVZvoGUf7x+X+6AfLnEUZRkCZYf7EBQAsgoEFVNilpJ2gFafgkmP9eBoM1R2cEwg0GM6WDqh5ryXur4hxIGPZFD9vTrDbIe8e2QY4FtCsF5DU0dMAygdsCn6EM8d/AQkBzsJUsw+XeuApHIGiz3RmhZlmVZluVP3Anmd92Igbojh4IAg1/z+4CkZqSQn3wjld2AFlC3kM/9St2AHB8eg/yn9ZOnEQ9yIge/Zj8bCMS/AjD3rCzi+X1ATn4W9YMdMJDe+T4gT0sw5F4FlmVZlmVZ/gTiFcBLv++zBQTmHWdxxr3jw/AD5gOcM6DKekhN17SCvmkcjfPx53oMcjg4xslAoYp127GDWoIq3jo+0PWyY5CBuYJz+hCibAM1gBoOxg4yWzS3MCd/e8Xm9HkA5yPcKu+4xmFqQdz7RRwbuoA754CjKl7EV+eDWJZlWZZl6SQZL8EPDwCiMGhADMxqcm8A0WCOqsB5AOpnJVmlETk9QItIs4H9KPPxiRgLKDjPINQPi2TVpg4iRwOS4/hbyOQAY/2aaM5HKP485Ii5g4Dw1GB9jzgPQFefOoyInt/1nt9l9AEPBaLq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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAMAAADYSUr5AAABDlBMVEX////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uKVtWAAAAWnRSTlMAGf8QMwQIUL+CmS8iVXFAZmAaEzLMDSE8FkJISyAeWiMnMVMshTSHgMNqyM/GOEUcvLi+fKu1pYyqqK0fsin9AZ5RJO8KBgIDj6JilEqgr23fnEdjP29/kWiyI5UtAAAM80lEQVR4Aezb3XLzOgiFYXh8//e8T8MwQeNJ8yXd5T2zF8RiCfm3jWVZvoGUf7x+X+6AfLnEUZRkCZYf7EBQAsgoEFVNilpJ2gFafgkmP9eBoM1R2cEwg0GM6WDqh5ryXur4hxIGPZFD9vTrDbIe8e2QY4FtCsF5DU0dMAygdsCn6EM8d/AQkBzsJUsw+XeuApHIGiz3RmhZlmVZluVP3Anmd92Igbojh4IAg1/z+4CkZqSQn3wjld2AFlC3kM/9St2AHB8eg/yn9ZOnEQ9yIge/Zj8bCMS/AjD3rCzi+X1ATn4W9YMdMJDe+T4gT0sw5F4FlmVZlmVZ/gTiFcBLv++zBQTmHWdxxr3jw/AD5gOcM6DKekhN17SCvmkcjfPx53oMcjg4xslAoYp127GDWoIq3jo+0PWyY5CBuYJz+hCibAM1gBoOxg4yWzS3MCd/e8Xm9HkA5yPcKu+4xmFqQdz7RRwbuoA754CjKl7EV+eDWJZlWZZl6SQZL8EPDwCiMGhADMxqcm8A0WCOqsB5AOpnJVmlETk9QItIs4H9KPPxiRgLKDjPINQPi2TVpg4iRwOS4/hbyOQAY/2aaM5HKP485Ii5g4Dw1GB9jzgPQFefOoyInt/1nt9l9AEPBaLq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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAMAAADYSUr5AAABDlBMVEV3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diB3diBVLkeJAAAAWnRSTlMAGf8QMwQIUL+CmS8iVXFAZmAaEzLMDSE8FkJISyAeWiMnMVMshTSHgMNqyM/GOEUcvLi+fKu1pYyqqK0fsin9AZ5RJO8KBgIDj6JilEqgr23fnEdjP29/kWiyI5UtAAAM80lEQVR4Aezb3XLzOgiFYXh8//e8T8MwQeNJ8yXd5T2zF8RiCfm3jWVZvoGUf7x+X+6AfLnEUZRkCZYf7EBQAsgoEFVNilpJ2gFafgkmP9eBoM1R2cEwg0GM6WDqh5ryXur4hxIGPZFD9vTrDbIe8e2QY4FtCsF5DU0dMAygdsCn6EM8d/AQkBzsJUsw+XeuApHIGiz3RmhZlmVZluVP3Anmd92Igbojh4IAg1/z+4CkZqSQn3wjld2AFlC3kM/9St2AHB8eg/yn9ZOnEQ9yIge/Zj8bCMS/AjD3rCzi+X1ATn4W9YMdMJDe+T4gT0sw5F4FlmVZlmVZ/gTiFcBLv++zBQTmHWdxxr3jw/AD5gOcM6DKekhN17SCvmkcjfPx53oMcjg4xslAoYp127GDWoIq3jo+0PWyY5CBuYJz+hCibAM1gBoOxg4yWzS3MCd/e8Xm9HkA5yPcKu+4xmFqQdz7RRwbuoA754CjKl7EV+eDWJZlWZZl6SQZL8EPDwCiMGhADMxqcm8A0WCOqsB5AOpnJVmlETk9QItIs4H9KPPxiRgLKDjPINQPi2TVpg4iRwOS4/hbyOQAY/2aaM5HKP485Ii5g4Dw1GB9jzgPQFefOoyInt/1nt9l9AEPBaLq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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAMAAADYSUr5AAABDlBMVEXMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADP1XLPAAAAWnRSTlMAGf8QMwQIUL+CmS8iVXFAZmAaEzLMDSE8FkJISyAeWiMnMVMshTSHgMNqyM/GOEUcvLi+fKu1pYyqqK0fsin9AZ5RJO8KBgIDj6JilEqgr23fnEdjP29/kWiyI5UtAAAM80lEQVR4Aezb3XLzOgiFYXh8//e8T8MwQeNJ8yXd5T2zF8RiCfm3jWVZvoGUf7x+X+6AfLnEUZRkCZYf7EBQAsgoEFVNilpJ2gFafgkmP9eBoM1R2cEwg0GM6WDqh5ryXur4hxIGPZFD9vTrDbIe8e2QY4FtCsF5DU0dMAygdsCn6EM8d/AQkBzsJUsw+XeuApHIGiz3RmhZlmVZluVP3Anmd92Igbojh4IAg1/z+4CkZqSQn3wjld2AFlC3kM/9St2AHB8eg/yn9ZOnEQ9yIge/Zj8bCMS/AjD3rCzi+X1ATn4W9YMdMJDe+T4gT0sw5F4FlmVZlmVZ/gTiFcBLv++zBQTmHWdxxr3jw/AD5gOcM6DKekhN17SCvmkcjfPx53oMcjg4xslAoYp127GDWoIq3jo+0PWyY5CBuYJz+hCibAM1gBoOxg4yWzS3MCd/e8Xm9HkA5yPcKu+4xmFqQdz7RRwbuoA754CjKl7EV+eDWJZlWZZl6SQZL8EPDwCiMGhADMxqcm8A0WCOqsB5AOpnJVmlETk9QItIs4H9KPPxiRgLKDjPINQPi2TVpg4iRwOS4/hbyOQAY/2aaM5HKP485Ii5g4Dw1GB9jzgPQFefOoyInt/1nt9l9AEPBaLq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\"","export default \"data:image/png;base64,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\"","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js!./button.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"825aa046\", content, true, {});","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/*!\\n * jQuery UI Button 1.12.1\\n * http://jqueryui.com\\n *\\n * Copyright jQuery Foundation and other contributors\\n * Released under the MIT license.\\n * http://jquery.org/license\\n *\\n * http://api.jqueryui.com/button/#theming\\n */\\n.ui-button {\\n\\tpadding: .4em 1em;\\n\\tdisplay: inline-block;\\n\\tposition: relative;\\n\\tline-height: normal;\\n\\tmargin-right: .1em;\\n\\tcursor: pointer;\\n\\tvertical-align: middle;\\n\\ttext-align: center;\\n\\t-webkit-user-select: none;\\n\\t-moz-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none;\\n\\n\\t/* Support: IE <= 11 */\\n\\toverflow: visible;\\n}\\n\\n.ui-button,\\n.ui-button:link,\\n.ui-button:visited,\\n.ui-button:hover,\\n.ui-button:active {\\n\\ttext-decoration: none;\\n}\\n\\n/* to make room for the icon, a width needs to be set here */\\n.ui-button-icon-only {\\n\\twidth: 2em;\\n\\tbox-sizing: border-box;\\n\\ttext-indent: -9999px;\\n\\twhite-space: nowrap;\\n}\\n\\n/* no icon support for input elements */\\ninput.ui-button.ui-button-icon-only {\\n\\ttext-indent: 0;\\n}\\n\\n/* button icon element(s) */\\n.ui-button-icon-only .ui-icon {\\n\\tposition: absolute;\\n\\ttop: 50%;\\n\\tleft: 50%;\\n\\tmargin-top: -8px;\\n\\tmargin-left: -8px;\\n}\\n\\n.ui-button.ui-icon-notext .ui-icon {\\n\\tpadding: 0;\\n\\twidth: 2.1em;\\n\\theight: 2.1em;\\n\\ttext-indent: -9999px;\\n\\twhite-space: nowrap;\\n\\n}\\n\\ninput.ui-button.ui-icon-notext .ui-icon {\\n\\twidth: auto;\\n\\theight: auto;\\n\\ttext-indent: 0;\\n\\twhite-space: normal;\\n\\tpadding: .4em 1em;\\n}\\n\\n/* workarounds */\\n/* Support: Firefox 5 - 40 */\\ninput.ui-button::-moz-focus-inner,\\nbutton.ui-button::-moz-focus-inner {\\n\\tborder: 0;\\n\\tpadding: 0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\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","import $ from 'jquery'\nimport { translate as t } from '@nextcloud/l10n'\nimport { getToken } from './OC/requesttoken'\nimport getURLParameter from './Util/get-url-parameter'\n\nimport './jquery/showpassword'\n\nimport 'jquery-ui/ui/widgets/button'\nimport 'jquery-ui/themes/base/theme.css'\nimport 'jquery-ui/themes/base/button.css'\n\nimport 'strengthify'\nimport 'strengthify/strengthify.css'\n\n$(document).ready(function() {\n\tconst dbtypes = {\n\t\tsqlite: !!$('#hasSQLite').val(),\n\t\tmysql: !!$('#hasMySQL').val(),\n\t\tpostgresql: !!$('#hasPostgreSQL').val(),\n\t\toracle: !!$('#hasOracle').val(),\n\t}\n\n\t$('#selectDbType').buttonset()\n\t// change links inside an info box back to their default appearance\n\t$('#selectDbType p.info a').button('destroy')\n\n\tif ($('#hasSQLite').val()) {\n\t\t$('#use_other_db').hide()\n\t\t$('#use_oracle_db').hide()\n\t} else {\n\t\t$('#sqliteInformation').hide()\n\t}\n\t$('#adminlogin').change(function() {\n\t\t$('#adminlogin').val($.trim($('#adminlogin').val()))\n\t})\n\t$('#sqlite').click(function() {\n\t\t$('#use_other_db').slideUp(250)\n\t\t$('#use_oracle_db').slideUp(250)\n\t\t$('#sqliteInformation').show()\n\t\t$('#dbname').attr('pattern', '[0-9a-zA-Z$_-]+')\n\t})\n\n\t$('#mysql,#pgsql').click(function() {\n\t\t$('#use_other_db').slideDown(250)\n\t\t$('#use_oracle_db').slideUp(250)\n\t\t$('#sqliteInformation').hide()\n\t\t$('#dbname').attr('pattern', '[0-9a-zA-Z$_-]+')\n\t})\n\n\t$('#oci').click(function() {\n\t\t$('#use_other_db').slideDown(250)\n\t\t$('#use_oracle_db').show(250)\n\t\t$('#sqliteInformation').hide()\n\t\t$('#dbname').attr('pattern', '[0-9a-zA-Z$_-.]+')\n\t})\n\n\t$('#showAdvanced').click(function(e) {\n\t\te.preventDefault()\n\t\t$('#datadirContent').slideToggle(250)\n\t\t$('#databaseBackend').slideToggle(250)\n\t\t$('#databaseField').slideToggle(250)\n\t})\n\t$('form').submit(function() {\n\t\t// Save form parameters\n\t\tconst post = $(this).serializeArray()\n\n\t\t// Show spinner while finishing setup\n\t\t$('.float-spinner').show(250)\n\n\t\t// Disable inputs\n\t\t$(':submit', this).attr('disabled', 'disabled').val($(':submit', this).data('finishing'))\n\t\t$('input', this).addClass('ui-state-disabled').attr('disabled', 'disabled')\n\t\t// only disable buttons if they are present\n\t\tif ($('#selectDbType').find('.ui-button').length > 0) {\n\t\t\t$('#selectDbType').buttonset('disable')\n\t\t}\n\t\t$('.strengthify-wrapper, .tipsy')\n\t\t\t.css('-ms-filter', '\"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)\"')\n\t\t\t.css('filter', 'alpha(opacity=30)')\n\t\t\t.css('opacity', 0.3)\n\n\t\t// Create the form\n\t\tconst form = $('<form>')\n\t\tform.attr('action', $(this).attr('action'))\n\t\tform.attr('method', 'POST')\n\n\t\tfor (let i = 0; i < post.length; i++) {\n\t\t\tconst input = $('<input type=\"hidden\">')\n\t\t\tinput.attr(post[i])\n\t\t\tform.append(input)\n\t\t}\n\n\t\t// Add redirect_url\n\t\tconst redirectURL = getURLParameter('redirect_url')\n\t\tif (redirectURL) {\n\t\t\tconst redirectURLInput = $('<input type=\"hidden\">')\n\t\t\tredirectURLInput.attr({\n\t\t\t\tname: 'redirect_url',\n\t\t\t\tvalue: redirectURL,\n\t\t\t})\n\t\t\tform.append(redirectURLInput)\n\t\t}\n\n\t\t// Submit the form\n\t\tform.appendTo(document.body)\n\t\tform.submit()\n\t\treturn false\n\t})\n\n\t// Expand latest db settings if page was reloaded on error\n\tconst currentDbType = $('input[type=\"radio\"]:checked').val()\n\n\tif (currentDbType === undefined) {\n\t\t$('input[type=\"radio\"]').first().click()\n\t}\n\n\tif (\n\t\tcurrentDbType === 'sqlite'\n\t\t|| (dbtypes.sqlite && currentDbType === undefined)\n\t) {\n\t\t$('#datadirContent').hide(250)\n\t\t$('#databaseBackend').hide(250)\n\t\t$('#databaseField').hide(250)\n\t\t$('.float-spinner').hide(250)\n\t}\n\n\t$('#adminpass').strengthify({\n\t\tzxcvbn: OC.linkTo('core', 'vendor/zxcvbn/dist/zxcvbn.js'),\n\t\ttitles: [\n\t\t\tt('core', 'Very weak password'),\n\t\t\tt('core', 'Weak password'),\n\t\t\tt('core', 'So-so password'),\n\t\t\tt('core', 'Good password'),\n\t\t\tt('core', 'Strong password'),\n\t\t],\n\t\tdrawTitles: true,\n\t\tnonce: btoa(getToken()),\n\t})\n\n\t$('#dbpass').showPassword().keyup()\n\t$('#adminpass').showPassword().keyup()\n})\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n/**\n * Get the value of a URL parameter\n * @link http://stackoverflow.com/questions/1403888/get-url-parameter-with-jquery\n * @param {string} name URL parameter\n * @returns {string}\n */\nexport default function getURLParameter(name) {\n\treturn decodeURIComponent(\n\t\t// eslint-disable-next-line no-sparse-arrays\n\t\t(new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search) || [, ''])[1].replace(/\\+/g, '%20')\n\t) || ''\n}\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\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 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","'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 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 global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\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 global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\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","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\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)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\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 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","'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","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","// 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","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 global = require('../internals/global');\n\nmodule.exports = global;\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","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\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: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\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","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\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","'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 getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n // eslint-disable-next-line max-len\n if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n })))) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\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","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 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","exports.f = Object.getOwnPropertySymbols;\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 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","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\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","'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","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","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\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 createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\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 createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\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')) createNonEnumerableProperty(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 createNonEnumerableProperty(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 || inspectSource(this);\n});\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\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 NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.github.io/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\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","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\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 createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\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 createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\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 createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ProxyBus = void 0;\n\nvar _semver = _interopRequireDefault(require(\"semver\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar packageJson = {\n name: \"@nextcloud/event-bus\",\n version: \"1.1.4\",\n description: \"\",\n main: \"dist/index.js\",\n types: \"dist/index.d.ts\",\n scripts: {\n build: \"babel ./lib --out-dir dist --extensions '.ts,.tsx' --source-maps && tsc --emitDeclarationOnly\",\n \"build:doc\": \"typedoc --excludeNotExported --mode file --out dist/doc lib/index.ts && touch dist/doc/.nojekyll\",\n \"check-types\": \"tsc\",\n dev: \"babel ./lib --out-dir dist --extensions '.ts,.tsx' --watch\",\n test: \"jest\",\n \"test:watch\": \"jest --watchAll\"\n },\n keywords: [\"nextcloud\"],\n homepage: \"https://github.com/nextcloud/nextcloud-event-bus#readme\",\n author: \"Christoph Wurst\",\n license: \"GPL-3.0-or-later\",\n repository: {\n type: \"git\",\n url: \"https://github.com/nextcloud/nextcloud-event-bus\"\n },\n dependencies: {\n \"@types/semver\": \"^6.2.1\",\n \"core-js\": \"^3.6.2\",\n semver: \"^6.3.0\"\n },\n devDependencies: {\n \"@babel/cli\": \"^7.6.0\",\n \"@babel/core\": \"^7.6.0\",\n \"@babel/plugin-proposal-class-properties\": \"^7.5.5\",\n \"@babel/preset-env\": \"^7.6.0\",\n \"@babel/preset-typescript\": \"^7.6.0\",\n \"@nextcloud/browserslist-config\": \"^1.0.0\",\n \"babel-jest\": \"^25.1.0\",\n \"babel-plugin-inline-json-import\": \"^0.3.2\",\n jest: \"^25.1.0\",\n typedoc: \"^0.17.2\",\n typescript: \"^3.6.3\"\n },\n browserslist: [\"extends @nextcloud/browserslist-config\"]\n};\n\nvar ProxyBus = /*#__PURE__*/function () {\n function ProxyBus(bus) {\n _classCallCheck(this, ProxyBus);\n\n _defineProperty(this, \"bus\", void 0);\n\n if (typeof bus.getVersion !== 'function' || !_semver.default.valid(bus.getVersion())) {\n console.warn('Proxying an event bus with an unknown or invalid version');\n } else if (_semver.default.major(bus.getVersion()) !== _semver.default.major(this.getVersion())) {\n console.warn('Proxying an event bus of version ' + bus.getVersion() + ' with ' + this.getVersion());\n }\n\n this.bus = bus;\n }\n\n _createClass(ProxyBus, [{\n key: \"getVersion\",\n value: function getVersion() {\n return packageJson.version;\n }\n }, {\n key: \"subscribe\",\n value: function subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n }, {\n key: \"unsubscribe\",\n value: function unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n }, {\n key: \"emit\",\n value: function emit(name, event) {\n this.bus.emit(name, event);\n }\n }]);\n\n return ProxyBus;\n}();\n\nexports.ProxyBus = ProxyBus;\n//# sourceMappingURL=ProxyBus.js.map","exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '[0-9]+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = '[0-9A-Za-z-]+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range.split(/\\s*\\|\\|\\s*/).map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + range)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n range = range.trim()\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, re[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","\"use strict\";\n\nrequire(\"core-js/modules/es.array.concat\");\n\nrequire(\"core-js/modules/es.array.filter\");\n\nrequire(\"core-js/modules/es.array.for-each\");\n\nrequire(\"core-js/modules/es.array.iterator\");\n\nrequire(\"core-js/modules/es.map\");\n\nrequire(\"core-js/modules/es.object.to-string\");\n\nrequire(\"core-js/modules/es.string.iterator\");\n\nrequire(\"core-js/modules/web.dom-collections.for-each\");\n\nrequire(\"core-js/modules/web.dom-collections.iterator\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SimpleBus = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar packageJson = {\n name: \"@nextcloud/event-bus\",\n version: \"1.1.4\",\n description: \"\",\n main: \"dist/index.js\",\n types: \"dist/index.d.ts\",\n scripts: {\n build: \"babel ./lib --out-dir dist --extensions '.ts,.tsx' --source-maps && tsc --emitDeclarationOnly\",\n \"build:doc\": \"typedoc --excludeNotExported --mode file --out dist/doc lib/index.ts && touch dist/doc/.nojekyll\",\n \"check-types\": \"tsc\",\n dev: \"babel ./lib --out-dir dist --extensions '.ts,.tsx' --watch\",\n test: \"jest\",\n \"test:watch\": \"jest --watchAll\"\n },\n keywords: [\"nextcloud\"],\n homepage: \"https://github.com/nextcloud/nextcloud-event-bus#readme\",\n author: \"Christoph Wurst\",\n license: \"GPL-3.0-or-later\",\n repository: {\n type: \"git\",\n url: \"https://github.com/nextcloud/nextcloud-event-bus\"\n },\n dependencies: {\n \"@types/semver\": \"^6.2.1\",\n \"core-js\": \"^3.6.2\",\n semver: \"^6.3.0\"\n },\n devDependencies: {\n \"@babel/cli\": \"^7.6.0\",\n \"@babel/core\": \"^7.6.0\",\n \"@babel/plugin-proposal-class-properties\": \"^7.5.5\",\n \"@babel/preset-env\": \"^7.6.0\",\n \"@babel/preset-typescript\": \"^7.6.0\",\n \"@nextcloud/browserslist-config\": \"^1.0.0\",\n \"babel-jest\": \"^25.1.0\",\n \"babel-plugin-inline-json-import\": \"^0.3.2\",\n jest: \"^25.1.0\",\n typedoc: \"^0.17.2\",\n typescript: \"^3.6.3\"\n },\n browserslist: [\"extends @nextcloud/browserslist-config\"]\n};\n\nvar SimpleBus = /*#__PURE__*/function () {\n function SimpleBus() {\n _classCallCheck(this, SimpleBus);\n\n _defineProperty(this, \"handlers\", new Map());\n }\n\n _createClass(SimpleBus, [{\n key: \"getVersion\",\n value: function getVersion() {\n return packageJson.version;\n }\n }, {\n key: \"subscribe\",\n value: function subscribe(name, handler) {\n this.handlers.set(name, (this.handlers.get(name) || []).concat(handler));\n }\n }, {\n key: \"unsubscribe\",\n value: function unsubscribe(name, handler) {\n this.handlers.set(name, (this.handlers.get(name) || []).filter(function (h) {\n return h != handler;\n }));\n }\n }, {\n key: \"emit\",\n value: function emit(name, event) {\n (this.handlers.get(name) || []).forEach(function (h) {\n try {\n h(event);\n } catch (e) {\n console.error('could not invoke event listener', e);\n }\n });\n }\n }]);\n\n return SimpleBus;\n}();\n\nexports.SimpleBus = SimpleBus;\n//# sourceMappingURL=SimpleBus.js.map","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\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 createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\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 createNonEnumerableProperty(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","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\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 bind = require('../internals/function-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","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","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","module.exports = {};\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","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 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","module.exports = false;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\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 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","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {};\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n\n\n url = url && url.__esModule ? url.default : url;\n\n if (typeof url !== 'string') {\n return url;\n } // If url is already wrapped in quotes, remove them\n\n\n if (/^['\"].*['\"]$/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.slice(1, -1);\n }\n\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n\n\n if (/[\"'() \\t\\n]/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n'), \"\\\"\");\n }\n\n return url;\n};","( function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} ( function( $ ) {\n\n$.ui = $.ui || {};\n\nreturn $.ui.version = \"1.12.1\";\n\n} ) );\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.subscribe = subscribe;\nexports.unsubscribe = unsubscribe;\nexports.emit = emit;\n\nvar _ProxyBus = require(\"./ProxyBus\");\n\nvar _SimpleBus = require(\"./SimpleBus\");\n\nfunction getBus() {\n if (typeof window.OC !== 'undefined' && window.OC._eventBus && typeof window._nc_event_bus === 'undefined') {\n console.warn('found old event bus instance at OC._eventBus. Update your version!');\n window._nc_event_bus = window.OC._eventBus;\n } // Either use an existing event bus instance or create one\n\n\n if (typeof window._nc_event_bus !== 'undefined') {\n return new _ProxyBus.ProxyBus(window._nc_event_bus);\n } else {\n return window._nc_event_bus = new _SimpleBus.SimpleBus();\n }\n}\n\nvar bus = getBus();\n/**\n * Register an event listener\n *\n * @param name name of the event\n * @param handler callback invoked for every matching event emitted on the bus\n */\n\nfunction subscribe(name, handler) {\n bus.subscribe(name, handler);\n}\n/**\n * Unregister a previously registered event listener\n *\n * Note: doesn't work with anonymous functions (closures). Use method of an object or store listener function in variable.\n *\n * @param name name of the event\n * @param handler callback passed to `subscribed`\n */\n\n\nfunction unsubscribe(name, handler) {\n bus.unsubscribe(name, handler);\n}\n/**\n * Emit an event\n *\n * @param name name of the event\n * @param event event payload\n */\n\n\nfunction emit(name, event) {\n bus.emit(name, event);\n}\n//# sourceMappingURL=index.js.map","module.exports = {};\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');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\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 EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var 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 == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\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","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { emit } from '@nextcloud/event-bus'\n\n/**\n * @private\n * @param {Document} global the document to read the initial value from\n * @param {Function} emit the function to invoke for every new token\n * @returns {Object}\n */\nexport const manageToken = (global, emit) => {\n\tlet token = global.getElementsByTagName('head')[0].getAttribute('data-requesttoken')\n\n\treturn {\n\t\tgetToken: () => token,\n\t\tsetToken: newToken => {\n\t\t\ttoken = newToken\n\n\t\t\temit('csrf-token-update', {\n\t\t\t\ttoken,\n\t\t\t})\n\t\t},\n\t}\n}\n\nconst manageFromDocument = manageToken(document, emit)\n\n/**\n * @returns {string}\n */\nexport const getToken = manageFromDocument.getToken\n\n/**\n * @param {String} newToken new token\n */\nexport const setToken = manageFromDocument.setToken\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 global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\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","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","'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","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","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 = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","/**\n * Strengthify - show the weakness of a password (uses zxcvbn for this)\n * https://github.com/MorrisJobke/strengthify\n *\n * Version: 0.5.9\n * Author: Morris Jobke (github.com/MorrisJobke) - original\n * Eve Ragins @ Eve Corp (github.com/eve-corp)\n *\n *\n * License:\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2013-2020 Morris Jobke <morris.jobke@gmail.com>\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n/* global jQuery */\n(function($) {\n $.fn.strengthify = function(paramOptions) {\n \"use strict\";\n\n var defaults = {\n zxcvbn: 'zxcvbn/zxcvbn.js',\n userInputs: [],\n titles: [\n 'Weakest',\n 'Weak',\n 'So-so',\n 'Good',\n 'Perfect'\n ],\n tilesOptions:{\n tooltip: true,\n element: false\n },\n drawTitles: false,\n drawMessage: false,\n drawBars: true,\n $addAfter: null,\n nonce: null\n };\n\n return this.each(function() {\n var options = $.extend(defaults, paramOptions);\n\n if (!options.drawTitles\n && !options.drawMessage\n && !options.drawBars)\n console.warn(\"expect at least one of 'drawTitles', 'drawMessage', or 'drawBars' to be true\");\n\n function getWrapperFor(id) {\n return $('div[data-strengthifyFor=\"' + id + '\"]');\n };\n\n function drawStrengthify() {\n var password = $(this).val().substring(0, 100),\n elemId = $(this).attr('id'),\n // hide strengthify if no input is provided\n opacity = (password === '') ? 0 : 1,\n // calculate result\n result = zxcvbn(password, options.userInputs),\n // setup some vars for later\n css = '',\n bsLevel = '',\n message = '',\n // cache jQuery selections\n $wrapper = getWrapperFor(elemId),\n $container = $wrapper.find('.strengthify-container'),\n $message = $wrapper.find('[data-strengthifyMessage]');\n\n\n $wrapper.children()\n .css('opacity', opacity)\n .css('-ms-filter',\n '\"progid:DXImageTransform.Microsoft.Alpha(Opacity=' + opacity * 100 + ')\"'\n );\n\n if (options.onResult) {\n options.onResult(result);\n }\n\n // style strengthify bar\n // possible scores: 0-4\n switch (result.score) {\n case 0:\n case 1:\n css = 'password-bad';\n bsLevel = 'danger';\n message = result.feedback ? result.feedback.suggestions.join('<br/>') : \"\";\n break;\n case 2:\n bsLevel = 'warning';\n message = result.feedback ? result.feedback.suggestions.join('<br/>') : \"\";\n css = 'password-medium';\n break;\n case 3:\n css = 'password-good';\n bsLevel = 'info';\n message = \"Getting better.\";\n break;\n case 4:\n css = 'password-good';\n bsLevel = 'success';\n message = \"Looks good.\";\n break;\n }\n\n if ($message) {\n $message.removeAttr('class');\n $message.addClass('bg-' + bsLevel);\n\n // reset state for empty string password\n if (password === '') {\n message = '';\n }\n $message.html(message);\n }\n if ($container) {\n $container\n .attr('class', css + ' strengthify-container')\n // possible scores: 0-4\n .css(\n 'width',\n // if score is '0' it will be changed to '1' to\n // not hide strengthify if the password is extremely weak\n ((result.score === 0 ? 1 : result.score) * 25) + '%'\n );\n\n // reset state for empty string password\n if (password === '') {\n $container.css('width', 0);\n }\n }\n\n if (options.drawTitles) {\n // set a title for the wrapper\n if(options.tilesOptions.tooltip){\n $wrapper.attr(\n 'title',\n options.titles[result.score]\n ).tooltip({\n placement: 'bottom',\n trigger: 'manual',\n }).tooltip(\n 'fixTitle'\n ).tooltip(\n 'show'\n );\n\n if (opacity === 0) {\n $wrapper.tooltip(\n 'hide'\n );\n }\n }\n\n if(options.tilesOptions.element){\n $wrapper.find(\".strengthify-tiles\").text(options.titles[result.score]);\n }\n }\n };\n\n function init() {\n var $elem = $(this),\n elemId = $elem.attr('id');\n var drawSelf = drawStrengthify.bind(this);\n\n var $addAfter = options.$addAfter;\n if (!$addAfter) {\n $addAfter = $elem;\n }\n\n // add elements\n $addAfter.after('<div class=\"strengthify-wrapper\" data-strengthifyFor=\"' + $elem.attr('id') + '\"></div>');\n\n if (options.drawBars) {\n getWrapperFor(elemId)\n .append('<div class=\"strengthify-bg\" />')\n .append('<div class=\"strengthify-container\" />')\n .append('<div class=\"strengthify-separator\" style=\"left: 25%\" />')\n .append('<div class=\"strengthify-separator\" style=\"left: 50%\" />')\n .append('<div class=\"strengthify-separator\" style=\"left: 75%\" />');\n }\n\n if (options.drawMessage) {\n getWrapperFor(elemId).append('<div data-strengthifyMessage></div>');\n }\n\n if (options.drawTitles && options.tilesOptions) {\n getWrapperFor(elemId).append('<div class=\"strengthify-tiles\"></div>');\n }\n\n var script = document.createElement(\"script\");\n script.src = options.zxcvbn;\n if (options.nonce !== null) {\n script.setAttribute('nonce', options.nonce);\n }\n\n script.onload = function() {\n \t$elem.parent().on('scroll', drawSelf);\n $elem.bind('keyup input change', drawSelf);\n }\n\n document.head.appendChild(script);\n };\n\n init.call(this);\n\n //return me;\n });\n };\n\n} (jQuery));\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../css-loader/dist/cjs.js!./strengthify.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2f61b848\", content, true, {});","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/**\\n * Strengthify - show the weakness of a password (uses zxcvbn for this)\\n * https://github.com/MorrisJobke/strengthify\\n * Version: 0.5.9\\n * License: The MIT License (MIT)\\n * Copyright (c) 2013-2020 Morris Jobke <morris.jobke@gmail.com>\\n */\\n\\n.strengthify-wrapper {\\n position: relative;\\n}\\n\\n.strengthify-wrapper > * {\\n\\t-ms-filter:\\\"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)\\\";\\n\\tfilter: alpha(opacity=0);\\n\\topacity: 0;\\n\\t-webkit-transition:all .5s ease-in-out;\\n\\t-moz-transition:all .5s ease-in-out;\\n\\ttransition:all .5s ease-in-out;\\n}\\n\\n.strengthify-bg, .strengthify-container, .strengthify-separator {\\n\\theight: 3px;\\n}\\n\\n.strengthify-bg, .strengthify-container {\\n\\tdisplay: block;\\n\\tposition: absolute;\\n\\twidth: 100%;\\n}\\n\\n.strengthify-bg {\\n\\tbackground-color: #BBB;\\n}\\n\\n.strengthify-separator {\\n\\tdisplay: inline-block;\\n\\tposition: absolute;\\n\\tbackground-color: #FFF;\\n\\twidth: 1px;\\n\\tz-index: 10;\\n}\\n\\n.password-bad {\\n\\tbackground-color: #C33;\\n}\\n.password-medium {\\n\\tbackground-color: #F80;\\n}\\n.password-good {\\n\\tbackground-color: #3C3;\\n}\\n\\ndiv[data-strengthifyMessage] {\\n padding: 3px 8px;\\n}\\n\\n.strengthify-tiles{\\n\\tfloat: right;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","/*\n * @copyright 2018 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2018 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport $ from 'jquery'\n\n/*\n*\t@name\t\t\t\t\t\t\tShow Password\n*\t@description\n*\t@version\t\t\t\t\t\t1.3\n*\t@requires\t\t\t\t\t\tJquery 1.5\n*\n*\t@author\t\t\t\t\t\t\tJan Jarfalk\n*\t@author-email\t\t\t\t\tjan.jarfalk@unwrongest.com\n*\t@author-website\t\t\t\t\thttp://www.unwrongest.com\n*\n*\t@special-thanks\t\t\t\t\tMichel Gratton\n*\n*\t@licens\t\t\t\t\t\t\tMIT License - http://www.opensource.org/licenses/mit-license.php\n*/\n$.fn.extend({\n\tshowPassword: function(c) {\n\n\t\t// Setup callback object\n\t\tconst callback = { 'fn': null, 'args': {} }\n\t\tcallback.fn = c\n\n\t\t// Clones passwords and turn the clones into text inputs\n\t\tconst cloneElement = function(element) {\n\n\t\t\tconst $element = $(element)\n\n\t\t\tconst $clone = $('<input />')\n\n\t\t\t// Name added for JQuery Validation compatibility\n\t\t\t// Element name is required to avoid script warning.\n\t\t\t$clone.attr({\n\t\t\t\t'type': 'text',\n\t\t\t\t'class': $element.attr('class'),\n\t\t\t\t'style': $element.attr('style'),\n\t\t\t\t'size': $element.attr('size'),\n\t\t\t\t'name': $element.attr('name') + '-clone',\n\t\t\t\t'tabindex': $element.attr('tabindex'),\n\t\t\t\t'autocomplete': 'off',\n\t\t\t})\n\n\t\t\tif ($element.attr('placeholder') !== undefined) {\n\t\t\t\t$clone.attr('placeholder', $element.attr('placeholder'))\n\t\t\t}\n\n\t\t\treturn $clone\n\n\t\t}\n\n\t\t// Transfers values between two elements\n\t\tconst update = function(a, b) {\n\t\t\tb.val(a.val())\n\t\t}\n\n\t\t// Shows a or b depending on checkbox\n\t\tconst setState = function(checkbox, a, b) {\n\n\t\t\tif (checkbox.is(':checked')) {\n\t\t\t\tupdate(a, b)\n\t\t\t\tb.show()\n\t\t\t\ta.hide()\n\t\t\t} else {\n\t\t\t\tupdate(b, a)\n\t\t\t\tb.hide()\n\t\t\t\ta.show()\n\t\t\t}\n\n\t\t}\n\n\t\treturn this.each(function() {\n\n\t\t\tconst $input = $(this)\n\t\t\tconst $checkbox = $($input.data('typetoggle'))\n\n\t\t\t// Create clone\n\t\t\tconst $clone = cloneElement($input)\n\t\t\t$clone.insertAfter($input)\n\n\t\t\t// Set callback arguments\n\t\t\tif (callback.fn) {\n\t\t\t\tcallback.args.input = $input\n\t\t\t\tcallback.args.checkbox = $checkbox\n\t\t\t\tcallback.args.clone = $clone\n\t\t\t}\n\n\t\t\t$checkbox.bind('click', function() {\n\t\t\t\tsetState($checkbox, $input, $clone)\n\t\t\t})\n\n\t\t\t$input.bind('keyup', function() {\n\t\t\t\tupdate($input, $clone)\n\t\t\t})\n\n\t\t\t$clone.bind('keyup', function() {\n\t\t\t\tupdate($clone, $input)\n\n\t\t\t\t// Added for JQuery Validation compatibility\n\t\t\t\t// This will trigger validation if it's ON for keyup event\n\t\t\t\t$input.trigger('keyup')\n\n\t\t\t})\n\n\t\t\t// Added for JQuery Validation compatibility\n\t\t\t// This will trigger validation if it's ON for blur event\n\t\t\t$clone.bind('blur', function() {\n\t\t\t\t$input.trigger('focusout')\n\t\t\t})\n\n\t\t\tsetState($checkbox, $input, $clone)\n\n\t\t\t// set type of password field clone (type=text) to password right on submit\n\t\t\t// to prevent browser save the value of this field\n\t\t\t$clone.closest('form').submit(function(e) {\n\t\t\t\t// .prop has to be used, because .attr throws\n\t\t\t\t// an error while changing a type of an input\n\t\t\t\t// element\n\t\t\t\t$clone.prop('type', 'password')\n\t\t\t})\n\n\t\t\tif (callback.fn) {\n\t\t\t\tcallback.fn(callback.args)\n\t\t\t}\n\n\t\t})\n\t},\n})\n","/*!\n * jQuery UI Widget 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Widget\n//>>group: Core\n//>>description: Provides a factory for creating stateful widgets with a common API.\n//>>docs: http://api.jqueryui.com/jQuery.widget/\n//>>demos: http://jqueryui.com/widget/\n\n( function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\", \"./version\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}( function( $ ) {\n\nvar widgetUuid = 0;\nvar widgetSlice = Array.prototype.slice;\n\n$.cleanData = ( function( orig ) {\n\treturn function( elems ) {\n\t\tvar events, elem, i;\n\t\tfor ( i = 0; ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\ttry {\n\n\t\t\t\t// Only trigger remove when necessary to save time\n\t\t\t\tevents = $._data( elem, \"events\" );\n\t\t\t\tif ( events && events.remove ) {\n\t\t\t\t\t$( elem ).triggerHandler( \"remove\" );\n\t\t\t\t}\n\n\t\t\t// Http://bugs.jquery.com/ticket/8235\n\t\t\t} catch ( e ) {}\n\t\t}\n\t\torig( elems );\n\t};\n} )( $.cleanData );\n\n$.widget = function( name, base, prototype ) {\n\tvar existingConstructor, constructor, basePrototype;\n\n\t// ProxiedPrototype allows the provided prototype to remain unmodified\n\t// so that it can be used as a mixin for multiple widgets (#8876)\n\tvar proxiedPrototype = {};\n\n\tvar namespace = name.split( \".\" )[ 0 ];\n\tname = name.split( \".\" )[ 1 ];\n\tvar fullName = namespace + \"-\" + name;\n\n\tif ( !prototype ) {\n\t\tprototype = base;\n\t\tbase = $.Widget;\n\t}\n\n\tif ( $.isArray( prototype ) ) {\n\t\tprototype = $.extend.apply( null, [ {} ].concat( prototype ) );\n\t}\n\n\t// Create selector for plugin\n\t$.expr[ \":\" ][ fullName.toLowerCase() ] = function( elem ) {\n\t\treturn !!$.data( elem, fullName );\n\t};\n\n\t$[ namespace ] = $[ namespace ] || {};\n\texistingConstructor = $[ namespace ][ name ];\n\tconstructor = $[ namespace ][ name ] = function( options, element ) {\n\n\t\t// Allow instantiation without \"new\" keyword\n\t\tif ( !this._createWidget ) {\n\t\t\treturn new constructor( options, element );\n\t\t}\n\n\t\t// Allow instantiation without initializing for simple inheritance\n\t\t// must use \"new\" keyword (the code above always passes args)\n\t\tif ( arguments.length ) {\n\t\t\tthis._createWidget( options, element );\n\t\t}\n\t};\n\n\t// Extend with the existing constructor to carry over any static properties\n\t$.extend( constructor, existingConstructor, {\n\t\tversion: prototype.version,\n\n\t\t// Copy the object used to create the prototype in case we need to\n\t\t// redefine the widget later\n\t\t_proto: $.extend( {}, prototype ),\n\n\t\t// Track widgets that inherit from this widget in case this widget is\n\t\t// redefined after a widget inherits from it\n\t\t_childConstructors: []\n\t} );\n\n\tbasePrototype = new base();\n\n\t// We need to make the options hash a property directly on the new instance\n\t// otherwise we'll modify the options hash on the prototype that we're\n\t// inheriting from\n\tbasePrototype.options = $.widget.extend( {}, basePrototype.options );\n\t$.each( prototype, function( prop, value ) {\n\t\tif ( !$.isFunction( value ) ) {\n\t\t\tproxiedPrototype[ prop ] = value;\n\t\t\treturn;\n\t\t}\n\t\tproxiedPrototype[ prop ] = ( function() {\n\t\t\tfunction _super() {\n\t\t\t\treturn base.prototype[ prop ].apply( this, arguments );\n\t\t\t}\n\n\t\t\tfunction _superApply( args ) {\n\t\t\t\treturn base.prototype[ prop ].apply( this, args );\n\t\t\t}\n\n\t\t\treturn function() {\n\t\t\t\tvar __super = this._super;\n\t\t\t\tvar __superApply = this._superApply;\n\t\t\t\tvar returnValue;\n\n\t\t\t\tthis._super = _super;\n\t\t\t\tthis._superApply = _superApply;\n\n\t\t\t\treturnValue = value.apply( this, arguments );\n\n\t\t\t\tthis._super = __super;\n\t\t\t\tthis._superApply = __superApply;\n\n\t\t\t\treturn returnValue;\n\t\t\t};\n\t\t} )();\n\t} );\n\tconstructor.prototype = $.widget.extend( basePrototype, {\n\n\t\t// TODO: remove support for widgetEventPrefix\n\t\t// always use the name + a colon as the prefix, e.g., draggable:start\n\t\t// don't prefix for widgets that aren't DOM-based\n\t\twidgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name\n\t}, proxiedPrototype, {\n\t\tconstructor: constructor,\n\t\tnamespace: namespace,\n\t\twidgetName: name,\n\t\twidgetFullName: fullName\n\t} );\n\n\t// If this widget is being redefined then we need to find all widgets that\n\t// are inheriting from it and redefine all of them so that they inherit from\n\t// the new version of this widget. We're essentially trying to replace one\n\t// level in the prototype chain.\n\tif ( existingConstructor ) {\n\t\t$.each( existingConstructor._childConstructors, function( i, child ) {\n\t\t\tvar childPrototype = child.prototype;\n\n\t\t\t// Redefine the child widget using the same prototype that was\n\t\t\t// originally used, but inherit from the new version of the base\n\t\t\t$.widget( childPrototype.namespace + \".\" + childPrototype.widgetName, constructor,\n\t\t\t\tchild._proto );\n\t\t} );\n\n\t\t// Remove the list of existing child constructors from the old constructor\n\t\t// so the old child constructors can be garbage collected\n\t\tdelete existingConstructor._childConstructors;\n\t} else {\n\t\tbase._childConstructors.push( constructor );\n\t}\n\n\t$.widget.bridge( name, constructor );\n\n\treturn constructor;\n};\n\n$.widget.extend = function( target ) {\n\tvar input = widgetSlice.call( arguments, 1 );\n\tvar inputIndex = 0;\n\tvar inputLength = input.length;\n\tvar key;\n\tvar value;\n\n\tfor ( ; inputIndex < inputLength; inputIndex++ ) {\n\t\tfor ( key in input[ inputIndex ] ) {\n\t\t\tvalue = input[ inputIndex ][ key ];\n\t\t\tif ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {\n\n\t\t\t\t// Clone objects\n\t\t\t\tif ( $.isPlainObject( value ) ) {\n\t\t\t\t\ttarget[ key ] = $.isPlainObject( target[ key ] ) ?\n\t\t\t\t\t\t$.widget.extend( {}, target[ key ], value ) :\n\n\t\t\t\t\t\t// Don't extend strings, arrays, etc. with objects\n\t\t\t\t\t\t$.widget.extend( {}, value );\n\n\t\t\t\t// Copy everything else by reference\n\t\t\t\t} else {\n\t\t\t\t\ttarget[ key ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn target;\n};\n\n$.widget.bridge = function( name, object ) {\n\tvar fullName = object.prototype.widgetFullName || name;\n\t$.fn[ name ] = function( options ) {\n\t\tvar isMethodCall = typeof options === \"string\";\n\t\tvar args = widgetSlice.call( arguments, 1 );\n\t\tvar returnValue = this;\n\n\t\tif ( isMethodCall ) {\n\n\t\t\t// If this is an empty collection, we need to have the instance method\n\t\t\t// return undefined instead of the jQuery instance\n\t\t\tif ( !this.length && options === \"instance\" ) {\n\t\t\t\treturnValue = undefined;\n\t\t\t} else {\n\t\t\t\tthis.each( function() {\n\t\t\t\t\tvar methodValue;\n\t\t\t\t\tvar instance = $.data( this, fullName );\n\n\t\t\t\t\tif ( options === \"instance\" ) {\n\t\t\t\t\t\treturnValue = instance;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !instance ) {\n\t\t\t\t\t\treturn $.error( \"cannot call methods on \" + name +\n\t\t\t\t\t\t\t\" prior to initialization; \" +\n\t\t\t\t\t\t\t\"attempted to call method '\" + options + \"'\" );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !$.isFunction( instance[ options ] ) || options.charAt( 0 ) === \"_\" ) {\n\t\t\t\t\t\treturn $.error( \"no such method '\" + options + \"' for \" + name +\n\t\t\t\t\t\t\t\" widget instance\" );\n\t\t\t\t\t}\n\n\t\t\t\t\tmethodValue = instance[ options ].apply( instance, args );\n\n\t\t\t\t\tif ( methodValue !== instance && methodValue !== undefined ) {\n\t\t\t\t\t\treturnValue = methodValue && methodValue.jquery ?\n\t\t\t\t\t\t\treturnValue.pushStack( methodValue.get() ) :\n\t\t\t\t\t\t\tmethodValue;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// Allow multiple hashes to be passed on init\n\t\t\tif ( args.length ) {\n\t\t\t\toptions = $.widget.extend.apply( null, [ options ].concat( args ) );\n\t\t\t}\n\n\t\t\tthis.each( function() {\n\t\t\t\tvar instance = $.data( this, fullName );\n\t\t\t\tif ( instance ) {\n\t\t\t\t\tinstance.option( options || {} );\n\t\t\t\t\tif ( instance._init ) {\n\t\t\t\t\t\tinstance._init();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$.data( this, fullName, new object( options, this ) );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn returnValue;\n\t};\n};\n\n$.Widget = function( /* options, element */ ) {};\n$.Widget._childConstructors = [];\n\n$.Widget.prototype = {\n\twidgetName: \"widget\",\n\twidgetEventPrefix: \"\",\n\tdefaultElement: \"<div>\",\n\n\toptions: {\n\t\tclasses: {},\n\t\tdisabled: false,\n\n\t\t// Callbacks\n\t\tcreate: null\n\t},\n\n\t_createWidget: function( options, element ) {\n\t\telement = $( element || this.defaultElement || this )[ 0 ];\n\t\tthis.element = $( element );\n\t\tthis.uuid = widgetUuid++;\n\t\tthis.eventNamespace = \".\" + this.widgetName + this.uuid;\n\n\t\tthis.bindings = $();\n\t\tthis.hoverable = $();\n\t\tthis.focusable = $();\n\t\tthis.classesElementLookup = {};\n\n\t\tif ( element !== this ) {\n\t\t\t$.data( element, this.widgetFullName, this );\n\t\t\tthis._on( true, this.element, {\n\t\t\t\tremove: function( event ) {\n\t\t\t\t\tif ( event.target === element ) {\n\t\t\t\t\t\tthis.destroy();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t\tthis.document = $( element.style ?\n\n\t\t\t\t// Element within the document\n\t\t\t\telement.ownerDocument :\n\n\t\t\t\t// Element is window or document\n\t\t\t\telement.document || element );\n\t\t\tthis.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow );\n\t\t}\n\n\t\tthis.options = $.widget.extend( {},\n\t\t\tthis.options,\n\t\t\tthis._getCreateOptions(),\n\t\t\toptions );\n\n\t\tthis._create();\n\n\t\tif ( this.options.disabled ) {\n\t\t\tthis._setOptionDisabled( this.options.disabled );\n\t\t}\n\n\t\tthis._trigger( \"create\", null, this._getCreateEventData() );\n\t\tthis._init();\n\t},\n\n\t_getCreateOptions: function() {\n\t\treturn {};\n\t},\n\n\t_getCreateEventData: $.noop,\n\n\t_create: $.noop,\n\n\t_init: $.noop,\n\n\tdestroy: function() {\n\t\tvar that = this;\n\n\t\tthis._destroy();\n\t\t$.each( this.classesElementLookup, function( key, value ) {\n\t\t\tthat._removeClass( value, key );\n\t\t} );\n\n\t\t// We can probably remove the unbind calls in 2.0\n\t\t// all event bindings should go through this._on()\n\t\tthis.element\n\t\t\t.off( this.eventNamespace )\n\t\t\t.removeData( this.widgetFullName );\n\t\tthis.widget()\n\t\t\t.off( this.eventNamespace )\n\t\t\t.removeAttr( \"aria-disabled\" );\n\n\t\t// Clean up events and states\n\t\tthis.bindings.off( this.eventNamespace );\n\t},\n\n\t_destroy: $.noop,\n\n\twidget: function() {\n\t\treturn this.element;\n\t},\n\n\toption: function( key, value ) {\n\t\tvar options = key;\n\t\tvar parts;\n\t\tvar curOption;\n\t\tvar i;\n\n\t\tif ( arguments.length === 0 ) {\n\n\t\t\t// Don't return a reference to the internal hash\n\t\t\treturn $.widget.extend( {}, this.options );\n\t\t}\n\n\t\tif ( typeof key === \"string\" ) {\n\n\t\t\t// Handle nested keys, e.g., \"foo.bar\" => { foo: { bar: ___ } }\n\t\t\toptions = {};\n\t\t\tparts = key.split( \".\" );\n\t\t\tkey = parts.shift();\n\t\t\tif ( parts.length ) {\n\t\t\t\tcurOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );\n\t\t\t\tfor ( i = 0; i < parts.length - 1; i++ ) {\n\t\t\t\t\tcurOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};\n\t\t\t\t\tcurOption = curOption[ parts[ i ] ];\n\t\t\t\t}\n\t\t\t\tkey = parts.pop();\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn curOption[ key ] === undefined ? null : curOption[ key ];\n\t\t\t\t}\n\t\t\t\tcurOption[ key ] = value;\n\t\t\t} else {\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn this.options[ key ] === undefined ? null : this.options[ key ];\n\t\t\t\t}\n\t\t\t\toptions[ key ] = value;\n\t\t\t}\n\t\t}\n\n\t\tthis._setOptions( options );\n\n\t\treturn this;\n\t},\n\n\t_setOptions: function( options ) {\n\t\tvar key;\n\n\t\tfor ( key in options ) {\n\t\t\tthis._setOption( key, options[ key ] );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"classes\" ) {\n\t\t\tthis._setOptionClasses( value );\n\t\t}\n\n\t\tthis.options[ key ] = value;\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis._setOptionDisabled( value );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_setOptionClasses: function( value ) {\n\t\tvar classKey, elements, currentElements;\n\n\t\tfor ( classKey in value ) {\n\t\t\tcurrentElements = this.classesElementLookup[ classKey ];\n\t\t\tif ( value[ classKey ] === this.options.classes[ classKey ] ||\n\t\t\t\t\t!currentElements ||\n\t\t\t\t\t!currentElements.length ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// We are doing this to create a new jQuery object because the _removeClass() call\n\t\t\t// on the next line is going to destroy the reference to the current elements being\n\t\t\t// tracked. We need to save a copy of this collection so that we can add the new classes\n\t\t\t// below.\n\t\t\telements = $( currentElements.get() );\n\t\t\tthis._removeClass( currentElements, classKey );\n\n\t\t\t// We don't use _addClass() here, because that uses this.options.classes\n\t\t\t// for generating the string of classes. We want to use the value passed in from\n\t\t\t// _setOption(), this is the new value of the classes option which was passed to\n\t\t\t// _setOption(). We pass this value directly to _classes().\n\t\t\telements.addClass( this._classes( {\n\t\t\t\telement: elements,\n\t\t\t\tkeys: classKey,\n\t\t\t\tclasses: value,\n\t\t\t\tadd: true\n\t\t\t} ) );\n\t\t}\n\t},\n\n\t_setOptionDisabled: function( value ) {\n\t\tthis._toggleClass( this.widget(), this.widgetFullName + \"-disabled\", null, !!value );\n\n\t\t// If the widget is becoming disabled, then nothing is interactive\n\t\tif ( value ) {\n\t\t\tthis._removeClass( this.hoverable, null, \"ui-state-hover\" );\n\t\t\tthis._removeClass( this.focusable, null, \"ui-state-focus\" );\n\t\t}\n\t},\n\n\tenable: function() {\n\t\treturn this._setOptions( { disabled: false } );\n\t},\n\n\tdisable: function() {\n\t\treturn this._setOptions( { disabled: true } );\n\t},\n\n\t_classes: function( options ) {\n\t\tvar full = [];\n\t\tvar that = this;\n\n\t\toptions = $.extend( {\n\t\t\telement: this.element,\n\t\t\tclasses: this.options.classes || {}\n\t\t}, options );\n\n\t\tfunction processClassString( classes, checkOption ) {\n\t\t\tvar current, i;\n\t\t\tfor ( i = 0; i < classes.length; i++ ) {\n\t\t\t\tcurrent = that.classesElementLookup[ classes[ i ] ] || $();\n\t\t\t\tif ( options.add ) {\n\t\t\t\t\tcurrent = $( $.unique( current.get().concat( options.element.get() ) ) );\n\t\t\t\t} else {\n\t\t\t\t\tcurrent = $( current.not( options.element ).get() );\n\t\t\t\t}\n\t\t\t\tthat.classesElementLookup[ classes[ i ] ] = current;\n\t\t\t\tfull.push( classes[ i ] );\n\t\t\t\tif ( checkOption && options.classes[ classes[ i ] ] ) {\n\t\t\t\t\tfull.push( options.classes[ classes[ i ] ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis._on( options.element, {\n\t\t\t\"remove\": \"_untrackClassesElement\"\n\t\t} );\n\n\t\tif ( options.keys ) {\n\t\t\tprocessClassString( options.keys.match( /\\S+/g ) || [], true );\n\t\t}\n\t\tif ( options.extra ) {\n\t\t\tprocessClassString( options.extra.match( /\\S+/g ) || [] );\n\t\t}\n\n\t\treturn full.join( \" \" );\n\t},\n\n\t_untrackClassesElement: function( event ) {\n\t\tvar that = this;\n\t\t$.each( that.classesElementLookup, function( key, value ) {\n\t\t\tif ( $.inArray( event.target, value ) !== -1 ) {\n\t\t\t\tthat.classesElementLookup[ key ] = $( value.not( event.target ).get() );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_removeClass: function( element, keys, extra ) {\n\t\treturn this._toggleClass( element, keys, extra, false );\n\t},\n\n\t_addClass: function( element, keys, extra ) {\n\t\treturn this._toggleClass( element, keys, extra, true );\n\t},\n\n\t_toggleClass: function( element, keys, extra, add ) {\n\t\tadd = ( typeof add === \"boolean\" ) ? add : extra;\n\t\tvar shift = ( typeof element === \"string\" || element === null ),\n\t\t\toptions = {\n\t\t\t\textra: shift ? keys : extra,\n\t\t\t\tkeys: shift ? element : keys,\n\t\t\t\telement: shift ? this.element : element,\n\t\t\t\tadd: add\n\t\t\t};\n\t\toptions.element.toggleClass( this._classes( options ), add );\n\t\treturn this;\n\t},\n\n\t_on: function( suppressDisabledCheck, element, handlers ) {\n\t\tvar delegateElement;\n\t\tvar instance = this;\n\n\t\t// No suppressDisabledCheck flag, shuffle arguments\n\t\tif ( typeof suppressDisabledCheck !== \"boolean\" ) {\n\t\t\thandlers = element;\n\t\t\telement = suppressDisabledCheck;\n\t\t\tsuppressDisabledCheck = false;\n\t\t}\n\n\t\t// No element argument, shuffle and use this.element\n\t\tif ( !handlers ) {\n\t\t\thandlers = element;\n\t\t\telement = this.element;\n\t\t\tdelegateElement = this.widget();\n\t\t} else {\n\t\t\telement = delegateElement = $( element );\n\t\t\tthis.bindings = this.bindings.add( element );\n\t\t}\n\n\t\t$.each( handlers, function( event, handler ) {\n\t\t\tfunction handlerProxy() {\n\n\t\t\t\t// Allow widgets to customize the disabled handling\n\t\t\t\t// - disabled as an array instead of boolean\n\t\t\t\t// - disabled class as method for disabling individual parts\n\t\t\t\tif ( !suppressDisabledCheck &&\n\t\t\t\t\t\t( instance.options.disabled === true ||\n\t\t\t\t\t\t$( this ).hasClass( \"ui-state-disabled\" ) ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t\t.apply( instance, arguments );\n\t\t\t}\n\n\t\t\t// Copy the guid so direct unbinding works\n\t\t\tif ( typeof handler !== \"string\" ) {\n\t\t\t\thandlerProxy.guid = handler.guid =\n\t\t\t\t\thandler.guid || handlerProxy.guid || $.guid++;\n\t\t\t}\n\n\t\t\tvar match = event.match( /^([\\w:-]*)\\s*(.*)$/ );\n\t\t\tvar eventName = match[ 1 ] + instance.eventNamespace;\n\t\t\tvar selector = match[ 2 ];\n\n\t\t\tif ( selector ) {\n\t\t\t\tdelegateElement.on( eventName, selector, handlerProxy );\n\t\t\t} else {\n\t\t\t\telement.on( eventName, handlerProxy );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_off: function( element, eventName ) {\n\t\teventName = ( eventName || \"\" ).split( \" \" ).join( this.eventNamespace + \" \" ) +\n\t\t\tthis.eventNamespace;\n\t\telement.off( eventName ).off( eventName );\n\n\t\t// Clear the stack to avoid memory leaks (#10056)\n\t\tthis.bindings = $( this.bindings.not( element ).get() );\n\t\tthis.focusable = $( this.focusable.not( element ).get() );\n\t\tthis.hoverable = $( this.hoverable.not( element ).get() );\n\t},\n\n\t_delay: function( handler, delay ) {\n\t\tfunction handlerProxy() {\n\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t.apply( instance, arguments );\n\t\t}\n\t\tvar instance = this;\n\t\treturn setTimeout( handlerProxy, delay || 0 );\n\t},\n\n\t_hoverable: function( element ) {\n\t\tthis.hoverable = this.hoverable.add( element );\n\t\tthis._on( element, {\n\t\t\tmouseenter: function( event ) {\n\t\t\t\tthis._addClass( $( event.currentTarget ), null, \"ui-state-hover\" );\n\t\t\t},\n\t\t\tmouseleave: function( event ) {\n\t\t\t\tthis._removeClass( $( event.currentTarget ), null, \"ui-state-hover\" );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_focusable: function( element ) {\n\t\tthis.focusable = this.focusable.add( element );\n\t\tthis._on( element, {\n\t\t\tfocusin: function( event ) {\n\t\t\t\tthis._addClass( $( event.currentTarget ), null, \"ui-state-focus\" );\n\t\t\t},\n\t\t\tfocusout: function( event ) {\n\t\t\t\tthis._removeClass( $( event.currentTarget ), null, \"ui-state-focus\" );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_trigger: function( type, event, data ) {\n\t\tvar prop, orig;\n\t\tvar callback = this.options[ type ];\n\n\t\tdata = data || {};\n\t\tevent = $.Event( event );\n\t\tevent.type = ( type === this.widgetEventPrefix ?\n\t\t\ttype :\n\t\t\tthis.widgetEventPrefix + type ).toLowerCase();\n\n\t\t// The original event may come from any element\n\t\t// so we need to reset the target on the new event\n\t\tevent.target = this.element[ 0 ];\n\n\t\t// Copy original event properties over to the new event\n\t\torig = event.originalEvent;\n\t\tif ( orig ) {\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tif ( !( prop in event ) ) {\n\t\t\t\t\tevent[ prop ] = orig[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.element.trigger( event, data );\n\t\treturn !( $.isFunction( callback ) &&\n\t\t\tcallback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false ||\n\t\t\tevent.isDefaultPrevented() );\n\t}\n};\n\n$.each( { show: \"fadeIn\", hide: \"fadeOut\" }, function( method, defaultEffect ) {\n\t$.Widget.prototype[ \"_\" + method ] = function( element, options, callback ) {\n\t\tif ( typeof options === \"string\" ) {\n\t\t\toptions = { effect: options };\n\t\t}\n\n\t\tvar hasOptions;\n\t\tvar effectName = !options ?\n\t\t\tmethod :\n\t\t\toptions === true || typeof options === \"number\" ?\n\t\t\t\tdefaultEffect :\n\t\t\t\toptions.effect || defaultEffect;\n\n\t\toptions = options || {};\n\t\tif ( typeof options === \"number\" ) {\n\t\t\toptions = { duration: options };\n\t\t}\n\n\t\thasOptions = !$.isEmptyObject( options );\n\t\toptions.complete = callback;\n\n\t\tif ( options.delay ) {\n\t\t\telement.delay( options.delay );\n\t\t}\n\n\t\tif ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {\n\t\t\telement[ method ]( options );\n\t\t} else if ( effectName !== method && element[ effectName ] ) {\n\t\t\telement[ effectName ]( options.duration, options.easing, callback );\n\t\t} else {\n\t\t\telement.queue( function( next ) {\n\t\t\t\t$( this )[ method ]();\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback.call( element[ 0 ] );\n\t\t\t\t}\n\t\t\t\tnext();\n\t\t\t} );\n\t\t}\n\t};\n} );\n\nreturn $.widget;\n\n} ) );\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","( function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\", \"./version\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} ( function( $ ) {\n\n// Internal use only\nreturn $.ui.escapeSelector = ( function() {\n\tvar selectorEscape = /([!\"#$%&'()*+,./:;<=>?@[\\]^`{|}~])/g;\n\treturn function( selector ) {\n\t\treturn selector.replace( selectorEscape, \"\\\\$1\" );\n\t};\n} )();\n\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","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 fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !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 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 createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\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 createNonEnumerableProperty(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 createNonEnumerableProperty(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","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","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","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + ++id, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\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/function-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, next, 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 next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && 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"],"sourceRoot":""}