{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/jquery/src/core.js","webpack:///./node_modules/jquery/src/var/isFunction.js","webpack:///./node_modules/jquery/src/var/document.js","webpack:///./node_modules/jquery/src/selector.js","webpack:///./node_modules/jquery/src/core/init.js","webpack:///./node_modules/jquery/src/var/arr.js","webpack:///./node_modules/jquery/src/core/nodeName.js","webpack:///./node_modules/jquery/src/data/var/dataPriv.js","webpack:///./node_modules/jquery/src/var/rnothtmlwhite.js","webpack:///./node_modules/jquery/src/var/support.js","webpack:///./node_modules/jquery/src/core/access.js","webpack:///./node_modules/jquery/src/ajax.js","webpack:///./node_modules/jquery/src/core/toType.js","webpack:///./node_modules/jquery/src/traversing.js","webpack:///./node_modules/jquery/src/deferred.js","webpack:///./node_modules/jquery/src/jquery.js","webpack:///./node_modules/jquery/src/var/slice.js","webpack:///./node_modules/jquery/src/var/isWindow.js","webpack:///./node_modules/jquery/src/core/camelCase.js","webpack:///./node_modules/jquery/src/event.js","webpack:///./node_modules/jquery/src/css.js","webpack:///./node_modules/jquery/src/var/indexOf.js","webpack:///./node_modules/jquery/src/var/class2type.js","webpack:///./node_modules/jquery/src/var/hasOwn.js","webpack:///./node_modules/jquery/src/data/var/acceptData.js","webpack:///./node_modules/jquery/src/core/isAttached.js","webpack:///./node_modules/jquery/src/var/documentElement.js","webpack:///./node_modules/jquery/src/manipulation.js","webpack:///./node_modules/jquery/src/var/push.js","webpack:///./node_modules/jquery/src/callbacks.js","webpack:///./node_modules/jquery/src/queue.js","webpack:///./node_modules/jquery/src/effects.js","webpack:///./node_modules/jquery/src/var/rcssNum.js","webpack:///./node_modules/jquery/src/css/var/cssExpand.js","webpack:///./node_modules/jquery/src/var/rcheckableType.js","webpack:///./node_modules/jquery/src/css/var/rnumnonpx.js","webpack:///./node_modules/jquery/src/css/support.js","webpack:///./node_modules/jquery/src/attributes/support.js","webpack:///./node_modules/jquery/src/core/stripAndCollapse.js","webpack:///./node_modules/js-cookie/src/js.cookie.js","webpack:///./node_modules/jquery/src/var/getProto.js","webpack:///./node_modules/jquery/src/var/flat.js","webpack:///./node_modules/jquery/src/var/toString.js","webpack:///./node_modules/jquery/src/var/fnToString.js","webpack:///./node_modules/jquery/src/core/DOMEval.js","webpack:///./node_modules/jquery/src/var/whitespace.js","webpack:///./node_modules/jquery/src/var/rtrimCSS.js","webpack:///./node_modules/jquery/src/selector/contains.js","webpack:///./node_modules/jquery/src/traversing/var/rneedsContext.js","webpack:///./node_modules/jquery/src/core/var/rsingleTag.js","webpack:///./node_modules/jquery/src/traversing/findFilter.js","webpack:///./node_modules/jquery/src/core/ready.js","webpack:///./node_modules/jquery/src/data/Data.js","webpack:///./node_modules/jquery/src/data/var/dataUser.js","webpack:///./node_modules/jquery/src/var/pnum.js","webpack:///./node_modules/jquery/src/css/var/isHiddenWithinTree.js","webpack:///./node_modules/jquery/src/css/adjustCSS.js","webpack:///./node_modules/jquery/src/manipulation/var/rtagName.js","webpack:///./node_modules/jquery/src/manipulation/var/rscriptType.js","webpack:///./node_modules/jquery/src/manipulation/wrapMap.js","webpack:///./node_modules/jquery/src/manipulation/support.js","webpack:///./node_modules/jquery/src/manipulation/getAll.js","webpack:///./node_modules/jquery/src/manipulation/setGlobalEval.js","webpack:///./node_modules/jquery/src/manipulation/buildFragment.js","webpack:///./node_modules/jquery/src/css/var/rcustomProp.js","webpack:///./node_modules/jquery/src/css/var/getStyles.js","webpack:///./node_modules/jquery/src/css/curCSS.js","webpack:///./node_modules/jquery/src/css/addGetHookIf.js","webpack:///./node_modules/jquery/src/css/finalPropName.js","webpack:///./node_modules/jquery/src/attributes/prop.js","webpack:///./node_modules/jquery/src/ajax/var/nonce.js","webpack:///./node_modules/jquery/src/ajax/var/rquery.js","webpack:///./node_modules/jquery/src/core/parseXML.js","webpack:///./node_modules/jquery/src/event/trigger.js","webpack:///./node_modules/jquery/src/serialize.js","webpack:///./node_modules/jquery/src/core/parseHTML.js","webpack:///./node_modules/jquery-validation/dist/jquery.validate.js","webpack:///./node_modules/plyr/dist/plyr.js","webpack:///./assets/src/scripts/modules/persistentNav.js","webpack:///./assets/src/scripts/modules/popUp.js","webpack:///./assets/src/scripts/modules/popUpCta.js","webpack:///./assets/src/scripts/modules/footer.js","webpack:///./assets/src/scripts/modules/accordion.js","webpack:///./assets/src/scripts/modules/forms.js","webpack:///./assets/src/scripts/modules/videoBlock.js","webpack:///./assets/src/scripts/modules/imageGallery.js","webpack:///./assets/src/scripts/modules/print.js","webpack:///./assets/src/scripts/modules/unsupportedBrowser.js","webpack:///./assets/src/scripts/modules/megaNav.js","webpack:///./assets/src/scripts/modules/setScroll.js","webpack:///./assets/src/scripts/modules/backToTop.js","webpack:///./assets/src/scripts/modules/richtextTables.js","webpack:///./assets/src/scripts/modules/externalLinks.js","webpack:///./assets/src/scripts/modules/globals/globals.js","webpack:///./assets/src/scripts/modules/navigation.js","webpack:///./assets/src/scripts/modules/scrollBar.js","webpack:///./assets/src/scripts/modules/autoCompleteSearch.js","webpack:///./assets/src/scripts/modules/cookieBannerFocus.js","webpack:///./node_modules/devbridge-autocomplete/dist/jquery.autocomplete.js","webpack:///./node_modules/jquery/src/var/ObjectFunctionString.js","webpack:///./node_modules/jquery/src/var/pop.js","webpack:///./node_modules/jquery/src/var/sort.js","webpack:///./node_modules/jquery/src/var/splice.js","webpack:///./node_modules/jquery/src/selector/escapeSelector.js","webpack:///./node_modules/jquery/src/traversing/var/dir.js","webpack:///./node_modules/jquery/src/traversing/var/siblings.js","webpack:///./node_modules/jquery/src/deferred/exceptionHook.js","webpack:///./node_modules/jquery/src/core/readyException.js","webpack:///./node_modules/jquery/src/data.js","webpack:///./node_modules/jquery/src/queue/delay.js","webpack:///./node_modules/jquery/src/css/showHide.js","webpack:///./node_modules/jquery/src/css/var/swap.js","webpack:///./node_modules/jquery/src/css/var/rboxStyle.js","webpack:///./node_modules/jquery/src/effects/Tween.js","webpack:///./node_modules/jquery/src/attributes.js","webpack:///./node_modules/jquery/src/attributes/attr.js","webpack:///./node_modules/jquery/src/attributes/classes.js","webpack:///./node_modules/jquery/src/attributes/val.js","webpack:///./node_modules/jquery/src/manipulation/_evalUrl.js","webpack:///./node_modules/jquery/src/ajax/var/location.js","webpack:///./node_modules/jquery/src/wrap.js","webpack:///./node_modules/jquery/src/css/hiddenVisibleSelectors.js","webpack:///./node_modules/jquery/src/ajax/xhr.js","webpack:///./node_modules/jquery/src/ajax/script.js","webpack:///./node_modules/jquery/src/ajax/jsonp.js","webpack:///./node_modules/jquery/src/ajax/load.js","webpack:///./node_modules/jquery/src/core/support.js","webpack:///./node_modules/jquery/src/effects/animatedSelector.js","webpack:///./node_modules/jquery/src/offset.js","webpack:///./node_modules/jquery/src/dimensions.js","webpack:///./node_modules/jquery/src/deprecated.js","webpack:///./node_modules/jquery/src/deprecated/ajax-event-alias.js","webpack:///./node_modules/jquery/src/deprecated/event.js","webpack:///./node_modules/jquery/src/exports/amd.js","webpack:///./node_modules/jquery/src/exports/global.js","webpack:///./node_modules/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.js","webpack:///./node_modules/jquery-ajax-unobtrusive/dist/jquery.unobtrusive-ajax.js","webpack:///./node_modules/parsleyjs/dist/parsley.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/slick-carousel/slick/slick.js","webpack:///./assets/src/scripts/pages/home.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","arr","getProto","slice","flat","push","indexOf","class2type","toString","hasOwn","fnToString","ObjectFunctionString","support","isFunction","isWindow","DOMEval","toType","rhtmlSuffix","jQuery","selector","context","fn","init","isArrayLike","obj","length","type","jquery","constructor","toArray","this","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","apply","arguments","first","eq","last","even","grep","_elem","odd","len","j","end","sort","splice","extend","options","src","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","Error","noop","proto","Ctor","isEmptyObject","globalEval","code","doc","nonce","text","node","nodeType","textContent","documentElement","nodeValue","makeArray","results","inArray","isXMLDoc","namespace","namespaceURI","docElem","ownerDocument","test","nodeName","second","invert","matches","callbackExpect","arg","guid","iterator","split","_i","toLowerCase","item","window","document","pop","whitespace","rtrimCSS","preferredDoc","pushNative","Expr","outermostContext","sortInput","hasDuplicate","documentIsHTML","rbuggyQSA","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","a","b","booleans","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rleadingCombinator","rdescend","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","String","fromCharCode","unloadHandler","setDocument","inDisabledFieldset","addCombinator","disabled","dir","next","childNodes","e","els","find","seed","nid","match","groups","newSelector","newContext","exec","getElementById","id","contains","getElementsByTagName","getElementsByClassName","testContext","parentNode","scope","getAttribute","escapeSelector","setAttribute","tokenize","toSelector","join","querySelectorAll","qsaError","removeAttribute","select","keys","cache","cacheLength","shift","markFunction","assert","el","createElement","removeChild","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","subWindow","webkitMatchesSelector","msMatchesSelector","defaultView","top","addEventListener","getById","appendChild","getElementsByName","disconnectedMatch","cssHas","querySelector","filter","attrId","getAttributeNode","tag","className","input","innerHTML","compare","compareDocumentPosition","sortDetached","expr","elements","matchesSelector","attr","attrHandle","val","uniqueSort","duplicates","sortStable","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","expectedNodeName","pattern","operator","check","result","what","_argument","simple","forward","ofType","_context","xml","outerCache","nodeIndex","start","parent","useCache","diff","firstChild","lastChild","pseudo","args","setFilters","idx","matched","not","matcher","compile","unmatched","has","lang","elemLang","hash","location","root","focus","activeElement","err","safeActiveElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","nextSibling","header","button","_matchIndexes","lt","gt","nth","radio","checkbox","file","password","image","submit","reset","parseOnly","tokens","soFar","preFilters","cached","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","matcherOut","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","concat","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","filters","unique","getText","isXML","selectors","rsingleTag","rootjQuery","parseHTML","ready","Data","access","chainable","emptyGet","raw","bulk","_key","rnothtmlwhite","rquery","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","prefilters","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","originalOptions","jqXHR","inspected","seekingTransport","inspect","_","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","isLocal","protocol","global","processData","async","contentType","accepts","html","json","contents","responseFields","converters","JSON","parse","parseXML","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","completed","fireGlobals","uncached","callbackContext","globalEventContext","event","deferred","Deferred","completeDeferred","Callbacks","statusCode","requestHeaders","requestHeadersNames","strAbort","readyState","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","always","status","abort","statusText","finalText","promise","method","crossDomain","host","data","param","traditional","trigger","toUpperCase","hasContent","ifModified","headers","beforeSend","add","complete","success","fail","timeout","setTimeout","send","nativeStatusText","responses","isSuccess","response","modified","clearTimeout","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","tmp","prev","dataFilter","throws","state","ajaxConvert","resolveWith","rejectWith","fireWith","getJSON","getScript","siblings","rneedsContext","rparentsprev","guaranteedUnique","children","sibling","cur","targets","closest","index","prevAll","addBack","parents","parentsUntil","until","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","then","tuples","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","handler","special","that","mightThrow","TypeError","notifyWith","process","exceptionHook","getErrorHook","getStackHook","list","stateString","disable","lock","fire","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","string","rcheckableType","acceptData","dataPriv","rtypenamespace","returnTrue","returnFalse","on","types","one","origFn","off","leverageNative","isSetup","set","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","isImmediatePropagationStopped","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","remove","mappedTypes","origCount","hasData","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","rnamespace","postDispatch","sel","matchedHandlers","matchedSelectors","addProp","hook","Event","configurable","originalEvent","writable","load","noBubble","click","_default","beforeunload","returnValue","removeEventListener","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","Date","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","blur","focusMappedHandler","documentMode","simulate","attaches","dataHolder","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","camelCase","rcssNum","rnumnonpx","rcustomProp","cssExpand","getStyles","swap","curCSS","adjustCSS","addGetHookIf","finalPropName","rdisplayswap","cssShow","position","visibility","display","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","marginDelta","css","ceil","getWidthOrHeight","boxSizingReliable","valueIsBorderBox","offsetProp","reliableTrDimensions","parseFloat","getClientRects","cssHooks","opacity","computed","cssNumber","animationIterationCount","aspectRatio","borderImageSlice","columnCount","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","order","orphans","scale","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeMiterlimit","strokeOpacity","cssProps","style","hooks","origName","isCustomProp","clearCloneStyle","setProperty","isFinite","getBoundingClientRect","width","scrollboxSizeBuggy","scrollboxSize","marginLeft","reliableMarginLeft","left","margin","padding","border","prefix","suffix","expand","expanded","parts","owner","isAttached","composed","getRootNode","rtagName","rscriptType","wrapMap","getAll","setGlobalEval","buildFragment","dataUser","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","defaultValue","domManip","collection","ignored","fragment","scripts","hasScripts","iNoClone","valueIsFunction","checkClone","self","_evalUrl","noModule","keepData","nodes","cleanData","htmlPrefilter","dataAndEvents","deepDataAndEvents","srcElements","destElements","cloneNode","inPage","noCloneChecked","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","flag","createOptions","firing","memory","fired","locked","queue","firingIndex","once","stopOnFalse","dequeue","startLength","_queueHooks","stop","setter","clearQueue","count","defer","isHiddenWithinTree","showHide","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","fx","interval","tick","createFxNow","genFx","includeWidth","attrs","height","createTween","prop","animation","tween","Animation","tweeners","properties","stopped","currentTime","startTime","duration","percent","tweens","run","opts","specialEasing","easing","originalProperties","Tween","gotoEnd","propFilter","timer","anim","tweener","toggle","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","old","fadeTo","to","show","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","pnum","computeStyleTests","div","container","cssText","divStyle","getComputedStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","right","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","offsetWidth","measure","round","reliableTrDimensionsVal","backgroundClip","pixelBoxStyles","pixelPosition","table","tr","trChild","trStyle","parseInt","borderTopWidth","borderBottomWidth","offsetHeight","checkOn","optSelected","radioValue","factory","OldCookies","Cookies","api","noConflict","decode","decodeURIComponent","converter","path","defaults","expires","toUTCString","stringify","write","encodeURIComponent","stringifiedAttributes","attributeName","cookie","jar","cookies","charAt","read","withConverter","getPrototypeOf","array","preservedScriptAttributes","script","head","bup","winnow","qualifier","is","readyList","catch","readyException","readyWait","wait","doScroll","uid","source","valueParts","adjusted","maxIterations","currentValue","initial","unit","initialInUnit","thead","col","td","tbody","tfoot","colgroup","caption","th","option","optgroup","createDocumentFragment","refElements","rhtml","selection","wrap","attached","createTextNode","opener","rboxStyle","minWidth","maxWidth","getPropertyValue","conditionFn","hookFn","cssPrefixes","emptyStyle","vendorProps","final","capName","vendorPropName","rfocusable","rclickable","removeProp","propFix","nType","propHooks","tabindex","parserErrorElem","DOMParser","parseFromString","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","triggerHandler","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","valueOrFunction","serialize","serializeArray","keepScripts","createHTMLDocument","implementation","parsed","$","validate","validator","onsubmit","submitButton","hasClass","cancelSubmit","submitHandler","formSubmitted","currentForm","debug","form","pendingRequest","focusInvalid","console","warn","valid","errorList","element","rules","command","staticRules","existingRules","filtered","isContentEditable","normalizeRule","messages","normalizeRules","classRules","attributeRules","dataRules","required","remote","called","trim","str","blank","filled","unchecked","format","params","errorClass","pendingClass","validClass","errorElement","focusCleanup","errorContainer","errorLabelContainer","ignore","ignoreTitle","customElements","onfocusin","lastActive","unhighlight","hideThese","errorsFor","onfocusout","checkable","submitted","optional","onkeyup","elementValue","invalid","onclick","highlight","findByName","addClass","removeClass","setDefaults","email","date","dateISO","number","digits","equalTo","maxlength","minlength","rangelength","range","min","step","autoCreateRanges","labelContainer","errorContext","containers","valueCache","pending","delegate","eventType","invalidHandler","checkForm","errorMap","showErrors","prepareForm","currentElements","rs","group","cleanElement","clean","checkElement","validationTargetFor","prepareElement","testgroup","numberOfInvalids","toHide","errors","message","successList","defaultShowErrors","resetForm","hideErrors","removeData","removeAttr","resetElements","objectLength","addWrapper","hide","size","findLastActive","rulesCache","resetInternals","toShow","$element","validity","badInput","substr","lastIndexOf","rule","normalizer","rulesCount","dependencyMismatch","abortRequest","parameters","methods","formatAndAdd","log","customDataMessage","substring","customMessage","findDefined","defaultMessage","title","theregex","toToggle","wrapper","showLabel","validElements","invalidElements","place","errorID","elementID","idOrName","describedBy","escapeHtml","errorPlacement","escapeCssMeta","describer","getLength","depend","dependTypes","elementAjaxPort","startRequest","stopRequest","port","ajaxAbort","previousValue","destroy","classRuleSettings","creditcard","addClassRules","classes","normalizeAttributeRule","Number","isNaN","depends","keepRule","parameter","transformed","addMethod","decimals","errorMessage","re","decimalPlaces","toInt","pow","optionDataString","previous","originalMessage","pendingRequests","xhr","navigator","_defineProperty$1","toPrimitive","_toPrimitive","_toPropertyKey","_defineProperties","_defineProperty","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","_objectSpread2","forEach","getOwnPropertyDescriptors","defineProperties","defaults$1","addCSS","thumbWidth","watch","matches$1","from","includes","getConstructor$1","instanceOf$1","isNullOrUndefined$1","isObject$1","isString$1","isArray$1","isNodeList$1","NodeList","is$1","Element","getDecimalPlaces","toFixed","RangeTouch","_classCallCheck","rangeTouch","config","_createClass","userSelect","webKitUserSelect","touchAction","listeners","u","dispatchEvent","MutationObserver","addedNodes","observe","body","childList","subtree","getConstructor","instanceOf","Boolean","isNullOrUndefined","isObject","isString","isNodeList","isEmpty","nullOrUndefined","boolean","function","weakMap","WeakMap","nodeList","textNode","Text","keyboardEvent","KeyboardEvent","cue","TextTrackCue","VTTCue","track","TextTrack","kind","Promise","URL","startsWith","hostname","transitionEndEvent","WebkitTransition","MozTransition","OTransition","transition","repaint","delay","getDeep","reduce","sources","assign","child","setAttributes","entries","insertElement","removeElement","emptyElement","replaceElement","newChild","oldChild","getAttributesFromSelector","existingAttributes","existing","class","toggleHidden","toggleClass","force","classList","mozMatchesSelector","getElements","getElement","setFocus","focusVisible","preventScroll","defaultCodecs","audio","video","provider","ui","rangeInput","pip","pictureInPictureEnabled","disablePictureInPicture","airplay","WebKitPlaybackTargetAvailabilityEvent","playsinline","mediaType","isHTML5","media","canPlayType","textTracks","touch","transitions","reducedMotion","matchMedia","supportsPassiveListeners","supported","toggleListener","passive","capture","eventListeners","onceCallback","triggerEvent","CustomEvent","plyr","unbindListeners","silencePromise","dedupe","curr","abs","supportsCSS","declaration","CSS","supports","standardRatios","out","x","y","validateAspectRatio","every","reduceAspectRatio","ratio","getDivider","w","h","divider","getAspectRatio","embed","videoWidth","videoHeight","setAspectRatio","isVideo","paddingBottom","isVimeo","vimeo","premium","offset","fullscreen","transform","classNames","videoFixedRatio","roundAspectRatio","tolerance","closestRatio","html5","mime","quality","forced","getSources","player","onChange","paused","preload","playbackRate","play","blankVideo","isIE","isEdge","userAgent","isWebKit","isIPadOS","platform","maxTouchPoints","isIos","browser","toTitleCase","toCamelCase","toPascalCase","getHTML","resources","youtube","i18n","seekTime","k","Storage","store","localStorage","getItem","storage","setItem","removeItem","fetch","responseType","withCredentials","request","XMLHttpRequest","responseText","open","loadSprite","hasId","isCached","exists","update","insertAdjacentElement","useStorage","getHours","trunc","formatTime","time","displayHours","inverted","hours","mins","secs","getSeconds","controls","iconUrl","cors","svg4everybody","pause","restart","rewind","fastForward","mute","captions","inputs","seek","volume","buffer","seekTooltip","tooltip","toggleNativeControls","getIconUrl","iconPath","iconPrefix","icon","createElementNS","use","setAttributeNS","badge","menu","buttonType","label","labelPressed","iconPressed","control","createIcon","createLabel","updateRangeFill","suffixKey","played","menuItem","isRadioButton","showMenuPanel","nextElementSibling","firstElementChild","previousElementSibling","lastElementChild","focusFirstMenuItem","flex","currentTrack","bindMenuItemShortcuts","setRange","muted","pressed","setProgress","buffered","_this$config$markers","_this$config$markers$","tooltips","tipElement","visible","clientRect","scrollLeft","point","markers","points","insertAdjacentHTML","invertTime","updateTimeDisplay","seeking","updateProgress","hasDuration","displayDuration","setMarkers","updateSeekTooltip","setting","pane","panels","default","getLabel","toggleMenuButton","checkMenu","getBadge","createBadge","sorting","createMenuItem","updateSetting","tracks","getTracks","toggled","language","minimumSpeed","maximumSpeed","values","some","popup","firstItem","composedPath","isMenuItem","tab","scrollWidth","scrollHeight","getMenuSize","restore","propertyName","download","createButton","createProgress","createRange","createTime","setQualityMenu","setSpeedMenu","defaultAttributes","progressContainer","inner","home","role","backButton","urls","isEmbed","getQualityOptions","floor","seektime","findElements","addProperty","controlPressed","labels","mediaSession","metadata","MediaMetadata","mediaMetadata","artist","album","artwork","_this$config$markers2","_this$config$markers3","containerFragment","pointsFragment","tipVisible","toggleTip","markerElement","marker","tip","parseUrl","safe","parser","buildUrlParams","URLSearchParams","isYouTube","setCaptionsMenu","blob","createObjectURL","languages","userLanguage","trackEvents","meta","currentTrackNode","languageExists","updateCues","setLanguage","activeClass","findTrack","enableTextTrack","sortIsDefault","sorted","getCurrentTrack","cues","activeCues","getCueAsHTML","cueText","autoplay","autopause","toggleInvert","clickToPlay","hideControls","resetOnEnd","disableContextMenu","loop","keyboard","focused","fallback","iosNative","seekLabel","unmute","enableCaptions","disableCaptions","enterFullscreen","exitFullscreen","frameTitle","menuBack","normal","all","advertisement","qualityBadge","2160","1440","1080","720","576","480","sdk","iframe","googleIMA","editable","embedContainer","poster","posterEnabled","ads","playing","loading","hover","isTouch","uiSupported","noTransition","previewThumbnails","thumbContainer","thumbContainerShown","imageContainer","timeContainer","scrubbingContainer","scrubbingContainerShown","publisherId","tagUrl","byline","portrait","transparent","customControls","referrerPolicy","rel","showinfo","iv_load_policy","modestbranding","noCookie","providers","Console","Function","Fullscreen","_window$scrollX","_window$scrollY","scrollPosition","scrollX","scrollY","scrollTo","viewport","hasProperty","cleanupViewport","part","focusable","forceFallback","nativeSupported","requestFullscreen","webkitEnterFullscreen","toggleFallback","navigationUI","action","cancelFullScreen","exit","enter","parentElement","closest$1","proxy","trapFocus","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","pre","fullscreenElement","shadowRoot","_this$player$elements","loadImage","Image","onload","onerror","naturalWidth","inject","updateVolume","timeUpdate","durationUpdate","checkPlaying","setTitle","setPoster","setMediaMetadata","enable","togglePoster","backgroundImage","backgroundSize","toggleControls","controlsElement","recentTouchSeek","lastSeekTime","removeProperty","Listeners","_player","handleKey","toggleMenu","firstTouch","setGutter","useNativeAspectRatio","viewportWidth","viewportHeight","clientWidth","innerWidth","clientHeight","innerHeight","resized","checkLoading","isAudio","ended","togglePlay","setDownloadUrl","proxyEvents","defaultHandler","customHandlerKey","customHandler","hasCustomHandler","inputEvent","toggleCaptions","rect","hasAttribute","seekTo","loaded","startMove","endMove","startScrubbing","endScrubbing","webkitDirectionInvertedFromDevice","deltaX","deltaY","direction","sign","increaseVolume","lastKey","focusTimer","lastKeyDown","repeat","increment","decreaseVolume","usingNative","getDefaultExportFromCjs","hasRequiredLoadjs_umd","loadjs_umd$1","loadjs","devnull","bundleIdCache","bundleResultCache","bundleCallbackQueue","publish","bundleId","pathsNotFound","q","executeCallbacks","depsNotFound","loadFile","callbackFn","numTries","isLegacyIECss","hasModuleSupport","maxTries","numRetries","beforeCallbackFn","pathname","pathStripped","relList","as","onbeforeload","ev","sheet","paths","arg1","arg2","loadFn","numWaiting","loadFiles","returnPromise","deps","bundleIds","subscribe","isDefined","loadScript","assurePlaybackState$1","hasPlayed","Vimeo","frameParams","found","parseHash","hashParam","sidedock","gesture","parseId$1","thumbnail_url","Player","disableTextTrack","restorePause","setVolume","setCurrentTime","setPlaybackRate","setMuted","currentSrc","setLoop","getVideoUrl","getVideoWidth","getVideoHeight","dimensions","setAutopause","getVideoTitle","getCurrentTime","getDuration","getTextTracks","strippedCues","stripHTML","getPaused","seconds","build","assurePlaybackState","getHost","YT","onYouTubeIframeAPIReady","videoId","currentId","parseId","posterSrc","playerVars","hl","disablekb","cc_load_policy","cc_lang_pref","widget_referrer","2","5","100","101","150","instance","getPlaybackRate","getTitle","playVideo","pauseVideo","stopVideo","getAvailablePlaybackRates","clearInterval","buffering","setInterval","getVideoLoadedFraction","lastBuffered","unMute","Ads","google","ima","manager","displayContainer","startSafetyTimer","managerPromise","clearSafetyTimer","setupIMA","setVpaidMode","ImaSdkSettings","VpaidMode","ENABLED","setLocale","setDisableCustomPlaybackForIOS10Plus","AdDisplayContainer","loader","AdsLoader","AdsManagerLoadedEvent","Type","ADS_MANAGER_LOADED","onAdsManagerLoaded","AdErrorEvent","AD_ERROR","onAdError","requestAds","AdsRequest","adTagUrl","linearAdSlotWidth","linearAdSlotHeight","nonLinearAdSlotWidth","nonLinearAdSlotHeight","forceNonLinearFullSlot","setAdWillPlayMuted","countdownTimer","getRemainingTime","AdsRenderingSettings","restoreCustomPlaybackStateOnAdBreakComplete","enablePreloading","getAdsManager","cuePoints","getCuePoints","AdEvent","onAdEvent","cuePoint","seekElement","cuePercentage","ad","getAd","adData","getAdData","LOADED","pollCountdown","isLinear","STARTED","ALL_ADS_COMPLETED","loadAds","contentComplete","CONTENT_PAUSE_REQUESTED","pauseContent","CONTENT_RESUME_REQUESTED","resumeContent","LOG","adError","getMessage","cancel","addCuePoints","seekedTime","discardAdBreak","resize","ViewMode","NORMAL","initialize","initialized","safetyTimer","AV_PUBLISHERID","AV_CHANNELID","AV_URL","cb","AV_WIDTH","AV_HEIGHT","AV_CDIM2","clamp","parseVtt","vttDataString","processedList","frame","line","lineSplit","matchTimes","endTime","fitRatio","outer","PreviewThumbnails","getThumbnails","render","determineContainerAutoSizing","sortAndResolve","thumbnails","promises","getThumbnail","thumbnail","frames","urlPrefix","tempImage","naturalHeight","_this$player$config$m","_this$player$config$m2","percentage","mousePosX","thumb","showImageAtCurrentTime","toggleThumbContainer","mouseDown","toggleScrubbingContainer","lastTime","scrubbing","setScrubbingContainerSize","setThumbContainerSizeAndPos","thumbNum","findIndex","hasThumb","qualityIndex","loadedImages","showingThumb","thumbFilename","thumbUrl","currentImageElement","dataset","filename","showImage","removeOldImages","loadingImage","usingSprites","previewImage","showingThumbFilename","newImage","setImageSizeAndOffset","currentImageContainer","preloadNearby","getHigherQuality","currentImage","tagName","removeDelay","deleting","oldThumbFilename","thumbnailsClone","foundOne","newThumbFilename","thumbURL","currentQualityIndex","previewImageHeight","thumbContainerHeight","clearShowing","sizeSpecifiedInCSS","thumbAspectRatio","thumbHeight","setThumbContainerPos","scrubberRect","containerRect","clamped","multiplier","lastMouseMoveTime","currentScrubbingImageElement","currentThumbnailImageElement","attribute","cancelRequests","crossorigin","addStyleHook","insertElements","Plyr","webkitShowPlaybackTargetPicker","isHidden","hiding","eventName","soft","unload","failed","_type","getProviderByUrl","search","truthy","searchParams","migrateStyles","inputIsValid","fauxDuration","realDuration","Infinity","mozHasAudio","webkitAudioDecodedByteCount","audioTracks","updateStorage","change","webkitSetPresentationMode","requestPictureInPicture","exitPictureInPicture","webkitPresentationMode","pictureInPictureElement","thumbnailSource","globals","navScrollTop","resizeTimer","persistentNavHandler","$header","scrollTop","Popup","hasVisited","$popUp","sessionStorage","$popUpClose","$popUpInner","showPopup","scroll","PopUpCta","$openPopup","popupId","popupid","checkId","checkError","checkErrorElem","$footer","Footer","$this","$parent","accordion","accToggle","copyHyperlink","checkAutoOpen","hrefValue","hashIndex","idFromHash","history","pushState","closeAccordion","idHash","additonalOffset","targetedAccordion","accordions","accordionHeader","siblingAccordion","openAccordion","origin","clipboard","writeText","alert","Forms","files","_files","_html","_form","parsley","VideoBlock","$playIcon","$overlay","$video","ImageGallery","$imageCaptionBlock","$imageGallerySlider","slick","dots","appendArrows","arrows","autoplaySpeed","currentSlide","nextSlide","imageCaption","Print","print","UnsupportedBrowser","msie","$browserMessage","MegaNav","$headerItem","$windowWidth","$subMenu","$subMenuWidth","outerWidth","$subMenuXOffset","setScroll","BackToTop","onscroll","scrollfunction","critereaLookup","RichTextTables","handleTableFocus","isOverflowing","hasManualTabIndex","ResizeObserver","debounceTimeout","externalLinks","links","svgElem","useElem","srTextElem","Globals","$button","$mobileNav","$mobileTop","$main","$nav","$searchButton","$siteSearch","$searchBox","$searchClose","$headerBottom","$mobileSubmenu","toggleLockedFocus","isLocked","excludedTags","$sibling","$topLevelLink","mobileSubmenu","Navigation","Accordion","PopupCta","scollInterval","$slides","$slideWrapper","$close","animateScrollBar","onresize","Scrollbar","autocompleteSearch","autocomplete","serviceUrl","paramName","noCache","onSelect","suggestion","submitOnSelect","queryString","minChars","onSearchComplete","query","suggestions","formType","SetScroll","observer","handleBannerFocus","banner","disconnect","checkForBanner","mutations","mutation","$node","CookieBannerFocus","utils","escapeRegExChars","createNode","containerClass","Autocomplete","badQueries","timeoutId","cachedResponse","onChangeTimeout","suggestionsContainer","noSuggestionsContainer","hint","hintValue","setOptions","autoSelectFirst","lookup","maxHeight","deferRequestBy","formatResult","formatGroup","category","delimiter","onSearchStart","onSearchError","preserveInput","tabDisabled","currentRequest","triggerSelectOnValidInput","preventBadQueries","lookupFilter","originalQuery","queryLowerCase","transformResult","parseJSON","showNoSuggestionNotice","noSuggestionNotice","orientation","forceFixPosition","suggestionSelector","activate","blurTimeoutId","fixPositionCapture","fixPosition","onKeyPress","onKeyUp","onBlur","onFocus","onValueChange","getQuery","onInvalidateSelection","abortAjax","suppliedOptions","verifySuggestionsFormat","validateOrientation","clearCache","clear","$container","containerParent","containerHeight","outerHeight","viewPortHeight","topOverflow","bottomOverflow","parentOffsetDiff","offsetParent","isCursorAtEnd","valLength","selectionStart","moveStart","onHint","selectHint","moveUp","moveDown","suggest","findBestHint","ignoreValueChange","isExactMatch","getSuggestions","getSuggestionsLocal","limit","lookupLimit","cacheKey","ignoreParams","isBadQuery","processResponse","textStatus","errorThrown","onHide","signalHint","groupBy","classSelected","beforeRender","currentCategory","adjustContainerWidth","noSuggestions","bestMatch","foundMatch","activeItem","adjustScroll","offsetTop","upperBound","lowerBound","heightDelta","getValue","onSelectCallback","dispose","devbridgeAutocomplete","dataKey","inputElement","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","truncate","rerrorNames","asyncError","stack","rbrace","rmultiDash","dataAttr","getData","_data","_removeData","defaultDisplayMap","getDefaultDisplay","eased","pos","linear","swing","cos","PI","boolHook","attrHooks","attrNames","lowercaseName","stripAndCollapse","getClass","classesToArray","curValue","finalValue","stateVal","isValidValue","rreturn","valHooks","optionSet","wrapAll","wrapInner","htmlIsFunction","unwrap","xhrSuccessStatus","0","1223","xhrSupported","errorCallback","username","xhrFields","onabort","ontimeout","onreadystatechange","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","win","pageYOffset","pageXOffset","parentOffset","Height","Width","defaultExtra","funcName","rtrim","holdReady","hold","isNumeric","unbind","undelegate","fnOver","fnOut","_jQuery","_$","noGlobal","adapters","$jQval","setValidationValues","ruleName","escapeAttributeValue","getModelPrefix","fieldName","appendModelPrefix","onError","replaceAttrValue","onErrors","onSuccess","onReset","$form","validationInfo","onResetProxy","defaultOptions","unobtrusive","execInContext","attachValidation","parseElement","skipAttach","valInfo","paramValues","adapt","$selector","$forms","info","adapterName","addBool","addMinMax","minRuleName","maxRuleName","minMaxRuleName","minAttribute","maxAttribute","addSingleVal","nonalphamin","extension","fullOtherName","other","splitAndTrim","additionalfields","field","regex","extensions","data_click","data_target","getFunction","argNames","isMethodProxySafe","asyncOnBeforeSend","asyncOnSuccess","asyncRequest","confirm","formdata","FormData","clickInfo","clickTarget","isCancel","_typeof","_extends","_slicedToArray","_arrayWithHoles","_arr","_n","_d","_e","_s","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","arr2","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","globalID","pastWarnings","Utils","specified","camelize","deserializeValue","checkAttr","_checkAttr","setAttr","dasherize","getType","generateID","chr","_window$console","warnOnce","_resetWarnings","trimString","_parsed$map2","year","month","day","getFullYear","getMonth","getDate","_string","integer","regexp","_regexp","flags","parseRequirement","requirementType","converted","namespaceEvents","difference","objectCreate","_SubmitSelector","Defaults","excluded","priorityEnabled","multiple","uiEnabled","validationThreshold","triggerAfterFailure","successClass","classHandler","Field","errorsContainer","errorsWrapper","errorTemplate","Base","__id__","asyncSupport","_pipeAccordingToValidationResult","_this","validationResult","actualizeOptions","domOptions","_resetOptions","initOptions","_listeners","listenTo","unsubscribe","unsubscribeTo","extraArg","asyncIsValid","whenValid","_findRelated","Validator","spec","requirementFirstArg","validateMultiple","validateDate","_isDateInput","validateNumber","validateString","parseRequirements","requirements","extraOptionReader","convertArrayRequirement","requirementSpec","main","convertExtraOptionRequirement","priority","ValidatorRegistry","validators","catalog","__class__","locale","typeTesters","alphanum","parseArguments","operatorToValidator","_len","requirementsAndInput","comparisonOperator","addValidator","Parsley","addCatalog","addMessage","addMessages","nameMessageObject","_setValidator","hasValidator","updateValidator","removeValidator","getErrorMessage","constraint","formatMessage","en","notblank","_ref","_ref$step","_ref$base","tester","nb","f","requirement","mincheck","maxcheck","equalto","refOrValue","$reference","euvatin","UI","Form","_actualizeTriggers","onSubmitValidate","onSubmitButton","_focusedField","fields","noFocus","_destroyUI","_reflowUI","_buildUI","_ui","diffResults","newResult","oldResult","added","kept","removed","lastValidationResult","_manageStatusClass","_manageErrorsMessages","_failedOnce","getErrorsMessages","_getErrorMessage","addError","_ref$updateClass","updateClass","_addError","_errorClass","updateError","_ref2","_ref2$updateClass","_updateError","removeError","_ref3","_ref3$updateClass","_removeError","hasConstraints","needsValidation","_successClass","_resetClass","errorsMessagesDisabled","_insertErrorWrapper","$errorsWrapper","$errorClassHandler","errorsWrapperId","_ref4","_ref5","customConstraintErrorMessage","_manageClassHandler","validationInformationVisible","$handlerFunction","$handler","_inputHolder","$errorsContainer","_this2","$toBind","_validateIfNeeded","_this3","debounce","_debounced","_resetUI","statusMapping","resolved","rejected","submitSource","_submitSource","_remoteCache","whenValidate","_trigger","_submit","$synthetic","_arguments","_Utils$all$done$fail$","submitEvent","_refreshFields","_withoutReactualizingFormOptions","isValid","_arguments2","refresh","_bindFields","_this4","oldFields","fieldsMappedById","fieldInstance","Factory","uniqueId","oldActualizeOptions","Constraint","parsleyField","isDomConstraint","validatorSpec","_validatorRegistry","_parseRequirements","_this$validator","requirementList","parsleyFormInstance","constraints","constraintsByName","_bindConstraints","statusMapping$1","_this$whenValid$alway","_isInGroup","_refreshed","_isRequired","validateIfEmpty","_ref2$force","groupedConstraints","_getGroupedConstraints","_validateConstraint","_handleWhitespace","_refreshConstraints","refreshConstraints","addConstraint","removeConstraint","updateConstraint","_bindHtml5Constraints","trimValue","Multiple","addElement","$elements","fieldConstraints","_init","savedparsleyFormInstance","__version__","isMultiple","handleMultiple","parsleyMultipleInstance","$previouslyRelated","doNotStore","parsleyInstance","ParsleyExtend","vernums","version","psly","instances","ParsleyConfig","ParsleyUtils","registry","ParsleyValidator","_window$Parsley","ParsleyUI","doNotUpdateClass","autoBind","deprecated","parsleyAdaptedCallback","listen","unsubscribeAll","emit","_instance","instanceGiven","asyncValidators","addAsyncValidator","ajaxOptions","csr","remoteOptions","handleXhr","isNativeEvent","isTrusted","fakeInputEvent","misbehaves","behavesOk","install","inputEventPatched","uninstall","g","Slick","instanceUid","dataSettings","accessibility","adaptiveHeight","appendDots","asNavFor","prevArrow","nextArrow","centerMode","centerPadding","cssEase","customPaging","slider","dotsClass","draggable","edgeFriction","fade","focusOnSelect","focusOnChange","infinite","initialSlide","lazyLoad","mobileFirst","pauseOnHover","pauseOnFocus","pauseOnDotsHover","respondTo","responsive","rows","rtl","slide","slidesPerRow","slidesToShow","slidesToScroll","swipe","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","vertical","verticalSwiping","waitForAnimate","initials","animating","dragging","autoPlayTimer","currentDirection","currentLeft","$dots","listWidth","listHeight","loadIndex","$nextArrow","$prevArrow","scrolling","slideCount","slideWidth","$slideTrack","sliding","slideOffset","swipeLeft","swiping","$list","touchObject","transformsEnabled","unslicked","activeBreakpoint","animType","animProp","breakpoints","breakpointSettings","cssTransitions","focussed","interrupted","positionProp","rowCount","shouldClick","$slider","$slidesCache","transformType","transitionType","visibilityChange","windowWidth","windowTimer","mozHidden","webkitHidden","autoPlay","autoPlayClear","autoPlayIterator","changeSlide","clickHandler","selectHandler","setPosition","swipeHandler","dragHandler","keyHandler","htmlExpr","registerBreakpoints","activateADA","addSlide","slickAdd","markup","addBefore","reinit","animateHeight","targetHeight","animateSlide","targetLeft","animProps","animStart","applyTransition","disableTransition","getNavTarget","slideHandler","slideTo","buildArrows","buildDots","dot","getDotCount","buildOut","setupInfinite","updateDots","setSlideClasses","buildRows","newSlides","numOfSlides","originalSlides","slidesPerSection","row","checkResponsive","forceUpdate","breakpoint","targetBreakpoint","respondToWidth","triggerBreakpoint","sliderWidth","unslick","dontAnimate","indexOffset","$target","checkNavigable","navigables","prevNavigable","getNavigableIndexes","cleanUpEvents","interrupt","cleanUpSlideEvents","orientationChange","cleanUpRows","fadeSlide","slideIndex","fadeSlideOut","filterSlides","slickFilter","focusHandler","$sf","getCurrent","slickCurrentSlide","breakPoint","counter","pagerQty","getLeft","verticalHeight","targetSlide","coef","verticalOffset","offsetLeft","getOption","slickGetOption","indexes","getSlick","getSlideCount","swipedSlide","centerOffset","goTo","slickGoTo","creation","setProps","startLoad","loadSlider","initializeEvents","updateArrows","initADA","numDotGroups","tabControlIndexes","slideControlIndex","ariaButtonControl","mappedSlideIndex","initArrowEvents","initDotEvents","initSlideEvents","initUI","loadRange","rangeStart","rangeEnd","loadImages","imagesScope","imageSource","imageSrcSet","imageSizes","imageToLoad","prevSlide","progressiveLazyLoad","slickNext","slickPause","slickPlay","postSlide","slickPrev","tryCount","$imgsToLoad","initializing","lastVisibleIndex","currentBreakpoint","responsiveSettings","windowDelay","removeSlide","slickRemove","removeBefore","removeAll","setCSS","positionProps","setDimensions","setFade","setHeight","setOption","slickSetOption","bodyStyle","msTransition","OTransform","perspectiveProperty","webkitPerspective","MozTransform","MozPerspective","webkitTransform","msTransform","allSlides","remainder","evenCoef","infiniteCount","targetElement","sync","animSlide","oldSlide","slideLeft","navTarget","swipeDirection","xDist","yDist","swipeAngle","startX","curX","startY","curY","atan2","swipeEnd","swipeLength","edgeHit","minSwipe","fingerCount","swipeStart","swipeMove","positionOffset","verticalSwipeLength","sqrt","unfilterSlides","slickUnfilter","fromBreakpoint"],"mappings":"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","file":"home.bundle.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 = 128);\n","/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\ndefine( [\n\t\"./var/arr\",\n\t\"./var/getProto\",\n\t\"./var/slice\",\n\t\"./var/flat\",\n\t\"./var/push\",\n\t\"./var/indexOf\",\n\t\"./var/class2type\",\n\t\"./var/toString\",\n\t\"./var/hasOwn\",\n\t\"./var/fnToString\",\n\t\"./var/ObjectFunctionString\",\n\t\"./var/support\",\n\t\"./var/isFunction\",\n\t\"./var/isWindow\",\n\t\"./core/DOMEval\",\n\t\"./core/toType\"\n], function( arr, getProto, slice, flat, push, indexOf,\n\tclass2type, toString, hasOwn, fnToString, ObjectFunctionString,\n\tsupport, isFunction, isWindow, DOMEval, toType ) {\n\n\"use strict\";\n\nvar version = \"3.7.1\",\n\n\trhtmlSuffix = /HTML$/i,\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\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\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\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\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\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\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\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\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\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\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();\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\" && !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\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || 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 ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\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\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\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\n\t// Retrieve the text value of an array of DOM nodes\n\ttext: function( elem ) {\n\t\tvar node,\n\t\t\tret = \"\",\n\t\t\ti = 0,\n\t\t\tnodeType = elem.nodeType;\n\n\t\tif ( !nodeType ) {\n\n\t\t\t// If no nodeType, this is expected to be an array\n\t\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t\t// Do not traverse comment nodes\n\t\t\t\tret += jQuery.text( node );\n\t\t\t}\n\t\t}\n\t\tif ( nodeType === 1 || nodeType === 11 ) {\n\t\t\treturn elem.textContent;\n\t\t}\n\t\tif ( nodeType === 9 ) {\n\t\t\treturn elem.documentElement.textContent;\n\t\t}\n\t\tif ( nodeType === 3 || nodeType === 4 ) {\n\t\t\treturn elem.nodeValue;\n\t\t}\n\n\t\t// Do not include comment or processing instruction nodes\n\n\t\treturn ret;\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\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\tisXMLDoc: function( elem ) {\n\t\tvar namespace = elem && elem.namespaceURI,\n\t\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t\t// Assume HTML when documentElement doesn't yet exist, such as inside\n\t\t// document fragments.\n\t\treturn !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\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 length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\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 flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\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\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (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 = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\n\nreturn jQuery;\n} );\n","define( function() {\n\t\"use strict\";\n\n\treturn function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n} );\n","define( function() {\n\t\"use strict\";\n\n\treturn window.document;\n} );\n","define( [\n\t\"./core\",\n\t\"./core/nodeName\",\n\t\"./var/arr\",\n\t\"./var/document\",\n\t\"./var/indexOf\",\n\t\"./var/hasOwn\",\n\t\"./var/pop\",\n\t\"./var/push\",\n\t\"./var/slice\",\n\t\"./var/sort\",\n\t\"./var/splice\",\n\t\"./var/whitespace\",\n\t\"./var/rtrimCSS\",\n\t\"./var/support\",\n\n\t// The following utils are attached directly to the jQuery object.\n\t\"./selector/contains\",\n\t\"./selector/escapeSelector\"\n], function( jQuery, nodeName, arr, document, indexOf, hasOwn, pop, push,\n\tslice, sort, splice, whitespace, rtrimCSS, support ) {\n\n\"use strict\";\n\nvar preferredDoc = document,\n\tpushNative = push;\n\n( function() {\n\nvar i,\n\tExpr,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\tpush = pushNative,\n\n\t// Local document vars\n\tdocument,\n\tdocumentElement,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\tmatches,\n\n\t// Instance-specific data\n\texpando = jQuery.expando,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = 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\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|\" +\n\t\t\"loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\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\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\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\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" +\n\t\twhitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\tID: new RegExp( \"^#(\" + identifier + \")\" ),\n\t\tCLASS: new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\tTAG: new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\tATTR: new RegExp( \"^\" + attributes ),\n\t\tPSEUDO: new RegExp( \"^\" + pseudos ),\n\t\tCHILD: new RegExp(\n\t\t\t\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\tbool: new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\tneedsContext: new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\tif ( nonHex ) {\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\treturn nonHex;\n\t\t}\n\n\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t// Support: IE <=11+\n\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t// surrogate pair\n\t\treturn high < 0 ?\n\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes; see `setDocument`.\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE/Edge.\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && nodeName( elem, \"fieldset\" );\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\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\n\t// Support: Android <=4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = {\n\t\tapply: function( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t},\n\t\tcall: function( target ) {\n\t\t\tpushNative.apply( target, slice.call( arguments, 1 ) );\n\t\t}\n\t};\n}\n\nfunction find( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tfind.contains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( !nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when\n\t\t\t\t\t// strict-comparing two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( newContext != context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = jQuery.escapeSelector( nid );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\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\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\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( rtrimCSS, \"$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\n\t\t// Use (key + \" \") to avoid collision with native prototype properties\n\t\t// (see https://github.com/jquery/sizzle/issues/157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\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 jQuery selector module\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 element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\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\treturn nodeName( elem, \"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\treturn ( nodeName( elem, \"input\" ) || nodeName( elem, \"button\" ) ) &&\n\t\t\telem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11+\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\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 jQuery selector 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/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [node] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nfunction setDocument( node ) {\n\tvar subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocumentElement = document.documentElement;\n\tdocumentIsHTML = !jQuery.isXMLDoc( document );\n\n\t// Support: iOS 7 only, IE 9 - 11+\n\t// Older browsers didn't support unprefixed `matches`.\n\tmatches = documentElement.matches ||\n\t\tdocumentElement.webkitMatchesSelector ||\n\t\tdocumentElement.msMatchesSelector;\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors\n\t// (see trac-13936).\n\t// Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`,\n\t// all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well.\n\tif ( documentElement.msMatchesSelector &&\n\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tpreferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t\tsubWindow.addEventListener( \"unload\", unloadHandler );\n\t}\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 programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocumentElement.appendChild( el ).id = jQuery.expando;\n\t\treturn !document.getElementsByName ||\n\t\t\t!document.getElementsByName( jQuery.expando ).length;\n\t} );\n\n\t// Support: IE 9 only\n\t// Check to see if it's possible to do matchesSelector\n\t// on a disconnected node.\n\tsupport.disconnectedMatch = assert( function( el ) {\n\t\treturn matches.call( el, \"*\" );\n\t} );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// IE/Edge don't support the :scope pseudo-class.\n\tsupport.scope = assert( function() {\n\t\treturn document.querySelectorAll( \":scope\" );\n\t} );\n\n\t// Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only\n\t// Make sure the `:has()` argument is parsed unforgivingly.\n\t// We include `*` in the test to detect buggy implementations that are\n\t// _selectively_ forgiving (specifically when the list includes at least\n\t// one valid selector).\n\t// Note that we treat complete lack of support for `:has()` as if it were\n\t// spec-compliant support, which is fine because use of `:has()` in such\n\t// environments will fail in the qSA path and fall back to jQuery traversal\n\t// anyway.\n\tsupport.cssHas = assert( function() {\n\t\ttry {\n\t\t\tdocument.querySelector( \":has(*,:jqfake)\" );\n\t\t\treturn false;\n\t\t} catch ( e ) {\n\t\t\treturn true;\n\t\t}\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\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\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\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\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find.TAG = function( tag, context ) {\n\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t// DocumentFragment nodes don't have gEBTN\n\t\t} else {\n\t\t\treturn context.querySelectorAll( tag );\n\t\t}\n\t};\n\n\t// Class\n\tExpr.find.CLASS = function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && 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\trbuggyQSA = [];\n\n\t// Build QSA regex\n\t// Regex strategy adopted from Diego Perini\n\tassert( function( el ) {\n\n\t\tvar input;\n\n\t\tdocumentElement.appendChild( el ).innerHTML =\n\t\t\t\"\" +\n\t\t\t\"\";\n\n\t\t// Support: iOS <=7 - 8 only\n\t\t// Boolean attributes and \"value\" are not treated correctly in some XML documents\n\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t}\n\n\t\t// Support: iOS <=7 - 8 only\n\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\trbuggyQSA.push( \"~=\" );\n\t\t}\n\n\t\t// Support: iOS 8 only\n\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t}\n\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\trbuggyQSA.push( \":checked\" );\n\t\t}\n\n\t\t// Support: Windows 8 Native Apps\n\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tdocumentElement.appendChild( el ).disabled = true;\n\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t}\n\n\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t// Adding a temporary attribute to the document before the selection works\n\t\t// around the issue.\n\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"name\", \"\" );\n\t\tel.appendChild( input );\n\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t}\n\t} );\n\n\tif ( !support.cssHas ) {\n\n\t\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t\t// Our regular `try-catch` mechanism fails to detect natively-unsupported\n\t\t// pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n\t\t// in browsers that parse the `:has()` argument as a forgiving selector list.\n\t\t// https://drafts.csswg.org/selectors/#relational now requires the argument\n\t\t// to be parsed unforgivingly, but browsers have not yet fully adjusted.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = function( 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\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\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\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a === document || a.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b === document || b.ownerDocument == preferredDoc &&\n\t\t\t\tfind.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.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t};\n\n\treturn document;\n}\n\nfind.matches = function( expr, elements ) {\n\treturn find( expr, null, null, elements );\n};\n\nfind.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( documentIsHTML &&\n\t\t!nonnativeSelectorCache[ 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\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\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn find( expr, document, null, [ elem ] ).length > 0;\n};\n\nfind.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn jQuery.contains( context, elem );\n};\n\n\nfind.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (see trac-13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\tif ( val !== undefined ) {\n\t\treturn val;\n\t}\n\n\treturn elem.getAttribute( name );\n};\n\nfind.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 */\njQuery.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\t//\n\t// Support: Android <=4.0+\n\t// Testing for detecting duplicates is unpredictable so instead assume we can't\n\t// depend on duplicate detection in all browsers without a stable sort.\n\thasDuplicate = !support.sortStable;\n\tsortInput = !support.sortStable && slice.call( results, 0 );\n\tsort.call( results, 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\tsplice.call( results, 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\njQuery.fn.uniqueSort = function() {\n\treturn this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );\n};\n\nExpr = jQuery.expr = {\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\tATTR: 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 ] || \"\" )\n\t\t\t\t.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\tCHILD: function( match ) {\n\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\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tfind.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 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" )\n\t\t\t\t);\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\tfind.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\tPSEUDO: 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\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\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\tTAG: function( nodeNameSelector ) {\n\t\t\tvar expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn nodeName( elem, expectedNodeName );\n\t\t\t\t};\n\t\t},\n\n\t\tCLASS: 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 +\n\t\t\t\t\t\"(\" + whitespace + \"|$)\" ) ) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\tATTR: function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = find.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\tif ( operator === \"=\" ) {\n\t\t\t\t\treturn result === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"!=\" ) {\n\t\t\t\t\treturn result !== check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"^=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) === 0;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"*=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"$=\" ) {\n\t\t\t\t\treturn check && result.slice( -check.length ) === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"~=\" ) {\n\t\t\t\t\treturn ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" )\n\t\t\t\t\t\t.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"|=\" ) {\n\t\t\t\t\treturn result === check || result.slice( 0, check.length + 1 ) === check + \"-\";\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t};\n\t\t},\n\n\t\tCHILD: 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, 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\t\t\t\t\t\tdiff = false;\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 ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\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\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\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 = nodeIndex && 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} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\t\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\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\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\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\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\t\t\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\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\tPSEUDO: function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// https://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\tfind.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 jQuery 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.call( 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\n\t\t// Potentially complex pseudos\n\t\tnot: markFunction( function( selector ) {\n\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( rtrimCSS, \"$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\n\t\t\t\t\t// Don't keep the element\n\t\t\t\t\t// (see https://github.com/jquery/sizzle/issues/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\thas: markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn find( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\tcontains: markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || jQuery.text( 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// https://www.w3.org/TR/selectors/#lang-pseudo\n\t\tlang: markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tfind.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\ttarget: 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\troot: function( elem ) {\n\t\t\treturn elem === documentElement;\n\t\t},\n\n\t\tfocus: function( elem ) {\n\t\t\treturn elem === safeActiveElement() &&\n\t\t\t\tdocument.hasFocus() &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\tenabled: createDisabledPseudo( false ),\n\t\tdisabled: createDisabledPseudo( true ),\n\n\t\tchecked: function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\treturn ( nodeName( elem, \"input\" ) && !!elem.checked ) ||\n\t\t\t\t( nodeName( elem, \"option\" ) && !!elem.selected );\n\t\t},\n\n\t\tselected: function( elem ) {\n\n\t\t\t// Support: IE <=11+\n\t\t\t// Accessing the selectedIndex property\n\t\t\t// forces the browser to treat the default option as\n\t\t\t// selected when in an optgroup.\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\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\tempty: function( elem ) {\n\n\t\t\t// https://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\tparent: function( elem ) {\n\t\t\treturn !Expr.pseudos.empty( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\theader: function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\tinput: function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\tbutton: function( elem ) {\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"button\" ||\n\t\t\t\tnodeName( elem, \"button\" );\n\t\t},\n\n\t\ttext: function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"text\" &&\n\n\t\t\t\t// Support: IE <10 only\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear\n\t\t\t\t// with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\tfirst: createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\tlast: createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\teq: createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\teven: 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\todd: 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\tlt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i;\n\n\t\t\tif ( argument < 0 ) {\n\t\t\t\ti = argument + length;\n\t\t\t} else if ( argument > length ) {\n\t\t\t\ti = length;\n\t\t\t} else {\n\t\t\t\ti = argument;\n\t\t\t}\n\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\tgt: 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\nfunction tokenize( 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\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 = rleadingCombinator.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrimCSS, \" \" )\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\tif ( parseOnly ) {\n\t\treturn soFar.length;\n\t}\n\n\treturn soFar ?\n\t\tfind.error( selector ) :\n\n\t\t// Cache the tokens\n\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\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\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\treturn false;\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 combinator 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\n\t\t\t\t\t\tif ( skip && nodeName( elem, skip ) ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = outerCache[ key ] ) &&\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\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[ key ] = 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\treturn false;\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\tfind( 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, matcherOut,\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 ||\n\t\t\t\tmultipleContexts( selector || \"*\",\n\t\t\t\t\tcontext.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\tif ( matcher ) {\n\n\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter\n\t\t\t// or preexisting results,\n\t\t\tmatcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t[] :\n\n\t\t\t\t// ...otherwise use results directly\n\t\t\t\tresults;\n\n\t\t\t// Find primary matches\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t} else {\n\t\t\tmatcherOut = matcherIn;\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\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\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.call( 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.call( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\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\n\t\t\t// Avoid hanging onto element\n\t\t\t// (see https://github.com/jquery/sizzle/issues/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\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\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 )\n\t\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrimCSS, \"$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\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\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\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: iOS <=7 - 9 only\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching\n\t\t\t// elements by id. (see trac-14142)\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\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tpush.call( results, 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\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// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\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\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\tjQuery.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\nfunction compile( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\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,\n\t\t\tmatcherFromGroupMatchers( 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 jQuery's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with jQuery selector compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nfunction select( 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 only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound 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\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find.ID(\n\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\tcontext\n\t\t\t) || [] )[ 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\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 ) &&\n\t\t\t\t\t\ttestContext( 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\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n}\n\n// One-time assignments\n\n// Support: Android <=4.0 - 4.1+\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Android <=4.0 - 4.1+\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\njQuery.find = find;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.unique = jQuery.uniqueSort;\n\n// These have always been private, but they used to be documented as part of\n// Sizzle so let's maintain them for now for backwards compatibility purposes.\nfind.compile = compile;\nfind.select = select;\nfind.setDocument = setDocument;\nfind.tokenize = tokenize;\n\nfind.escape = jQuery.escapeSelector;\nfind.getText = jQuery.text;\nfind.isXML = jQuery.isXMLDoc;\nfind.selectors = jQuery.expr;\nfind.support = jQuery.support;\nfind.uniqueSort = jQuery.uniqueSort;\n\n\t/* eslint-enable */\n\n} )();\n\n} );\n","// Initialize a jQuery object\ndefine( [\n\t\"../core\",\n\t\"../var/document\",\n\t\"../var/isFunction\",\n\t\"./var/rsingleTag\",\n\n\t\"../traversing/findFilter\"\n], function( jQuery, document, isFunction, rsingleTag ) {\n\n\"use strict\";\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 to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\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// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\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\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 ( 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\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\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 || root ).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[ 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 ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\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\nreturn init;\n\n} );\n","define( function() {\n\t\"use strict\";\n\n\treturn [];\n} );\n","define( function() {\n\n\"use strict\";\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\n\nreturn nodeName;\n\n} );\n","define( [\n\t\"../Data\"\n], function( Data ) {\n\t\"use strict\";\n\n\treturn new Data();\n} );\n","define( function() {\n\t\"use strict\";\n\n\t// Only count HTML whitespace\n\t// Other whitespace should count in values\n\t// https://infra.spec.whatwg.org/#ascii-whitespace\n\treturn ( /[^\\x20\\t\\r\\n\\f]+/g );\n} );\n","define( function() {\n\t\"use strict\";\n\n\t// All support tests are defined in their respective modules.\n\treturn {};\n} );\n","define( [\n\t\"../core\",\n\t\"../core/toType\",\n\t\"../var/isFunction\"\n], function( jQuery, toType, isFunction ) {\n\n\"use strict\";\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar 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 ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( 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 ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\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(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\nreturn access;\n\n} );\n","define( [\n\t\"./core\",\n\t\"./var/document\",\n\t\"./var/isFunction\",\n\t\"./var/rnothtmlwhite\",\n\t\"./ajax/var/location\",\n\t\"./ajax/var/nonce\",\n\t\"./ajax/var/rquery\",\n\n\t\"./core/init\",\n\t\"./core/parseXML\",\n\t\"./event/trigger\",\n\t\"./deferred\",\n\t\"./serialize\" // jQuery.param\n], function( jQuery, document, isFunction, rnothtmlwhite, location, nonce, rquery ) {\n\n\"use strict\";\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\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 (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\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( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\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\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\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 trac-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\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\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\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\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\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 {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\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\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: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\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: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\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\": JSON.parse,\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\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\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 &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\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 ( completed ) {\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() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( 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.join( \", \" );\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 completed ? 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\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || 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 ( completed == null ) {\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 ( completed ) {\n\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} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\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}\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 );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\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 ( completed ) {\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 (trac-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\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-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 or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\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 ] ] +\n\t\t\t\t\t( 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 &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\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\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\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\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.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\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\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// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( 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// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\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\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\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\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\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}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\nreturn jQuery;\n} );\n","define( [\n\t\"../var/class2type\",\n\t\"../var/toString\"\n], function( class2type, toString ) {\n\n\"use strict\";\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n\nreturn toType;\n} );\n","define( [\n\t\"./core\",\n\t\"./var/getProto\",\n\t\"./var/indexOf\",\n\t\"./traversing/var/dir\",\n\t\"./traversing/var/siblings\",\n\t\"./traversing/var/rneedsContext\",\n\t\"./core/nodeName\",\n\n\t\"./core/init\",\n\t\"./traversing/findFilter\",\n\t\"./selector\"\n], function( jQuery, getProto, indexOf, dir, siblings, rneedsContext, nodeName ) {\n\n\"use strict\";\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\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.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\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to jQuery#find\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\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 this.pushStack( matched.length > 1 ? jQuery.uniqueSort( 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.uniqueSort(\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 dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn 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 dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn 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\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( 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} );\n\nreturn jQuery;\n} );\n","define( [\n\t\"./core\",\n\t\"./var/isFunction\",\n\t\"./var/slice\",\n\t\"./callbacks\"\n], function( jQuery, isFunction, slice ) {\n\n\"use strict\";\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\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\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\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 && 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.progress( newDefer.notify )\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} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\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\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.error );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the error, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getErrorHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getErrorHook();\n\n\t\t\t\t\t\t\t\t// The deprecated alias of the above. While the name suggests\n\t\t\t\t\t\t\t\t// returning the stack, not an error instance, jQuery just passes\n\t\t\t\t\t\t\t\t// it directly to `console.warn` so both will work; an instance\n\t\t\t\t\t\t\t\t// just better cooperates with source maps.\n\t\t\t\t\t\t\t\t} else if ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\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 jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\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// 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[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = 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(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\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( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\nreturn jQuery;\n} );\n","define( [\n\t\"./core\",\n\t\"./selector\",\n\t\"./traversing\",\n\t\"./callbacks\",\n\t\"./deferred\",\n\t\"./deferred/exceptionHook\",\n\t\"./core/ready\",\n\t\"./data\",\n\t\"./queue\",\n\t\"./queue/delay\",\n\t\"./attributes\",\n\t\"./event\",\n\t\"./manipulation\",\n\t\"./manipulation/_evalUrl\",\n\t\"./wrap\",\n\t\"./css\",\n\t\"./css/hiddenVisibleSelectors\",\n\t\"./serialize\",\n\t\"./ajax\",\n\t\"./ajax/xhr\",\n\t\"./ajax/script\",\n\t\"./ajax/jsonp\",\n\t\"./ajax/load\",\n\t\"./core/parseXML\",\n\t\"./core/parseHTML\",\n\t\"./effects\",\n\t\"./effects/animatedSelector\",\n\t\"./offset\",\n\t\"./dimensions\",\n\t\"./deprecated\",\n\t\"./exports/amd\",\n\t\"./exports/global\"\n], function( jQuery ) {\n\n\"use strict\";\n\nreturn jQuery;\n\n} );\n","define( [\n\t\"./arr\"\n], function( arr ) {\n\t\"use strict\";\n\n\treturn arr.slice;\n} );\n","define( function() {\n\t\"use strict\";\n\n\treturn function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n} );\n","define( [], function() {\n\n\"use strict\";\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (trac-9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\n\nreturn camelCase;\n\n} );\n","define( [\n\t\"./core\",\n\t\"./var/document\",\n\t\"./var/documentElement\",\n\t\"./var/isFunction\",\n\t\"./var/rnothtmlwhite\",\n\t\"./var/rcheckableType\",\n\t\"./var/slice\",\n\t\"./data/var/acceptData\",\n\t\"./data/var/dataPriv\",\n\t\"./core/nodeName\",\n\n\t\"./core/init\",\n\t\"./selector\"\n], function( jQuery, document, documentElement, isFunction, rnothtmlwhite,\n\trcheckableType, slice, acceptData, dataPriv, nodeName ) {\n\n\"use strict\";\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\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 = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\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// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, 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 = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\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 !== \"undefined\" && 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( rnothtmlwhite ) || [ \"\" ];\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 ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\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 = dataPriv.hasData( elem ) && dataPriv.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( rnothtmlwhite ) || [ \"\" ];\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 ] &&\n\t\t\t\tnew 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 ||\n\t\t\t\t\t\tselector === \"**\" && 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 ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\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 data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ 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\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\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++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.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 ||\n\t\t\t\t\t\thandleObj.handler ).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, handleObj, sel, matchedHandlers, matchedSelectors,\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\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\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 (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\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 ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\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\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", true );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( 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\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, isSetup ) {\n\n\t// Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !isSetup ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\tif ( !saved ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tdataPriv.set( this, type, false );\n\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering\n\t\t\t\t// the native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, jQuery.event.trigger(\n\t\t\t\t\tsaved[ 0 ],\n\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\tthis\n\t\t\t\t) );\n\n\t\t\t\t// Abort handling of the native event by all jQuery handlers while allowing\n\t\t\t\t// native handlers on the same element to run. On target, this is achieved\n\t\t\t\t// by stopping immediate propagation just on the jQuery event. However,\n\t\t\t\t// the native event is re-wrapped by a jQuery one on each level of the\n\t\t\t\t// propagation so the only way to stop it for jQuery is to stop it for\n\t\t\t\t// everyone via native `stopPropagation()`. This is not a problem for\n\t\t\t\t// focus/blur which don't bubble, but it does also stop click on checkboxes\n\t\t\t\t// and radios. We accept this limitation.\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.isImmediatePropagationStopped = returnTrue;\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\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\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\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 || Date.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// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\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 && !this.isSimulated ) {\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 && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\n\tfunction focusMappedHandler( nativeEvent ) {\n\t\tif ( document.documentMode ) {\n\n\t\t\t// Support: IE 11+\n\t\t\t// Attach a single focusin/focusout handler on the document while someone wants\n\t\t\t// focus/blur. This is because the former are synchronous in IE while the latter\n\t\t\t// are async. In other browsers, all those handlers are invoked synchronously.\n\n\t\t\t// `handle` from private data would already wrap the event, but we need\n\t\t\t// to change the `type` here.\n\t\t\tvar handle = dataPriv.get( this, \"handle\" ),\n\t\t\t\tevent = jQuery.event.fix( nativeEvent );\n\t\t\tevent.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n\t\t\tevent.isSimulated = true;\n\n\t\t\t// First, handle focusin/focusout\n\t\t\thandle( nativeEvent );\n\n\t\t\t// ...then, handle focus/blur\n\t\t\t//\n\t\t\t// focus/blur don't bubble while focusin/focusout do; simulate the former by only\n\t\t\t// invoking the handler at the lower level.\n\t\t\tif ( event.target === event.currentTarget ) {\n\n\t\t\t\t// The setup part calls `leverageNative`, which, in turn, calls\n\t\t\t\t// `jQuery.event.add`, so event handle will already have been set\n\t\t\t\t// by this point.\n\t\t\t\thandle( event );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// For non-IE browsers, attach a single capturing handler on the document\n\t\t\t// while someone wants focusin/focusout.\n\t\t\tjQuery.event.simulate( delegateType, nativeEvent.target,\n\t\t\t\tjQuery.event.fix( nativeEvent ) );\n\t\t}\n\t}\n\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\tvar attaches;\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, true );\n\n\t\t\tif ( document.documentMode ) {\n\n\t\t\t\t// Support: IE 9 - 11+\n\t\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\t\tattaches = dataPriv.get( this, delegateType );\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t}\n\t\t\t\tdataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );\n\t\t\t} else {\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tvar attaches;\n\n\t\t\tif ( document.documentMode ) {\n\t\t\t\tattaches = dataPriv.get( this, delegateType ) - 1;\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t\tdataPriv.remove( this, delegateType );\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.set( this, delegateType, attaches );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Return false to indicate standard teardown should be applied\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n\n\t// Support: Firefox <=44\n\t// Firefox doesn't have focus(in | out) events\n\t// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n\t//\n\t// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n\t// focus(in | out) events fire after focus & blur events,\n\t// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n\t// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\t//\n\t// Support: IE 9 - 11+\n\t// To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,\n\t// attach a single handler for both events in IE.\n\tjQuery.event.special[ delegateType ] = {\n\t\tsetup: function() {\n\n\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType );\n\n\t\t\t// Support: IE 9 - 11+\n\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.addEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t\tdataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );\n\t\t},\n\t\tteardown: function() {\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType ) - 1;\n\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.removeEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( dataHolder, delegateType );\n\t\t\t} else {\n\t\t\t\tdataPriv.set( dataHolder, delegateType, attaches );\n\t\t\t}\n\t\t}\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\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 mouseenter/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\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, 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\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 ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.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\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\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\nreturn jQuery;\n} );\n","define( [\n\t\"./core\",\n\t\"./core/access\",\n\t\"./core/camelCase\",\n\t\"./core/nodeName\",\n\t\"./var/rcssNum\",\n\t\"./css/var/rnumnonpx\",\n\t\"./css/var/rcustomProp\",\n\t\"./css/var/cssExpand\",\n\t\"./css/var/getStyles\",\n\t\"./css/var/swap\",\n\t\"./css/curCSS\",\n\t\"./css/adjustCSS\",\n\t\"./css/addGetHookIf\",\n\t\"./css/support\",\n\t\"./css/finalPropName\",\n\n\t\"./core/init\",\n\t\"./core/ready\",\n\t\"./selector\" // contains\n], function( jQuery, access, camelCase, nodeName, rcssNum, rnumnonpx,\n\trcustomProp, cssExpand, getStyles, swap, curCSS, adjustCSS, addGetHookIf,\n\tsupport, finalPropName ) {\n\n\"use strict\";\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// 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\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0,\n\t\tmarginDelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\t// Count margin delta separately to only add it after scroll gutter adjustment.\n\t\t// This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n\t\tif ( box === \"margin\" ) {\n\t\t\tmarginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta + marginDelta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\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\tanimationIterationCount: true,\n\t\taspectRatio: true,\n\t\tborderImageSlice: true,\n\t\tcolumnCount: true,\n\t\tflexGrow: true,\n\t\tflexShrink: true,\n\t\tfontWeight: true,\n\t\tgridArea: true,\n\t\tgridColumn: true,\n\t\tgridColumnEnd: true,\n\t\tgridColumnStart: true,\n\t\tgridRow: true,\n\t\tgridRowEnd: true,\n\t\tgridRowStart: true,\n\t\tlineHeight: true,\n\t\topacity: true,\n\t\torder: true,\n\t\torphans: true,\n\t\tscale: true,\n\t\twidows: true,\n\t\tzIndex: true,\n\t\tzoom: true,\n\n\t\t// SVG-related\n\t\tfillOpacity: true,\n\t\tfloodOpacity: true,\n\t\tstopOpacity: true,\n\t\tstrokeMiterlimit: true,\n\t\tstrokeOpacity: 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\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 = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\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 (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-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 (trac-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 was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\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 ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\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 = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\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 || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\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\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\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 ( prefix !== \"margin\" ) {\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 ( Array.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} );\n\nreturn jQuery;\n} );\n","define( [\n\t\"./arr\"\n], function( arr ) {\n\t\"use strict\";\n\n\treturn arr.indexOf;\n} );\n","define( function() {\n\t\"use strict\";\n\n\t// [[Class]] -> type pairs\n\treturn {};\n} );\n","define( [\n\t\"./class2type\"\n], function( class2type ) {\n\t\"use strict\";\n\n\treturn class2type.hasOwnProperty;\n} );\n","define( function() {\n\n\"use strict\";\n\n/**\n * Determines whether an object can have data\n */\nreturn function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n} );\n","define( [\n\t\"../core\",\n\t\"../var/documentElement\",\n\t\"../selector/contains\" // jQuery.contains\n], function( jQuery, documentElement ) {\n\t\"use strict\";\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\n\n\treturn isAttached;\n} );\n","define( [\n\t\"./document\"\n], function( document ) {\n\t\"use strict\";\n\n\treturn document.documentElement;\n} );\n","define( [\n\t\"./core\",\n\t\"./core/isAttached\",\n\t\"./var/flat\",\n\t\"./var/isFunction\",\n\t\"./var/push\",\n\t\"./var/rcheckableType\",\n\t\"./core/access\",\n\t\"./manipulation/var/rtagName\",\n\t\"./manipulation/var/rscriptType\",\n\t\"./manipulation/wrapMap\",\n\t\"./manipulation/getAll\",\n\t\"./manipulation/setGlobalEval\",\n\t\"./manipulation/buildFragment\",\n\t\"./manipulation/support\",\n\n\t\"./data/var/dataPriv\",\n\t\"./data/var/dataUser\",\n\t\"./data/var/acceptData\",\n\t\"./core/DOMEval\",\n\t\"./core/nodeName\",\n\n\t\"./core/init\",\n\t\"./traversing\",\n\t\"./selector\",\n\t\"./event\"\n], function( jQuery, isAttached, flat, isFunction, push, rcheckableType,\n\taccess, rtagName, rscriptType,\n\twrapMap, getAll, setGlobalEval, buildFragment, support,\n\tdataPriv, dataUser, acceptData, DOMEval, nodeName ) {\n\n\"use strict\";\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\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\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, 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 ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle 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 ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\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\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Re-enable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\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\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\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 collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( 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 jQuery#find here for performance reasons:\n\t\t\t// https://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\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\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 ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\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\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\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 domManip( this, 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 domManip( this, 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 domManip( this, 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 domManip( this, 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\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 = jQuery.htmlPrefilter( value );\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 ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\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: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\n\nreturn jQuery;\n} );\n","define( [\n\t\"./arr\"\n], function( arr ) {\n\t\"use strict\";\n\n\treturn arr.push;\n} );\n","define( [\n\t\"./core\",\n\t\"./core/toType\",\n\t\"./var/isFunction\",\n\t\"./var/rnothtmlwhite\"\n], function( jQuery, toType, isFunction, rnothtmlwhite ) {\n\n\"use strict\";\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], 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\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\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\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\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\tif ( isFunction( arg ) ) {\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 && toType( arg ) !== \"string\" ) {\n\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\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\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\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 ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\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 ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\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\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\nreturn jQuery;\n} );\n","define( [\n\t\"./core\",\n\t\"./data/var/dataPriv\",\n\t\"./deferred\",\n\t\"./callbacks\"\n], function( jQuery, dataPriv ) {\n\n\"use strict\";\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 = dataPriv.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 || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.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 dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.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\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 = dataPriv.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} );\n\nreturn jQuery;\n} );\n","define( [\n\t\"./core\",\n\t\"./core/camelCase\",\n\t\"./var/document\",\n\t\"./var/isFunction\",\n\t\"./var/rcssNum\",\n\t\"./var/rnothtmlwhite\",\n\t\"./css/var/cssExpand\",\n\t\"./css/var/isHiddenWithinTree\",\n\t\"./css/adjustCSS\",\n\t\"./data/var/dataPriv\",\n\t\"./css/showHide\",\n\n\t\"./core/init\",\n\t\"./queue\",\n\t\"./deferred\",\n\t\"./traversing\",\n\t\"./manipulation\",\n\t\"./css\",\n\t\"./effects/Tween\"\n], function( jQuery, camelCase, document, isFunction, rcssNum, rnothtmlwhite, cssExpand,\n\tisHiddenWithinTree, adjustCSS, dataPriv, showHide ) {\n\n\"use strict\";\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.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 = ( Animation.tweeners[ prop ] || [] ).concat( Animation.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\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\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\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// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( 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// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\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\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\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// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\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 = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.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 = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\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\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-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\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\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, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, 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\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\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.notifyWith( elem, [ animation, 1, 0 ] );\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 = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.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\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\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\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\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.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\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\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 ( 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( isHiddenWithinTree ).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\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 || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\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 ) {\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 = dataPriv.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 &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\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 = dataPriv.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 = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\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\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\nreturn jQuery;\n} );\n","define( [\n\t\"../var/pnum\"\n], function( pnum ) {\n\n\"use strict\";\n\nreturn new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n} );\n","define( function() {\n\t\"use strict\";\n\n\treturn [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n} );\n","define( function() {\n\t\"use strict\";\n\n\treturn ( /^(?:checkbox|radio)$/i );\n} );\n","define( [\n\t\"../../var/pnum\"\n], function( pnum ) {\n\t\"use strict\";\n\n\treturn new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n} );\n","define( [\n\t\"../core\",\n\t\"../var/document\",\n\t\"../var/documentElement\",\n\t\"../var/support\"\n], function( jQuery, document, documentElement, support ) {\n\n\"use strict\";\n\n( function() {\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 computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"box-sizing:content-box;border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is `display: block`\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\nreturn support;\n\n} );\n","define( [\n\t\"../var/document\",\n\t\"../var/support\"\n], function( document, support ) {\n\n\"use strict\";\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: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\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\nreturn support;\n\n} );\n","define( [\n\t\"../var/rnothtmlwhite\"\n], function( rnothtmlwhite ) {\n\t\"use strict\";\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\treturn stripAndCollapse;\n} );\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","define( function() {\n\t\"use strict\";\n\n\treturn Object.getPrototypeOf;\n} );\n","define( [\n\t\"./arr\"\n], function( arr ) {\n\n\"use strict\";\n\n// Support: IE 9 - 11+, Edge 18+, Android Browser 4.0 - 4.3 only, iOS 7 - 11 only, Safari 11 only,\n// Firefox <= 61 only\n// Provide fallback for browsers without Array#flat.\nreturn arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n} );\n","define( [\n\t\"./class2type\"\n], function( class2type ) {\n\t\"use strict\";\n\n\treturn class2type.toString;\n} );\n","define( [\n\t\"./hasOwn\"\n], function( hasOwn ) {\n\t\"use strict\";\n\n\treturn hasOwn.toString;\n} );\n","define( [\n\t\"../var/document\"\n], function( document ) {\n\t\"use strict\";\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\treturn DOMEval;\n} );\n","define( function() {\n\n\"use strict\";\n\n// https://www.w3.org/TR/css3-selectors/#whitespace\nreturn \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n} );\n","define( [\n\t\"./whitespace\"\n], function( whitespace ) {\n\n\"use strict\";\n\nreturn new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n} );\n","define( [\n\t\"../core\"\n], function( jQuery ) {\n\n\"use strict\";\n\n// Note: an element does not contain itself\njQuery.contains = function( a, b ) {\n\tvar bup = b && b.parentNode;\n\n\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE doesn't have `contains` on SVG.\n\t\ta.contains ?\n\t\t\ta.contains( bup ) :\n\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t) );\n};\n\n} );\n","define( [\n\t\"../../core\",\n\t\"../../selector\"\n], function( jQuery ) {\n\t\"use strict\";\n\n\treturn jQuery.expr.match.needsContext;\n} );\n","define( function() {\n\t\"use strict\";\n\n\t// rsingleTag matches a string consisting of a single HTML element with no attributes\n\t// and captures the element's name\n\treturn ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n} );\n","define( [\n\t\"../core\",\n\t\"../var/indexOf\",\n\t\"../var/isFunction\",\n\t\"./var/rneedsContext\",\n\t\"../selector\"\n], function( jQuery, indexOf, isFunction, rneedsContext ) {\n\n\"use strict\";\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\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\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\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\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : 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","define( [\n\t\"../core\",\n\t\"../var/document\",\n\t\"../core/readyException\",\n\t\"../deferred\"\n], function( jQuery, document ) {\n\n\"use strict\";\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\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 trac-6781\n\treadyWait: 1,\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\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n} );\n","define( [\n\t\"../core\",\n\t\"../core/camelCase\",\n\t\"../var/rnothtmlwhite\",\n\t\"./var/acceptData\"\n], function( jQuery, camelCase, rnothtmlwhite, acceptData ) {\n\n\"use strict\";\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\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\treturn this.get( owner, 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,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\n\nreturn Data;\n} );\n","define( [\n\t\"../Data\"\n], function( Data ) {\n\t\"use strict\";\n\n\treturn new Data();\n} );\n","define( function() {\n\t\"use strict\";\n\n\treturn ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n} );\n","define( [\n\t\"../../core\",\n\t\"../../core/isAttached\"\n\n\t// css is assumed\n], function( jQuery, isAttached ) {\n\t\"use strict\";\n\n\t// isHiddenWithinTree reports if an element has a non-\"none\" display style (inline and/or\n\t// through the CSS cascade), which is useful in deciding whether or not to make it visible.\n\t// It differs from the :hidden selector (jQuery.expr.pseudos.hidden) in two important ways:\n\t// * A hidden ancestor does not force an element to be classified as hidden.\n\t// * Being disconnected from the document does not force an element to be classified as hidden.\n\t// These differences improve the behavior of .toggle() et al. when applied to elements that are\n\t// detached or contained within hidden ancestors (gh-2404, gh-2863).\n\treturn function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n} );\n","define( [\n\t\"../core\",\n\t\"../var/rcssNum\"\n], function( jQuery, rcssNum ) {\n\n\"use strict\";\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\nreturn adjustCSS;\n} );\n","define( function() {\n\t\"use strict\";\n\n\t// rtagName captures the name from the first start tag in a string of HTML\n\t// https://html.spec.whatwg.org/multipage/syntax.html#tag-open-state\n\t// https://html.spec.whatwg.org/multipage/syntax.html#tag-name-state\n\treturn ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n} );\n","define( function() {\n\t\"use strict\";\n\n\treturn ( /^$|^module$|\\/(?:java|ecma)script/i );\n} );\n","define( [\n\t\"./support\"\n], function( support ) {\n\n\"use strict\";\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\nreturn wrapMap;\n} );\n","define( [\n\t\"../var/document\",\n\t\"../var/support\"\n], function( document, support ) {\n\n\"use strict\";\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: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-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: Android <=4.1 only\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 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\nreturn support;\n\n} );\n","define( [\n\t\"../core\",\n\t\"../core/nodeName\"\n], function( jQuery, nodeName ) {\n\n\"use strict\";\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\nreturn getAll;\n} );\n","define( [\n\t\"../data/var/dataPriv\"\n], function( dataPriv ) {\n\n\"use strict\";\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\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\nreturn setGlobalEval;\n} );\n","define( [\n\t\"../core\",\n\t\"../core/toType\",\n\t\"../core/isAttached\",\n\t\"./var/rtagName\",\n\t\"./var/rscriptType\",\n\t\"./wrapMap\",\n\t\"./getAll\",\n\t\"./setGlobalEval\"\n], function( jQuery, toType, isAttached, rtagName, rscriptType, wrapMap, getAll, setGlobalEval ) {\n\n\"use strict\";\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\nreturn buildFragment;\n} );\n","define( function() {\n\n\"use strict\";\n\nreturn /^--/;\n\n} );\n","define( function() {\n\t\"use strict\";\n\n\treturn function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-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\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n} );\n","define( [\n\t\"../core\",\n\t\"../core/isAttached\",\n\t\"./var/rboxStyle\",\n\t\"./var/rnumnonpx\",\n\t\"./var/getStyles\",\n\t\"./var/rcustomProp\",\n\t\"../var/rtrimCSS\",\n\t\"./support\"\n], function( jQuery, isAttached, rboxStyle, rnumnonpx, getStyles,\n\trcustomProp, rtrimCSS, support ) {\n\n\"use strict\";\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105+, Chrome <=105+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace. Chrome just collapses\n\t\t\t// both leading & trailing whitespace to a single space.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.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\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\nreturn curCSS;\n} );\n","define( function() {\n\n\"use strict\";\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\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\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\nreturn addGetHookIf;\n\n} );\n","define( [\n\t\"../var/document\",\n\t\"../core\"\n], function( document, jQuery ) {\n\n\"use strict\";\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\nreturn finalPropName;\n\n} );\n","define( [\n\t\"../core\",\n\t\"../core/access\",\n\t\"./support\",\n\t\"../selector\"\n], function( jQuery, access, support ) {\n\n\"use strict\";\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/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\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\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\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\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\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\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","define( function() {\n\t\"use strict\";\n\n\treturn { guid: Date.now() };\n} );\n","define( function() {\n\t\"use strict\";\n\n\treturn ( /\\?/ );\n} );\n","define( [\n\t\"../core\"\n], function( jQuery ) {\n\n\"use strict\";\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\nreturn jQuery.parseXML;\n\n} );\n","define( [\n\t\"../core\",\n\t\"../var/document\",\n\t\"../data/var/dataPriv\",\n\t\"../data/var/acceptData\",\n\t\"../var/hasOwn\",\n\t\"../var/isFunction\",\n\t\"../var/isWindow\",\n\t\"../event\"\n], function( jQuery, document, dataPriv, acceptData, hasOwn, isFunction, isWindow ) {\n\n\"use strict\";\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\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 = lastElement = 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( \".\" ) > -1 ) {\n\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.rnamespace = 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 (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !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\t\t\tlastElement = cur;\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 = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.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 && 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 ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !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\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\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\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\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}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\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\nreturn jQuery;\n} );\n","define( [\n\t\"./core\",\n\t\"./core/toType\",\n\t\"./var/rcheckableType\",\n\t\"./var/isFunction\",\n\t\"./core/init\",\n\t\"./traversing\", // filter\n\t\"./attributes/prop\"\n], function( jQuery, toType, rcheckableType, isFunction ) {\n\n\"use strict\";\n\nvar\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 ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\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\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\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\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, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\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\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( \"&\" );\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\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} ).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} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\nreturn jQuery;\n} );\n","define( [\n\t\"../core\",\n\t\"../var/document\",\n\t\"./var/rsingleTag\",\n\t\"../manipulation/buildFragment\",\n\n\t// This is the only module that needs core/support\n\t\"./support\"\n], function( jQuery, document, rsingleTag, buildFragment, support ) {\n\n\"use strict\";\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = 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\nreturn jQuery.parseHTML;\n\n} );\n","/*!\n * jQuery Validation Plugin v1.21.0\n *\n * https://jqueryvalidation.org/\n *\n * Copyright (c) 2024 Jörn Zaefferer\n * Released under the MIT license\n */\n(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.extend( $.fn, {\n\n\t// https://jqueryvalidation.org/validate/\n\tvalidate: function( options ) {\n\n\t\t// If nothing is selected, return nothing; can't chain anyway\n\t\tif ( !this.length ) {\n\t\t\tif ( options && options.debug && window.console ) {\n\t\t\t\tconsole.warn( \"Nothing selected, can't validate, returning nothing.\" );\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if a validator for this form was already created\n\t\tvar validator = $.data( this[ 0 ], \"validator\" );\n\t\tif ( validator ) {\n\t\t\treturn validator;\n\t\t}\n\n\t\t// Add novalidate tag if HTML5.\n\t\tthis.attr( \"novalidate\", \"novalidate\" );\n\n\t\tvalidator = new $.validator( options, this[ 0 ] );\n\t\t$.data( this[ 0 ], \"validator\", validator );\n\n\t\tif ( validator.settings.onsubmit ) {\n\n\t\t\tthis.on( \"click.validate\", \":submit\", function( event ) {\n\n\t\t\t\t// Track the used submit button to properly handle scripted\n\t\t\t\t// submits later.\n\t\t\t\tvalidator.submitButton = event.currentTarget;\n\n\t\t\t\t// Allow suppressing validation by adding a cancel class to the submit button\n\t\t\t\tif ( $( this ).hasClass( \"cancel\" ) ) {\n\t\t\t\t\tvalidator.cancelSubmit = true;\n\t\t\t\t}\n\n\t\t\t\t// Allow suppressing validation by adding the html5 formnovalidate attribute to the submit button\n\t\t\t\tif ( $( this ).attr( \"formnovalidate\" ) !== undefined ) {\n\t\t\t\t\tvalidator.cancelSubmit = true;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Validate the form on submit\n\t\t\tthis.on( \"submit.validate\", function( event ) {\n\t\t\t\tif ( validator.settings.debug ) {\n\n\t\t\t\t\t// Prevent form submit to be able to see console output\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\n\t\t\t\tfunction handle() {\n\t\t\t\t\tvar hidden, result;\n\n\t\t\t\t\t// Insert a hidden input as a replacement for the missing submit button\n\t\t\t\t\t// The hidden input is inserted in two cases:\n\t\t\t\t\t// - A user defined a `submitHandler`\n\t\t\t\t\t// - There was a pending request due to `remote` method and `stopRequest()`\n\t\t\t\t\t// was called to submit the form in case it's valid\n\t\t\t\t\tif ( validator.submitButton && ( validator.settings.submitHandler || validator.formSubmitted ) ) {\n\t\t\t\t\t\thidden = $( \"\" )\n\t\t\t\t\t\t\t.attr( \"name\", validator.submitButton.name )\n\t\t\t\t\t\t\t.val( $( validator.submitButton ).val() )\n\t\t\t\t\t\t\t.appendTo( validator.currentForm );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( validator.settings.submitHandler && !validator.settings.debug ) {\n\t\t\t\t\t\tresult = validator.settings.submitHandler.call( validator, validator.currentForm, event );\n\t\t\t\t\t\tif ( hidden ) {\n\n\t\t\t\t\t\t\t// And clean up afterwards; thanks to no-block-scope, hidden can be referenced\n\t\t\t\t\t\t\thidden.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( result !== undefined ) {\n\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\t// Prevent submit for invalid forms or custom submit handlers\n\t\t\t\tif ( validator.cancelSubmit ) {\n\t\t\t\t\tvalidator.cancelSubmit = false;\n\t\t\t\t\treturn handle();\n\t\t\t\t}\n\t\t\t\tif ( validator.form() ) {\n\t\t\t\t\tif ( validator.pendingRequest ) {\n\t\t\t\t\t\tvalidator.formSubmitted = true;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn handle();\n\t\t\t\t} else {\n\t\t\t\t\tvalidator.focusInvalid();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn validator;\n\t},\n\n\t// https://jqueryvalidation.org/valid/\n\tvalid: function() {\n\t\tvar valid, validator, errorList;\n\n\t\tif ( $( this[ 0 ] ).is( \"form\" ) ) {\n\t\t\tvalid = this.validate().form();\n\t\t} else {\n\t\t\terrorList = [];\n\t\t\tvalid = true;\n\t\t\tvalidator = $( this[ 0 ].form ).validate();\n\t\t\tthis.each( function() {\n\t\t\t\tvalid = validator.element( this ) && valid;\n\t\t\t\tif ( !valid ) {\n\t\t\t\t\terrorList = errorList.concat( validator.errorList );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tvalidator.errorList = errorList;\n\t\t}\n\t\treturn valid;\n\t},\n\n\t// https://jqueryvalidation.org/rules/\n\trules: function( command, argument ) {\n\t\tvar element = this[ 0 ],\n\t\t\tisContentEditable = typeof this.attr( \"contenteditable\" ) !== \"undefined\" && this.attr( \"contenteditable\" ) !== \"false\",\n\t\t\tsettings, staticRules, existingRules, data, param, filtered;\n\n\t\t// If nothing is selected, return empty object; can't chain anyway\n\t\tif ( element == null ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !element.form && isContentEditable ) {\n\t\t\telement.form = this.closest( \"form\" )[ 0 ];\n\t\t\telement.name = this.attr( \"name\" );\n\t\t}\n\n\t\tif ( element.form == null ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( command ) {\n\t\t\tsettings = $.data( element.form, \"validator\" ).settings;\n\t\t\tstaticRules = settings.rules;\n\t\t\texistingRules = $.validator.staticRules( element );\n\t\t\tswitch ( command ) {\n\t\t\tcase \"add\":\n\t\t\t\t$.extend( existingRules, $.validator.normalizeRule( argument ) );\n\n\t\t\t\t// Remove messages from rules, but allow them to be set separately\n\t\t\t\tdelete existingRules.messages;\n\t\t\t\tstaticRules[ element.name ] = existingRules;\n\t\t\t\tif ( argument.messages ) {\n\t\t\t\t\tsettings.messages[ element.name ] = $.extend( settings.messages[ element.name ], argument.messages );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"remove\":\n\t\t\t\tif ( !argument ) {\n\t\t\t\t\tdelete staticRules[ element.name ];\n\t\t\t\t\treturn existingRules;\n\t\t\t\t}\n\t\t\t\tfiltered = {};\n\t\t\t\t$.each( argument.split( /\\s/ ), function( index, method ) {\n\t\t\t\t\tfiltered[ method ] = existingRules[ method ];\n\t\t\t\t\tdelete existingRules[ method ];\n\t\t\t\t} );\n\t\t\t\treturn filtered;\n\t\t\t}\n\t\t}\n\n\t\tdata = $.validator.normalizeRules(\n\t\t$.extend(\n\t\t\t{},\n\t\t\t$.validator.classRules( element ),\n\t\t\t$.validator.attributeRules( element ),\n\t\t\t$.validator.dataRules( element ),\n\t\t\t$.validator.staticRules( element )\n\t\t), element );\n\n\t\t// Make sure required is at front\n\t\tif ( data.required ) {\n\t\t\tparam = data.required;\n\t\t\tdelete data.required;\n\t\t\tdata = $.extend( { required: param }, data );\n\t\t}\n\n\t\t// Make sure remote is at back\n\t\tif ( data.remote ) {\n\t\t\tparam = data.remote;\n\t\t\tdelete data.remote;\n\t\t\tdata = $.extend( data, { remote: param } );\n\t\t}\n\n\t\treturn data;\n\t}\n} );\n\n// JQuery trim is deprecated, provide a trim method based on String.prototype.trim\nvar trim = function( str ) {\n\n\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trim#Polyfill\n\treturn str.replace( /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, \"\" );\n};\n\n// Custom selectors\n$.extend( $.expr.pseudos || $.expr[ \":\" ], {\t\t// '|| $.expr[ \":\" ]' here enables backwards compatibility to jQuery 1.7. Can be removed when dropping jQ 1.7.x support\n\n\t// https://jqueryvalidation.org/blank-selector/\n\tblank: function( a ) {\n\t\treturn !trim( \"\" + $( a ).val() );\n\t},\n\n\t// https://jqueryvalidation.org/filled-selector/\n\tfilled: function( a ) {\n\t\tvar val = $( a ).val();\n\t\treturn val !== null && !!trim( \"\" + val );\n\t},\n\n\t// https://jqueryvalidation.org/unchecked-selector/\n\tunchecked: function( a ) {\n\t\treturn !$( a ).prop( \"checked\" );\n\t}\n} );\n\n// Constructor for validator\n$.validator = function( options, form ) {\n\tthis.settings = $.extend( true, {}, $.validator.defaults, options );\n\tthis.currentForm = form;\n\tthis.init();\n};\n\n// https://jqueryvalidation.org/jQuery.validator.format/\n$.validator.format = function( source, params ) {\n\tif ( arguments.length === 1 ) {\n\t\treturn function() {\n\t\t\tvar args = $.makeArray( arguments );\n\t\t\targs.unshift( source );\n\t\t\treturn $.validator.format.apply( this, args );\n\t\t};\n\t}\n\tif ( params === undefined ) {\n\t\treturn source;\n\t}\n\tif ( arguments.length > 2 && params.constructor !== Array ) {\n\t\tparams = $.makeArray( arguments ).slice( 1 );\n\t}\n\tif ( params.constructor !== Array ) {\n\t\tparams = [ params ];\n\t}\n\t$.each( params, function( i, n ) {\n\t\tsource = source.replace( new RegExp( \"\\\\{\" + i + \"\\\\}\", \"g\" ), function() {\n\t\t\treturn n;\n\t\t} );\n\t} );\n\treturn source;\n};\n\n$.extend( $.validator, {\n\n\tdefaults: {\n\t\tmessages: {},\n\t\tgroups: {},\n\t\trules: {},\n\t\terrorClass: \"error\",\n\t\tpendingClass: \"pending\",\n\t\tvalidClass: \"valid\",\n\t\terrorElement: \"label\",\n\t\tfocusCleanup: false,\n\t\tfocusInvalid: true,\n\t\terrorContainer: $( [] ),\n\t\terrorLabelContainer: $( [] ),\n\t\tonsubmit: true,\n\t\tignore: \":hidden\",\n\t\tignoreTitle: false,\n\t\tcustomElements: [],\n\t\tonfocusin: function( element ) {\n\t\t\tthis.lastActive = element;\n\n\t\t\t// Hide error label and remove error class on focus if enabled\n\t\t\tif ( this.settings.focusCleanup ) {\n\t\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t\tthis.hideThese( this.errorsFor( element ) );\n\t\t\t}\n\t\t},\n\t\tonfocusout: function( element ) {\n\t\t\tif ( !this.checkable( element ) && ( element.name in this.submitted || !this.optional( element ) ) ) {\n\t\t\t\tthis.element( element );\n\t\t\t}\n\t\t},\n\t\tonkeyup: function( element, event ) {\n\n\t\t\t// Avoid revalidate the field when pressing one of the following keys\n\t\t\t// Shift => 16\n\t\t\t// Ctrl => 17\n\t\t\t// Alt => 18\n\t\t\t// Caps lock => 20\n\t\t\t// End => 35\n\t\t\t// Home => 36\n\t\t\t// Left arrow => 37\n\t\t\t// Up arrow => 38\n\t\t\t// Right arrow => 39\n\t\t\t// Down arrow => 40\n\t\t\t// Insert => 45\n\t\t\t// Num lock => 144\n\t\t\t// AltGr key => 225\n\t\t\tvar excludedKeys = [\n\t\t\t\t16, 17, 18, 20, 35, 36, 37,\n\t\t\t\t38, 39, 40, 45, 144, 225\n\t\t\t];\n\n\t\t\tif ( event.which === 9 && this.elementValue( element ) === \"\" || $.inArray( event.keyCode, excludedKeys ) !== -1 ) {\n\t\t\t\treturn;\n\t\t\t} else if ( element.name in this.submitted || element.name in this.invalid ) {\n\t\t\t\tthis.element( element );\n\t\t\t}\n\t\t},\n\t\tonclick: function( element ) {\n\n\t\t\t// Click on selects, radiobuttons and checkboxes\n\t\t\tif ( element.name in this.submitted ) {\n\t\t\t\tthis.element( element );\n\n\t\t\t// Or option elements, check parent select in that case\n\t\t\t} else if ( element.parentNode.name in this.submitted ) {\n\t\t\t\tthis.element( element.parentNode );\n\t\t\t}\n\t\t},\n\t\thighlight: function( element, errorClass, validClass ) {\n\t\t\tif ( element.type === \"radio\" ) {\n\t\t\t\tthis.findByName( element.name ).addClass( errorClass ).removeClass( validClass );\n\t\t\t} else {\n\t\t\t\t$( element ).addClass( errorClass ).removeClass( validClass );\n\t\t\t}\n\t\t},\n\t\tunhighlight: function( element, errorClass, validClass ) {\n\t\t\tif ( element.type === \"radio\" ) {\n\t\t\t\tthis.findByName( element.name ).removeClass( errorClass ).addClass( validClass );\n\t\t\t} else {\n\t\t\t\t$( element ).removeClass( errorClass ).addClass( validClass );\n\t\t\t}\n\t\t}\n\t},\n\n\t// https://jqueryvalidation.org/jQuery.validator.setDefaults/\n\tsetDefaults: function( settings ) {\n\t\t$.extend( $.validator.defaults, settings );\n\t},\n\n\tmessages: {\n\t\trequired: \"This field is required.\",\n\t\tremote: \"Please fix this field.\",\n\t\temail: \"Please enter a valid email address.\",\n\t\turl: \"Please enter a valid URL.\",\n\t\tdate: \"Please enter a valid date.\",\n\t\tdateISO: \"Please enter a valid date (ISO).\",\n\t\tnumber: \"Please enter a valid number.\",\n\t\tdigits: \"Please enter only digits.\",\n\t\tequalTo: \"Please enter the same value again.\",\n\t\tmaxlength: $.validator.format( \"Please enter no more than {0} characters.\" ),\n\t\tminlength: $.validator.format( \"Please enter at least {0} characters.\" ),\n\t\trangelength: $.validator.format( \"Please enter a value between {0} and {1} characters long.\" ),\n\t\trange: $.validator.format( \"Please enter a value between {0} and {1}.\" ),\n\t\tmax: $.validator.format( \"Please enter a value less than or equal to {0}.\" ),\n\t\tmin: $.validator.format( \"Please enter a value greater than or equal to {0}.\" ),\n\t\tstep: $.validator.format( \"Please enter a multiple of {0}.\" )\n\t},\n\n\tautoCreateRanges: false,\n\n\tprototype: {\n\n\t\tinit: function() {\n\t\t\tthis.labelContainer = $( this.settings.errorLabelContainer );\n\t\t\tthis.errorContext = this.labelContainer.length && this.labelContainer || $( this.currentForm );\n\t\t\tthis.containers = $( this.settings.errorContainer ).add( this.settings.errorLabelContainer );\n\t\t\tthis.submitted = {};\n\t\t\tthis.valueCache = {};\n\t\t\tthis.pendingRequest = 0;\n\t\t\tthis.pending = {};\n\t\t\tthis.invalid = {};\n\t\t\tthis.reset();\n\n\t\t\tvar currentForm = this.currentForm,\n\t\t\t\tgroups = ( this.groups = {} ),\n\t\t\t\trules;\n\t\t\t$.each( this.settings.groups, function( key, value ) {\n\t\t\t\tif ( typeof value === \"string\" ) {\n\t\t\t\t\tvalue = value.split( /\\s/ );\n\t\t\t\t}\n\t\t\t\t$.each( value, function( index, name ) {\n\t\t\t\t\tgroups[ name ] = key;\n\t\t\t\t} );\n\t\t\t} );\n\t\t\trules = this.settings.rules;\n\t\t\t$.each( rules, function( key, value ) {\n\t\t\t\trules[ key ] = $.validator.normalizeRule( value );\n\t\t\t} );\n\n\t\t\tfunction delegate( event ) {\n\t\t\t\tvar isContentEditable = typeof $( this ).attr( \"contenteditable\" ) !== \"undefined\" && $( this ).attr( \"contenteditable\" ) !== \"false\";\n\n\t\t\t\t// Set form expando on contenteditable\n\t\t\t\tif ( !this.form && isContentEditable ) {\n\t\t\t\t\tthis.form = $( this ).closest( \"form\" )[ 0 ];\n\t\t\t\t\tthis.name = $( this ).attr( \"name\" );\n\t\t\t\t}\n\n\t\t\t\t// Ignore the element if it belongs to another form. This will happen mainly\n\t\t\t\t// when setting the `form` attribute of an input to the id of another form.\n\t\t\t\tif ( currentForm !== this.form ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar validator = $.data( this.form, \"validator\" ),\n\t\t\t\t\teventType = \"on\" + event.type.replace( /^validate/, \"\" ),\n\t\t\t\t\tsettings = validator.settings;\n\t\t\t\tif ( settings[ eventType ] && !$( this ).is( settings.ignore ) ) {\n\t\t\t\t\tsettings[ eventType ].call( validator, this, event );\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar focusListeners = [ \":text\", \"[type='password']\", \"[type='file']\", \"select\", \"textarea\", \"[type='number']\", \"[type='search']\",\n\t\t\t\t\t\t\t\t\"[type='tel']\", \"[type='url']\", \"[type='email']\", \"[type='datetime']\", \"[type='date']\", \"[type='month']\",\n\t\t\t\t\t\t\t\t\"[type='week']\", \"[type='time']\", \"[type='datetime-local']\", \"[type='range']\", \"[type='color']\",\n\t\t\t\t\t\t\t\t\"[type='radio']\", \"[type='checkbox']\", \"[contenteditable]\", \"[type='button']\" ];\n\t\t\tvar clickListeners = [ \"select\", \"option\", \"[type='radio']\", \"[type='checkbox']\" ];\n\t\t\t$( this.currentForm )\n\t\t\t\t.on( \"focusin.validate focusout.validate keyup.validate\", focusListeners.concat( this.settings.customElements ).join( \", \" ), delegate )\n\n\t\t\t\t// Support: Chrome, oldIE\n\t\t\t\t// \"select\" is provided as event.target when clicking a option\n\t\t\t\t.on( \"click.validate\", clickListeners.concat( this.settings.customElements ).join( \", \" ), delegate );\n\n\t\t\tif ( this.settings.invalidHandler ) {\n\t\t\t\t$( this.currentForm ).on( \"invalid-form.validate\", this.settings.invalidHandler );\n\t\t\t}\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.form/\n\t\tform: function() {\n\t\t\tthis.checkForm();\n\t\t\t$.extend( this.submitted, this.errorMap );\n\t\t\tthis.invalid = $.extend( {}, this.errorMap );\n\t\t\tif ( !this.valid() ) {\n\t\t\t\t$( this.currentForm ).triggerHandler( \"invalid-form\", [ this ] );\n\t\t\t}\n\t\t\tthis.showErrors();\n\t\t\treturn this.valid();\n\t\t},\n\n\t\tcheckForm: function() {\n\t\t\tthis.prepareForm();\n\t\t\tfor ( var i = 0, elements = ( this.currentElements = this.elements() ); elements[ i ]; i++ ) {\n\t\t\t\tthis.check( elements[ i ] );\n\t\t\t}\n\t\t\treturn this.valid();\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.element/\n\t\telement: function( element ) {\n\t\t\tvar cleanElement = this.clean( element ),\n\t\t\t\tcheckElement = this.validationTargetFor( cleanElement ),\n\t\t\t\tv = this,\n\t\t\t\tresult = true,\n\t\t\t\trs, group;\n\n\t\t\tif ( checkElement === undefined ) {\n\t\t\t\tdelete this.invalid[ cleanElement.name ];\n\t\t\t} else {\n\t\t\t\tthis.prepareElement( checkElement );\n\t\t\t\tthis.currentElements = $( checkElement );\n\n\t\t\t\t// If this element is grouped, then validate all group elements already\n\t\t\t\t// containing a value\n\t\t\t\tgroup = this.groups[ checkElement.name ];\n\t\t\t\tif ( group ) {\n\t\t\t\t\t$.each( this.groups, function( name, testgroup ) {\n\t\t\t\t\t\tif ( testgroup === group && name !== checkElement.name ) {\n\t\t\t\t\t\t\tcleanElement = v.validationTargetFor( v.clean( v.findByName( name ) ) );\n\t\t\t\t\t\t\tif ( cleanElement && cleanElement.name in v.invalid ) {\n\t\t\t\t\t\t\t\tv.currentElements.push( cleanElement );\n\t\t\t\t\t\t\t\tresult = v.check( cleanElement ) && result;\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\trs = this.check( checkElement ) !== false;\n\t\t\t\tresult = result && rs;\n\t\t\t\tif ( rs ) {\n\t\t\t\t\tthis.invalid[ checkElement.name ] = false;\n\t\t\t\t} else {\n\t\t\t\t\tthis.invalid[ checkElement.name ] = true;\n\t\t\t\t}\n\n\t\t\t\tif ( !this.numberOfInvalids() ) {\n\n\t\t\t\t\t// Hide error containers on last error\n\t\t\t\t\tthis.toHide = this.toHide.add( this.containers );\n\t\t\t\t}\n\t\t\t\tthis.showErrors();\n\n\t\t\t\t// Add aria-invalid status for screen readers\n\t\t\t\t$( element ).attr( \"aria-invalid\", !rs );\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.showErrors/\n\t\tshowErrors: function( errors ) {\n\t\t\tif ( errors ) {\n\t\t\t\tvar validator = this;\n\n\t\t\t\t// Add items to error list and map\n\t\t\t\t$.extend( this.errorMap, errors );\n\t\t\t\tthis.errorList = $.map( this.errorMap, function( message, name ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tmessage: message,\n\t\t\t\t\t\telement: validator.findByName( name )[ 0 ]\n\t\t\t\t\t};\n\t\t\t\t} );\n\n\t\t\t\t// Remove items from success list\n\t\t\t\tthis.successList = $.grep( this.successList, function( element ) {\n\t\t\t\t\treturn !( element.name in errors );\n\t\t\t\t} );\n\t\t\t}\n\t\t\tif ( this.settings.showErrors ) {\n\t\t\t\tthis.settings.showErrors.call( this, this.errorMap, this.errorList );\n\t\t\t} else {\n\t\t\t\tthis.defaultShowErrors();\n\t\t\t}\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.resetForm/\n\t\tresetForm: function() {\n\t\t\tif ( $.fn.resetForm ) {\n\t\t\t\t$( this.currentForm ).resetForm();\n\t\t\t}\n\t\t\tthis.invalid = {};\n\t\t\tthis.submitted = {};\n\t\t\tthis.prepareForm();\n\t\t\tthis.hideErrors();\n\t\t\tvar elements = this.elements()\n\t\t\t\t.removeData( \"previousValue\" )\n\t\t\t\t.removeAttr( \"aria-invalid\" );\n\n\t\t\tthis.resetElements( elements );\n\t\t},\n\n\t\tresetElements: function( elements ) {\n\t\t\tvar i;\n\n\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\tfor ( i = 0; elements[ i ]; i++ ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, elements[ i ],\n\t\t\t\t\t\tthis.settings.errorClass, \"\" );\n\t\t\t\t\tthis.findByName( elements[ i ].name ).removeClass( this.settings.validClass );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\telements\n\t\t\t\t\t.removeClass( this.settings.errorClass )\n\t\t\t\t\t.removeClass( this.settings.validClass );\n\t\t\t}\n\t\t},\n\n\t\tnumberOfInvalids: function() {\n\t\t\treturn this.objectLength( this.invalid );\n\t\t},\n\n\t\tobjectLength: function( obj ) {\n\t\t\t/* jshint unused: false */\n\t\t\tvar count = 0,\n\t\t\t\ti;\n\t\t\tfor ( i in obj ) {\n\n\t\t\t\t// This check allows counting elements with empty error\n\t\t\t\t// message as invalid elements\n\t\t\t\tif ( obj[ i ] !== undefined && obj[ i ] !== null && obj[ i ] !== false ) {\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn count;\n\t\t},\n\n\t\thideErrors: function() {\n\t\t\tthis.hideThese( this.toHide );\n\t\t},\n\n\t\thideThese: function( errors ) {\n\t\t\terrors.not( this.containers ).text( \"\" );\n\t\t\tthis.addWrapper( errors ).hide();\n\t\t},\n\n\t\tvalid: function() {\n\t\t\treturn this.size() === 0;\n\t\t},\n\n\t\tsize: function() {\n\t\t\treturn this.errorList.length;\n\t\t},\n\n\t\tfocusInvalid: function() {\n\t\t\tif ( this.settings.focusInvalid ) {\n\t\t\t\ttry {\n\t\t\t\t\t$( this.findLastActive() || this.errorList.length && this.errorList[ 0 ].element || [] )\n\t\t\t\t\t.filter( \":visible\" )\n\t\t\t\t\t.trigger( \"focus\" )\n\n\t\t\t\t\t// Manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find\n\t\t\t\t\t.trigger( \"focusin\" );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// Ignore IE throwing errors when focusing hidden elements\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tfindLastActive: function() {\n\t\t\tvar lastActive = this.lastActive;\n\t\t\treturn lastActive && $.grep( this.errorList, function( n ) {\n\t\t\t\treturn n.element.name === lastActive.name;\n\t\t\t} ).length === 1 && lastActive;\n\t\t},\n\n\t\telements: function() {\n\t\t\tvar validator = this,\n\t\t\t\trulesCache = {},\n\t\t\t\tselectors = [ \"input\", \"select\", \"textarea\", \"[contenteditable]\" ];\n\n\t\t\t// Select all valid inputs inside the form (no submit or reset buttons)\n\t\t\treturn $( this.currentForm )\n\t\t\t.find( selectors.concat( this.settings.customElements ).join( \", \" ) )\n\t\t\t.not( \":submit, :reset, :image, :disabled\" )\n\t\t\t.not( this.settings.ignore )\n\t\t\t.filter( function() {\n\t\t\t\tvar name = this.name || $( this ).attr( \"name\" ); // For contenteditable\n\t\t\t\tvar isContentEditable = typeof $( this ).attr( \"contenteditable\" ) !== \"undefined\" && $( this ).attr( \"contenteditable\" ) !== \"false\";\n\n\t\t\t\tif ( !name && validator.settings.debug && window.console ) {\n\t\t\t\t\tconsole.error( \"%o has no name assigned\", this );\n\t\t\t\t}\n\n\t\t\t\t// Set form expando on contenteditable\n\t\t\t\tif ( isContentEditable ) {\n\t\t\t\t\tthis.form = $( this ).closest( \"form\" )[ 0 ];\n\t\t\t\t\tthis.name = name;\n\t\t\t\t}\n\n\t\t\t\t// Ignore elements that belong to other/nested forms\n\t\t\t\tif ( this.form !== validator.currentForm ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Select only the first element for each name, and only those with rules specified\n\t\t\t\tif ( name in rulesCache || !validator.objectLength( $( this ).rules() ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\trulesCache[ name ] = true;\n\t\t\t\treturn true;\n\t\t\t} );\n\t\t},\n\n\t\tclean: function( selector ) {\n\t\t\treturn $( selector )[ 0 ];\n\t\t},\n\n\t\terrors: function() {\n\t\t\tvar errorClass = this.settings.errorClass.split( \" \" ).join( \".\" );\n\t\t\treturn $( this.settings.errorElement + \".\" + errorClass, this.errorContext );\n\t\t},\n\n\t\tresetInternals: function() {\n\t\t\tthis.successList = [];\n\t\t\tthis.errorList = [];\n\t\t\tthis.errorMap = {};\n\t\t\tthis.toShow = $( [] );\n\t\t\tthis.toHide = $( [] );\n\t\t},\n\n\t\treset: function() {\n\t\t\tthis.resetInternals();\n\t\t\tthis.currentElements = $( [] );\n\t\t},\n\n\t\tprepareForm: function() {\n\t\t\tthis.reset();\n\t\t\tthis.toHide = this.errors().add( this.containers );\n\t\t},\n\n\t\tprepareElement: function( element ) {\n\t\t\tthis.reset();\n\t\t\tthis.toHide = this.errorsFor( element );\n\t\t},\n\n\t\telementValue: function( element ) {\n\t\t\tvar $element = $( element ),\n\t\t\t\ttype = element.type,\n\t\t\t\tisContentEditable = typeof $element.attr( \"contenteditable\" ) !== \"undefined\" && $element.attr( \"contenteditable\" ) !== \"false\",\n\t\t\t\tval, idx;\n\n\t\t\tif ( type === \"radio\" || type === \"checkbox\" ) {\n\t\t\t\treturn this.findByName( element.name ).filter( \":checked\" ).val();\n\t\t\t} else if ( type === \"number\" && typeof element.validity !== \"undefined\" ) {\n\t\t\t\treturn element.validity.badInput ? \"NaN\" : $element.val();\n\t\t\t}\n\n\t\t\tif ( isContentEditable ) {\n\t\t\t\tval = $element.text();\n\t\t\t} else {\n\t\t\t\tval = $element.val();\n\t\t\t}\n\n\t\t\tif ( type === \"file\" ) {\n\n\t\t\t\t// Modern browser (chrome & safari)\n\t\t\t\tif ( val.substr( 0, 12 ) === \"C:\\\\fakepath\\\\\" ) {\n\t\t\t\t\treturn val.substr( 12 );\n\t\t\t\t}\n\n\t\t\t\t// Legacy browsers\n\t\t\t\t// Unix-based path\n\t\t\t\tidx = val.lastIndexOf( \"/\" );\n\t\t\t\tif ( idx >= 0 ) {\n\t\t\t\t\treturn val.substr( idx + 1 );\n\t\t\t\t}\n\n\t\t\t\t// Windows-based path\n\t\t\t\tidx = val.lastIndexOf( \"\\\\\" );\n\t\t\t\tif ( idx >= 0 ) {\n\t\t\t\t\treturn val.substr( idx + 1 );\n\t\t\t\t}\n\n\t\t\t\t// Just the file name\n\t\t\t\treturn val;\n\t\t\t}\n\n\t\t\tif ( typeof val === \"string\" ) {\n\t\t\t\treturn val.replace( /\\r/g, \"\" );\n\t\t\t}\n\t\t\treturn val;\n\t\t},\n\n\t\tcheck: function( element ) {\n\t\t\telement = this.validationTargetFor( this.clean( element ) );\n\n\t\t\tvar rules = $( element ).rules(),\n\t\t\t\trulesCount = $.map( rules, function( n, i ) {\n\t\t\t\t\treturn i;\n\t\t\t\t} ).length,\n\t\t\t\tdependencyMismatch = false,\n\t\t\t\tval = this.elementValue( element ),\n\t\t\t\tresult, method, rule, normalizer;\n\n\t\t\t// Abort any pending Ajax request from a previous call to this method.\n\t\t\tthis.abortRequest( element );\n\n\t\t\t// Prioritize the local normalizer defined for this element over the global one\n\t\t\t// if the former exists, otherwise user the global one in case it exists.\n\t\t\tif ( typeof rules.normalizer === \"function\" ) {\n\t\t\t\tnormalizer = rules.normalizer;\n\t\t\t} else if (\ttypeof this.settings.normalizer === \"function\" ) {\n\t\t\t\tnormalizer = this.settings.normalizer;\n\t\t\t}\n\n\t\t\t// If normalizer is defined, then call it to retreive the changed value instead\n\t\t\t// of using the real one.\n\t\t\t// Note that `this` in the normalizer is `element`.\n\t\t\tif ( normalizer ) {\n\t\t\t\tval = normalizer.call( element, val );\n\n\t\t\t\t// Delete the normalizer from rules to avoid treating it as a pre-defined method.\n\t\t\t\tdelete rules.normalizer;\n\t\t\t}\n\n\t\t\tfor ( method in rules ) {\n\t\t\t\trule = { method: method, parameters: rules[ method ] };\n\t\t\t\ttry {\n\t\t\t\t\tresult = $.validator.methods[ method ].call( this, val, element, rule.parameters );\n\n\t\t\t\t\t// If a method indicates that the field is optional and therefore valid,\n\t\t\t\t\t// don't mark it as valid when there are no other rules\n\t\t\t\t\tif ( result === \"dependency-mismatch\" && rulesCount === 1 ) {\n\t\t\t\t\t\tdependencyMismatch = true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tdependencyMismatch = false;\n\n\t\t\t\t\tif ( result === \"pending\" ) {\n\t\t\t\t\t\tthis.toHide = this.toHide.not( this.errorsFor( element ) );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !result ) {\n\t\t\t\t\t\tthis.formatAndAdd( element, rule );\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} catch ( e ) {\n\t\t\t\t\tif ( this.settings.debug && window.console ) {\n\t\t\t\t\t\tconsole.log( \"Exception occurred when checking element \" + element.id + \", check the '\" + rule.method + \"' method.\", e );\n\t\t\t\t\t}\n\t\t\t\t\tif ( e instanceof TypeError ) {\n\t\t\t\t\t\te.message += \". Exception occurred when checking element \" + element.id + \", check the '\" + rule.method + \"' method.\";\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( dependencyMismatch ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( this.objectLength( rules ) ) {\n\t\t\t\tthis.successList.push( element );\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t// Return the custom message for the given element and validation method\n\t\t// specified in the element's HTML5 data attribute\n\t\t// return the generic message if present and no method specific message is present\n\t\tcustomDataMessage: function( element, method ) {\n\t\t\treturn $( element ).data( \"msg\" + method.charAt( 0 ).toUpperCase() +\n\t\t\t\tmethod.substring( 1 ).toLowerCase() ) || $( element ).data( \"msg\" );\n\t\t},\n\n\t\t// Return the custom message for the given element name and validation method\n\t\tcustomMessage: function( name, method ) {\n\t\t\tvar m = this.settings.messages[ name ];\n\t\t\treturn m && ( m.constructor === String ? m : m[ method ] );\n\t\t},\n\n\t\t// Return the first defined argument, allowing empty strings\n\t\tfindDefined: function() {\n\t\t\tfor ( var i = 0; i < arguments.length; i++ ) {\n\t\t\t\tif ( arguments[ i ] !== undefined ) {\n\t\t\t\t\treturn arguments[ i ];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\n\t\t// The second parameter 'rule' used to be a string, and extended to an object literal\n\t\t// of the following form:\n\t\t// rule = {\n\t\t// method: \"method name\",\n\t\t// parameters: \"the given method parameters\"\n\t\t// }\n\t\t//\n\t\t// The old behavior still supported, kept to maintain backward compatibility with\n\t\t// old code, and will be removed in the next major release.\n\t\tdefaultMessage: function( element, rule ) {\n\t\t\tif ( typeof rule === \"string\" ) {\n\t\t\t\trule = { method: rule };\n\t\t\t}\n\n\t\t\tvar message = this.findDefined(\n\t\t\t\t\tthis.customMessage( element.name, rule.method ),\n\t\t\t\t\tthis.customDataMessage( element, rule.method ),\n\n\t\t\t\t\t// 'title' is never undefined, so handle empty string as undefined\n\t\t\t\t\t!this.settings.ignoreTitle && element.title || undefined,\n\t\t\t\t\t$.validator.messages[ rule.method ],\n\t\t\t\t\t\"Warning: No message defined for \" + element.name + \"\"\n\t\t\t\t),\n\t\t\t\ttheregex = /\\$?\\{(\\d+)\\}/g;\n\t\t\tif ( typeof message === \"function\" ) {\n\t\t\t\tmessage = message.call( this, rule.parameters, element );\n\t\t\t} else if ( theregex.test( message ) ) {\n\t\t\t\tmessage = $.validator.format( message.replace( theregex, \"{$1}\" ), rule.parameters );\n\t\t\t}\n\n\t\t\treturn message;\n\t\t},\n\n\t\tformatAndAdd: function( element, rule ) {\n\t\t\tvar message = this.defaultMessage( element, rule );\n\n\t\t\tthis.errorList.push( {\n\t\t\t\tmessage: message,\n\t\t\t\telement: element,\n\t\t\t\tmethod: rule.method\n\t\t\t} );\n\n\t\t\tthis.errorMap[ element.name ] = message;\n\t\t\tthis.submitted[ element.name ] = message;\n\t\t},\n\n\t\taddWrapper: function( toToggle ) {\n\t\t\tif ( this.settings.wrapper ) {\n\t\t\t\ttoToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) );\n\t\t\t}\n\t\t\treturn toToggle;\n\t\t},\n\n\t\tdefaultShowErrors: function() {\n\t\t\tvar i, elements, error;\n\t\t\tfor ( i = 0; this.errorList[ i ]; i++ ) {\n\t\t\t\terror = this.errorList[ i ];\n\t\t\t\tif ( this.settings.highlight ) {\n\t\t\t\t\tthis.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t\tthis.showLabel( error.element, error.message );\n\t\t\t}\n\t\t\tif ( this.errorList.length ) {\n\t\t\t\tthis.toShow = this.toShow.add( this.containers );\n\t\t\t}\n\t\t\tif ( this.settings.success ) {\n\t\t\t\tfor ( i = 0; this.successList[ i ]; i++ ) {\n\t\t\t\t\tthis.showLabel( this.successList[ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\tfor ( i = 0, elements = this.validElements(); elements[ i ]; i++ ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, elements[ i ], this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.toHide = this.toHide.not( this.toShow );\n\t\t\tthis.hideErrors();\n\t\t\tthis.addWrapper( this.toShow ).show();\n\t\t},\n\n\t\tvalidElements: function() {\n\t\t\treturn this.currentElements.not( this.invalidElements() );\n\t\t},\n\n\t\tinvalidElements: function() {\n\t\t\treturn $( this.errorList ).map( function() {\n\t\t\t\treturn this.element;\n\t\t\t} );\n\t\t},\n\n\t\tshowLabel: function( element, message ) {\n\t\t\tvar place, group, errorID, v,\n\t\t\t\terror = this.errorsFor( element ),\n\t\t\t\telementID = this.idOrName( element ),\n\t\t\t\tdescribedBy = $( element ).attr( \"aria-describedby\" );\n\n\t\t\tif ( error.length ) {\n\n\t\t\t\t// Refresh error/success class\n\t\t\t\terror.removeClass( this.settings.validClass ).addClass( this.settings.errorClass );\n\n\t\t\t\t// Replace message on existing label\n\t\t\t\tif ( this.settings && this.settings.escapeHtml ) {\n\t\t\t\t\terror.text( message || \"\" );\n\t\t\t\t} else {\n\t\t\t\t\terror.html( message || \"\" );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Create error element\n\t\t\t\terror = $( \"<\" + this.settings.errorElement + \">\" )\n\t\t\t\t\t.attr( \"id\", elementID + \"-error\" )\n\t\t\t\t\t.addClass( this.settings.errorClass );\n\n\t\t\t\tif ( this.settings && this.settings.escapeHtml ) {\n\t\t\t\t\terror.text( message || \"\" );\n\t\t\t\t} else {\n\t\t\t\t\terror.html( message || \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Maintain reference to the element to be placed into the DOM\n\t\t\t\tplace = error;\n\t\t\t\tif ( this.settings.wrapper ) {\n\n\t\t\t\t\t// Make sure the element is visible, even in IE\n\t\t\t\t\t// actually showing the wrapped element is handled elsewhere\n\t\t\t\t\tplace = error.hide().show().wrap( \"<\" + this.settings.wrapper + \"/>\" ).parent();\n\t\t\t\t}\n\t\t\t\tif ( this.labelContainer.length ) {\n\t\t\t\t\tthis.labelContainer.append( place );\n\t\t\t\t} else if ( this.settings.errorPlacement ) {\n\t\t\t\t\tthis.settings.errorPlacement.call( this, place, $( element ) );\n\t\t\t\t} else {\n\t\t\t\t\tplace.insertAfter( element );\n\t\t\t\t}\n\n\t\t\t\t// Link error back to the element\n\t\t\t\tif ( error.is( \"label\" ) ) {\n\n\t\t\t\t\t// If the error is a label, then associate using 'for'\n\t\t\t\t\terror.attr( \"for\", elementID );\n\n\t\t\t\t\t// If the element is not a child of an associated label, then it's necessary\n\t\t\t\t\t// to explicitly apply aria-describedby\n\t\t\t\t} else if ( error.parents( \"label[for='\" + this.escapeCssMeta( elementID ) + \"']\" ).length === 0 ) {\n\t\t\t\t\terrorID = error.attr( \"id\" );\n\n\t\t\t\t\t// Respect existing non-error aria-describedby\n\t\t\t\t\tif ( !describedBy ) {\n\t\t\t\t\t\tdescribedBy = errorID;\n\t\t\t\t\t} else if ( !describedBy.match( new RegExp( \"\\\\b\" + this.escapeCssMeta( errorID ) + \"\\\\b\" ) ) ) {\n\n\t\t\t\t\t\t// Add to end of list if not already present\n\t\t\t\t\t\tdescribedBy += \" \" + errorID;\n\t\t\t\t\t}\n\t\t\t\t\t$( element ).attr( \"aria-describedby\", describedBy );\n\n\t\t\t\t\t// If this element is grouped, then assign to all elements in the same group\n\t\t\t\t\tgroup = this.groups[ element.name ];\n\t\t\t\t\tif ( group ) {\n\t\t\t\t\t\tv = this;\n\t\t\t\t\t\t$.each( v.groups, function( name, testgroup ) {\n\t\t\t\t\t\t\tif ( testgroup === group ) {\n\t\t\t\t\t\t\t\t$( \"[name='\" + v.escapeCssMeta( name ) + \"']\", v.currentForm )\n\t\t\t\t\t\t\t\t\t.attr( \"aria-describedby\", error.attr( \"id\" ) );\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\tif ( !message && this.settings.success ) {\n\t\t\t\terror.text( \"\" );\n\t\t\t\tif ( typeof this.settings.success === \"string\" ) {\n\t\t\t\t\terror.addClass( this.settings.success );\n\t\t\t\t} else {\n\t\t\t\t\tthis.settings.success( error, element );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.toShow = this.toShow.add( error );\n\t\t},\n\n\t\terrorsFor: function( element ) {\n\t\t\tvar name = this.escapeCssMeta( this.idOrName( element ) ),\n\t\t\t\tdescriber = $( element ).attr( \"aria-describedby\" ),\n\t\t\t\tselector = \"label[for='\" + name + \"'], label[for='\" + name + \"'] *\";\n\n\t\t\t// 'aria-describedby' should directly reference the error element\n\t\t\tif ( describer ) {\n\t\t\t\tselector = selector + \", #\" + this.escapeCssMeta( describer )\n\t\t\t\t\t.replace( /\\s+/g, \", #\" );\n\t\t\t}\n\n\t\t\treturn this\n\t\t\t\t.errors()\n\t\t\t\t.filter( selector );\n\t\t},\n\n\t\t// See https://api.jquery.com/category/selectors/, for CSS\n\t\t// meta-characters that should be escaped in order to be used with JQuery\n\t\t// as a literal part of a name/id or any selector.\n\t\tescapeCssMeta: function( string ) {\n\t\t\tif ( string === undefined ) {\n\t\t\t\treturn \"\";\n\t\t\t}\n\n\t\t\treturn string.replace( /([\\\\!\"#$%&'()*+,./:;<=>?@\\[\\]^`{|}~])/g, \"\\\\$1\" );\n\t\t},\n\n\t\tidOrName: function( element ) {\n\t\t\treturn this.groups[ element.name ] || ( this.checkable( element ) ? element.name : element.id || element.name );\n\t\t},\n\n\t\tvalidationTargetFor: function( element ) {\n\n\t\t\t// If radio/checkbox, validate first element in group instead\n\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\telement = this.findByName( element.name );\n\t\t\t}\n\n\t\t\t// Always apply ignore filter\n\t\t\treturn $( element ).not( this.settings.ignore )[ 0 ];\n\t\t},\n\n\t\tcheckable: function( element ) {\n\t\t\treturn ( /radio|checkbox/i ).test( element.type );\n\t\t},\n\n\t\tfindByName: function( name ) {\n\t\t\treturn $( this.currentForm ).find( \"[name='\" + this.escapeCssMeta( name ) + \"']\" );\n\t\t},\n\n\t\tgetLength: function( value, element ) {\n\t\t\tswitch ( element.nodeName.toLowerCase() ) {\n\t\t\tcase \"select\":\n\t\t\t\treturn $( \"option:selected\", element ).length;\n\t\t\tcase \"input\":\n\t\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\t\treturn this.findByName( element.name ).filter( \":checked\" ).length;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value.length;\n\t\t},\n\n\t\tdepend: function( param, element ) {\n\t\t\treturn this.dependTypes[ typeof param ] ? this.dependTypes[ typeof param ]( param, element ) : true;\n\t\t},\n\n\t\tdependTypes: {\n\t\t\t\"boolean\": function( param ) {\n\t\t\t\treturn param;\n\t\t\t},\n\t\t\t\"string\": function( param, element ) {\n\t\t\t\treturn !!$( param, element.form ).length;\n\t\t\t},\n\t\t\t\"function\": function( param, element ) {\n\t\t\t\treturn param( element );\n\t\t\t}\n\t\t},\n\n\t\toptional: function( element ) {\n\t\t\tvar val = this.elementValue( element );\n\t\t\treturn !$.validator.methods.required.call( this, val, element ) && \"dependency-mismatch\";\n\t\t},\n\n\t\telementAjaxPort: function( element ) {\n\t\t\treturn \"validate\" + element.name;\n\t\t},\n\n\t\tstartRequest: function( element ) {\n\t\t\tif ( !this.pending[ element.name ] ) {\n\t\t\t\tthis.pendingRequest++;\n\t\t\t\t$( element ).addClass( this.settings.pendingClass );\n\t\t\t\tthis.pending[ element.name ] = true;\n\t\t\t}\n\t\t},\n\n\t\tstopRequest: function( element, valid ) {\n\t\t\tthis.pendingRequest--;\n\n\t\t\t// Sometimes synchronization fails, make sure pendingRequest is never < 0\n\t\t\tif ( this.pendingRequest < 0 ) {\n\t\t\t\tthis.pendingRequest = 0;\n\t\t\t}\n\t\t\tdelete this.pending[ element.name ];\n\t\t\t$( element ).removeClass( this.settings.pendingClass );\n\t\t\tif ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() && this.pendingRequest === 0 ) {\n\t\t\t\t$( this.currentForm ).trigger( \"submit\" );\n\n\t\t\t\t// Remove the hidden input that was used as a replacement for the\n\t\t\t\t// missing submit button. The hidden input is added by `handle()`\n\t\t\t\t// to ensure that the value of the used submit button is passed on\n\t\t\t\t// for scripted submits triggered by this method\n\t\t\t\tif ( this.submitButton ) {\n\t\t\t\t\t$( \"input:hidden[name='\" + this.submitButton.name + \"']\", this.currentForm ).remove();\n\t\t\t\t}\n\n\t\t\t\tthis.formSubmitted = false;\n\t\t\t} else if ( !valid && this.pendingRequest === 0 && this.formSubmitted ) {\n\t\t\t\t$( this.currentForm ).triggerHandler( \"invalid-form\", [ this ] );\n\t\t\t\tthis.formSubmitted = false;\n\t\t\t}\n\t\t},\n\n\t\tabortRequest: function( element ) {\n\t\t\tvar port;\n\n\t\t\tif ( this.pending[ element.name ] ) {\n\t\t\t\tport = this.elementAjaxPort( element );\n\t\t\t\t$.ajaxAbort( port );\n\n\t\t\t\tthis.pendingRequest--;\n\n\t\t\t\t// Sometimes synchronization fails, make sure pendingRequest is never < 0\n\t\t\t\tif ( this.pendingRequest < 0 ) {\n\t\t\t\t\tthis.pendingRequest = 0;\n\t\t\t\t}\n\n\t\t\t\tdelete this.pending[ element.name ];\n\t\t\t\t$( element ).removeClass( this.settings.pendingClass );\n\t\t\t}\n\t\t},\n\n\t\tpreviousValue: function( element, method ) {\n\t\t\tmethod = typeof method === \"string\" && method || \"remote\";\n\n\t\t\treturn $.data( element, \"previousValue\" ) || $.data( element, \"previousValue\", {\n\t\t\t\told: null,\n\t\t\t\tvalid: true,\n\t\t\t\tmessage: this.defaultMessage( element, { method: method } )\n\t\t\t} );\n\t\t},\n\n\t\t// Cleans up all forms and elements, removes validator-specific events\n\t\tdestroy: function() {\n\t\t\tthis.resetForm();\n\n\t\t\t$( this.currentForm )\n\t\t\t\t.off( \".validate\" )\n\t\t\t\t.removeData( \"validator\" )\n\t\t\t\t.find( \".validate-equalTo-blur\" )\n\t\t\t\t\t.off( \".validate-equalTo\" )\n\t\t\t\t\t.removeClass( \"validate-equalTo-blur\" )\n\t\t\t\t.find( \".validate-lessThan-blur\" )\n\t\t\t\t\t.off( \".validate-lessThan\" )\n\t\t\t\t\t.removeClass( \"validate-lessThan-blur\" )\n\t\t\t\t.find( \".validate-lessThanEqual-blur\" )\n\t\t\t\t\t.off( \".validate-lessThanEqual\" )\n\t\t\t\t\t.removeClass( \"validate-lessThanEqual-blur\" )\n\t\t\t\t.find( \".validate-greaterThanEqual-blur\" )\n\t\t\t\t\t.off( \".validate-greaterThanEqual\" )\n\t\t\t\t\t.removeClass( \"validate-greaterThanEqual-blur\" )\n\t\t\t\t.find( \".validate-greaterThan-blur\" )\n\t\t\t\t\t.off( \".validate-greaterThan\" )\n\t\t\t\t\t.removeClass( \"validate-greaterThan-blur\" );\n\t\t}\n\n\t},\n\n\tclassRuleSettings: {\n\t\trequired: { required: true },\n\t\temail: { email: true },\n\t\turl: { url: true },\n\t\tdate: { date: true },\n\t\tdateISO: { dateISO: true },\n\t\tnumber: { number: true },\n\t\tdigits: { digits: true },\n\t\tcreditcard: { creditcard: true }\n\t},\n\n\taddClassRules: function( className, rules ) {\n\t\tif ( className.constructor === String ) {\n\t\t\tthis.classRuleSettings[ className ] = rules;\n\t\t} else {\n\t\t\t$.extend( this.classRuleSettings, className );\n\t\t}\n\t},\n\n\tclassRules: function( element ) {\n\t\tvar rules = {},\n\t\t\tclasses = $( element ).attr( \"class\" );\n\n\t\tif ( classes ) {\n\t\t\t$.each( classes.split( \" \" ), function() {\n\t\t\t\tif ( this in $.validator.classRuleSettings ) {\n\t\t\t\t\t$.extend( rules, $.validator.classRuleSettings[ this ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\treturn rules;\n\t},\n\n\tnormalizeAttributeRule: function( rules, type, method, value ) {\n\n\t\t// Convert the value to a number for number inputs, and for text for backwards compability\n\t\t// allows type=\"date\" and others to be compared as strings\n\t\tif ( /min|max|step/.test( method ) && ( type === null || /number|range|text/.test( type ) ) ) {\n\t\t\tvalue = Number( value );\n\n\t\t\t// Support Opera Mini, which returns NaN for undefined minlength\n\t\t\tif ( isNaN( value ) ) {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\t\t}\n\n\t\tif ( value || value === 0 ) {\n\t\t\trules[ method ] = value;\n\t\t} else if ( type === method && type !== \"range\" ) {\n\n\t\t\t// Exception: the jquery validate 'range' method\n\t\t\t// does not test for the html5 'range' type\n\t\t\trules[ type === \"date\" ? \"dateISO\" : method ] = true;\n\t\t}\n\t},\n\n\tattributeRules: function( element ) {\n\t\tvar rules = {},\n\t\t\t$element = $( element ),\n\t\t\ttype = element.getAttribute( \"type\" ),\n\t\t\tmethod, value;\n\n\t\tfor ( method in $.validator.methods ) {\n\n\t\t\t// Support for in both html5 and older browsers\n\t\t\tif ( method === \"required\" ) {\n\t\t\t\tvalue = element.getAttribute( method );\n\n\t\t\t\t// Some browsers return an empty string for the required attribute\n\t\t\t\t// and non-HTML5 browsers might have required=\"\" markup\n\t\t\t\tif ( value === \"\" ) {\n\t\t\t\t\tvalue = true;\n\t\t\t\t}\n\n\t\t\t\t// Force non-HTML5 browsers to return bool\n\t\t\t\tvalue = !!value;\n\t\t\t} else {\n\t\t\t\tvalue = $element.attr( method );\n\t\t\t}\n\n\t\t\tthis.normalizeAttributeRule( rules, type, method, value );\n\t\t}\n\n\t\t// 'maxlength' may be returned as -1, 2147483647 ( IE ) and 524288 ( safari ) for text inputs\n\t\tif ( rules.maxlength && /-1|2147483647|524288/.test( rules.maxlength ) ) {\n\t\t\tdelete rules.maxlength;\n\t\t}\n\n\t\treturn rules;\n\t},\n\n\tdataRules: function( element ) {\n\t\tvar rules = {},\n\t\t\t$element = $( element ),\n\t\t\ttype = element.getAttribute( \"type\" ),\n\t\t\tmethod, value;\n\n\t\tfor ( method in $.validator.methods ) {\n\t\t\tvalue = $element.data( \"rule\" + method.charAt( 0 ).toUpperCase() + method.substring( 1 ).toLowerCase() );\n\n\t\t\t// Cast empty attributes like `data-rule-required` to `true`\n\t\t\tif ( value === \"\" ) {\n\t\t\t\tvalue = true;\n\t\t\t}\n\n\t\t\tthis.normalizeAttributeRule( rules, type, method, value );\n\t\t}\n\t\treturn rules;\n\t},\n\n\tstaticRules: function( element ) {\n\t\tvar rules = {},\n\t\t\tvalidator = $.data( element.form, \"validator\" );\n\n\t\tif ( validator.settings.rules ) {\n\t\t\trules = $.validator.normalizeRule( validator.settings.rules[ element.name ] ) || {};\n\t\t}\n\t\treturn rules;\n\t},\n\n\tnormalizeRules: function( rules, element ) {\n\n\t\t// Handle dependency check\n\t\t$.each( rules, function( prop, val ) {\n\n\t\t\t// Ignore rule when param is explicitly false, eg. required:false\n\t\t\tif ( val === false ) {\n\t\t\t\tdelete rules[ prop ];\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( val.param || val.depends ) {\n\t\t\t\tvar keepRule = true;\n\t\t\t\tswitch ( typeof val.depends ) {\n\t\t\t\tcase \"string\":\n\t\t\t\t\tkeepRule = !!$( val.depends, element.form ).length;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"function\":\n\t\t\t\t\tkeepRule = val.depends.call( element, element );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif ( keepRule ) {\n\t\t\t\t\trules[ prop ] = val.param !== undefined ? val.param : true;\n\t\t\t\t} else {\n\t\t\t\t\t$.data( element.form, \"validator\" ).resetElements( $( element ) );\n\t\t\t\t\tdelete rules[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\t// Evaluate parameters\n\t\t$.each( rules, function( rule, parameter ) {\n\t\t\trules[ rule ] = typeof parameter === \"function\" && rule !== \"normalizer\" ? parameter( element ) : parameter;\n\t\t} );\n\n\t\t// Clean number parameters\n\t\t$.each( [ \"minlength\", \"maxlength\" ], function() {\n\t\t\tif ( rules[ this ] ) {\n\t\t\t\trules[ this ] = Number( rules[ this ] );\n\t\t\t}\n\t\t} );\n\t\t$.each( [ \"rangelength\", \"range\" ], function() {\n\t\t\tvar parts;\n\t\t\tif ( rules[ this ] ) {\n\t\t\t\tif ( Array.isArray( rules[ this ] ) ) {\n\t\t\t\t\trules[ this ] = [ Number( rules[ this ][ 0 ] ), Number( rules[ this ][ 1 ] ) ];\n\t\t\t\t} else if ( typeof rules[ this ] === \"string\" ) {\n\t\t\t\t\tparts = rules[ this ].replace( /[\\[\\]]/g, \"\" ).split( /[\\s,]+/ );\n\t\t\t\t\trules[ this ] = [ Number( parts[ 0 ] ), Number( parts[ 1 ] ) ];\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tif ( $.validator.autoCreateRanges ) {\n\n\t\t\t// Auto-create ranges\n\t\t\tif ( rules.min != null && rules.max != null ) {\n\t\t\t\trules.range = [ rules.min, rules.max ];\n\t\t\t\tdelete rules.min;\n\t\t\t\tdelete rules.max;\n\t\t\t}\n\t\t\tif ( rules.minlength != null && rules.maxlength != null ) {\n\t\t\t\trules.rangelength = [ rules.minlength, rules.maxlength ];\n\t\t\t\tdelete rules.minlength;\n\t\t\t\tdelete rules.maxlength;\n\t\t\t}\n\t\t}\n\n\t\treturn rules;\n\t},\n\n\t// Converts a simple string to a {string: true} rule, e.g., \"required\" to {required:true}\n\tnormalizeRule: function( data ) {\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tvar transformed = {};\n\t\t\t$.each( data.split( /\\s/ ), function() {\n\t\t\t\ttransformed[ this ] = true;\n\t\t\t} );\n\t\t\tdata = transformed;\n\t\t}\n\t\treturn data;\n\t},\n\n\t// https://jqueryvalidation.org/jQuery.validator.addMethod/\n\taddMethod: function( name, method, message ) {\n\t\t$.validator.methods[ name ] = method;\n\t\t$.validator.messages[ name ] = message !== undefined ? message : $.validator.messages[ name ];\n\t\tif ( method.length < 3 ) {\n\t\t\t$.validator.addClassRules( name, $.validator.normalizeRule( name ) );\n\t\t}\n\t},\n\n\t// https://jqueryvalidation.org/jQuery.validator.methods/\n\tmethods: {\n\n\t\t// https://jqueryvalidation.org/required-method/\n\t\trequired: function( value, element, param ) {\n\n\t\t\t// Check if dependency is met\n\t\t\tif ( !this.depend( param, element ) ) {\n\t\t\t\treturn \"dependency-mismatch\";\n\t\t\t}\n\t\t\tif ( element.nodeName.toLowerCase() === \"select\" ) {\n\n\t\t\t\t// Could be an array for select-multiple or a string, both are fine this way\n\t\t\t\tvar val = $( element ).val();\n\t\t\t\treturn val && val.length > 0;\n\t\t\t}\n\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\treturn this.getLength( value, element ) > 0;\n\t\t\t}\n\t\t\treturn value !== undefined && value !== null && value.length > 0;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/email-method/\n\t\temail: function( value, element ) {\n\n\t\t\t// From https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address\n\t\t\t// Retrieved 2014-01-14\n\t\t\t// If you have a problem with this implementation, report a bug against the above spec\n\t\t\t// Or use custom methods to implement your own email validation\n\t\t\treturn this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/url-method/\n\t\turl: function( value, element ) {\n\n\t\t\t// Copyright (c) 2010-2013 Diego Perini, MIT licensed\n\t\t\t// https://gist.github.com/dperini/729294\n\t\t\t// see also https://mathiasbynens.be/demo/url-regex\n\t\t\t// modified to allow protocol-relative URLs\n\t\t\treturn this.optional( element ) || /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:(?:[^\\]\\[?\\/<~#`!@$^&*()+=}|:\";',>{ ]|%[0-9A-Fa-f]{2})+(?::(?:[^\\]\\[?\\/<~#`!@$^&*()+=}|:\";',>{ ]|%[0-9A-Fa-f]{2})*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$/i.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/date-method/\n\t\tdate: ( function() {\n\t\t\tvar called = false;\n\n\t\t\treturn function( value, element ) {\n\t\t\t\tif ( !called ) {\n\t\t\t\t\tcalled = true;\n\t\t\t\t\tif ( this.settings.debug && window.console ) {\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t\"The `date` method is deprecated and will be removed in version '2.0.0'.\\n\" +\n\t\t\t\t\t\t\t\"Please don't use it, since it relies on the Date constructor, which\\n\" +\n\t\t\t\t\t\t\t\"behaves very differently across browsers and locales. Use `dateISO`\\n\" +\n\t\t\t\t\t\t\t\"instead or one of the locale specific methods in `localizations/`\\n\" +\n\t\t\t\t\t\t\t\"and `additional-methods.js`.\"\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() );\n\t\t\t};\n\t\t}() ),\n\n\t\t// https://jqueryvalidation.org/dateISO-method/\n\t\tdateISO: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^\\d{4}[\\/\\-](0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/number-method/\n\t\tnumber: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^(?:-?\\d+|-?\\d{1,3}(?:,\\d{3})+)?(?:-?\\.\\d+)?$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/digits-method/\n\t\tdigits: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^\\d+$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/minlength-method/\n\t\tminlength: function( value, element, param ) {\n\t\t\tvar length = Array.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || length >= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/maxlength-method/\n\t\tmaxlength: function( value, element, param ) {\n\t\t\tvar length = Array.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || length <= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/rangelength-method/\n\t\trangelength: function( value, element, param ) {\n\t\t\tvar length = Array.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || ( length >= param[ 0 ] && length <= param[ 1 ] );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/min-method/\n\t\tmin: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || value >= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/max-method/\n\t\tmax: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || value <= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/range-method/\n\t\trange: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || ( value >= param[ 0 ] && value <= param[ 1 ] );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/step-method/\n\t\tstep: function( value, element, param ) {\n\t\t\tvar type = $( element ).attr( \"type\" ),\n\t\t\t\terrorMessage = \"Step attribute on input type \" + type + \" is not supported.\",\n\t\t\t\tsupportedTypes = [ \"text\", \"number\", \"range\" ],\n\t\t\t\tre = new RegExp( \"\\\\b\" + type + \"\\\\b\" ),\n\t\t\t\tnotSupported = type && !re.test( supportedTypes.join() ),\n\t\t\t\tdecimalPlaces = function( num ) {\n\t\t\t\t\tvar match = ( \"\" + num ).match( /(?:\\.(\\d+))?$/ );\n\t\t\t\t\tif ( !match ) {\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Number of digits right of decimal point.\n\t\t\t\t\treturn match[ 1 ] ? match[ 1 ].length : 0;\n\t\t\t\t},\n\t\t\t\ttoInt = function( num ) {\n\t\t\t\t\treturn Math.round( num * Math.pow( 10, decimals ) );\n\t\t\t\t},\n\t\t\t\tvalid = true,\n\t\t\t\tdecimals;\n\n\t\t\t// Works only for text, number and range input types\n\t\t\t// TODO find a way to support input types date, datetime, datetime-local, month, time and week\n\t\t\tif ( notSupported ) {\n\t\t\t\tthrow new Error( errorMessage );\n\t\t\t}\n\n\t\t\tdecimals = decimalPlaces( param );\n\n\t\t\t// Value can't have too many decimals\n\t\t\tif ( decimalPlaces( value ) > decimals || toInt( value ) % toInt( param ) !== 0 ) {\n\t\t\t\tvalid = false;\n\t\t\t}\n\n\t\t\treturn this.optional( element ) || valid;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/equalTo-method/\n\t\tequalTo: function( value, element, param ) {\n\n\t\t\t// Bind to the blur event of the target in order to revalidate whenever the target field is updated\n\t\t\tvar target = $( param );\n\t\t\tif ( this.settings.onfocusout && target.not( \".validate-equalTo-blur\" ).length ) {\n\t\t\t\ttarget.addClass( \"validate-equalTo-blur\" ).on( \"blur.validate-equalTo\", function() {\n\t\t\t\t\t$( element ).valid();\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn value === target.val();\n\t\t},\n\n\t\t// https://jqueryvalidation.org/remote-method/\n\t\tremote: function( value, element, param, method ) {\n\t\t\tif ( this.optional( element ) ) {\n\t\t\t\treturn \"dependency-mismatch\";\n\t\t\t}\n\n\t\t\tmethod = typeof method === \"string\" && method || \"remote\";\n\n\t\t\tvar previous = this.previousValue( element, method ),\n\t\t\t\tvalidator, data, optionDataString;\n\n\t\t\tif ( !this.settings.messages[ element.name ] ) {\n\t\t\t\tthis.settings.messages[ element.name ] = {};\n\t\t\t}\n\t\t\tprevious.originalMessage = previous.originalMessage || this.settings.messages[ element.name ][ method ];\n\t\t\tthis.settings.messages[ element.name ][ method ] = previous.message;\n\n\t\t\tparam = typeof param === \"string\" && { url: param } || param;\n\t\t\toptionDataString = $.param( $.extend( { data: value }, param.data ) );\n\t\t\tif ( previous.valid !== null && previous.old === optionDataString ) {\n\t\t\t\treturn previous.valid;\n\t\t\t}\n\n\t\t\tprevious.old = optionDataString;\n\t\t\tprevious.valid = null;\n\t\t\tvalidator = this;\n\t\t\tthis.startRequest( element );\n\t\t\tdata = {};\n\t\t\tdata[ element.name ] = value;\n\t\t\t$.ajax( $.extend( true, {\n\t\t\t\tmode: \"abort\",\n\t\t\t\tport: this.elementAjaxPort( element ),\n\t\t\t\tdataType: \"json\",\n\t\t\t\tdata: data,\n\t\t\t\tcontext: validator.currentForm,\n\t\t\t\tsuccess: function( response ) {\n\t\t\t\t\tvar valid = response === true || response === \"true\",\n\t\t\t\t\t\terrors, message, submitted;\n\n\t\t\t\t\tvalidator.settings.messages[ element.name ][ method ] = previous.originalMessage;\n\t\t\t\t\tif ( valid ) {\n\t\t\t\t\t\tsubmitted = validator.formSubmitted;\n\t\t\t\t\t\tvalidator.toHide = validator.errorsFor( element );\n\t\t\t\t\t\tvalidator.formSubmitted = submitted;\n\t\t\t\t\t\tvalidator.successList.push( element );\n\t\t\t\t\t\tvalidator.invalid[ element.name ] = false;\n\t\t\t\t\t\tvalidator.showErrors();\n\t\t\t\t\t} else {\n\t\t\t\t\t\terrors = {};\n\t\t\t\t\t\tmessage = response || validator.defaultMessage( element, { method: method, parameters: value } );\n\t\t\t\t\t\terrors[ element.name ] = previous.message = message;\n\t\t\t\t\t\tvalidator.invalid[ element.name ] = true;\n\t\t\t\t\t\tvalidator.showErrors( errors );\n\t\t\t\t\t}\n\t\t\t\t\tprevious.valid = valid;\n\t\t\t\t\tvalidator.stopRequest( element, valid );\n\t\t\t\t}\n\t\t\t}, param ) );\n\t\t\treturn \"pending\";\n\t\t}\n\t}\n\n} );\n\n// Ajax mode: abort\n// usage: $.ajax({ mode: \"abort\"[, port: \"uniqueport\"]});\n// $.ajaxAbort( port );\n// if mode:\"abort\" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort()\n\nvar pendingRequests = {},\n\tajax;\n\n// Use a prefilter if available (1.5+)\nif ( $.ajaxPrefilter ) {\n\t$.ajaxPrefilter( function( settings, _, xhr ) {\n\t\tvar port = settings.port;\n\t\tif ( settings.mode === \"abort\" ) {\n\t\t\t$.ajaxAbort( port );\n\t\t\tpendingRequests[ port ] = xhr;\n\t\t}\n\t} );\n} else {\n\n\t// Proxy ajax\n\tajax = $.ajax;\n\t$.ajax = function( settings ) {\n\t\tvar mode = ( \"mode\" in settings ? settings : $.ajaxSettings ).mode,\n\t\t\tport = ( \"port\" in settings ? settings : $.ajaxSettings ).port;\n\t\tif ( mode === \"abort\" ) {\n\t\t\t$.ajaxAbort( port );\n\t\t\tpendingRequests[ port ] = ajax.apply( this, arguments );\n\t\t\treturn pendingRequests[ port ];\n\t\t}\n\t\treturn ajax.apply( this, arguments );\n\t};\n}\n\n// Abort the previous request without sending a new one\n$.ajaxAbort = function( port ) {\n\tif ( pendingRequests[ port ] ) {\n\t\tpendingRequests[ port ].abort();\n\t\tdelete pendingRequests[ port ];\n\t}\n};\nreturn $;\n}));","typeof navigator === \"object\" && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define('Plyr', factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Plyr = factory());\n})(this, (function () { 'use strict';\n\n function _defineProperty$1(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: true,\n configurable: true,\n writable: true\n }) : e[r] = t, e;\n }\n function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r);\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n }\n\n function _classCallCheck(e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }\n function _defineProperties(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || false, r.configurable = true, \"value\" in r && (r.writable = true), Object.defineProperty(e, r.key, r);\n }\n }\n function _createClass(e, t, n) {\n return t && _defineProperties(e.prototype, t), n && _defineProperties(e, n), e;\n }\n function _defineProperty(e, t, n) {\n return t in e ? Object.defineProperty(e, t, {\n value: n,\n enumerable: true,\n configurable: true,\n writable: true\n }) : e[t] = n, e;\n }\n function ownKeys(e, t) {\n var n = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var r = Object.getOwnPropertySymbols(e);\n t && (r = r.filter(function (t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n })), n.push.apply(n, r);\n }\n return n;\n }\n function _objectSpread2(e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = null != arguments[t] ? arguments[t] : {};\n t % 2 ? ownKeys(Object(n), true).forEach(function (t) {\n _defineProperty(e, t, n[t]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ownKeys(Object(n)).forEach(function (t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t));\n });\n }\n return e;\n }\n var defaults$1 = {\n addCSS: true,\n thumbWidth: 15,\n watch: true\n };\n function matches$1(e, t) {\n return function () {\n return Array.from(document.querySelectorAll(t)).includes(this);\n }.call(e, t);\n }\n function trigger(e, t) {\n if (e && t) {\n var n = new Event(t, {\n bubbles: true\n });\n e.dispatchEvent(n);\n }\n }\n var getConstructor$1 = function (e) {\n return null != e ? e.constructor : null;\n },\n instanceOf$1 = function (e, t) {\n return !!(e && t && e instanceof t);\n },\n isNullOrUndefined$1 = function (e) {\n return null == e;\n },\n isObject$1 = function (e) {\n return getConstructor$1(e) === Object;\n },\n isNumber$1 = function (e) {\n return getConstructor$1(e) === Number && !Number.isNaN(e);\n },\n isString$1 = function (e) {\n return getConstructor$1(e) === String;\n },\n isBoolean$1 = function (e) {\n return getConstructor$1(e) === Boolean;\n },\n isFunction$1 = function (e) {\n return getConstructor$1(e) === Function;\n },\n isArray$1 = function (e) {\n return Array.isArray(e);\n },\n isNodeList$1 = function (e) {\n return instanceOf$1(e, NodeList);\n },\n isElement$1 = function (e) {\n return instanceOf$1(e, Element);\n },\n isEvent$1 = function (e) {\n return instanceOf$1(e, Event);\n },\n isEmpty$1 = function (e) {\n return isNullOrUndefined$1(e) || (isString$1(e) || isArray$1(e) || isNodeList$1(e)) && !e.length || isObject$1(e) && !Object.keys(e).length;\n },\n is$1 = {\n nullOrUndefined: isNullOrUndefined$1,\n object: isObject$1,\n number: isNumber$1,\n string: isString$1,\n boolean: isBoolean$1,\n function: isFunction$1,\n array: isArray$1,\n nodeList: isNodeList$1,\n element: isElement$1,\n event: isEvent$1,\n empty: isEmpty$1\n };\n function getDecimalPlaces(e) {\n var t = \"\".concat(e).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n return t ? Math.max(0, (t[1] ? t[1].length : 0) - (t[2] ? +t[2] : 0)) : 0;\n }\n function round(e, t) {\n if (1 > t) {\n var n = getDecimalPlaces(t);\n return parseFloat(e.toFixed(n));\n }\n return Math.round(e / t) * t;\n }\n var RangeTouch = function () {\n function e(t, n) {\n _classCallCheck(this, e), is$1.element(t) ? this.element = t : is$1.string(t) && (this.element = document.querySelector(t)), is$1.element(this.element) && is$1.empty(this.element.rangeTouch) && (this.config = _objectSpread2({}, defaults$1, {}, n), this.init());\n }\n return _createClass(e, [{\n key: \"init\",\n value: function () {\n e.enabled && (this.config.addCSS && (this.element.style.userSelect = \"none\", this.element.style.webKitUserSelect = \"none\", this.element.style.touchAction = \"manipulation\"), this.listeners(true), this.element.rangeTouch = this);\n }\n }, {\n key: \"destroy\",\n value: function () {\n e.enabled && (this.config.addCSS && (this.element.style.userSelect = \"\", this.element.style.webKitUserSelect = \"\", this.element.style.touchAction = \"\"), this.listeners(false), this.element.rangeTouch = null);\n }\n }, {\n key: \"listeners\",\n value: function (e) {\n var t = this,\n n = e ? \"addEventListener\" : \"removeEventListener\";\n [\"touchstart\", \"touchmove\", \"touchend\"].forEach(function (e) {\n t.element[n](e, function (e) {\n return t.set(e);\n }, false);\n });\n }\n }, {\n key: \"get\",\n value: function (t) {\n if (!e.enabled || !is$1.event(t)) return null;\n var n,\n r = t.target,\n i = t.changedTouches[0],\n o = parseFloat(r.getAttribute(\"min\")) || 0,\n s = parseFloat(r.getAttribute(\"max\")) || 100,\n u = parseFloat(r.getAttribute(\"step\")) || 1,\n c = r.getBoundingClientRect(),\n a = 100 / c.width * (this.config.thumbWidth / 2) / 100;\n return 0 > (n = 100 / c.width * (i.clientX - c.left)) ? n = 0 : 100 < n && (n = 100), 50 > n ? n -= (100 - 2 * n) * a : 50 < n && (n += 2 * (n - 50) * a), o + round(n / 100 * (s - o), u);\n }\n }, {\n key: \"set\",\n value: function (t) {\n e.enabled && is$1.event(t) && !t.target.disabled && (t.preventDefault(), t.target.value = this.get(t), trigger(t.target, \"touchend\" === t.type ? \"change\" : \"input\"));\n }\n }], [{\n key: \"setup\",\n value: function (t) {\n var n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {},\n r = null;\n if (is$1.empty(t) || is$1.string(t) ? r = Array.from(document.querySelectorAll(is$1.string(t) ? t : 'input[type=\"range\"]')) : is$1.element(t) ? r = [t] : is$1.nodeList(t) ? r = Array.from(t) : is$1.array(t) && (r = t.filter(is$1.element)), is$1.empty(r)) return null;\n var i = _objectSpread2({}, defaults$1, {}, n);\n if (is$1.string(t) && i.watch) {\n var o = new MutationObserver(function (n) {\n Array.from(n).forEach(function (n) {\n Array.from(n.addedNodes).forEach(function (n) {\n is$1.element(n) && matches$1(n, t) && new e(n, i);\n });\n });\n });\n o.observe(document.body, {\n childList: true,\n subtree: true\n });\n }\n return r.map(function (t) {\n return new e(t, n);\n });\n }\n }, {\n key: \"enabled\",\n get: function () {\n return \"ontouchstart\" in document.documentElement;\n }\n }]), e;\n }();\n\n // ==========================================================================\n // Type checking utils\n // ==========================================================================\n\n const getConstructor = input => input !== null && typeof input !== 'undefined' ? input.constructor : null;\n const instanceOf = (input, constructor) => Boolean(input && constructor && input instanceof constructor);\n const isNullOrUndefined = input => input === null || typeof input === 'undefined';\n const isObject = input => getConstructor(input) === Object;\n const isNumber = input => getConstructor(input) === Number && !Number.isNaN(input);\n const isString = input => getConstructor(input) === String;\n const isBoolean = input => getConstructor(input) === Boolean;\n const isFunction = input => typeof input === 'function';\n const isArray = input => Array.isArray(input);\n const isWeakMap = input => instanceOf(input, WeakMap);\n const isNodeList = input => instanceOf(input, NodeList);\n const isTextNode = input => getConstructor(input) === Text;\n const isEvent = input => instanceOf(input, Event);\n const isKeyboardEvent = input => instanceOf(input, KeyboardEvent);\n const isCue = input => instanceOf(input, window.TextTrackCue) || instanceOf(input, window.VTTCue);\n const isTrack = input => instanceOf(input, TextTrack) || !isNullOrUndefined(input) && isString(input.kind);\n const isPromise = input => instanceOf(input, Promise) && isFunction(input.then);\n function isElement(input) {\n return input !== null && typeof input === 'object' && input.nodeType === 1 && typeof input.style === 'object' && typeof input.ownerDocument === 'object';\n }\n function isEmpty(input) {\n return isNullOrUndefined(input) || (isString(input) || isArray(input) || isNodeList(input)) && !input.length || isObject(input) && !Object.keys(input).length;\n }\n function isUrl(input) {\n // Accept a URL object\n if (instanceOf(input, window.URL)) {\n return true;\n }\n\n // Must be string from here\n if (!isString(input)) {\n return false;\n }\n\n // Add the protocol if required\n let string = input;\n if (!input.startsWith('http://') || !input.startsWith('https://')) {\n string = `http://${input}`;\n }\n try {\n return !isEmpty(new URL(string).hostname);\n } catch {\n return false;\n }\n }\n var is = {\n nullOrUndefined: isNullOrUndefined,\n object: isObject,\n number: isNumber,\n string: isString,\n boolean: isBoolean,\n function: isFunction,\n array: isArray,\n weakMap: isWeakMap,\n nodeList: isNodeList,\n element: isElement,\n textNode: isTextNode,\n event: isEvent,\n keyboardEvent: isKeyboardEvent,\n cue: isCue,\n track: isTrack,\n promise: isPromise,\n url: isUrl,\n empty: isEmpty\n };\n\n // ==========================================================================\n // Animation utils\n // ==========================================================================\n\n const transitionEndEvent = (() => {\n const element = document.createElement('span');\n const events = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend'\n };\n const type = Object.keys(events).find(event => element.style[event] !== undefined);\n return is.string(type) ? events[type] : false;\n })();\n\n // Force repaint of element\n function repaint(element, delay) {\n setTimeout(() => {\n try {\n element.hidden = true;\n // eslint-disable-next-line no-unused-expressions\n element.offsetHeight;\n element.hidden = false;\n } catch {}\n }, delay);\n }\n\n // ==========================================================================\n // Object utils\n // ==========================================================================\n\n\n // Clone nested objects\n function cloneDeep(object) {\n return JSON.parse(JSON.stringify(object));\n }\n\n // Get a nested value in an object\n function getDeep(object, path) {\n return path.split('.').reduce((obj, key) => obj && obj[key], object);\n }\n\n // Deep extend destination object with N more objects\n function extend(target = {}, ...sources) {\n if (!sources.length) {\n return target;\n }\n const source = sources.shift();\n if (!is.object(source)) {\n return target;\n }\n Object.keys(source).forEach(key => {\n if (is.object(source[key])) {\n if (!Object.keys(target).includes(key)) {\n Object.assign(target, {\n [key]: {}\n });\n }\n extend(target[key], source[key]);\n } else {\n Object.assign(target, {\n [key]: source[key]\n });\n }\n });\n return extend(target, ...sources);\n }\n\n // ==========================================================================\n // Element utils\n // ==========================================================================\n\n\n // Wrap an element\n function wrap(elements, wrapper) {\n // Convert `elements` to an array, if necessary.\n const targets = elements.length ? elements : [elements];\n\n // Loops backwards to prevent having to clone the wrapper on the\n // first element (see `child` below).\n Array.from(targets).reverse().forEach((element, index) => {\n const child = index > 0 ? wrapper.cloneNode(true) : wrapper;\n // Cache the current parent and sibling.\n const parent = element.parentNode;\n const sibling = element.nextSibling;\n\n // Wrap the element (is automatically removed from its current\n // parent).\n child.appendChild(element);\n\n // If the element had a sibling, insert the wrapper before\n // the sibling to maintain the HTML structure; otherwise, just\n // append it to the parent.\n if (sibling) {\n parent.insertBefore(child, sibling);\n } else {\n parent.appendChild(child);\n }\n });\n }\n\n // Set attributes\n function setAttributes(element, attributes) {\n if (!is.element(element) || is.empty(attributes)) return;\n\n // Assume null and undefined attributes should be left out,\n // Setting them would otherwise convert them to \"null\" and \"undefined\"\n Object.entries(attributes).filter(([, value]) => !is.nullOrUndefined(value)).forEach(([key, value]) => element.setAttribute(key, value));\n }\n\n // Create a DocumentFragment\n function createElement(type, attributes, text) {\n // Create a new \n const element = document.createElement(type);\n\n // Set all passed attributes\n if (is.object(attributes)) {\n setAttributes(element, attributes);\n }\n\n // Add text node\n if (is.string(text)) {\n element.textContent = text;\n }\n\n // Return built element\n return element;\n }\n\n // Insert an element after another\n function insertAfter(element, target) {\n if (!is.element(element) || !is.element(target)) return;\n target.parentNode.insertBefore(element, target.nextSibling);\n }\n\n // Insert a DocumentFragment\n function insertElement(type, parent, attributes, text) {\n if (!is.element(parent)) return;\n parent.appendChild(createElement(type, attributes, text));\n }\n\n // Remove element(s)\n function removeElement(element) {\n if (is.nodeList(element) || is.array(element)) {\n Array.from(element).forEach(removeElement);\n return;\n }\n if (!is.element(element) || !is.element(element.parentNode)) {\n return;\n }\n element.parentNode.removeChild(element);\n }\n\n // Remove all child elements\n function emptyElement(element) {\n if (!is.element(element)) return;\n let {\n length\n } = element.childNodes;\n while (length > 0) {\n element.removeChild(element.lastChild);\n length -= 1;\n }\n }\n\n // Replace element\n function replaceElement(newChild, oldChild) {\n if (!is.element(oldChild) || !is.element(oldChild.parentNode) || !is.element(newChild)) return null;\n oldChild.parentNode.replaceChild(newChild, oldChild);\n return newChild;\n }\n\n // Get an attribute object from a string selector\n function getAttributesFromSelector(sel, existingAttributes) {\n // For example:\n // '.test' to { class: 'test' }\n // '#test' to { id: 'test' }\n // '[data-test=\"test\"]' to { 'data-test': 'test' }\n\n if (!is.string(sel) || is.empty(sel)) return {};\n const attributes = {};\n const existing = extend({}, existingAttributes);\n sel.split(',').forEach(s => {\n // Remove whitespace\n const selector = s.trim();\n const className = selector.replace('.', '');\n const stripped = selector.replace(/[[\\]]/g, '');\n // Get the parts and value\n const parts = stripped.split('=');\n const [key] = parts;\n const value = parts.length > 1 ? parts[1].replace(/[\"']/g, '') : '';\n // Get the first character\n const start = selector.charAt(0);\n switch (start) {\n case '.':\n // Add to existing classname\n if (is.string(existing.class)) {\n attributes.class = `${existing.class} ${className}`;\n } else {\n attributes.class = className;\n }\n break;\n case '#':\n // ID selector\n attributes.id = selector.replace('#', '');\n break;\n case '[':\n // Attribute selector\n attributes[key] = value;\n break;\n }\n });\n return extend(existing, attributes);\n }\n\n // Toggle hidden\n function toggleHidden(element, hidden) {\n if (!is.element(element)) return;\n let hide = hidden;\n if (!is.boolean(hide)) {\n hide = !element.hidden;\n }\n element.hidden = hide;\n }\n\n // Mirror Element.classList.toggle, with IE compatibility for \"force\" argument\n function toggleClass(element, className, force) {\n if (is.nodeList(element)) {\n return Array.from(element).map(e => toggleClass(e, className, force));\n }\n if (is.element(element)) {\n let method = 'toggle';\n if (typeof force !== 'undefined') {\n method = force ? 'add' : 'remove';\n }\n element.classList[method](className);\n return element.classList.contains(className);\n }\n return false;\n }\n\n // Has class name\n function hasClass(element, className) {\n return is.element(element) && element.classList.contains(className);\n }\n\n // Element matches selector\n function matches(element, selector) {\n const {\n prototype\n } = Element;\n function match() {\n return Array.from(document.querySelectorAll(selector)).includes(this);\n }\n const method = prototype.matches || prototype.webkitMatchesSelector || prototype.mozMatchesSelector || prototype.msMatchesSelector || match;\n return method.call(element, selector);\n }\n\n // Closest ancestor element matching selector (also tests element itself)\n function closest$1(element, selector) {\n const {\n prototype\n } = Element;\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill\n function closestElement() {\n let el = this;\n do {\n if (matches.matches(el, selector)) return el;\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n return null;\n }\n const method = prototype.closest || closestElement;\n return method.call(element, selector);\n }\n\n // Find all elements\n function getElements(selector) {\n return this.elements.container.querySelectorAll(selector);\n }\n\n // Find a single element\n function getElement(selector) {\n return this.elements.container.querySelector(selector);\n }\n\n // Set focus and tab focus class\n function setFocus(element = null, focusVisible = false) {\n if (!is.element(element)) return;\n\n // Set regular focus\n element.focus({\n preventScroll: true,\n focusVisible\n });\n }\n\n // ==========================================================================\n // Plyr support checks\n // ==========================================================================\n\n\n // Default codecs for checking mimetype support\n const defaultCodecs = {\n 'audio/ogg': 'vorbis',\n 'audio/wav': '1',\n 'video/webm': 'vp8, vorbis',\n 'video/mp4': 'avc1.42E01E, mp4a.40.2',\n 'video/ogg': 'theora'\n };\n\n // Check for feature support\n const support = {\n // Basic support\n audio: 'canPlayType' in document.createElement('audio'),\n video: 'canPlayType' in document.createElement('video'),\n // Check for support\n // Basic functionality vs full UI\n check(type, provider) {\n const api = support[type] || provider !== 'html5';\n const ui = api && support.rangeInput;\n return {\n api,\n ui\n };\n },\n // Picture-in-picture support\n pip: (() => {\n return document.pictureInPictureEnabled && !createElement('video').disablePictureInPicture;\n })(),\n // Airplay support\n // Safari only currently\n airplay: is.function(window.WebKitPlaybackTargetAvailabilityEvent),\n // Inline playback support\n // https://webkit.org/blog/6784/new-video-policies-for-ios/\n playsinline: 'playsInline' in document.createElement('video'),\n // Check for mime type support against a player instance\n // Credits: http://diveintohtml5.info/everything.html\n // Related: http://www.leanbackplayer.com/test/h5mt.html\n mime(input) {\n if (is.empty(input)) {\n return false;\n }\n const [mediaType] = input.split('/');\n let type = input;\n\n // Verify we're using HTML5 and there's no media type mismatch\n if (!this.isHTML5 || mediaType !== this.type) {\n return false;\n }\n\n // Add codec if required\n if (Object.keys(defaultCodecs).includes(type)) {\n type += `; codecs=\"${defaultCodecs[input]}\"`;\n }\n try {\n return Boolean(type && this.media.canPlayType(type).replace(/no/, ''));\n } catch {\n return false;\n }\n },\n // Check for textTracks support\n textTracks: 'textTracks' in document.createElement('video'),\n // Sliders\n rangeInput: (() => {\n const range = document.createElement('input');\n range.type = 'range';\n return range.type === 'range';\n })(),\n // Touch\n // NOTE: Remember a device can be mouse + touch enabled so we check on first touch event\n touch: 'ontouchstart' in document.documentElement,\n // Detect transitions support\n transitions: transitionEndEvent !== false,\n // Reduced motion iOS & MacOS setting\n // https://webkit.org/blog/7551/responsive-design-for-motion/\n reducedMotion: 'matchMedia' in window && window.matchMedia('(prefers-reduced-motion)').matches\n };\n\n // ==========================================================================\n // Event utils\n // ==========================================================================\n\n\n // Check for passive event listener support\n // https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n // https://www.youtube.com/watch?v=NPM6172J22g\n const supportsPassiveListeners = (() => {\n // Test via a getter in the options object to see if the passive property is accessed\n let supported = false;\n try {\n const options = Object.defineProperty({}, 'passive', {\n get() {\n supported = true;\n return null;\n }\n });\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch {}\n return supported;\n })();\n\n // Toggle event listener\n function toggleListener(element, event, callback, toggle = false, passive = true, capture = false) {\n // Bail if no element, event, or callback\n if (!element || !('addEventListener' in element) || is.empty(event) || !is.function(callback)) {\n return;\n }\n\n // Allow multiple events\n const events = event.split(' ');\n // Build options\n // Default to just the capture boolean for browsers with no passive listener support\n let options = capture;\n\n // If passive events listeners are supported\n if (supportsPassiveListeners) {\n options = {\n // Whether the listener can be passive (i.e. default never prevented)\n passive,\n // Whether the listener is a capturing listener or not\n capture\n };\n }\n\n // If a single node is passed, bind the event listener\n events.forEach(type => {\n if (this && this.eventListeners && toggle) {\n // Cache event listener\n this.eventListeners.push({\n element,\n type,\n callback,\n options\n });\n }\n element[toggle ? 'addEventListener' : 'removeEventListener'](type, callback, options);\n });\n }\n\n // Bind event handler\n function on(element, events = '', callback, passive = true, capture = false) {\n toggleListener.call(this, element, events, callback, true, passive, capture);\n }\n\n // Unbind event handler\n function off(element, events = '', callback, passive = true, capture = false) {\n toggleListener.call(this, element, events, callback, false, passive, capture);\n }\n\n // Bind once-only event handler\n function once(element, events = '', callback, passive = true, capture = false) {\n const onceCallback = (...args) => {\n off(element, events, onceCallback, passive, capture);\n callback.apply(this, args);\n };\n toggleListener.call(this, element, events, onceCallback, true, passive, capture);\n }\n\n // Trigger event\n function triggerEvent(element, type = '', bubbles = false, detail = {}) {\n // Bail if no element\n if (!is.element(element) || is.empty(type)) {\n return;\n }\n\n // Create and dispatch the event\n const event = new CustomEvent(type, {\n bubbles,\n detail: {\n ...detail,\n plyr: this\n }\n });\n\n // Dispatch the event\n element.dispatchEvent(event);\n }\n\n // Unbind all cached event listeners\n function unbindListeners() {\n if (this && this.eventListeners) {\n this.eventListeners.forEach(item => {\n const {\n element,\n type,\n callback,\n options\n } = item;\n element.removeEventListener(type, callback, options);\n });\n this.eventListeners = [];\n }\n }\n\n // Run method when / if player is ready\n function ready() {\n return new Promise(resolve => this.ready ? setTimeout(resolve, 0) : on.call(this, this.elements.container, 'ready', resolve)).then(() => {});\n }\n\n /**\n * Silence a Promise-like object.\n * This is useful for avoiding non-harmful, but potentially confusing \"uncaught\n * play promise\" rejection error messages.\n * @param {object} value An object that may or may not be `Promise`-like.\n */\n function silencePromise(value) {\n if (is.promise(value)) {\n value.then(null, () => {});\n }\n }\n\n // ==========================================================================\n // Array utils\n // ==========================================================================\n\n\n // Remove duplicates in an array\n function dedupe(array) {\n if (!is.array(array)) {\n return array;\n }\n return array.filter((item, index) => array.indexOf(item) === index);\n }\n\n // Get the closest value in an array\n function closest(array, value) {\n if (!is.array(array) || !array.length) {\n return null;\n }\n return array.reduce((prev, curr) => Math.abs(curr - value) < Math.abs(prev - value) ? curr : prev);\n }\n\n // ==========================================================================\n // Style utils\n // ==========================================================================\n\n\n // Check support for a CSS declaration\n function supportsCSS(declaration) {\n if (!window || !window.CSS) {\n return false;\n }\n return window.CSS.supports(declaration);\n }\n\n // Standard/common aspect ratios\n const standardRatios = [[1, 1], [4, 3], [3, 4], [5, 4], [4, 5], [3, 2], [2, 3], [16, 10], [10, 16], [16, 9], [9, 16], [21, 9], [9, 21], [32, 9], [9, 32]].reduce((out, [x, y]) => ({\n ...out,\n [x / y]: [x, y]\n }), {});\n\n // Validate an aspect ratio\n function validateAspectRatio(input) {\n if (!is.array(input) && (!is.string(input) || !input.includes(':'))) {\n return false;\n }\n const ratio = is.array(input) ? input : input.split(':');\n return ratio.map(Number).every(is.number);\n }\n\n // Reduce an aspect ratio to it's lowest form\n function reduceAspectRatio(ratio) {\n if (!is.array(ratio) || !ratio.every(is.number)) {\n return null;\n }\n const [width, height] = ratio;\n const getDivider = (w, h) => h === 0 ? w : getDivider(h, w % h);\n const divider = getDivider(width, height);\n return [width / divider, height / divider];\n }\n\n // Calculate an aspect ratio\n function getAspectRatio(input) {\n const parse = ratio => validateAspectRatio(ratio) ? ratio.split(':').map(Number) : null;\n // Try provided ratio\n let ratio = parse(input);\n\n // Get from config\n if (ratio === null) {\n ratio = parse(this.config.ratio);\n }\n\n // Get from embed\n if (ratio === null && !is.empty(this.embed) && is.array(this.embed.ratio)) {\n ({\n ratio\n } = this.embed);\n }\n\n // Get from HTML5 video\n if (ratio === null && this.isHTML5) {\n const {\n videoWidth,\n videoHeight\n } = this.media;\n ratio = [videoWidth, videoHeight];\n }\n return reduceAspectRatio(ratio);\n }\n\n // Set aspect ratio for responsive container\n function setAspectRatio(input) {\n if (!this.isVideo) {\n return {};\n }\n const {\n wrapper\n } = this.elements;\n const ratio = getAspectRatio.call(this, input);\n if (!is.array(ratio)) {\n return {};\n }\n const [x, y] = reduceAspectRatio(ratio);\n const useNative = supportsCSS(`aspect-ratio: ${x}/${y}`);\n const padding = 100 / x * y;\n if (useNative) {\n wrapper.style.aspectRatio = `${x}/${y}`;\n } else {\n wrapper.style.paddingBottom = `${padding}%`;\n }\n\n // For Vimeo we have an extra
to hide the standard controls and UI\n if (this.isVimeo && !this.config.vimeo.premium && this.supported.ui) {\n const height = 100 / this.media.offsetWidth * Number.parseInt(window.getComputedStyle(this.media).paddingBottom, 10);\n const offset = (height - padding) / (height / 50);\n if (this.fullscreen.active) {\n wrapper.style.paddingBottom = null;\n } else {\n this.media.style.transform = `translateY(-${offset}%)`;\n }\n } else if (this.isHTML5) {\n wrapper.classList.add(this.config.classNames.videoFixedRatio);\n }\n return {\n padding,\n ratio\n };\n }\n\n // Round an aspect ratio to closest standard ratio\n function roundAspectRatio(x, y, tolerance = 0.05) {\n const ratio = x / y;\n const closestRatio = closest(Object.keys(standardRatios), ratio);\n\n // Check match is within tolerance\n if (Math.abs(closestRatio - ratio) <= tolerance) {\n return standardRatios[closestRatio];\n }\n\n // No match\n return [x, y];\n }\n\n // Get the size of the viewport\n // https://stackoverflow.com/questions/1248081/how-to-get-the-browser-viewport-dimensions\n function getViewportSize() {\n const width = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\n const height = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\n return [width, height];\n }\n\n // ==========================================================================\n // Plyr HTML5 helpers\n // ==========================================================================\n\n const html5 = {\n getSources() {\n if (!this.isHTML5) {\n return [];\n }\n const sources = Array.from(this.media.querySelectorAll('source'));\n\n // Filter out unsupported sources (if type is specified)\n return sources.filter(source => {\n const type = source.getAttribute('type');\n if (is.empty(type)) {\n return true;\n }\n return support.mime.call(this, type);\n });\n },\n // Get quality levels\n getQualityOptions() {\n // Whether we're forcing all options (e.g. for streaming)\n if (this.config.quality.forced) {\n return this.config.quality.options;\n }\n\n // Get sizes from elements\n return html5.getSources.call(this).map(source => Number(source.getAttribute('size'))).filter(Boolean);\n },\n setup() {\n if (!this.isHTML5) {\n return;\n }\n const player = this;\n\n // Set speed options from config\n player.options.speed = player.config.speed.options;\n\n // Set aspect ratio if fixed\n if (!is.empty(this.config.ratio)) {\n setAspectRatio.call(player);\n }\n\n // Quality\n Object.defineProperty(player.media, 'quality', {\n get() {\n // Get sources\n const sources = html5.getSources.call(player);\n const source = sources.find(s => s.getAttribute('src') === player.source);\n\n // Return size, if match is found\n return source && Number(source.getAttribute('size'));\n },\n set(input) {\n if (player.quality === input) {\n return;\n }\n\n // If we're using an external handler...\n if (player.config.quality.forced && is.function(player.config.quality.onChange)) {\n player.config.quality.onChange(input);\n } else {\n // Get sources\n const sources = html5.getSources.call(player);\n // Get first match for requested size\n const source = sources.find(s => Number(s.getAttribute('size')) === input);\n\n // No matching source found\n if (!source) {\n return;\n }\n\n // Get current state\n const {\n currentTime,\n paused,\n preload,\n readyState,\n playbackRate\n } = player.media;\n\n // Set new source\n player.media.src = source.getAttribute('src');\n\n // Prevent loading if preload=\"none\" and the current source isn't loaded (#1044)\n if (preload !== 'none' || readyState) {\n // Restore time\n player.once('loadedmetadata', () => {\n player.speed = playbackRate;\n player.currentTime = currentTime;\n\n // Resume playing\n if (!paused) {\n silencePromise(player.play());\n }\n });\n\n // Load new source\n player.media.load();\n }\n }\n\n // Trigger change event\n triggerEvent.call(player, player.media, 'qualitychange', false, {\n quality: input\n });\n }\n });\n },\n // Cancel current network requests\n // See https://github.com/sampotts/plyr/issues/174\n cancelRequests() {\n if (!this.isHTML5) {\n return;\n }\n\n // Remove child sources\n removeElement(html5.getSources.call(this));\n\n // Set blank video src attribute\n // This is to prevent a MEDIA_ERR_SRC_NOT_SUPPORTED error\n // Info: http://stackoverflow.com/questions/32231579/how-to-properly-dispose-of-an-html5-video-and-close-socket-or-connection\n this.media.setAttribute('src', this.config.blankVideo);\n\n // Load the new empty source\n // This will cancel existing requests\n // See https://github.com/sampotts/plyr/issues/174\n this.media.load();\n\n // Debugging\n this.debug.log('Cancelled network requests');\n }\n };\n\n // ==========================================================================\n // Browser sniffing\n // Unfortunately, due to mixed support, UA sniffing is required\n // ==========================================================================\n\n const isIE = Boolean(window.document.documentMode);\n const isEdge = /Edge/.test(navigator.userAgent);\n const isWebKit = 'WebkitAppearance' in document.documentElement.style && !/Edge/.test(navigator.userAgent);\n // navigator.platform may be deprecated but this check is still required\n const isIPadOS = navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;\n const isIos = /iPad|iPhone|iPod/i.test(navigator.userAgent) && navigator.maxTouchPoints > 1;\n var browser = {\n isIE,\n isEdge,\n isWebKit,\n isIPadOS,\n isIos\n };\n\n // ==========================================================================\n // String utils\n // ==========================================================================\n\n\n // Generate a random ID\n function generateId(prefix) {\n return `${prefix}-${Math.floor(Math.random() * 10000)}`;\n }\n\n // Format string\n function format(input, ...args) {\n if (is.empty(input)) return input;\n return input.toString().replace(/\\{(\\d+)\\}/g, (_, i) => args[i].toString());\n }\n\n // Get percentage\n function getPercentage(current, max) {\n if (current === 0 || max === 0 || Number.isNaN(current) || Number.isNaN(max)) {\n return 0;\n }\n return (current / max * 100).toFixed(2);\n }\n\n // Replace all occurrences of a string in a string\n function replaceAll(input = '', find = '', replace = '') {\n return input.replace(new RegExp(find.toString().replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1'), 'g'), replace.toString());\n }\n\n // Convert to title case\n function toTitleCase(input = '') {\n return input.toString().replace(/\\w\\S*/g, text => text.charAt(0).toUpperCase() + text.slice(1).toLowerCase());\n }\n\n // Convert string to pascalCase\n function toPascalCase(input = '') {\n let string = input.toString();\n\n // Convert kebab case\n string = replaceAll(string, '-', ' ');\n\n // Convert snake case\n string = replaceAll(string, '_', ' ');\n\n // Convert to title case\n string = toTitleCase(string);\n\n // Convert to pascal case\n return replaceAll(string, ' ', '');\n }\n\n // Convert string to pascalCase\n function toCamelCase(input = '') {\n let string = input.toString();\n\n // Convert to pascal case\n string = toPascalCase(string);\n\n // Convert first character to lowercase\n return string.charAt(0).toLowerCase() + string.slice(1);\n }\n\n // Remove HTML from a string\n function stripHTML(source) {\n const fragment = document.createDocumentFragment();\n const element = document.createElement('div');\n fragment.appendChild(element);\n element.innerHTML = source;\n return fragment.firstChild.textContent;\n }\n\n // Like outerHTML, but also works for DocumentFragment\n function getHTML(element) {\n const wrapper = document.createElement('div');\n wrapper.appendChild(element);\n return wrapper.innerHTML;\n }\n\n // ==========================================================================\n // Plyr internationalization\n // ==========================================================================\n\n\n // Skip i18n for abbreviations and brand names\n const resources = {\n pip: 'PIP',\n airplay: 'AirPlay',\n html5: 'HTML5',\n vimeo: 'Vimeo',\n youtube: 'YouTube'\n };\n const i18n = {\n get(key = '', config = {}) {\n if (is.empty(key) || is.empty(config)) {\n return '';\n }\n let string = getDeep(config.i18n, key);\n if (is.empty(string)) {\n if (Object.keys(resources).includes(key)) {\n return resources[key];\n }\n return '';\n }\n const replace = {\n '{seektime}': config.seekTime,\n '{title}': config.title\n };\n Object.entries(replace).forEach(([k, v]) => {\n string = replaceAll(string, k, v);\n });\n return string;\n }\n };\n\n class Storage {\n constructor(player) {\n _defineProperty$1(this, \"get\", key => {\n if (!Storage.supported || !this.enabled) {\n return null;\n }\n const store = window.localStorage.getItem(this.key);\n if (is.empty(store)) return null;\n const json = JSON.parse(store);\n return is.string(key) && key.length ? json[key] : json;\n });\n _defineProperty$1(this, \"set\", object => {\n // Bail if we don't have localStorage support or it's disabled\n if (!Storage.supported || !this.enabled) {\n return;\n }\n\n // Can only store objects\n if (!is.object(object)) {\n return;\n }\n\n // Get current storage\n let storage = this.get();\n\n // Default to empty object\n if (is.empty(storage)) {\n storage = {};\n }\n\n // Update the working copy of the values\n extend(storage, object);\n\n // Update storage\n try {\n window.localStorage.setItem(this.key, JSON.stringify(storage));\n } catch {}\n });\n this.enabled = player.config.storage.enabled;\n this.key = player.config.storage.key;\n }\n\n // Check for actual support (see if we can use it)\n static get supported() {\n try {\n if (!('localStorage' in window)) return false;\n const test = '___test';\n // Try to use it (it might be disabled, e.g. user is in private mode)\n // see: https://github.com/sampotts/plyr/issues/131\n window.localStorage.setItem(test, test);\n window.localStorage.removeItem(test);\n return true;\n } catch {\n return false;\n }\n }\n }\n\n // ==========================================================================\n // Fetch wrapper\n // Using XHR to avoid issues with older browsers\n // ==========================================================================\n\n function fetch(url, responseType = 'text', withCredentials = false) {\n return new Promise((resolve, reject) => {\n try {\n const request = new XMLHttpRequest();\n\n // Check for CORS support\n if (!('withCredentials' in request)) return;\n\n // Set to true if needed for CORS\n if (withCredentials) {\n request.withCredentials = true;\n }\n request.addEventListener('load', () => {\n if (responseType === 'text') {\n try {\n resolve(JSON.parse(request.responseText));\n } catch {\n resolve(request.responseText);\n }\n } else {\n resolve(request.response);\n }\n });\n request.addEventListener('error', () => {\n throw new Error(request.status);\n });\n request.open('GET', url, true);\n request.responseType = responseType;\n request.send();\n } catch (error) {\n reject(error);\n }\n });\n }\n\n // ==========================================================================\n // Sprite loader\n // ==========================================================================\n\n\n // Load an external SVG sprite\n function loadSprite(url, id) {\n if (!is.string(url)) {\n return;\n }\n const prefix = 'cache';\n const hasId = is.string(id);\n let isCached = false;\n const exists = () => document.getElementById(id) !== null;\n const update = (container, data) => {\n container.innerHTML = data;\n\n // Check again incase of race condition\n if (hasId && exists()) {\n return;\n }\n\n // Inject the SVG to the body\n document.body.insertAdjacentElement('afterbegin', container);\n };\n\n // Only load once if ID set\n if (!hasId || !exists()) {\n const useStorage = Storage.supported;\n // Create container\n const container = document.createElement('div');\n container.setAttribute('hidden', '');\n if (hasId) {\n container.setAttribute('id', id);\n }\n\n // Check in cache\n if (useStorage) {\n const cached = window.localStorage.getItem(`${prefix}-${id}`);\n isCached = cached !== null;\n if (isCached) {\n const data = JSON.parse(cached);\n update(container, data.content);\n }\n }\n\n // Get the sprite\n fetch(url).then(result => {\n if (is.empty(result)) {\n return;\n }\n if (useStorage) {\n try {\n window.localStorage.setItem(`${prefix}-${id}`, JSON.stringify({\n content: result\n }));\n } catch {}\n }\n update(container, result);\n }).catch(() => {});\n }\n }\n\n // ==========================================================================\n // Time utils\n // ==========================================================================\n\n\n // Time helpers\n const getHours = value => Math.trunc(value / 60 / 60 % 60, 10);\n const getMinutes = value => Math.trunc(value / 60 % 60, 10);\n const getSeconds = value => Math.trunc(value % 60, 10);\n\n // Format time to UI friendly string\n function formatTime(time = 0, displayHours = false, inverted = false) {\n // Bail if the value isn't a number\n if (!is.number(time)) {\n return formatTime(undefined, displayHours, inverted);\n }\n\n // Format time component to add leading zero\n const format = value => `0${value}`.slice(-2);\n // Breakdown to hours, mins, secs\n let hours = getHours(time);\n const mins = getMinutes(time);\n const secs = getSeconds(time);\n\n // Do we need to display hours?\n if (displayHours || hours > 0) {\n hours = `${hours}:`;\n } else {\n hours = '';\n }\n\n // Render\n return `${inverted && time > 0 ? '-' : ''}${hours}${format(mins)}:${format(secs)}`;\n }\n\n // ==========================================================================\n // Plyr controls\n // TODO: This needs to be split into smaller files and cleaned up\n // ==========================================================================\n\n\n // TODO: Don't export a massive object - break down and create class\n const controls = {\n // Get icon URL\n getIconUrl() {\n const url = new URL(this.config.iconUrl, window.location);\n const host = window.location.host ? window.location.host : window.top.location.host;\n const cors = url.host !== host || browser.isIE && !window.svg4everybody;\n return {\n url: this.config.iconUrl,\n cors\n };\n },\n // Find the UI controls\n findElements() {\n try {\n this.elements.controls = getElement.call(this, this.config.selectors.controls.wrapper);\n\n // Buttons\n this.elements.buttons = {\n play: getElements.call(this, this.config.selectors.buttons.play),\n pause: getElement.call(this, this.config.selectors.buttons.pause),\n restart: getElement.call(this, this.config.selectors.buttons.restart),\n rewind: getElement.call(this, this.config.selectors.buttons.rewind),\n fastForward: getElement.call(this, this.config.selectors.buttons.fastForward),\n mute: getElement.call(this, this.config.selectors.buttons.mute),\n pip: getElement.call(this, this.config.selectors.buttons.pip),\n airplay: getElement.call(this, this.config.selectors.buttons.airplay),\n settings: getElement.call(this, this.config.selectors.buttons.settings),\n captions: getElement.call(this, this.config.selectors.buttons.captions),\n fullscreen: getElement.call(this, this.config.selectors.buttons.fullscreen)\n };\n\n // Progress\n this.elements.progress = getElement.call(this, this.config.selectors.progress);\n\n // Inputs\n this.elements.inputs = {\n seek: getElement.call(this, this.config.selectors.inputs.seek),\n volume: getElement.call(this, this.config.selectors.inputs.volume)\n };\n\n // Display\n this.elements.display = {\n buffer: getElement.call(this, this.config.selectors.display.buffer),\n currentTime: getElement.call(this, this.config.selectors.display.currentTime),\n duration: getElement.call(this, this.config.selectors.display.duration)\n };\n\n // Seek tooltip\n if (is.element(this.elements.progress)) {\n this.elements.display.seekTooltip = this.elements.progress.querySelector(`.${this.config.classNames.tooltip}`);\n }\n return true;\n } catch (error) {\n // Log it\n this.debug.warn('It looks like there is a problem with your custom controls HTML', error);\n\n // Restore native video controls\n this.toggleNativeControls(true);\n return false;\n }\n },\n // Create icon\n createIcon(type, attributes) {\n const namespace = 'http://www.w3.org/2000/svg';\n const iconUrl = controls.getIconUrl.call(this);\n const iconPath = `${!iconUrl.cors ? iconUrl.url : ''}#${this.config.iconPrefix}`;\n // Create \n const icon = document.createElementNS(namespace, 'svg');\n setAttributes(icon, extend(attributes, {\n 'aria-hidden': 'true',\n 'focusable': 'false'\n }));\n\n // Create the to reference sprite\n const use = document.createElementNS(namespace, 'use');\n const path = `${iconPath}-${type}`;\n\n // Set `href` attributes\n // https://github.com/sampotts/plyr/issues/460\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/xlink:href\n if ('href' in use) {\n use.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n }\n\n // Always set the older attribute even though it's \"deprecated\" (it'll be around for ages)\n use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', path);\n\n // Add to \n icon.appendChild(use);\n return icon;\n },\n // Create hidden text label\n createLabel(key, attr = {}) {\n const text = i18n.get(key, this.config);\n const attributes = {\n ...attr,\n class: [attr.class, this.config.classNames.hidden].filter(Boolean).join(' ')\n };\n return createElement('span', attributes, text);\n },\n // Create a badge\n createBadge(text) {\n if (is.empty(text)) {\n return null;\n }\n const badge = createElement('span', {\n class: this.config.classNames.menu.value\n });\n badge.appendChild(createElement('span', {\n class: this.config.classNames.menu.badge\n }, text));\n return badge;\n },\n // Create a
`);\n }\n\n // Set position\n tipElement.style.left = `${percent}%`;\n\n // Show/hide the tooltip\n // If the event is a moues in/out and percentage is inside bounds\n if (is.event(event) && ['mouseenter', 'mouseleave'].includes(event.type)) {\n toggle(event.type === 'mouseenter');\n }\n },\n // Handle time change event\n timeUpdate(event) {\n // Only invert if only one time element is displayed and used for both duration and currentTime\n const invert = !is.element(this.elements.display.duration) && this.config.invertTime;\n\n // Duration\n controls.updateTimeDisplay.call(this, this.elements.display.currentTime, invert ? this.duration - this.currentTime : this.currentTime, invert);\n\n // Ignore updates while seeking\n if (event && event.type === 'timeupdate' && this.media.seeking) {\n return;\n }\n\n // Playing progress\n controls.updateProgress.call(this, event);\n },\n // Show the duration on metadataloaded or durationchange events\n durationUpdate() {\n // Bail if no UI or durationchange event triggered after playing/seek when invertTime is false\n if (!this.supported.ui || !this.config.invertTime && this.currentTime) {\n return;\n }\n\n // If duration is the 2**32 (shaka), Infinity (HLS), DASH-IF (Number.MAX_SAFE_INTEGER || Number.MAX_VALUE) indicating live we hide the currentTime and progressbar.\n // https://github.com/video-dev/hls.js/blob/5820d29d3c4c8a46e8b75f1e3afa3e68c1a9a2db/src/controller/buffer-controller.js#L415\n // https://github.com/google/shaka-player/blob/4d889054631f4e1cf0fbd80ddd2b71887c02e232/lib/media/streaming_engine.js#L1062\n // https://github.com/Dash-Industry-Forum/dash.js/blob/69859f51b969645b234666800d4cb596d89c602d/src/dash/models/DashManifestModel.js#L338\n if (this.duration >= 2 ** 32) {\n toggleHidden(this.elements.display.currentTime, true);\n toggleHidden(this.elements.progress, true);\n return;\n }\n\n // Update ARIA values\n if (is.element(this.elements.inputs.seek)) {\n this.elements.inputs.seek.setAttribute('aria-valuemax', this.duration);\n }\n\n // If there's a spot to display duration\n const hasDuration = is.element(this.elements.display.duration);\n\n // If there's only one time display, display duration there\n if (!hasDuration && this.config.displayDuration && this.paused) {\n controls.updateTimeDisplay.call(this, this.elements.display.currentTime, this.duration);\n }\n\n // If there's a duration element, update content\n if (hasDuration) {\n controls.updateTimeDisplay.call(this, this.elements.display.duration, this.duration);\n }\n if (this.config.markers.enabled) {\n controls.setMarkers.call(this);\n }\n\n // Update the tooltip (if visible)\n controls.updateSeekTooltip.call(this);\n },\n // Hide/show a tab\n toggleMenuButton(setting, toggle) {\n toggleHidden(this.elements.settings.buttons[setting], !toggle);\n },\n // Update the selected setting\n updateSetting(setting, container, input) {\n const pane = this.elements.settings.panels[setting];\n let value = null;\n let list = container;\n if (setting === 'captions') {\n value = this.currentTrack;\n } else {\n value = !is.empty(input) ? input : this[setting];\n\n // Get default\n if (is.empty(value)) {\n value = this.config[setting].default;\n }\n\n // Unsupported value\n if (!is.empty(this.options[setting]) && !this.options[setting].includes(value)) {\n this.debug.warn(`Unsupported value of '${value}' for ${setting}`);\n return;\n }\n\n // Disabled value\n if (!this.config[setting].options.includes(value)) {\n this.debug.warn(`Disabled value of '${value}' for ${setting}`);\n return;\n }\n }\n\n // Get the list if we need to\n if (!is.element(list)) {\n list = pane && pane.querySelector('[role=\"menu\"]');\n }\n\n // If there's no list it means it's not been rendered...\n if (!is.element(list)) {\n return;\n }\n\n // Update the label\n const label = this.elements.settings.buttons[setting].querySelector(`.${this.config.classNames.menu.value}`);\n label.innerHTML = controls.getLabel.call(this, setting, value);\n\n // Find the radio option and check it\n const target = list && list.querySelector(`[value=\"${value}\"]`);\n if (is.element(target)) {\n target.checked = true;\n }\n },\n // Translate a value into a nice label\n getLabel(setting, value) {\n switch (setting) {\n case 'speed':\n return value === 1 ? i18n.get('normal', this.config) : `${value}×`;\n case 'quality':\n if (is.number(value)) {\n const label = i18n.get(`qualityLabel.${value}`, this.config);\n if (!label.length) {\n return `${value}p`;\n }\n return label;\n }\n return toTitleCase(value);\n case 'captions':\n return captions.getLabel.call(this);\n default:\n return null;\n }\n },\n // Set the quality menu\n setQualityMenu(options) {\n // Menu required\n if (!is.element(this.elements.settings.panels.quality)) {\n return;\n }\n const type = 'quality';\n const list = this.elements.settings.panels.quality.querySelector('[role=\"menu\"]');\n\n // Set options if passed and filter based on uniqueness and config\n if (is.array(options)) {\n this.options.quality = dedupe(options).filter(quality => this.config.quality.options.includes(quality));\n }\n\n // Toggle the pane and tab\n const toggle = !is.empty(this.options.quality) && this.options.quality.length > 1;\n controls.toggleMenuButton.call(this, type, toggle);\n\n // Empty the menu\n emptyElement(list);\n\n // Check if we need to toggle the parent\n controls.checkMenu.call(this);\n\n // If we're hiding, nothing more to do\n if (!toggle) {\n return;\n }\n\n // Get the badge HTML for HD, 4K etc\n const getBadge = quality => {\n const label = i18n.get(`qualityBadge.${quality}`, this.config);\n if (!label.length) {\n return null;\n }\n return controls.createBadge.call(this, label);\n };\n\n // Sort options by the config and then render options\n this.options.quality.sort((a, b) => {\n const sorting = this.config.quality.options;\n return sorting.indexOf(a) > sorting.indexOf(b) ? 1 : -1;\n }).forEach(quality => {\n controls.createMenuItem.call(this, {\n value: quality,\n list,\n type,\n title: controls.getLabel.call(this, 'quality', quality),\n badge: getBadge(quality)\n });\n });\n controls.updateSetting.call(this, type, list);\n },\n // Set the looping options\n /* setLoopMenu() {\n // Menu required\n if (!is.element(this.elements.settings.panels.loop)) {\n return;\n }\n const options = ['start', 'end', 'all', 'reset'];\n const list = this.elements.settings.panels.loop.querySelector('[role=\"menu\"]');\n // Show the pane and tab\n toggleHidden(this.elements.settings.buttons.loop, false);\n toggleHidden(this.elements.settings.panels.loop, false);\n // Toggle the pane and tab\n const toggle = !is.empty(this.loop.options);\n controls.toggleMenuButton.call(this, 'loop', toggle);\n // Empty the menu\n emptyElement(list);\n options.forEach(option => {\n const item = createElement('li');\n const button = createElement(\n 'button',\n extend(getAttributesFromSelector(this.config.selectors.buttons.loop), {\n type: 'button',\n class: this.config.classNames.control,\n 'data-plyr-loop-action': option,\n }),\n i18n.get(option, this.config)\n );\n if (['start', 'end'].includes(option)) {\n const badge = controls.createBadge.call(this, '00:00');\n button.appendChild(badge);\n }\n item.appendChild(button);\n list.appendChild(item);\n });\n }, */\n\n // Get current selected caption language\n // TODO: rework this to user the getter in the API?\n\n // Set a list of available captions languages\n setCaptionsMenu() {\n // Menu required\n if (!is.element(this.elements.settings.panels.captions)) {\n return;\n }\n\n // TODO: Captions or language? Currently it's mixed\n const type = 'captions';\n const list = this.elements.settings.panels.captions.querySelector('[role=\"menu\"]');\n const tracks = captions.getTracks.call(this);\n const toggle = Boolean(tracks.length);\n\n // Toggle the pane and tab\n controls.toggleMenuButton.call(this, type, toggle);\n\n // Empty the menu\n emptyElement(list);\n\n // Check if we need to toggle the parent\n controls.checkMenu.call(this);\n\n // If there's no captions, bail\n if (!toggle) {\n return;\n }\n\n // Generate options data\n const options = tracks.map((track, value) => ({\n value,\n checked: this.captions.toggled && this.currentTrack === value,\n title: captions.getLabel.call(this, track),\n badge: track.language && controls.createBadge.call(this, track.language.toUpperCase()),\n list,\n type: 'language'\n }));\n\n // Add the \"Disabled\" option to turn off captions\n options.unshift({\n value: -1,\n checked: !this.captions.toggled,\n title: i18n.get('disabled', this.config),\n list,\n type: 'language'\n });\n\n // Generate options\n options.forEach(controls.createMenuItem.bind(this));\n controls.updateSetting.call(this, type, list);\n },\n // Set a list of available captions languages\n setSpeedMenu() {\n // Menu required\n if (!is.element(this.elements.settings.panels.speed)) {\n return;\n }\n const type = 'speed';\n const list = this.elements.settings.panels.speed.querySelector('[role=\"menu\"]');\n\n // Filter out invalid speeds\n this.options.speed = this.options.speed.filter(o => o >= this.minimumSpeed && o <= this.maximumSpeed);\n\n // Toggle the pane and tab\n const toggle = !is.empty(this.options.speed) && this.options.speed.length > 1;\n controls.toggleMenuButton.call(this, type, toggle);\n\n // Empty the menu\n emptyElement(list);\n\n // Check if we need to toggle the parent\n controls.checkMenu.call(this);\n\n // If we're hiding, nothing more to do\n if (!toggle) {\n return;\n }\n\n // Create items\n this.options.speed.forEach(speed => {\n controls.createMenuItem.call(this, {\n value: speed,\n list,\n type,\n title: controls.getLabel.call(this, 'speed', speed)\n });\n });\n controls.updateSetting.call(this, type, list);\n },\n // Check if we need to hide/show the settings menu\n checkMenu() {\n const {\n buttons\n } = this.elements.settings;\n const visible = !is.empty(buttons) && Object.values(buttons).some(button => !button.hidden);\n toggleHidden(this.elements.settings.menu, !visible);\n },\n // Focus the first menu item in a given (or visible) menu\n focusFirstMenuItem(pane, focusVisible = false) {\n if (this.elements.settings.popup.hidden) {\n return;\n }\n let target = pane;\n if (!is.element(target)) {\n target = Object.values(this.elements.settings.panels).find(p => !p.hidden);\n }\n const firstItem = target.querySelector('[role^=\"menuitem\"]');\n setFocus.call(this, firstItem, focusVisible);\n },\n // Show/hide menu\n toggleMenu(input) {\n const {\n popup\n } = this.elements.settings;\n const button = this.elements.buttons.settings;\n\n // Menu and button are required\n if (!is.element(popup) || !is.element(button)) {\n return;\n }\n\n // True toggle by default\n const {\n hidden\n } = popup;\n let show = hidden;\n if (is.boolean(input)) {\n show = input;\n } else if (is.keyboardEvent(input) && input.key === 'Escape') {\n show = false;\n } else if (is.event(input)) {\n // If Plyr is in a shadowDOM, the event target is set to the component, instead of the\n // Element in the shadowDOM. The path, if available, is complete.\n const target = is.function(input.composedPath) ? input.composedPath()[0] : input.target;\n const isMenuItem = popup.contains(target);\n\n // If the click was inside the menu or if the click\n // wasn't the button or menu item and we're trying to\n // show the menu (a doc click shouldn't show the menu)\n if (isMenuItem || !isMenuItem && input.target !== button && show) {\n return;\n }\n }\n\n // Set button attributes\n button.setAttribute('aria-expanded', show);\n\n // Show the actual popup\n toggleHidden(popup, !show);\n\n // Add class hook\n toggleClass(this.elements.container, this.config.classNames.menu.open, show);\n\n // Focus the first item if key interaction\n if (show && is.keyboardEvent(input)) {\n controls.focusFirstMenuItem.call(this, null, true);\n } else if (!show && !hidden) {\n // If closing, re-focus the button\n setFocus.call(this, button, is.keyboardEvent(input));\n }\n },\n // Get the natural size of a menu panel\n getMenuSize(tab) {\n const clone = tab.cloneNode(true);\n clone.style.position = 'absolute';\n clone.style.opacity = 0;\n clone.removeAttribute('hidden');\n\n // Append to parent so we get the \"real\" size\n tab.parentNode.appendChild(clone);\n\n // Get the sizes before we remove\n const width = clone.scrollWidth;\n const height = clone.scrollHeight;\n\n // Remove from the DOM\n removeElement(clone);\n return {\n width,\n height\n };\n },\n // Show a panel in the menu\n showMenuPanel(type = '', focusVisible = false) {\n const target = this.elements.container.querySelector(`#plyr-settings-${this.id}-${type}`);\n\n // Nothing to show, bail\n if (!is.element(target)) {\n return;\n }\n\n // Hide all other panels\n const container = target.parentNode;\n const current = Array.from(container.children).find(node => !node.hidden);\n\n // If we can do fancy animations, we'll animate the height/width\n if (support.transitions && !support.reducedMotion) {\n // Set the current width as a base\n container.style.width = `${current.scrollWidth}px`;\n container.style.height = `${current.scrollHeight}px`;\n\n // Get potential sizes\n const size = controls.getMenuSize.call(this, target);\n\n // Restore auto height/width\n const restore = event => {\n // We're only bothered about height and width on the container\n if (event.target !== container || !['width', 'height'].includes(event.propertyName)) {\n return;\n }\n\n // Revert back to auto\n container.style.width = '';\n container.style.height = '';\n\n // Only listen once\n off.call(this, container, transitionEndEvent, restore);\n };\n\n // Listen for the transition finishing and restore auto height/width\n on.call(this, container, transitionEndEvent, restore);\n\n // Set dimensions to target\n container.style.width = `${size.width}px`;\n container.style.height = `${size.height}px`;\n }\n\n // Set attributes on current tab\n toggleHidden(current, true);\n\n // Set attributes on target\n toggleHidden(target, false);\n\n // Focus the first item\n controls.focusFirstMenuItem.call(this, target, focusVisible);\n },\n // Set the download URL\n setDownloadUrl() {\n const button = this.elements.buttons.download;\n\n // Bail if no button\n if (!is.element(button)) {\n return;\n }\n\n // Set attribute\n button.setAttribute('href', this.download);\n },\n // Build the default HTML\n create(data) {\n const {\n bindMenuItemShortcuts,\n createButton,\n createProgress,\n createRange,\n createTime,\n setQualityMenu,\n setSpeedMenu,\n showMenuPanel\n } = controls;\n this.elements.controls = null;\n\n // Larger overlaid play button\n if (is.array(this.config.controls) && this.config.controls.includes('play-large')) {\n this.elements.container.appendChild(createButton.call(this, 'play-large'));\n }\n\n // Create the container\n const container = createElement('div', getAttributesFromSelector(this.config.selectors.controls.wrapper));\n this.elements.controls = container;\n\n // Default item attributes\n const defaultAttributes = {\n class: 'plyr__controls__item'\n };\n\n // Loop through controls in order\n dedupe(is.array(this.config.controls) ? this.config.controls : []).forEach(control => {\n // Restart button\n if (control === 'restart') {\n container.appendChild(createButton.call(this, 'restart', defaultAttributes));\n }\n\n // Rewind button\n if (control === 'rewind') {\n container.appendChild(createButton.call(this, 'rewind', defaultAttributes));\n }\n\n // Play/Pause button\n if (control === 'play') {\n container.appendChild(createButton.call(this, 'play', defaultAttributes));\n }\n\n // Fast forward button\n if (control === 'fast-forward') {\n container.appendChild(createButton.call(this, 'fast-forward', defaultAttributes));\n }\n\n // Progress\n if (control === 'progress') {\n const progressContainer = createElement('div', {\n class: `${defaultAttributes.class} plyr__progress__container`\n });\n const progress = createElement('div', getAttributesFromSelector(this.config.selectors.progress));\n\n // Seek range slider\n progress.appendChild(createRange.call(this, 'seek', {\n id: `plyr-seek-${data.id}`\n }));\n\n // Buffer progress\n progress.appendChild(createProgress.call(this, 'buffer'));\n\n // TODO: Add loop display indicator\n\n // Seek tooltip\n if (this.config.tooltips.seek) {\n const tooltip = createElement('span', {\n class: this.config.classNames.tooltip\n }, '00:00');\n progress.appendChild(tooltip);\n this.elements.display.seekTooltip = tooltip;\n }\n this.elements.progress = progress;\n progressContainer.appendChild(this.elements.progress);\n container.appendChild(progressContainer);\n }\n\n // Media current time display\n if (control === 'current-time') {\n container.appendChild(createTime.call(this, 'currentTime', defaultAttributes));\n }\n\n // Media duration display\n if (control === 'duration') {\n container.appendChild(createTime.call(this, 'duration', defaultAttributes));\n }\n\n // Volume controls\n if (control === 'mute' || control === 'volume') {\n let {\n volume\n } = this.elements;\n\n // Create the volume container if needed\n if (!is.element(volume) || !container.contains(volume)) {\n volume = createElement('div', extend({}, defaultAttributes, {\n class: `${defaultAttributes.class} plyr__volume`.trim()\n }));\n this.elements.volume = volume;\n container.appendChild(volume);\n }\n\n // Toggle mute button\n if (control === 'mute') {\n volume.appendChild(createButton.call(this, 'mute'));\n }\n\n // Volume range control\n // Ignored on iOS as it's handled globally\n // https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Device-SpecificConsiderations/Device-SpecificConsiderations.html\n if (control === 'volume' && !browser.isIos && !browser.isIPadOS) {\n // Set the attributes\n const attributes = {\n max: 1,\n step: 0.05,\n value: this.config.volume\n };\n\n // Create the volume range slider\n volume.appendChild(createRange.call(this, 'volume', extend(attributes, {\n id: `plyr-volume-${data.id}`\n })));\n }\n }\n\n // Toggle captions button\n if (control === 'captions') {\n container.appendChild(createButton.call(this, 'captions', defaultAttributes));\n }\n\n // Settings button / menu\n if (control === 'settings' && !is.empty(this.config.settings)) {\n const wrapper = createElement('div', extend({}, defaultAttributes, {\n class: `${defaultAttributes.class} plyr__menu`.trim(),\n hidden: ''\n }));\n wrapper.appendChild(createButton.call(this, 'settings', {\n 'aria-haspopup': true,\n 'aria-controls': `plyr-settings-${data.id}`,\n 'aria-expanded': false\n }));\n const popup = createElement('div', {\n class: 'plyr__menu__container',\n id: `plyr-settings-${data.id}`,\n hidden: ''\n });\n const inner = createElement('div');\n const home = createElement('div', {\n id: `plyr-settings-${data.id}-home`\n });\n\n // Create the menu\n const menu = createElement('div', {\n role: 'menu'\n });\n home.appendChild(menu);\n inner.appendChild(home);\n this.elements.settings.panels.home = home;\n\n // Build the menu items\n this.config.settings.forEach(type => {\n // TODO: bundle this with the createMenuItem helper and bindings\n const menuItem = createElement('button', extend(getAttributesFromSelector(this.config.selectors.buttons.settings), {\n 'type': 'button',\n 'class': `${this.config.classNames.control} ${this.config.classNames.control}--forward`,\n 'role': 'menuitem',\n 'aria-haspopup': true,\n 'hidden': ''\n }));\n\n // Bind menu shortcuts for keyboard users\n bindMenuItemShortcuts.call(this, menuItem, type);\n\n // Show menu on click\n on.call(this, menuItem, 'click', () => {\n showMenuPanel.call(this, type, false);\n });\n const flex = createElement('span', null, i18n.get(type, this.config));\n const value = createElement('span', {\n class: this.config.classNames.menu.value\n });\n\n // Speed contains HTML entities\n value.innerHTML = data[type];\n flex.appendChild(value);\n menuItem.appendChild(flex);\n menu.appendChild(menuItem);\n\n // Build the panes\n const pane = createElement('div', {\n id: `plyr-settings-${data.id}-${type}`,\n hidden: ''\n });\n\n // Back button\n const backButton = createElement('button', {\n type: 'button',\n class: `${this.config.classNames.control} ${this.config.classNames.control}--back`\n });\n\n // Visible label\n backButton.appendChild(createElement('span', {\n 'aria-hidden': true\n }, i18n.get(type, this.config)));\n\n // Screen reader label\n backButton.appendChild(createElement('span', {\n class: this.config.classNames.hidden\n }, i18n.get('menuBack', this.config)));\n\n // Go back via keyboard\n on.call(this, pane, 'keydown', event => {\n if (event.key !== 'ArrowLeft') return;\n\n // Prevent seek\n event.preventDefault();\n event.stopPropagation();\n\n // Show the respective menu\n showMenuPanel.call(this, 'home', true);\n }, false);\n\n // Go back via button click\n on.call(this, backButton, 'click', () => {\n showMenuPanel.call(this, 'home', false);\n });\n\n // Add to pane\n pane.appendChild(backButton);\n\n // Menu\n pane.appendChild(createElement('div', {\n role: 'menu'\n }));\n inner.appendChild(pane);\n this.elements.settings.buttons[type] = menuItem;\n this.elements.settings.panels[type] = pane;\n });\n popup.appendChild(inner);\n wrapper.appendChild(popup);\n container.appendChild(wrapper);\n this.elements.settings.popup = popup;\n this.elements.settings.menu = wrapper;\n }\n\n // Picture in picture button\n if (control === 'pip' && support.pip) {\n container.appendChild(createButton.call(this, 'pip', defaultAttributes));\n }\n\n // Airplay button\n if (control === 'airplay' && support.airplay) {\n container.appendChild(createButton.call(this, 'airplay', defaultAttributes));\n }\n\n // Download button\n if (control === 'download') {\n const attributes = extend({}, defaultAttributes, {\n element: 'a',\n href: this.download,\n target: '_blank'\n });\n\n // Set download attribute for HTML5 only\n if (this.isHTML5) {\n attributes.download = '';\n }\n const {\n download\n } = this.config.urls;\n if (!is.url(download) && this.isEmbed) {\n extend(attributes, {\n icon: `logo-${this.provider}`,\n label: this.provider\n });\n }\n container.appendChild(createButton.call(this, 'download', attributes));\n }\n\n // Toggle fullscreen button\n if (control === 'fullscreen') {\n container.appendChild(createButton.call(this, 'fullscreen', defaultAttributes));\n }\n });\n\n // Set available quality levels\n if (this.isHTML5) {\n setQualityMenu.call(this, html5.getQualityOptions.call(this));\n }\n setSpeedMenu.call(this);\n return container;\n },\n // Insert controls\n inject() {\n // Sprite\n if (this.config.loadSprite) {\n const icon = controls.getIconUrl.call(this);\n\n // Only load external sprite using AJAX\n if (icon.cors) {\n loadSprite(icon.url, 'sprite-plyr');\n }\n }\n\n // Create a unique ID\n this.id = Math.floor(Math.random() * 10000);\n\n // Null by default\n let container = null;\n this.elements.controls = null;\n\n // Set template properties\n const props = {\n id: this.id,\n seektime: this.config.seekTime,\n title: this.config.title\n };\n let update = true;\n\n // If function, run it and use output\n if (is.function(this.config.controls)) {\n this.config.controls = this.config.controls.call(this, props);\n }\n\n // Convert falsy controls to empty array (primarily for empty strings)\n if (!this.config.controls) {\n this.config.controls = [];\n }\n if (is.element(this.config.controls) || is.string(this.config.controls)) {\n // HTMLElement or Non-empty string passed as the option\n container = this.config.controls;\n } else {\n // Create controls\n container = controls.create.call(this, {\n id: this.id,\n seektime: this.config.seekTime,\n speed: this.speed,\n quality: this.quality,\n captions: captions.getLabel.call(this)\n // TODO: Looping\n // loop: 'None',\n });\n update = false;\n }\n\n // Replace props with their value\n const replace = input => {\n let result = input;\n Object.entries(props).forEach(([key, value]) => {\n result = replaceAll(result, `{${key}}`, value);\n });\n return result;\n };\n\n // Update markup\n if (update) {\n if (is.string(this.config.controls)) {\n container = replace(container);\n }\n }\n\n // Controls container\n let target;\n\n // Inject to custom location\n if (is.string(this.config.selectors.controls.container)) {\n target = document.querySelector(this.config.selectors.controls.container);\n }\n\n // Inject into the container by default\n if (!is.element(target)) {\n target = this.elements.container;\n }\n\n // Inject controls HTML (needs to be before captions, hence \"afterbegin\")\n const insertMethod = is.element(container) ? 'insertAdjacentElement' : 'insertAdjacentHTML';\n target[insertMethod]('afterbegin', container);\n\n // Find the elements if need be\n if (!is.element(this.elements.controls)) {\n controls.findElements.call(this);\n }\n\n // Add pressed property to buttons\n if (!is.empty(this.elements.buttons)) {\n const addProperty = button => {\n const className = this.config.classNames.controlPressed;\n button.setAttribute('aria-pressed', 'false');\n Object.defineProperty(button, 'pressed', {\n configurable: true,\n enumerable: true,\n get() {\n return hasClass(button, className);\n },\n set(pressed = false) {\n toggleClass(button, className, pressed);\n button.setAttribute('aria-pressed', pressed ? 'true' : 'false');\n }\n });\n };\n\n // Toggle classname when pressed property is set\n Object.values(this.elements.buttons).filter(Boolean).forEach(button => {\n if (is.array(button) || is.nodeList(button)) {\n Array.from(button).filter(Boolean).forEach(addProperty);\n } else {\n addProperty(button);\n }\n });\n }\n\n // Edge sometimes doesn't finish the paint so force a repaint\n if (browser.isEdge) {\n repaint(target);\n }\n\n // Setup tooltips\n if (this.config.tooltips.controls) {\n const {\n classNames,\n selectors\n } = this.config;\n const selector = `${selectors.controls.wrapper} ${selectors.labels} .${classNames.hidden}`;\n const labels = getElements.call(this, selector);\n Array.from(labels).forEach(label => {\n toggleClass(label, this.config.classNames.hidden, false);\n toggleClass(label, this.config.classNames.tooltip, true);\n });\n }\n },\n // Set media metadata\n setMediaMetadata() {\n try {\n if ('mediaSession' in navigator) {\n navigator.mediaSession.metadata = new window.MediaMetadata({\n title: this.config.mediaMetadata.title,\n artist: this.config.mediaMetadata.artist,\n album: this.config.mediaMetadata.album,\n artwork: this.config.mediaMetadata.artwork\n });\n }\n } catch {\n // Do nothing\n }\n },\n // Add markers\n setMarkers() {\n var _this$config$markers2, _this$config$markers3;\n if (!this.duration || this.elements.markers) return;\n\n // Get valid points\n const points = (_this$config$markers2 = this.config.markers) === null || _this$config$markers2 === void 0 ? void 0 : (_this$config$markers3 = _this$config$markers2.points) === null || _this$config$markers3 === void 0 ? void 0 : _this$config$markers3.filter(({\n time\n }) => time > 0 && time < this.duration);\n if (!(points !== null && points !== void 0 && points.length)) return;\n const containerFragment = document.createDocumentFragment();\n const pointsFragment = document.createDocumentFragment();\n let tipElement = null;\n const tipVisible = `${this.config.classNames.tooltip}--visible`;\n const toggleTip = show => toggleClass(tipElement, tipVisible, show);\n\n // Inject markers to progress container\n points.forEach(point => {\n const markerElement = createElement('span', {\n class: this.config.classNames.marker\n }, '');\n const left = `${point.time / this.duration * 100}%`;\n if (tipElement) {\n // Show on hover\n markerElement.addEventListener('mouseenter', () => {\n if (point.label) return;\n tipElement.style.left = left;\n tipElement.innerHTML = point.label;\n toggleTip(true);\n });\n\n // Hide on leave\n markerElement.addEventListener('mouseleave', () => {\n toggleTip(false);\n });\n }\n markerElement.addEventListener('click', () => {\n this.currentTime = point.time;\n });\n markerElement.style.left = left;\n pointsFragment.appendChild(markerElement);\n });\n containerFragment.appendChild(pointsFragment);\n\n // Inject a tooltip if needed\n if (!this.config.tooltips.seek) {\n tipElement = createElement('span', {\n class: this.config.classNames.tooltip\n }, '');\n containerFragment.appendChild(tipElement);\n }\n this.elements.markers = {\n points: pointsFragment,\n tip: tipElement\n };\n this.elements.progress.appendChild(containerFragment);\n }\n };\n\n // ==========================================================================\n // URL utils\n // ==========================================================================\n\n\n /**\n * Parse a string to a URL object\n * @param {string} input - the URL to be parsed\n * @param {boolean} safe - failsafe parsing\n */\n function parseUrl(input, safe = true) {\n let url = input;\n if (safe) {\n const parser = document.createElement('a');\n parser.href = url;\n url = parser.href;\n }\n try {\n return new URL(url);\n } catch {\n return null;\n }\n }\n\n // Convert object to URLSearchParams\n function buildUrlParams(input) {\n const params = new URLSearchParams();\n if (is.object(input)) {\n Object.entries(input).forEach(([key, value]) => {\n params.set(key, value);\n });\n }\n return params;\n }\n\n // ==========================================================================\n // Plyr Captions\n // TODO: Create as class\n // ==========================================================================\n\n const captions = {\n // Setup captions\n setup() {\n // Requires UI support\n if (!this.supported.ui) {\n return;\n }\n\n // Only Vimeo and HTML5 video supported at this point\n if (!this.isVideo || this.isYouTube || this.isHTML5 && !support.textTracks) {\n // Clear menu and hide\n if (is.array(this.config.controls) && this.config.controls.includes('settings') && this.config.settings.includes('captions')) {\n controls.setCaptionsMenu.call(this);\n }\n return;\n }\n\n // Inject the container\n if (!is.element(this.elements.captions)) {\n this.elements.captions = createElement('div', getAttributesFromSelector(this.config.selectors.captions));\n this.elements.captions.setAttribute('dir', 'auto');\n insertAfter(this.elements.captions, this.elements.wrapper);\n }\n\n // Fix IE captions if CORS is used\n // Fetch captions and inject as blobs instead (data URIs not supported!)\n if (browser.isIE && window.URL) {\n const elements = this.media.querySelectorAll('track');\n Array.from(elements).forEach(track => {\n const src = track.getAttribute('src');\n const url = parseUrl(src);\n if (url !== null && url.hostname !== window.location.href.hostname && ['http:', 'https:'].includes(url.protocol)) {\n fetch(src, 'blob').then(blob => {\n track.setAttribute('src', window.URL.createObjectURL(blob));\n }).catch(() => {\n removeElement(track);\n });\n }\n });\n }\n\n // Get and set initial data\n // The \"preferred\" options are not realized unless / until the wanted language has a match\n // * languages: Array of user's browser languages.\n // * language: The language preferred by user settings or config\n // * active: The state preferred by user settings or config\n // * toggled: The real captions state\n\n const browserLanguages = navigator.languages || [navigator.language || navigator.userLanguage || 'en'];\n const languages = dedupe(browserLanguages.map(language => language.split('-')[0]));\n let language = (this.storage.get('language') || this.captions.language || this.config.captions.language || 'auto').toLowerCase();\n\n // Use first browser language when language is 'auto'\n if (language === 'auto') {\n [language] = languages;\n }\n let active = this.storage.get('captions') || this.captions.active;\n if (!is.boolean(active)) {\n ({\n active\n } = this.config.captions);\n }\n Object.assign(this.captions, {\n toggled: false,\n active,\n language,\n languages\n });\n\n // Watch changes to textTracks and update captions menu\n if (this.isHTML5) {\n const trackEvents = this.config.captions.update ? 'addtrack removetrack' : 'removetrack';\n on.call(this, this.media.textTracks, trackEvents, captions.update.bind(this));\n }\n\n // Update available languages in list next tick (the event must not be triggered before the listeners)\n setTimeout(captions.update.bind(this), 0);\n },\n // Update available language options in settings based on tracks\n update() {\n const tracks = captions.getTracks.call(this, true);\n // Get the wanted language\n const {\n active,\n language,\n meta,\n currentTrackNode\n } = this.captions;\n const languageExists = Boolean(tracks.find(track => track.language === language));\n\n // Handle tracks (add event listener and \"pseudo\"-default)\n if (this.isHTML5 && this.isVideo) {\n tracks.filter(track => !meta.get(track)).forEach(track => {\n this.debug.log('Track added', track);\n\n // Attempt to store if the original dom element was \"default\"\n meta.set(track, {\n default: track.mode === 'showing'\n });\n\n // Turn off native caption rendering to avoid double captions\n // Note: mode='hidden' forces a track to download. To ensure every track\n // isn't downloaded at once, only 'showing' tracks should be reassigned\n\n if (track.mode === 'showing') {\n track.mode = 'hidden';\n }\n\n // Add event listener for cue changes\n on.call(this, track, 'cuechange', () => captions.updateCues.call(this));\n });\n }\n\n // Update language first time it matches, or if the previous matching track was removed\n if (languageExists && this.language !== language || !tracks.includes(currentTrackNode)) {\n captions.setLanguage.call(this, language);\n captions.toggle.call(this, active && languageExists);\n }\n\n // Enable or disable captions based on track length\n if (this.elements) {\n toggleClass(this.elements.container, this.config.classNames.captions.enabled, !is.empty(tracks));\n }\n\n // Update available languages in list\n if (is.array(this.config.controls) && this.config.controls.includes('settings') && this.config.settings.includes('captions')) {\n controls.setCaptionsMenu.call(this);\n }\n },\n // Toggle captions display\n // Used internally for the toggleCaptions method, with the passive option forced to false\n toggle(input, passive = true) {\n // If there's no full support\n if (!this.supported.ui) {\n return;\n }\n const {\n toggled\n } = this.captions; // Current state\n const activeClass = this.config.classNames.captions.active;\n // Get the next state\n // If the method is called without parameter, toggle based on current value\n const active = is.nullOrUndefined(input) ? !toggled : input;\n\n // Update state and trigger event\n if (active !== toggled) {\n // When passive, don't override user preferences\n if (!passive) {\n this.captions.active = active;\n this.storage.set({\n captions: active\n });\n }\n\n // Force language if the call isn't passive and there is no matching language to toggle to\n if (!this.language && active && !passive) {\n const tracks = captions.getTracks.call(this);\n const track = captions.findTrack.call(this, [this.captions.language, ...this.captions.languages], true);\n\n // Override user preferences to avoid switching languages if a matching track is added\n this.captions.language = track.language;\n\n // Set caption, but don't store in localStorage as user preference\n captions.set.call(this, tracks.indexOf(track));\n return;\n }\n\n // Toggle button if it's enabled\n if (this.elements.buttons.captions) {\n this.elements.buttons.captions.pressed = active;\n }\n\n // Add class hook\n toggleClass(this.elements.container, activeClass, active);\n this.captions.toggled = active;\n\n // Update settings menu\n controls.updateSetting.call(this, 'captions');\n\n // Trigger event (not used internally)\n triggerEvent.call(this, this.media, active ? 'captionsenabled' : 'captionsdisabled');\n }\n\n // Wait for the call stack to clear before setting mode='hidden'\n // on the active track - forcing the browser to download it\n setTimeout(() => {\n if (active && this.captions.toggled) {\n this.captions.currentTrackNode.mode = 'hidden';\n }\n });\n },\n // Set captions by track index\n // Used internally for the currentTrack setter with the passive option forced to false\n set(index, passive = true) {\n const tracks = captions.getTracks.call(this);\n\n // Disable captions if setting to -1\n if (index === -1) {\n captions.toggle.call(this, false, passive);\n return;\n }\n if (!is.number(index)) {\n this.debug.warn('Invalid caption argument', index);\n return;\n }\n if (!(index in tracks)) {\n this.debug.warn('Track not found', index);\n return;\n }\n if (this.captions.currentTrack !== index) {\n this.captions.currentTrack = index;\n const track = tracks[index];\n const {\n language\n } = track || {};\n\n // Store reference to node for invalidation on remove\n this.captions.currentTrackNode = track;\n\n // Update settings menu\n controls.updateSetting.call(this, 'captions');\n\n // When passive, don't override user preferences\n if (!passive) {\n this.captions.language = language;\n this.storage.set({\n language\n });\n }\n\n // Handle Vimeo captions\n if (this.isVimeo) {\n this.embed.enableTextTrack(language);\n }\n\n // Trigger event\n triggerEvent.call(this, this.media, 'languagechange');\n }\n\n // Show captions\n captions.toggle.call(this, true, passive);\n if (this.isHTML5 && this.isVideo) {\n // If we change the active track while a cue is already displayed we need to update it\n captions.updateCues.call(this);\n }\n },\n // Set captions by language\n // Used internally for the language setter with the passive option forced to false\n setLanguage(input, passive = true) {\n if (!is.string(input)) {\n this.debug.warn('Invalid language argument', input);\n return;\n }\n // Normalize\n const language = input.toLowerCase();\n this.captions.language = language;\n\n // Set currentTrack\n const tracks = captions.getTracks.call(this);\n const track = captions.findTrack.call(this, [language]);\n captions.set.call(this, tracks.indexOf(track), passive);\n },\n // Get current valid caption tracks\n // If update is false it will also ignore tracks without metadata\n // This is used to \"freeze\" the language options when captions.update is false\n getTracks(update = false) {\n // Handle media or textTracks missing or null\n const tracks = Array.from((this.media || {}).textTracks || []);\n // For HTML5, use cache instead of current tracks when it exists (if captions.update is false)\n // Filter out removed tracks and tracks that aren't captions/subtitles (for example metadata)\n return tracks.filter(track => !this.isHTML5 || update || this.captions.meta.has(track)).filter(track => ['captions', 'subtitles'].includes(track.kind));\n },\n // Match tracks based on languages and get the first\n findTrack(languages, force = false) {\n const tracks = captions.getTracks.call(this);\n const sortIsDefault = track => Number((this.captions.meta.get(track) || {}).default);\n const sorted = Array.from(tracks).sort((a, b) => sortIsDefault(b) - sortIsDefault(a));\n let track;\n languages.every(language => {\n track = sorted.find(t => t.language === language);\n return !track; // Break iteration if there is a match\n });\n\n // If no match is found but is required, get first\n return track || (force ? sorted[0] : undefined);\n },\n // Get the current track\n getCurrentTrack() {\n return captions.getTracks.call(this)[this.currentTrack];\n },\n // Get UI label for track\n getLabel(track) {\n let currentTrack = track;\n if (!is.track(currentTrack) && support.textTracks && this.captions.toggled) {\n currentTrack = captions.getCurrentTrack.call(this);\n }\n if (is.track(currentTrack)) {\n if (!is.empty(currentTrack.label)) {\n return currentTrack.label;\n }\n if (!is.empty(currentTrack.language)) {\n return track.language.toUpperCase();\n }\n return i18n.get('enabled', this.config);\n }\n return i18n.get('disabled', this.config);\n },\n // Update captions using current track's active cues\n // Also optional array argument in case there isn't any track (ex: vimeo)\n updateCues(input) {\n // Requires UI\n if (!this.supported.ui) {\n return;\n }\n if (!is.element(this.elements.captions)) {\n this.debug.warn('No captions element to render to');\n return;\n }\n\n // Only accept array or empty input\n if (!is.nullOrUndefined(input) && !Array.isArray(input)) {\n this.debug.warn('updateCues: Invalid input', input);\n return;\n }\n let cues = input;\n\n // Get cues from track\n if (!cues) {\n const track = captions.getCurrentTrack.call(this);\n cues = Array.from((track || {}).activeCues || []).map(cue => cue.getCueAsHTML()).map(getHTML);\n }\n\n // Set new caption text\n const content = cues.map(cueText => cueText.trim()).join('\\n');\n const changed = content !== this.elements.captions.innerHTML;\n if (changed) {\n // Empty the container and create a new child element\n emptyElement(this.elements.captions);\n const caption = createElement('span', getAttributesFromSelector(this.config.selectors.caption));\n caption.innerHTML = content;\n this.elements.captions.appendChild(caption);\n\n // Trigger event\n triggerEvent.call(this, this.media, 'cuechange');\n }\n }\n };\n\n // ==========================================================================\n // Plyr default config\n // ==========================================================================\n\n const defaults = {\n // Disable\n enabled: true,\n // Custom media title\n title: '',\n // Logging to console\n debug: false,\n // Auto play (if supported)\n autoplay: false,\n // Only allow one media playing at once (vimeo only)\n autopause: true,\n // Allow inline playback on iOS\n playsinline: true,\n // Default time to skip when rewind/fast forward\n seekTime: 10,\n // Default volume\n volume: 1,\n muted: false,\n // Pass a custom duration\n duration: null,\n // Display the media duration on load in the current time position\n // If you have opted to display both duration and currentTime, this is ignored\n displayDuration: true,\n // Invert the current time to be a countdown\n invertTime: true,\n // Clicking the currentTime inverts it's value to show time left rather than elapsed\n toggleInvert: true,\n // Force an aspect ratio\n // The format must be `'w:h'` (e.g. `'16:9'`)\n ratio: null,\n // Click video container to play/pause\n clickToPlay: true,\n // Auto hide the controls\n hideControls: true,\n // Reset to start when playback ended\n resetOnEnd: false,\n // Disable the standard context menu\n disableContextMenu: true,\n // Sprite (for icons)\n loadSprite: true,\n iconPrefix: 'plyr',\n iconUrl: 'https://cdn.plyr.io/3.8.3/plyr.svg',\n // Blank video (used to prevent errors on source change)\n blankVideo: 'https://cdn.plyr.io/static/blank.mp4',\n // Quality default\n quality: {\n default: 576,\n // The options to display in the UI, if available for the source media\n options: [4320, 2880, 2160, 1440, 1080, 720, 576, 480, 360, 240],\n forced: false,\n onChange: null\n },\n // Set loops\n loop: {\n active: false\n // start: null,\n // end: null,\n },\n // Speed default and options to display\n speed: {\n selected: 1,\n // The options to display in the UI, if available for the source media (e.g. Vimeo and YouTube only support 0.5x-4x)\n options: [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 4]\n },\n // Keyboard shortcut settings\n keyboard: {\n focused: true,\n global: false\n },\n // Display tooltips\n tooltips: {\n controls: false,\n seek: true\n },\n // Captions settings\n captions: {\n active: false,\n language: 'auto',\n // Listen to new tracks added after Plyr is initialized.\n // This is needed for streaming captions, but may result in unselectable options\n update: false\n },\n // Fullscreen settings\n fullscreen: {\n enabled: true,\n // Allow fullscreen?\n fallback: true,\n // Fallback using full viewport/window\n iosNative: false // Use the native fullscreen in iOS (disables custom controls)\n // Selector for the fullscreen container so contextual / non-player content can remain visible in fullscreen mode\n // Non-ancestors of the player element will be ignored\n // container: null, // defaults to the player element\n },\n // Local storage\n storage: {\n enabled: true,\n key: 'plyr'\n },\n // Default controls\n controls: ['play-large',\n // 'restart',\n // 'rewind',\n 'play',\n // 'fast-forward',\n 'progress', 'current-time',\n // 'duration',\n 'mute', 'volume', 'captions', 'settings', 'pip', 'airplay',\n // 'download',\n 'fullscreen'],\n settings: ['captions', 'quality', 'speed'],\n // Localisation\n i18n: {\n restart: 'Restart',\n rewind: 'Rewind {seektime}s',\n play: 'Play',\n pause: 'Pause',\n fastForward: 'Forward {seektime}s',\n seek: 'Seek',\n seekLabel: '{currentTime} of {duration}',\n played: 'Played',\n buffered: 'Buffered',\n currentTime: 'Current time',\n duration: 'Duration',\n volume: 'Volume',\n mute: 'Mute',\n unmute: 'Unmute',\n enableCaptions: 'Enable captions',\n disableCaptions: 'Disable captions',\n download: 'Download',\n enterFullscreen: 'Enter fullscreen',\n exitFullscreen: 'Exit fullscreen',\n frameTitle: 'Player for {title}',\n captions: 'Captions',\n settings: 'Settings',\n pip: 'PIP',\n menuBack: 'Go back to previous menu',\n speed: 'Speed',\n normal: 'Normal',\n quality: 'Quality',\n loop: 'Loop',\n start: 'Start',\n end: 'End',\n all: 'All',\n reset: 'Reset',\n disabled: 'Disabled',\n enabled: 'Enabled',\n advertisement: 'Ad',\n qualityBadge: {\n 2160: '4K',\n 1440: 'HD',\n 1080: 'HD',\n 720: 'HD',\n 576: 'SD',\n 480: 'SD'\n }\n },\n // URLs\n urls: {\n download: null,\n vimeo: {\n sdk: 'https://player.vimeo.com/api/player.js',\n iframe: 'https://player.vimeo.com/video/{0}?{1}',\n api: 'https://vimeo.com/api/oembed.json?url={0}'\n },\n youtube: {\n sdk: 'https://www.youtube.com/iframe_api',\n api: 'https://noembed.com/embed?url=https://www.youtube.com/watch?v={0}'\n },\n googleIMA: {\n sdk: 'https://imasdk.googleapis.com/js/sdkloader/ima3.js'\n }\n },\n // Custom control listeners\n listeners: {\n seek: null,\n play: null,\n pause: null,\n restart: null,\n rewind: null,\n fastForward: null,\n mute: null,\n volume: null,\n captions: null,\n download: null,\n fullscreen: null,\n pip: null,\n airplay: null,\n speed: null,\n quality: null,\n loop: null,\n language: null\n },\n // Events to watch and bubble\n events: [\n // Events to watch on HTML5 media elements and bubble\n // https://developer.mozilla.org/en/docs/Web/Guide/Events/Media_events\n 'ended', 'progress', 'stalled', 'playing', 'waiting', 'canplay', 'canplaythrough', 'loadstart', 'loadeddata', 'loadedmetadata', 'timeupdate', 'volumechange', 'play', 'pause', 'error', 'seeking', 'seeked', 'emptied', 'ratechange', 'cuechange',\n // Custom events\n 'download', 'enterfullscreen', 'exitfullscreen', 'captionsenabled', 'captionsdisabled', 'languagechange', 'controlshidden', 'controlsshown', 'ready',\n // YouTube\n 'statechange',\n // Quality\n 'qualitychange',\n // Ads\n 'adsloaded', 'adscontentpause', 'adscontentresume', 'adstarted', 'adsmidpoint', 'adscomplete', 'adsallcomplete', 'adsimpression', 'adsclick'],\n // Selectors\n // Change these to match your template if using custom HTML\n selectors: {\n editable: 'input, textarea, select, [contenteditable]',\n container: '.plyr',\n controls: {\n container: null,\n wrapper: '.plyr__controls'\n },\n labels: '[data-plyr]',\n buttons: {\n play: '[data-plyr=\"play\"]',\n pause: '[data-plyr=\"pause\"]',\n restart: '[data-plyr=\"restart\"]',\n rewind: '[data-plyr=\"rewind\"]',\n fastForward: '[data-plyr=\"fast-forward\"]',\n mute: '[data-plyr=\"mute\"]',\n captions: '[data-plyr=\"captions\"]',\n download: '[data-plyr=\"download\"]',\n fullscreen: '[data-plyr=\"fullscreen\"]',\n pip: '[data-plyr=\"pip\"]',\n airplay: '[data-plyr=\"airplay\"]',\n settings: '[data-plyr=\"settings\"]',\n loop: '[data-plyr=\"loop\"]'\n },\n inputs: {\n seek: '[data-plyr=\"seek\"]',\n volume: '[data-plyr=\"volume\"]',\n speed: '[data-plyr=\"speed\"]',\n language: '[data-plyr=\"language\"]',\n quality: '[data-plyr=\"quality\"]'\n },\n display: {\n currentTime: '.plyr__time--current',\n duration: '.plyr__time--duration',\n buffer: '.plyr__progress__buffer',\n loop: '.plyr__progress__loop',\n // Used later\n volume: '.plyr__volume--display'\n },\n progress: '.plyr__progress',\n captions: '.plyr__captions',\n caption: '.plyr__caption'\n },\n // Class hooks added to the player in different states\n classNames: {\n type: 'plyr--{0}',\n provider: 'plyr--{0}',\n video: 'plyr__video-wrapper',\n embed: 'plyr__video-embed',\n videoFixedRatio: 'plyr__video-wrapper--fixed-ratio',\n embedContainer: 'plyr__video-embed__container',\n poster: 'plyr__poster',\n posterEnabled: 'plyr__poster-enabled',\n ads: 'plyr__ads',\n control: 'plyr__control',\n controlPressed: 'plyr__control--pressed',\n playing: 'plyr--playing',\n paused: 'plyr--paused',\n stopped: 'plyr--stopped',\n loading: 'plyr--loading',\n hover: 'plyr--hover',\n tooltip: 'plyr__tooltip',\n cues: 'plyr__cues',\n marker: 'plyr__progress__marker',\n hidden: 'plyr__sr-only',\n hideControls: 'plyr--hide-controls',\n isTouch: 'plyr--is-touch',\n uiSupported: 'plyr--full-ui',\n noTransition: 'plyr--no-transition',\n display: {\n time: 'plyr__time'\n },\n menu: {\n value: 'plyr__menu__value',\n badge: 'plyr__badge',\n open: 'plyr--menu-open'\n },\n captions: {\n enabled: 'plyr--captions-enabled',\n active: 'plyr--captions-active'\n },\n fullscreen: {\n enabled: 'plyr--fullscreen-enabled',\n fallback: 'plyr--fullscreen-fallback'\n },\n pip: {\n supported: 'plyr--pip-supported',\n active: 'plyr--pip-active'\n },\n airplay: {\n supported: 'plyr--airplay-supported',\n active: 'plyr--airplay-active'\n },\n previewThumbnails: {\n // Tooltip thumbs\n thumbContainer: 'plyr__preview-thumb',\n thumbContainerShown: 'plyr__preview-thumb--is-shown',\n imageContainer: 'plyr__preview-thumb__image-container',\n timeContainer: 'plyr__preview-thumb__time-container',\n // Scrubbing\n scrubbingContainer: 'plyr__preview-scrubbing',\n scrubbingContainerShown: 'plyr__preview-scrubbing--is-shown'\n }\n },\n // Embed attributes\n attributes: {\n embed: {\n provider: 'data-plyr-provider',\n id: 'data-plyr-embed-id',\n hash: 'data-plyr-embed-hash'\n }\n },\n // Advertisements plugin\n // Register for an account here: http://vi.ai/publisher-video-monetization/?aid=plyrio\n ads: {\n enabled: false,\n publisherId: '',\n tagUrl: ''\n },\n // Preview Thumbnails plugin\n previewThumbnails: {\n enabled: false,\n src: '',\n withCredentials: false\n },\n // Vimeo plugin\n vimeo: {\n byline: false,\n portrait: false,\n title: false,\n speed: true,\n transparent: false,\n // Custom settings from Plyr\n customControls: true,\n referrerPolicy: null,\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/referrerPolicy\n // Whether the owner of the video has a Pro or Business account\n // (which allows us to properly hide controls without CSS hacks, etc)\n premium: false\n },\n // YouTube plugin\n youtube: {\n rel: 0,\n // No related vids\n showinfo: 0,\n // Hide info\n iv_load_policy: 3,\n // Hide annotations\n modestbranding: 1,\n // Hide logos as much as possible (they still show one in the corner when paused)\n // Custom settings from Plyr\n customControls: true,\n noCookie: false // Whether to use an alternative version of YouTube without cookies\n },\n // Media Metadata\n mediaMetadata: {\n title: '',\n artist: '',\n album: '',\n artwork: []\n },\n // Markers\n markers: {\n enabled: false,\n points: []\n }\n };\n\n // ==========================================================================\n // Plyr states\n // ==========================================================================\n\n const pip = {\n active: 'picture-in-picture',\n inactive: 'inline'\n };\n\n // ==========================================================================\n // Plyr supported types and providers\n // ==========================================================================\n\n const providers = {\n html5: 'html5',\n youtube: 'youtube',\n vimeo: 'vimeo'\n };\n const types = {\n audio: 'audio',\n video: 'video'\n };\n\n /**\n * Get provider by URL\n * @param {string} url\n */\n function getProviderByUrl(url) {\n // YouTube\n if (/^(?:https?:\\/\\/)?(?:www\\.)?(?:youtube\\.com|youtube-nocookie\\.com|youtu\\.?be)\\/.+$/.test(url)) {\n return providers.youtube;\n }\n\n // Vimeo\n if (/^https?:\\/\\/player.vimeo.com\\/video\\/\\d{0,9}(?=\\b|\\/)/.test(url)) {\n return providers.vimeo;\n }\n return null;\n }\n\n // ==========================================================================\n // Console wrapper\n // ==========================================================================\n\n function noop() {}\n class Console {\n constructor(enabled = false) {\n this.enabled = window.console && enabled;\n if (this.enabled) {\n this.log('Debugging enabled');\n }\n }\n get log() {\n // eslint-disable-next-line no-console\n return this.enabled ? Function.prototype.bind.call(console.log, console) : noop;\n }\n get warn() {\n return this.enabled ? Function.prototype.bind.call(console.warn, console) : noop;\n }\n get error() {\n return this.enabled ? Function.prototype.bind.call(console.error, console) : noop;\n }\n }\n\n class Fullscreen {\n constructor(player) {\n _defineProperty$1(this, \"onChange\", () => {\n if (!this.supported) return;\n\n // Update toggle button\n const button = this.player.elements.buttons.fullscreen;\n if (is.element(button)) {\n button.pressed = this.active;\n }\n\n // Always trigger events on the plyr / media element (not a fullscreen container) and let them bubble up\n const target = this.target === this.player.media ? this.target : this.player.elements.container;\n // Trigger an event\n triggerEvent.call(this.player, target, this.active ? 'enterfullscreen' : 'exitfullscreen', true);\n });\n _defineProperty$1(this, \"toggleFallback\", (toggle = false) => {\n // Store or restore scroll position\n if (toggle) {\n var _window$scrollX, _window$scrollY;\n this.scrollPosition = {\n x: (_window$scrollX = window.scrollX) !== null && _window$scrollX !== void 0 ? _window$scrollX : 0,\n y: (_window$scrollY = window.scrollY) !== null && _window$scrollY !== void 0 ? _window$scrollY : 0\n };\n } else {\n window.scrollTo(this.scrollPosition.x, this.scrollPosition.y);\n }\n\n // Toggle scroll\n document.body.style.overflow = toggle ? 'hidden' : '';\n\n // Toggle class hook\n toggleClass(this.target, this.player.config.classNames.fullscreen.fallback, toggle);\n\n // Force full viewport on iPhone X+\n if (browser.isIos) {\n let viewport = document.head.querySelector('meta[name=\"viewport\"]');\n const property = 'viewport-fit=cover';\n\n // Inject the viewport meta if required\n if (!viewport) {\n viewport = document.createElement('meta');\n viewport.setAttribute('name', 'viewport');\n }\n\n // Check if the property already exists\n const hasProperty = is.string(viewport.content) && viewport.content.includes(property);\n if (toggle) {\n this.cleanupViewport = !hasProperty;\n if (!hasProperty) viewport.content += `,${property}`;\n } else if (this.cleanupViewport) {\n viewport.content = viewport.content.split(',').filter(part => part.trim() !== property).join(',');\n }\n }\n\n // Toggle button and fire events\n this.onChange();\n });\n // Trap focus inside container\n _defineProperty$1(this, \"trapFocus\", event => {\n // Bail if iOS/iPadOS, not active, not the tab key\n if (browser.isIos || browser.isIPadOS || !this.active || event.key !== 'Tab') return;\n\n // Get the current focused element\n const focused = document.activeElement;\n const focusable = getElements.call(this.player, 'a[href], button:not(:disabled), input:not(:disabled), [tabindex]');\n const [first] = focusable;\n const last = focusable[focusable.length - 1];\n if (focused === last && !event.shiftKey) {\n // Move focus to first element that can be tabbed if Shift isn't used\n first.focus();\n event.preventDefault();\n } else if (focused === first && event.shiftKey) {\n // Move focus to last element that can be tabbed if Shift is used\n last.focus();\n event.preventDefault();\n }\n });\n // Update UI\n _defineProperty$1(this, \"update\", () => {\n if (this.supported) {\n let mode;\n if (this.forceFallback) mode = 'Fallback (forced)';else if (Fullscreen.nativeSupported) mode = 'Native';else mode = 'Fallback';\n this.player.debug.log(`${mode} fullscreen enabled`);\n } else {\n this.player.debug.log('Fullscreen not supported and fallback disabled');\n }\n\n // Add styling hook to show button\n toggleClass(this.player.elements.container, this.player.config.classNames.fullscreen.enabled, this.supported);\n });\n // Make an element fullscreen\n _defineProperty$1(this, \"enter\", () => {\n if (!this.supported) return;\n\n // iOS native fullscreen doesn't need the request step\n if (browser.isIos && this.player.config.fullscreen.iosNative) {\n if (this.player.isVimeo) {\n this.player.embed.requestFullscreen();\n } else {\n this.target.webkitEnterFullscreen();\n }\n } else if (!Fullscreen.nativeSupported || this.forceFallback) {\n this.toggleFallback(true);\n } else if (!this.prefix) {\n this.target.requestFullscreen({\n navigationUI: 'hide'\n });\n } else if (!is.empty(this.prefix)) {\n this.target[`${this.prefix}Request${this.property}`]();\n }\n });\n // Bail from fullscreen\n _defineProperty$1(this, \"exit\", () => {\n if (!this.supported) return;\n\n // iOS native fullscreen\n if (browser.isIos && this.player.config.fullscreen.iosNative) {\n if (this.player.isVimeo) {\n this.player.embed.exitFullscreen();\n } else {\n this.target.webkitEnterFullscreen();\n }\n silencePromise(this.player.play());\n } else if (!Fullscreen.nativeSupported || this.forceFallback) {\n this.toggleFallback(false);\n } else if (!this.prefix) {\n (document.cancelFullScreen || document.exitFullscreen).call(document);\n } else if (!is.empty(this.prefix)) {\n const action = this.prefix === 'moz' ? 'Cancel' : 'Exit';\n document[`${this.prefix}${action}${this.property}`]();\n }\n });\n // Toggle state\n _defineProperty$1(this, \"toggle\", () => {\n if (!this.active) this.enter();else this.exit();\n });\n // Keep reference to parent\n this.player = player;\n\n // Get prefix\n this.prefix = Fullscreen.prefix;\n this.property = Fullscreen.property;\n\n // Scroll position\n this.scrollPosition = {\n x: 0,\n y: 0\n };\n\n // Force the use of 'full window/browser' rather than fullscreen\n this.forceFallback = player.config.fullscreen.fallback === 'force';\n\n // Get the fullscreen element\n // Checks container is an ancestor, defaults to null\n this.player.elements.fullscreen = player.config.fullscreen.container && closest$1(this.player.elements.container, player.config.fullscreen.container);\n\n // Register event listeners\n // Handle event (incase user presses escape etc)\n on.call(this.player, document, this.prefix === 'ms' ? 'MSFullscreenChange' : `${this.prefix}fullscreenchange`, () => {\n // TODO: Filter for target??\n this.onChange();\n });\n\n // Fullscreen toggle on double click\n on.call(this.player, this.player.elements.container, 'dblclick', event => {\n // Ignore double click in controls\n if (is.element(this.player.elements.controls) && this.player.elements.controls.contains(event.target)) {\n return;\n }\n this.player.listeners.proxy(event, this.toggle, 'fullscreen');\n });\n\n // Tap focus when in fullscreen\n on.call(this, this.player.elements.container, 'keydown', event => this.trapFocus(event));\n\n // Update the UI\n this.update();\n }\n\n // Determine if native supported\n static get nativeSupported() {\n return !!(document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled);\n }\n\n // If we're actually using native\n get useNative() {\n return Fullscreen.nativeSupported && !this.forceFallback;\n }\n\n // Get the prefix for handlers\n static get prefix() {\n // No prefix\n if (is.function(document.exitFullscreen)) return '';\n\n // Check for fullscreen support by vendor prefix\n let value = '';\n const prefixes = ['webkit', 'moz', 'ms'];\n prefixes.some(pre => {\n if (is.function(document[`${pre}ExitFullscreen`]) || is.function(document[`${pre}CancelFullScreen`])) {\n value = pre;\n return true;\n }\n return false;\n });\n return value;\n }\n static get property() {\n return this.prefix === 'moz' ? 'FullScreen' : 'Fullscreen';\n }\n\n // Determine if fullscreen is supported\n get supported() {\n return [\n // Fullscreen is enabled in config\n this.player.config.fullscreen.enabled,\n // Must be a video\n this.player.isVideo,\n // Either native is supported or fallback enabled\n Fullscreen.nativeSupported || this.player.config.fullscreen.fallback,\n // YouTube has no way to trigger fullscreen, so on devices with no native support, playsinline\n // must be enabled and iosNative fullscreen must be disabled to offer the fullscreen fallback\n !this.player.isYouTube || Fullscreen.nativeSupported || !browser.isIos || this.player.config.playsinline && !this.player.config.fullscreen.iosNative].every(Boolean);\n }\n\n // Get active state\n get active() {\n if (!this.supported) return false;\n\n // Fallback using classname\n if (!Fullscreen.nativeSupported || this.forceFallback) {\n return hasClass(this.target, this.player.config.classNames.fullscreen.fallback);\n }\n const element = !this.prefix ? this.target.getRootNode().fullscreenElement : this.target.getRootNode()[`${this.prefix}${this.property}Element`];\n return element && element.shadowRoot ? element === this.target.getRootNode().host : element === this.target;\n }\n\n // Get target element\n get target() {\n var _this$player$elements;\n return browser.isIos && this.player.config.fullscreen.iosNative ? this.player.media : (_this$player$elements = this.player.elements.fullscreen) !== null && _this$player$elements !== void 0 ? _this$player$elements : this.player.elements.container;\n }\n }\n\n // ==========================================================================\n // Load image avoiding xhr/fetch CORS issues\n // Server status can't be obtained this way unfortunately, so this uses \"naturalWidth\" to determine if the image has loaded\n // By default it checks if it is at least 1px, but you can add a second argument to change this\n // ==========================================================================\n\n function loadImage(src, minWidth = 1) {\n return new Promise((resolve, reject) => {\n const image = new Image();\n const handler = () => {\n delete image.onload;\n delete image.onerror;\n (image.naturalWidth >= minWidth ? resolve : reject)(image);\n };\n Object.assign(image, {\n onload: handler,\n onerror: handler,\n src\n });\n });\n }\n\n // ==========================================================================\n // Plyr UI\n // ==========================================================================\n\n const ui = {\n addStyleHook() {\n toggleClass(this.elements.container, this.config.selectors.container.replace('.', ''), true);\n toggleClass(this.elements.container, this.config.classNames.uiSupported, this.supported.ui);\n },\n // Toggle native HTML5 media controls\n toggleNativeControls(toggle = false) {\n if (toggle && this.isHTML5) {\n this.media.setAttribute('controls', '');\n } else {\n this.media.removeAttribute('controls');\n }\n },\n // Setup the UI\n build() {\n // Re-attach media element listeners\n // TODO: Use event bubbling?\n this.listeners.media();\n\n // Don't setup interface if no support\n if (!this.supported.ui) {\n this.debug.warn(`Basic support only for ${this.provider} ${this.type}`);\n\n // Restore native controls\n ui.toggleNativeControls.call(this, true);\n\n // Bail\n return;\n }\n\n // Inject custom controls if not present\n if (!is.element(this.elements.controls)) {\n // Inject custom controls\n controls.inject.call(this);\n\n // Re-attach control listeners\n this.listeners.controls();\n }\n\n // Remove native controls\n ui.toggleNativeControls.call(this);\n\n // Setup captions for HTML5\n if (this.isHTML5) {\n captions.setup.call(this);\n }\n\n // Reset volume\n this.volume = null;\n\n // Reset mute state\n this.muted = null;\n\n // Reset loop state\n this.loop = null;\n\n // Reset quality setting\n this.quality = null;\n\n // Reset speed\n this.speed = null;\n\n // Reset volume display\n controls.updateVolume.call(this);\n\n // Reset time display\n controls.timeUpdate.call(this);\n\n // Reset duration display\n controls.durationUpdate.call(this);\n\n // Update the UI\n ui.checkPlaying.call(this);\n\n // Check for picture-in-picture support\n toggleClass(this.elements.container, this.config.classNames.pip.supported, support.pip && this.isHTML5 && this.isVideo);\n\n // Check for airplay support\n toggleClass(this.elements.container, this.config.classNames.airplay.supported, support.airplay && this.isHTML5);\n\n // Add touch class\n toggleClass(this.elements.container, this.config.classNames.isTouch, this.touch);\n\n // Ready for API calls\n this.ready = true;\n\n // Ready event at end of execution stack\n setTimeout(() => {\n triggerEvent.call(this, this.media, 'ready');\n }, 0);\n\n // Set the title\n ui.setTitle.call(this);\n\n // Assure the poster image is set, if the property was added before the element was created\n if (this.poster) {\n ui.setPoster.call(this, this.poster, false).catch(() => {});\n }\n\n // Manually set the duration if user has overridden it.\n // The event listeners for it doesn't get called if preload is disabled (#701)\n if (this.config.duration) {\n controls.durationUpdate.call(this);\n }\n\n // Media metadata\n if (this.config.mediaMetadata) {\n controls.setMediaMetadata.call(this);\n }\n },\n // Setup aria attribute for play and iframe title\n setTitle() {\n // Find the current text\n let label = i18n.get('play', this.config);\n\n // If there's a media title set, use that for the label\n if (is.string(this.config.title) && !is.empty(this.config.title)) {\n label += `, ${this.config.title}`;\n }\n\n // If there's a play button, set label\n Array.from(this.elements.buttons.play || []).forEach(button => {\n button.setAttribute('aria-label', label);\n });\n\n // Set iframe title\n // https://github.com/sampotts/plyr/issues/124\n if (this.isEmbed) {\n const iframe = getElement.call(this, 'iframe');\n if (!is.element(iframe)) {\n return;\n }\n\n // Default to media type\n const title = !is.empty(this.config.title) ? this.config.title : 'video';\n const format = i18n.get('frameTitle', this.config);\n iframe.setAttribute('title', format.replace('{title}', title));\n }\n },\n // Toggle poster\n togglePoster(enable) {\n toggleClass(this.elements.container, this.config.classNames.posterEnabled, enable);\n },\n // Set the poster image (async)\n // Used internally for the poster setter, with the passive option forced to false\n setPoster(poster, passive = true) {\n // Don't override if call is passive\n if (passive && this.poster) {\n return Promise.reject(new Error('Poster already set'));\n }\n\n // Set property synchronously to respect the call order\n this.media.setAttribute('data-poster', poster);\n\n // Show the poster\n this.elements.poster.removeAttribute('hidden');\n\n // Wait until ui is ready\n return ready.call(this)\n // Load image\n .then(() => loadImage(poster)).catch(error => {\n // Hide poster on error unless it's been set by another call\n if (poster === this.poster) {\n ui.togglePoster.call(this, false);\n }\n // Rethrow\n throw error;\n }).then(() => {\n // Prevent race conditions\n if (poster !== this.poster) {\n throw new Error('setPoster cancelled by later call to setPoster');\n }\n }).then(() => {\n Object.assign(this.elements.poster.style, {\n backgroundImage: `url('${poster}')`,\n // Reset backgroundSize as well (since it can be set to \"cover\" for padded thumbnails for youtube)\n backgroundSize: ''\n });\n ui.togglePoster.call(this, true);\n return poster;\n });\n },\n // Check playing state\n checkPlaying(event) {\n // Class hooks\n toggleClass(this.elements.container, this.config.classNames.playing, this.playing);\n toggleClass(this.elements.container, this.config.classNames.paused, this.paused);\n toggleClass(this.elements.container, this.config.classNames.stopped, this.stopped);\n\n // Set state\n Array.from(this.elements.buttons.play || []).forEach(target => {\n Object.assign(target, {\n pressed: this.playing\n });\n target.setAttribute('aria-label', i18n.get(this.playing ? 'pause' : 'play', this.config));\n });\n\n // Only update controls on non timeupdate events\n if (is.event(event) && event.type === 'timeupdate') {\n return;\n }\n\n // Toggle controls\n ui.toggleControls.call(this);\n },\n // Check if media is loading\n checkLoading(event) {\n this.loading = ['stalled', 'waiting'].includes(event.type);\n\n // Clear timer\n clearTimeout(this.timers.loading);\n\n // Timer to prevent flicker when seeking\n this.timers.loading = setTimeout(() => {\n // Update progress bar loading class state\n toggleClass(this.elements.container, this.config.classNames.loading, this.loading);\n\n // Update controls visibility\n ui.toggleControls.call(this);\n }, this.loading ? 250 : 0);\n },\n // Toggle controls based on state and `force` argument\n toggleControls(force) {\n const {\n controls: controlsElement\n } = this.elements;\n if (controlsElement && this.config.hideControls) {\n // Don't hide controls if a touch-device user recently seeked. (Must be limited to touch devices, or it occasionally prevents desktop controls from hiding.)\n const recentTouchSeek = this.touch && this.lastSeekTime + 2000 > Date.now();\n\n // Show controls if force, loading, paused, button interaction, or recent seek, otherwise hide\n this.toggleControls(Boolean(force || this.loading || this.paused || controlsElement.pressed || controlsElement.hover || recentTouchSeek));\n }\n },\n // Migrate any custom properties from the media to the parent\n migrateStyles() {\n // Loop through values (as they are the keys when the object is spread 🤔)\n Object.values({\n ...this.media.style\n })\n // We're only fussed about Plyr specific properties\n .filter(key => !is.empty(key) && is.string(key) && key.startsWith('--plyr')).forEach(key => {\n // Set on the container\n this.elements.container.style.setProperty(key, this.media.style.getPropertyValue(key));\n\n // Clean up from media element\n this.media.style.removeProperty(key);\n });\n\n // Remove attribute if empty\n if (is.empty(this.media.style)) {\n this.media.removeAttribute('style');\n }\n }\n };\n\n class Listeners {\n constructor(_player) {\n // Device is touch enabled\n _defineProperty$1(this, \"firstTouch\", () => {\n const {\n player\n } = this;\n const {\n elements\n } = player;\n player.touch = true;\n\n // Add touch class\n toggleClass(elements.container, player.config.classNames.isTouch, true);\n });\n // Global window & document listeners\n _defineProperty$1(this, \"global\", (toggle = true) => {\n const {\n player\n } = this;\n\n // Keyboard shortcuts\n if (player.config.keyboard.global) {\n toggleListener.call(player, window, 'keydown keyup', this.handleKey, toggle, false);\n }\n\n // Click anywhere closes menu\n toggleListener.call(player, document.body, 'click', this.toggleMenu, toggle);\n\n // Detect touch by events\n once.call(player, document.body, 'touchstart', this.firstTouch);\n });\n // Container listeners\n _defineProperty$1(this, \"container\", () => {\n const {\n player\n } = this;\n const {\n config,\n elements,\n timers\n } = player;\n\n // Keyboard shortcuts\n if (!config.keyboard.global && config.keyboard.focused) {\n on.call(player, elements.container, 'keydown keyup', this.handleKey, false);\n }\n\n // Toggle controls on mouse events and entering fullscreen\n on.call(player, elements.container, 'mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen', event => {\n const {\n controls: controlsElement\n } = elements;\n\n // Remove button states for fullscreen\n if (controlsElement && event.type === 'enterfullscreen') {\n controlsElement.pressed = false;\n controlsElement.hover = false;\n }\n\n // Show, then hide after a timeout unless another control event occurs\n const show = ['touchstart', 'touchmove', 'mousemove'].includes(event.type);\n let delay = 0;\n if (show) {\n ui.toggleControls.call(player, true);\n // Use longer timeout for touch devices\n delay = player.touch ? 3000 : 2000;\n }\n\n // Clear timer\n clearTimeout(timers.controls);\n\n // Set new timer to prevent flicker when seeking\n timers.controls = setTimeout(() => ui.toggleControls.call(player, false), delay);\n });\n\n // Set a gutter for Vimeo\n const setGutter = () => {\n if (!player.isVimeo || player.config.vimeo.premium) {\n return;\n }\n const target = elements.wrapper;\n const {\n active\n } = player.fullscreen;\n const [videoWidth, videoHeight] = getAspectRatio.call(player);\n const useNativeAspectRatio = supportsCSS(`aspect-ratio: ${videoWidth} / ${videoHeight}`);\n\n // If not active, remove styles\n if (!active) {\n if (useNativeAspectRatio) {\n target.style.width = null;\n target.style.height = null;\n } else {\n target.style.maxWidth = null;\n target.style.margin = null;\n }\n return;\n }\n\n // Determine which dimension will overflow and constrain view\n const [viewportWidth, viewportHeight] = getViewportSize();\n const overflow = viewportWidth / viewportHeight > videoWidth / videoHeight;\n if (useNativeAspectRatio) {\n target.style.width = overflow ? 'auto' : '100%';\n target.style.height = overflow ? '100%' : 'auto';\n } else {\n target.style.maxWidth = overflow ? `${viewportHeight / videoHeight * videoWidth}px` : null;\n target.style.margin = overflow ? '0 auto' : null;\n }\n };\n\n // Handle resizing\n const resized = () => {\n clearTimeout(timers.resized);\n timers.resized = setTimeout(setGutter, 50);\n };\n on.call(player, elements.container, 'enterfullscreen exitfullscreen', event => {\n const {\n target\n } = player.fullscreen;\n\n // Ignore events not from target\n if (target !== elements.container) {\n return;\n }\n\n // If it's not an embed and no ratio specified\n if (!player.isEmbed && is.empty(player.config.ratio)) {\n return;\n }\n\n // Set Vimeo gutter\n setGutter();\n\n // Watch for resizes\n const method = event.type === 'enterfullscreen' ? on : off;\n method.call(player, window, 'resize', resized);\n });\n });\n // Listen for media events\n _defineProperty$1(this, \"media\", () => {\n const {\n player\n } = this;\n const {\n elements\n } = player;\n\n // Time change on media\n on.call(player, player.media, 'timeupdate seeking seeked', event => controls.timeUpdate.call(player, event));\n\n // Display duration\n on.call(player, player.media, 'durationchange loadeddata loadedmetadata', event => controls.durationUpdate.call(player, event));\n\n // Handle the media finishing\n on.call(player, player.media, 'ended', () => {\n // Show poster on end\n if (player.isHTML5 && player.isVideo && player.config.resetOnEnd) {\n // Restart\n player.restart();\n\n // Call pause otherwise IE11 will start playing the video again\n player.pause();\n }\n });\n\n // Check for buffer progress\n on.call(player, player.media, 'progress playing seeking seeked', event => controls.updateProgress.call(player, event));\n\n // Handle volume changes\n on.call(player, player.media, 'volumechange', event => controls.updateVolume.call(player, event));\n\n // Handle play/pause\n on.call(player, player.media, 'playing play pause ended emptied timeupdate', event => ui.checkPlaying.call(player, event));\n\n // Loading state\n on.call(player, player.media, 'waiting canplay seeked playing', event => ui.checkLoading.call(player, event));\n\n // Click video\n if (player.supported.ui && player.config.clickToPlay && !player.isAudio) {\n // Re-fetch the wrapper\n const wrapper = getElement.call(player, `.${player.config.classNames.video}`);\n\n // Bail if there's no wrapper (this should never happen)\n if (!is.element(wrapper)) {\n return;\n }\n\n // On click play, pause or restart\n on.call(player, elements.container, 'click', event => {\n const targets = [elements.container, wrapper];\n\n // Ignore if click if not container or in video wrapper\n if (!targets.includes(event.target) && !wrapper.contains(event.target)) {\n return;\n }\n\n // Touch devices will just show controls (if hidden)\n if (player.touch && player.config.hideControls) {\n return;\n }\n if (player.ended) {\n this.proxy(event, player.restart, 'restart');\n this.proxy(event, () => {\n silencePromise(player.play());\n }, 'play');\n } else {\n this.proxy(event, () => {\n silencePromise(player.togglePlay());\n }, 'play');\n }\n });\n }\n\n // Disable right click\n if (player.supported.ui && player.config.disableContextMenu) {\n on.call(player, elements.wrapper, 'contextmenu', event => {\n event.preventDefault();\n }, false);\n }\n\n // Volume change\n on.call(player, player.media, 'volumechange', () => {\n // Save to storage\n player.storage.set({\n volume: player.volume,\n muted: player.muted\n });\n });\n\n // Speed change\n on.call(player, player.media, 'ratechange', () => {\n // Update UI\n controls.updateSetting.call(player, 'speed');\n\n // Save to storage\n player.storage.set({\n speed: player.speed\n });\n });\n\n // Quality change\n on.call(player, player.media, 'qualitychange', event => {\n // Update UI\n controls.updateSetting.call(player, 'quality', null, event.detail.quality);\n });\n\n // Update download link when ready and if quality changes\n on.call(player, player.media, 'ready qualitychange', () => {\n controls.setDownloadUrl.call(player);\n });\n\n // Proxy events to container\n // Bubble up key events for Edge\n const proxyEvents = player.config.events.concat(['keyup', 'keydown']).join(' ');\n on.call(player, player.media, proxyEvents, event => {\n let {\n detail = {}\n } = event;\n\n // Get error details from media\n if (event.type === 'error') {\n detail = player.media.error;\n }\n triggerEvent.call(player, elements.container, event.type, true, detail);\n });\n });\n // Run default and custom handlers\n _defineProperty$1(this, \"proxy\", (event, defaultHandler, customHandlerKey) => {\n const {\n player\n } = this;\n const customHandler = player.config.listeners[customHandlerKey];\n const hasCustomHandler = is.function(customHandler);\n let returned = true;\n\n // Execute custom handler\n if (hasCustomHandler) {\n returned = customHandler.call(player, event);\n }\n\n // Only call default handler if not prevented in custom handler\n if (returned !== false && is.function(defaultHandler)) {\n defaultHandler.call(player, event);\n }\n });\n // Trigger custom and default handlers\n _defineProperty$1(this, \"bind\", (element, type, defaultHandler, customHandlerKey, passive = true) => {\n const {\n player\n } = this;\n const customHandler = player.config.listeners[customHandlerKey];\n const hasCustomHandler = is.function(customHandler);\n on.call(player, element, type, event => this.proxy(event, defaultHandler, customHandlerKey), passive && !hasCustomHandler);\n });\n // Listen for control events\n _defineProperty$1(this, \"controls\", () => {\n const {\n player\n } = this;\n const {\n elements\n } = player;\n // IE doesn't support input event, so we fallback to change\n const inputEvent = browser.isIE ? 'change' : 'input';\n\n // Play/pause toggle\n if (elements.buttons.play) {\n Array.from(elements.buttons.play).forEach(button => {\n this.bind(button, 'click', () => {\n silencePromise(player.togglePlay());\n }, 'play');\n });\n }\n\n // Pause\n this.bind(elements.buttons.restart, 'click', player.restart, 'restart');\n\n // Rewind\n this.bind(elements.buttons.rewind, 'click', () => {\n // Record seek time so we can prevent hiding controls for a few seconds after rewind\n player.lastSeekTime = Date.now();\n player.rewind();\n }, 'rewind');\n\n // Rewind\n this.bind(elements.buttons.fastForward, 'click', () => {\n // Record seek time so we can prevent hiding controls for a few seconds after fast forward\n player.lastSeekTime = Date.now();\n player.forward();\n }, 'fastForward');\n\n // Mute toggle\n this.bind(elements.buttons.mute, 'click', () => {\n player.muted = !player.muted;\n }, 'mute');\n\n // Captions toggle\n this.bind(elements.buttons.captions, 'click', () => player.toggleCaptions());\n\n // Download\n this.bind(elements.buttons.download, 'click', () => {\n triggerEvent.call(player, player.media, 'download');\n }, 'download');\n\n // Fullscreen toggle\n this.bind(elements.buttons.fullscreen, 'click', () => {\n player.fullscreen.toggle();\n }, 'fullscreen');\n\n // Picture-in-Picture\n this.bind(elements.buttons.pip, 'click', () => {\n player.pip = 'toggle';\n }, 'pip');\n\n // Airplay\n this.bind(elements.buttons.airplay, 'click', player.airplay, 'airplay');\n\n // Settings menu - click toggle\n this.bind(elements.buttons.settings, 'click', event => {\n // Prevent the document click listener closing the menu\n event.stopPropagation();\n event.preventDefault();\n controls.toggleMenu.call(player, event);\n }, null, false); // Can't be passive as we're preventing default\n\n // Settings menu - keyboard toggle\n // We have to bind to keyup otherwise Firefox triggers a click when a keydown event handler shifts focus\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1220143\n this.bind(elements.buttons.settings, 'keyup', event => {\n if (![' ', 'Enter'].includes(event.key)) {\n return;\n }\n\n // Because return triggers a click anyway, all we need to do is set focus\n if (event.key === 'Enter') {\n controls.focusFirstMenuItem.call(player, null, true);\n return;\n }\n\n // Prevent scroll\n event.preventDefault();\n\n // Prevent playing video (Firefox)\n event.stopPropagation();\n\n // Toggle menu\n controls.toggleMenu.call(player, event);\n }, null, false // Can't be passive as we're preventing default\n );\n\n // Escape closes menu\n this.bind(elements.settings.menu, 'keydown', event => {\n if (event.key === 'Escape') {\n controls.toggleMenu.call(player, event);\n }\n });\n\n // Set range input alternative \"value\", which matches the tooltip time (#954)\n this.bind(elements.inputs.seek, 'mousedown mousemove', event => {\n const rect = elements.progress.getBoundingClientRect();\n const scrollLeft = event.pageX - event.clientX;\n const percent = 100 / rect.width * (event.pageX - rect.left - scrollLeft);\n event.currentTarget.setAttribute('seek-value', percent);\n });\n\n // Pause while seeking\n this.bind(elements.inputs.seek, 'mousedown mouseup keydown keyup touchstart touchend', event => {\n const seek = event.currentTarget;\n const attribute = 'play-on-seeked';\n if (is.keyboardEvent(event) && !['ArrowLeft', 'ArrowRight'].includes(event.key)) {\n return;\n }\n\n // Record seek time so we can prevent hiding controls for a few seconds after seek\n player.lastSeekTime = Date.now();\n\n // Was playing before?\n const play = seek.hasAttribute(attribute);\n // Done seeking\n const done = ['mouseup', 'touchend', 'keyup'].includes(event.type);\n\n // If we're done seeking and it was playing, resume playback\n if (play && done) {\n seek.removeAttribute(attribute);\n silencePromise(player.play());\n } else if (!done && player.playing) {\n seek.setAttribute(attribute, '');\n player.pause();\n }\n });\n\n // Fix range inputs on iOS\n // Super weird iOS bug where after you interact with an ,\n // it takes over further interactions on the page. This is a hack\n if (browser.isIos) {\n const inputs = getElements.call(player, 'input[type=\"range\"]');\n Array.from(inputs).forEach(input => this.bind(input, inputEvent, event => repaint(event.target)));\n }\n\n // Seek\n this.bind(elements.inputs.seek, inputEvent, event => {\n const seek = event.currentTarget;\n // If it exists, use seek-value instead of \"value\" for consistency with tooltip time (#954)\n let seekTo = seek.getAttribute('seek-value');\n if (is.empty(seekTo)) {\n seekTo = seek.value;\n }\n seek.removeAttribute('seek-value');\n player.currentTime = seekTo / seek.max * player.duration;\n }, 'seek');\n\n // Seek tooltip\n this.bind(elements.progress, 'mouseenter mouseleave mousemove', event => controls.updateSeekTooltip.call(player, event));\n\n // Preview thumbnails plugin\n // TODO: Really need to work on some sort of plug-in wide event bus or pub-sub for this\n this.bind(elements.progress, 'mousemove touchmove', event => {\n const {\n previewThumbnails\n } = player;\n if (previewThumbnails && previewThumbnails.loaded) {\n previewThumbnails.startMove(event);\n }\n });\n\n // Hide thumbnail preview - on mouse click, mouse leave, and video play/seek. All four are required, e.g., for buffering\n this.bind(elements.progress, 'mouseleave touchend click', () => {\n const {\n previewThumbnails\n } = player;\n if (previewThumbnails && previewThumbnails.loaded) {\n previewThumbnails.endMove(false, true);\n }\n });\n\n // Show scrubbing preview\n this.bind(elements.progress, 'mousedown touchstart', event => {\n const {\n previewThumbnails\n } = player;\n if (previewThumbnails && previewThumbnails.loaded) {\n previewThumbnails.startScrubbing(event);\n }\n });\n this.bind(elements.progress, 'mouseup touchend', event => {\n const {\n previewThumbnails\n } = player;\n if (previewThumbnails && previewThumbnails.loaded) {\n previewThumbnails.endScrubbing(event);\n }\n });\n\n // Polyfill for lower fill in for webkit\n if (browser.isWebKit) {\n Array.from(getElements.call(player, 'input[type=\"range\"]')).forEach(element => {\n this.bind(element, 'input', event => controls.updateRangeFill.call(player, event.target));\n });\n }\n\n // Current time invert\n // Only if one time element is used for both currentTime and duration\n if (player.config.toggleInvert && !is.element(elements.display.duration)) {\n this.bind(elements.display.currentTime, 'click', () => {\n // Do nothing if we're at the start\n if (player.currentTime === 0) {\n return;\n }\n player.config.invertTime = !player.config.invertTime;\n controls.timeUpdate.call(player);\n });\n }\n\n // Volume\n this.bind(elements.inputs.volume, inputEvent, event => {\n player.volume = event.target.value;\n }, 'volume');\n\n // Update controls.hover state (used for ui.toggleControls to avoid hiding when interacting)\n this.bind(elements.controls, 'mouseenter mouseleave', event => {\n elements.controls.hover = !player.touch && event.type === 'mouseenter';\n });\n\n // Also update controls.hover state for any non-player children of fullscreen element (as above)\n if (elements.fullscreen) {\n Array.from(elements.fullscreen.children).filter(c => !c.contains(elements.container)).forEach(child => {\n this.bind(child, 'mouseenter mouseleave', event => {\n if (elements.controls) {\n elements.controls.hover = !player.touch && event.type === 'mouseenter';\n }\n });\n });\n }\n\n // Update controls.pressed state (used for ui.toggleControls to avoid hiding when interacting)\n this.bind(elements.controls, 'mousedown mouseup touchstart touchend touchcancel', event => {\n elements.controls.pressed = ['mousedown', 'touchstart'].includes(event.type);\n });\n\n // Show controls when they receive focus (e.g., when using keyboard tab key)\n this.bind(elements.controls, 'focusin', () => {\n const {\n config,\n timers\n } = player;\n\n // Skip transition to prevent focus from scrolling the parent element\n toggleClass(elements.controls, config.classNames.noTransition, true);\n\n // Toggle\n ui.toggleControls.call(player, true);\n\n // Restore transition\n setTimeout(() => {\n toggleClass(elements.controls, config.classNames.noTransition, false);\n }, 0);\n\n // Delay a little more for mouse users\n const delay = this.touch ? 3000 : 4000;\n\n // Clear timer\n clearTimeout(timers.controls);\n\n // Hide again after delay\n timers.controls = setTimeout(() => ui.toggleControls.call(player, false), delay);\n });\n\n // Mouse wheel for volume\n this.bind(elements.inputs.volume, 'wheel', event => {\n // Detect \"natural\" scroll - supported on OS X Safari only\n // Other browsers on OS X will be inverted until support improves\n const inverted = event.webkitDirectionInvertedFromDevice;\n // Get delta from event. Invert if `inverted` is true\n const [x, y] = [event.deltaX, -event.deltaY].map(value => inverted ? -value : value);\n // Using the biggest delta, normalize to 1 or -1 (or 0 if no delta)\n const direction = Math.sign(Math.abs(x) > Math.abs(y) ? x : y);\n\n // Change the volume by 2%\n player.increaseVolume(direction / 50);\n\n // Don't break page scrolling at max and min\n const {\n volume\n } = player.media;\n if (direction === 1 && volume < 1 || direction === -1 && volume > 0) {\n event.preventDefault();\n }\n }, 'volume', false);\n });\n this.player = _player;\n this.lastKey = null;\n this.focusTimer = null;\n this.lastKeyDown = null;\n this.handleKey = this.handleKey.bind(this);\n this.toggleMenu = this.toggleMenu.bind(this);\n this.firstTouch = this.firstTouch.bind(this);\n }\n\n // Handle key presses\n handleKey(event) {\n const {\n player\n } = this;\n const {\n elements\n } = player;\n const {\n key,\n type,\n altKey,\n ctrlKey,\n metaKey,\n shiftKey\n } = event;\n const pressed = type === 'keydown';\n const repeat = pressed && key === this.lastKey;\n\n // Bail if a modifier key is set\n if (altKey || ctrlKey || metaKey || shiftKey) {\n return;\n }\n\n // If the event is bubbled from the media element\n // Firefox doesn't get the key for whatever reason\n if (!key) {\n return;\n }\n\n // Seek by increment\n const seekByIncrement = increment => {\n // Divide the max duration into 10th's and times by the number value\n player.currentTime = player.duration / 10 * increment;\n };\n\n // Handle the key on keydown\n // Reset on keyup\n if (pressed) {\n // Check focused element\n // and if the focused element is not editable (e.g. text input)\n // and any that accept key input http://webaim.org/techniques/keyboard/\n const focused = document.activeElement;\n if (is.element(focused)) {\n const {\n editable\n } = player.config.selectors;\n const {\n seek\n } = elements.inputs;\n if (focused !== seek && matches(focused, editable)) {\n return;\n }\n if (event.key === ' ' && matches(focused, 'button, [role^=\"menuitem\"]')) {\n return;\n }\n }\n\n // Which keys should we prevent default\n const preventDefault = [' ', 'ArrowLeft', 'ArrowUp', 'ArrowRight', 'ArrowDown', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'c', 'f', 'k', 'l', 'm'];\n\n // If the key is found prevent default (e.g. prevent scrolling for arrows)\n if (preventDefault.includes(key)) {\n event.preventDefault();\n event.stopPropagation();\n }\n switch (key) {\n case '0':\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n if (!repeat) {\n seekByIncrement(Number.parseInt(key, 10));\n }\n break;\n case ' ':\n case 'k':\n if (!repeat) {\n silencePromise(player.togglePlay());\n }\n break;\n case 'ArrowUp':\n player.increaseVolume(0.1);\n break;\n case 'ArrowDown':\n player.decreaseVolume(0.1);\n break;\n case 'm':\n if (!repeat) {\n player.muted = !player.muted;\n }\n break;\n case 'ArrowRight':\n player.forward();\n break;\n case 'ArrowLeft':\n player.rewind();\n break;\n case 'f':\n player.fullscreen.toggle();\n break;\n case 'c':\n if (!repeat) {\n player.toggleCaptions();\n }\n break;\n case 'l':\n player.loop = !player.loop;\n break;\n }\n\n // Escape is handle natively when in full screen\n // So we only need to worry about non native\n if (key === 'Escape' && !player.fullscreen.usingNative && player.fullscreen.active) {\n player.fullscreen.toggle();\n }\n\n // Store last key for next cycle\n this.lastKey = key;\n } else {\n this.lastKey = null;\n }\n }\n\n // Toggle menu\n toggleMenu(event) {\n controls.toggleMenu.call(this.player, event);\n }\n }\n\n function getDefaultExportFromCjs (x) {\n \treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n }\n\n var loadjs_umd$1 = {exports: {}};\n\n var loadjs_umd = loadjs_umd$1.exports;\n var hasRequiredLoadjs_umd;\n function requireLoadjs_umd() {\n if (hasRequiredLoadjs_umd) return loadjs_umd$1.exports;\n hasRequiredLoadjs_umd = 1;\n (function (module, exports) {\n (function (root, factory) {\n {\n module.exports = factory();\n }\n })(loadjs_umd, function () {\n /**\n * Global dependencies.\n * @global {Object} document - DOM\n */\n\n var devnull = function () {},\n bundleIdCache = {},\n bundleResultCache = {},\n bundleCallbackQueue = {};\n\n /**\n * Subscribe to bundle load event.\n * @param {string[]} bundleIds - Bundle ids\n * @param {Function} callbackFn - The callback function\n */\n function subscribe(bundleIds, callbackFn) {\n // listify\n bundleIds = bundleIds.push ? bundleIds : [bundleIds];\n var depsNotFound = [],\n i = bundleIds.length,\n numWaiting = i,\n fn,\n bundleId,\n r,\n q;\n\n // define callback function\n fn = function (bundleId, pathsNotFound) {\n if (pathsNotFound.length) depsNotFound.push(bundleId);\n numWaiting--;\n if (!numWaiting) callbackFn(depsNotFound);\n };\n\n // register callback\n while (i--) {\n bundleId = bundleIds[i];\n\n // execute callback if in result cache\n r = bundleResultCache[bundleId];\n if (r) {\n fn(bundleId, r);\n continue;\n }\n\n // add to callback queue\n q = bundleCallbackQueue[bundleId] = bundleCallbackQueue[bundleId] || [];\n q.push(fn);\n }\n }\n\n /**\n * Publish bundle load event.\n * @param {string} bundleId - Bundle id\n * @param {string[]} pathsNotFound - List of files not found\n */\n function publish(bundleId, pathsNotFound) {\n // exit if id isn't defined\n if (!bundleId) return;\n var q = bundleCallbackQueue[bundleId];\n\n // cache result\n bundleResultCache[bundleId] = pathsNotFound;\n\n // exit if queue is empty\n if (!q) return;\n\n // empty callback queue\n while (q.length) {\n q[0](bundleId, pathsNotFound);\n q.splice(0, 1);\n }\n }\n\n /**\n * Execute callbacks.\n * @param {Object or Function} args - The callback args\n * @param {string[]} depsNotFound - List of dependencies not found\n */\n function executeCallbacks(args, depsNotFound) {\n // accept function as argument\n if (args.call) args = {\n success: args\n };\n\n // success and error callbacks\n if (depsNotFound.length) (args.error || devnull)(depsNotFound);else (args.success || devnull)(args);\n }\n\n /**\n * Load individual file.\n * @param {string} path - The file path\n * @param {Function} callbackFn - The callback function\n */\n function loadFile(path, callbackFn, args, numTries) {\n var doc = document,\n async = args.async,\n maxTries = (args.numRetries || 0) + 1,\n beforeCallbackFn = args.before || devnull,\n pathname = path.replace(/[\\?|#].*$/, ''),\n pathStripped = path.replace(/^(css|img|module|nomodule)!/, ''),\n isLegacyIECss,\n hasModuleSupport,\n e;\n numTries = numTries || 0;\n if (/(^css!|\\.css$)/.test(pathname)) {\n // css\n e = doc.createElement('link');\n e.rel = 'stylesheet';\n e.href = pathStripped;\n\n // tag IE9+\n isLegacyIECss = 'hideFocus' in e;\n\n // use preload in IE Edge (to detect load errors)\n if (isLegacyIECss && e.relList) {\n isLegacyIECss = 0;\n e.rel = 'preload';\n e.as = 'style';\n }\n } else if (/(^img!|\\.(png|gif|jpg|svg|webp)$)/.test(pathname)) {\n // image\n e = doc.createElement('img');\n e.src = pathStripped;\n } else {\n // javascript\n e = doc.createElement('script');\n e.src = pathStripped;\n e.async = async === undefined ? true : async;\n\n // handle es modules\n // modern browsers:\n // module: add to dom with type=\"module\"\n // nomodule: call success() callback without adding to dom\n // legacy browsers:\n // module: call success() callback without adding to dom\n // nomodule: add to dom with default type (\"text/javascript\")\n hasModuleSupport = 'noModule' in e;\n if (/^module!/.test(pathname)) {\n if (!hasModuleSupport) return callbackFn(path, 'l');\n e.type = \"module\";\n } else if (/^nomodule!/.test(pathname) && hasModuleSupport) return callbackFn(path, 'l');\n }\n e.onload = e.onerror = e.onbeforeload = function (ev) {\n var result = ev.type[0];\n\n // treat empty stylesheets as failures to get around lack of onerror\n // support in IE9-11\n if (isLegacyIECss) {\n try {\n if (!e.sheet.cssText.length) result = 'e';\n } catch (x) {\n // sheets objects created from load errors don't allow access to\n // `cssText` (unless error is Code:18 SecurityError)\n if (x.code != 18) result = 'e';\n }\n }\n\n // handle retries in case of load failure\n if (result == 'e') {\n // increment counter\n numTries += 1;\n\n // exit function and try again\n if (numTries < maxTries) {\n return loadFile(path, callbackFn, args, numTries);\n }\n } else if (e.rel == 'preload' && e.as == 'style') {\n // activate preloaded stylesheets\n return e.rel = 'stylesheet'; // jshint ignore:line\n }\n\n // execute callback\n callbackFn(path, result, ev.defaultPrevented);\n };\n\n // add to document (unless callback returns `false`)\n if (beforeCallbackFn(path, e) !== false) doc.head.appendChild(e);\n }\n\n /**\n * Load multiple files.\n * @param {string[]} paths - The file paths\n * @param {Function} callbackFn - The callback function\n */\n function loadFiles(paths, callbackFn, args) {\n // listify paths\n paths = paths.push ? paths : [paths];\n var numWaiting = paths.length,\n x = numWaiting,\n pathsNotFound = [],\n fn,\n i;\n\n // define callback function\n fn = function (path, result, defaultPrevented) {\n // handle error\n if (result == 'e') pathsNotFound.push(path);\n\n // handle beforeload event. If defaultPrevented then that means the load\n // will be blocked (ex. Ghostery/ABP on Safari)\n if (result == 'b') {\n if (defaultPrevented) pathsNotFound.push(path);else return;\n }\n numWaiting--;\n if (!numWaiting) callbackFn(pathsNotFound);\n };\n\n // load scripts\n for (i = 0; i < x; i++) loadFile(paths[i], fn, args);\n }\n\n /**\n * Initiate script load and register bundle.\n * @param {(string|string[])} paths - The file paths\n * @param {(string|Function|Object)} [arg1] - The (1) bundleId or (2) success\n * callback or (3) object literal with success/error arguments, numRetries,\n * etc.\n * @param {(Function|Object)} [arg2] - The (1) success callback or (2) object\n * literal with success/error arguments, numRetries, etc.\n */\n function loadjs(paths, arg1, arg2) {\n var bundleId, args;\n\n // bundleId (if string)\n if (arg1 && arg1.trim) bundleId = arg1;\n\n // args (default is {})\n args = (bundleId ? arg2 : arg1) || {};\n\n // throw error if bundle is already defined\n if (bundleId) {\n if (bundleId in bundleIdCache) {\n throw \"LoadJS\";\n } else {\n bundleIdCache[bundleId] = true;\n }\n }\n function loadFn(resolve, reject) {\n loadFiles(paths, function (pathsNotFound) {\n // execute callbacks\n executeCallbacks(args, pathsNotFound);\n\n // resolve Promise\n if (resolve) {\n executeCallbacks({\n success: resolve,\n error: reject\n }, pathsNotFound);\n }\n\n // publish bundle load event\n publish(bundleId, pathsNotFound);\n }, args);\n }\n if (args.returnPromise) return new Promise(loadFn);else loadFn();\n }\n\n /**\n * Execute callbacks when dependencies have been satisfied.\n * @param {(string|string[])} deps - List of bundle ids\n * @param {Object} args - success/error arguments\n */\n loadjs.ready = function ready(deps, args) {\n // subscribe to bundle load event\n subscribe(deps, function (depsNotFound) {\n // execute callbacks\n executeCallbacks(args, depsNotFound);\n });\n return loadjs;\n };\n\n /**\n * Manually satisfy bundle dependencies.\n * @param {string} bundleId - The bundle id\n */\n loadjs.done = function done(bundleId) {\n publish(bundleId, []);\n };\n\n /**\n * Reset loadjs dependencies statuses\n */\n loadjs.reset = function reset() {\n bundleIdCache = {};\n bundleResultCache = {};\n bundleCallbackQueue = {};\n };\n\n /**\n * Determine if bundle has already been defined\n * @param String} bundleId - The bundle id\n */\n loadjs.isDefined = function isDefined(bundleId) {\n return bundleId in bundleIdCache;\n };\n\n // export\n return loadjs;\n });\n })(loadjs_umd$1);\n return loadjs_umd$1.exports;\n }\n\n var loadjs_umdExports = requireLoadjs_umd();\n var loadjs = /*@__PURE__*/getDefaultExportFromCjs(loadjs_umdExports);\n\n // ==========================================================================\n // Load an external script\n // ==========================================================================\n\n function loadScript(url) {\n return new Promise((resolve, reject) => {\n loadjs(url, {\n success: resolve,\n error: reject\n });\n });\n }\n\n // ==========================================================================\n // Vimeo plugin\n // ==========================================================================\n\n\n // Parse Vimeo ID from URL\n function parseId$1(url) {\n if (is.empty(url)) {\n return null;\n }\n if (is.number(Number(url))) {\n return url;\n }\n\n // eslint-disable-next-line regexp/optimal-quantifier-concatenation\n const regex = /^.*(vimeo.com\\/|video\\/)(\\d+).*/;\n const match = url.match(regex);\n return match ? match[2] : url;\n }\n\n // Try to extract a hash for private videos from the URL\n function parseHash(url) {\n /* This regex matches a hexadecimal hash if given in any of these forms:\n * - [https://player.]vimeo.com/video/{id}/{hash}[?params]\n * - [https://player.]vimeo.com/video/{id}?h={hash}[¶ms]\n * - [https://player.]vimeo.com/video/{id}?[params]&h={hash}\n * - video/{id}/{hash}\n * If matched, the hash is available in capture group 4\n */\n const regex = /^.*(vimeo.com\\/|video\\/)(\\d+)(\\?.*h=|\\/)+([\\d,a-f]+)/;\n const found = url.match(regex);\n return found && found.length === 5 ? found[4] : null;\n }\n\n // Set playback state and trigger change (only on actual change)\n function assurePlaybackState$1(play) {\n if (play && !this.embed.hasPlayed) {\n this.embed.hasPlayed = true;\n }\n if (this.media.paused === play) {\n this.media.paused = !play;\n triggerEvent.call(this, this.media, play ? 'play' : 'pause');\n }\n }\n const vimeo = {\n setup() {\n const player = this;\n\n // Add embed class for responsive\n toggleClass(player.elements.wrapper, player.config.classNames.embed, true);\n\n // Set speed options from config\n player.options.speed = player.config.speed.options;\n\n // Set initial ratio\n setAspectRatio.call(player);\n\n // Load the SDK if not already\n if (!is.object(window.Vimeo)) {\n loadScript(player.config.urls.vimeo.sdk).then(() => {\n vimeo.ready.call(player);\n }).catch(error => {\n player.debug.warn('Vimeo SDK (player.js) failed to load', error);\n });\n } else {\n vimeo.ready.call(player);\n }\n },\n // API Ready\n ready() {\n const player = this;\n const config = player.config.vimeo;\n const {\n premium,\n referrerPolicy,\n ...frameParams\n } = config;\n // Get the source URL or ID\n let source = player.media.getAttribute('src');\n let hash = '';\n // Get from
if needed\n if (is.empty(source)) {\n source = player.media.getAttribute(player.config.attributes.embed.id);\n // hash can also be set as attribute on the
\n hash = player.media.getAttribute(player.config.attributes.embed.hash);\n } else {\n hash = parseHash(source);\n }\n const hashParam = hash ? {\n h: hash\n } : {};\n\n // If the owner has a pro or premium account then we can hide controls etc\n if (premium) {\n Object.assign(frameParams, {\n controls: false,\n sidedock: false\n });\n }\n\n // Get Vimeo params for the iframe\n const params = buildUrlParams({\n loop: player.config.loop.active,\n autoplay: player.autoplay,\n muted: player.muted,\n gesture: 'media',\n playsinline: player.config.playsinline,\n // hash has to be added to iframe-URL\n ...hashParam,\n ...frameParams\n });\n const id = parseId$1(source);\n // Build an iframe\n const iframe = createElement('iframe');\n const src = format(player.config.urls.vimeo.iframe, id, params);\n iframe.setAttribute('src', src);\n iframe.setAttribute('allowfullscreen', '');\n iframe.setAttribute('allow', ['autoplay', 'fullscreen', 'picture-in-picture', 'encrypted-media', 'accelerometer', 'gyroscope'].join('; '));\n\n // Set the referrer policy if required\n if (!is.empty(referrerPolicy)) {\n iframe.setAttribute('referrerPolicy', referrerPolicy);\n }\n\n // Inject the package\n if (premium || !config.customControls) {\n iframe.setAttribute('data-poster', player.poster);\n player.media = replaceElement(iframe, player.media);\n } else {\n const wrapper = createElement('div', {\n 'class': player.config.classNames.embedContainer,\n 'data-poster': player.poster\n });\n wrapper.appendChild(iframe);\n player.media = replaceElement(wrapper, player.media);\n }\n\n // Get poster image\n if (!config.customControls) {\n fetch(format(player.config.urls.vimeo.api, src)).then(response => {\n if (is.empty(response) || !response.thumbnail_url) {\n return;\n }\n\n // Set and show poster\n ui.setPoster.call(player, response.thumbnail_url).catch(() => {});\n });\n }\n\n // Setup instance\n // https://github.com/vimeo/player.js\n player.embed = new window.Vimeo.Player(iframe, {\n autopause: player.config.autopause,\n muted: player.muted\n });\n player.media.paused = true;\n player.media.currentTime = 0;\n\n // Disable native text track rendering\n if (player.supported.ui) {\n player.embed.disableTextTrack();\n }\n\n // Create a faux HTML5 API using the Vimeo API\n player.media.play = () => {\n assurePlaybackState$1.call(player, true);\n return player.embed.play();\n };\n player.media.pause = () => {\n assurePlaybackState$1.call(player, false);\n return player.embed.pause();\n };\n player.media.stop = () => {\n player.pause();\n player.currentTime = 0;\n };\n\n // Seeking\n let {\n currentTime\n } = player.media;\n Object.defineProperty(player.media, 'currentTime', {\n get() {\n return currentTime;\n },\n set(time) {\n // Vimeo will automatically play on seek if the video hasn't been played before\n\n // Get current paused state and volume etc\n const {\n embed,\n media,\n paused,\n volume\n } = player;\n const restorePause = paused && !embed.hasPlayed;\n\n // Set seeking state and trigger event\n media.seeking = true;\n triggerEvent.call(player, media, 'seeking');\n\n // If paused, mute until seek is complete\n Promise.resolve(restorePause && embed.setVolume(0))\n // Seek\n .then(() => embed.setCurrentTime(time))\n // Restore paused\n .then(() => restorePause && embed.pause())\n // Restore volume\n .then(() => restorePause && embed.setVolume(volume)).catch(() => {\n // Do nothing\n });\n }\n });\n\n // Playback speed\n let speed = player.config.speed.selected;\n Object.defineProperty(player.media, 'playbackRate', {\n get() {\n return speed;\n },\n set(input) {\n player.embed.setPlaybackRate(input).then(() => {\n speed = input;\n triggerEvent.call(player, player.media, 'ratechange');\n }).catch(() => {\n // Cannot set Playback Rate, Video is probably not on Pro account\n player.options.speed = [1];\n });\n }\n });\n\n // Volume\n let {\n volume\n } = player.config;\n Object.defineProperty(player.media, 'volume', {\n get() {\n return volume;\n },\n set(input) {\n player.embed.setVolume(input).then(() => {\n volume = input;\n triggerEvent.call(player, player.media, 'volumechange');\n });\n }\n });\n\n // Muted\n let {\n muted\n } = player.config;\n Object.defineProperty(player.media, 'muted', {\n get() {\n return muted;\n },\n set(input) {\n const toggle = is.boolean(input) ? input : false;\n player.embed.setMuted(toggle ? true : player.config.muted).then(() => {\n muted = toggle;\n triggerEvent.call(player, player.media, 'volumechange');\n });\n }\n });\n\n // Loop\n let {\n loop\n } = player.config;\n Object.defineProperty(player.media, 'loop', {\n get() {\n return loop;\n },\n set(input) {\n const toggle = is.boolean(input) ? input : player.config.loop.active;\n player.embed.setLoop(toggle).then(() => {\n loop = toggle;\n });\n }\n });\n\n // Source\n let currentSrc;\n player.embed.getVideoUrl().then(value => {\n currentSrc = value;\n controls.setDownloadUrl.call(player);\n }).catch(error => {\n this.debug.warn(error);\n });\n Object.defineProperty(player.media, 'currentSrc', {\n get() {\n return currentSrc;\n }\n });\n\n // Ended\n Object.defineProperty(player.media, 'ended', {\n get() {\n return player.currentTime === player.duration;\n }\n });\n\n // Set aspect ratio based on video size\n Promise.all([player.embed.getVideoWidth(), player.embed.getVideoHeight()]).then(dimensions => {\n const [width, height] = dimensions;\n player.embed.ratio = roundAspectRatio(width, height);\n setAspectRatio.call(this);\n });\n\n // Set autopause\n player.embed.setAutopause(player.config.autopause).then(state => {\n player.config.autopause = state;\n });\n\n // Get title\n player.embed.getVideoTitle().then(title => {\n player.config.title = title;\n ui.setTitle.call(this);\n });\n\n // Get current time\n player.embed.getCurrentTime().then(value => {\n currentTime = value;\n triggerEvent.call(player, player.media, 'timeupdate');\n });\n\n // Get duration\n player.embed.getDuration().then(value => {\n player.media.duration = value;\n triggerEvent.call(player, player.media, 'durationchange');\n });\n\n // Get captions\n player.embed.getTextTracks().then(tracks => {\n player.media.textTracks = tracks;\n captions.setup.call(player);\n });\n player.embed.on('cuechange', ({\n cues = []\n }) => {\n const strippedCues = cues.map(cue => stripHTML(cue.text));\n captions.updateCues.call(player, strippedCues);\n });\n player.embed.on('loaded', () => {\n // Assure state and events are updated on autoplay\n player.embed.getPaused().then(paused => {\n assurePlaybackState$1.call(player, !paused);\n if (!paused) {\n triggerEvent.call(player, player.media, 'playing');\n }\n });\n if (is.element(player.embed.element) && player.supported.ui) {\n const frame = player.embed.element;\n\n // Fix keyboard focus issues\n // https://github.com/sampotts/plyr/issues/317\n frame.setAttribute('tabindex', -1);\n }\n });\n player.embed.on('bufferstart', () => {\n triggerEvent.call(player, player.media, 'waiting');\n });\n player.embed.on('bufferend', () => {\n triggerEvent.call(player, player.media, 'playing');\n });\n player.embed.on('play', () => {\n assurePlaybackState$1.call(player, true);\n triggerEvent.call(player, player.media, 'playing');\n });\n player.embed.on('pause', () => {\n assurePlaybackState$1.call(player, false);\n });\n player.embed.on('timeupdate', data => {\n player.media.seeking = false;\n currentTime = data.seconds;\n triggerEvent.call(player, player.media, 'timeupdate');\n });\n player.embed.on('progress', data => {\n player.media.buffered = data.percent;\n triggerEvent.call(player, player.media, 'progress');\n\n // Check all loaded\n if (Number.parseInt(data.percent, 10) === 1) {\n triggerEvent.call(player, player.media, 'canplaythrough');\n }\n\n // Get duration as if we do it before load, it gives an incorrect value\n // https://github.com/sampotts/plyr/issues/891\n player.embed.getDuration().then(value => {\n if (value !== player.media.duration) {\n player.media.duration = value;\n triggerEvent.call(player, player.media, 'durationchange');\n }\n });\n });\n player.embed.on('seeked', () => {\n player.media.seeking = false;\n triggerEvent.call(player, player.media, 'seeked');\n });\n player.embed.on('ended', () => {\n player.media.paused = true;\n triggerEvent.call(player, player.media, 'ended');\n });\n player.embed.on('error', detail => {\n player.media.error = detail;\n triggerEvent.call(player, player.media, 'error');\n });\n\n // Rebuild UI\n if (config.customControls) {\n setTimeout(() => ui.build.call(player), 0);\n }\n }\n };\n\n // ==========================================================================\n // YouTube plugin\n // ==========================================================================\n\n\n // Parse YouTube ID from URL\n function parseId(url) {\n if (is.empty(url)) {\n return null;\n }\n const regex = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|&v=)([^#&?]*).*/;\n const match = url.match(regex);\n return match && match[2] ? match[2] : url;\n }\n\n // Set playback state and trigger change (only on actual change)\n function assurePlaybackState(play) {\n if (play && !this.embed.hasPlayed) {\n this.embed.hasPlayed = true;\n }\n if (this.media.paused === play) {\n this.media.paused = !play;\n triggerEvent.call(this, this.media, play ? 'play' : 'pause');\n }\n }\n function getHost(config) {\n if (config.noCookie) {\n return 'https://www.youtube-nocookie.com';\n }\n if (window.location.protocol === 'http:') {\n return 'http://www.youtube.com';\n }\n\n // Use YouTube's default\n return undefined;\n }\n const youtube = {\n setup() {\n // Add embed class for responsive\n toggleClass(this.elements.wrapper, this.config.classNames.embed, true);\n\n // Setup API\n if (is.object(window.YT) && is.function(window.YT.Player)) {\n youtube.ready.call(this);\n } else {\n // Reference current global callback\n const callback = window.onYouTubeIframeAPIReady;\n\n // Set callback to process queue\n window.onYouTubeIframeAPIReady = () => {\n // Call global callback if set\n if (is.function(callback)) {\n callback();\n }\n youtube.ready.call(this);\n };\n\n // Load the SDK\n loadScript(this.config.urls.youtube.sdk).catch(error => {\n this.debug.warn('YouTube API failed to load', error);\n });\n }\n },\n // Get the media title\n getTitle(videoId) {\n const url = format(this.config.urls.youtube.api, videoId);\n fetch(url).then(data => {\n if (is.object(data)) {\n const {\n title,\n height,\n width\n } = data;\n\n // Set title\n this.config.title = title;\n ui.setTitle.call(this);\n\n // Set aspect ratio\n this.embed.ratio = roundAspectRatio(width, height);\n }\n setAspectRatio.call(this);\n }).catch(() => {\n // Set aspect ratio\n setAspectRatio.call(this);\n });\n },\n // API ready\n ready() {\n const player = this;\n const config = player.config.youtube;\n // Ignore already setup (race condition)\n const currentId = player.media && player.media.getAttribute('id');\n if (!is.empty(currentId) && currentId.startsWith('youtube-')) {\n return;\n }\n\n // Get the source URL or ID\n let source = player.media.getAttribute('src');\n\n // Get from
if needed\n if (is.empty(source)) {\n source = player.media.getAttribute(this.config.attributes.embed.id);\n }\n\n // Replace the