{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./frontend/js/actions/actions-filter-toggle.js","webpack:///./frontend/js/actions/actions-form-age.js","webpack:///./frontend/js/actions/actions-form-dynamic.js","webpack:///./frontend/js/actions/actions-form-generic-validate.js","webpack:///./frontend/js/actions/actions-form-toggle.js","webpack:///./frontend/js/actions/actions-form-validate.js","webpack:///./frontend/js/actions/actions-header-button.js","webpack:///./frontend/js/actions/actions-hero-list.js","webpack:///./frontend/js/actions/actions-navigation.js","webpack:///./frontend/js/actions/actions-rollover-component.js","webpack:///./frontend/js/actions/actions.js","webpack:///./frontend/js/app.js","webpack:///./frontend/js/behaviors/gallery.js","webpack:///./frontend/js/behaviors/index.js","webpack:///./frontend/js/behaviors/mainMap.js","webpack:///./frontend/js/behaviors/userIsTabbing.js","webpack:///./frontend/js/bootstrap/carousel.js","webpack:///./frontend/js/bootstrap/collapse.js","webpack:///./frontend/js/bootstrap/modal.js","webpack:///./frontend/js/bootstrap/tab.js","webpack:///./frontend/js/bootstrap/util.js","webpack:///./frontend/js/functions/createBehavior.js","webpack:///./frontend/js/functions/manageBehaviors.js","webpack:///./frontend/js/polyfills/polyfills.js","webpack:///./node_modules/@area17/a17-helpers/dist/prod.js","webpack:///./node_modules/@area17/a17-helpers/index.js","webpack:///./node_modules/jquery-validation/dist/jquery.validate.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js"],"names":["actionsFilterToggle","$","click","toggleClass","toggle","actionsFormAge","$today","Date","$dobYearDifference","$dobMonthDifference","$dobTotalDifference","$dobDayValue","$dobMonthValue","$dobYearValue","$dobDayToday","getDate","$dobMonthToday","getMonth","$dobYearToday","getFullYear","$dobDayInput","$dobMonthInput","$dobYearInput","$dobRestrictedForm","$hideClass","change","val","dobDayAge","actionsForm","$applicationField","e","preventDefault","insertBefore","document","on","closest","remove","actionsFormGenericValidate","$genericForm","submit","find","prop","actionsFormToggle","formRules","hideClass","hiddenTrigger","hiddenElement","forEach","item","actionsFormValidate","$applicationForm","$applicationReset","validator","addMethod","value","element","optional","test","$validate","validate","rules","appPersonalEmail","required","email","appPersonalEmailConfirm","equalTo","appRefereeEmail","appResidenceUKAddress1","postcode","ignore","errorClass","validClass","highlight","removeClass","addClass","unhighlight","submitHandler","form","console","log","attr","reset","trigger","actionsHeaderButton","hover","actionsHeroList","actionsNavigation","urlParam","URLSearchParams","window","location","search","urlNav","has","append","err","body","triggerMenu","querySelector","scrollUp","scrollDown","lastScroll","addEventListener","classList","scrollDebounce","scrollThreshold","setTimeout","currentScroll","pageYOffset","add","contains","actionsRolloverComponent","newText","index","className","match","join","text","deParent","deTarget","undefined","NCL","browserSpec","Error","manageBehaviors","Behaviors","actions","resized","gallery","createBehavior","updateImage","btn","currentTarget","src","getAttribute","fullSrc","videoUrl","image","setAttribute","length","caption","removeAttribute","innerHTML","fullImage","hasImageExt","galleryPoster","style","backgroundImage","display","videoImage","appendIframe","thumbs","activeClass","init","node","querySelectorAll","firstThumb","main","expand","close","modalClose","modalTest","getChild","modalIframeC","event","removeIframe","stopPropagation","addIframe","path","indexOf","galleryIframe","createElement","width","height","id","appendChild","getElementById","iframeEl","removeChild","destroy","removeEventListener","initMap","bounds","google","maps","LatLngBounds","data","JSON","parse","mapData","map","Map","container","zoom","setMarkers","fitBounds","addListenerOnce","getZoom","setZoom","prevWindow","icon","url","encodeURIComponent","scaledSize","Size","origin","Point","anchor","labelOrigin","gmarkers","i","mapPoint","latitude","lat","lng","longitude","latLng","LatLng","marker","Marker","position","push","extend","windowContent","title","address1","address2","city","county","direction","directions","infowindow","InfoWindow","pixelOffset","content","addListener","panTo","getPosition","open","isScriptAlreadyIncluded","scripts","getElementsByTagName","loadScript","callback","head","script","type","onreadystatechange","onload","loadMaps","key","userIsNotTabbing","userIsTabbing","target","nodeName","Carousel","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","TRANSITION_DURATION","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","Default","interval","keyboard","slide","pause","wrap","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","Event","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHEND","LOAD_DATA_API","CLICK_DATA_API","ClassName","CAROUSEL","ACTIVE","ITEM","Selector","ACTIVE_ITEM","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","config","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_element","_indicatorsElement","_addEventListeners","_slide","hidden","is","css","next","Util","supportsTransitionEnd","triggerTransitionEnd","cycle","clearInterval","setInterval","visibilityState","nextWhenVisible","bind","activeIndex","_getItemIndex","one","to","off","removeData","typeCheckConfig","_keydown","documentElement","clearTimeout","tagName","which","prev","makeArray","parent","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","nextIndicator","children","activeElementIndex","nextElement","_getItemByDirection","nextElementIndex","isCycling","Boolean","directionalClassName","orderClassName","hasClass","_triggerSlideEvent","isDefaultPrevented","_setActiveIndicatorElement","slidEvent","reflow","TRANSITION_END","emulateTransitionEnd","each","action","TypeError","selector","getSelectorFromElement","slideIndex","_jQueryInterface","call","_dataApiClickHandler","$carousel","Constructor","noConflict","Collapse","SHOW","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","DATA_TOGGLE","_isTransitioning","_triggerArray","tabToggles","elem","filter","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","toUpperCase","slice","scrollSize","getBoundingClientRect","$elem","isTransitioning","hasWidth","isElement","jquery","_getTargetFromElement","triggerArray","isOpen","$this","$trigger","$target","Modal","BACKDROP_TRANSITION_DURATION","ESCAPE_KEYCODE","backdrop","focus","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLBAR_MEASURER","BACKDROP","OPEN","FADE","DIALOG","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","NAVBAR_TOGGLER","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","hideEvent","transition","_hideModal","parentNode","nodeType","Node","ELEMENT_NODE","scrollTop","_enforceFocus","shownEvent","transitionComplete","handleUpdate","_resetAdjustments","_resetScrollbar","animate","doAnimate","appendTo","callbackRemove","_removeBackdrop","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","parseFloat","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","clientWidth","Tab","DROPDOWN_MENU","DISABLED","DROPDOWN","NAV_LIST_GROUP","ACTIVE_UL","DROPDOWN_TOGGLE","DROPDOWN_ACTIVE_CHILD","previous","listElement","itemSelector","_activate","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","MAX_UID","toType","obj","toString","toLowerCase","getSpecialTransitionEndEvent","bindType","end","delegateType","handle","handleObj","handler","apply","arguments","transitionEndTest","QUnit","transitionEndEmulator","duration","called","setTransitionEndSupport","special","escapeId","escapeSelector","substr","replace","getUID","prefix","Math","random","charAt","$selector","offsetHeight","componentName","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","valueType","RegExp","Behavior","Element","options","assign","__subBehaviors","__isEnabled","__children","customMethodNames","methodName","freeze","regex","name","attributes","matches","exec","warn","lifecycle","__resizedBind","__resized","mediaQueryUpdated","media","__mediaQueryUpdatedBind","__mediaQueryUpdated","__toggleEnabled","enable","disable","sub","purgeProperties","childName","context","multi","getChildren","isEnabled","enabled","disabled","addSubBehavior","subBehavior","behaviorName","isValidMQ","isBreakpoint","def","args","customProperties","get","writable","defKeys","keys","create","loadedBehaviorsModule","dataAttr","loadedBehaviorNames","loadedBehaviors","activeBehaviors","loopBehaviors","cb","behaviorNodes","concat","behaviorNode","behaviorNames","dataset","split","destroyBehaviors","bName","bNode","nodeBehaviors","createBehaviors","instance","set","observeBehaviors","observer","MutationObserver","mutations","mutation","removedNodes","addedNodes","observe","childList","subtree","characterData","NodeList","Array","CustomEvent","params","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","defineProperty","varArgs","nextSource","nextKey","configurable","queryStringHandler","toObject","qsObj","$0","$1","$2","$3","fromObject","queryString","count","getOwnPropertyNames","updateParameter","re","hash","separator","_typeof","Symbol","iterator","constructor","ajaxRequest","settings","request","XMLHttpRequest","requestUrl","ReferenceError","setRequestHeader","requestHeaders","header","status","onSuccess","responseText","onError","statusText","onerror","send","cookieHandler","days","expires","date","setTime","getTime","toGMTString","cookie","_delete","read","nameEQ","ca","c","substring","copyTextToClipboard","textToCopy","successMsg","navigator","clipboard","protocol","writeText","then","error","textArea","top","border","outline","boxShadow","background","textContent","selection","getSelection","range","createRange","selectNode","removeAllRanges","addRange","successful","execCommand","alert","debounce","func","wait","immediate","timeout","later","callNow","escapeString","str","div","createTextNode","argumentsLength","focusDisplayHandler","touch","mouse","focusMethod","lastFocusMethod","_onKeyDown","_onMouseDown","_onTouchStart","_onFocus","_onBlur","_onWindowBlur","setFocusOnTarget","focusTrap","_focus","_trap","_untrap","triggerCustomEvent","el","initEvent","eventName","dispatchEvent","commonjsGlobal","global","self","createCommonjsModule","module","exports","fontfaceonload","root","factory","TEST_STRING","SANS_SERIF_FONTS","SERIF_FONTS","defaultOptions","tolerance","delay","glyphs","success","weight","html","FontFaceOnloadInstance","fontFamily","appended","serif","sansSerif","getMeasurements","offsetWidth","load","startTime","that","dimensions","ref","reference","getStyle","family","sansSerifHtml","serifHtml","firstChild","nextSibling","hasNewDimensions","dims","abs","isTimeout","checkDimensions","requestAnimationFrame","cleanFamilyName","cleanWeight","weightLookup","normal","bold","checkFontFaces","_t","fonts","font","j","FontFaceOnload","fontLoadObserver","counter","total","variants","cookieName","loaded","array","scope","getCurrentMediaQuery","opera","getComputedStyle","getPropertyValue","getIndex","nodeList","nodes","childNodes","nodesLength","n","getMetaContentByName","getOffset","scrollLeft","bottom","getUrlParameterByName","bp","pattern","bps","A17","breakpoints","isArray","currentBp","currentBpIndex","hasModifier","modifier","bpName","bpIndex","jsonpRequest","keyCodes","tab","enter","esc","space","up","down","lazyLoad","opts","pageUpdatedEventName","elements","rootMargin","threshold","maxFrameCount","frameLoop","frameCount","els","elsLength","checkType","_htmlCollectionToArray","collection","a","_elInViewport","innerHeight","_removeDataAttrs","_loaded","_updateEl","srcset","dlazyload","picturefill","_intersection","entries","disconnect","entry","intersectionRatio","unobserve","_setSrcs","lazyloaded","thisEl","splice","IntersectionObserver","_init","cancelAnimationFrame","_lazyLoad","idCounter","searchDomAndInitBehaviors","all","currentElement","_A17BehaviorsActive","behaviors","splittedBehaviors","k","ThisBehavior","behavior","pageUpdated","activeBehaviorObj","thisBehaviorObj","messages","messageVisible","messageTimer","loadMessage","loadMessageType","createMessage","message","span","hideMessage","showMessage","time","newMessage","loadMessageData","objectifyForm","field","len","selected","checked","oritentationChangeFix","userAgent","viewportmeta","resizeTimer","mediaQuery","newMediaQuery","currentMediaQuery","scrollToY","offset","easing","start","now","isDocument","easingEquations","linear","t","easeIn","easeOut","easeInOut","useRequestAnimationFrame","scrollInterval","onComplete","min","b","cancelInterval","scroll","currentTime","easedT","doScroll","sendEventToSegmentio","analyticsReady","tempStore","pushAnalytics","analytics","track","properties","page","category","identify","userID","pushOrStore","pushStored","userInfo","identifyProps","pair","ready","debug","a17helpers","keycodes","require","define","onsubmit","submitButton","cancelSubmit","result","formSubmitted","currentForm","pendingRequest","focusInvalid","valid","errorList","command","argument","isContentEditable","staticRules","existingRules","param","filtered","normalizeRule","method","normalizeRules","classRules","attributeRules","dataRules","remote","trim","expr","pseudos","blank","filled","unchecked","defaults","format","source","unshift","groups","pendingClass","errorElement","focusCleanup","errorContainer","errorLabelContainer","ignoreTitle","onfocusin","lastActive","hideThese","errorsFor","onfocusout","checkable","submitted","onkeyup","excludedKeys","elementValue","inArray","keyCode","invalid","onclick","findByName","setDefaults","dateISO","number","digits","maxlength","minlength","rangelength","max","step","autoCreateRanges","labelContainer","errorContext","containers","valueCache","pending","delegate","eventType","invalidHandler","checkForm","errorMap","triggerHandler","showErrors","prepareForm","currentElements","check","cleanElement","clean","checkElement","validationTargetFor","v","rs","group","prepareElement","testgroup","numberOfInvalids","toHide","errors","successList","grep","defaultShowErrors","resetForm","hideErrors","removeAttr","resetElements","objectLength","addWrapper","size","findLastActive","rulesCache","resetInternals","toShow","$element","idx","validity","badInput","lastIndexOf","rulesCount","dependencyMismatch","rule","normalizer","parameters","methods","formatAndAdd","customDataMessage","customMessage","m","String","findDefined","defaultMessage","theregex","toToggle","wrapper","showLabel","validElements","invalidElements","place","errorID","elementID","idOrName","describedBy","errorPlacement","insertAfter","parents","escapeCssMeta","describer","string","getLength","depend","dependTypes","startRequest","stopRequest","previousValue","old","classRuleSettings","creditcard","addClassRules","classes","normalizeAttributeRule","Number","isNaN","depends","keepRule","parameter","parts","transformed","errorMessage","supportedTypes","notSupported","decimalPlaces","num","toInt","round","pow","decimals","optionDataString","originalMessage","ajax","mode","port","dataType","response","pendingRequests","ajaxPrefilter","_","xhr","abort","ajaxSettings","w","noGlobal","arr","getProto","getPrototypeOf","flat","class2type","hasOwn","fnToString","ObjectFunctionString","support","isFunction","isWindow","preservedScriptAttributes","nonce","noModule","DOMEval","code","doc","version","jQuery","toArray","pushStack","elems","ret","merge","prevObject","first","eq","last","even","_elem","odd","sort","copy","copyIsArray","clone","deep","isPlainObject","expando","isReady","msg","noop","proto","Ctor","isEmptyObject","globalEval","isArrayLike","results","second","invert","callbackInverse","callbackExpect","arg","guid","_i","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pop","pushNative","list","booleans","whitespace","identifier","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","dir","seed","nid","newSelector","newContext","ownerDocument","getElementsByClassName","qsa","testContext","toSelector","qsaError","cache","cacheLength","shift","markFunction","assert","addHandle","attrs","attrHandle","siblingCheck","cur","diff","sourceIndex","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","matchIndexes","namespace","namespaceURI","hasCompare","subWindow","defaultView","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","tag","tmp","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","operator","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","useCache","lastChild","uniqueID","pseudo","setFilters","matched","matcher","unmatched","lang","elemLang","hasFocus","href","tabIndex","selectedIndex","_matchIndexes","radio","checkbox","file","password","filters","parseOnly","tokens","soFar","preFilters","cached","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","_name","defaultValue","unique","isXMLDoc","until","truncate","siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","contents","targets","l","prevAll","addBack","sibling","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","reverse","rnothtmlwhite","createOptions","object","flag","Callbacks","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","empty","lock","fireWith","Identity","Thrower","ex","adoptValue","resolve","reject","noValue","promise","fail","Deferred","tuples","state","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","mightThrow","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","stack","readyException","readyList","readyWait","completed","readyState","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","acceptData","owner","Data","uid","hasData","dataPriv","dataUser","rbrace","rmultiDash","getData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","defer","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","values","rcheckableType","rtagName","rscriptType","fragment","createDocumentFragment","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","col","tr","td","_default","tbody","tfoot","colgroup","th","optgroup","getAll","setGlobalEval","refElements","buildFragment","ignored","attached","htmlPrefilter","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","types","origFn","handleObjIn","eventHandle","events","handlers","namespaces","origType","elemData","triggered","dispatch","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","button","addProp","hook","enumerable","originalEvent","noBubble","leverageNative","beforeunload","returnValue","notAsync","saved","isTrigger","stopImmediatePropagation","props","defaultPrevented","timeStamp","isSimulated","altKey","changedTouches","ctrlKey","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","udataOld","udataCur","fixInput","domManip","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","prepend","before","after","replaceWith","replaceChild","prependTo","replaceAll","original","insert","rnumnonpx","getStyles","opener","swap","rboxStyle","computeStyleTests","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelBoxStyles","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","parseInt","borderTopWidth","borderBottomWidth","curCSS","computed","minWidth","maxWidth","addGetHookIf","conditionFn","hookFn","cssPrefixes","emptyStyle","vendorProps","vendorPropName","capName","finalPropName","final","cssProps","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","boxModelAdjustment","box","isBorderBox","styles","computedVal","extra","ceil","getWidthOrHeight","boxSizingNeeded","valueIsBorderBox","offsetProp","getClientRects","cssHooks","opacity","origName","isCustomProp","setProperty","isFinite","scrollboxSizeBuggy","suffix","expanded","Tween","propHooks","run","percent","eased","pos","fx","p","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","defaultPrefilter","oldfire","propTween","restoreDisplay","isBox","anim","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","stopped","prefilters","tweens","originalProperties","originalOptions","gotoEnd","timer","tweener","prefilter","speed","opt","speeds","fadeTo","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","checkOn","optSelected","radioValue","boolHook","nType","attrHooks","bool","attrNames","getter","lowercaseName","rfocusable","rclickable","removeProp","propFix","tabindex","stripAndCollapse","getClass","classesToArray","curValue","clazz","finalValue","stateVal","isValidValue","classNames","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","attaches","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","s","valueOrFunction","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","isSuccess","conv2","current","conv","responseFields","dataFilter","lastModified","etag","isLocal","processData","async","contentType","accepts","json","ajaxSetup","ajaxTransport","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeadersNames","strAbort","getAllResponseHeaders","overrideMimeType","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","nativeStatusText","modified","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhrSuccessStatus","xhrSupported","cors","errorCallback","username","xhrFields","onabort","ontimeout","responseType","binary","scriptAttrs","charset","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","undelegate","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","_jQuery","_$","g","Function","webpackPolyfill","deprecate","paths"],"mappings":"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","file":"app.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./frontend/js/app.js\");\n","import $ from 'jquery'\n\nfunction actionsFilterToggle() {\n\t$('.m-filter__select').click(function () {\n $(this).toggleClass('active');\n });\n\n $('.icon--search-sidebar').click(function () {\n\t\t$('.search--sidebar-hidden').toggle();\n });\n\n $('.icon--caret--down').click(function () {\n $(\".m-hero__links\").toggleClass(\"active\");\n });\n}\n\n\nexport default actionsFilterToggle\n","import $ from 'jquery'\n\nfunction actionsFormAge() {\n\n\tlet $today = new Date()\n\n\tlet $dobYearDifference = 0\n\tlet $dobMonthDifference = 0\n\tlet $dobTotalDifference = 0\n\n\tlet $dobDayValue = null\n\tlet $dobMonthValue = null\n\tlet $dobYearValue = null\n\n\tlet $dobDayToday = $today.getDate()\n\tlet $dobMonthToday = $today.getMonth()\n\tlet $dobYearToday = $today.getFullYear()\n\n\tlet $dobDayInput = $('#appPersonalDobDay')\n\tlet $dobMonthInput = $('#appPersonalDobMonth')\n\tlet $dobYearInput = $('#appPersonalDobYear')\n\tlet $dobRestrictedForm = $('.application-age')\n\n\tlet $hideClass = 'js-hide'\n\n\t$dobDayInput.change(function () {\n\t\t$dobDayValue = $(this).val()\n\t\tdobDayAge()\n\t})\n\n\t$dobMonthInput.change(function () {\n\t\t$dobMonthValue = $(this).val()\n\t\tdobDayAge()\n\t})\n\n\t$dobYearInput.change(function () {\n\t\t$dobYearValue = $(this).val()\n\t\tdobDayAge()\n\t})\n\n\tfunction dobDayAge() {\n\n\t\t$dobYearDifference = $dobYearToday - $dobYearValue\n\t\t$dobMonthDifference = $dobMonthToday - $dobDayValue\n\n\t\tif ($dobMonthDifference < 0 || ($dobMonthDifference === 0 && $dobDayToday < $dobDayValue)) {\n\t\t\t$dobTotalDifference = $dobYearDifference - 1;\n\t\t}\n\n\t\tif ($dobTotalDifference >= 25) {\n\t\t\t$dobRestrictedForm.toggleClass($hideClass)\n\t\t} else {\n\t\t\t$dobRestrictedForm.toggleClass($hideClass)\n\t\t}\n\n\t}\n}\n\nexport default actionsFormAge\n","import $ from 'jquery'\n\nfunction actionsForm() {\n\n\tlet $applicationField = `\n\t\t
\n\t\t\t
\n\t\t\t\tRemove Me\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
`;\n\n\n\t// Click To Add New Fields\n\t$('.app-qualifications-add').click(function (e) {\n\t\te.preventDefault()\n\t\t$($applicationField).insertBefore(this)\n\t});\n\n\t// Click To Remove Fields\n\t$(document).on('click', '.app-qualifications-remove', function (e) {\n\t\te.preventDefault()\n\t\t$(this).closest('.app-form-field').remove()\n\t})\n\n}\n\nexport default actionsForm\n","import $ from 'jquery'\nimport validate from 'jquery-validation'\n\nfunction actionsFormGenericValidate() {\n\n let $genericForm = $('.umbraco-forms-form > form');\n \n $genericForm.submit(function (e) {\n\t\t//alert('submitting');\n\t\t$(this).find('input[type=submit]').prop('disabled', true);\n\t});\n\t\n}\n\nexport default actionsFormGenericValidate\n","import $ from 'jquery'\n\nfunction actionsFormToggle() {\n\n\t// Application Form Show/Hide Sections\n\tlet formRules = [\n\t\t{\n\t\t\t// Application Qualification Subjects Question\n\t\t\thideClass: 'js-hide',\n\t\t\thiddenTrigger: '[name=appQualificationsPredict]',\n\t\t\thiddenElement: '.application-qualifications-subjects'\n\t\t},\n\t\t{\n\t\t\t// Application Qualification Actual Question\n\t\t\thideClass: 'js-hide',\n\t\t\thiddenTrigger: '[name=appQualificationsActual]',\n\t\t\thiddenElement: '.application-qualifications-actual'\n\t\t},\n\t\t{\n\t\t\t// Application Employment Question\n\t\t\thideClass: 'js-hide',\n\t\t\thiddenTrigger: '[name=appEmploymentCurrent]',\n\t\t\thiddenElement: '.application-employment'\n\t\t},\n\t\t{\n\t\t\t// Application Address EU Question\n\t\t\thideClass: 'js-hide',\n\t\t\thiddenTrigger: '[name=appResidenceUK]',\n\t\t\thiddenElement: '.application-eu'\n\t\t},\n\t\t{\n\t\t\t// Application UK Address Question\n\t\t\thideClass: 'js-hide',\n\t\t\thiddenTrigger: '[name=appResidenceUKAddress]',\n\t\t\thiddenElement: '.application-uk-address'\n\t\t},\n\t\t{\n\t\t\t// Application UK Study Question\n\t\t\thideClass: 'js-hide',\n\t\t\thiddenTrigger: '[name=appImmigrationUKstudied]',\n\t\t\thiddenElement: '.application-uk-studied'\n\t\t},\n\t\t{\n\t\t\t// Application UK Study Question\n\t\t\thideClass: 'js-hide',\n\t\t\thiddenTrigger: '[name=appAccommodationArranged]',\n\t\t\thiddenElement: '.application-accommodation'\n\t\t},\n\t]\n\n\t// Loop Through Form and Show/Hide\n\tformRules.forEach(function (item) {\n\t\t$(item.hiddenTrigger).change(function () {\n\t\t\t$(item.hiddenElement).toggleClass(item.hideClass)\n\t\t})\n\t})\n\n}\n\nexport default actionsFormToggle\n","import $ from 'jquery'\nimport validate from 'jquery-validation'\n\nfunction actionsFormValidate() {\n\n let $applicationForm = $('#applicationForm')\n let $applicationReset = $('.application-reset')\n\n // Custom Validation For UK Postcodes\n $.validator.addMethod('postcode', function (value, element) {\n return this.optional(element) || /^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([A-PR-UWYZ][A-HK-Y][0-9][0-9])|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))\\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\\s?(0AA))$/i.test(value)\n }, 'Please specify a valid UK postcode')\n\n // Application Form Validation\n let $validate = $applicationForm.validate({\n rules: {\n appPersonalEmail: {\n required: true,\n email: true,\n },\n appPersonalEmailConfirm: {\n email: true,\n required: true,\n equalTo: '#appPersonalEmail'\n },\n appRefereeEmail: {\n email: true,\n required: true,\n },\n appResidenceUKAddress1: {\n required: true,\n postcode: true\n },\n },\n ignore: ':hidden',\n errorClass: 'input-validation-error',\n validClass: 'input-validation-valid',\n highlight: function (element, errorClass, validClass) {\n $(element).removeClass(errorClass).removeClass(validClass).addClass(errorClass)\n },\n unhighlight: function (element, errorClass, validClass) {\n $(element).removeClass(errorClass).removeClass(validClass).addClass(validClass)\n },\n\n /* Doesn't seem to bind properly */\n submitHandler: function (form) {\n console.log('disabling button');\n form.addClass('a-btn--disabled');\n form.find(\"input[type=submit]\").attr(\"disabled\", \"disabled\");\n form.submit();\n }\n })\n\n\t/*\n\t$applicationForm.submit(function (e) {\n\t\talert('submitting');\n\t\t$(this).find('input[type=submit]').prop('disabled', true);\n\t});\n\t*/\n\n $applicationReset.click(function (e) {\n e.preventDefault()\n $validate.reset()\n $applicationForm.trigger('reset')\n $('.input-validation-error').remove()\n $('.form-control').removeClass('input-validation-valid').removeClass('input-validation-error')\n })\n\n}\n\nexport default actionsFormValidate\n","import $ from 'jquery'\n\nfunction actionsHeaderButton() { \n\t$('.a-btn--apply').hover(function () {\n $('.a-btn--apply__modal').toggleClass('active');\n });\n}\n\n\nexport default actionsHeaderButton\n","import $ from 'jquery'\n\nfunction actionsHeroList() {\n\t$('.m-hero__list > li').addClass('m-hero__list-child');\n\t$('.m-hero__list-child').hover(function () {\n\t\t$('.m-hero__list-child').removeClass('m-hero__title');\n\t\t$(this).addClass('m-hero__title');\n });\n}\n\nexport default actionsHeroList\n","import $ from 'jquery'\n\nfunction actionsNavigation() {\n\n\t//console.log('this is the actionsNavigation')\n\n try {\n let urlParam = new URLSearchParams(window.location.search)\n\t let urlNav = '
M1M2M3M4M5M6M7M8Search CareersSearch Everything ElseSearch Results No ResultsCourse LeafletEvents IndexFacilities LandingNews Index
'\n\n if(urlParam.has('nav')) {\n $('body').append(urlNav);\n }\n\n $('.icon-onclick').click(function () {\n $('.-dropdown').toggle();\n });\n } catch (err) {\n console.log(err)\n }\n}\n\nconst body = document.body;\nconst triggerMenu = document.querySelector(\".g-header\");\nconst scrollUp = \"scroll-up\";\nconst scrollDown = \"scroll-down\";\nlet lastScroll = 0;\n\ntriggerMenu.addEventListener(\"click\", () => {\n body.classList.toggle(\"menu-open\");\n});\n\nvar scrollDebounce = -1,\n scrollThreshold = 50;\nwindow.addEventListener(\"scroll\", () => {\n\n if(scrollDebounce == -1){\n scrollDebounce = setTimeout(()=> {\n const currentScroll = window.pageYOffset;\n if (currentScroll < 0) {\n body.classList.remove(scrollDown);\n body.classList.add(scrollUp);\n scrollDebounce = -1;\n return;\n }\n \n if (currentScroll > lastScroll + scrollThreshold && !body.classList.contains(scrollDown)) {\n // down\n body.classList.remove(scrollUp);\n body.classList.add(scrollDown);\n } else if (currentScroll < lastScroll - scrollThreshold && body.classList.contains(scrollDown)) {\n // up\n body.classList.remove(scrollDown);\n body.classList.add(scrollUp);\n }\n lastScroll = currentScroll;\n scrollDebounce = -1;\n }, 300);\n }\n});\nexport default actionsNavigation\n","import $ from 'jquery'\n\nfunction actionsRolloverComponent() {\n\t$('.js-toggle-bg li').hover(function () {\n\n var value = $(this).attr('data-src');\n var newText = $(this).attr('data-newtext');\n\tconsole.log(value);\n\n $(this).closest('.js-toggle-bg').find('.m-hero__image').removeClass (function (index, className) {\n return (className.match (/(^|\\s)m-hero__image--\\S+/g) || []).join(' ');\n });\n\n\n $(this).closest('.js-toggle-bg').find('.m-hero__image').addClass(value);\n\t\n\t$(this).closest('.js-toggle-bg').find('.m-hero__image h2').text(newText);\n });\n \n $('.js-toggle-bg-stats li').hover(function () {\n\t \n\t var deParent = $(this).closest('.js-toggle-bg-stats');\n\t var deTarget = $(this).attr('data-targetId');\n\t \n\t $(deParent).find('[data-target-id]').attr('style', 'display:none!important;');\n\t \n\t if(deTarget !== undefined){\n\t\t $(deParent).find('[data-target-id=\"' + deTarget + '\"]').attr('style', '');\n\t } else {\n\t\t $(deParent).find('[data-target-id=\"default\"]').attr('style', ''); \n\t }\n\t\n });\n}\n\nexport default actionsRolloverComponent\n","import actionsFormAge from './actions-form-age'\nimport actionsFormToggle from './actions-form-toggle'\nimport actionsFormDynamic from './actions-form-dynamic'\nimport actionsFormValidate from './actions-form-validate'\nimport actionsFormGenericValidate from './actions-form-generic-validate'\nimport actionsNavigation from './actions-navigation'\nimport actionsFilterToggle from './actions-filter-toggle'\nimport actionsHeroList from './actions-hero-list'\nimport actionsHeaderButton from './actions-header-button'\nimport actionsRolloverComponent from './actions-rollover-component'\n\nexport {\n\tactionsFormAge,\n\tactionsFormToggle,\n\tactionsFormDynamic,\n actionsFormValidate,\n actionsFormGenericValidate,\n\tactionsNavigation,\n\tactionsFilterToggle,\n\tactionsHeroList,\n\tactionsHeaderButton,\n\tactionsRolloverComponent\n}\n","import './polyfills/polyfills.js';\nimport './bootstrap/util.js';\nimport './bootstrap/collapse';\nimport './bootstrap/carousel';\nimport './bootstrap/modal';\nimport './bootstrap/tab';\n\nimport * as actions from './actions/actions';\n\nimport {\n\tresized\n} from '@area17/a17-helpers';\nimport * as Behaviors from './behaviors';\nimport {\n\tmanageBehaviors\n} from './functions/manageBehaviors';\n\n// HTML4 browser?\nif (!NCL.browserSpec || NCL.browserSpec === 'html4') {\n\t// lets kill further JS execution of NCL js here\n\tthrow new Error('HTML4');\n}\n\ndocument.addEventListener('DOMContentLoaded', function () {\n\n\t// go go go\n\tmanageBehaviors(Behaviors);\n\n\t// Form Stuff\n\tactions.actionsFormAge();\n\tactions.actionsFormToggle();\n\tactions.actionsFormDynamic();\n\tactions.actionsFormValidate();\n\tactions.actionsNavigation();\n\tactions.actionsFilterToggle();\n\tactions.actionsHeroList();\n\tactions.actionsHeaderButton();\n actions.actionsRolloverComponent();\n\n // Disable on form click\n $('.disable-on-click').click(function (e) {\n console.log('clicked submit');\n $(this).prop('disabled', true);\n $(this).addClass('a-btn--disabled');\n });\n\n\t// on resize, check\n\tresized();\n\n});\n\n","import createBehavior from '../functions/createBehavior';\n\nconst gallery = createBehavior(\n 'gallery',\n {\n updateImage(e) {\n let btn = e.currentTarget;\n\n if (btn === undefined) {\n btn = e;\n }\n\n //preview image src\n let src = btn.getAttribute('data-img-src');\n //large image src\n let fullSrc = btn.getAttribute('data-img-srcFull');\n this.videoUrl = btn.getAttribute('data-video-url');\n let text = btn.getAttribute('data-text');\n\n // On poster button click (this.galleryPoster) \n // iframe (galleryIframe) will have set attribute videoUrl + '?autoplay=1'\n // Hide poster button\n // If there is a video (if videoUrl is filled in) then hide this.fullImg \n // else if there is nothing filled in for video attribute then hide iframe and poster button\n\n this.image.setAttribute('data-video-url', this.videoUrl);\n this.image.setAttribute('src', src);\n this.image.setAttribute('alt', text);\n if(text.length == 0){\n this.caption.setAttribute('style', 'display:none;');\n }else{\n this.caption.removeAttribute('style');\n\n this.caption.innerHTML = text;\n }\n // this.fullImage.setAttribute('src', fullSrc);\n this.fullImage.setAttribute('alt', text);\n\n\n //check if fullSRC has a value (full image)\n if (typeof fullSrc !== \"undefined\" && fullSrc.length > 0) {\n //check the path of \"src\" contains an image extension jpg/jpeg/png/gif\n if (this.hasImageExt(fullSrc)) {\n this.fullImage.setAttribute('src', fullSrc);\n this.galleryPoster.style.backgroundImage = 'url(' + fullSrc + ')';\n }\n } else if (typeof src !== \"undefined\" && src.length > 0) {\n //if fullSRC is empty, use preview media instead (src)\n //check the path of \"src\" contains an image extension jpg/jpeg/png/gif\n if (this.hasImageExt(src)) {\n this.fullImage.setAttribute('src', src);\n this.galleryPoster.style.backgroundImage = 'url(' + src + ')';\n }\n }\n\n //if the button selected as a VIDEO value, then show controls (poster button)\n if ((typeof this.videoUrl !== \"undefined\" && this.videoUrl.length > 0)) {\n //change iframe here\n this.fullImage.style.display = 'none';\n this.galleryPoster.style.display = 'block';\n this.videoImage.style.display = 'block';\n this.appendIframe = true;\n }\n else {\n //if no VIDEO value, then hide the poster image and show static image\n this.fullImage.style.display = 'block';\n this.galleryPoster.style.display = 'none';\n this.videoImage.style.display = 'none';\n }\n\n this.thumbs.forEach(item => {\n item.classList.remove(this.activeClass);\n });\n\n btn.classList.add(this.activeClass);\n },\n init() {\n this.activeClass = \"active\";\n this.thumbs = this.node.querySelectorAll('.m-gallery__btn');\n this.firstThumb = this.thumbs[0];\n this.main = this.node.querySelector('.m-gallery__image');\n this.caption = this.main.querySelector('.m-gallery__caption');\n this.expand = this.main.querySelector('.a-btn--full');\n this.close = this.main.querySelector('.modal-gallery--close');\n this.modalClose = this.main.querySelector('.m-modal--gallery');\n this.modalTest = this.main.querySelector('.modal-test');\n // this.modalBackground = this.main.querySelector('.m-modal--background');\n //preview media image\n this.image = this.getChild('image');\n //full modal image element\n this.fullImage = this.getChild('fullImage');\n this.videoImage = this.main.querySelector('.gallery-video--play');\n this.appendIframe = false;\n this.videoUrl = \"\";\n\n this.fullImage.style.display = 'block';\n\n\n //Iframe for video\n //this.galleryIframe = this.getChild('iframe');\n //iframe container\n this.modalIframeC = this.main.querySelector('.m-modal .iframe-container');\n //Button to trigger video iframe\n this.galleryPoster = this.getChild('poster');\n\n this.updateImage(this.firstThumb);\n\n this.thumbs.forEach(item => {\n item.addEventListener('click', event => {\n this.removeIframe();\n this.updateImage(event);\n event.stopPropagation();\n });\n }); \n\n this.expand.addEventListener('click', event => {\n // this.modalBackground.style.display = 'block';\n this.modalTest.classList.add(\"show\");\n this.modalTest.style.display = 'block';\n if (typeof this.videoUrl !== \"undefined\" && this.videoUrl.length > 0) {\n //this.galleryPoster.style.display = 'block';\n this.addIframe(this.videoUrl + '?autoplay=1');\n //this.appendIframe = true;\n } else if (typeof this.videoUrl === \"undefined\" && this.videoUrl.length < 1) {\n this.galleryPoster.style.display = 'none';\n this.appendIframe = false;\n }\n });\n \n this.close.addEventListener('click', event => {\n // this.modalBackground.style.display = 'none';\n this.modalTest.classList.remove(\"show\");\n this.modalTest.style.display = 'none';\n this.removeIframe();\n });\n\n this.galleryPoster.addEventListener('click', event => {\n if(this.appendIframe && this.videoUrl !== \"\"){\n this.addIframe(this.videoUrl + '?autoplay=1');\n }\n });\n\n },\n hasImageExt(path) {\n return path.indexOf('.gif') > -1 || path.indexOf('.jpg') > -1 || path.indexOf('.png') > -1 || path.indexOf('.jpeg') > -1\n },\n addIframe(videoUrl){\n //create new IFRAME element\n var galleryIframe = document.createElement('iframe');\n\n //add appropriate attributes (including autoplay query string)\n if (videoUrl == \"\") {\n videoUrl = btn.getAttribute('data-video-url');\n }\n\n galleryIframe.setAttribute('src', videoUrl);\n galleryIframe.setAttribute('allow', 'autoplay; encrypted-media; fullscreen');\n galleryIframe.setAttribute('scrolling', 'no');\n galleryIframe.setAttribute('frameborder', '0');\n galleryIframe.style.width = \"100%\";\n galleryIframe.style.height = \"100%\";\n galleryIframe.id = \"modal-gallery-iframe\";\n //append this item inside .m-modal .iframe-container\n \n if(this.modalIframeC.querySelector('iframe') == null){\n this.modalIframeC.appendChild(galleryIframe);\n }\n //this.galleryIframe.setAttribute('src', videoUrl + '?autoplay=1');\n\n\n //hide poster image\n this.galleryPoster.style.display = 'none';\n },\n removeIframe() {\n if (document.getElementById('modal-gallery-iframe') !== null) {\n var iframeEl = document.getElementById('modal-gallery-iframe');\n if(iframeEl !== null){\n this.modalIframeC.removeChild(iframeEl);\n }\n }\n this.appendIframe = false;\n },\n destroy() {\n this.removeIframe();\n this.thumbs.forEach(item => {\n item.classList.remove(this.activeClass);\n item.removeEventListener('click', event => {\n this.updateImage(event);\n })\n })\n },\n }\n);\n\nexport default gallery;\n","export { default as gallery } from './gallery';\nexport { default as mainMap } from './mainMap';\nexport { default as userIsTabbing } from './userIsTabbing';\n","import createBehavior from '../functions/createBehavior';\n\nconst gallery = createBehavior(\n 'gallery',\n {\n initMap(e) {\n let bounds = new google.maps.LatLngBounds();\n const data = JSON.parse(this.mapData);\n const map = new google.maps.Map(this.container, {\n zoom: 10,\n });\n if (data) {\n this.setMarkers(map, data, bounds);\n map.fitBounds(bounds);\n }\n google.maps.event.addListenerOnce(map, 'bounds_changed', function(event) {\n if (this.getZoom() > 15) {\n this.setZoom(15);\n }\n });\n },\n setMarkers(map, data, bounds) {\n let prevWindow = false;\n\n let icon = {\n url: 'data:image/svg+xml;charset=utf-8,' +\n encodeURIComponent(' '),\n scaledSize: new google.maps.Size(58, 81),\n origin: new google.maps.Point(0, 0),\n anchor: new google.maps.Point(29, 81),\n labelOrigin: new google.maps.Point(0, 0),\n };\n\n let gmarkers = [];\n for (let i = 0; i < data.length; i++) {\n let mapPoint = data[i];\n\n if(mapPoint.latitude !== '' && mapPoint.latitude !== ''){\n let lat = mapPoint.latitude;\n let lng = mapPoint.longitude;\n let latLng = new google.maps.LatLng(lat, lng);\n let marker = new google.maps.Marker({map: map, position: latLng, icon: icon});\n gmarkers.push(marker);\n\n bounds.extend(marker.position);\n\n (function (marker, mapPoint) {\n let windowContent = `
\n ${mapPoint.title !== '' ? `

${mapPoint.title}

` : ''}\n \n ${mapPoint.address1 !== '' ? `${mapPoint.address1}
` : ''}\n ${mapPoint.address2 !== '' ? `${mapPoint.address2}
` : ''}\n ${mapPoint.city !== '' ? `${mapPoint.city}
` : ''}\n ${mapPoint.county !== '' ? `${mapPoint.county}
` : ''}\n ${mapPoint.postcode !== '' ? `${mapPoint.postcode}
` : ''}\n
\n ${mapPoint.direction !== '' ? `Get Directions ` : ''}\n
`;\n\n let infowindow = new google.maps.InfoWindow({\n pixelOffset: new google.maps.Size(180, 180),\n content: '
' + windowContent + '
'\n });\n\n // Open info window on click\n google.maps.event.addListener(marker, 'click', function () {\n if (prevWindow) {\n prevWindow.close();\n }\n prevWindow = infowindow;\n map.panTo(this.getPosition());\n infowindow.open(map, marker);\n });\n }(marker, mapPoint));\n }\n\n google.maps.event.trigger(gmarkers[0], 'click');\n }\n },\n isScriptAlreadyIncluded(src){\n let scripts = document.getElementsByTagName('script');\n for(let i = 0; i < scripts.length; i++) {\n if(scripts[i].getAttribute('src') === src) {\n return true;\n }\n }\n return false;\n },\n loadScript(url, callback)\n {\n if(!this.isScriptAlreadyIncluded(url)){\n let head = document.head;\n let script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = url;\n script.onreadystatechange = callback;\n script.onload = callback;\n head.appendChild(script);\n } else {\n callback();\n }\n },\n loadMaps(key) {\n this.loadScript(`https://maps.googleapis.com/maps/api/js?key=${key}`, this.initMap);\n },\n },\n {\n init() {\n this.container = this.node.querySelector('[data-map-container]');\n this.mapData = this.node.getAttribute('data-mapData');\n this.key = 'AIzaSyAsdzDNFvTqX_i1RlKT-n5_Tzo2c7CKh4Q'; // TODO: Change to client's API key\n\n window.addEventListener('load', this.loadMaps(this.key));\n },\n destroy() {\n window.removeEventListener('load', this.loadMaps(this.key));\n },\n }\n);\n\nexport default gallery;\n","function userIsNotTabbing(e) {\n document.body.classList.remove('user-is-tabbing');\n window.addEventListener('keydown', userIsTabbing);\n window.removeEventListener('mousedown', userIsNotTabbing);\n}\n\nfunction userIsTabbing(e) {\n if (e.target.nodeName === 'INPUT' || e.target.nodeName === 'TEXTAREA') return;\n document.body.classList.add('user-is-tabbing');\n window.removeEventListener('keydown', userIsTabbing);\n window.addEventListener('mousedown', userIsNotTabbing);\n}\n\nwindow.addEventListener('keydown', userIsTabbing);\n\nexport default userIsTabbing;\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 600\n const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\n const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\n const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this.touchTimeout = null\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if ($(this._element).find(Selector.NEXT_PREV)[0] &&\n Util.supportsTransitionEnd()) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n if ('ontouchstart' in document.documentElement) {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n $(this._element).on(Event.TOUCHEND, () => {\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n })\n }\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n $(this._indicatorsElement)\n .find(Selector.ACTIVE)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n $(window).on(Event.LOAD_DATA_API, () => {\n $(Selector.DATA_RIDE).each(function () {\n const $carousel = $(this)\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n\n return Carousel\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 600\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray($(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n const tabToggles = $(Selector.DATA_TOGGLE)\n for (let i = 0; i < tabToggles.length; i++) {\n const elem = tabToggles[i]\n const selector = Util.getSelectorFromElement(elem)\n if (selector !== null && $(selector).filter(element).length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = $.makeArray(\n $(this._parent)\n .find(Selector.ACTIVES)\n .filter(`[data-parent=\"${this._config.parent}\"]`)\n )\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length > 0) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n if (this._triggerArray.length > 0) {\n for (let i = 0; i < this._triggerArray.length; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n if (selector !== null) {\n const $elem = $(selector)\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent = null\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = $(this._config.parent)[0]\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n $(parent).find(selector).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length > 0) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? $(selector)[0] : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n $(selector).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 300\n const BACKDROP_TRANSITION_DURATION = 150\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top',\n NAVBAR_TOGGLER : '.navbar-toggler'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = $(element).find(Selector.DIALOG)[0]\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._originalBodyPadding = 0\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isTransitioning || this._isShown) {\n return\n }\n\n if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n $(document.body).addClass(ClassName.OPEN)\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (this._isTransitioning || !this._isShown) {\n return\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n\n const transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE)\n ? ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n const doAnimate = Util.supportsTransitionEnd() && animate\n\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n $(this._backdrop).addClass(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (doAnimate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!doAnimate) {\n callback()\n return\n }\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)) {\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const actualPadding = $(element)[0].style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(Selector.STICKY_CONTENT).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust navbar-toggler margin\n $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $('body').css('padding-right')\n $('body').data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const padding = $(element).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(element).css('padding-right', padding).removeData('padding-right')\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $('body').data('padding-right')\n if (typeof padding !== 'undefined') {\n $('body').css('padding-right', padding).removeData('padding-right')\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Modal.Default,\n ...$(this).data(),\n ...typeof config === 'object' && config\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = $(selector)[0]\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n\n return Modal\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : '> li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = $(selector)[0]\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n let activeElements\n if (container.nodeName === 'UL') {\n activeElements = $(container).find(Selector.ACTIVE_UL)\n } else {\n activeElements = $(container).children(Selector.ACTIVE)\n }\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n Util.supportsTransitionEnd() &&\n (active && $(active).hasClass(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n})($)\n\nexport default Tab\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n let transition = false\n\n const MAX_UID = 1000000\n\n // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase()\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: transition.end,\n delegateType: transition.end,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined // eslint-disable-line no-undefined\n }\n }\n }\n\n function transitionEndTest() {\n if (typeof window !== 'undefined' && window.QUnit) {\n return false\n }\n\n return {\n end: 'transitionend'\n }\n }\n\n function transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n }\n\n function setTransitionEndSupport() {\n transition = transitionEndTest()\n\n $.fn.emulateTransitionEnd = transitionEndEmulator\n\n if (Util.supportsTransitionEnd()) {\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n }\n }\n\n function escapeId(selector) {\n // We escape IDs in case of special selectors (selector = '#myId:something')\n // $.escapeSelector does not exist in jQuery < 3\n selector = typeof $.escapeSelector === 'function' ? $.escapeSelector(selector).substr(1)\n : selector.replace(/(:|\\.|\\[|\\]|,|=|@)/g, '\\\\$1')\n\n return selector\n }\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n const Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n if (!selector || selector === '#') {\n selector = element.getAttribute('href') || ''\n }\n\n // If it's an ID\n if (selector.charAt(0) === '#') {\n selector = escapeId(selector)\n }\n\n try {\n const $selector = $(document).find(selector)\n return $selector.length > 0 ? selector : null\n } catch (err) {\n return null\n }\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(transition.end)\n },\n\n supportsTransitionEnd() {\n return Boolean(transition)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n }\n }\n\n setTransitionEndSupport()\n\n return Util\n})($)\n\nexport default Util\n","import { isBreakpoint, purgeProperties } from '@area17/a17-helpers';\n\n// see https://code.area17.com/a17/fe-boilerplate/wikis/js-functions-createBehavior\n\nfunction Behavior(node, config = {}) {\n if (!node || !(node instanceof Element)) {\n throw new Error('Node argument is required');\n }\n\n this.node = node;\n this.options = Object.assign({}, config.options || {});\n\n this.__subBehaviors = [];\n this.__isEnabled = false;\n this.__children = config.children;\n\n // Auto-bind all custom methods to \"this\"\n this.customMethodNames.forEach(methodName => {\n this[methodName] = this[methodName].bind(this);\n });\n\n return this;\n}\n\nBehavior.prototype = Object.freeze({\n init() {\n // Get options from data attributes on node\n const regex = new RegExp('^data-' + this.name + '-(.*)', 'i');\n for (let i = 0; i < this.node.attributes.length; i++) {\n const attr = this.node.attributes[i];\n const matches = regex.exec(attr.nodeName);\n\n if (matches != null && matches.length >= 2) {\n if (this.options[matches[1]]) {\n console.warn(\n `Ignoring ${\n matches[1]\n } option, as it already exists on the ${name} behavior. Please choose another name.`\n );\n }\n this.options[matches[1]] = attr.value;\n }\n }\n\n // Behavior-specific lifecycle\n if (this.lifecycle.init != null) {\n this.lifecycle.init.call(this);\n }\n\n if (this.lifecycle.resized != null) {\n this.__resizedBind = this.__resized.bind(this);\n window.addEventListener('resized', this.__resizedBind);\n }\n\n if (this.lifecycle.mediaQueryUpdated != null || this.options.media) {\n this.__mediaQueryUpdatedBind = this.__mediaQueryUpdated.bind(this);\n window.addEventListener('mediaQueryUpdated', this.__mediaQueryUpdatedBind);\n }\n\n if (this.options.media) {\n this.__toggleEnabled();\n } else {\n this.enable();\n }\n },\n destroy() {\n if (this.__isEnabled === true) {\n this.disable();\n }\n\n // Behavior-specific lifecycle\n if (this.lifecycle.destroy != null) {\n this.lifecycle.destroy.call(this);\n }\n\n this.__subBehaviors.forEach(sub => {\n sub.destroy();\n });\n\n if (this.lifecycle.resized != null) {\n window.removeEventListener('resized', this.__resizedBind);\n }\n\n if (this.lifecycle.mediaQueryUpdated != null || this.options.media) {\n window.removeEventListener('mediaQueryUpdated', this.__mediaQueryUpdatedBind);\n }\n\n purgeProperties(this);\n },\n getChild(childName, context, multi = false) {\n if (context == null) {\n context = this.node;\n }\n if (this.__children != null && this.__children[childName] != null) {\n return this.__children[childName];\n }\n return context[multi ? 'querySelectorAll' : 'querySelector'](\n '[data-' + this.name.toLowerCase() + '-' + childName.toLowerCase() + ']'\n );\n },\n getChildren(childName, context) {\n return this.getChild(childName, context, true);\n },\n isEnabled() {\n return this.__isEnabled;\n },\n enable() {\n this.__isEnabled = true;\n if (this.lifecycle.enabled != null) {\n this.lifecycle.enabled.call(this);\n }\n },\n disable() {\n this.__isEnabled = false;\n if (this.lifecycle.disabled != null) {\n this.lifecycle.disabled.call(this);\n }\n },\n addSubBehavior(Behavior, node, config = {}) {\n const subBehavior = new Behavior(node, config);\n subBehavior.behaviorName = this.name;\n subBehavior.init();\n this.__subBehaviors.push(subBehavior);\n return subBehavior;\n },\n __toggleEnabled() {\n const isValidMQ = isBreakpoint(this.options.media);\n if (isValidMQ && !this.__isEnabled) {\n this.enable();\n } else if (!isValidMQ && this.__isEnabled) {\n this.disable();\n }\n },\n __mediaQueryUpdated() {\n if (this.lifecycle.mediaQueryUpdated != null) {\n this.lifecycle.mediaQueryUpdated.call(this);\n }\n if (this.options.media) {\n this.__toggleEnabled();\n }\n },\n __resized() {\n if (this.lifecycle.resized != null) {\n this.lifecycle.resized.call(this);\n }\n },\n});\n\nconst createBehavior = (name, def, lifecycle = {}) => {\n const fn = function(...args) {\n Behavior.apply(this, args);\n };\n\n const customMethodNames = [];\n\n const customProperties = {\n name: {\n get() {\n return this.behaviorName;\n },\n },\n behaviorName: {\n value: name,\n writable: true,\n },\n lifecycle: {\n value: lifecycle,\n },\n customMethodNames: {\n value: customMethodNames,\n },\n };\n\n // Expose the definition properties as 'this[methodName]'\n const defKeys = Object.keys(def);\n defKeys.forEach(key => {\n customMethodNames.push(key);\n customProperties[key] = {\n value: def[key],\n writable: true,\n };\n });\n\n fn.prototype = Object.create(Behavior.prototype, customProperties);\n return fn;\n};\n\nexport default createBehavior;\n","export function manageBehaviors(loadedBehaviorsModule, dataAttr = 'behavior') {\n const loadedBehaviorNames = Object.keys(loadedBehaviorsModule);\n const loadedBehaviors = {};\n const activeBehaviors = new Map();\n\n function loopBehaviors(node, cb) {\n if (!('querySelectorAll' in node)) {\n // Ignore text or comment nodes\n return;\n }\n const behaviorNodes = [node].concat(\n [].slice.call(node.querySelectorAll(`[data-${dataAttr}]`))\n );\n for (let i = 0; i < behaviorNodes.length; i++) {\n const behaviorNode = behaviorNodes[i];\n const behaviorNames =\n behaviorNode.dataset &&\n behaviorNode.dataset[dataAttr] &&\n behaviorNode.dataset[dataAttr].split(' ');\n if (behaviorNames) {\n behaviorNames.forEach(name => {\n cb(name, behaviorNode);\n });\n }\n }\n }\n\n function destroyBehaviors(node) {\n loopBehaviors(node, (bName, bNode) => {\n const nodeBehaviors = activeBehaviors.get(bNode);\n if (!nodeBehaviors || !nodeBehaviors[bName]) {\n console.warn(`No behavior ${bName} instance on:`, bNode);\n return;\n }\n nodeBehaviors[bName].destroy();\n delete nodeBehaviors[bName];\n });\n }\n\n function createBehaviors(node) {\n loopBehaviors(node, (bName, bNode) => {\n if (!loadedBehaviors[bName]) {\n console.warn(`No loaded behavior called ${bName}`);\n return;\n }\n\n const instance = new loadedBehaviors[bName](bNode);\n instance.init();\n const nodeBehaviors = activeBehaviors.get(bNode) || {};\n nodeBehaviors[bName] = instance;\n activeBehaviors.set(bNode, nodeBehaviors);\n });\n }\n\n function observeBehaviors() {\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (mutation.removedNodes) {\n for (let i = 0; i < mutation.removedNodes.length; i++) {\n const node = mutation.removedNodes[i];\n destroyBehaviors(node);\n }\n }\n });\n\n mutations.forEach(mutation => {\n if (mutation.addedNodes) {\n for (let i = 0; i < mutation.addedNodes.length; i++) {\n const node = mutation.addedNodes[i];\n createBehaviors(node);\n }\n }\n });\n });\n\n observer.observe(document.body, {\n childList: true,\n subtree: true,\n attributes: false,\n characterData: false,\n });\n }\n\n loadedBehaviorNames.forEach(name => {\n loadedBehaviors[name] = loadedBehaviorsModule[name];\n });\n\n createBehaviors(document);\n observeBehaviors();\n}\n\nexport default manageBehaviors;\n","// polyfill NodeList forEach\nif (window.NodeList && !NodeList.prototype.forEach) {\n NodeList.prototype.forEach = Array.prototype.forEach;\n}\n\n// polyfill CustomEvent (IE11 supports it, just not the 'new' constructor)\n(function() {\n if (typeof window.CustomEvent === 'function') {\n return false;\n }\n function CustomEvent(event, params) {\n params = params || { bubbles: false, cancelable: false, detail: null };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n }\n CustomEvent.prototype = window.Event.prototype;\n window.CustomEvent = CustomEvent;\n})();\n\n// polyfill Object.assign\nif (typeof Object.assign != 'function') {\n // Must be writable: true, enumerable: false, configurable: true\n Object.defineProperty(Object, \"assign\", {\n value: function assign(target, varArgs) { // .length of function is 2\n 'use strict';\n if (target == null) { // TypeError if undefined or null\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var to = Object(target);\n\n for (var index = 1; index < arguments.length; index++) {\n var nextSource = arguments[index];\n\n if (nextSource != null) { // Skip over if undefined or null\n for (var nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n },\n writable: true,\n configurable: true\n });\n}\n","'use strict';\n\nvar queryStringHandler = {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/queryStringHandler-toObject\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/queryStringHandler-fromObject\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/queryStringHandler-updateParameter\n\n toObject: function toObject(url) {\n if (typeof url !== 'string') {\n return {};\n }\n\n var qsObj = {};\n var search = url && url.indexOf('?') > -1 ? url.split('?')[1] : location.search;\n search.replace(new RegExp('([^?=&]+)(=([^&]*))?', 'g'), function ($0, $1, $2, $3) {\n qsObj[$1] = $3;\n });\n return qsObj;\n },\n fromObject: function fromObject(obj) {\n var queryString = '';\n var count = 0;\n\n if (Object.getOwnPropertyNames(obj).length > 0) {\n queryString = '?';\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) {\n continue;\n }\n queryString += (count > 0 ? '&' : '') + key + '=' + encodeURIComponent(obj[key]).replace(/[!'()]/g, '').replace(/\\*/g, '%2A').replace(/%2B/ig, '+');\n count++;\n }\n }\n\n return queryString;\n },\n updateParameter: function updateParameter(url, key, value) {\n var re = new RegExp('([?&])' + key + '=.*?(&|#|$)', 'i');\n if (url.match(re)) {\n return url.replace(re, '$1' + key + '=' + value + '$2');\n } else {\n var hash = '';\n if (url.indexOf('#') !== -1) {\n hash = url.replace(/.*#/, '#');\n url = url.replace(/#.*/, '');\n }\n var separator = url.indexOf('?') !== -1 ? '&' : '?';\n return url + separator + key + '=' + value + hash;\n }\n }\n};\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar ajaxRequest = function ajaxRequest(settings) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/ajaxRequest\n\n var options = settings;\n var request = new XMLHttpRequest();\n var requestUrl = options.url;\n\n options.queryString = '';\n if (options.data !== undefined) {\n if (queryStringHandler.fromObject) {\n options.queryString = queryStringHandler.fromObject(options.data);\n } else {\n throw new ReferenceError('Missing: queryStringHandler.fromObject');\n }\n }\n\n if (options.type !== 'POST') {\n requestUrl += requestUrl.indexOf('?') > 0 ? options.queryString.replace('?', '&') : options.queryString;\n }\n\n request.open(options.type, requestUrl, true);\n\n request.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n\n if (options.type === 'POST') {\n request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (options.requestHeaders !== undefined && options.requestHeaders.length > 0) {\n for (var i = 0; i < options.requestHeaders.length; i++) {\n var header = options.requestHeaders[i].header;\n var value = options.requestHeaders[i].value;\n if (header !== undefined && value !== undefined) {\n request.setRequestHeader(header, value);\n }\n }\n }\n\n request.onload = function () {\n if (request.status >= 200 && request.status < 400) {\n\n // Success!\n if (_typeof(options.onSuccess).toLowerCase() === 'function') {\n options.onSuccess.call(this, request.responseText, request.status);\n }\n } else {\n if (_typeof(options.onError).toLowerCase() === 'function') {\n options.onError.call(this, request.responseText, request.status);\n }\n console.log('We reached our target server, but it returned an error: ' + request.statusText);\n }\n };\n\n request.onerror = function () {\n console.log('There was a connection error of some sort');\n if (_typeof(options.onError).toLowerCase() === 'function') {\n options.onError.call(this, request.responseText, request.status);\n }\n };\n\n request.send(options.type === 'POST' ? options.queryString.replace('?', '') : '');\n\n return request;\n};\n\nvar cookieHandler = {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/cookieHandler-create\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/cookieHandler-delete\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/cookieHandler-read\n\n create: function create(name, value, days) {\n var expires = '';\n if (days) {\n var date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = '; expires=' + date.toGMTString();\n }\n document.cookie = name + '=' + value + expires + '; path=/';\n },\n delete: function _delete(name) {\n if (name) {\n this.create(name, '', -1);\n }\n },\n read: function read(name) {\n if (name) {\n var nameEQ = name + '=';\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEQ) === 0) {\n return c.substring(nameEQ.length, c.length);\n }\n }\n return null;\n }\n return null;\n }\n};\n\nvar copyTextToClipboard = function copyTextToClipboard(textToCopy, successMsg) {\n\n // https://code.area17.com/a17/a17-helpers/wikis/copyTextToClipboard\n // http://stackoverflow.com/questions/400212/how-do-i-copy-to-the-clipboard-in-javascript#answer-30810322\n\n // and then\n // https://stackoverflow.com/questions/47879184/document-execcommandcopy-not-working-on-chrome?rq=1&utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa\n // https://stackoverflow.com/questions/400212/how-do-i-copy-to-the-clipboard-in-javascript?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa\n\n if (navigator.clipboard && 'Promise' in window && window.location.protocol == 'https:') {\n navigator.clipboard.writeText(textToCopy).then(function () {\n console.log(successMsg);\n }, function (err) {\n console.error('Could not copy text: ', err);\n });\n } else {\n var textArea = document.createElement('textarea');\n\n textArea.style.position = 'fixed';\n textArea.style.top = 0;\n textArea.style.left = 0;\n textArea.style.width = '2em';\n textArea.style.height = '2em';\n textArea.style.padding = 0;\n textArea.style.border = 'none';\n textArea.style.outline = 'none';\n textArea.style.boxShadow = 'none';\n textArea.style.background = 'transparent';\n\n //textArea.value = textToCopy;\n textArea.textContent = textToCopy;\n document.body.appendChild(textArea);\n\n var selection = document.getSelection();\n var range = document.createRange();\n range.selectNode(textArea);\n selection.removeAllRanges();\n selection.addRange(range);\n\n try {\n var successful = document.execCommand('copy');\n if (successful) {\n window.alert(successMsg || 'Copied to clipboard');\n } else {\n console.log('Could not copy text');\n }\n } catch (err) {\n console.log('Could not copy text');\n }\n\n document.body.removeChild(textArea);\n }\n};\n\nvar debounce = function debounce(func, wait, immediate) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/debounce\n var timeout;\n return function () {\n var context = this;\n var args = arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n};\n\nvar escapeString = function escapeString(str) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/escapeString\n\n if (typeof str === 'string') {\n var div = document.createElement('div');\n var text = document.createTextNode(str.replace(/<[^>]*>?/g, ''));\n div.appendChild(text);\n return encodeURIComponent(div.textContent);\n } else {\n return '';\n }\n};\n\nvar extend = function extend() {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/extend\n\n var obj = {};\n var i = 0;\n var argumentsLength = arguments.length;\n var key;\n\n for (; i < argumentsLength; i++) {\n for (key in arguments[i]) {\n if (arguments[i].hasOwnProperty(key)) {\n obj[key] = arguments[i][key];\n }\n }\n }\n\n return obj;\n};\n\nvar focusDisplayHandler = function focusDisplayHandler() {\n\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/focusDisplayHandler\n\n var attr = 'data-focus-method';\n var touch = 'touch';\n var mouse = 'mouse';\n var key = 'key';\n\n var focusMethod = false;\n var lastFocusMethod;\n\n function _onKeyDown() {\n focusMethod = key;\n }\n\n function _onMouseDown() {\n if (focusMethod === touch) {\n return;\n }\n focusMethod = mouse;\n }\n\n function _onTouchStart() {\n focusMethod = touch;\n }\n\n function _onFocus(event) {\n if (!focusMethod) {\n focusMethod = lastFocusMethod;\n }\n if (event.target && typeof event.target.setAttribute === 'function') {\n event.target.setAttribute(attr, focusMethod);\n lastFocusMethod = focusMethod;\n focusMethod = false;\n }\n }\n\n function _onBlur(event) {\n if (event.target && typeof event.target.removeAttribute === 'function') {\n event.target.removeAttribute(attr);\n }\n }\n\n function _onWindowBlur() {\n focusMethod = false;\n }\n\n document.addEventListener('keydown', _onKeyDown, true);\n document.addEventListener('mousedown', _onMouseDown, true);\n document.addEventListener('touchstart', _onTouchStart, true);\n document.addEventListener('focus', _onFocus, true);\n document.addEventListener('blur', _onBlur, true);\n window.addEventListener('blur', _onWindowBlur);\n};\n\nvar setFocusOnTarget = function setFocusOnTarget(node) {\n //https://code.area17.com/a17/a17-helpers/wikis/setFocusOnTarget\n node.focus();\n if (node !== document.activeElement) {\n node.setAttribute('tabindex', '-1');\n node.focus();\n }\n};\n\nvar focusTrap = function focusTrap() {\n\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/focusTrap\n\n var element;\n\n function _focus() {\n if (element) {\n if (document.activeElement !== element && !element.contains(document.activeElement)) {\n setFocusOnTarget(element);\n }\n } else {\n document.removeEventListener('focus', _focus, true);\n }\n }\n\n function _trap(event) {\n try {\n document.removeEventListener('focus', _focus, true);\n } catch (err) {}\n\n if (!event && !event.data.element) {\n return;\n }\n\n element = event.data.element;\n document.addEventListener('focus', _focus, true);\n }\n\n function _untrap() {\n document.removeEventListener('focus', _focus, true);\n element = null;\n }\n\n document.addEventListener('focus:trap', _trap, false);\n document.addEventListener('focus:untrap', _untrap, false);\n};\n\nvar triggerCustomEvent = function triggerCustomEvent(el, type, data) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/triggerCustomEvent\n\n var event = document.createEvent('HTMLEvents');\n event.initEvent(type, true, true);\n event.data = data || {};\n event.eventName = type;\n el.dispatchEvent(event);\n};\n\nvar commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar fontfaceonload = createCommonjsModule(function (module, exports) {\n(function (root, factory) {\n\t{\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t}\n}(commonjsGlobal, function () {\n\n\tvar TEST_STRING = 'AxmTYklsjo190QW',\n\t\tSANS_SERIF_FONTS = 'sans-serif',\n\t\tSERIF_FONTS = 'serif',\n\n\t\tdefaultOptions = {\n\t\t\ttolerance: 2, // px\n\t\t\tdelay: 100,\n\t\t\tglyphs: '',\n\t\t\tsuccess: function() {},\n\t\t\terror: function() {},\n\t\t\ttimeout: 5000,\n\t\t\tweight: '400', // normal\n\t\t\tstyle: 'normal',\n\t\t\twindow: window\n\t\t},\n\n\t\t// See https://github.com/typekit/webfontloader/blob/master/src/core/fontruler.js#L41\n\t\tstyle = [\n\t\t\t'display:block',\n\t\t\t'position:absolute',\n\t\t\t'top:-999px',\n\t\t\t'left:-999px',\n\t\t\t'font-size:48px',\n\t\t\t'width:auto',\n\t\t\t'height:auto',\n\t\t\t'line-height:normal',\n\t\t\t'margin:0',\n\t\t\t'padding:0',\n\t\t\t'font-variant:normal',\n\t\t\t'white-space:nowrap'\n\t\t],\n\t\thtml = '
' + TEST_STRING + '
';\n\n\tvar FontFaceOnloadInstance = function() {\n\t\tthis.fontFamily = '';\n\t\tthis.appended = false;\n\t\tthis.serif = undefined;\n\t\tthis.sansSerif = undefined;\n\t\tthis.parent = undefined;\n\t\tthis.options = {};\n\t};\n\n\tFontFaceOnloadInstance.prototype.getMeasurements = function () {\n\t\treturn {\n\t\t\tsansSerif: {\n\t\t\t\twidth: this.sansSerif.offsetWidth,\n\t\t\t\theight: this.sansSerif.offsetHeight\n\t\t\t},\n\t\t\tserif: {\n\t\t\t\twidth: this.serif.offsetWidth,\n\t\t\t\theight: this.serif.offsetHeight\n\t\t\t}\n\t\t};\n\t};\n\n\tFontFaceOnloadInstance.prototype.load = function () {\n\t\tvar startTime = new Date(),\n\t\t\tthat = this,\n\t\t\tserif = that.serif,\n\t\t\tsansSerif = that.sansSerif,\n\t\t\tparent = that.parent,\n\t\t\tappended = that.appended,\n\t\t\tdimensions,\n\t\t\toptions = that.options,\n\t\t\tref = options.reference;\n\n\t\tfunction getStyle( family ) {\n\t\t\treturn style\n\t\t\t\t.concat( [ 'font-weight:' + options.weight, 'font-style:' + options.style ] )\n\t\t\t\t.concat( \"font-family:\" + family )\n\t\t\t\t.join( \";\" );\n\t\t}\n\n\t\tvar sansSerifHtml = html.replace( /\\%s/, getStyle( SANS_SERIF_FONTS ) ),\n\t\t\tserifHtml = html.replace( /\\%s/, getStyle( SERIF_FONTS ) );\n\n\t\tif( !parent ) {\n\t\t\tparent = that.parent = options.window.document.createElement( \"div\" );\n\t\t}\n\n\t\tparent.innerHTML = sansSerifHtml + serifHtml;\n\t\tsansSerif = that.sansSerif = parent.firstChild;\n\t\tserif = that.serif = sansSerif.nextSibling;\n\n\t\tif( options.glyphs ) {\n\t\t\tsansSerif.innerHTML += options.glyphs;\n\t\t\tserif.innerHTML += options.glyphs;\n\t\t}\n\n\t\tfunction hasNewDimensions( dims, el, tolerance ) {\n\t\t\treturn Math.abs( dims.width - el.offsetWidth ) > tolerance ||\n\t\t\t\tMath.abs( dims.height - el.offsetHeight ) > tolerance;\n\t\t}\n\n\t\tfunction isTimeout() {\n\t\t\treturn ( new Date() ).getTime() - startTime.getTime() > options.timeout;\n\t\t}\n\n\t\t(function checkDimensions() {\n\t\t\tif( !ref ) {\n\t\t\t\tref = options.window.document.body;\n\t\t\t}\n\t\t\tif( !appended && ref ) {\n\t\t\t\tref.appendChild( parent );\n\t\t\t\tappended = that.appended = true;\n\n\t\t\t\tdimensions = that.getMeasurements();\n\n\t\t\t\t// Make sure we set the new font-family after we take our initial dimensions:\n\t\t\t\t// handles the case where FontFaceOnload is called after the font has already\n\t\t\t\t// loaded.\n\t\t\t\tsansSerif.style.fontFamily = that.fontFamily + ', ' + SANS_SERIF_FONTS;\n\t\t\t\tserif.style.fontFamily = that.fontFamily + ', ' + SERIF_FONTS;\n\t\t\t}\n\n\t\t\tif( appended && dimensions &&\n\t\t\t\t( hasNewDimensions( dimensions.sansSerif, sansSerif, options.tolerance ) ||\n\t\t\t\thasNewDimensions( dimensions.serif, serif, options.tolerance ) ) ) {\n\n\t\t\t\toptions.success();\n\t\t\t} else if( isTimeout() ) {\n\t\t\t\toptions.error();\n\t\t\t} else {\n\t\t\t\tif( !appended && \"requestAnimationFrame\" in options.window ) {\n\t\t\t\t\toptions.window.requestAnimationFrame( checkDimensions );\n\t\t\t\t} else {\n\t\t\t\t\toptions.window.setTimeout( checkDimensions, options.delay );\n\t\t\t\t}\n\t\t\t}\n\t\t})();\n\t}; // end load()\n\n\tFontFaceOnloadInstance.prototype.cleanFamilyName = function( family ) {\n\t\treturn family.replace( /[\\'\\\"]/g, '' ).toLowerCase();\n\t};\n\n\tFontFaceOnloadInstance.prototype.cleanWeight = function( weight ) {\n\t\t// lighter and bolder not supported\n\t\tvar weightLookup = {\n\t\t\tnormal: '400',\n\t\t\tbold: '700'\n\t\t};\n\n\t\treturn '' + (weightLookup[ weight ] || weight);\n\t};\n\n\tFontFaceOnloadInstance.prototype.checkFontFaces = function( timeout ) {\n\t\tvar _t = this;\n\t\t_t.options.window.document.fonts.forEach(function( font ) {\n\t\t\tif( _t.cleanFamilyName( font.family ) === _t.cleanFamilyName( _t.fontFamily ) &&\n\t\t\t\t_t.cleanWeight( font.weight ) === _t.cleanWeight( _t.options.weight ) &&\n\t\t\t\tfont.style === _t.options.style ) {\n\t\t\t\tfont.load().then(function() {\n\t\t\t\t\t_t.options.success( font );\n\t\t\t\t\t_t.options.window.clearTimeout( timeout );\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t};\n\n\tFontFaceOnloadInstance.prototype.init = function( fontFamily, options ) {\n\t\tvar timeout;\n\n\t\tfor( var j in defaultOptions ) {\n\t\t\tif( !options.hasOwnProperty( j ) ) {\n\t\t\t\toptions[ j ] = defaultOptions[ j ];\n\t\t\t}\n\t\t}\n\n\t\tthis.options = options;\n\t\tthis.fontFamily = fontFamily;\n\n\t\t// For some reason this was failing on afontgarde + icon fonts.\n\t\tif( !options.glyphs && \"fonts\" in options.window.document ) {\n\t\t\tif( options.timeout ) {\n\t\t\t\ttimeout = options.window.setTimeout(function() {\n\t\t\t\t\toptions.error();\n\t\t\t\t}, options.timeout );\n\t\t\t}\n\n\t\t\tthis.checkFontFaces( timeout );\n\t\t} else {\n\t\t\tthis.load();\n\t\t}\n\t};\n\n\tvar FontFaceOnload = function( fontFamily, options ) {\n\t\tvar instance = new FontFaceOnloadInstance();\n\t\tinstance.init(fontFamily, options);\n\n\t\treturn instance;\n\t};\n\n\treturn FontFaceOnload;\n}));\n});\n\nvar fontLoadObserver = function fontLoadObserver(fonts) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/fontLoadObserver\n\n if ((typeof fonts === 'undefined' ? 'undefined' : _typeof(fonts)).toLowerCase() !== 'object') {\n return false;\n }\n\n var counter = 0;\n var total = fonts.variants.length;\n\n // cookie name\n var cookieName = 'A17_fonts_cookie_' + fonts.name;\n\n // check we have cookie of fonts already loaded or not\n var cookie = cookieHandler.read(cookieName) || '';\n\n // when a fonts is determined to be loaded\n function loaded() {\n counter++;\n // if we reached the total\n if (counter >= total) {\n document.documentElement.className += ' s-' + fonts.name + '-loaded';\n cookieHandler.create(cookieName, total, 1);\n triggerCustomEvent(document, 'content:populated');\n }\n }\n\n // if cookie, show fonts (not first page load)\n if (cookie && cookie === total.toString()) {\n counter = cookie;\n loaded();\n } else {\n for (var i = 0; i < total; i++) {\n fontfaceonload(fonts.variants[i].name, {\n success: loaded,\n error: loaded,\n weight: fonts.variants[i].weight || '',\n timeout: 3000\n });\n }\n }\n};\n\nvar forEach = function forEach(array, callback, scope) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/forEach\n for (var i = 0; i < array.length; i++) {\n callback.call(scope, i, array[i]);\n }\n};\n\nvar getCurrentMediaQuery = function getCurrentMediaQuery() {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/getCurrentMediaQuery\n\n function parse(str) {\n return str.replace(/'/gi, '').replace(/\"/gi, '');\n }\n\n if (window.opera) {\n return parse(window.getComputedStyle(document.body, ':after').getPropertyValue('content')) || 'large';\n } else if (window.getComputedStyle) {\n return parse(window.getComputedStyle(document.head, null).getPropertyValue('font-family')) || 'large';\n } else {\n return 'large';\n }\n};\n\nvar getIndex = function getIndex(node, nodeList) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/getIndex\n\n var nodes = nodeList || node.parentNode.childNodes;\n var nodesLength = nodes.length;\n var n = 0;\n\n for (var i = 0; i < nodesLength; i++) {\n if (nodes[i] === node) {\n return n;\n }\n if (nodes[i].nodeType === 1) {\n n++;\n }\n }\n\n return -1;\n};\n\nvar getMetaContentByName = function getMetaContentByName(name) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/getMetaContentByName\n\n return document.querySelector('meta[name=\\'' + name + '\\']').getAttribute('content');\n};\n\nvar getOffset = function getOffset(node) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/getOffset\n\n if (node) {\n var rect = node.getBoundingClientRect();\n return {\n top: rect.top + (document.documentElement.scrollTop || document.body.scrollTop),\n left: rect.left + (document.documentElement.scrollLeft || document.body.scrollLeft),\n bottom: rect.bottom + (document.documentElement.scrollTop || document.body.scrollTop),\n right: rect.right + (document.documentElement.scrollLeft || document.body.scrollLeft),\n width: rect.width,\n height: rect.height\n };\n } else {\n return null;\n }\n};\n\nvar getUrlParameterByName = function getUrlParameterByName(name, url) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/getUrlParameterByName\n\n var qsObj = queryStringHandler.toObject(url || undefined);\n return qsObj[name] !== undefined ? qsObj[name] : undefined;\n};\n\nvar isBreakpoint = function isBreakpoint(bp) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/isBreakpoint\n\n // bail if no breakpoint is passed\n if (!bp) {\n console.error('You need to pass a breakpoint name!');\n return false;\n }\n\n // we only want to look for a specific modifier and make sure it is at the end of the string\n var pattern = new RegExp('\\\\+$|\\\\-$');\n\n // bps must be in order from smallest to largest\n var bps = ['xsmall', 'small', 'medium', 'large', 'xlarge', 'xxlarge'];\n\n // override the breakpoints if the option is set on the global A17 object\n if (window.A17 && window.A17.breakpoints) {\n if (Array.isArray(window.A17.breakpoints)) {\n bps = window.A17.breakpoints;\n } else {\n console.warn('A17.breakpoints should be an array. Using defaults.');\n }\n }\n\n // store current breakpoint in use\n var currentBp = getCurrentMediaQuery();\n\n // store the index of the current breakpoint\n var currentBpIndex = bps.indexOf(currentBp);\n\n // check to see if bp has a + or - modifier\n var hasModifier = pattern.exec(bp);\n\n // store modifier value\n var modifier = hasModifier ? hasModifier[0] : false;\n\n // store the trimmed breakpoint name if a modifier exists, if not, store the full queried breakpoint name\n var bpName = hasModifier ? bp.slice(0, -1) : bp;\n\n // store the index of the queried breakpoint\n var bpIndex = bps.indexOf(bpName);\n\n // let people know if the breakpoint name is unrecognized\n if (bpIndex < 0) {\n console.warn('Unrecognized breakpoint. Supported breakpoints are: ' + bps.join(', '));\n return false;\n }\n\n // compare the modifier with the index of the current breakpoint in the bps array with the index of the queried breakpoint.\n // if no modifier is set, compare the queried breakpoint name with the current breakpoint name\n if (modifier === '+' && currentBpIndex >= bpIndex || modifier === '-' && currentBpIndex <= bpIndex || !modifier && bp === currentBp) {\n return true;\n }\n\n // the current breakpoint isn’t the one you’re looking for\n return false;\n};\n\nvar jsonpRequest = function jsonpRequest(settings) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/jsonpRequest\n\n var options = settings;\n var script = document.createElement('script');\n\n // sort out the data object\n options.data = options.data || {};\n options.data.callback = options.callback || 'callback';\n\n // make a query string from the data objects\n options.queryString = '';\n if (options.data !== undefined) {\n if (queryStringHandler.fromObject) {\n options.queryString = queryStringHandler.fromObject(options.data);\n } else {\n console.log('Missing: queryStringHandler.fromObject');\n }\n }\n\n // give the script some attributes\n script.type = 'text/javascript';\n script.src = options.url + options.queryString;\n\n // look for timeouts\n var timeout = setTimeout(function () {\n // wipe callback function\n window[options.data.callback] = function () {};\n\n // run error function if specified\n if (_typeof(options.onError).toLowerCase() === 'function') {\n options.onError.call(this);\n }\n }, (options.timeout || 5) * 1000);\n\n // set up the callback\n window[options.data.callback] = function (data) {\n // no need to clear timeout\n clearTimeout(timeout);\n\n // run success function if specified\n if (_typeof(options.onSuccess).toLowerCase() === 'function') {\n options.onSuccess.call(this, data);\n }\n };\n\n // append the script (or go go go!)\n document.getElementsByTagName('head')[0].appendChild(script);\n};\n\nvar keyCodes = {\n tab: 9,\n enter: 13,\n esc: 27,\n space: 32,\n left: 37,\n up: 38,\n right: 39,\n down: 40\n};\n\n// A A17-helperised version of: https://github.com/area17/lazyload\n// This version: v2.1.1 - 2018-04-01\n// Doc: https://code.area17.com/a17/a17-helpers/wikis/lazyload\n\nvar lazyLoad = function lazyLoad(opts) {\n var options = {\n pageUpdatedEventName: 'page:updated', // how your app tells the rest of the app an update happened\n elements: 'img[data-src], img[data-srcset], source[data-srcset], iframe[data-src], video[data-src], [data-lazyload]', // maybe you just want images?\n rootMargin: '0px', // IntersectionObserver option\n threshold: 0, // IntersectionObserver option\n maxFrameCount: 10 // 60fps / 10 = 6 times a second\n };\n\n // set up\n var frameLoop;\n var frameCount;\n var els = [];\n var elsLength;\n var observer;\n var checkType;\n\n /**\n * Converts HTML collections to an array\n * @private\n * @param {Array} array to convert\n * a loop will work in more browsers than the slice method\n */\n function _htmlCollectionToArray(collection) {\n var a = [];\n var i = 0;\n for (a = [], i = collection.length; i;) {\n a[--i] = collection[i];\n }\n return a;\n }\n\n /**\n * Checks if an element is in the viewport\n * @private\n * @param {Node} element to check.\n * @returns {Boolean} true/false.\n */\n function _elInViewport(el) {\n el = el.tagName === 'SOURCE' ? el.parentNode : el;\n var rect = el.getBoundingClientRect();\n return rect.bottom > 0 && rect.right > 0 && rect.left < (window.innerWidth || document.documentElement.clientWidth) && rect.top < (window.innerHeight || document.documentElement.clientHeight);\n }\n\n /**\n * Removes data- attributes\n * @private\n * @param {Node} element to update\n */\n function _removeDataAttrs(el) {\n el.removeAttribute('data-src');\n el.removeAttribute('data-srcset');\n el.removeAttribute('data-lazyload');\n }\n\n /**\n * On loaded, removes event listener, removes data- attributes\n * @private\n */\n function _loaded() {\n this.removeEventListener('load', _loaded);\n _removeDataAttrs(this);\n }\n\n /**\n * Update an element\n * @private\n * @param {Node} element to update\n */\n function _updateEl(el) {\n var srcset = el.getAttribute('data-srcset');\n var src = el.getAttribute('data-src');\n var dlazyload = el.getAttribute('data-lazyload') !== null;\n //\n if (srcset) {\n // if source set, update and try picturefill\n el.setAttribute('srcset', srcset);\n if (window.picturefill) {\n window.picturefill({\n elements: [el]\n });\n }\n }\n if (src) {\n // if source set, update\n el.src = src;\n }\n if (dlazyload) {\n el.setAttribute('data-lazyloaded', '');\n el.removeEventListener('load', _loaded);\n _removeDataAttrs(el);\n }\n }\n\n /**\n * The callback from the IntersectionObserver\n * @private\n * @entries {Nodes} elements being observed by the IntersectionObserver\n */\n function _intersection(entries) {\n // Disconnect if we've already loaded all of the images\n if (elsLength === 0) {\n observer.disconnect();\n }\n // Loop through the entries\n for (var i = 0; i < entries.length; i++) {\n var entry = entries[i];\n // Are we in viewport?\n if (entry.intersectionRatio > 0) {\n elsLength--;\n // Stop watching this and load the image\n observer.unobserve(entry.target);\n entry.target.addEventListener('load', _loaded, false);\n _updateEl(entry.target);\n }\n }\n }\n\n /**\n * Loops images, checks if in viewport, updates src/src-set\n * @private\n */\n function _setSrcs() {\n var i;\n // browser capability check\n if (checkType === 'really-old') {\n elsLength = els.length;\n for (i = 0; i < elsLength; i++) {\n if (els[i]) {\n _updateEl(els[i]);\n _removeDataAttrs(els[i]);\n }\n }\n els = [];\n } else if (checkType === 'old') {\n // debounce checking\n if (frameCount === options.maxFrameCount) {\n // update cache of this for the loop\n elsLength = els.length;\n for (i = 0; i < elsLength; i++) {\n // check if this array item exists, hasn't been loaded already and is in the viewport\n if (els[i] && els[i].lazyloaded === undefined && _elInViewport(els[i])) {\n // cache this array item\n var thisEl = els[i];\n // set this array item to be undefined to be cleaned up later\n els[i] = undefined;\n // give this element a property to stop us running twice on one thing\n thisEl.lazyloaded = true;\n // add an event listener to remove data- attributes on load\n thisEl.addEventListener('load', _loaded, false);\n // update\n _updateEl(thisEl);\n }\n }\n // clean up array\n for (i = 0; i < elsLength; i++) {\n if (els[i] === undefined) {\n els.splice(i, 1);\n }\n }\n // reset var to decide if to continue running\n elsLength = els.length;\n // will shortly be set to 0 to start counting\n frameCount = -1;\n }\n\n // run again? kill if not\n if (elsLength > 0) {\n frameCount++;\n frameLoop = window.requestAnimationFrame(_setSrcs);\n }\n } else if (checkType === 'new') {\n observer = new IntersectionObserver(_intersection, {\n rootMargin: options.rootMargin,\n threshold: options.threshold\n });\n elsLength = els.length;\n for (i = 0; i < elsLength; i++) {\n if (els[i] && els[i].lazyloaded === undefined) {\n observer.observe(els[i]);\n }\n }\n }\n }\n\n /**\n * Gets the show on the road\n * @private\n */\n function _init() {\n // kill any old loops if there are any\n if (checkType === 'old') {\n try {\n cancelAnimationFrame(frameLoop);\n } catch (err) {}\n } else if (checkType === 'new') {\n try {\n observer.disconnect();\n } catch (err) {}\n }\n // grab elements to lazy load\n els = _htmlCollectionToArray(document.querySelectorAll(options.elements));\n elsLength = els.length;\n frameCount = options.maxFrameCount;\n // go go go\n _setSrcs();\n }\n\n /**\n * GO GO GO\n * @public\n * @param {object} options (see readme)\n */\n function _lazyLoad() {\n for (var item in opts) {\n if (opts.hasOwnProperty(item)) {\n options[item] = opts[item];\n }\n }\n if (!('addEventListener' in window) || !window.requestAnimationFrame || _typeof(document.body.getBoundingClientRect) === undefined) {\n checkType = 'really-old';\n } else if ('IntersectionObserver' in window) {\n checkType = 'new';\n } else {\n checkType = 'old';\n }\n _init();\n if (options.pageUpdatedEventName) {\n document.addEventListener(options.pageUpdatedEventName, _init, true);\n }\n }\n\n _lazyLoad();\n};\n\n// import * as Behaviors from '../behaviors';\n\nvar manageBehaviors = function manageBehaviors(Behaviors, options) {\n\n var activeBehaviors = {};\n\n /*\n default init listens for event 'page:updated':\n manageBehaviors();\n init for pjax:\n manageBehaviors({pageUpdatedEventName:'pjax:end'});\n init for spf:\n manageBehaviors({pageUpdatedEventName:'spfdone'});\n */\n\n var idCounter = 0;\n var pageUpdatedEventName = options && options.pageUpdatedEventName ? options.pageUpdatedEventName : 'page:updated';\n\n function searchDomAndInitBehaviors(context) {\n if (context === undefined) {\n context = document;\n }\n var all = context.querySelectorAll('[data-behavior]');\n var i = -1;\n while (all[++i]) {\n var currentElement = all[i];\n\n // check to see if this element has had its behaviors already initialized by looking for _A17BehaviorsActive\n if (!currentElement._A17BehaviorsActive) {\n //console.log('initializing behaviors for:\\n', currentElement);\n var behaviors = currentElement.getAttribute('data-behavior');\n var splittedBehaviors = behaviors.split(' ');\n for (var j = 0, k = splittedBehaviors.length; j < k; j++) {\n var ThisBehavior = Behaviors[splittedBehaviors[j]];\n if (typeof ThisBehavior !== 'undefined') {\n try {\n // mark the element as having its behaviors initialized\n currentElement._A17BehaviorsActive = true;\n\n // add this instance to the activeBehaviors object so it can be interrogated if the page is updated later\n activeBehaviors[idCounter] = {\n el: currentElement,\n behavior: new ThisBehavior(currentElement),\n name: splittedBehaviors[j]\n };\n\n try {\n activeBehaviors[idCounter].behavior.init();\n } catch (err) {\n console.warn('failed to init behavior: ', activeBehaviors[idCounter].name, '\\n', err, activeBehaviors[idCounter]);\n }\n\n idCounter++;\n } catch (err) {\n console.error(err, currentElement, ThisBehavior);\n }\n }\n }\n }\n }\n }\n\n function pageUpdated() {\n // first check if anything was removed and clean up\n for (var activeBehaviorObj in activeBehaviors) {\n if (activeBehaviors.hasOwnProperty(activeBehaviorObj)) {\n var thisBehaviorObj = activeBehaviors[activeBehaviorObj];\n\n // check if the element is still there\n if (!document.body.contains(thisBehaviorObj.el)) {\n //console.log('element no longer exists:\\n', thisBehaviorObj.name, thisBehaviorObj);\n\n // trigger its destroy if its gone\n try {\n thisBehaviorObj.behavior.destroy();\n delete activeBehaviors[activeBehaviorObj];\n } catch (err) {\n //console.log('failed to destroy behavior: ', thisBehaviorObj.name, '\\n', err, thisBehaviorObj);\n }\n }\n }\n }\n\n // now look for new behaviors!\n searchDomAndInitBehaviors();\n }\n\n searchDomAndInitBehaviors();\n document.addEventListener(pageUpdatedEventName, pageUpdated);\n document.addEventListener('content:updated', function () {\n searchDomAndInitBehaviors(event.data.el ? event.data.el : '');\n });\n};\n\nvar messages = function messages() {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/messages\n\n var target = document.querySelectorAll('[data-message-target]');\n\n if (target.length > 0) {\n target = target[0];\n } else {\n return;\n }\n\n var messageVisible = false;\n var messageTimer;\n var messages = [];\n var loadMessage = target.getAttribute('data-message') || false;\n var loadMessageType = target.getAttribute('data-message-type') || '';\n\n function createMessage(message, type) {\n var div = document.createElement('div');\n var span = document.createElement('span');\n span.textContent = message;\n div.appendChild(span);\n div.className = type !== '' ? 'message message--' + type + ' s-hide' : 'message s-hide';\n return div;\n }\n\n function hideMessage(div) {\n div.className += ' s-hide';\n setTimeout(function () {\n div.parentNode.removeChild(div);\n }, 250);\n }\n\n function showMessage(div, time) {\n messageVisible = true;\n target.appendChild(div);\n div.className = div.className.replace(new RegExp('(^|\\\\b)' + 's-hide'.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n messageTimer = setTimeout(function () {\n hideMessage(div);\n messageVisible = false;\n messages = [];\n }, time || 3000);\n }\n\n function newMessage(data) {\n messages.push(createMessage(data.data.message, data.data.type || ''));\n if (!messageVisible) {\n showMessage(messages[messages.length - 1], data.data.time || false);\n } else {\n clearTimeout(messageTimer);\n hideMessage(messages[messages.length - 2]);\n showMessage(messages[messages.length - 1], data.data.time || false);\n }\n }\n\n document.addEventListener('message', newMessage, false);\n\n if (loadMessage && loadMessage.length > 0) {\n var loadMessageData = {\n data: {\n message: loadMessage,\n time: 5000,\n type: loadMessageType\n }\n };\n newMessage(loadMessageData);\n }\n};\n\nvar objectifyForm = function objectifyForm(form) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/objectifyForm\n\n var field;\n var obj = {};\n\n if ((typeof form === 'undefined' ? 'undefined' : _typeof(form)) === 'object' && form.nodeName === 'FORM') {\n var len = form.elements.length;\n for (var i = 0; i < len; i++) {\n field = form.elements[i];\n if (field.name && !field.disabled && field.type !== 'file' && field.type !== 'reset' && field.type !== 'submit' && field.type !== 'button') {\n if (field.type === 'select-multiple') {\n for (var j = form.elements[i].options.length - 1; j >= 0; j--) {\n if (field.options[j].selected) {\n obj[field.name] = field.options[j].value;\n }\n }\n } else if (field.type !== 'checkbox' && field.type !== 'radio' || field.checked) {\n obj[field.name] = field.value;\n }\n }\n }\n }\n return obj;\n};\n\nvar oritentationChangeFix = function oritentationChangeFix() {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/oritentationChangeFix\n\n if (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i)) {\n var viewportmeta = document.querySelector('meta[name=\"viewport\"]');\n if (viewportmeta) {\n viewportmeta.content = 'width=device-width, minimum-scale=1.0, maximum-scale=1.0, initial-scale=1.0';\n document.body.addEventListener('gesturestart', function () {\n viewportmeta.content = 'width=device-width, minimum-scale=0.25, maximum-scale=1.6';\n }, false);\n }\n }\n};\n\nvar purgeProperties = function purgeProperties(obj) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/purgeProperties\n for (var prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n delete obj[prop];\n }\n }\n};\n\nvar resized = function resized() {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/resized\n\n var resizeTimer;\n var mediaQuery = getCurrentMediaQuery();\n\n window.addEventListener('resize', function () {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(function () {\n // check media query\n var newMediaQuery = getCurrentMediaQuery();\n\n // tell everything resized happened\n triggerCustomEvent(document, 'resized');\n\n // if media query changed, tell everything\n if (newMediaQuery !== mediaQuery) {\n mediaQuery = newMediaQuery;\n if (window.A17) {\n window.A17.currentMediaQuery = newMediaQuery;\n }\n triggerCustomEvent(document, 'mediaQueryUpdated');\n }\n }, 250);\n });\n};\n\nvar scrollToY = function scrollToY(options) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/scrollToY\n\n var settings = {\n el: document,\n offset: 0,\n duration: 250,\n easing: 'linear'\n };\n var start = Date.now();\n var from = 0;\n var isDocument = false;\n var easingEquations = {\n\n // Easing functions taken from: https://gist.github.com/gre/1650294\n // -\n // no easing, no acceleration\n linear: function linear(t) {\n return t;\n },\n\n // accelerating from zero velocity\n easeIn: function easeIn(t) {\n return t * t * t;\n },\n\n // decelerating to zero velocity\n easeOut: function easeOut(t) {\n return --t * t * t + 1;\n },\n\n // acceleration until halfway, then deceleration\n easeInOut: function easeInOut(t) {\n return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;\n }\n };\n var useRequestAnimationFrame = window.requestAnimationFrame;\n var scrollInterval;\n\n for (var def in options) {\n if (typeof options[def] !== 'undefined') {\n settings[def] = options[def];\n }\n }\n\n if (settings.el === document) {\n isDocument = true;\n settings.el = document.documentElement.scrollTop ? document.documentElement : document.body;\n }\n\n from = settings.el.scrollTop;\n\n if (from === settings.offset) {\n if (_typeof(settings.onComplete).toLowerCase() === 'function') {\n settings.onComplete.call(this);\n }\n\n // Prevent scrolling to the offset point if already there\n return;\n }\n\n function min(a, b) {\n return a < b ? a : b;\n }\n\n function cancelInterval() {\n if (useRequestAnimationFrame) {\n try {\n cancelAnimationFrame(scrollInterval);\n } catch (err) {\n // continue execution in case cancelAnimationFrame fails\n }\n } else {\n clearTimeout(scrollInterval);\n }\n }\n\n function scroll() {\n if (isDocument && from === 0) {\n // eugh Firefox! (https://miketaylr.com/posts/2014/11/document-body-scrollTop.html)\n document.documentElement.scrollTop = 1;\n document.body.scrollTop = 1;\n from = 1;\n settings.el = document.documentElement.scrollTop ? document.documentElement : document.body;\n requestAnimationFrame(scroll);\n } else {\n var currentTime = Date.now();\n var time = min(1, (currentTime - start) / settings.duration);\n var easedT = easingEquations[settings.easing](time);\n\n settings.el.scrollTop = easedT * (settings.offset - from) + from;\n\n if (time < 1) {\n doScroll();\n } else {\n cancelInterval();\n if (_typeof(settings.onComplete).toLowerCase() === 'function') {\n settings.onComplete.call(this);\n }\n }\n }\n }\n\n function doScroll() {\n if (useRequestAnimationFrame) {\n scrollInterval = requestAnimationFrame(scroll);\n } else {\n scrollInterval = setTimeout(function () {\n scroll();\n }, 1000 / 60);\n }\n }\n\n doScroll();\n};\n\nvar sendEventToSegmentio = function sendEventToSegmentio() {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/sentEventToSegmentio\n\n var analyticsReady = false;\n var tempStore = [];\n\n function pushAnalytics(data) {\n if (Object.getOwnPropertyNames(data).length > 0) {\n switch (data.type.toLowerCase()) {\n case 'track':\n analytics.track(data.name, data.properties || {});\n break;\n case 'page':\n analytics.page(data.category || '', data.name || '', data.properties || {});\n break;\n case 'identify':\n analytics.identify(data.userID || '', data.properties || {});\n break;\n }\n }\n }\n\n function pushOrStore(data) {\n if (analyticsReady) {\n pushAnalytics(data);\n } else {\n tempStore.push(data);\n }\n }\n\n function pushStored() {\n tempStore.forEach(function (obj, i) {\n pushAnalytics(obj);\n tempStore.splice(i, 1);\n });\n }\n\n function identify() {\n var userInfo = document.querySelector('meta[name=\\'' + name + '\\']').getAttribute('content');\n if (userInfo) {\n userInfo = userInfo.split(',');\n var identifyProps = {};\n userInfo.forEach(function (item) {\n var pair = item.split(':');\n identifyProps[pair[0]] = pair[1];\n });\n pushOrStore({\n type: 'identify',\n userID: identifyProps.id || '',\n properties: identifyProps\n });\n }\n }\n\n function init() {\n if ((typeof analytics === 'undefined' ? 'undefined' : _typeof(analytics)) !== undefined) {\n analytics.ready(function () {\n analytics.debug(false);\n analyticsReady = true;\n identify();\n pushStored();\n });\n } else {\n setTimeout(init, 1000);\n }\n }\n\n document.addEventListener('analytics', function (event) {\n pushOrStore(event.data);\n });\n\n document.addEventListener('analytics_identify', identify);\n\n init();\n};\n\nvar a17helpers = {\n ajaxRequest: ajaxRequest,\n cookieHandler: cookieHandler,\n copyTextToClipboard: copyTextToClipboard,\n debounce: debounce,\n escapeString: escapeString,\n extend: extend,\n focusDisplayHandler: focusDisplayHandler,\n focusTrap: focusTrap,\n fontLoadObserver: fontLoadObserver,\n forEach: forEach,\n getCurrentMediaQuery: getCurrentMediaQuery,\n getIndex: getIndex,\n getMetaContentByName: getMetaContentByName,\n getOffset: getOffset,\n getUrlParameterByName: getUrlParameterByName,\n isBreakpoint: isBreakpoint,\n jsonpRequest: jsonpRequest,\n keycodes: keyCodes,\n lazyLoad: lazyLoad,\n manageBehaviors: manageBehaviors,\n messages: messages,\n objectifyForm: objectifyForm,\n oritentationChangeFix: oritentationChangeFix,\n purgeProperties: purgeProperties,\n queryStringHandler: queryStringHandler,\n resized: resized,\n scrollToY: scrollToY,\n sendEventToSegmentio: sendEventToSegmentio,\n setFocusOnTarget: setFocusOnTarget,\n triggerCustomEvent: triggerCustomEvent\n};\n\nmodule.exports = a17helpers;\n","'use strict';\n\nvar a17helpers = require('./dist/prod');\n\nmodule.exports = a17helpers;\n","/*!\r\n * jQuery Validation Plugin v1.19.3\r\n *\r\n * https://jqueryvalidation.org/\r\n *\r\n * Copyright (c) 2021 Jörn Zaefferer\r\n * Released under the MIT license\r\n */\r\n(function( factory ) {\r\n\tif ( typeof define === \"function\" && define.amd ) {\r\n\t\tdefine( [\"jquery\"], factory );\r\n\t} else if (typeof module === \"object\" && module.exports) {\r\n\t\tmodule.exports = factory( require( \"jquery\" ) );\r\n\t} else {\r\n\t\tfactory( jQuery );\r\n\t}\r\n}(function( $ ) {\r\n\r\n$.extend( $.fn, {\n\n\t// https://jqueryvalidation.org/validate/\n\tvalidate: function( options ) {\n\n\t\t// If nothing is selected, return nothing; can't chain anyway\n\t\tif ( !this.length ) {\n\t\t\tif ( options && options.debug && window.console ) {\n\t\t\t\tconsole.warn( \"Nothing selected, can't validate, returning nothing.\" );\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if a validator for this form was already created\n\t\tvar validator = $.data( this[ 0 ], \"validator\" );\n\t\tif ( validator ) {\n\t\t\treturn validator;\n\t\t}\n\n\t\t// Add novalidate tag if HTML5.\n\t\tthis.attr( \"novalidate\", \"novalidate\" );\n\n\t\tvalidator = new $.validator( options, this[ 0 ] );\n\t\t$.data( this[ 0 ], \"validator\", validator );\n\n\t\tif ( validator.settings.onsubmit ) {\n\n\t\t\tthis.on( \"click.validate\", \":submit\", function( event ) {\n\n\t\t\t\t// Track the used submit button to properly handle scripted\n\t\t\t\t// submits later.\n\t\t\t\tvalidator.submitButton = event.currentTarget;\n\n\t\t\t\t// Allow suppressing validation by adding a cancel class to the submit button\n\t\t\t\tif ( $( this ).hasClass( \"cancel\" ) ) {\n\t\t\t\t\tvalidator.cancelSubmit = true;\n\t\t\t\t}\n\n\t\t\t\t// Allow suppressing validation by adding the html5 formnovalidate attribute to the submit button\n\t\t\t\tif ( $( this ).attr( \"formnovalidate\" ) !== undefined ) {\n\t\t\t\t\tvalidator.cancelSubmit = true;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Validate the form on submit\n\t\t\tthis.on( \"submit.validate\", function( event ) {\n\t\t\t\tif ( validator.settings.debug ) {\n\n\t\t\t\t\t// Prevent form submit to be able to see console output\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\n\t\t\t\tfunction handle() {\n\t\t\t\t\tvar hidden, result;\n\n\t\t\t\t\t// Insert a hidden input as a replacement for the missing submit button\n\t\t\t\t\t// The hidden input is inserted in two cases:\n\t\t\t\t\t// - A user defined a `submitHandler`\n\t\t\t\t\t// - There was a pending request due to `remote` method and `stopRequest()`\n\t\t\t\t\t// was called to submit the form in case it's valid\n\t\t\t\t\tif ( validator.submitButton && ( validator.settings.submitHandler || validator.formSubmitted ) ) {\n\t\t\t\t\t\thidden = $( \"\" )\n\t\t\t\t\t\t\t.attr( \"name\", validator.submitButton.name )\n\t\t\t\t\t\t\t.val( $( validator.submitButton ).val() )\n\t\t\t\t\t\t\t.appendTo( validator.currentForm );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( validator.settings.submitHandler && !validator.settings.debug ) {\n\t\t\t\t\t\tresult = validator.settings.submitHandler.call( validator, validator.currentForm, event );\n\t\t\t\t\t\tif ( hidden ) {\n\n\t\t\t\t\t\t\t// And clean up afterwards; thanks to no-block-scope, hidden can be referenced\n\t\t\t\t\t\t\thidden.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( result !== undefined ) {\n\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\t// Prevent submit for invalid forms or custom submit handlers\n\t\t\t\tif ( validator.cancelSubmit ) {\n\t\t\t\t\tvalidator.cancelSubmit = false;\n\t\t\t\t\treturn handle();\n\t\t\t\t}\n\t\t\t\tif ( validator.form() ) {\n\t\t\t\t\tif ( validator.pendingRequest ) {\n\t\t\t\t\t\tvalidator.formSubmitted = true;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn handle();\n\t\t\t\t} else {\n\t\t\t\t\tvalidator.focusInvalid();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn validator;\n\t},\n\n\t// https://jqueryvalidation.org/valid/\n\tvalid: function() {\n\t\tvar valid, validator, errorList;\n\n\t\tif ( $( this[ 0 ] ).is( \"form\" ) ) {\n\t\t\tvalid = this.validate().form();\n\t\t} else {\n\t\t\terrorList = [];\n\t\t\tvalid = true;\n\t\t\tvalidator = $( this[ 0 ].form ).validate();\n\t\t\tthis.each( function() {\n\t\t\t\tvalid = validator.element( this ) && valid;\n\t\t\t\tif ( !valid ) {\n\t\t\t\t\terrorList = errorList.concat( validator.errorList );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tvalidator.errorList = errorList;\n\t\t}\n\t\treturn valid;\n\t},\n\n\t// https://jqueryvalidation.org/rules/\n\trules: function( command, argument ) {\n\t\tvar element = this[ 0 ],\n\t\t\tisContentEditable = typeof this.attr( \"contenteditable\" ) !== \"undefined\" && this.attr( \"contenteditable\" ) !== \"false\",\n\t\t\tsettings, staticRules, existingRules, data, param, filtered;\n\n\t\t// If nothing is selected, return empty object; can't chain anyway\n\t\tif ( element == null ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !element.form && isContentEditable ) {\n\t\t\telement.form = this.closest( \"form\" )[ 0 ];\n\t\t\telement.name = this.attr( \"name\" );\n\t\t}\n\n\t\tif ( element.form == null ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( command ) {\n\t\t\tsettings = $.data( element.form, \"validator\" ).settings;\n\t\t\tstaticRules = settings.rules;\n\t\t\texistingRules = $.validator.staticRules( element );\n\t\t\tswitch ( command ) {\n\t\t\tcase \"add\":\n\t\t\t\t$.extend( existingRules, $.validator.normalizeRule( argument ) );\n\n\t\t\t\t// Remove messages from rules, but allow them to be set separately\n\t\t\t\tdelete existingRules.messages;\n\t\t\t\tstaticRules[ element.name ] = existingRules;\n\t\t\t\tif ( argument.messages ) {\n\t\t\t\t\tsettings.messages[ element.name ] = $.extend( settings.messages[ element.name ], argument.messages );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"remove\":\n\t\t\t\tif ( !argument ) {\n\t\t\t\t\tdelete staticRules[ element.name ];\n\t\t\t\t\treturn existingRules;\n\t\t\t\t}\n\t\t\t\tfiltered = {};\n\t\t\t\t$.each( argument.split( /\\s/ ), function( index, method ) {\n\t\t\t\t\tfiltered[ method ] = existingRules[ method ];\n\t\t\t\t\tdelete existingRules[ method ];\n\t\t\t\t} );\n\t\t\t\treturn filtered;\n\t\t\t}\n\t\t}\n\n\t\tdata = $.validator.normalizeRules(\n\t\t$.extend(\n\t\t\t{},\n\t\t\t$.validator.classRules( element ),\n\t\t\t$.validator.attributeRules( element ),\n\t\t\t$.validator.dataRules( element ),\n\t\t\t$.validator.staticRules( element )\n\t\t), element );\n\n\t\t// Make sure required is at front\n\t\tif ( data.required ) {\n\t\t\tparam = data.required;\n\t\t\tdelete data.required;\n\t\t\tdata = $.extend( { required: param }, data );\n\t\t}\n\n\t\t// Make sure remote is at back\n\t\tif ( data.remote ) {\n\t\t\tparam = data.remote;\n\t\t\tdelete data.remote;\n\t\t\tdata = $.extend( data, { remote: param } );\n\t\t}\n\n\t\treturn data;\n\t}\n} );\n\n// JQuery trim is deprecated, provide a trim method based on String.prototype.trim\nvar trim = function( str ) {\n\n\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trim#Polyfill\n\treturn str.replace( /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, \"\" );\n};\n\n// Custom selectors\n$.extend( $.expr.pseudos || $.expr[ \":\" ], {\t\t// '|| $.expr[ \":\" ]' here enables backwards compatibility to jQuery 1.7. Can be removed when dropping jQ 1.7.x support\n\n\t// https://jqueryvalidation.org/blank-selector/\n\tblank: function( a ) {\n\t\treturn !trim( \"\" + $( a ).val() );\n\t},\n\n\t// https://jqueryvalidation.org/filled-selector/\n\tfilled: function( a ) {\n\t\tvar val = $( a ).val();\n\t\treturn val !== null && !!trim( \"\" + val );\n\t},\n\n\t// https://jqueryvalidation.org/unchecked-selector/\n\tunchecked: function( a ) {\n\t\treturn !$( a ).prop( \"checked\" );\n\t}\n} );\n\n// Constructor for validator\n$.validator = function( options, form ) {\n\tthis.settings = $.extend( true, {}, $.validator.defaults, options );\n\tthis.currentForm = form;\n\tthis.init();\n};\n\n// https://jqueryvalidation.org/jQuery.validator.format/\n$.validator.format = function( source, params ) {\n\tif ( arguments.length === 1 ) {\n\t\treturn function() {\n\t\t\tvar args = $.makeArray( arguments );\n\t\t\targs.unshift( source );\n\t\t\treturn $.validator.format.apply( this, args );\n\t\t};\n\t}\n\tif ( params === undefined ) {\n\t\treturn source;\n\t}\n\tif ( arguments.length > 2 && params.constructor !== Array ) {\n\t\tparams = $.makeArray( arguments ).slice( 1 );\n\t}\n\tif ( params.constructor !== Array ) {\n\t\tparams = [ params ];\n\t}\n\t$.each( params, function( i, n ) {\n\t\tsource = source.replace( new RegExp( \"\\\\{\" + i + \"\\\\}\", \"g\" ), function() {\n\t\t\treturn n;\n\t\t} );\n\t} );\n\treturn source;\n};\n\n$.extend( $.validator, {\n\n\tdefaults: {\n\t\tmessages: {},\n\t\tgroups: {},\n\t\trules: {},\n\t\terrorClass: \"error\",\n\t\tpendingClass: \"pending\",\n\t\tvalidClass: \"valid\",\n\t\terrorElement: \"label\",\n\t\tfocusCleanup: false,\n\t\tfocusInvalid: true,\n\t\terrorContainer: $( [] ),\n\t\terrorLabelContainer: $( [] ),\n\t\tonsubmit: true,\n\t\tignore: \":hidden\",\n\t\tignoreTitle: false,\n\t\tonfocusin: function( element ) {\n\t\t\tthis.lastActive = element;\n\n\t\t\t// Hide error label and remove error class on focus if enabled\n\t\t\tif ( this.settings.focusCleanup ) {\n\t\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t\tthis.hideThese( this.errorsFor( element ) );\n\t\t\t}\n\t\t},\n\t\tonfocusout: function( element ) {\n\t\t\tif ( !this.checkable( element ) && ( element.name in this.submitted || !this.optional( element ) ) ) {\n\t\t\t\tthis.element( element );\n\t\t\t}\n\t\t},\n\t\tonkeyup: function( element, event ) {\n\n\t\t\t// Avoid revalidate the field when pressing one of the following keys\n\t\t\t// Shift => 16\n\t\t\t// Ctrl => 17\n\t\t\t// Alt => 18\n\t\t\t// Caps lock => 20\n\t\t\t// End => 35\n\t\t\t// Home => 36\n\t\t\t// Left arrow => 37\n\t\t\t// Up arrow => 38\n\t\t\t// Right arrow => 39\n\t\t\t// Down arrow => 40\n\t\t\t// Insert => 45\n\t\t\t// Num lock => 144\n\t\t\t// AltGr key => 225\n\t\t\tvar excludedKeys = [\n\t\t\t\t16, 17, 18, 20, 35, 36, 37,\n\t\t\t\t38, 39, 40, 45, 144, 225\n\t\t\t];\n\n\t\t\tif ( event.which === 9 && this.elementValue( element ) === \"\" || $.inArray( event.keyCode, excludedKeys ) !== -1 ) {\n\t\t\t\treturn;\n\t\t\t} else if ( element.name in this.submitted || element.name in this.invalid ) {\n\t\t\t\tthis.element( element );\n\t\t\t}\n\t\t},\n\t\tonclick: function( element ) {\n\n\t\t\t// Click on selects, radiobuttons and checkboxes\n\t\t\tif ( element.name in this.submitted ) {\n\t\t\t\tthis.element( element );\n\n\t\t\t// Or option elements, check parent select in that case\n\t\t\t} else if ( element.parentNode.name in this.submitted ) {\n\t\t\t\tthis.element( element.parentNode );\n\t\t\t}\n\t\t},\n\t\thighlight: function( element, errorClass, validClass ) {\n\t\t\tif ( element.type === \"radio\" ) {\n\t\t\t\tthis.findByName( element.name ).addClass( errorClass ).removeClass( validClass );\n\t\t\t} else {\n\t\t\t\t$( element ).addClass( errorClass ).removeClass( validClass );\n\t\t\t}\n\t\t},\n\t\tunhighlight: function( element, errorClass, validClass ) {\n\t\t\tif ( element.type === \"radio\" ) {\n\t\t\t\tthis.findByName( element.name ).removeClass( errorClass ).addClass( validClass );\n\t\t\t} else {\n\t\t\t\t$( element ).removeClass( errorClass ).addClass( validClass );\n\t\t\t}\n\t\t}\n\t},\n\n\t// https://jqueryvalidation.org/jQuery.validator.setDefaults/\n\tsetDefaults: function( settings ) {\n\t\t$.extend( $.validator.defaults, settings );\n\t},\n\n\tmessages: {\n\t\trequired: \"This field is required.\",\n\t\tremote: \"Please fix this field.\",\n\t\temail: \"Please enter a valid email address.\",\n\t\turl: \"Please enter a valid URL.\",\n\t\tdate: \"Please enter a valid date.\",\n\t\tdateISO: \"Please enter a valid date (ISO).\",\n\t\tnumber: \"Please enter a valid number.\",\n\t\tdigits: \"Please enter only digits.\",\n\t\tequalTo: \"Please enter the same value again.\",\n\t\tmaxlength: $.validator.format( \"Please enter no more than {0} characters.\" ),\n\t\tminlength: $.validator.format( \"Please enter at least {0} characters.\" ),\n\t\trangelength: $.validator.format( \"Please enter a value between {0} and {1} characters long.\" ),\n\t\trange: $.validator.format( \"Please enter a value between {0} and {1}.\" ),\n\t\tmax: $.validator.format( \"Please enter a value less than or equal to {0}.\" ),\n\t\tmin: $.validator.format( \"Please enter a value greater than or equal to {0}.\" ),\n\t\tstep: $.validator.format( \"Please enter a multiple of {0}.\" )\n\t},\n\n\tautoCreateRanges: false,\n\n\tprototype: {\n\n\t\tinit: function() {\n\t\t\tthis.labelContainer = $( this.settings.errorLabelContainer );\n\t\t\tthis.errorContext = this.labelContainer.length && this.labelContainer || $( this.currentForm );\n\t\t\tthis.containers = $( this.settings.errorContainer ).add( this.settings.errorLabelContainer );\n\t\t\tthis.submitted = {};\n\t\t\tthis.valueCache = {};\n\t\t\tthis.pendingRequest = 0;\n\t\t\tthis.pending = {};\n\t\t\tthis.invalid = {};\n\t\t\tthis.reset();\n\n\t\t\tvar currentForm = this.currentForm,\n\t\t\t\tgroups = ( this.groups = {} ),\n\t\t\t\trules;\n\t\t\t$.each( this.settings.groups, function( key, value ) {\n\t\t\t\tif ( typeof value === \"string\" ) {\n\t\t\t\t\tvalue = value.split( /\\s/ );\n\t\t\t\t}\n\t\t\t\t$.each( value, function( index, name ) {\n\t\t\t\t\tgroups[ name ] = key;\n\t\t\t\t} );\n\t\t\t} );\n\t\t\trules = this.settings.rules;\n\t\t\t$.each( rules, function( key, value ) {\n\t\t\t\trules[ key ] = $.validator.normalizeRule( value );\n\t\t\t} );\n\n\t\t\tfunction delegate( event ) {\n\t\t\t\tvar isContentEditable = typeof $( this ).attr( \"contenteditable\" ) !== \"undefined\" && $( this ).attr( \"contenteditable\" ) !== \"false\";\n\n\t\t\t\t// Set form expando on contenteditable\n\t\t\t\tif ( !this.form && isContentEditable ) {\n\t\t\t\t\tthis.form = $( this ).closest( \"form\" )[ 0 ];\n\t\t\t\t\tthis.name = $( this ).attr( \"name\" );\n\t\t\t\t}\n\n\t\t\t\t// Ignore the element if it belongs to another form. This will happen mainly\n\t\t\t\t// when setting the `form` attribute of an input to the id of another form.\n\t\t\t\tif ( currentForm !== this.form ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar validator = $.data( this.form, \"validator\" ),\n\t\t\t\t\teventType = \"on\" + event.type.replace( /^validate/, \"\" ),\n\t\t\t\t\tsettings = validator.settings;\n\t\t\t\tif ( settings[ eventType ] && !$( this ).is( settings.ignore ) ) {\n\t\t\t\t\tsettings[ eventType ].call( validator, this, event );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$( this.currentForm )\n\t\t\t\t.on( \"focusin.validate focusout.validate keyup.validate\",\n\t\t\t\t\t\":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], \" +\n\t\t\t\t\t\"[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], \" +\n\t\t\t\t\t\"[type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], \" +\n\t\t\t\t\t\"[type='radio'], [type='checkbox'], [contenteditable], [type='button']\", delegate )\n\n\t\t\t\t// Support: Chrome, oldIE\n\t\t\t\t// \"select\" is provided as event.target when clicking a option\n\t\t\t\t.on( \"click.validate\", \"select, option, [type='radio'], [type='checkbox']\", delegate );\n\n\t\t\tif ( this.settings.invalidHandler ) {\n\t\t\t\t$( this.currentForm ).on( \"invalid-form.validate\", this.settings.invalidHandler );\n\t\t\t}\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.form/\n\t\tform: function() {\n\t\t\tthis.checkForm();\n\t\t\t$.extend( this.submitted, this.errorMap );\n\t\t\tthis.invalid = $.extend( {}, this.errorMap );\n\t\t\tif ( !this.valid() ) {\n\t\t\t\t$( this.currentForm ).triggerHandler( \"invalid-form\", [ this ] );\n\t\t\t}\n\t\t\tthis.showErrors();\n\t\t\treturn this.valid();\n\t\t},\n\n\t\tcheckForm: function() {\n\t\t\tthis.prepareForm();\n\t\t\tfor ( var i = 0, elements = ( this.currentElements = this.elements() ); elements[ i ]; i++ ) {\n\t\t\t\tthis.check( elements[ i ] );\n\t\t\t}\n\t\t\treturn this.valid();\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.element/\n\t\telement: function( element ) {\n\t\t\tvar cleanElement = this.clean( element ),\n\t\t\t\tcheckElement = this.validationTargetFor( cleanElement ),\n\t\t\t\tv = this,\n\t\t\t\tresult = true,\n\t\t\t\trs, group;\n\n\t\t\tif ( checkElement === undefined ) {\n\t\t\t\tdelete this.invalid[ cleanElement.name ];\n\t\t\t} else {\n\t\t\t\tthis.prepareElement( checkElement );\n\t\t\t\tthis.currentElements = $( checkElement );\n\n\t\t\t\t// If this element is grouped, then validate all group elements already\n\t\t\t\t// containing a value\n\t\t\t\tgroup = this.groups[ checkElement.name ];\n\t\t\t\tif ( group ) {\n\t\t\t\t\t$.each( this.groups, function( name, testgroup ) {\n\t\t\t\t\t\tif ( testgroup === group && name !== checkElement.name ) {\n\t\t\t\t\t\t\tcleanElement = v.validationTargetFor( v.clean( v.findByName( name ) ) );\n\t\t\t\t\t\t\tif ( cleanElement && cleanElement.name in v.invalid ) {\n\t\t\t\t\t\t\t\tv.currentElements.push( cleanElement );\n\t\t\t\t\t\t\t\tresult = v.check( cleanElement ) && result;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\trs = this.check( checkElement ) !== false;\n\t\t\t\tresult = result && rs;\n\t\t\t\tif ( rs ) {\n\t\t\t\t\tthis.invalid[ checkElement.name ] = false;\n\t\t\t\t} else {\n\t\t\t\t\tthis.invalid[ checkElement.name ] = true;\n\t\t\t\t}\n\n\t\t\t\tif ( !this.numberOfInvalids() ) {\n\n\t\t\t\t\t// Hide error containers on last error\n\t\t\t\t\tthis.toHide = this.toHide.add( this.containers );\n\t\t\t\t}\n\t\t\t\tthis.showErrors();\n\n\t\t\t\t// Add aria-invalid status for screen readers\n\t\t\t\t$( element ).attr( \"aria-invalid\", !rs );\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.showErrors/\n\t\tshowErrors: function( errors ) {\n\t\t\tif ( errors ) {\n\t\t\t\tvar validator = this;\n\n\t\t\t\t// Add items to error list and map\n\t\t\t\t$.extend( this.errorMap, errors );\n\t\t\t\tthis.errorList = $.map( this.errorMap, function( message, name ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tmessage: message,\n\t\t\t\t\t\telement: validator.findByName( name )[ 0 ]\n\t\t\t\t\t};\n\t\t\t\t} );\n\n\t\t\t\t// Remove items from success list\n\t\t\t\tthis.successList = $.grep( this.successList, function( element ) {\n\t\t\t\t\treturn !( element.name in errors );\n\t\t\t\t} );\n\t\t\t}\n\t\t\tif ( this.settings.showErrors ) {\n\t\t\t\tthis.settings.showErrors.call( this, this.errorMap, this.errorList );\n\t\t\t} else {\n\t\t\t\tthis.defaultShowErrors();\n\t\t\t}\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.resetForm/\n\t\tresetForm: function() {\n\t\t\tif ( $.fn.resetForm ) {\n\t\t\t\t$( this.currentForm ).resetForm();\n\t\t\t}\n\t\t\tthis.invalid = {};\n\t\t\tthis.submitted = {};\n\t\t\tthis.prepareForm();\n\t\t\tthis.hideErrors();\n\t\t\tvar elements = this.elements()\n\t\t\t\t.removeData( \"previousValue\" )\n\t\t\t\t.removeAttr( \"aria-invalid\" );\n\n\t\t\tthis.resetElements( elements );\n\t\t},\n\n\t\tresetElements: function( elements ) {\n\t\t\tvar i;\n\n\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\tfor ( i = 0; elements[ i ]; i++ ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, elements[ i ],\n\t\t\t\t\t\tthis.settings.errorClass, \"\" );\n\t\t\t\t\tthis.findByName( elements[ i ].name ).removeClass( this.settings.validClass );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\telements\n\t\t\t\t\t.removeClass( this.settings.errorClass )\n\t\t\t\t\t.removeClass( this.settings.validClass );\n\t\t\t}\n\t\t},\n\n\t\tnumberOfInvalids: function() {\n\t\t\treturn this.objectLength( this.invalid );\n\t\t},\n\n\t\tobjectLength: function( obj ) {\n\t\t\t/* jshint unused: false */\n\t\t\tvar count = 0,\n\t\t\t\ti;\n\t\t\tfor ( i in obj ) {\n\n\t\t\t\t// This check allows counting elements with empty error\n\t\t\t\t// message as invalid elements\n\t\t\t\tif ( obj[ i ] !== undefined && obj[ i ] !== null && obj[ i ] !== false ) {\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn count;\n\t\t},\n\n\t\thideErrors: function() {\n\t\t\tthis.hideThese( this.toHide );\n\t\t},\n\n\t\thideThese: function( errors ) {\n\t\t\terrors.not( this.containers ).text( \"\" );\n\t\t\tthis.addWrapper( errors ).hide();\n\t\t},\n\n\t\tvalid: function() {\n\t\t\treturn this.size() === 0;\n\t\t},\n\n\t\tsize: function() {\n\t\t\treturn this.errorList.length;\n\t\t},\n\n\t\tfocusInvalid: function() {\n\t\t\tif ( this.settings.focusInvalid ) {\n\t\t\t\ttry {\n\t\t\t\t\t$( this.findLastActive() || this.errorList.length && this.errorList[ 0 ].element || [] )\n\t\t\t\t\t.filter( \":visible\" )\n\t\t\t\t\t.trigger( \"focus\" )\n\n\t\t\t\t\t// Manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find\n\t\t\t\t\t.trigger( \"focusin\" );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// Ignore IE throwing errors when focusing hidden elements\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tfindLastActive: function() {\n\t\t\tvar lastActive = this.lastActive;\n\t\t\treturn lastActive && $.grep( this.errorList, function( n ) {\n\t\t\t\treturn n.element.name === lastActive.name;\n\t\t\t} ).length === 1 && lastActive;\n\t\t},\n\n\t\telements: function() {\n\t\t\tvar validator = this,\n\t\t\t\trulesCache = {};\n\n\t\t\t// Select all valid inputs inside the form (no submit or reset buttons)\n\t\t\treturn $( this.currentForm )\n\t\t\t.find( \"input, select, textarea, [contenteditable]\" )\n\t\t\t.not( \":submit, :reset, :image, :disabled\" )\n\t\t\t.not( this.settings.ignore )\n\t\t\t.filter( function() {\n\t\t\t\tvar name = this.name || $( this ).attr( \"name\" ); // For contenteditable\n\t\t\t\tvar isContentEditable = typeof $( this ).attr( \"contenteditable\" ) !== \"undefined\" && $( this ).attr( \"contenteditable\" ) !== \"false\";\n\n\t\t\t\tif ( !name && validator.settings.debug && window.console ) {\n\t\t\t\t\tconsole.error( \"%o has no name assigned\", this );\n\t\t\t\t}\n\n\t\t\t\t// Set form expando on contenteditable\n\t\t\t\tif ( isContentEditable ) {\n\t\t\t\t\tthis.form = $( this ).closest( \"form\" )[ 0 ];\n\t\t\t\t\tthis.name = name;\n\t\t\t\t}\n\n\t\t\t\t// Ignore elements that belong to other/nested forms\n\t\t\t\tif ( this.form !== validator.currentForm ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Select only the first element for each name, and only those with rules specified\n\t\t\t\tif ( name in rulesCache || !validator.objectLength( $( this ).rules() ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\trulesCache[ name ] = true;\n\t\t\t\treturn true;\n\t\t\t} );\n\t\t},\n\n\t\tclean: function( selector ) {\n\t\t\treturn $( selector )[ 0 ];\n\t\t},\n\n\t\terrors: function() {\n\t\t\tvar errorClass = this.settings.errorClass.split( \" \" ).join( \".\" );\n\t\t\treturn $( this.settings.errorElement + \".\" + errorClass, this.errorContext );\n\t\t},\n\n\t\tresetInternals: function() {\n\t\t\tthis.successList = [];\n\t\t\tthis.errorList = [];\n\t\t\tthis.errorMap = {};\n\t\t\tthis.toShow = $( [] );\n\t\t\tthis.toHide = $( [] );\n\t\t},\n\n\t\treset: function() {\n\t\t\tthis.resetInternals();\n\t\t\tthis.currentElements = $( [] );\n\t\t},\n\n\t\tprepareForm: function() {\n\t\t\tthis.reset();\n\t\t\tthis.toHide = this.errors().add( this.containers );\n\t\t},\n\n\t\tprepareElement: function( element ) {\n\t\t\tthis.reset();\n\t\t\tthis.toHide = this.errorsFor( element );\n\t\t},\n\n\t\telementValue: function( element ) {\n\t\t\tvar $element = $( element ),\n\t\t\t\ttype = element.type,\n\t\t\t\tisContentEditable = typeof $element.attr( \"contenteditable\" ) !== \"undefined\" && $element.attr( \"contenteditable\" ) !== \"false\",\n\t\t\t\tval, idx;\n\n\t\t\tif ( type === \"radio\" || type === \"checkbox\" ) {\n\t\t\t\treturn this.findByName( element.name ).filter( \":checked\" ).val();\n\t\t\t} else if ( type === \"number\" && typeof element.validity !== \"undefined\" ) {\n\t\t\t\treturn element.validity.badInput ? \"NaN\" : $element.val();\n\t\t\t}\n\n\t\t\tif ( isContentEditable ) {\n\t\t\t\tval = $element.text();\n\t\t\t} else {\n\t\t\t\tval = $element.val();\n\t\t\t}\n\n\t\t\tif ( type === \"file\" ) {\n\n\t\t\t\t// Modern browser (chrome & safari)\n\t\t\t\tif ( val.substr( 0, 12 ) === \"C:\\\\fakepath\\\\\" ) {\n\t\t\t\t\treturn val.substr( 12 );\n\t\t\t\t}\n\n\t\t\t\t// Legacy browsers\n\t\t\t\t// Unix-based path\n\t\t\t\tidx = val.lastIndexOf( \"/\" );\n\t\t\t\tif ( idx >= 0 ) {\n\t\t\t\t\treturn val.substr( idx + 1 );\n\t\t\t\t}\n\n\t\t\t\t// Windows-based path\n\t\t\t\tidx = val.lastIndexOf( \"\\\\\" );\n\t\t\t\tif ( idx >= 0 ) {\n\t\t\t\t\treturn val.substr( idx + 1 );\n\t\t\t\t}\n\n\t\t\t\t// Just the file name\n\t\t\t\treturn val;\n\t\t\t}\n\n\t\t\tif ( typeof val === \"string\" ) {\n\t\t\t\treturn val.replace( /\\r/g, \"\" );\n\t\t\t}\n\t\t\treturn val;\n\t\t},\n\n\t\tcheck: function( element ) {\n\t\t\telement = this.validationTargetFor( this.clean( element ) );\n\n\t\t\tvar rules = $( element ).rules(),\n\t\t\t\trulesCount = $.map( rules, function( n, i ) {\n\t\t\t\t\treturn i;\n\t\t\t\t} ).length,\n\t\t\t\tdependencyMismatch = false,\n\t\t\t\tval = this.elementValue( element ),\n\t\t\t\tresult, method, rule, normalizer;\n\n\t\t\t// Prioritize the local normalizer defined for this element over the global one\n\t\t\t// if the former exists, otherwise user the global one in case it exists.\n\t\t\tif ( typeof rules.normalizer === \"function\" ) {\n\t\t\t\tnormalizer = rules.normalizer;\n\t\t\t} else if (\ttypeof this.settings.normalizer === \"function\" ) {\n\t\t\t\tnormalizer = this.settings.normalizer;\n\t\t\t}\n\n\t\t\t// If normalizer is defined, then call it to retreive the changed value instead\n\t\t\t// of using the real one.\n\t\t\t// Note that `this` in the normalizer is `element`.\n\t\t\tif ( normalizer ) {\n\t\t\t\tval = normalizer.call( element, val );\n\n\t\t\t\t// Delete the normalizer from rules to avoid treating it as a pre-defined method.\n\t\t\t\tdelete rules.normalizer;\n\t\t\t}\n\n\t\t\tfor ( method in rules ) {\n\t\t\t\trule = { method: method, parameters: rules[ method ] };\n\t\t\t\ttry {\n\t\t\t\t\tresult = $.validator.methods[ method ].call( this, val, element, rule.parameters );\n\n\t\t\t\t\t// If a method indicates that the field is optional and therefore valid,\n\t\t\t\t\t// don't mark it as valid when there are no other rules\n\t\t\t\t\tif ( result === \"dependency-mismatch\" && rulesCount === 1 ) {\n\t\t\t\t\t\tdependencyMismatch = true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tdependencyMismatch = false;\n\n\t\t\t\t\tif ( result === \"pending\" ) {\n\t\t\t\t\t\tthis.toHide = this.toHide.not( this.errorsFor( element ) );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !result ) {\n\t\t\t\t\t\tthis.formatAndAdd( element, rule );\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} catch ( e ) {\n\t\t\t\t\tif ( this.settings.debug && window.console ) {\n\t\t\t\t\t\tconsole.log( \"Exception occurred when checking element \" + element.id + \", check the '\" + rule.method + \"' method.\", e );\n\t\t\t\t\t}\n\t\t\t\t\tif ( e instanceof TypeError ) {\n\t\t\t\t\t\te.message += \". Exception occurred when checking element \" + element.id + \", check the '\" + rule.method + \"' method.\";\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( dependencyMismatch ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( this.objectLength( rules ) ) {\n\t\t\t\tthis.successList.push( element );\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t// Return the custom message for the given element and validation method\n\t\t// specified in the element's HTML5 data attribute\n\t\t// return the generic message if present and no method specific message is present\n\t\tcustomDataMessage: function( element, method ) {\n\t\t\treturn $( element ).data( \"msg\" + method.charAt( 0 ).toUpperCase() +\n\t\t\t\tmethod.substring( 1 ).toLowerCase() ) || $( element ).data( \"msg\" );\n\t\t},\n\n\t\t// Return the custom message for the given element name and validation method\n\t\tcustomMessage: function( name, method ) {\n\t\t\tvar m = this.settings.messages[ name ];\n\t\t\treturn m && ( m.constructor === String ? m : m[ method ] );\n\t\t},\n\n\t\t// Return the first defined argument, allowing empty strings\n\t\tfindDefined: function() {\n\t\t\tfor ( var i = 0; i < arguments.length; i++ ) {\n\t\t\t\tif ( arguments[ i ] !== undefined ) {\n\t\t\t\t\treturn arguments[ i ];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\n\t\t// The second parameter 'rule' used to be a string, and extended to an object literal\n\t\t// of the following form:\n\t\t// rule = {\n\t\t// method: \"method name\",\n\t\t// parameters: \"the given method parameters\"\n\t\t// }\n\t\t//\n\t\t// The old behavior still supported, kept to maintain backward compatibility with\n\t\t// old code, and will be removed in the next major release.\n\t\tdefaultMessage: function( element, rule ) {\n\t\t\tif ( typeof rule === \"string\" ) {\n\t\t\t\trule = { method: rule };\n\t\t\t}\n\n\t\t\tvar message = this.findDefined(\n\t\t\t\t\tthis.customMessage( element.name, rule.method ),\n\t\t\t\t\tthis.customDataMessage( element, rule.method ),\n\n\t\t\t\t\t// 'title' is never undefined, so handle empty string as undefined\n\t\t\t\t\t!this.settings.ignoreTitle && element.title || undefined,\n\t\t\t\t\t$.validator.messages[ rule.method ],\n\t\t\t\t\t\"Warning: No message defined for \" + element.name + \"\"\n\t\t\t\t),\n\t\t\t\ttheregex = /\\$?\\{(\\d+)\\}/g;\n\t\t\tif ( typeof message === \"function\" ) {\n\t\t\t\tmessage = message.call( this, rule.parameters, element );\n\t\t\t} else if ( theregex.test( message ) ) {\n\t\t\t\tmessage = $.validator.format( message.replace( theregex, \"{$1}\" ), rule.parameters );\n\t\t\t}\n\n\t\t\treturn message;\n\t\t},\n\n\t\tformatAndAdd: function( element, rule ) {\n\t\t\tvar message = this.defaultMessage( element, rule );\n\n\t\t\tthis.errorList.push( {\n\t\t\t\tmessage: message,\n\t\t\t\telement: element,\n\t\t\t\tmethod: rule.method\n\t\t\t} );\n\n\t\t\tthis.errorMap[ element.name ] = message;\n\t\t\tthis.submitted[ element.name ] = message;\n\t\t},\n\n\t\taddWrapper: function( toToggle ) {\n\t\t\tif ( this.settings.wrapper ) {\n\t\t\t\ttoToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) );\n\t\t\t}\n\t\t\treturn toToggle;\n\t\t},\n\n\t\tdefaultShowErrors: function() {\n\t\t\tvar i, elements, error;\n\t\t\tfor ( i = 0; this.errorList[ i ]; i++ ) {\n\t\t\t\terror = this.errorList[ i ];\n\t\t\t\tif ( this.settings.highlight ) {\n\t\t\t\t\tthis.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t\tthis.showLabel( error.element, error.message );\n\t\t\t}\n\t\t\tif ( this.errorList.length ) {\n\t\t\t\tthis.toShow = this.toShow.add( this.containers );\n\t\t\t}\n\t\t\tif ( this.settings.success ) {\n\t\t\t\tfor ( i = 0; this.successList[ i ]; i++ ) {\n\t\t\t\t\tthis.showLabel( this.successList[ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\tfor ( i = 0, elements = this.validElements(); elements[ i ]; i++ ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, elements[ i ], this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.toHide = this.toHide.not( this.toShow );\n\t\t\tthis.hideErrors();\n\t\t\tthis.addWrapper( this.toShow ).show();\n\t\t},\n\n\t\tvalidElements: function() {\n\t\t\treturn this.currentElements.not( this.invalidElements() );\n\t\t},\n\n\t\tinvalidElements: function() {\n\t\t\treturn $( this.errorList ).map( function() {\n\t\t\t\treturn this.element;\n\t\t\t} );\n\t\t},\n\n\t\tshowLabel: function( element, message ) {\n\t\t\tvar place, group, errorID, v,\n\t\t\t\terror = this.errorsFor( element ),\n\t\t\t\telementID = this.idOrName( element ),\n\t\t\t\tdescribedBy = $( element ).attr( \"aria-describedby\" );\n\n\t\t\tif ( error.length ) {\n\n\t\t\t\t// Refresh error/success class\n\t\t\t\terror.removeClass( this.settings.validClass ).addClass( this.settings.errorClass );\n\n\t\t\t\t// Replace message on existing label\n\t\t\t\terror.html( message );\n\t\t\t} else {\n\n\t\t\t\t// Create error element\n\t\t\t\terror = $( \"<\" + this.settings.errorElement + \">\" )\n\t\t\t\t\t.attr( \"id\", elementID + \"-error\" )\n\t\t\t\t\t.addClass( this.settings.errorClass )\n\t\t\t\t\t.html( message || \"\" );\n\n\t\t\t\t// Maintain reference to the element to be placed into the DOM\n\t\t\t\tplace = error;\n\t\t\t\tif ( this.settings.wrapper ) {\n\n\t\t\t\t\t// Make sure the element is visible, even in IE\n\t\t\t\t\t// actually showing the wrapped element is handled elsewhere\n\t\t\t\t\tplace = error.hide().show().wrap( \"<\" + this.settings.wrapper + \"/>\" ).parent();\n\t\t\t\t}\n\t\t\t\tif ( this.labelContainer.length ) {\n\t\t\t\t\tthis.labelContainer.append( place );\n\t\t\t\t} else if ( this.settings.errorPlacement ) {\n\t\t\t\t\tthis.settings.errorPlacement.call( this, place, $( element ) );\n\t\t\t\t} else {\n\t\t\t\t\tplace.insertAfter( element );\n\t\t\t\t}\n\n\t\t\t\t// Link error back to the element\n\t\t\t\tif ( error.is( \"label\" ) ) {\n\n\t\t\t\t\t// If the error is a label, then associate using 'for'\n\t\t\t\t\terror.attr( \"for\", elementID );\n\n\t\t\t\t\t// If the element is not a child of an associated label, then it's necessary\n\t\t\t\t\t// to explicitly apply aria-describedby\n\t\t\t\t} else if ( error.parents( \"label[for='\" + this.escapeCssMeta( elementID ) + \"']\" ).length === 0 ) {\n\t\t\t\t\terrorID = error.attr( \"id\" );\n\n\t\t\t\t\t// Respect existing non-error aria-describedby\n\t\t\t\t\tif ( !describedBy ) {\n\t\t\t\t\t\tdescribedBy = errorID;\n\t\t\t\t\t} else if ( !describedBy.match( new RegExp( \"\\\\b\" + this.escapeCssMeta( errorID ) + \"\\\\b\" ) ) ) {\n\n\t\t\t\t\t\t// Add to end of list if not already present\n\t\t\t\t\t\tdescribedBy += \" \" + errorID;\n\t\t\t\t\t}\n\t\t\t\t\t$( element ).attr( \"aria-describedby\", describedBy );\n\n\t\t\t\t\t// If this element is grouped, then assign to all elements in the same group\n\t\t\t\t\tgroup = this.groups[ element.name ];\n\t\t\t\t\tif ( group ) {\n\t\t\t\t\t\tv = this;\n\t\t\t\t\t\t$.each( v.groups, function( name, testgroup ) {\n\t\t\t\t\t\t\tif ( testgroup === group ) {\n\t\t\t\t\t\t\t\t$( \"[name='\" + v.escapeCssMeta( name ) + \"']\", v.currentForm )\n\t\t\t\t\t\t\t\t\t.attr( \"aria-describedby\", error.attr( \"id\" ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( !message && this.settings.success ) {\n\t\t\t\terror.text( \"\" );\n\t\t\t\tif ( typeof this.settings.success === \"string\" ) {\n\t\t\t\t\terror.addClass( this.settings.success );\n\t\t\t\t} else {\n\t\t\t\t\tthis.settings.success( error, element );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.toShow = this.toShow.add( error );\n\t\t},\n\n\t\terrorsFor: function( element ) {\n\t\t\tvar name = this.escapeCssMeta( this.idOrName( element ) ),\n\t\t\t\tdescriber = $( element ).attr( \"aria-describedby\" ),\n\t\t\t\tselector = \"label[for='\" + name + \"'], label[for='\" + name + \"'] *\";\n\n\t\t\t// 'aria-describedby' should directly reference the error element\n\t\t\tif ( describer ) {\n\t\t\t\tselector = selector + \", #\" + this.escapeCssMeta( describer )\n\t\t\t\t\t.replace( /\\s+/g, \", #\" );\n\t\t\t}\n\n\t\t\treturn this\n\t\t\t\t.errors()\n\t\t\t\t.filter( selector );\n\t\t},\n\n\t\t// See https://api.jquery.com/category/selectors/, for CSS\n\t\t// meta-characters that should be escaped in order to be used with JQuery\n\t\t// as a literal part of a name/id or any selector.\n\t\tescapeCssMeta: function( string ) {\n\t\t\treturn string.replace( /([\\\\!\"#$%&'()*+,./:;<=>?@\\[\\]^`{|}~])/g, \"\\\\$1\" );\n\t\t},\n\n\t\tidOrName: function( element ) {\n\t\t\treturn this.groups[ element.name ] || ( this.checkable( element ) ? element.name : element.id || element.name );\n\t\t},\n\n\t\tvalidationTargetFor: function( element ) {\n\n\t\t\t// If radio/checkbox, validate first element in group instead\n\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\telement = this.findByName( element.name );\n\t\t\t}\n\n\t\t\t// Always apply ignore filter\n\t\t\treturn $( element ).not( this.settings.ignore )[ 0 ];\n\t\t},\n\n\t\tcheckable: function( element ) {\n\t\t\treturn ( /radio|checkbox/i ).test( element.type );\n\t\t},\n\n\t\tfindByName: function( name ) {\n\t\t\treturn $( this.currentForm ).find( \"[name='\" + this.escapeCssMeta( name ) + \"']\" );\n\t\t},\n\n\t\tgetLength: function( value, element ) {\n\t\t\tswitch ( element.nodeName.toLowerCase() ) {\n\t\t\tcase \"select\":\n\t\t\t\treturn $( \"option:selected\", element ).length;\n\t\t\tcase \"input\":\n\t\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\t\treturn this.findByName( element.name ).filter( \":checked\" ).length;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value.length;\n\t\t},\n\n\t\tdepend: function( param, element ) {\n\t\t\treturn this.dependTypes[ typeof param ] ? this.dependTypes[ typeof param ]( param, element ) : true;\n\t\t},\n\n\t\tdependTypes: {\n\t\t\t\"boolean\": function( param ) {\n\t\t\t\treturn param;\n\t\t\t},\n\t\t\t\"string\": function( param, element ) {\n\t\t\t\treturn !!$( param, element.form ).length;\n\t\t\t},\n\t\t\t\"function\": function( param, element ) {\n\t\t\t\treturn param( element );\n\t\t\t}\n\t\t},\n\n\t\toptional: function( element ) {\n\t\t\tvar val = this.elementValue( element );\n\t\t\treturn !$.validator.methods.required.call( this, val, element ) && \"dependency-mismatch\";\n\t\t},\n\n\t\tstartRequest: function( element ) {\n\t\t\tif ( !this.pending[ element.name ] ) {\n\t\t\t\tthis.pendingRequest++;\n\t\t\t\t$( element ).addClass( this.settings.pendingClass );\n\t\t\t\tthis.pending[ element.name ] = true;\n\t\t\t}\n\t\t},\n\n\t\tstopRequest: function( element, valid ) {\n\t\t\tthis.pendingRequest--;\n\n\t\t\t// Sometimes synchronization fails, make sure pendingRequest is never < 0\n\t\t\tif ( this.pendingRequest < 0 ) {\n\t\t\t\tthis.pendingRequest = 0;\n\t\t\t}\n\t\t\tdelete this.pending[ element.name ];\n\t\t\t$( element ).removeClass( this.settings.pendingClass );\n\t\t\tif ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() ) {\n\t\t\t\t$( this.currentForm ).submit();\n\n\t\t\t\t// Remove the hidden input that was used as a replacement for the\n\t\t\t\t// missing submit button. The hidden input is added by `handle()`\n\t\t\t\t// to ensure that the value of the used submit button is passed on\n\t\t\t\t// for scripted submits triggered by this method\n\t\t\t\tif ( this.submitButton ) {\n\t\t\t\t\t$( \"input:hidden[name='\" + this.submitButton.name + \"']\", this.currentForm ).remove();\n\t\t\t\t}\n\n\t\t\t\tthis.formSubmitted = false;\n\t\t\t} else if ( !valid && this.pendingRequest === 0 && this.formSubmitted ) {\n\t\t\t\t$( this.currentForm ).triggerHandler( \"invalid-form\", [ this ] );\n\t\t\t\tthis.formSubmitted = false;\n\t\t\t}\n\t\t},\n\n\t\tpreviousValue: function( element, method ) {\n\t\t\tmethod = typeof method === \"string\" && method || \"remote\";\n\n\t\t\treturn $.data( element, \"previousValue\" ) || $.data( element, \"previousValue\", {\n\t\t\t\told: null,\n\t\t\t\tvalid: true,\n\t\t\t\tmessage: this.defaultMessage( element, { method: method } )\n\t\t\t} );\n\t\t},\n\n\t\t// Cleans up all forms and elements, removes validator-specific events\n\t\tdestroy: function() {\n\t\t\tthis.resetForm();\n\n\t\t\t$( this.currentForm )\n\t\t\t\t.off( \".validate\" )\n\t\t\t\t.removeData( \"validator\" )\n\t\t\t\t.find( \".validate-equalTo-blur\" )\n\t\t\t\t\t.off( \".validate-equalTo\" )\n\t\t\t\t\t.removeClass( \"validate-equalTo-blur\" )\n\t\t\t\t.find( \".validate-lessThan-blur\" )\n\t\t\t\t\t.off( \".validate-lessThan\" )\n\t\t\t\t\t.removeClass( \"validate-lessThan-blur\" )\n\t\t\t\t.find( \".validate-lessThanEqual-blur\" )\n\t\t\t\t\t.off( \".validate-lessThanEqual\" )\n\t\t\t\t\t.removeClass( \"validate-lessThanEqual-blur\" )\n\t\t\t\t.find( \".validate-greaterThanEqual-blur\" )\n\t\t\t\t\t.off( \".validate-greaterThanEqual\" )\n\t\t\t\t\t.removeClass( \"validate-greaterThanEqual-blur\" )\n\t\t\t\t.find( \".validate-greaterThan-blur\" )\n\t\t\t\t\t.off( \".validate-greaterThan\" )\n\t\t\t\t\t.removeClass( \"validate-greaterThan-blur\" );\n\t\t}\n\n\t},\n\n\tclassRuleSettings: {\n\t\trequired: { required: true },\n\t\temail: { email: true },\n\t\turl: { url: true },\n\t\tdate: { date: true },\n\t\tdateISO: { dateISO: true },\n\t\tnumber: { number: true },\n\t\tdigits: { digits: true },\n\t\tcreditcard: { creditcard: true }\n\t},\n\n\taddClassRules: function( className, rules ) {\n\t\tif ( className.constructor === String ) {\n\t\t\tthis.classRuleSettings[ className ] = rules;\n\t\t} else {\n\t\t\t$.extend( this.classRuleSettings, className );\n\t\t}\n\t},\n\n\tclassRules: function( element ) {\n\t\tvar rules = {},\n\t\t\tclasses = $( element ).attr( \"class\" );\n\n\t\tif ( classes ) {\n\t\t\t$.each( classes.split( \" \" ), function() {\n\t\t\t\tif ( this in $.validator.classRuleSettings ) {\n\t\t\t\t\t$.extend( rules, $.validator.classRuleSettings[ this ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\treturn rules;\n\t},\n\n\tnormalizeAttributeRule: function( rules, type, method, value ) {\n\n\t\t// Convert the value to a number for number inputs, and for text for backwards compability\n\t\t// allows type=\"date\" and others to be compared as strings\n\t\tif ( /min|max|step/.test( method ) && ( type === null || /number|range|text/.test( type ) ) ) {\n\t\t\tvalue = Number( value );\n\n\t\t\t// Support Opera Mini, which returns NaN for undefined minlength\n\t\t\tif ( isNaN( value ) ) {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\t\t}\n\n\t\tif ( value || value === 0 ) {\n\t\t\trules[ method ] = value;\n\t\t} else if ( type === method && type !== \"range\" ) {\n\n\t\t\t// Exception: the jquery validate 'range' method\n\t\t\t// does not test for the html5 'range' type\n\t\t\trules[ method ] = true;\n\t\t}\n\t},\n\n\tattributeRules: function( element ) {\n\t\tvar rules = {},\n\t\t\t$element = $( element ),\n\t\t\ttype = element.getAttribute( \"type\" ),\n\t\t\tmethod, value;\n\n\t\tfor ( method in $.validator.methods ) {\n\n\t\t\t// Support for in both html5 and older browsers\n\t\t\tif ( method === \"required\" ) {\n\t\t\t\tvalue = element.getAttribute( method );\n\n\t\t\t\t// Some browsers return an empty string for the required attribute\n\t\t\t\t// and non-HTML5 browsers might have required=\"\" markup\n\t\t\t\tif ( value === \"\" ) {\n\t\t\t\t\tvalue = true;\n\t\t\t\t}\n\n\t\t\t\t// Force non-HTML5 browsers to return bool\n\t\t\t\tvalue = !!value;\n\t\t\t} else {\n\t\t\t\tvalue = $element.attr( method );\n\t\t\t}\n\n\t\t\tthis.normalizeAttributeRule( rules, type, method, value );\n\t\t}\n\n\t\t// 'maxlength' may be returned as -1, 2147483647 ( IE ) and 524288 ( safari ) for text inputs\n\t\tif ( rules.maxlength && /-1|2147483647|524288/.test( rules.maxlength ) ) {\n\t\t\tdelete rules.maxlength;\n\t\t}\n\n\t\treturn rules;\n\t},\n\n\tdataRules: function( element ) {\n\t\tvar rules = {},\n\t\t\t$element = $( element ),\n\t\t\ttype = element.getAttribute( \"type\" ),\n\t\t\tmethod, value;\n\n\t\tfor ( method in $.validator.methods ) {\n\t\t\tvalue = $element.data( \"rule\" + method.charAt( 0 ).toUpperCase() + method.substring( 1 ).toLowerCase() );\n\n\t\t\t// Cast empty attributes like `data-rule-required` to `true`\n\t\t\tif ( value === \"\" ) {\n\t\t\t\tvalue = true;\n\t\t\t}\n\n\t\t\tthis.normalizeAttributeRule( rules, type, method, value );\n\t\t}\n\t\treturn rules;\n\t},\n\n\tstaticRules: function( element ) {\n\t\tvar rules = {},\n\t\t\tvalidator = $.data( element.form, \"validator\" );\n\n\t\tif ( validator.settings.rules ) {\n\t\t\trules = $.validator.normalizeRule( validator.settings.rules[ element.name ] ) || {};\n\t\t}\n\t\treturn rules;\n\t},\n\n\tnormalizeRules: function( rules, element ) {\n\n\t\t// Handle dependency check\n\t\t$.each( rules, function( prop, val ) {\n\n\t\t\t// Ignore rule when param is explicitly false, eg. required:false\n\t\t\tif ( val === false ) {\n\t\t\t\tdelete rules[ prop ];\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( val.param || val.depends ) {\n\t\t\t\tvar keepRule = true;\n\t\t\t\tswitch ( typeof val.depends ) {\n\t\t\t\tcase \"string\":\n\t\t\t\t\tkeepRule = !!$( val.depends, element.form ).length;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"function\":\n\t\t\t\t\tkeepRule = val.depends.call( element, element );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif ( keepRule ) {\n\t\t\t\t\trules[ prop ] = val.param !== undefined ? val.param : true;\n\t\t\t\t} else {\n\t\t\t\t\t$.data( element.form, \"validator\" ).resetElements( $( element ) );\n\t\t\t\t\tdelete rules[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\t// Evaluate parameters\n\t\t$.each( rules, function( rule, parameter ) {\n\t\t\trules[ rule ] = typeof parameter === \"function\" && rule !== \"normalizer\" ? parameter( element ) : parameter;\n\t\t} );\n\n\t\t// Clean number parameters\n\t\t$.each( [ \"minlength\", \"maxlength\" ], function() {\n\t\t\tif ( rules[ this ] ) {\n\t\t\t\trules[ this ] = Number( rules[ this ] );\n\t\t\t}\n\t\t} );\n\t\t$.each( [ \"rangelength\", \"range\" ], function() {\n\t\t\tvar parts;\n\t\t\tif ( rules[ this ] ) {\n\t\t\t\tif ( Array.isArray( rules[ this ] ) ) {\n\t\t\t\t\trules[ this ] = [ Number( rules[ this ][ 0 ] ), Number( rules[ this ][ 1 ] ) ];\n\t\t\t\t} else if ( typeof rules[ this ] === \"string\" ) {\n\t\t\t\t\tparts = rules[ this ].replace( /[\\[\\]]/g, \"\" ).split( /[\\s,]+/ );\n\t\t\t\t\trules[ this ] = [ Number( parts[ 0 ] ), Number( parts[ 1 ] ) ];\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tif ( $.validator.autoCreateRanges ) {\n\n\t\t\t// Auto-create ranges\n\t\t\tif ( rules.min != null && rules.max != null ) {\n\t\t\t\trules.range = [ rules.min, rules.max ];\n\t\t\t\tdelete rules.min;\n\t\t\t\tdelete rules.max;\n\t\t\t}\n\t\t\tif ( rules.minlength != null && rules.maxlength != null ) {\n\t\t\t\trules.rangelength = [ rules.minlength, rules.maxlength ];\n\t\t\t\tdelete rules.minlength;\n\t\t\t\tdelete rules.maxlength;\n\t\t\t}\n\t\t}\n\n\t\treturn rules;\n\t},\n\n\t// Converts a simple string to a {string: true} rule, e.g., \"required\" to {required:true}\n\tnormalizeRule: function( data ) {\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tvar transformed = {};\n\t\t\t$.each( data.split( /\\s/ ), function() {\n\t\t\t\ttransformed[ this ] = true;\n\t\t\t} );\n\t\t\tdata = transformed;\n\t\t}\n\t\treturn data;\n\t},\n\n\t// https://jqueryvalidation.org/jQuery.validator.addMethod/\n\taddMethod: function( name, method, message ) {\n\t\t$.validator.methods[ name ] = method;\n\t\t$.validator.messages[ name ] = message !== undefined ? message : $.validator.messages[ name ];\n\t\tif ( method.length < 3 ) {\n\t\t\t$.validator.addClassRules( name, $.validator.normalizeRule( name ) );\n\t\t}\n\t},\n\n\t// https://jqueryvalidation.org/jQuery.validator.methods/\n\tmethods: {\n\n\t\t// https://jqueryvalidation.org/required-method/\n\t\trequired: function( value, element, param ) {\n\n\t\t\t// Check if dependency is met\n\t\t\tif ( !this.depend( param, element ) ) {\n\t\t\t\treturn \"dependency-mismatch\";\n\t\t\t}\n\t\t\tif ( element.nodeName.toLowerCase() === \"select\" ) {\n\n\t\t\t\t// Could be an array for select-multiple or a string, both are fine this way\n\t\t\t\tvar val = $( element ).val();\n\t\t\t\treturn val && val.length > 0;\n\t\t\t}\n\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\treturn this.getLength( value, element ) > 0;\n\t\t\t}\n\t\t\treturn value !== undefined && value !== null && value.length > 0;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/email-method/\n\t\temail: function( value, element ) {\n\n\t\t\t// From https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address\n\t\t\t// Retrieved 2014-01-14\n\t\t\t// If you have a problem with this implementation, report a bug against the above spec\n\t\t\t// Or use custom methods to implement your own email validation\n\t\t\treturn this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/url-method/\n\t\turl: function( value, element ) {\n\n\t\t\t// Copyright (c) 2010-2013 Diego Perini, MIT licensed\n\t\t\t// https://gist.github.com/dperini/729294\n\t\t\t// see also https://mathiasbynens.be/demo/url-regex\n\t\t\t// modified to allow protocol-relative URLs\n\t\t\treturn this.optional( element ) || /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$/i.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/date-method/\n\t\tdate: ( function() {\n\t\t\tvar called = false;\n\n\t\t\treturn function( value, element ) {\n\t\t\t\tif ( !called ) {\n\t\t\t\t\tcalled = true;\n\t\t\t\t\tif ( this.settings.debug && window.console ) {\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t\"The `date` method is deprecated and will be removed in version '2.0.0'.\\n\" +\n\t\t\t\t\t\t\t\"Please don't use it, since it relies on the Date constructor, which\\n\" +\n\t\t\t\t\t\t\t\"behaves very differently across browsers and locales. Use `dateISO`\\n\" +\n\t\t\t\t\t\t\t\"instead or one of the locale specific methods in `localizations/`\\n\" +\n\t\t\t\t\t\t\t\"and `additional-methods.js`.\"\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() );\n\t\t\t};\n\t\t}() ),\n\n\t\t// https://jqueryvalidation.org/dateISO-method/\n\t\tdateISO: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^\\d{4}[\\/\\-](0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/number-method/\n\t\tnumber: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^(?:-?\\d+|-?\\d{1,3}(?:,\\d{3})+)?(?:\\.\\d+)?$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/digits-method/\n\t\tdigits: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^\\d+$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/minlength-method/\n\t\tminlength: function( value, element, param ) {\n\t\t\tvar length = Array.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || length >= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/maxlength-method/\n\t\tmaxlength: function( value, element, param ) {\n\t\t\tvar length = Array.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || length <= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/rangelength-method/\n\t\trangelength: function( value, element, param ) {\n\t\t\tvar length = Array.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || ( length >= param[ 0 ] && length <= param[ 1 ] );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/min-method/\n\t\tmin: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || value >= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/max-method/\n\t\tmax: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || value <= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/range-method/\n\t\trange: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || ( value >= param[ 0 ] && value <= param[ 1 ] );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/step-method/\n\t\tstep: function( value, element, param ) {\n\t\t\tvar type = $( element ).attr( \"type\" ),\n\t\t\t\terrorMessage = \"Step attribute on input type \" + type + \" is not supported.\",\n\t\t\t\tsupportedTypes = [ \"text\", \"number\", \"range\" ],\n\t\t\t\tre = new RegExp( \"\\\\b\" + type + \"\\\\b\" ),\n\t\t\t\tnotSupported = type && !re.test( supportedTypes.join() ),\n\t\t\t\tdecimalPlaces = function( num ) {\n\t\t\t\t\tvar match = ( \"\" + num ).match( /(?:\\.(\\d+))?$/ );\n\t\t\t\t\tif ( !match ) {\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Number of digits right of decimal point.\n\t\t\t\t\treturn match[ 1 ] ? match[ 1 ].length : 0;\n\t\t\t\t},\n\t\t\t\ttoInt = function( num ) {\n\t\t\t\t\treturn Math.round( num * Math.pow( 10, decimals ) );\n\t\t\t\t},\n\t\t\t\tvalid = true,\n\t\t\t\tdecimals;\n\n\t\t\t// Works only for text, number and range input types\n\t\t\t// TODO find a way to support input types date, datetime, datetime-local, month, time and week\n\t\t\tif ( notSupported ) {\n\t\t\t\tthrow new Error( errorMessage );\n\t\t\t}\n\n\t\t\tdecimals = decimalPlaces( param );\n\n\t\t\t// Value can't have too many decimals\n\t\t\tif ( decimalPlaces( value ) > decimals || toInt( value ) % toInt( param ) !== 0 ) {\n\t\t\t\tvalid = false;\n\t\t\t}\n\n\t\t\treturn this.optional( element ) || valid;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/equalTo-method/\n\t\tequalTo: function( value, element, param ) {\n\n\t\t\t// Bind to the blur event of the target in order to revalidate whenever the target field is updated\n\t\t\tvar target = $( param );\n\t\t\tif ( this.settings.onfocusout && target.not( \".validate-equalTo-blur\" ).length ) {\n\t\t\t\ttarget.addClass( \"validate-equalTo-blur\" ).on( \"blur.validate-equalTo\", function() {\n\t\t\t\t\t$( element ).valid();\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn value === target.val();\n\t\t},\n\n\t\t// https://jqueryvalidation.org/remote-method/\n\t\tremote: function( value, element, param, method ) {\n\t\t\tif ( this.optional( element ) ) {\n\t\t\t\treturn \"dependency-mismatch\";\n\t\t\t}\n\n\t\t\tmethod = typeof method === \"string\" && method || \"remote\";\n\n\t\t\tvar previous = this.previousValue( element, method ),\n\t\t\t\tvalidator, data, optionDataString;\n\n\t\t\tif ( !this.settings.messages[ element.name ] ) {\n\t\t\t\tthis.settings.messages[ element.name ] = {};\n\t\t\t}\n\t\t\tprevious.originalMessage = previous.originalMessage || this.settings.messages[ element.name ][ method ];\n\t\t\tthis.settings.messages[ element.name ][ method ] = previous.message;\n\n\t\t\tparam = typeof param === \"string\" && { url: param } || param;\n\t\t\toptionDataString = $.param( $.extend( { data: value }, param.data ) );\n\t\t\tif ( previous.old === optionDataString ) {\n\t\t\t\treturn previous.valid;\n\t\t\t}\n\n\t\t\tprevious.old = optionDataString;\n\t\t\tvalidator = this;\n\t\t\tthis.startRequest( element );\n\t\t\tdata = {};\n\t\t\tdata[ element.name ] = value;\n\t\t\t$.ajax( $.extend( true, {\n\t\t\t\tmode: \"abort\",\n\t\t\t\tport: \"validate\" + element.name,\n\t\t\t\tdataType: \"json\",\n\t\t\t\tdata: data,\n\t\t\t\tcontext: validator.currentForm,\n\t\t\t\tsuccess: function( response ) {\n\t\t\t\t\tvar valid = response === true || response === \"true\",\n\t\t\t\t\t\terrors, message, submitted;\n\n\t\t\t\t\tvalidator.settings.messages[ element.name ][ method ] = previous.originalMessage;\n\t\t\t\t\tif ( valid ) {\n\t\t\t\t\t\tsubmitted = validator.formSubmitted;\n\t\t\t\t\t\tvalidator.resetInternals();\n\t\t\t\t\t\tvalidator.toHide = validator.errorsFor( element );\n\t\t\t\t\t\tvalidator.formSubmitted = submitted;\n\t\t\t\t\t\tvalidator.successList.push( element );\n\t\t\t\t\t\tvalidator.invalid[ element.name ] = false;\n\t\t\t\t\t\tvalidator.showErrors();\n\t\t\t\t\t} else {\n\t\t\t\t\t\terrors = {};\n\t\t\t\t\t\tmessage = response || validator.defaultMessage( element, { method: method, parameters: value } );\n\t\t\t\t\t\terrors[ element.name ] = previous.message = message;\n\t\t\t\t\t\tvalidator.invalid[ element.name ] = true;\n\t\t\t\t\t\tvalidator.showErrors( errors );\n\t\t\t\t\t}\n\t\t\t\t\tprevious.valid = valid;\n\t\t\t\t\tvalidator.stopRequest( element, valid );\n\t\t\t\t}\n\t\t\t}, param ) );\n\t\t\treturn \"pending\";\n\t\t}\n\t}\n\n} );\n\r\n// Ajax mode: abort\n// usage: $.ajax({ mode: \"abort\"[, port: \"uniqueport\"]});\n// if mode:\"abort\" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort()\n\nvar pendingRequests = {},\n\tajax;\n\n// Use a prefilter if available (1.5+)\nif ( $.ajaxPrefilter ) {\n\t$.ajaxPrefilter( function( settings, _, xhr ) {\n\t\tvar port = settings.port;\n\t\tif ( settings.mode === \"abort\" ) {\n\t\t\tif ( pendingRequests[ port ] ) {\n\t\t\t\tpendingRequests[ port ].abort();\n\t\t\t}\n\t\t\tpendingRequests[ port ] = xhr;\n\t\t}\n\t} );\n} else {\n\n\t// Proxy ajax\n\tajax = $.ajax;\n\t$.ajax = function( settings ) {\n\t\tvar mode = ( \"mode\" in settings ? settings : $.ajaxSettings ).mode,\n\t\t\tport = ( \"port\" in settings ? settings : $.ajaxSettings ).port;\n\t\tif ( mode === \"abort\" ) {\n\t\t\tif ( pendingRequests[ port ] ) {\n\t\t\t\tpendingRequests[ port ].abort();\n\t\t\t}\n\t\t\tpendingRequests[ port ] = ajax.apply( this, arguments );\n\t\t\treturn pendingRequests[ port ];\n\t\t}\n\t\treturn ajax.apply( this, arguments );\n\t};\n}\nreturn $;\r\n}));","/*!\n * jQuery JavaScript Library v3.6.0\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// 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\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* 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\nvar\n\tversion = \"3.6.0\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur as it's already being fired\n\t\t// in leverageNative.\n\t\t_default: function() {\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\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\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"