{"version":3,"sources":["../node_modules/react/index.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/prop-types/index.js","../../node_modules/react-ga/dist/esm/utils/console/warn.js","../../node_modules/react-ga/dist/esm/components/OutboundLink.js","../../node_modules/react-ga/dist/esm/utils/trim.js","../../node_modules/react-ga/dist/esm/utils/toTitleCase.js","../../node_modules/react-ga/dist/esm/utils/format.js","../../node_modules/react-ga/dist/esm/utils/mightBeEmail.js","../../node_modules/react-ga/dist/esm/utils/loadGA.js","../../node_modules/react-ga/dist/esm/utils/console/log.js","../../node_modules/react-ga/dist/esm/utils/testModeAPI.js","../../node_modules/react-ga/dist/esm/core.js","../../node_modules/react-ga/dist/esm/utils/removeLeadingSlash.js","../../node_modules/react-ga/dist/esm/index.js","../node_modules/object-assign/index.js","../node_modules/react-dom/index.js","../node_modules/jquery/dist/jquery.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js"],"names":["module","exports","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_typeof2","obj","Symbol","iterator","constructor","_typeof","_possibleConstructorReturn","self","call","ReferenceError","_setPrototypeOf","p","_inherits","subClass","superClass","create","value","warn","s","console","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","apply","_objectWithoutProperties","source","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_assertThisInitialized","_defineProperty","NEWTAB","MIDDLECLICK","_Component","OutboundLink","_getPrototypeOf2","_this","this","_len","arguments","args","Array","_key","concat","event","_this$props","eventLabel","to","onClick","trackerNames","eventMeta","label","sameTarget","normalClick","ctrlKey","shiftKey","metaKey","button","preventDefault","trackLink","window","location","href","_this$props2","forEach","getOwnPropertyDescriptors","defineProperties","_objectSpread","handleClick","rel","createElement","trim","replace","string","isRequired","func","arrayOf","smallWords","redacted","format","titleCase","mightBeEmail","match","index","title","search","charAt","toLowerCase","substr","toUpperCase","g","r","a","m","gaAddress","options","debug","document","q","l","Date","getElementsByTagName","async","src","parentNode","insertBefore","log","info","gaCalls","calls","ga","resetCalls","_toConsumableArray","arr","isArray","arr2","_arrayWithoutHoles","iter","toString","from","_iterableToArray","_nonIterableSpread","_isNotBrowser","_debug","_titleCase","_testMode","_alwaysSendToDefaultTracker","_window","_format","_gaCommand","command","name","slice","_initialize","gaTrackingID","useExistingGa","gaOptions","initialize","configsOrTrackingId","testMode","standardImplementation","loadGA","alwaysSendToDefaultTracker","config","trackingId","_len2","_key2","JSON","stringify","set","fieldsObject","send","fieldObject","pageview","rawPath","path","extraFields","hitType","page","extraLog","modalview","rawModalName","modalName","substring","timing","_ref","undefined","category","variable","timingCategory","timingVar","timingValue","timingLabel","_ref2","action","nonInteraction","transport","eventCategory","eventAction","eventValue","exception","_ref3","description","fatal","exDescription","exFatal","require","rawName","trackerName","requireString","execute","pluginName","payload","actionType","outboundLink","hitCallback","safetyCallbackCalled","t","setTimeout","clearTimeout","plugin","testModeAPI","origTrackLink","hasOwnProperty","propIsEnumerable","toObject","val","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","map","n","join","test3","split","letter","err","shouldUseNative","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","error","global","factory","w","Error","noGlobal","getProto","_slice","class2type","hasOwn","fnToString","ObjectFunctionString","support","isFunction","nodeType","isWindow","preservedScriptAttributes","type","nonce","noModule","DOMEval","code","node","doc","script","text","getAttribute","setAttribute","head","appendChild","removeChild","toType","jQuery","selector","context","fn","init","rtrim","isArrayLike","jquery","toArray","get","num","pushStack","elems","ret","merge","prevObject","each","callback","elem","first","eq","last","len","j","end","sort","splice","extend","copy","copyIsArray","clone","deep","isPlainObject","expando","Math","random","isReady","msg","noop","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","grep","invert","matches","callbackExpect","arg","guid","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","b","pop","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","_","escaped","escapedWhitespace","high","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","dir","next","childNodes","e","els","seed","nid","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByClassName","qsa","test","toSelector","testContext","querySelectorAll","qsaError","removeAttribute","cache","cacheLength","shift","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","attrId","find","getAttributeNode","tag","tmp","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","specified","escape","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","setFilters","idx","matched","matcher","unmatched","lang","elemLang","hash","activeElement","hasFocus","tabIndex","checked","selected","selectedIndex","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","defaultValue","unique","isXMLDoc","escapeSelector","_dir","until","truncate","is","_siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","rootjQuery","root","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","has","targets","closest","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","content","reverse","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","flag","createOptions","firing","memory","_fired","_locked","queue","firingIndex","fire","once","stopOnFalse","remove","empty","disable","lock","locked","fireWith","fired","Deferred","tuples","_state","_promise","state","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","message","readyException","readyList","completed","removeEventListener","catch","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","rmsPrefix","rdashAlpha","fcamelCase","all","camelCase","acceptData","owner","Data","uid","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","parse","getData","_data","removeData","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","swap","old","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","show","values","hide","toggle","rcheckableType","rtagName","rscriptType","wrapMap","option","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","optgroup","tbody","tfoot","colgroup","caption","th","buildFragment","scripts","selection","ignored","wrap","attached","fragment","createDocumentFragment","nodes","htmlPrefilter","createTextNode","div","checkClone","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","_on","types","one","origFn","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","trigger","Event","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","_handlers","matchedHandlers","matchedSelectors","addProp","hook","originalEvent","load","noBubble","click","beforeunload","returnValue","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","detail","eventPhase","pageX","pageY","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","on","rxhtmlTag","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","_remove","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","getComputedStyle","rboxStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","cssPrefixes","emptyStyle","vendorProps","finalPropName","_final","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","isCustomProp","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","propHooks","run","percent","eased","duration","pos","step","fx","scrollTop","scrollLeft","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","height","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","bind","complete","timer","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","parseInt","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","isLocal","protocol","processData","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","_statusCode","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","_callback","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","_callback2","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","hover","fnOver","fnOut","unbind","delegate","undelegate","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","_jQuery","_$","$","noConflict","h","for","u","x","y","aa","ba","ca","z","A","d","c","B","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","C","D","refs","updater","E","F","isReactComponent","setState","forceUpdate","G","isPureReactComponent","H","I","suspense","J","K","L","ref","__self","__source","M","k","f","defaultProps","$$typeof","_owner","N","O","P","Q","keyPrefix","R","U","S","T","ea","fa","V","da","W","X","Children","only","createRef","Component","PureComponent","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","forwardRef","render","lazy","_ctor","_status","_result","memo","useCallback","useContext","useEffect","useImperativeHandle","useDebugValue","useLayoutEffect","useMemo","useReducer","useRef","useState","Fragment","Profiler","StrictMode","Suspense","unstable_SuspenseList","cloneElement","createFactory","isValidElement","version","unstable_withSuspenseConfig","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","IsSomeRendererActing","Y","default","Z","extractEvents","eventTypes","phasedRegistrationNames","ha","registrationName","ia","ja","dependencies","ka","onError","la","ma","na","oa","pa","qa","sa","ta","va","wa","ra","xa","ya","za","Aa","_dispatchListeners","_dispatchInstances","isPersistent","release","Ba","Ca","injectEventPluginOrder","injectEventPluginsByName","Da","stateNode","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","return","Ma","dispatchConfig","Na","_targetInst","Oa","Pa","Qa","Ra","Sa","Ta","animationend","animationiteration","animationstart","transitionend","Ua","Va","Wa","transition","Xa","Ya","Za","ab","bb","cb","db","eb","fb","gb","hb","Interface","jb","eventPool","kb","destructor","ib","getPooled","cancelBubble","persist","isTrusted","lb","mb","nb","ob","pb","documentMode","qb","sb","tb","ub","beforeInput","bubbled","captured","compositionEnd","compositionStart","compositionUpdate","vb","wb","xb","yb","Cb","locale","Ab","char","Bb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","color","date","datetime","email","month","number","range","tel","week","Qb","Rb","srcElement","correspondingUseElement","Sb","Tb","Vb","_valueTracker","getValue","setValue","stopTracking","Ub","Wb","Xb","Yb","Zb","$b","ac","bc","cc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","oc","displayName","pc","_debugOwner","_debugSource","fileName","lineNumber","qc","rc","sc","tc","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","xc","yc","zc","vc","wc","uc","setAttributeNS","Ac","Bc","defaultChecked","_wrapperState","initialChecked","Cc","initialValue","controlled","Dc","Ec","Fc","Gc","xlinkHref","Hc","change","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","detachEvent","Qc","Rc","Sc","Tc","Uc","Vc","_isInputEventSupported","Wc","Xc","Alt","Control","Meta","Shift","Yc","getModifierState","Zc","$c","ad","bd","cd","dd","fromElement","movementX","movementY","ed","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","fd","mouseEnter","mouseLeave","pointerEnter","pointerLeave","gd","alternate","hd","jd","kd","responder","ld","effectTag","od","qd","child","pd","Map","Set","rd","animationName","elapsedTime","pseudoElement","sd","clipboardData","ud","vd","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","wd","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","xd","repeat","yd","dataTransfer","zd","Ad","Bd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","eventPriority","Md","getEventPriority","Nd","Od","Pd","targetInst","ancestors","containerInfo","topLevelType","Qd","Rd","Sd","Td","Ud","Vd","WeakMap","Wd","Xd","Yd","Zd","ae","HTMLIFrameElement","contentWindow","be","contentEditable","ce","de","ee","fe","ge","he","ie","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","je","onSelect","le","ke","me","defaultSelected","ne","dangerouslySetInnerHTML","oe","pe","qe","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","re","mathml","svg","se","te","ue","ve","MSApp","execUnsafeLocalFunction","we","xe","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","lineHeight","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","ye","ze","Ae","Ce","menuitem","area","br","embed","hr","img","keygen","link","meta","track","wbr","De","Ee","Fe","Ge","He","Ie","Je","autoFocus","Ke","__html","Le","Me","Ne","Oe","Pe","Qe","Re","Se","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","childContextTypes","Te","Ue","Ve","We","getChildContext","Xe","__reactInternalMemoizedMergedChildContext","Ye","Ze","unstable_runWithPriority","$e","unstable_scheduleCallback","af","unstable_cancelCallback","bf","unstable_shouldYield","cf","unstable_requestPaint","df","unstable_now","ef","unstable_getCurrentPriorityLevel","ff","unstable_ImmediatePriority","hf","unstable_UserBlockingPriority","jf","unstable_NormalPriority","kf","unstable_LowPriority","lf","unstable_IdlePriority","mf","nf","of","pf","qf","rf","sf","tf","uf","vf","wf","xf","yf","zf","Af","Cf","Df","Ef","Ff","Gf","Hf","If","Jf","childExpirationTime","Kf","firstContext","expirationTime","Lf","Mf","observedBits","responders","Nf","Of","baseState","firstUpdate","lastUpdate","firstCapturedUpdate","lastCapturedUpdate","firstEffect","lastEffect","firstCapturedEffect","lastCapturedEffect","Pf","Qf","suspenseConfig","nextEffect","Rf","Sf","updateQueue","memoizedState","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","fg","_reactInternalFiber","cg","dg","eg","gg","shouldComponentUpdate","hg","contextType","ig","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","jg","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","kg","lg","_stringRef","mg","ng","og","pg","mode","elementType","qg","rg","sg","rb","delete","Be","tg","ug","vg","wg","xg","yg","zg","Ag","tagName","Bg","Cg","Dg","Eg","Fg","Gg","Hg","memoizedProps","revealOrder","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","dh","eh","fh","hh","ih","jh","baseUpdate","kh","lh","mh","lastRenderedReducer","lastRenderedState","eagerReducer","eagerState","nh","destroy","deps","oh","ph","qh","rh","sh","readContext","useResponder","uh","vh","wh","xh","yh","pendingProps","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","Mh","getDerivedStateFromError","Nh","pendingContext","Oh","Ph","fallback","unstable_avoidThisFallback","Qh","isBackwards","rendering","tail","tailExpiration","tailMode","Rh","Sh","Th","Uh","Vh","Wh","$h","ai","bi","onclick","ci","WeakSet","di","gi","fi","hi","ii","ji","componentWillUnmount","ei","ki","li","mi","ni","_reactRootContainer","oi","wasMultiple","multiple","pi","qi","ri","si","ti","element","ui","vi","wi","componentDidCatch","xi","componentStack","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","Ti","Ui","Vi","Wi","timeoutMs","Xi","Yi","pingTime","Zi","firstPendingTime","lastPendingTime","callbackExpirationTime","callbackNode","$i","aj","bj","cj","ej","fj","gj","hj","finishedWork","finishedExpirationTime","timeoutHandle","ij","jj","pingCache","kj","lj","firstBatch","_defer","_expirationTime","_onComplete","dj","busyMinDurationMs","busyDelayMs","mj","size","createElementNS","nj","rangeCount","zb","focusedElem","selectionRange","ua","gh","oj","__reactInternalSnapshotBeforeUpdate","$d","min","createRange","setStart","removeAllRanges","addRange","setEnd","$a","nc","md","Fj","Xh","Yh","Gj","nd","Zh","gf","pj","qj","rj","Bf","sj","hydrate","unstable_observedBits","uj","pendingChildren","vj","wj","xj","yj","zj","Bj","_root","_callbacks","_next","_hasChildren","_didComplete","_children","Cj","_didCommit","_onCommit","Dj","_internalRoot","Ej","Hj","Jj","hasAttribute","Ij","Kj","Aj","form","commit","unmount","createBatch","Nj","createPortal","findDOMNode","unstable_renderSubtreeIntoContainer","unmountComponentAtNode","unstable_createPortal","unstable_batchedUpdates","unstable_interactiveUpdates","unstable_discreteUpdates","unstable_flushDiscreteUpdates","flushSync","unstable_createRoot","unstable_createSyncRoot","unstable_flushControlled","Events","findFiberByHostInstance","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","tj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","Oj","Pj","_d","unstable_forceFrameRate","MessageChannel","performance","cancelAnimationFrame","floor","postMessage","port2","port1","onmessage","previous","priorityLevel","unstable_next","unstable_wrapCallback","unstable_continueExecution","unstable_pauseExecution","unstable_getFirstCallbackNode","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","array","symbol","any","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes"],"mappings":"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","file":"static/js/2.0c9a9846.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nexport default function _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}","export default function warn(s) {\n console.warn('[react-ga]', s);\n}","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport warn from '../utils/console/warn';\nvar NEWTAB = '_blank';\nvar MIDDLECLICK = 1;\n\nvar OutboundLink =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(OutboundLink, _Component);\n\n function OutboundLink() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, OutboundLink);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(OutboundLink)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"handleClick\", function (event) {\n var _this$props = _this.props,\n target = _this$props.target,\n eventLabel = _this$props.eventLabel,\n to = _this$props.to,\n onClick = _this$props.onClick,\n trackerNames = _this$props.trackerNames;\n var eventMeta = {\n label: eventLabel\n };\n var sameTarget = target !== NEWTAB;\n var normalClick = !(event.ctrlKey || event.shiftKey || event.metaKey || event.button === MIDDLECLICK);\n\n if (sameTarget && normalClick) {\n event.preventDefault();\n OutboundLink.trackLink(eventMeta, function () {\n window.location.href = to;\n }, trackerNames);\n } else {\n OutboundLink.trackLink(eventMeta, function () {}, trackerNames);\n }\n\n if (onClick) {\n onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(OutboundLink, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n href = _this$props2.to,\n oldProps = _objectWithoutProperties(_this$props2, [\"to\"]);\n\n var props = _objectSpread({}, oldProps, {\n href: href,\n onClick: this.handleClick\n });\n\n if (this.props.target === NEWTAB) {\n props.rel = 'noopener noreferrer';\n }\n\n delete props.eventLabel;\n delete props.trackerNames;\n return React.createElement('a', props);\n }\n }]);\n\n return OutboundLink;\n}(Component);\n\n_defineProperty(OutboundLink, \"trackLink\", function () {\n warn('ga tracking not enabled');\n});\n\n_defineProperty(OutboundLink, \"propTypes\", {\n eventLabel: PropTypes.string.isRequired,\n target: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n trackerNames: PropTypes.arrayOf(PropTypes.string)\n});\n\n_defineProperty(OutboundLink, \"defaultProps\", {\n target: null,\n to: null,\n onClick: null,\n trackerNames: null\n});\n\nexport { OutboundLink as default };","// GA strings need to have leading/trailing whitespace trimmed, and not all\n// browsers have String.prototoype.trim().\nexport default function trim(s) {\n return s.replace(/^\\s+|\\s+$/g, '');\n}","/**\n * To Title Case 2.1 - http://individed.com/code/to-title-case/\n * Copyright 2008-2013 David Gouch. Licensed under the MIT License.\n * https://github.com/gouch/to-title-case\n */\nimport trim from './trim';\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i;\nexport default function toTitleCase(string) {\n return trim(string).replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== ':' && (title.charAt(index + match.length) !== '-' || title.charAt(index - 1) === '-') && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}","import mightBeEmail from './mightBeEmail';\nimport toTitleCase from './toTitleCase';\nimport warn from './console/warn';\nvar redacted = 'REDACTED (Potential Email Address)';\nexport default function format(s, titleCase) {\n if (mightBeEmail(s)) {\n warn('This arg looks like an email address, redacting.');\n return redacted;\n }\n\n if (titleCase) {\n return toTitleCase(s);\n }\n\n return s;\n}","// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nexport default function mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === 'string' && s.indexOf('@') !== -1;\n}","export default function (options) {\n var gaAddress = 'https://www.google-analytics.com/analytics.js';\n\n if (options && options.gaAddress) {\n gaAddress = options.gaAddress;\n } else if (options && options.debug) {\n gaAddress = 'https://www.google-analytics.com/analytics_debug.js';\n } // https://developers.google.com/analytics/devguides/collection/analyticsjs/\n\n /* eslint-disable */\n\n\n (function (i, s, o, g, r, a, m) {\n i['GoogleAnalyticsObject'] = r;\n i[r] = i[r] || function () {\n (i[r].q = i[r].q || []).push(arguments);\n }, i[r].l = 1 * new Date();\n a = s.createElement(o), m = s.getElementsByTagName(o)[0];\n a.async = 1;\n a.src = g;\n m.parentNode.insertBefore(a, m);\n })(window, document, 'script', gaAddress, 'ga');\n /* eslint-enable */\n\n}","export default function log(s) {\n console.info('[react-ga]', s);\n}","export var gaCalls = [];\nexport default {\n calls: gaCalls,\n ga: function ga() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n gaCalls.push([].concat(args));\n },\n resetCalls: function resetCalls() {\n gaCalls.length = 0;\n }\n};","function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n/**\n * React Google Analytics Module\n *\n * @package react-ga\n * @author Adam Lofting \n * Atul Varma \n */\n\n/**\n * Utilities\n */\n\n\nimport format from './utils/format';\nimport removeLeadingSlash from './utils/removeLeadingSlash';\nimport trim from './utils/trim';\nimport loadGA from './utils/loadGA';\nimport warn from './utils/console/warn';\nimport log from './utils/console/log';\nimport TestModeAPI from './utils/testModeAPI';\n\nvar _isNotBrowser = typeof window === 'undefined' || typeof document === 'undefined';\n\nvar _debug = false;\nvar _titleCase = true;\nvar _testMode = false;\nvar _alwaysSendToDefaultTracker = true;\n\nvar internalGa = function internalGa() {\n var _window;\n\n if (_testMode) return TestModeAPI.ga.apply(TestModeAPI, arguments);\n if (_isNotBrowser) return false;\n if (!window.ga) return warn('ReactGA.initialize must be called first or GoogleAnalytics should be loaded manually');\n return (_window = window).ga.apply(_window, arguments);\n};\n\nfunction _format(s) {\n return format(s, _titleCase);\n}\n\nfunction _gaCommand(trackerNames) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var command = args[0];\n\n if (typeof internalGa === 'function') {\n if (typeof command !== 'string') {\n warn('ga command must be a string');\n return;\n }\n\n if (_alwaysSendToDefaultTracker || !Array.isArray(trackerNames)) internalGa.apply(void 0, args);\n\n if (Array.isArray(trackerNames)) {\n trackerNames.forEach(function (name) {\n internalGa.apply(void 0, _toConsumableArray([\"\".concat(name, \".\").concat(command)].concat(args.slice(1))));\n });\n }\n }\n}\n\nfunction _initialize(gaTrackingID, options) {\n if (!gaTrackingID) {\n warn('gaTrackingID is required in initialize()');\n return;\n }\n\n if (options) {\n if (options.debug && options.debug === true) {\n _debug = true;\n }\n\n if (options.titleCase === false) {\n _titleCase = false;\n }\n\n if (options.useExistingGa) {\n return;\n }\n }\n\n if (options && options.gaOptions) {\n internalGa('create', gaTrackingID, options.gaOptions);\n } else {\n internalGa('create', gaTrackingID, 'auto');\n }\n}\n\nexport function initialize(configsOrTrackingId, options) {\n if (options && options.testMode === true) {\n _testMode = true;\n } else {\n if (_isNotBrowser) {\n return false;\n }\n\n if (!options || options.standardImplementation !== true) loadGA(options);\n }\n\n _alwaysSendToDefaultTracker = options && typeof options.alwaysSendToDefaultTracker === 'boolean' ? options.alwaysSendToDefaultTracker : true;\n\n if (Array.isArray(configsOrTrackingId)) {\n configsOrTrackingId.forEach(function (config) {\n if (_typeof(config) !== 'object') {\n warn('All configs must be an object');\n return;\n }\n\n _initialize(config.trackingId, config);\n });\n } else {\n _initialize(configsOrTrackingId, options);\n }\n\n return true;\n}\n/**\n * ga:\n * Returns the original GA object.\n */\n\nexport function ga() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (args.length > 0) {\n internalGa.apply(void 0, args);\n\n if (_debug) {\n log('called ga(\\'arguments\\');');\n log(\"with arguments: \".concat(JSON.stringify(args)));\n }\n }\n\n return window.ga;\n}\n/**\n * set:\n * GA tracker set method\n * @param {Object} fieldsObject - a field/value pair or a group of field/value pairs on the tracker\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function set(fieldsObject, trackerNames) {\n if (!fieldsObject) {\n warn('`fieldsObject` is required in .set()');\n return;\n }\n\n if (_typeof(fieldsObject) !== 'object') {\n warn('Expected `fieldsObject` arg to be an Object');\n return;\n }\n\n if (Object.keys(fieldsObject).length === 0) {\n warn('empty `fieldsObject` given to .set()');\n }\n\n _gaCommand(trackerNames, 'set', fieldsObject);\n\n if (_debug) {\n log('called ga(\\'set\\', fieldsObject);');\n log(\"with fieldsObject: \".concat(JSON.stringify(fieldsObject)));\n }\n}\n/**\n * send:\n * Clone of the low level `ga.send` method\n * WARNING: No validations will be applied to this\n * @param {Object} fieldObject - field object for tracking different analytics\n * @param {Array} trackerNames - trackers to send the command to\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function send(fieldObject, trackerNames) {\n _gaCommand(trackerNames, 'send', fieldObject);\n\n if (_debug) {\n log('called ga(\\'send\\', fieldObject);');\n log(\"with fieldObject: \".concat(JSON.stringify(fieldObject)));\n log(\"with trackers: \".concat(JSON.stringify(trackerNames)));\n }\n}\n/**\n * pageview:\n * Basic GA pageview tracking\n * @param {String} path - the current page page e.g. '/about'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n * @param {String} title - (optional) the page title e. g. 'My Website'\n */\n\nexport function pageview(rawPath, trackerNames, title) {\n if (!rawPath) {\n warn('path is required in .pageview()');\n return;\n }\n\n var path = trim(rawPath);\n\n if (path === '') {\n warn('path cannot be an empty string in .pageview()');\n return;\n }\n\n var extraFields = {};\n\n if (title) {\n extraFields.title = title;\n }\n\n if (typeof ga === 'function') {\n _gaCommand(trackerNames, 'send', _objectSpread({\n hitType: 'pageview',\n page: path\n }, extraFields));\n\n if (_debug) {\n log('called ga(\\'send\\', \\'pageview\\', path);');\n var extraLog = '';\n\n if (title) {\n extraLog = \" and title: \".concat(title);\n }\n\n log(\"with path: \".concat(path).concat(extraLog));\n }\n }\n}\n/**\n * modalview:\n * a proxy to basic GA pageview tracking to consistently track\n * modal views that are an equivalent UX to a traditional pageview\n * @param {String} modalName e.g. 'add-or-edit-club'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function modalview(rawModalName, trackerNames) {\n if (!rawModalName) {\n warn('modalName is required in .modalview(modalName)');\n return;\n }\n\n var modalName = removeLeadingSlash(trim(rawModalName));\n\n if (modalName === '') {\n warn('modalName cannot be an empty string or a single / in .modalview()');\n return;\n }\n\n if (typeof ga === 'function') {\n var path = \"/modal/\".concat(modalName);\n\n _gaCommand(trackerNames, 'send', 'pageview', path);\n\n if (_debug) {\n log('called ga(\\'send\\', \\'pageview\\', path);');\n log(\"with path: \".concat(path));\n }\n }\n}\n/**\n * timing:\n * GA timing\n * @param args.category {String} required\n * @param args.variable {String} required\n * @param args.value {Int} required\n * @param args.label {String} required\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function timing() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref.category,\n variable = _ref.variable,\n value = _ref.value,\n label = _ref.label;\n\n var trackerNames = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n if (!category || !variable || !value || typeof value !== 'number') {\n warn('args.category, args.variable ' + 'AND args.value are required in timing() ' + 'AND args.value has to be a number');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'timing',\n timingCategory: _format(category),\n timingVar: _format(variable),\n timingValue: value\n };\n\n if (label) {\n fieldObject.timingLabel = _format(label);\n }\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * event:\n * GA event tracking\n * @param args.category {String} required\n * @param args.action {String} required\n * @param args.label {String} optional\n * @param args.value {Int} optional\n * @param args.nonInteraction {boolean} optional\n * @param args.transport {string} optional\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function event() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref2.category,\n action = _ref2.action,\n label = _ref2.label,\n value = _ref2.value,\n nonInteraction = _ref2.nonInteraction,\n transport = _ref2.transport,\n args = _objectWithoutProperties(_ref2, [\"category\", \"action\", \"label\", \"value\", \"nonInteraction\", \"transport\"]);\n\n var trackerNames = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!category || !action) {\n warn('args.category AND args.action are required in event()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: _format(category),\n eventAction: _format(action)\n }; // Optional Fields\n\n if (label) {\n fieldObject.eventLabel = _format(label);\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value !== 'number') {\n warn('Expected `args.value` arg to be a Number.');\n } else {\n fieldObject.eventValue = value;\n }\n }\n\n if (typeof nonInteraction !== 'undefined') {\n if (typeof nonInteraction !== 'boolean') {\n warn('`args.nonInteraction` must be a boolean.');\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n\n if (typeof transport !== 'undefined') {\n if (typeof transport !== 'string') {\n warn('`args.transport` must be a string.');\n } else {\n if (['beacon', 'xhr', 'image'].indexOf(transport) === -1) {\n warn('`args.transport` must be either one of these values: `beacon`, `xhr` or `image`');\n }\n\n fieldObject.transport = transport;\n }\n }\n\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'dimension'.length) === 'dimension';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n });\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'metric'.length) === 'metric';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n }); // Send to GA\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * exception:\n * GA exception tracking\n * @param args.description {String} optional\n * @param args.fatal {boolean} optional\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function exception(_ref3, trackerNames) {\n var description = _ref3.description,\n fatal = _ref3.fatal;\n\n if (typeof ga === 'function') {\n // Required Fields\n var fieldObject = {\n hitType: 'exception'\n }; // Optional Fields\n\n if (description) {\n fieldObject.exDescription = _format(description);\n }\n\n if (typeof fatal !== 'undefined') {\n if (typeof fatal !== 'boolean') {\n warn('`args.fatal` must be a boolean.');\n } else {\n fieldObject.exFatal = fatal;\n }\n } // Send to GA\n\n\n send(fieldObject, trackerNames);\n }\n}\nexport var plugin = {\n /**\n * require:\n * GA requires a plugin\n * @param name {String} e.g. 'ecommerce' or 'myplugin'\n * @param options {Object} optional e.g {path: '/log', debug: true}\n * @param trackerName {String} optional e.g 'trackerName'\n */\n require: function require(rawName, options, trackerName) {\n if (typeof ga === 'function') {\n // Required Fields\n if (!rawName) {\n warn('`name` is required in .require()');\n return;\n }\n\n var name = trim(rawName);\n\n if (name === '') {\n warn('`name` cannot be an empty string in .require()');\n return;\n }\n\n var requireString = trackerName ? \"\".concat(trackerName, \".require\") : 'require'; // Optional Fields\n\n if (options) {\n if (_typeof(options) !== 'object') {\n warn('Expected `options` arg to be an Object');\n return;\n }\n\n if (Object.keys(options).length === 0) {\n warn('Empty `options` given to .require()');\n }\n\n ga(requireString, name, options);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"', \").concat(JSON.stringify(options)));\n }\n } else {\n ga(requireString, name);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"');\"));\n }\n }\n }\n },\n\n /**\n * execute:\n * GA execute action for plugin\n * Takes variable number of arguments\n * @param pluginName {String} e.g. 'ecommerce' or 'myplugin'\n * @param action {String} e.g. 'addItem' or 'myCustomAction'\n * @param actionType {String} optional e.g. 'detail'\n * @param payload {Object} optional e.g { id: '1x5e', name : 'My product to track' }\n */\n execute: function execute(pluginName, action) {\n var payload;\n var actionType;\n\n if ((arguments.length <= 2 ? 0 : arguments.length - 2) === 1) {\n payload = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n actionType = arguments.length <= 2 ? undefined : arguments[2];\n payload = arguments.length <= 3 ? undefined : arguments[3];\n }\n\n if (typeof ga === 'function') {\n if (typeof pluginName !== 'string') {\n warn('Expected `pluginName` arg to be a String.');\n } else if (typeof action !== 'string') {\n warn('Expected `action` arg to be a String.');\n } else {\n var command = \"\".concat(pluginName, \":\").concat(action);\n payload = payload || null;\n\n if (actionType && payload) {\n ga(command, actionType, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"actionType: \\\"\".concat(actionType, \"\\\" with payload: \").concat(JSON.stringify(payload)));\n }\n } else if (payload) {\n ga(command, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"with payload: \".concat(JSON.stringify(payload)));\n }\n } else {\n ga(command);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n }\n }\n }\n }\n }\n};\n/**\n * outboundLink:\n * GA outboundLink tracking\n * @param args.label {String} e.g. url, or 'Create an Account'\n * @param {function} hitCallback - Called after processing a hit.\n */\n\nexport function outboundLink(args, hitCallback, trackerNames) {\n if (typeof hitCallback !== 'function') {\n warn('hitCallback function is required');\n return;\n }\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!args || !args.label) {\n warn('args.label is required in outboundLink()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: 'Outbound',\n eventAction: 'Click',\n eventLabel: _format(args.label)\n };\n var safetyCallbackCalled = false;\n\n var safetyCallback = function safetyCallback() {\n // This prevents a delayed response from GA\n // causing hitCallback from being fired twice\n safetyCallbackCalled = true;\n hitCallback();\n }; // Using a timeout to ensure the execution of critical application code\n // in the case when the GA server might be down\n // or an ad blocker prevents sending the data\n // register safety net timeout:\n\n\n var t = setTimeout(safetyCallback, 250);\n\n var clearableCallbackForGA = function clearableCallbackForGA() {\n clearTimeout(t);\n\n if (!safetyCallbackCalled) {\n hitCallback();\n }\n };\n\n fieldObject.hitCallback = clearableCallbackForGA; // Send to GA\n\n send(fieldObject, trackerNames);\n } else {\n // if ga is not defined, return the callback so the application\n // continues to work as expected\n setTimeout(hitCallback, 0);\n }\n}\nexport var testModeAPI = TestModeAPI;\nexport default {\n initialize: initialize,\n ga: ga,\n set: set,\n send: send,\n pageview: pageview,\n modalview: modalview,\n timing: timing,\n event: event,\n exception: exception,\n plugin: plugin,\n outboundLink: outboundLink,\n testModeAPI: TestModeAPI\n};","export default function removeLeadingSlash(string) {\n if (string.substring(0, 1) === '/') {\n return string.substring(1);\n }\n\n return string;\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport UnboundOutboundLink from './components/OutboundLink';\nimport * as Defaults from './core';\nexport var initialize = Defaults.initialize;\nexport var ga = Defaults.ga;\nexport var set = Defaults.set;\nexport var send = Defaults.send;\nexport var pageview = Defaults.pageview;\nexport var modalview = Defaults.modalview;\nexport var timing = Defaults.timing;\nexport var event = Defaults.event;\nexport var exception = Defaults.exception;\nexport var plugin = Defaults.plugin;\nexport var outboundLink = Defaults.outboundLink;\nexport var testModeAPI = Defaults.testModeAPI;\nUnboundOutboundLink.origTrackLink = UnboundOutboundLink.trackLink;\nUnboundOutboundLink.trackLink = Defaults.outboundLink;\nexport var OutboundLink = UnboundOutboundLink;\nexport default _objectSpread({}, Defaults, {\n OutboundLink: OutboundLink\n});","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n'use strict';\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n } // Detect buggy property enumeration order in older V8 versions.\n // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\n\n var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\n test1[5] = 'de';\n\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test2 = {};\n\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n\n if (order2.join('') !== '0123456789') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n\n return true;\n } catch (err) {\n // We don't expect any of the above to throw, but better to be safe.\n return false;\n }\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n};","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function') {\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}","/*!\n * jQuery JavaScript Library v3.4.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2019-05-01T21:04Z\n */\n(function (global, factory) {\n \"use strict\";\n\n if (typeof module === \"object\" && typeof module.exports === \"object\") {\n // For CommonJS and CommonJS-like environments where a proper `window`\n // is present, execute the factory and get jQuery.\n // For environments that do not have a `window` with a `document`\n // (such as Node.js), expose a factory as module.exports.\n // This accentuates the need for the creation of a real `window`.\n // e.g. var jQuery = require(\"jquery\")(window);\n // See ticket #14549 for more info.\n module.exports = global.document ? factory(global, true) : function (w) {\n if (!w.document) {\n throw new Error(\"jQuery requires a window with a document\");\n }\n\n return factory(w);\n };\n } else {\n factory(global);\n } // Pass this if window is not defined yet\n\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\n // Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n // enough that all such attempts are guarded in a try block.\n \"use strict\";\n\n var arr = [];\n var document = window.document;\n var getProto = Object.getPrototypeOf;\n var _slice = arr.slice;\n var concat = arr.concat;\n var push = arr.push;\n var indexOf = arr.indexOf;\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var fnToString = hasOwn.toString;\n var ObjectFunctionString = fnToString.call(Object);\n var support = {};\n\n var isFunction = function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n var isWindow = function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n } // Support: Android <=2.3 only (functionish RegExp)\n\n\n return typeof obj === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : typeof obj;\n }\n /* global Symbol */\n // Defining this global in .eslintrc.json would create a danger of using the global\n // unguarded in another place, it seems safer to define global only for this module\n\n\n var version = \"3.4.1\",\n // Define a local copy of jQuery\n jQuery = function jQuery(selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n },\n // Support: Android <=4.0 only\n // Make sure we trim BOM and NBSP\n rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function toArray() {\n return _slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function get(num) {\n // Return all the elements in a clean array\n if (num == null) {\n return _slice.call(this);\n } // Return just the one element from the set\n\n\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function pushStack(elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n ret.prevObject = this; // Return the newly-formed element set\n\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function each(callback) {\n return jQuery.each(this, callback);\n },\n map: function map(callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function slice() {\n return this.pushStack(_slice.apply(this, arguments));\n },\n first: function first() {\n return this.eq(0);\n },\n last: function last() {\n return this.eq(-1);\n },\n eq: function eq(i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function end() {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false; // Handle a deep copy situation\n\n if (typeof target === \"boolean\") {\n deep = target; // Skip the boolean and the target\n\n target = arguments[i] || {};\n i++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (typeof target !== \"object\" && !isFunction(target)) {\n target = {};\n } // Extend jQuery itself if only one argument is passed\n\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name]; // Prevent Object.prototype pollution\n // Prevent never-ending loop\n\n if (name === \"__proto__\" || target === copy) {\n continue;\n } // Recurse if we're merging plain objects or arrays\n\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name]; // Ensure proper type for the source value\n\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n\n copyIsArray = false; // Never move original objects, clone them\n\n target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\n\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function error(msg) {\n throw new Error(msg);\n },\n noop: function noop() {},\n isPlainObject: function isPlainObject(obj) {\n var proto, Ctor; // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n\n proto = getProto(obj); // Objects with no prototype (e.g., `Object.create( null )`) are plain\n\n if (!proto) {\n return true;\n } // Objects with prototype are plain iff they were constructed by a global Object function\n\n\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function isEmptyObject(obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n\n return true;\n },\n // Evaluates a script in a global context\n globalEval: function globalEval(code, options) {\n DOMEval(code, {\n nonce: options && options.nonce\n });\n },\n each: function each(obj, callback) {\n var length,\n i = 0;\n\n if (isArrayLike(obj)) {\n length = obj.length;\n\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n\n return obj;\n },\n // Support: Android <=4.0 only\n trim: function trim(text) {\n return text == null ? \"\" : (text + \"\").replace(rtrim, \"\");\n },\n // results is for internal usage only\n makeArray: function makeArray(arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n inArray: function inArray(elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function merge(first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n\n first.length = i;\n return first;\n },\n grep: function grep(elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert; // Go through the array, only saving the items\n // that pass the validator function\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n // arg is for internal usage only\n map: function map(elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = []; // Go through the array, translating each of the items to their new values\n\n if (isArrayLike(elems)) {\n length = elems.length;\n\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n } // Go through every key on the object,\n\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } // Flatten any nested arrays\n\n\n return concat.apply([], ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n } // Populate the class2type map\n\n\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n\n var Sizzle =\n /*!\n * Sizzle CSS Selector Engine v2.3.4\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2019-04-08\n */\n function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function sortOrder(a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n\n return 0;\n },\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n push_native = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // https://jsperf.com/thor-indexof-vs-for/5\n indexOf = function indexOf(list, elem) {\n var i = 0,\n len = list.length;\n\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n identifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace + // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace + // \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rhtml = /HTML$/i,\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\"),\n funescape = function funescape(_, escaped, escapedWhitespace) {\n var high = \"0x\" + escaped - 0x10000; // NaN means non-codepoint\n // Support: Firefox<24\n // Workaround erroneous numeric interpretation of +\"0x\"\n\n return high !== high || escapedWhitespace ? escaped : high < 0 ? // BMP codepoint\n String.fromCharCode(high + 0x10000) : // Supplemental Plane codepoint (surrogate pair)\n String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n fcssescape = function fcssescape(ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n } // Control characters and (dependent upon position) numbers get escaped as code points\n\n\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n } // Other potentially-special ASCII characters get backslash-escaped\n\n\n return \"\\\\\" + ch;\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function unloadHandler() {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n }); // Optimize for push.apply( _, NodeList )\n\n\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0\n // Detect silently failing push.apply\n\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? // Leverage slice if possible\n function (target, els) {\n push_native.apply(target, slice.call(els));\n } : // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0; // Can't trust NodeList.length\n\n while (target[j++] = els[i++]) {}\n\n target.length = j - 1;\n }\n };\n }\n\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || []; // Return early from calls with invalid selector or context\n\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n } // Try to shortcut find operations (as opposed to filters) in HTML documents\n\n\n if (!seed) {\n if ((context ? context.ownerDocument || context : preferredDoc) !== document) {\n setDocument(context);\n }\n\n context = context || document;\n\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n } // Element context\n\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n } // Type selector\n\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results; // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n } // Take advantage of querySelectorAll\n\n\n if (support.qsa && !nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && ( // Support: IE 8 only\n // Exclude object elements\n nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\n newSelector = selector;\n newContext = context; // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // Thanks to Andrew Dupont for this technique.\n\n if (nodeType === 1 && rdescend.test(selector)) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rcssescape, fcssescape);\n } else {\n context.setAttribute(\"id\", nid = expando);\n } // Prefix every selector in the list\n\n\n groups = tokenize(selector);\n i = groups.length;\n\n while (i--) {\n groups[i] = \"#\" + nid + \" \" + toSelector(groups[i]);\n }\n\n newSelector = groups.join(\",\"); // Expand context for sibling selectors\n\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context;\n }\n\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n } // All others\n\n\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\n }\n /**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\n\n\n function createCache() {\n var keys = [];\n\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n\n return cache[key + \" \"] = value;\n }\n\n return cache;\n }\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n\n\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n\n\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n } // release memory in IE\n\n\n el = null;\n }\n }\n /**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\n\n\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\n }\n }\n /**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\n\n\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; // Use IE sourceIndex if available on both nodes\n\n if (diff) {\n return diff;\n } // Check if b follows a\n\n\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n\n\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n\n\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\n\n\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n } // Support: IE 6 - 11\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\n\n return elem.isDisabled === disabled || // Where there is no isDisabled, check manually\n\n /* jshint -W018 */\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n\n return elem.disabled === disabled; // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n } // Remaining elements are neither :enabled nor :disabled\n\n\n return false;\n };\n }\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n\n\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length; // Match elements found at the specified indexes\n\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n /**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n\n\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n } // Expose support vars for convenience\n\n\n support = Sizzle.support = {};\n /**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\n\n isXML = Sizzle.isXML = function (elem) {\n var namespace = elem.namespaceURI,\n docElem = (elem.ownerDocument || elem).documentElement; // Support: IE <=8\n // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n // https://bugs.jquery.com/ticket/4833\n\n return !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\n };\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n\n\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected\n\n if (doc === document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n } // Update global variables\n\n\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document); // Support: IE 9-11, Edge\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\n if (preferredDoc !== document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 11, Edge\n if (subWindow.addEventListener) {\n subWindow.addEventListener(\"unload\", unloadHandler, false); // Support: IE 9 - 10 only\n } else if (subWindow.attachEvent) {\n subWindow.attachEvent(\"onunload\", unloadHandler);\n }\n }\n /* Attributes\n ---------------------------------------------------------------------- */\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n\n\n support.attributes = assert(function (el) {\n el.className = \"i\";\n return !el.getAttribute(\"className\");\n });\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n // Check if getElementsByTagName(\"*\") returns only elements\n\n support.getElementsByTagName = assert(function (el) {\n el.appendChild(document.createComment(\"\"));\n return !el.getElementsByTagName(\"*\").length;\n }); // Support: IE<9\n\n support.getElementsByClassName = rnative.test(document.getElementsByClassName); // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n\n support.getById = assert(function (el) {\n docElem.appendChild(el).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n }); // ID filter and find\n\n if (support.getById) {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n }; // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n } // Fall back on getElementsByName\n\n\n elems = context.getElementsByName(id);\n i = 0;\n\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n\n return [];\n }\n };\n } // Tag\n\n\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag); // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag); // Filter out possible comments\n\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n\n return results;\n }; // Class\n\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n // QSA and matchesSelector support\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\n\n rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See https://bugs.jquery.com/ticket/13378\n\n rbuggyQSA = [];\n\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // https://bugs.jquery.com/ticket/12359\n docElem.appendChild(el).innerHTML = \"\" + \"\"; // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\n if (el.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n\n\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\n\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n } // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n\n\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n } // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n\n\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n }\n });\n assert(function (el) {\n el.innerHTML = \"\" + \"\"; // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\"); // Support: IE8\n // Enforce case-sensitivity of name attribute\n\n if (el.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n\n\n if (el.querySelectorAll(\":enabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: IE9-11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n\n\n docElem.appendChild(el).disabled = true;\n\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Opera 10-11 does not throw on post-comma invalid pseudos\n\n\n el.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (el) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(el, \"*\"); // This should fail with an exception\n // Gecko does not error, returns false instead\n\n matches.call(el, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n /* Contains\n ---------------------------------------------------------------------- */\n\n hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n\n return false;\n };\n /* Sorting\n ---------------------------------------------------------------------- */\n // Document order sorting\n\n sortOrder = hasCompare ? function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n } // Sort on method existence if only one input has compareDocumentPosition\n\n\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\n if (compare) {\n return compare;\n } // Calculate position if both inputs belong to the same document\n\n\n compare = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : // Otherwise we know they are disconnected\n 1; // Disconnected nodes\n\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n if (a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a)) {\n return -1;\n }\n\n if (b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b)) {\n return 1;\n } // Maintain original order\n\n\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\n\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n // Exit early if the nodes are identical\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b]; // Parentless nodes are either documents or disconnected\n\n if (!aup || !bup) {\n return a === document ? -1 : b === document ? 1 : aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n } // Otherwise we need full lists of their ancestors for comparison\n\n\n cur = a;\n\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n\n cur = b;\n\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n } // Walk down the tree looking for a discrepancy\n\n\n while (ap[i] === bp[i]) {\n i++;\n }\n\n return i ? // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) : // Otherwise nodes in our document sort first\n ap[i] === preferredDoc ? -1 : bp[i] === preferredDoc ? 1 : 0;\n };\n return document;\n };\n\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n\n Sizzle.matchesSelector = function (elem, expr) {\n // Set document vars if needed\n if ((elem.ownerDocument || elem) !== document) {\n setDocument(elem);\n }\n\n if (support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes\n\n if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n nonnativeSelectorCache(expr, true);\n }\n }\n\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n\n Sizzle.contains = function (context, elem) {\n // Set document vars if needed\n if ((context.ownerDocument || context) !== document) {\n setDocument(context);\n }\n\n return contains(context, elem);\n };\n\n Sizzle.attr = function (elem, name) {\n // Set document vars if needed\n if ((elem.ownerDocument || elem) !== document) {\n setDocument(elem);\n }\n\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (jQuery #13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n\n Sizzle.escape = function (sel) {\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n\n\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0; // Unless we *know* we can detect duplicates, assume their presence\n\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n } // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n\n\n sortInput = null;\n return results;\n };\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n\n\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n // Use textContent for elements\n // innerText usage removed for consistency of new lines (jQuery #11153)\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n // Traverse its children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n } // Do not include comment or processing instruction nodes\n\n\n return ret;\n };\n\n Expr = Sizzle.selectors = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n \"ATTR\": function ATTR(match) {\n match[1] = match[1].replace(runescape, funescape); // Move the given value to match[3] whether quoted or unquoted\n\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n\n return match.slice(0, 4);\n },\n \"CHILD\": function CHILD(match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n } // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n\n\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\"); // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n\n return match;\n },\n \"PSEUDO\": function PSEUDO(match) {\n var excess,\n unquoted = !match[6] && match[2];\n\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n } // Accept quoted arguments as-is\n\n\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\"; // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && ( // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && ( // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n } // Return only captures needed by the pseudo filter method (type and argument)\n\n\n return match.slice(0, 3);\n }\n },\n filter: {\n \"TAG\": function TAG(nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n \"CLASS\": function CLASS(className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n \"ATTR\": function ATTR(name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n\n if (result == null) {\n return operator === \"!=\";\n }\n\n if (!operator) {\n return true;\n }\n\n result += \"\";\n return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : operator === \"*=\" ? check && result.indexOf(check) > -1 : operator === \"$=\" ? check && result.slice(-check.length) === check : operator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 : operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" : false;\n };\n },\n \"CHILD\": function CHILD(type, what, argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ? // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, context, xml) {\n var cache,\n uniqueCache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n } // Reverse direction for :only-* (if we haven't yet done so)\n\n\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n\n return true;\n }\n\n start = [forward ? parent.firstChild : parent.lastChild]; // non-xml :nth-child(...) stores cache data on `parent`\n\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n // ...in a gzip-friendly way\n node = parent;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n\n while (node = ++nodeIndex && node && node[dir] || ( // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n uniqueCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n // ...in a gzip-friendly way\n node = elem;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n } // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\n\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n uniqueCache[type] = [dirruns, diff];\n }\n\n if (node === elem) {\n break;\n }\n }\n }\n }\n } // Incorporate the offset, then check against cycle size\n\n\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n \"PSEUDO\": function PSEUDO(pseudo, argument) {\n // pseudo-class names are case-insensitive\n // http://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo); // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n\n if (fn[expando]) {\n return fn(argument);\n } // But maintain support for old signatures\n\n\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n\n while (i--) {\n idx = indexOf(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n \"not\": markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length; // Match elements unmatched by `matcher`\n\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results); // Don't keep the element (issue #299)\n\n input[0] = null;\n return !results.pop();\n };\n }),\n \"has\": markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n \"contains\": markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || getText(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // http://www.w3.org/TR/selectors/#lang-pseudo\n \"lang\": markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n\n return false;\n };\n }),\n // Miscellaneous\n \"target\": function target(elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n \"root\": function root(elem) {\n return elem === docElem;\n },\n \"focus\": function focus(elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n \"enabled\": createDisabledPseudo(false),\n \"disabled\": createDisabledPseudo(true),\n \"checked\": function checked(elem) {\n // In CSS3, :checked should return both checked and selected elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n },\n \"selected\": function selected(elem) {\n // Accessing this property makes selected-by-default\n // options in Safari work properly\n if (elem.parentNode) {\n elem.parentNode.selectedIndex;\n }\n\n return elem.selected === true;\n },\n // Contents\n \"empty\": function empty(elem) {\n // http://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n\n return true;\n },\n \"parent\": function parent(elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n // Element/input types\n \"header\": function header(elem) {\n return rheader.test(elem.nodeName);\n },\n \"input\": function input(elem) {\n return rinputs.test(elem.nodeName);\n },\n \"button\": function button(elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n \"text\": function text(elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && ( // Support: IE<8\n // New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n \"first\": createPositionalPseudo(function () {\n return [0];\n }),\n \"last\": createPositionalPseudo(function (matchIndexes, length) {\n return [length - 1];\n }),\n \"eq\": createPositionalPseudo(function (matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n \"even\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument > length ? length : argument;\n\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"]; // Add button/input type pseudos\n\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n } // Easy API for creating new setFilters\n\n\n function setFilters() {}\n\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n\n groups.push(tokens = []);\n }\n\n matched = false; // Combinators\n\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n } // Filters\n\n\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n\n if (!matched) {\n break;\n }\n } // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n\n\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n\n return selector;\n }\n\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n skip = combinator.next,\n key = skip || dir,\n checkNonElements = base && key === \"parentNode\",\n doneName = done++;\n return combinator.first ? // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n\n return false;\n } : // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n uniqueCache,\n outerCache,\n newCache = [dirruns, doneName]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n\n if (skip && skip === elem.nodeName.toLowerCase()) {\n elem = elem[dir] || elem;\n } else if ((oldCache = uniqueCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n uniqueCache[key] = newCache; // A match means we're done; a fail means we have to keep checking\n\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n\n return false;\n };\n }\n\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n\n return true;\n } : matchers[0];\n }\n\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n\n return results;\n }\n\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n\n return newUnmatched;\n }\n\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ? // ...intermediate processing is necessary\n [] : // ...otherwise use results directly\n results : matcherIn; // Find primary matches\n\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n } // Apply postFilter\n\n\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml); // Un-match failing elements by moving them back to matcherIn\n\n i = temp.length;\n\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n\n postFinder(null, matcherOut = [], temp, xml);\n } // Move matched elements from seed to results to keep them synchronized\n\n\n i = matcherOut.length;\n\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n } // Add elements to results, through postFinder if defined\n\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); // Avoid hanging onto element (issue #299)\n\n checkContext = null;\n return ret;\n }];\n\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); // Return special upon seeing a positional matcher\n\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n\n matchers.push(matcher);\n }\n }\n\n return elementMatcher(matchers);\n }\n\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function superMatcher(seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n\n if (outermost) {\n outermostContext = context === document || context || outermost;\n } // Add elements passing elementMatchers directly to results\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\n\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0;\n\n if (!context && elem.ownerDocument !== document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n results.push(elem);\n break;\n }\n }\n\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n } // Track unmatched elements for set filters\n\n\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n } // Lengthen the array for every element, matched or not\n\n\n if (seed) {\n unmatched.push(elem);\n }\n }\n } // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n\n\n matchedCount += i; // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n\n if (bySet && i !== matchedCount) {\n j = 0;\n\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n } // Discard index placeholder values to get only actual matches\n\n\n setMatched = condense(setMatched);\n } // Add matches to results\n\n\n push.apply(results, setMatched); // Seedless set matches succeeding multiple successful matchers stipulate sorting\n\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n } // Override manipulation of globals by nested matchers\n\n\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n\n return unmatched;\n };\n\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n\n compile = Sizzle.compile = function (selector, match\n /* Internal Use Only */\n ) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n\n i = match.length;\n\n while (i--) {\n cached = matcherFromTokens(match[i]);\n\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n } // Cache the compiled function\n\n\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); // Save selector and tokenization\n\n cached.selector = selector;\n }\n\n return cached;\n };\n /**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\n\n\n select = Sizzle.select = function (selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || []; // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n\n if (!context) {\n return results; // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n\n selector = selector.slice(tokens.shift().value.length);\n } // Fetch a seed set for right-to-left matching\n\n\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n\n while (i--) {\n token = tokens[i]; // Abort if we hit a combinator\n\n if (Expr.relative[type = token.type]) {\n break;\n }\n\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n\n break;\n }\n }\n }\n } // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n\n\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }; // One-time assignments\n // Sort stability\n\n\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando; // Support: Chrome 14-35+\n // Always assume duplicates if they aren't passed to the comparison function\n\n support.detectDuplicates = !!hasDuplicate; // Initialize against the default document\n\n setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n\n support.sortDetached = assert(function (el) {\n // Should return 1, but returns 4 (following)\n return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n }); // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\n if (!assert(function (el) {\n el.innerHTML = \"\";\n return el.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n } // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n\n\n if (!support.attributes || !assert(function (el) {\n el.innerHTML = \"\";\n el.firstChild.setAttribute(\"value\", \"\");\n return el.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n } // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n\n\n if (!assert(function (el) {\n return el.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n }\n\n return Sizzle;\n }(window);\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors; // Deprecated\n\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n jQuery.escapeSelector = Sizzle.escape;\n\n var dir = function dir(elem, _dir, until) {\n var matched = [],\n truncate = until !== undefined;\n\n while ((elem = elem[_dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n\n matched.push(elem);\n }\n }\n\n return matched;\n };\n\n var _siblings = function siblings(n, elem) {\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n\n return matched;\n };\n\n var rneedsContext = jQuery.expr.match.needsContext;\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n\n ;\n var rsingleTag = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i; // Implement the identical functionality for filter and not\n\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n } // Single element\n\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n } // Arraylike of elements (jQuery, arguments, Array)\n\n\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n } // Filtered directly for both simple and complex selectors\n\n\n return jQuery.filter(qualifier, elements, not);\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function find(selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n ret = this.pushStack([]);\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function filter(selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function not(selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function is(selector) {\n return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n }); // Initialize a jQuery object\n // A central reference to the root jQuery(document)\n\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (#9521)\n // Strict HTML recognition (#11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n if (!selector) {\n return this;\n } // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n\n\n root = root || rootjQuery; // Handle HTML strings\n\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n } // Match html or make sure no context is specified for #id\n\n\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context; // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]); // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this; // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n\n return this;\n } // HANDLE: $(expr, $(...))\n\n } else if (!context || context.jquery) {\n return (context || root).find(selector); // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n } // HANDLE: $(DOMElement)\n\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this; // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) : // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n return jQuery.makeArray(selector, this);\n }; // Give the init function the jQuery prototype for later instantiation\n\n\n init.prototype = jQuery.fn; // Initialize central reference\n\n rootjQuery = jQuery(document);\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function has(target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function closest(selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors); // Positional selectors never match, since there's no _selection_ context\n\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function index(elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n } // Index in selector\n\n\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n } // Locate the position of the desired element\n\n\n return indexOf.call(this, // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function add(selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function addBack(selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n\n return cur;\n }\n\n jQuery.each({\n parent: function parent(elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function parents(elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function parentsUntil(elem, i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function next(elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function prev(elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function nextAll(elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function prevAll(elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function nextUntil(elem, i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function prevUntil(elem, i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function siblings(elem) {\n return _siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function children(elem) {\n return _siblings(elem.firstChild);\n },\n contents: function contents(elem) {\n if (typeof elem.contentDocument !== \"undefined\") {\n return elem.contentDocument;\n } // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n\n\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n } // Reverse order for parents* and prev-derivatives\n\n\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n\n return this.pushStack(matched);\n };\n });\n var rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g; // Convert String-formatted options into Object-formatted ones\n\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n\n\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n\n var // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n _fired,\n // Flag to prevent firing\n _locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function fire() {\n // Enforce single-firing\n _locked = _locked || options.once; // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n\n _fired = firing = true;\n\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n } // Forget the data if we're done with it\n\n\n if (!options.memory) {\n memory = false;\n }\n\n firing = false; // Clean up if we're done firing for good\n\n if (_locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = []; // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function add() {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n\n if (memory && !firing) {\n fire();\n }\n }\n\n return this;\n },\n // Remove a callback from the list\n remove: function remove() {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function has(fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function empty() {\n if (list) {\n list = [];\n }\n\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function disable() {\n _locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function disabled() {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function lock() {\n _locked = queue = [];\n\n if (!memory && !firing) {\n list = memory = \"\";\n }\n\n return this;\n },\n locked: function locked() {\n return !!_locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function fireWith(context, args) {\n if (!_locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n\n if (!firing) {\n fire();\n }\n }\n\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function fire() {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function fired() {\n return !!_fired;\n }\n };\n\n return self;\n };\n\n function Identity(v) {\n return v;\n }\n\n function Thrower(ex) {\n throw ex;\n }\n\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject); // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject); // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n } // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n\n jQuery.extend({\n Deferred: function Deferred(func) {\n var tuples = [// action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n _state = \"pending\",\n _promise = {\n state: function state() {\n return _state;\n },\n always: function always() {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function _catch(fn) {\n return _promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function pipe()\n /* fnDone, fnFail, fnProgress */\n {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function then(onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function mightThrow() {\n var returned, then; // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n\n if (depth < maxDepth) {\n return;\n }\n\n returned = handler.apply(that, args); // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n } // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n\n\n then = returned && ( // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n typeof returned === \"object\" || typeof returned === \"function\") && returned.then; // Handle a returned thenable\n\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special)); // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n } // Handle all other returned values\n\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n } // Process the value(s)\n // Default process is resolve\n\n\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.stackTrace);\n } // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n\n\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n\n deferred.rejectWith(that, args);\n }\n }\n }; // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n\n\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the stack, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getStackHook) {\n process.stackTrace = jQuery.Deferred.getStackHook();\n }\n\n window.setTimeout(process);\n }\n };\n }\n\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith)); // fulfilled_handlers.add( ... )\n\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)); // rejected_handlers.add( ... )\n\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function promise(obj) {\n return obj != null ? jQuery.extend(obj, _promise) : _promise;\n }\n },\n deferred = {}; // Add list-specific methods\n\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5]; // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n\n _promise[tuple[1]] = list.add; // Handle state\n\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n _state = stateString;\n }, // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable, // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable, // progress_callbacks.lock\n tuples[0][2].lock, // progress_handlers.lock\n tuples[0][3].lock);\n } // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n\n\n list.add(tuple[3].fire); // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n }; // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n }); // Make the deferred a promise\n\n _promise.promise(deferred); // Call given func if any\n\n\n if (func) {\n func.call(deferred, deferred);\n } // All done!\n\n\n return deferred;\n },\n // Deferred helper\n when: function when(singleValue) {\n var // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = _slice.call(arguments),\n // the master Deferred\n master = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function updateFunc(i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? _slice.call(arguments) : value;\n\n if (! --remaining) {\n master.resolveWith(resolveContexts, resolveValues);\n }\n };\n }; // Single- and empty arguments are adopted like Promise.resolve\n\n\n if (remaining <= 1) {\n adoptValue(singleValue, master.done(updateFunc(i)).resolve, master.reject, !remaining); // Use .then() to unwrap secondary thenables (cf. gh-3000)\n\n if (master.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return master.then();\n }\n } // Multiple arguments are aggregated like Promise.all array elements\n\n\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), master.reject);\n }\n\n return master.promise();\n }\n }); // These usually indicate a programmer mistake during development,\n // warn about them ASAP rather than swallowing them by default.\n\n var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n jQuery.Deferred.exceptionHook = function (error, stack) {\n // Support: IE 8 - 9 only\n // Console exists when dev tools are open, which can happen at any time\n if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, stack);\n }\n };\n\n jQuery.readyException = function (error) {\n window.setTimeout(function () {\n throw error;\n });\n }; // The deferred used on DOM ready\n\n\n var readyList = jQuery.Deferred();\n\n jQuery.fn.ready = function (fn) {\n readyList.then(fn) // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n .catch(function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See #6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function ready(wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n } // Remember that the DOM is ready\n\n\n jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n } // If there are functions bound, to execute\n\n\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method\n\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.ready();\n } // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE <=9 - 10 only\n // Older IE sometimes signals \"interactive\" too soon\n\n\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed); // A fallback to window.onload, that will always work\n\n window.addEventListener(\"load\", completed);\n } // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n\n\n var access = function access(elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null; // Sets many values\n\n if (toType(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n } // Sets one value\n\n } else if (value !== undefined) {\n chainable = true;\n\n if (!isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null; // ...except when executing function values\n } else {\n bulk = fn;\n\n fn = function fn(elem, key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n if (chainable) {\n return elems;\n } // Gets\n\n\n if (bulk) {\n return fn.call(elems);\n }\n\n return len ? fn(elems[0], key) : emptyGet;\n }; // Matches dashed string for camelizing\n\n\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace()\n\n function fcamelCase(all, letter) {\n return letter.toUpperCase();\n } // Convert dashed to camelCase; used by the css and data modules\n // Support: IE <=9 - 11, Edge 12 - 15\n // Microsoft forgot to hump their vendor prefix (#9572)\n\n\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n\n var acceptData = function acceptData(owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n\n Data.uid = 1;\n Data.prototype = {\n cache: function cache(owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando]; // If not, create one\n\n if (!value) {\n value = {}; // We can accept data for non-element nodes in modern browsers,\n // but we should not, see #8335.\n // Always return an empty object.\n\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value; // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n\n return value;\n },\n set: function set(owner, data, value) {\n var prop,\n cache = this.cache(owner); // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value; // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n\n return cache;\n },\n get: function get(owner, key) {\n return key === undefined ? this.cache(owner) : // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function access(owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n } // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n\n\n this.set(owner, key, value); // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n\n return value !== undefined ? value : key;\n },\n remove: function remove(owner, key) {\n var i,\n cache = owner[this.expando];\n\n if (cache === undefined) {\n return;\n }\n\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key); // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n\n i = key.length;\n\n while (i--) {\n delete cache[key[i]];\n }\n } // Remove the expando if there's no more data\n\n\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function hasData(owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n var dataPriv = new Data();\n var dataUser = new Data(); //\tImplementation Summary\n //\n //\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n //\t2. Improve the module's maintainability by reducing the storage\n //\t\tpaths to a single mechanism.\n //\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n //\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n //\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n //\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /[A-Z]/g;\n\n function getData(data) {\n if (data === \"true\") {\n return true;\n }\n\n if (data === \"false\") {\n return false;\n }\n\n if (data === \"null\") {\n return null;\n } // Only convert to a number if it doesn't change the string\n\n\n if (data === +data + \"\") {\n return +data;\n }\n\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n\n return data;\n }\n\n function dataAttr(elem, key, data) {\n var name; // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n data = elem.getAttribute(name);\n\n if (typeof data === \"string\") {\n try {\n data = getData(data);\n } catch (e) {} // Make sure we set the data so it isn't changed later\n\n\n dataUser.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n\n return data;\n }\n\n jQuery.extend({\n hasData: function hasData(elem) {\n return dataUser.hasData(elem) || dataPriv.hasData(elem);\n },\n data: function data(elem, name, _data) {\n return dataUser.access(elem, name, _data);\n },\n removeData: function removeData(elem, name) {\n dataUser.remove(elem, name);\n },\n // TODO: Now that all calls to _data and _removeData have been replaced\n // with direct calls to dataPriv methods, these can be deprecated.\n _data: function _data(elem, name, data) {\n return dataPriv.access(elem, name, data);\n },\n _removeData: function _removeData(elem, name) {\n dataPriv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function data(key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes; // Gets all values\n\n if (key === undefined) {\n if (this.length) {\n data = dataUser.get(elem);\n\n if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n\n while (i--) {\n // Support: IE 11 only\n // The attrs elements can be null (#14894)\n if (attrs[i]) {\n name = attrs[i].name;\n\n if (name.indexOf(\"data-\") === 0) {\n name = camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n\n dataPriv.set(elem, \"hasDataAttrs\", true);\n }\n }\n\n return data;\n } // Sets multiple values\n\n\n if (typeof key === \"object\") {\n return this.each(function () {\n dataUser.set(this, key);\n });\n }\n\n return access(this, function (value) {\n var data; // The calling jQuery object (element matches) is not empty\n // (and therefore has an element appears at this[ 0 ]) and the\n // `value` parameter was not undefined. An empty jQuery object\n // will result in `undefined` for elem = this[ 0 ] which will\n // throw an exception if an attempt to read a data cache is made.\n\n if (elem && value === undefined) {\n // Attempt to get data from the cache\n // The key will always be camelCased in Data\n data = dataUser.get(elem, key);\n\n if (data !== undefined) {\n return data;\n } // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n\n\n data = dataAttr(elem, key);\n\n if (data !== undefined) {\n return data;\n } // We tried really hard, but the data doesn't exist.\n\n\n return;\n } // Set the data...\n\n\n this.each(function () {\n // We always store the camelCased key\n dataUser.set(this, key, value);\n });\n }, null, value, arguments.length > 1, null, true);\n },\n removeData: function removeData(key) {\n return this.each(function () {\n dataUser.remove(this, key);\n });\n }\n });\n jQuery.extend({\n queue: function queue(elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n\n return queue || [];\n }\n },\n dequeue: function dequeue(elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function next() {\n jQuery.dequeue(elem, type);\n }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n } // Clear up the last queue stop function\n\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function _queueHooks(elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function queue(type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data); // Ensure a hooks for this queue\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function dequeue(type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function clearQueue(type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function promise(type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function resolve() {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n\n resolve();\n return defer.promise(obj);\n }\n });\n var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n var documentElement = document.documentElement;\n\n var isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n }; // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n\n\n if (documentElement.getRootNode) {\n isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n\n var isHiddenWithinTree = function isHiddenWithinTree(elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem; // Inline style trumps all\n\n return elem.style.display === \"none\" || elem.style.display === \"\" && // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n\n var swap = function swap(elem, options, callback, args) {\n var ret,\n name,\n old = {}; // Remember the old values, and insert the new ones\n\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n\n ret = callback.apply(elem, args || []); // Revert the old values\n\n for (name in options) {\n elem.style[name] = old[name];\n }\n\n return ret;\n };\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2; // Trust units reported by jQuery.css\n\n unit = unit || initialInUnit[3]; // Iteratively approximate from a nonzero starting point\n\n initialInUnit = +initial || 1;\n\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n\n initialInUnit = initialInUnit / scale;\n }\n\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit); // Make sure we update the tween properties later on\n\n valueParts = valueParts || [];\n }\n\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n\n return adjusted;\n }\n\n var defaultDisplayMap = {};\n\n function getDefaultDisplay(elem) {\n var temp,\n doc = elem.ownerDocument,\n nodeName = elem.nodeName,\n display = defaultDisplayMap[nodeName];\n\n if (display) {\n return display;\n }\n\n temp = doc.body.appendChild(doc.createElement(nodeName));\n display = jQuery.css(temp, \"display\");\n temp.parentNode.removeChild(temp);\n\n if (display === \"none\") {\n display = \"block\";\n }\n\n defaultDisplayMap[nodeName] = display;\n return display;\n }\n\n function showHide(elements, show) {\n var display,\n elem,\n values = [],\n index = 0,\n length = elements.length; // Determine new display value for elements that need to change\n\n for (; index < length; index++) {\n elem = elements[index];\n\n if (!elem.style) {\n continue;\n }\n\n display = elem.style.display;\n\n if (show) {\n // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n // check is required in this first loop unless we have a nonempty display value (either\n // inline or about-to-be-restored)\n if (display === \"none\") {\n values[index] = dataPriv.get(elem, \"display\") || null;\n\n if (!values[index]) {\n elem.style.display = \"\";\n }\n }\n\n if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n values[index] = getDefaultDisplay(elem);\n }\n } else {\n if (display !== \"none\") {\n values[index] = \"none\"; // Remember what we're overwriting\n\n dataPriv.set(elem, \"display\", display);\n }\n }\n } // Set the display of the elements in a second loop to avoid constant reflow\n\n\n for (index = 0; index < length; index++) {\n if (values[index] != null) {\n elements[index].style.display = values[index];\n }\n }\n\n return elements;\n }\n\n jQuery.fn.extend({\n show: function show() {\n return showHide(this, true);\n },\n hide: function hide() {\n return showHide(this);\n },\n toggle: function toggle(state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\n\n return this.each(function () {\n if (isHiddenWithinTree(this)) {\n jQuery(this).show();\n } else {\n jQuery(this).hide();\n }\n });\n }\n });\n var rcheckableType = /^(?:checkbox|radio)$/i;\n var rtagName = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n var rscriptType = /^$|^module$|\\/(?:java|ecma)script/i; // We have to close these tags to support XHTML (#13200)\n\n var wrapMap = {\n // Support: IE <=9 only\n option: [1, \"\"],\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting or other required elements.\n thead: [1, \"\", \"
\"],\n col: [2, \"\", \"
\"],\n tr: [2, \"\", \"
\"],\n td: [3, \"\", \"
\"],\n _default: [0, \"\", \"\"]\n }; // Support: IE <=9 only\n\n wrapMap.optgroup = wrapMap.option;\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td;\n\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (#15151)\n var ret;\n\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n\n return ret;\n } // Mark scripts as having already been evaluated\n\n\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n\n var rhtml = /<|&#?\\w+;/;\n\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n elem = elems[i];\n\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem); // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem)); // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\")); // Deserialize a standard representation\n\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2]; // Descend through wrappers to the right content\n\n j = wrap[0];\n\n while (j--) {\n tmp = tmp.lastChild;\n } // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n\n\n jQuery.merge(nodes, tmp.childNodes); // Remember the top-level container\n\n tmp = fragment.firstChild; // Ensure the created nodes are orphaned (#12392)\n\n tmp.textContent = \"\";\n }\n }\n } // Remove wrapper from fragment\n\n\n fragment.textContent = \"\";\n i = 0;\n\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n\n continue;\n }\n\n attached = isAttached(elem); // Append to fragment\n\n tmp = getAll(fragment.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n if (attached) {\n setGlobalEval(tmp);\n } // Capture executables\n\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n return fragment;\n }\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\"); // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (#11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (#14901)\n\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input); // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue;\n })();\n\n var rkeyEvent = /^key/,\n rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous, except when they are no-op.\n // So expect focus to be synchronous when the element is already active,\n // and blur to be synchronous when the element is not already active.\n // (focus and blur are always synchronous in other supported browsers,\n // this just defines when we can count on it).\n\n\n function expectSync(elem, type) {\n return elem === safeActiveElement() === (type === \"focus\");\n } // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n function _on(elem, types, selector, data, fn, one) {\n var origFn, type; // Types can be a map of types/handlers\n\n if (typeof types === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n\n for (type in types) {\n _on(elem, type, selector, data, types[type], one);\n }\n\n return elem;\n }\n\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function fn(event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n }; // Use same guid so caller can remove using origFn\n\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n\n\n jQuery.event = {\n global: {},\n add: function add(elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem); // Don't attach events to noData or text/comment nodes (but allow plain objects)\n\n if (!elemData) {\n return;\n } // Caller can pass in an object of custom data in lieu of the handler\n\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n } // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\n\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n } // Init the element's event structure and main handler, if this is the first\n\n\n if (!(events = elemData.events)) {\n events = elemData.events = {};\n }\n\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n } // Handle multiple events separated by a space\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n if (!type) {\n continue;\n } // If event changes its type, use the special event handlers for the changed type\n\n\n special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn); // Init the event handler queue if we're the first\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false\n\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n } // Add to the element's handler list, delegates in front\n\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n } // Keep track of which events have ever been used, for event optimization\n\n\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function remove(elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n } // Once for each type.namespace in types; type may be omitted\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n } // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n\n\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n } // Remove data and the expando if it's no longer used\n\n\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function dispatch(nativeEvent) {\n // Make a writable jQuery.Event from the native event object\n var event = jQuery.event.fix(nativeEvent);\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n handlers = (dataPriv.get(this, \"events\") || {})[event.type] || [],\n special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n args[0] = event;\n\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n } // Determine handlers\n\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n } // Call the postDispatch hook for the mapped type\n\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function handlers(event, _handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = _handlers.delegateCount,\n cur = event.target; // Find delegate handlers\n\n if (delegateCount && // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType && // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (#13208)\n // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n\n for (i = 0; i < delegateCount; i++) {\n handleObj = _handlers[i]; // Don't conflict with Object.prototype properties (#13203)\n\n sel = handleObj.selector + \" \";\n\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n } // Add the remaining (directly-bound) handlers\n\n\n cur = this;\n\n if (delegateCount < _handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: _handlers.slice(delegateCount)\n });\n }\n\n return handlerQueue;\n },\n addProp: function addProp(name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function set(value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function fix(originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function setup(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Claim the first handler\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n } // Return false to allow normal processing in the caller\n\n\n return false;\n },\n trigger: function trigger(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Force setup before triggering a click\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n } // Return non-false to allow normal event-path propagation\n\n\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function _default(event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function postDispatch(event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\n }; // Ensure the presence of an event listener that handles manually-triggered\n // synthetic events by interrupting progress until reinvoked in response to\n // *native* events that it fires directly, ensuring that state changes have\n // already occurred before other listeners are invoked.\n\n function leverageNative(el, type, expectSync) {\n // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n if (!expectSync) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n\n return;\n } // Register the controller as a special universal handler for all event namespaces\n\n\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function handler(event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n // Saved data should be false in such cases, but might be a leftover capture object\n // from an async native handler (gh-4350)\n if (!saved.length) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = _slice.call(arguments);\n dataPriv.set(this, type, saved); // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault();\n return result.value;\n } // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering the\n // native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n } // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger( // Support: IE <=9 - 11+\n // Extend with the prototype to reset the above stopImmediatePropagation()\n jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n }); // Abort handling of the native event\n\n event.stopImmediatePropagation();\n }\n }\n });\n }\n\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n } // Event object\n\n\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type; // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse; // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (#504, #13143)\n\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget; // Event type\n } else {\n this.type = src;\n } // Put explicitly provided properties onto the event object\n\n\n if (props) {\n jQuery.extend(this, props);\n } // Create a timestamp if incoming event doesn't have one\n\n\n this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed\n\n this[jQuery.expando] = true;\n }; // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n\n\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function preventDefault() {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function stopPropagation() {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function stopImmediatePropagation() {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n\n this.stopPropagation();\n }\n }; // Includes all common event props including KeyEvent and MouseEvent specific props\n\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: function which(event) {\n var button = event.button; // Add which for key events\n\n if (event.which == null && rkeyEvent.test(event.type)) {\n return event.charCode != null ? event.charCode : event.keyCode;\n } // Add which for click: 1 === left; 2 === middle; 3 === right\n\n\n if (!event.which && button !== undefined && rmouseEvent.test(event.type)) {\n if (button & 1) {\n return 1;\n }\n\n if (button & 2) {\n return 3;\n }\n\n if (button & 4) {\n return 2;\n }\n\n return 0;\n }\n\n return event.which;\n }\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function setup() {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync); // Return false to allow normal processing in the caller\n\n return false;\n },\n trigger: function trigger() {\n // Force setup before trigger\n leverageNative(this, type); // Return non-false to allow normal event-path propagation\n\n return true;\n },\n delegateType: delegateType\n };\n }); // Create mouseenter/leave events using mouseover/out and event-time checks\n // so that event delegation works in jQuery.\n // Do the same for pointerenter/pointerleave and pointerover/pointerout\n //\n // Support: Safari 7 only\n // Safari sends mouseenter too often; see:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n // for the description of the bug (it existed in older Chrome versions as well).\n\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function handle(event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj; // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function on(types, selector, data, fn) {\n return _on(this, types, selector, data, fn);\n },\n one: function one(types, selector, data, fn) {\n return _on(this, types, selector, data, fn, 1);\n },\n off: function off(types, selector, fn) {\n var handleObj, type;\n\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n\n if (typeof types === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n\n return this;\n }\n\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n\n if (fn === false) {\n fn = returnFalse;\n }\n\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n var\n /* eslint-disable max-len */\n // See https://github.com/eslint/eslint/issues/3229\n rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,\n\n /* eslint-enable */\n // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g; // Prefer a tbody over its parent table for containing new rows\n\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n\n return elem;\n } // Replace/restore the type attribute of script elements for safe DOM manipulation\n\n\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n\n return elem;\n }\n\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n if (dest.nodeType !== 1) {\n return;\n } // 1. Copy private data: events, handlers, etc.\n\n\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.access(src);\n pdataCur = dataPriv.set(dest, pdataOld);\n events = pdataOld.events;\n\n if (events) {\n delete pdataCur.handle;\n pdataCur.events = {};\n\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n } // 2. Copy user data\n\n\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n } // Fix IE bugs, see support tests\n\n\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button.\n\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = concat.apply([], args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value); // We can't cloneNode fragments that contain checked, in WebKit\n\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n\n domManip(self, args, callback, ignored);\n });\n }\n\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n\n if (fragment.childNodes.length === 1) {\n fragment = first;\n } // Require either new content or an interest in ignored elements to invoke the callback\n\n\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length; // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (#8070).\n\n for (; i < l; i++) {\n node = fragment;\n\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true); // Keep references to cloned scripts for later restoration\n\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n\n callback.call(collection[i], node, i);\n }\n\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument; // Reenable scripts\n\n jQuery.map(scripts, restoreScript); // Evaluate executable scripts on first document insertion\n\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n });\n }\n } else {\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n\n return collection;\n }\n\n function _remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n\n node.parentNode.removeChild(node);\n }\n }\n\n return elem;\n }\n\n jQuery.extend({\n htmlPrefilter: function htmlPrefilter(html) {\n return html.replace(rxhtmlTag, \"<$1>\");\n },\n clone: function clone(elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem); // Fix IE cloning issues\n\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n } // Copy the events from the original to the clone\n\n\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n } // Preserve script evaluation history\n\n\n destElements = getAll(clone, \"script\");\n\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n } // Return the cloned set\n\n\n return clone;\n },\n cleanData: function cleanData(elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type); // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n } // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n\n\n elem[dataPriv.expando] = undefined;\n }\n\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function detach(selector) {\n return _remove(this, selector, true);\n },\n remove: function remove(selector) {\n return _remove(this, selector);\n },\n text: function text(value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function append() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function prepend() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function before() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function after() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function empty() {\n var elem,\n i = 0;\n\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false)); // Remove any remaining nodes\n\n elem.textContent = \"\";\n }\n }\n\n return this;\n },\n clone: function clone(dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function html(value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n } // See if we can take a shortcut and just use innerHTML\n\n\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n\n try {\n for (; i < l; i++) {\n elem = this[i] || {}; // Remove element nodes and prevent memory leaks\n\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n\n elem = 0; // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function replaceWith() {\n var ignored = []; // Make the changes, replacing each non-ignored context element with the new content\n\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n\n if (parent) {\n parent.replaceChild(elem, this);\n }\n } // Force callback invocation\n\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems); // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n\n push.apply(ret, elems.get());\n }\n\n return this.pushStack(ret);\n };\n });\n var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n\n var getStyles = function getStyles(elem) {\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n\n if (!view || !view.opener) {\n view = window;\n }\n\n return view.getComputedStyle(elem);\n };\n\n var rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container); // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n\n div = null;\n }\n\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\"); // Finish early in limited (non-browser) environments\n\n if (!div.style) {\n return;\n } // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (#8908)\n\n\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function boxSizingReliable() {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function pixelBoxStyles() {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function pixelPosition() {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function reliableMarginLeft() {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function scrollboxSize() {\n computeStyleTests();\n return scrollboxSizeVal;\n }\n });\n })();\n\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem); // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, #12537)\n // .css('--customProperty) (#3144)\n\n if (computed) {\n ret = computed.getPropertyValue(name) || computed[name];\n\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n } // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n\n\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth; // Put in the new values to get a computed value out\n\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width; // Revert the changed values\n\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n\n return ret !== undefined ? // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function get() {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n } // Hook needed; redefine it so that the support test is not executed again.\n\n\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {}; // Return a vendor-prefixed property or undefined\n\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n\n while (i--) {\n name = cssPrefixes[i] + capName;\n\n if (name in emptyStyle) {\n return name;\n }\n }\n } // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n\n\n function finalPropName(name) {\n var _final = jQuery.cssProps[name] || vendorProps[name];\n\n if (_final) {\n return _final;\n }\n\n if (name in emptyStyle) {\n return name;\n }\n\n return vendorProps[name] = vendorPropName(name) || name;\n }\n\n var // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n rcustomProp = /^--/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n\n function setPositiveNumber(elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ? // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0; // Adjustment may not be necessary\n\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n if (box === \"margin\") {\n delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n } // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\n\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles); // For \"border\" or \"margin\", add border\n\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles); // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n } // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n } // For \"content\" or \"padding\", subtract border\n\n\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n } // Account for positive content-box scroll gutter when requested by providing computedVal\n\n\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n\n return delta;\n }\n\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1); // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n\n val = \"auto\";\n } // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n // Support: IE 9-11 only\n // Also use offsetWidth/offsetHeight for when box sizing is unreliable\n // We use getClientRects() to check for hidden/disconnected.\n // In those cases, the computed value can be trusted to be border-box\n\n\n if ((!support.boxSizingReliable() && isBorderBox || val === \"auto\" || !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") && elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\"; // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n\n valueIsBorderBox = offsetProp in elem;\n\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n } // Normalize \"\" and auto\n\n\n val = parseFloat(val) || 0; // Adjust for the element's box model\n\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles, // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function get(elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n \"animationIterationCount\": true,\n \"columnCount\": true,\n \"fillOpacity\": true,\n \"flexGrow\": true,\n \"flexShrink\": true,\n \"fontWeight\": true,\n \"gridArea\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnStart\": true,\n \"gridRow\": true,\n \"gridRowEnd\": true,\n \"gridRowStart\": true,\n \"lineHeight\": true,\n \"opacity\": true,\n \"order\": true,\n \"orphans\": true,\n \"widows\": true,\n \"zIndex\": true,\n \"zoom\": true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function style(elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n } // Make sure that we're working with the right name\n\n\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style; // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Gets hook for the prefixed version, then unprefixed version\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // Check if we're setting a value\n\n if (value !== undefined) {\n type = typeof value; // Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret); // Fixes bug #9237\n\n type = \"number\";\n } // Make sure that null and NaN values aren't set (#7116)\n\n\n if (value == null || value !== value) {\n return;\n } // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n\n\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n } // background-* props affect original clone's values\n\n\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n } // If a hook was provided, use that value, otherwise just set the specified value\n\n\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n } // Otherwise just get the value from the style object\n\n\n return style[name];\n }\n },\n css: function css(elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name); // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Try prefixed name followed by the unprefixed name\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // If a hook was provided get the computed value from there\n\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n } // Otherwise, if a way to get the computed value exists, use that\n\n\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n } // Convert \"normal\" to computed value\n\n\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n } // Make numeric if forced or a qualifier was provided and val looks numeric\n\n\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function get(elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && ( // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function set(elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0; // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n } // Convert to pixels if value adjustment is needed\n\n\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n }); // These hooks are used by animate to expand properties\n\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function expand(value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n\n return expanded;\n }\n };\n\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function css(name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n\n return map;\n }\n\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function init(elem, options, prop, end, easing, unit) {\n this.elem = elem;\n this.prop = prop;\n this.easing = easing || jQuery.easing._default;\n this.options = options;\n this.start = this.now = this.cur();\n this.end = end;\n this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n },\n cur: function cur() {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function run(percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n\n if (this.options.duration) {\n this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n } else {\n this.pos = eased = percent;\n }\n\n this.now = (this.end - this.start) * eased + this.start;\n\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function get(tween) {\n var result; // Use a property on the element directly when it is not a DOM element,\n // or when there is no matching style property that exists.\n\n if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n return tween.elem[tween.prop];\n } // Passing an empty string as a 3rd parameter to .css will automatically\n // attempt a parseFloat and fallback to a string if the parse fails.\n // Simple values such as \"10px\" are parsed to Float;\n // complex values such as \"rotate(1rad)\" are returned as-is.\n\n\n result = jQuery.css(tween.elem, tween.prop, \"\"); // Empty strings, null, undefined and \"auto\" are converted to 0.\n\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function set(tween) {\n // Use step hook for back compat.\n // Use cssHook if its there.\n // Use .style if available and use plain properties where available.\n if (jQuery.fx.step[tween.prop]) {\n jQuery.fx.step[tween.prop](tween);\n } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n } else {\n tween.elem[tween.prop] = tween.now;\n }\n }\n }\n }; // Support: IE <=9 only\n // Panic based approach to setting things on disconnected nodes\n\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function set(tween) {\n if (tween.elem.nodeType && tween.elem.parentNode) {\n tween.elem[tween.prop] = tween.now;\n }\n }\n };\n jQuery.easing = {\n linear: function linear(p) {\n return p;\n },\n swing: function swing(p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n _default: \"swing\"\n };\n jQuery.fx = Tween.prototype.init; // Back compat <1.8 extension point\n\n jQuery.fx.step = {};\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n\n jQuery.fx.tick();\n }\n } // Animations created synchronously will run synchronously\n\n\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n } // Generate parameters to create a standard animation\n\n\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n }; // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n\n includeWidth = includeWidth ? 1 : 0;\n\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n\n return attrs;\n }\n\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\"); // Queue-skipping animations hijack the fx hooks\n\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n } // Detect show/hide animations\n\n\n for (prop in props) {\n value = props[prop];\n\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true; // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n } // Bail out if this is a no-op like .hide().hide()\n\n\n propTween = !jQuery.isEmptyObject(props);\n\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n } // Restrict \"overflow\" and \"display\" styles during box animations\n\n\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY]; // Identify a display type, preferring old show/hide data over the CSS cascade\n\n restoreDisplay = dataShow && dataShow.display;\n\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n\n display = jQuery.css(elem, \"display\");\n\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n } // Animate inline elements as inline-block\n\n\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n\n style.display = \"inline-block\";\n }\n }\n }\n\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n } // Implement show/hide animations\n\n\n propTween = false;\n\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n } // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\n\n if (toggle) {\n dataShow.hidden = !hidden;\n } // Show elements before animating them\n\n\n if (hidden) {\n showHide([elem], true);\n }\n /* eslint-disable no-loop-func */\n\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n\n dataPriv.remove(elem, \"fxshow\");\n\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n } // Per-property setup\n\n\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass\n\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n\n hooks = jQuery.cssHooks[name];\n\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name]; // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function tick() {\n if (stopped) {\n return false;\n }\n\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n\n deferred.notifyWith(elem, [animation, percent, remaining]); // If there's more to do, yield\n\n if (percent < 1 && length) {\n return remaining;\n } // If this was an empty animation, synthesize a final progress notification\n\n\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n } // Resolve the animation and report its conclusion\n\n\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function createTween(prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function stop(gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n\n if (stopped) {\n return this;\n }\n\n stopped = true;\n\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n } // Resolve when we played the last frame; otherwise, reject\n\n\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n\n return this;\n }\n }),\n props = animation.props;\n\n propFilter(props, animation.opts.specialEasing);\n\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n\n return result;\n }\n }\n\n jQuery.map(props, createTween, animation);\n\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n } // Attach callbacks from options\n\n\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function tweener(props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n\n var prop,\n index = 0,\n length = props.length;\n\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function prefilter(callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && typeof speed === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n }; // Go to the end state if fx are off\n\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n } // Normalize opt.queue - true/undefined/null -> \"fx\"\n\n\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n } // Queueing\n\n\n opt.old = opt.complete;\n\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n\n return opt;\n };\n\n jQuery.fn.extend({\n fadeTo: function fadeTo(speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show() // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function animate(prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function doAnimation() {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall); // Empty animations, or finishing resolves immediately\n\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function stop(type, clearQueue, gotoEnd) {\n var stopQueue = function stopQueue(hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n\n if (clearQueue && type !== false) {\n this.queue(type || \"fx\", []);\n }\n\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n } // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n\n\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function finish(type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0; // Enable finishing flag on private data\n\n data.finish = true; // Empty the queue first\n\n jQuery.queue(this, type, []);\n\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n } // Look for any active animations, and finish them\n\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n } // Look for any animations in the old queue and finish them\n\n\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n } // Turn off finishing flag\n\n\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (i, name) {\n var cssFn = jQuery.fn[name];\n\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n }); // Generate shortcuts for custom animations\n\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n\n for (; i < timers.length; i++) {\n timer = timers[i]; // Run the timer and safely remove it when done (allowing for external removal)\n\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n\n if (!timers.length) {\n jQuery.fx.stop();\n }\n\n fxNow = undefined;\n };\n\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n\n jQuery.fx.interval = 13;\n\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n\n inProgress = true;\n schedule();\n };\n\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n }; // Based off of the plugin by Clint Helfers, with permission.\n // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\n\n jQuery.fn.delay = function (time, type) {\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n type = type || \"fx\";\n return this.queue(type, function (next, hooks) {\n var timeout = window.setTimeout(next, time);\n\n hooks.stop = function () {\n window.clearTimeout(timeout);\n };\n });\n };\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\"; // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n\n support.checkOn = input.value !== \"\"; // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n\n support.optSelected = opt.selected; // Support: IE <=11 only\n // An input loses its value after becoming a radio\n\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n\n var boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function attr(name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function removeAttr(name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function attr(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set attributes on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n } // Fallback to prop when attributes are not supported\n\n\n if (typeof elem.getAttribute === \"undefined\") {\n return jQuery.prop(elem, name, value);\n } // Attribute hooks are determined by the lowercase version\n // Grab necessary hook if one is defined\n\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n }\n\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n return;\n }\n\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n elem.setAttribute(name, value + \"\");\n return value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n ret = jQuery.find.attr(elem, name); // Non-existent attributes return null, we normalize to undefined\n\n return ret == null ? undefined : ret;\n },\n attrHooks: {\n type: {\n set: function set(elem, value) {\n if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n\n if (val) {\n elem.value = val;\n }\n\n return value;\n }\n }\n }\n },\n removeAttr: function removeAttr(elem, value) {\n var name,\n i = 0,\n // Attribute names can contain non-HTML whitespace characters\n // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n attrNames = value && value.match(rnothtmlwhite);\n\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n elem.removeAttribute(name);\n }\n }\n }\n }); // Hooks for boolean attributes\n\n boolHook = {\n set: function set(elem, value, name) {\n if (value === false) {\n // Remove boolean attributes when set to false\n jQuery.removeAttr(elem, name);\n } else {\n elem.setAttribute(name, name);\n }\n\n return name;\n }\n };\n jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (i, name) {\n var getter = attrHandle[name] || jQuery.find.attr;\n\n attrHandle[name] = function (elem, name, isXML) {\n var ret,\n handle,\n lowercaseName = name.toLowerCase();\n\n if (!isXML) {\n // Avoid an infinite loop by temporarily removing this function from the getter\n handle = attrHandle[lowercaseName];\n attrHandle[lowercaseName] = ret;\n ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n attrHandle[lowercaseName] = handle;\n }\n\n return ret;\n };\n });\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function prop(name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function removeProp(name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function prop(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n return elem[name] = value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function get(elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n // Use proper attribute retrieval(#12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\n }); // Support: IE <=11 only\n // Accessing the selectedIndex property\n // forces the browser to respect setting selected\n // on the option\n // The getter ensures a default option is selected\n // when in an optgroup\n // eslint rule \"no-unused-expressions\" is disabled for this code\n // since it considers such accessions noop\n\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function get(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n\n return null;\n },\n set: function set(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent) {\n parent.selectedIndex;\n\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n }); // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n\n function getClass(elem) {\n return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n }\n\n function classesToArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n if (typeof value === \"string\") {\n return value.match(rnothtmlwhite) || [];\n }\n\n return [];\n }\n\n jQuery.fn.extend({\n addClass: function addClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem);\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n if (cur.indexOf(\" \" + clazz + \" \") < 0) {\n cur += clazz + \" \";\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n removeClass: function removeClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, getClass(this)));\n });\n }\n\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem); // This expression is here for better compressibility (see addClass)\n\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n // Remove *all* instances\n while (cur.indexOf(\" \" + clazz + \" \") > -1) {\n cur = cur.replace(\" \" + clazz + \" \", \" \");\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n toggleClass: function toggleClass(value, stateVal) {\n var type = typeof value,\n isValidValue = type === \"string\" || Array.isArray(value);\n\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\n\n if (isFunction(value)) {\n return this.each(function (i) {\n jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n });\n }\n\n return this.each(function () {\n var className, i, self, classNames;\n\n if (isValidValue) {\n // Toggle individual class names\n i = 0;\n self = jQuery(this);\n classNames = classesToArray(value);\n\n while (className = classNames[i++]) {\n // Check each className given, space separated list\n if (self.hasClass(className)) {\n self.removeClass(className);\n } else {\n self.addClass(className);\n }\n } // Toggle whole class name\n\n } else if (value === undefined || type === \"boolean\") {\n className = getClass(this);\n\n if (className) {\n // Store className if set\n dataPriv.set(this, \"__className__\", className);\n } // If the element has a class name or if we're passed `false`,\n // then remove the whole classname (if there was one, the above saved it).\n // Otherwise bring back whatever was previously saved (if anything),\n // falling back to the empty string if nothing was stored.\n\n\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n }\n }\n });\n },\n hasClass: function hasClass(selector) {\n var className,\n elem,\n i = 0;\n className = \" \" + selector + \" \";\n\n while (elem = this[i++]) {\n if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n return true;\n }\n }\n\n return false;\n }\n });\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function val(value) {\n var hooks,\n ret,\n valueIsFunction,\n elem = this[0];\n\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n\n ret = elem.value; // Handle most common string cases\n\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n } // Handle cases where value is null/undef or number\n\n\n return ret == null ? \"\" : ret;\n }\n\n return;\n }\n\n valueIsFunction = isFunction(value);\n return this.each(function (i) {\n var val;\n\n if (this.nodeType !== 1) {\n return;\n }\n\n if (valueIsFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n } // Treat null/undefined as \"\"; convert numbers to string\n\n\n if (val == null) {\n val = \"\";\n } else if (typeof val === \"number\") {\n val += \"\";\n } else if (Array.isArray(val)) {\n val = jQuery.map(val, function (value) {\n return value == null ? \"\" : value + \"\";\n });\n }\n\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()]; // If set returns undefined, fall back to normal setting\n\n if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n this.value = val;\n }\n });\n }\n });\n jQuery.extend({\n valHooks: {\n option: {\n get: function get(elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val : // Support: IE <=10 - 11 only\n // option.text throws exceptions (#14686, #14858)\n // Strip and collapse whitespace\n // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n stripAndCollapse(jQuery.text(elem));\n }\n },\n select: {\n get: function get(elem) {\n var value,\n option,\n i,\n options = elem.options,\n index = elem.selectedIndex,\n one = elem.type === \"select-one\",\n values = one ? null : [],\n max = one ? index + 1 : options.length;\n\n if (index < 0) {\n i = max;\n } else {\n i = one ? index : 0;\n } // Loop through all the selected options\n\n\n for (; i < max; i++) {\n option = options[i]; // Support: IE <=9 only\n // IE8-9 doesn't update selected after form reset (#2551)\n\n if ((option.selected || i === index) && // Don't return options that are disabled or in a disabled optgroup\n !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n // Get the specific value for the option\n value = jQuery(option).val(); // We don't need an array for one selects\n\n if (one) {\n return value;\n } // Multi-Selects return an array\n\n\n values.push(value);\n }\n }\n\n return values;\n },\n set: function set(elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n\n while (i--) {\n option = options[i];\n /* eslint-disable no-cond-assign */\n\n if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n optionSet = true;\n }\n /* eslint-enable no-cond-assign */\n\n } // Force browsers to behave consistently when non-matching value is set\n\n\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n\n return values;\n }\n }\n }\n }); // Radios and checkboxes getter/setter\n\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function set(elem, value) {\n if (Array.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n }\n }\n };\n\n if (!support.checkOn) {\n jQuery.valHooks[this].get = function (elem) {\n return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n };\n }\n }); // Return jQuery for attributes-only inclusion\n\n support.focusin = \"onfocusin\" in window;\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function stopPropagationCallback(e) {\n e.stopPropagation();\n };\n\n jQuery.extend(jQuery.event, {\n trigger: function trigger(event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document; // Don't do events on text and comment nodes\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n\n ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n event = event[jQuery.expando] ? event : new jQuery.Event(type, typeof event === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n } // Determine event propagation path in advance, per W3C events spec (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\n\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n } // Fire handlers on the event path\n\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n handle = (dataPriv.get(cur, \"events\") || {})[event.type] && dataPriv.get(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n } // Native handler\n\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type; // If nobody prevented the default action, do it now\n\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (#6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n jQuery.event.triggered = type;\n\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n\n elem[type]();\n\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function simulate(type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function trigger(type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function triggerHandler(type, data) {\n var elem = this[0];\n\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n }); // Support: Firefox <=44\n // Firefox doesn't have focus(in | out) events\n // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n //\n // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n // focus(in | out) events fire after focus & blur events,\n // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\n if (!support.focusin) {\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (orig, fix) {\n // Attach a single capturing handler on the document while someone wants focusin/focusout\n var handler = function handler(event) {\n jQuery.event.simulate(fix, event.target, jQuery.event.fix(event));\n };\n\n jQuery.event.special[fix] = {\n setup: function setup() {\n var doc = this.ownerDocument || this,\n attaches = dataPriv.access(doc, fix);\n\n if (!attaches) {\n doc.addEventListener(orig, handler, true);\n }\n\n dataPriv.access(doc, fix, (attaches || 0) + 1);\n },\n teardown: function teardown() {\n var doc = this.ownerDocument || this,\n attaches = dataPriv.access(doc, fix) - 1;\n\n if (!attaches) {\n doc.removeEventListener(orig, handler, true);\n dataPriv.remove(doc, fix);\n } else {\n dataPriv.access(doc, fix, attaches);\n }\n }\n };\n });\n }\n\n var location = window.location;\n var nonce = Date.now();\n var rquery = /\\?/; // Cross-browser xml parsing\n\n jQuery.parseXML = function (data) {\n var xml;\n\n if (!data || typeof data !== \"string\") {\n return null;\n } // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n\n\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {\n xml = undefined;\n }\n\n if (!xml || xml.getElementsByTagName(\"parsererror\").length) {\n jQuery.error(\"Invalid XML: \" + data);\n }\n\n return xml;\n };\n\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n\n function buildParams(prefix, obj, traditional, add) {\n var name;\n\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (typeof v === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n } // Serialize an array of form elements or a set of\n // key/values into a query string\n\n\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function add(key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n\n if (a == null) {\n return \"\";\n } // If an array was passed in, assume that it is an array of form elements.\n\n\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n } // Return the resulting serialization\n\n\n return s.join(\"&\");\n };\n\n jQuery.fn.extend({\n serialize: function serialize() {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function serializeArray() {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type; // Use .is( \":disabled\" ) so that fieldset[disabled] works\n\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (i, elem) {\n var val = jQuery(this).val();\n\n if (val == null) {\n return null;\n }\n\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // #7653, #8125, #8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href; // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func); // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n } // Base inspection function for prefilters and transports\n\n\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n } // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes #9887\n\n\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n\n return target;\n }\n /* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\n\n\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process\n\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n } // Check if we're dealing with a known content-type\n\n\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n } // Check to see if we have a response for the expected dataType\n\n\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n\n if (!firstDataType) {\n firstDataType = type;\n }\n } // Or just use first one\n\n\n finalDataType = finalDataType || firstDataType;\n } // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n\n\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n\n return responses[finalDataType];\n }\n }\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n\n\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice(); // Create converters map with lowercased keys\n\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n\n current = dataTypes.shift(); // Convert to each sequential dataType\n\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n } // Apply the dataFilter if provided\n\n\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n\n prev = current;\n current = dataTypes.shift();\n\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev; // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current]; // If none found, seek a pair\n\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2]; // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n\n break;\n }\n }\n }\n } // Apply converter (if not an equivalence)\n\n\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s.throws) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n\n return {\n state: \"success\",\n data: response\n };\n }\n\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function ajaxSetup(target, settings) {\n return settings ? // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function ajax(url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (typeof url === \"object\") {\n options = url;\n url = undefined;\n } // Force options to be an object\n\n\n options = options || {};\n\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n _statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function getResponseHeader(key) {\n var match;\n\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function getAllResponseHeaders() {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function setRequestHeader(name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function overrideMimeType(type) {\n if (completed == null) {\n s.mimeType = type;\n }\n\n return this;\n },\n // Status-dependent callbacks\n statusCode: function statusCode(map) {\n var code;\n\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n _statusCode[code] = [_statusCode[code], map[code]];\n }\n }\n }\n\n return this;\n },\n // Cancel the request\n abort: function abort(statusText) {\n var finalText = statusText || strAbort;\n\n if (transport) {\n transport.abort(finalText);\n }\n\n done(0, finalText);\n return this;\n }\n }; // Attach deferreds\n\n\n deferred.promise(jqXHR); // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (#10093: consistency with old signature)\n // We also use the url parameter if available\n\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\"); // Alias method option to type as per ticket #12004\n\n s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list\n\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"]; // A cross-domain request is in order when the origin doesn't match the current origin.\n\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\"); // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n\n try {\n urlAnchor.href = s.url; // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n } // Convert data if not already a string\n\n\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n } // Apply prefilters\n\n\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); // If request was aborted inside a prefilter, stop there\n\n if (completed) {\n return jqXHR;\n } // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\n\n fireGlobals = jQuery.event && s.global; // Watch for a new set of requests\n\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n } // Uppercase the type\n\n\n s.type = s.type.toUpperCase(); // Determine if request has content\n\n s.hasContent = !rnoContent.test(s.type); // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n\n cacheURL = s.url.replace(rhash, \"\"); // More options handling for requests with no content\n\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length); // If data is available and should be processed, append data to url\n\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data; // #9682: remove data so that it's not used in an eventual retry\n\n delete s.data;\n } // Add or update anti-cache param if needed\n\n\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce++ + uncached;\n } // Put hash and anti-cache on the URL that will be requested (gh-1732)\n\n\n s.url = cacheURL + uncached; // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\n\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n } // Set the correct header, if data is being sent\n\n\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n } // Set the Accepts header for the server, depending on the dataType\n\n\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]); // Check for headers option\n\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n } // Allow custom headers/mimetypes and early abort\n\n\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n } // Aborting is no longer a cancellation\n\n\n strAbort = \"abort\"; // Install callbacks on deferreds\n\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error); // Get transport\n\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); // If no transport, we auto-abort\n\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1; // Send global event\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n } // If request was aborted inside ajaxSend, stop there\n\n\n if (completed) {\n return jqXHR;\n } // Timeout\n\n\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n } // Propagate others as results\n\n\n done(-1, e);\n }\n } // Callback for when everything is done\n\n\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText; // Ignore repeat invocations\n\n if (completed) {\n return;\n }\n\n completed = true; // Clear timeout if it exists\n\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n } // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n\n\n transport = undefined; // Cache response headers\n\n responseHeadersString = headers || \"\"; // Set readyState\n\n jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful\n\n isSuccess = status >= 200 && status < 300 || status === 304; // Get response data\n\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n } // Convert no matter what (that way responseXXX fields are always set)\n\n\n response = ajaxConvert(s, response, jqXHR, isSuccess); // If successful, handle type chaining\n\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n\n modified = jqXHR.getResponseHeader(\"etag\");\n\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n } // if no content\n\n\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\"; // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\"; // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n\n if (status || !statusText) {\n statusText = \"error\";\n\n if (status < 0) {\n status = 0;\n }\n }\n } // Set data for the fake xhr object\n\n\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\"; // Success/Error\n\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n } // Status-dependent callbacks\n\n\n jqXHR.statusCode(_statusCode);\n _statusCode = undefined;\n\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n } // Complete\n\n\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]); // Handle the global AJAX counter\n\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n\n return jqXHR;\n },\n getJSON: function getJSON(url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function getScript(url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n } // The url can be an options object (which then must have .url)\n\n\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n\n jQuery._evalUrl = function (url, options) {\n return jQuery.ajax({\n url: url,\n // Make this explicit, since user can override this through ajaxSetup (#11264)\n type: \"GET\",\n dataType: \"script\",\n cache: true,\n async: false,\n global: false,\n // Only evaluate the response if it is successful (gh-4126)\n // dataFilter is not invoked for failure responses, so using it instead\n // of the default converter is kludgy but it works.\n converters: {\n \"text script\": function textScript() {}\n },\n dataFilter: function dataFilter(response) {\n jQuery.globalEval(response, options);\n }\n });\n };\n\n jQuery.fn.extend({\n wrapAll: function wrapAll(html) {\n var wrap;\n\n if (this[0]) {\n if (isFunction(html)) {\n html = html.call(this[0]);\n } // The elements to wrap the target around\n\n\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n\n wrap.map(function () {\n var elem = this;\n\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n\n return elem;\n }).append(this);\n }\n\n return this;\n },\n wrapInner: function wrapInner(html) {\n if (isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function wrap(html) {\n var htmlIsFunction = isFunction(html);\n return this.each(function (i) {\n jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n });\n },\n unwrap: function unwrap(selector) {\n this.parent(selector).not(\"body\").each(function () {\n jQuery(this).replaceWith(this.childNodes);\n });\n return this;\n }\n });\n\n jQuery.expr.pseudos.hidden = function (elem) {\n return !jQuery.expr.pseudos.visible(elem);\n };\n\n jQuery.expr.pseudos.visible = function (elem) {\n return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n };\n\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {}\n };\n\n var xhrSuccessStatus = {\n // File protocol always yields status code 0, assume 200\n 0: 200,\n // Support: IE <=9 only\n // #1450: sometimes IE returns 1223 when it should be 204\n 1223: 204\n },\n xhrSupported = jQuery.ajaxSettings.xhr();\n support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n support.ajax = xhrSupported = !!xhrSupported;\n jQuery.ajaxTransport(function (options) {\n var _callback, errorCallback; // Cross domain only allowed if supported through XMLHttpRequest\n\n\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function send(headers, complete) {\n var i,\n xhr = options.xhr();\n xhr.open(options.type, options.url, options.async, options.username, options.password); // Apply custom fields if provided\n\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n } // Override mime type if needed\n\n\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\n } // X-Requested-With header\n // For cross-domain requests, seeing as conditions for a preflight are\n // akin to a jigsaw puzzle, we simply never set it to be sure.\n // (it can always be set on a per-request basis or even using ajaxSetup)\n // For same-domain requests, won't change header if already provided.\n\n\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n } // Set headers\n\n\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n } // Callback\n\n\n _callback = function callback(type) {\n return function () {\n if (_callback) {\n _callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n\n if (type === \"abort\") {\n xhr.abort();\n } else if (type === \"error\") {\n // Support: IE <=9 only\n // On a manual native abort, IE9 throws\n // errors on any property access that is not readyState\n if (typeof xhr.status !== \"number\") {\n complete(0, \"error\");\n } else {\n complete( // File: protocol always yields status 0; see #8605, #14207\n xhr.status, xhr.statusText);\n }\n } else {\n complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText, // Support: IE <=9 only\n // IE9 has no XHR2 but throws on binary (trac-11426)\n // For XHR2 non-text, let the caller handle it (gh-2498)\n (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n binary: xhr.response\n } : {\n text: xhr.responseText\n }, xhr.getAllResponseHeaders());\n }\n }\n };\n }; // Listen to events\n\n\n xhr.onload = _callback();\n errorCallback = xhr.onerror = xhr.ontimeout = _callback(\"error\"); // Support: IE 9 only\n // Use onreadystatechange to replace onabort\n // to handle uncaught aborts\n\n if (xhr.onabort !== undefined) {\n xhr.onabort = errorCallback;\n } else {\n xhr.onreadystatechange = function () {\n // Check readyState before timeout as it changes\n if (xhr.readyState === 4) {\n // Allow onerror to be called first,\n // but that will not handle a native abort\n // Also, save errorCallback to a variable\n // as xhr.onerror cannot be accessed\n window.setTimeout(function () {\n if (_callback) {\n errorCallback();\n }\n });\n }\n };\n } // Create the abort callback\n\n\n _callback = _callback(\"abort\");\n\n try {\n // Do send the request (this may raise an exception)\n xhr.send(options.hasContent && options.data || null);\n } catch (e) {\n // #14683: Only rethrow if this hasn't been notified as an error yet\n if (_callback) {\n throw e;\n }\n }\n },\n abort: function abort() {\n if (_callback) {\n _callback();\n }\n }\n };\n }\n }); // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n }); // Install script dataType\n\n jQuery.ajaxSetup({\n accepts: {\n script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n },\n contents: {\n script: /\\b(?:java|ecma)script\\b/\n },\n converters: {\n \"text script\": function textScript(text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n }); // Handle cache's special case and crossDomain\n\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n }); // Bind script tag hack transport\n\n jQuery.ajaxTransport(\"script\", function (s) {\n // This transport only deals with cross domain or forced-by-attrs requests\n if (s.crossDomain || s.scriptAttrs) {\n var script, _callback2;\n\n return {\n send: function send(_, complete) {\n script = jQuery(\"