{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./cartridges/app_custom_roberts/cartridge/client/default/js/custom.js","webpack:///./cartridges/app_custom_roberts/cartridge/client/default/js/custom/custom.js","webpack:///./cartridges/app_custom_roberts/cartridge/client/default/js/custom/customDetailPage.js","webpack:///./cartridges/app_custom_roberts/cartridge/client/default/js/productDetail.js","webpack:///./cartridges/app_custom_roberts/cartridge/client/minifiedJs/productDetail.js","webpack:///./cartridges/storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/util.js","webpack:///../../js/src/util.js","webpack:///../../js/src/alert.js","webpack:///../../js/src/button.js","webpack:///../../js/src/carousel.js","webpack:///../../js/src/collapse.js","webpack:///../../js/src/dropdown.js","webpack:///../../js/src/modal.js","webpack:///../../js/src/tools/sanitizer.js","webpack:///../../js/src/tooltip.js","webpack:///../../js/src/popover.js","webpack:///../../js/src/scrollspy.js","webpack:///../../js/src/tab.js","webpack:///../../js/src/toast.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/owl.carousel/dist/owl.carousel.js","webpack:///./node_modules/owl.carousel/src/js/owl.carousel.js","webpack:///../../src/utils/isBrowser.js","webpack:///../../src/utils/debounce.js","webpack:///../../src/utils/isFunction.js","webpack:///../../src/utils/getStyleComputedProperty.js","webpack:///../../src/utils/getParentNode.js","webpack:///../../src/utils/getScrollParent.js","webpack:///../../src/utils/getReferenceNode.js","webpack:///../../src/utils/isIE.js","webpack:///../../src/utils/getOffsetParent.js","webpack:///../../src/utils/isOffsetContainer.js","webpack:///../../src/utils/getRoot.js","webpack:///../../src/utils/findCommonOffsetParent.js","webpack:///../../src/utils/getScroll.js","webpack:///../../src/utils/includeScroll.js","webpack:///../../src/utils/getBordersSize.js","webpack:///../../src/utils/getWindowSizes.js","webpack:///../../src/utils/getClientRect.js","webpack:///../../src/utils/getBoundingClientRect.js","webpack:///../../src/utils/getOffsetRectRelativeToArbitraryNode.js","webpack:///../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","webpack:///../../src/utils/isFixed.js","webpack:///../../src/utils/getFixedPositionOffsetParent.js","webpack:///../../src/utils/getBoundaries.js","webpack:///../../src/utils/computeAutoPlacement.js","webpack:///../../src/utils/getReferenceOffsets.js","webpack:///../../src/utils/getOuterSizes.js","webpack:///../../src/utils/getOppositePlacement.js","webpack:///../../src/utils/getPopperOffsets.js","webpack:///../../src/utils/find.js","webpack:///../../src/utils/findIndex.js","webpack:///../../src/utils/runModifiers.js","webpack:///../../src/methods/update.js","webpack:///../../src/utils/isModifierEnabled.js","webpack:///../../src/utils/getSupportedPropertyName.js","webpack:///../../src/methods/destroy.js","webpack:///../../src/utils/getWindow.js","webpack:///../../src/utils/setupEventListeners.js","webpack:///../../src/methods/enableEventListeners.js","webpack:///../../src/utils/removeEventListeners.js","webpack:///../../src/methods/disableEventListeners.js","webpack:///../../src/utils/isNumeric.js","webpack:///../../src/utils/setStyles.js","webpack:///../../src/utils/setAttributes.js","webpack:///../../src/modifiers/applyStyle.js","webpack:///../../src/utils/getRoundedOffsets.js","webpack:///../../src/modifiers/computeStyle.js","webpack:///../../src/utils/isModifierRequired.js","webpack:///../../src/modifiers/arrow.js","webpack:///../../src/utils/getOppositeVariation.js","webpack:///../../src/methods/placements.js","webpack:///../../src/utils/clockwise.js","webpack:///../../src/modifiers/flip.js","webpack:///../../src/modifiers/keepTogether.js","webpack:///../../src/modifiers/offset.js","webpack:///../../src/modifiers/preventOverflow.js","webpack:///../../src/modifiers/shift.js","webpack:///../../src/modifiers/hide.js","webpack:///../../src/modifiers/inner.js","webpack:///../../src/modifiers/index.js","webpack:///../../src/methods/defaults.js","webpack:///../../src/index.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js"],"names":["processInclude","require","custom","$","document","ready","window","jQuery","$C","el","querySelector","productTiles","querySelectorAll","dataLayer","setEventListener","e","index","gtmProdData","getAttribute","gtmProdDataObj","JSON","parse","event","gtmData","cart_id","date_created_cart","date_update_cart","total_quantity_cart","total_price_cart","currencyCode","item_id","item_name","item_variant","price_without_discount","is_in_stock","is_on_sale","item_list_name","discount","item_brand","size","quantity","added_date","item_list_id","image","item_category","price","type","push","onload","forEach","productTile","addEventListener","call","plpItems","item","sessionStorage","setItem","showMoreButton","changeSize","scrollY","body","clientHeight","click","setTimeout","removeEventListener","productId","on","hasClass","SKU","innerText","removeClass","priceTotalValue","val","priceWithoutDollar","replace","priceAsInteger","parseInt","toFixed","find","hide","handleNavbarScroll","scroll","scrollTop","addClass","initNavbar","children","hover","show","initMegaMenu","category","attr","subid","closeid","id","location","initSearchBox","is","owlCarousel","margin","autoplayTimeout","autoplayHoverPause","autoWidth","nav","loop","dots","responsive","items","module","exports","initCrossSellCarousel","initTooltips","tooltip","selector","placement","initImageSlider","initMobileSlider","initWishlistFeature","link","data","settings","url","method","headers","stringify","pid","ajax","done","response","isAdded","initExpandableText","text","length","btn","h","scrollHeight","css","stopPropagation","height","animate","openMobileSelect","closeMobileSelect","initFullScreenCarousel","$item","$wHeight","eq","each","$src","$color","parent","remove","carousel","interval","pause","initGlobalTooltips","t","o","a","d","i","l","m","c","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","__esModule","create","bind","n","default","prototype","hasOwnProperty","p","s","setTabNextFocus","key","keyCode","containerSelector","firstElementSelector","lastElementSelector","nextToLastElementSelector","shiftKey","focus","preventDefault","keys","closest","parents","product","variationAttributes","indexOf","values","selected","siblings","assistiveSelectedText","empty","removeAttr","selectable","resetUrl","resources","productType","readyToOrder","append","alt","title","appendTo","first","detach","images","large","replaceWith","html","promotionsHtml","availability","messages","info_selectforstock","trigger","$productContainer","message","ID","attributes","label","container","success","optionsHtml","map","join","quantities","spinner","stop","error","parseHTML","footer","start","bonusChoiceRuleBased","showProductsUrlRuleBased","showProductsUrlListBased","maxBonusItems","uuid","pliUUID","addToCartUrl","pageSize","labels","selectprods","dataType","renderedTemplate","enterDialogMessage","closeButtonText","modal","u","optionId","selectedValueId","toArray","attributeSelect","methods","editBonusProducts","focusChooseBonusProductModal","onClosingChooseBonusProductModal","trapChooseBonusProductModalFocus","colorAttribute","selectAttribute","currentTarget","addToCart","qty","options","pidsObj","childProducts","isNumeric","quantityTotal","minicartCountOfItems","newBonusDiscountLineItem","reportingURL","selectBonusProduct","removeBonusProduct","enableBonusProductSelection","available","showMoreBonusProducts","addBonusProductsToCart","bonusProducts","totalQty","errorMessage","msgSuccess","reload","getPidValue","getQuantitySelected","miniCartReportingUrl","element","classList","contains","updateAttributesAndDetails","attributesHtml","shortDescription","longDescription","showSpinner","updateAttribute","q","y","z","isActive","isDisabled","selectElement","k","attributeId","displayValue","updateAddToCart","every","updateAvailability","sizeChart","content","toggleClass","has","target","copyProductLink","select","execCommand","include","TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","toType","obj","toString","match","toLowerCase","getSpecialTransitionEndEvent","bindType","delegateType","handle","handleObj","handler","apply","arguments","undefined","transitionEndEmulator","duration","called","one","Util","triggerTransitionEnd","_this","setTransitionEndSupport","fn","emulateTransitionEnd","special","getUID","prefix","Math","random","getElementById","getSelectorFromElement","hrefAttr","trim","_","getTransitionDurationFromElement","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","expectedTypes","valueType","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","jQueryDetection","TypeError","version","jquery","minMajor","ltMajor","minMinor","minPatch","maxMajor","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","CLASS_NAME_ALERT","CLASS_NAME_FADE","CLASS_NAME_SHOW","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","SELECTOR_DISMISS","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","closeEvent","Event","_destroyElement","_jQueryInterface","$element","_handleDismiss","alertInstance","Constructor","noConflict","CLASS_NAME_ACTIVE","CLASS_NAME_BUTTON","CLASS_NAME_FOCUS","EVENT_FOCUS_BLUR_DATA_API","EVENT_LOAD_DATA_API","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLES","SELECTOR_DATA_TOGGLE","SELECTOR_DATA_TOGGLES_BUTTONS","SELECTOR_INPUT","SELECTOR_ACTIVE","SELECTOR_BUTTON","Button","shouldAvoidTriggerChange","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","setAttribute","avoidTriggerChange","button","initialButton","inputBtn","tagName","buttons","slice","len","add","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","CLASS_NAME_CAROUSEL","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","Default","keyboard","slide","wrap","touch","DefaultType","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","_updateInterval","setInterval","visibilityState","to","activeIndex","_getItemIndex","direction","off","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","originalEvent","pointerType","clientX","touches","move","end","clearTimeout","which","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","elementInterval","defaultInterval","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slidEvent","_this4","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","DIMENSION_WIDTH","DIMENSION_HEIGHT","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","SELECTOR_ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","filter","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","actives","activesData","not","startEvent","dimension","_getDimension","style","setTransitioning","complete","capitalizedDimension","scrollSize","getBoundingClientRect","triggerArrayLength","$elem","isTransitioning","hasWidth","_getTargetFromElement","triggerArray","isOpen","$trigger","selectors","$target","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLASS_NAME_DISABLED","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_POSITION_STATIC","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","offset","flip","boundary","reference","display","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_clearMenus","usePopper","showEvent","_getParentFromElement","Popper","referenceElement","_getPopperConfig","noop","hideEvent","destroy","update","scheduleUpdate","constructor","_getPlacement","$parentDropdown","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","CLASS_NAME_SCROLLABLE","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_STATIC","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","backdrop","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","isModalOverflowing","overflowY","modalTransitionDuration","modalBody","Node","ELEMENT_NODE","appendChild","removeAttribute","_enforceFocus","shownEvent","transitionComplete","_this5","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","createElement","className","_this9","backdropTransitionDuration","callbackRemove","paddingLeft","paddingRight","rect","round","left","right","innerWidth","_getScrollbarWidth","fixedContent","stickyContent","actualPadding","calculatedPadding","_this10","actualMargin","marginRight","calculatedMargin","padding","elements","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","_this11","uriAttrs","ARIA_ATTRIBUTE_PATTERN","DefaultWhitelist","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","pre","small","span","sub","sup","strong","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","SELECTOR_ARROW","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","animation","template","delay","fallbackPlacement","customClass","sanitize","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","defaultBsConfig","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","$tip","tabClass","popperData","instance","popper","initConfigAnimation","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","CLASS_NAME_DROPDOWN_ITEM","EVENT_ACTIVATE","EVENT_SCROLL","METHOD_OFFSET","METHOD_POSITION","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_ITEMS","SELECTOR_DROPDOWN_TOGGLE","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","top","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","node","scrollSpys","scrollSpysLength","$spy","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","previous","listElement","itemSelector","makeArray","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","$this","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_clearTimeout","_close","global","factory","w","noGlobal","arr","getProto","getPrototypeOf","flat","array","class2type","hasOwn","fnToString","ObjectFunctionString","support","isFunction","isWindow","preservedScriptAttributes","src","nonce","noModule","DOMEval","doc","script","head","init","num","pushStack","elems","ret","merge","prevObject","last","even","grep","_elem","odd","j","splice","extend","name","copy","copyIsArray","clone","deep","isPlainObject","Array","isArray","expando","isReady","msg","proto","Ctor","isEmptyObject","globalEval","isArrayLike","results","inArray","second","invert","callbackInverse","matches","callbackExpect","arg","guid","iterator","_i","Sizzle","Expr","getText","isXML","tokenize","compile","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","Date","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pop","pushNative","list","booleans","whitespace","identifier","pseudos","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","dir","childNodes","els","seed","nid","groups","newSelector","newContext","exec","getElementsByTagName","getElementsByClassName","qsa","testContext","scope","toSelector","qsaError","cache","cacheLength","shift","markFunction","assert","addHandle","attrs","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","hasCompare","subWindow","defaultView","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","tag","tmp","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","matcher","unmatched","lang","elemLang","hash","hasFocus","href","tabIndex","selectedIndex","_matchIndexes","radio","checkbox","file","password","submit","reset","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","escapeSelector","until","truncate","rneedsContext","needsContext","rsingleTag","winnow","qualifier","self","rootjQuery","rparentsprev","guaranteedUnique","contents","prevAll","addBack","sibling","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","reverse","rnothtmlwhite","createOptions","object","flag","Callbacks","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","lock","fireWith","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","promise","fail","then","Deferred","func","tuples","state","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","that","mightThrow","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","stack","console","warn","readyException","readyList","catch","readyWait","wait","completed","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","string","acceptData","owner","Data","uid","configurable","set","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","getData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isAttached","composed","isHiddenWithinTree","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","rcheckableType","rtagName","rscriptType","fragment","createDocumentFragment","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","tr","td","_default","tbody","tfoot","colgroup","caption","th","optgroup","getAll","setGlobalEval","refElements","buildFragment","scripts","selection","ignored","attached","nodes","createTextNode","htmlPrefilter","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","err","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","addProp","hook","writable","load","noBubble","leverageNative","beforeunload","returnValue","notAsync","saved","isTrigger","stopImmediatePropagation","props","defaultPrevented","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","view","charCode","clientY","offsetX","offsetY","pointerId","screenX","screenY","targetTouches","toElement","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","prepend","insertBefore","before","after","replaceChild","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","getComputedStyle","swap","old","rboxStyle","computeStyleTests","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelBoxStyles","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","borderTopWidth","borderBottomWidth","curCSS","computed","minWidth","maxWidth","getPropertyValue","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","border","suffix","expand","expanded","parts","Tween","easing","propHooks","run","percent","eased","pos","step","fx","scrollLeft","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","requestAnimationFrame","tick","createFxNow","genFx","includeWidth","createTween","Animation","tweeners","defaultPrefilter","opts","oldfire","propTween","restoreDisplay","isBox","anim","dataShow","unqueued","overflow","overflowX","propFilter","specialEasing","properties","stopped","prefilters","currentTime","startTime","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","time","timeout","checkOn","optSelected","radioValue","boolHook","nType","attrHooks","bool","attrNames","getter","lowercaseName","rfocusable","rclickable","removeProp","propFix","tabindex","stripAndCollapse","getClass","classesToArray","classes","curValue","clazz","finalValue","stateVal","isValidValue","classNames","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","parserErrorElem","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","encodeURIComponent","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","ajaxSettings","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","isSuccess","conv2","current","conv","responseFields","dataFilter","throws","lastModified","etag","isLocal","protocol","processData","async","contentType","accepts","json","ajaxSetup","ajaxPrefilter","ajaxTransport","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","beforeSend","send","nativeStatusText","modified","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhr","XMLHttpRequest","xhrSuccessStatus","xhrSupported","cors","errorCallback","open","username","xhrFields","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNaN","define","_jQuery","_$","Owl","Defaults","_handlers","_plugins","_supress","_current","_speed","_coordinates","_breakpoint","_width","_clones","_mergers","_widths","_invalidated","_pipe","_drag","pointer","stage","_states","tags","Plugins","plugin","charAt","Workers","priority","worker","initialize","center","rewind","checkVisibility","mouseDrag","touchDrag","pullDrag","freeDrag","stagePadding","mergeFit","startPosition","rtl","smartSpeed","fluidSpeed","dragEndSpeed","responsiveRefreshRate","responsiveBaseElement","fallbackEasing","slideTransition","info","nestedItemSelector","itemElement","stageElement","refreshClass","loadedClass","loadingClass","rtlClass","responsiveClass","dragClass","itemClass","stageClass","stageOuterClass","grabClass","Inner","Outer","Type","State","$stage","grid","widths","min","clones","repeat","normalize","outerHTML","coordinates","minimum","maximum","begin","inner","outer","op","initializeStage","initializeItems","$items","isVisible","invalidate","enter","imgs","nestedSelector","preloadAutoWidthImages","registerEventHandlers","leave","viewport","overwrites","breakpoint","Number","optionsLogic","prepare","all","onThrottledResize","resizeTimer","onResize","onTransitionEnd","onDragStart","onDragEnd","transform","x","getTime","difference","onDragMove","pull","coordinate","transform3d","part","suppress","release","reciprocalItemsWidth","elementWidth","mergers","multiplier","newPosition","factor","revert","distance","srcElement","originalTarget","Image","listener","capture","detachEvent","onTrigger","register","owl","number","Zepto","AutoRefresh","_core","_visible","autoRefresh","watch","autoRefreshInterval","getOwnPropertyNames","Lazy","_loaded","lazyLoad","lazyLoadEager","$elements","devicePixelRatio","AutoHeight","_previousHeight","autoHeight","_intervalId","refThis","resize","autoHeightClass","lazyLoadEnabled","heights","maxheight","Video","_videos","_playing","video","isInFullScreen","fetch","play","videoHeight","videoWidth","thumbnail","tnLink","icon","path","dimensions","customTn","srcType","lazyClass","thumbnail_large","framegrab_url","iframe","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","Animate","core","swapping","animateOut","animateIn","clear","incoming","outgoing","Autoplay","_call","_time","_paused","autoplay","autoplaySpeed","_next","read","elapsed","Navigation","_initialized","_pages","_controls","_templates","_overrides","dotsData","dotClass","draw","navText","navSpeed","navElement","navContainer","navContainerClass","navClass","slideBy","dotsClass","dotsEach","dotsSpeed","dotsContainer","override","$relative","$previous","$next","$absolute","control","overides","lower","upper","page","getPosition","successor","standard","Hash","_hashes","substring","URLhashListener","prefixes","WebkitTransition","MozTransition","OTransition","WebkitAnimation","MozAnimation","OAnimation","tests","csstransforms","csstransforms3d","csstransitions","cssanimations","prefixed","timeoutDuration","longerTimeoutBrowsers","isBrowser","userAgent","microtaskDebounce","Promise","taskDebounce","scheduled","supportsMicroTasks","functionToCheck","getType","getStyleComputedProperty","getParentNode","getScrollParent","getReferenceNode","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","nextElementSibling","isOffsetContainer","getRoot","findCommonOffsetParent","element1","element2","order","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","modifier","bottom","getBordersSize","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","getClientRect","sizes","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","borderLeftWidth","marginTop","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","boundaries","boundariesNode","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","findIndex","runModifiers","ends","modifiersToRun","isDestroyed","positionFixed","isCreated","isModifierEnabled","modifierName","some","getSupportedPropertyName","upperProp","toCheck","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","removeEventListeners","setStyles","setAttributes","arrowElement","arrowStyles","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","floor","noRound","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","prefixedProperty","invertTop","invertLeft","_extends","isModifierRequired","requestingName","requestedName","requesting","isRequired","requested","sideCapitalized","altSide","opSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","_data$offsets$arrow","getOppositeVariation","validPlacements","placements","clockwise","counter","BEHAVIORS","flipped","placementOpposite","flipOrder","FLIP","CLOCKWISE","COUNTERCLOCKWISE","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","str","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","mergeWithPrevious","reduce","index2","_ref","transformProp","popperStyles","escapeWithReference","shiftvariation","shiftOffsets","bound","subtractLength","debounce","onLoad","Utils","PopperUtils","g","Function","webpackPolyfill","deprecate","paths"],"mappings":"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","file":"default/js/productDetail.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 = \"./cartridges/app_custom_roberts/cartridge/client/default/js/productDetail.js\");\n","const processInclude = require(\"base/js/util\");\nconst custom = require(\"./custom/custom\");\n\n$(document).ready(() => {\n  processInclude(custom);\n});","window.jQuery = window.$ = require(\"jquery\");\nrequire('owl.carousel/src/js/owl.carousel');\nconst $C = (el) => document.querySelector(el);\n\n/**\n * Add select_item event to GTM dataLayer\n */\nlet productTiles = document.querySelectorAll('#product-search-results .product');\nwindow.dataLayer = window.dataLayer || [];\n\nfunction setEventListener(e,index) {\n  let gtmProdData = this.getAttribute('data-gtmga4data');\n  let gtmProdDataObj = JSON.parse(gtmProdData);\n  let event = \"select_item\";\n  let gtmData = {\n    \"event\": event,\n    \"ecommerce\": {\n      \"cart_id\": gtmProdDataObj.cart_id,\n      \"date_created_cart\": gtmProdDataObj.date_created_cart,\n      \"date_update_cart\": gtmProdDataObj.date_update_cart,\n      \"total_quantity_cart\": gtmProdDataObj.total_quantity_cart,\n      \"total_price_cart\": gtmProdDataObj.total_price_cart,\n      \"currencyCode\": gtmProdDataObj.currencyCode,\n      \"items\": [{\n        \"item_id\": gtmProdDataObj.item_id,\n        \"item_name\": gtmProdDataObj.item_name,\n        \"item_variant\": gtmProdDataObj.item_variant,\n        \"price_without_discount\": gtmProdDataObj.price_without_discount,\n        \"is_in_stock\": gtmProdDataObj.is_in_stock,\n        \"is_on_sale\": gtmProdDataObj.is_on_sale,\n        \"item_list_name\": gtmProdDataObj.item_list_name,\n        \"discount\": gtmProdDataObj.discount,\n        \"item_brand\": gtmProdDataObj.item_brand,\n        \"size\": gtmProdDataObj.size,\n        \"quantity\": gtmProdDataObj.quantity,\n        \"added_date\": gtmProdDataObj.added_date,\n        \"item_list_id\": gtmProdDataObj.item_list_id,\n        \"image\": gtmProdDataObj.image,\n        \"item_category\": gtmProdDataObj.item_category,\n        \"price\": gtmProdDataObj.price,\n        \"type\": gtmProdDataObj.type,\n        \"index\": index,\n        \"currency\": gtmProdDataObj.currencyCode\n      }]\n    }\n  };\n  window.dataLayer.push(gtmData);\n}\n\nwindow.onload = function () {\n  productTiles?.forEach(function (productTile,index) {\n    productTile.addEventListener('click', function (e) {\n      setEventListener.call(productTile, e, index);\n    });\n  });\n};\n\n/**\n * End select_item event to GTM dataLayer\n */\n\n/* PLP */\n// SHOW MORE BUTTON\n\nvar plpItems = document.querySelectorAll('#product-search-results .product');\nplpItems.forEach(function (item) {\n  item.addEventListener('click', function (e) {\n    sessionStorage.setItem('fromPLP', true);\n  });\n});\nlet showMoreButton = $C(\".grid-footer .show-more button\");\n\nlet changeSize = false;\nif (showMoreButton) {\n  window.addEventListener(\"scroll\", () => {\n    if (\n      window.scrollY >=\n      document.body.clientHeight - document.body.clientHeight * 0.6 &&\n      !changeSize\n    ) {\n      if (showMoreButton) showMoreButton.click();\n      changeSize = true;\n      setTimeout(() => {\n        productTiles = document.querySelectorAll('.product-grid .product');\n        productTiles.forEach(function (item) {\n          item.removeEventListener('click', setEventListener);\n          item.addEventListener('click', setEventListener);\n        });\n        changeSize = false;\n        showMoreButton = $C(\".grid-footer .show-more button\");\n        // console.log(showMoreButton);\n      }, 1000);\n    }\n  });\n}\n\n\nconst productId = document.querySelector(\".productID .productID__id\");\n\nif (productId) {\n  $('.select-talla').on(\"click\", () => {\n    if ($('li.select-colors').hasClass('actives')) {\n      setTimeout(() => {\n        const productId = document.querySelector(\n          \".productID .productID__id\"\n        );\n\n        const SKU = document.querySelector(\".productSku .product-id\");\n        if (productId.innerText != SKU.innerText) {\n          $(\".productSku\").removeClass(\"d-none\");\n        }\n      }, 500);\n\n      $('.list-talla').on(\"click\", () => {\n        setTimeout(() => {\n          const productId = document.querySelector(\n            \".productID .productID__id\"\n          );\n          const SKU = document.querySelector(\".productSku .product-id\");\n\n          if (productId.innerText != SKU.innerText) {\n            $(\".productSku\").removeClass(\"d-none\");\n          }\n        }, 500);\n      });\n    }\n  })\n}\n\n\ndocument.addEventListener(\"DOMContentLoaded\", function (event) {\n  var priceTotalValue = $('#cart-price-total').val();\n  if (priceTotalValue) {\n    var priceWithoutDollar = priceTotalValue.replace(',', '').replace('$', '')\n    var priceAsInteger = parseInt(priceWithoutDollar).toFixed(); // Assuming the price is in dollars and cents\n    if (priceAsInteger < 300.00) {\n      $('#paymentType').find(\"option:contains('3')\").hide();\n      $('#paymentType').find(\"option:contains('6')\").hide();\n      $('#paymentType').find(\"option:contains('9')\").hide();\n    } else if (priceAsInteger >= 300.00 && priceAsInteger < 600.00) {\n      $('#paymentType').find(\"option:contains('6')\").hide();\n      $('#paymentType').find(\"option:contains('9')\").hide();\n    } else if (priceAsInteger >= 600.00 && priceAsInteger < 900.00) {\n      $('#paymentType').find(\"option:contains('9')\").hide();\n    }\n  }\n});\n\n\nfunction handleNavbarScroll() {\n  $(window).scroll(function () {\n    if ($(window).scrollTop() > 75) {\n      $('.navbar').addClass('navbar-fixed');\n    }\n    if ($(window).scrollTop() < 75) {\n      $('.navbar').removeClass('navbar-fixed');\n    }\n  });\n}\n\nfunction initNavbar() {\n  if ($(window).scrollTop() > 75) {\n    $('.navbar').addClass('navbar-fixed');\n  }\n  \n  if ('${pdict.page.ID}' !== 'homepage') {\n    $('.navbar').removeClass('navbar-light');\n    $('.navbar').addClass('navbar-other logoheader');\n  }\n\n  $('.container-fluid').click(function(){\n    if ($('nav').hasClass('navbar-other-dropdown')) {\n      $('.dropdown').children('ul').removeClass('d-block');\n      $('.navbar').removeClass('navbar-other');\n      $('.navbar').addClass('navbar-other-dropdown');\n    }\n  });\n\n  $(\".minicart\").hover(\n    function() { $('#popover').show(); },\n    function() { $('#popover').hide(); }\n  );\n}\n\nfunction initMegaMenu() {\n  $('.display-menu-data').click(function(){\n    let category = $(this).attr('data-id');\n    let subid = $(this).attr('data-subid');\n    let closeid = $(this).attr('data-close-id');\n    if (closeid == '0') {\n      $('.' + category + ' div .' + category + '-hide').hide();\n      $('.' + subid + '-' + category + '-sub-category').addClass('display-flex');\n    } else {\n      $('.' + closeid).removeClass('display-flex');\n      $('.' + category + ' div .' + category + '-hide').show();\n    }\n    return false;\n  });\n\n  $('.level-one').on('click', function(){\n    let id = $(this).attr('id');\n    window.location = $('#' + id).attr('href');\n  });\n}\n\nfunction initSearchBox() {\n  $('.search-icon-down').click(function() {\n    $(\".box-search\").addClass(\"fullbox\");\n\n    if ($('.box-search').is(':hidden')) {\n      $('.box-search').show();\n      $('.navbar').addClass('navbar-other');\n    } else {\n      $('.box-search').hide();\n      $('.navbar').removeClass('navbar-other');\n    }\n  });\n\n  $('.search-cross').click(function() {\n    $('.box-search').hide();\n    $('.navbar').removeClass('navbar-other');\n  });\n}\n\nif('${pdict.page.ID}' == 'homepage'){\n}\nelse{\n  $('.navbar').removeClass('navbar-light');\n  $('.navbar').addClass('navbar-other');\n  $('.navbar').addClass('logoheader');\n}\n $('.owl-carousel').owlCarousel({\n     margin:5,\n     autoplayTimeout:3000,\n     autoplayHoverPause:false,\n     autoWidth:false,\n     nav:false,\n     loop:true,\n     dots:true,\n     responsive:{\n         0:{\n             items:2,\n             nav:true\n         },\n         600:{\n             items:2,\n             nav:false\n         },\n         1000:{\n             items:2,\n             nav:true,\n             loop:false\n         }\n     }\n })\n \nmodule.exports = () => {\n  handleNavbarScroll();\n  initNavbar();\n  initMegaMenu();\n  initSearchBox();\n};\n","\"use strict\";\nwindow.jQuery = window.$ = require('jquery');\nrequire('owl.carousel');\nrequire('bootstrap');\n// Función para inicializar el carrusel de productos cruzados\nfunction initCrossSellCarousel() {\n    $('#product-cross-sell').owlCarousel({\n      margin: 5,\n      autoplayTimeout: 3000,\n      autoplayHoverPause: false,\n      autoWidth: false,\n      nav: true,\n      loop: true,\n      dots: true,\n      items: 4,\n      responsive: {\n        0: {\n          items: 1,\n          nav: false,\n          dots: false\n        },\n        600: {\n          items: 1,\n          nav: false,\n          dots: false\n        },\n        1000: {\n          items: 4,\n          nav: false,\n          dots: false,\n          loop: false\n        },\n        1600: {\n          items: 4,\n          nav: false,\n          loop: false\n        }\n      }\n    });\n  }\n\n  // Función para inicializar tooltips en el body\n  function initTooltips() {\n    $(\"body\").tooltip({ selector: '[data-toggle=tooltip]', placement: 'bottom' });\n  }\n\n  // Función para mostrar/ocultar el slider de imágenes\n  function initImageSlider() {\n    $(\".single-detail-images\").click(function () {\n      $('#carouselExampleIndicators').show();\n    });\n\n    $(\"#close_product_slider\").click(function () {\n      $('#carouselExampleIndicators').hide();\n    });\n  }\n\n  // Función para inicializar el carrusel para dispositivos móviles\n  function initMobileSlider() {\n    $('#mobile-slider-products').owlCarousel({\n      margin: 5,\n      autoplayTimeout: 3000,\n      autoplayHoverPause: false,\n      autoWidth: false,\n      nav: false,\n      loop: false,\n      dots: false,\n      responsive: {\n        0: {\n          items: 2,\n          nav: true\n        },\n        600: {\n          items: 2,\n          nav: false\n        },\n        1000: {\n          items: 4,\n          nav: false,\n          dots: false,\n          loop: false\n        }\n      }\n    });\n  }\n\n  // Función para la lógica de agregar a favoritos y hacer un AJAX request\n  function initWishlistFeature() {\n    $('.grey-heart').click(function () {\n      $(this).addClass('added-fav');\n    });\n    const link = $('.addToWishlist').data('wishlist-added');\n    const settings = {\n      url: link,\n      method: \"POST\",\n      headers: {\n        \"Content-Type\": \"application/json\"\n      },\n      data: JSON.stringify({\n        pid: $('[data-pid]').attr('data-pid')\n      }),\n    };\n\n    $.ajax(settings).done(function (response) {\n      if (response.isAdded > 0) {\n        $('.fa-heart').addClass('added-fav');\n      }\n    });\n  }\n\n  // Función para manejar la expansión/contracción de texto\n  function initExpandableText() {\n    const text = $('.pureyad');\n    if(text.length){\n        const btn = $('.purgex');\n        const h = text[0].scrollHeight;\n\n        if (h > 120) {\n          btn.addClass('less').css('display', 'block');\n        }\n\n        btn.click(function (e) {\n          e.stopPropagation();\n          const height = $(window).height() - 150;\n\n          if (btn.hasClass('less')) {\n            btn.removeClass('less').addClass('more').text('Ver Menos', 'images/mobile-arrow-icon.svg');\n            text.animate({ 'max-height': height + 'px' }, 1000);\n            $('#blur-background').addClass('blur-background');\n          } else {\n            btn.addClass('less').removeClass('more').text('Ver Detalles');\n            text.animate({ 'max-height': '100px' }, 1000);\n            $('#blur-background').removeClass('blur-background');\n          }\n        });\n    }\n  }\n\n  // Funciones para abrir y cerrar el selector móvil\n  function openMobileSelect() {\n    $('#mobile_select_size_main').show();\n    $('.pureyad, .purgex').hide();\n  }\n\n  function closeMobileSelect() {\n    $('#mobile_select_size_main').hide();\n    $('.pureyad, .purgex').show();\n  }\n\n  // Función para inicializar el carrusel de pantalla completa\n  function initFullScreenCarousel() {\n    var $item = $('.carousel-item');\n    var $wHeight = $(window).height();\n    $item.eq(0).addClass('active');\n    $item.height($wHeight);\n    $item.addClass('full-screen');\n\n    $('.carousel img').each(function() {\n      var $src = $(this).attr('src');\n      var $color = $(this).attr('data-color');\n      $(this).parent().css({\n        'background-image' : 'url(' + $src + ')',\n        'background-color' : $color\n      });\n      $(this).remove();\n    });\n\n    $(window).on('resize', function (){\n      $wHeight = $(window).height();\n      $item.height($wHeight);\n    });\n\n    $('.carousel').carousel({\n      interval: 6000,\n      pause: \"false\",\n    });\n  }\n\n  // Función para inicializar tooltips globales\n  function initGlobalTooltips() {\n    $('[data-toggle=\"tooltip\"]').tooltip();\n  }\n\n  //add pid to mobile button\n  // function addProductIdToButton (){\n  //   $(document).ready(function () {\n  //       let pid = $(\".comprar-btn-detail \").attr(\"data-pid\");\n  //       $(\".btn-fixed-mobile\").attr(\"data-pid\", pid);\n  //   })\n  // }\n\nmodule.exports =function () {\n    initCrossSellCarousel();\n    initTooltips();\n    initImageSlider();\n    initMobileSlider();\n    initWishlistFeature();\n    initExpandableText();\n    initFullScreenCarousel();\n    initGlobalTooltips();\n    // addProductIdToButton();\n};\n","\"use strict\";\n\nvar processInclude = require(\"base/js/util\");\nrequire('owl.carousel/src/js/owl.carousel');\n$(document).ready(function () {\n    processInclude(require(\"../../minifiedJs/productDetail\"));\n    processInclude(require(\"./custom/customDetailPage\"));\n    processInclude(require(\"./custom\"));\n});\n","!(function (t) {\n    var e = {};\n    function o(a) {\n        if (e[a]) return e[a].exports;\n        var d = (e[a] = { i: a, l: !1, exports: {} });\n        return t[a].call(d.exports, d, d.exports, o), (d.l = !0), d.exports;\n    }\n    (o.m = t),\n        (o.c = e),\n        (o.d = function (t, e, a) {\n            o.o(t, e) ||\n                Object.defineProperty(t, e, { enumerable: !0, get: a });\n        }),\n        (o.r = function (t) {\n            \"undefined\" != typeof Symbol &&\n                Symbol.toStringTag &&\n                Object.defineProperty(t, Symbol.toStringTag, {\n                    value: \"Module\",\n                }),\n                Object.defineProperty(t, \"__esModule\", { value: !0 });\n        }),\n        (o.t = function (t, e) {\n            if ((1 & e && (t = o(t)), 8 & e)) return t;\n            if (4 & e && \"object\" == typeof t && t && t.__esModule) return t;\n            var a = Object.create(null);\n            if (\n                (o.r(a),\n                Object.defineProperty(a, \"default\", {\n                    enumerable: !0,\n                    value: t,\n                }),\n                2 & e && \"string\" != typeof t)\n            )\n                for (var d in t)\n                    o.d(\n                        a,\n                        d,\n                        function (e) {\n                            return t[e];\n                        }.bind(null, d)\n                    );\n            return a;\n        }),\n        (o.n = function (t) {\n            var e =\n                t && t.__esModule\n                    ? function () {\n                          return t.default;\n                      }\n                    : function () {\n                          return t;\n                      };\n            return o.d(e, \"a\", e), e;\n        }),\n        (o.o = function (t, e) {\n            return Object.prototype.hasOwnProperty.call(t, e);\n        }),\n        (o.p = \"\"),\n        o((o.s = 5));\n})([\n    function (t, e, o) {\n        \"use strict\";\n        t.exports = {\n            setTabNextFocus: function (t) {\n                if (\"Tab\" === t.event.key || 9 === t.event.keyCode) {\n                    var e = $(\n                            t.containerSelector + \" \" + t.firstElementSelector\n                        ),\n                        o = $(\n                            t.containerSelector + \" \" + t.lastElementSelector\n                        );\n                    if (\n                        $(t.containerSelector + \" \" + t.lastElementSelector).is(\n                            \":disabled\"\n                        ) &&\n                        ((o = $(\n                            t.containerSelector +\n                                \" \" +\n                                t.nextToLastElementSelector\n                        )),\n                        $(\".product-quickview.product-set\").length > 0)\n                    ) {\n                        var a = $(\n                            t.containerSelector + \" a#fa-link.share-icons\"\n                        );\n                        o = a[a.length - 1];\n                    }\n                    t.event.shiftKey\n                        ? $(\":focus\").is(e) &&\n                          (o.focus(), t.event.preventDefault())\n                        : $(\":focus\").is(o) &&\n                          (e.focus(), t.event.preventDefault());\n                }\n            },\n        };\n    },\n    function (t, e, o) {\n        \"use strict\";\n        t.exports = function (t) {\n            \"function\" == typeof t\n                ? t()\n                : \"object\" == typeof t &&\n                  Object.keys(t).forEach(function (e) {\n                      \"function\" == typeof t[e] && t[e]();\n                  });\n        };\n    },\n    function (t, e, o) {\n        \"use strict\";\n        var a = o(0);\n        function d(t) {\n            if (t.hasClass(\"add-to-cart-global\")) {\n                return $(t).closest(\".product-detail\").find(\".product-id\").text()\n            }\n\n            return $(\"#quickViewModal\").hasClass(\"show\") &&\n                !$(\".product-set\").length\n                ? $(t)\n                      .closest(\".modal-content\")\n                      .find(\".product-quickview\")\n                      .data(\"pid\")\n                : $(\".product-set-detail\").length || $(\".product-set\").length\n                ? $(t).closest(\".product-detail\").find(\".product-id\").text()\n                : $('.product-detail:not(\".bundle-item\")').data(\"pid\");\n        }\n        function n(t) {\n            var e;\n            if (t && $(\".set-items\").length)\n                e = $(t).closest(\".product-detail\").find(\".quantity-select\");\n            else if (t && $(\".product-bundle\").length) {\n                var o = $(t).closest(\".modal-footer\").find(\".quantity-select\"),\n                    a = $(t).closest(\".bundle-footer\").find(\".quantity-select\");\n                e = void 0 === o.val() ? a : o;\n            } else e = $(\".quantity-select\");\n            return e;\n        }\n        function r(t) {\n            return n(t).val();\n        }\n        function s(t, e) {\n            var o,\n                a = e.parents(\".choose-bonus-product-dialog\").length > 0;\n            (t.product.variationAttributes &&\n                (!(function (t, e, o) {\n                    var a = [\"color\"];\n                    t.forEach(function (t) {\n                        a.indexOf(t.id) > -1\n                            ? (function (t, e, o) {\n                                  t.values.forEach(function (a) {\n                                      var d = e.find(\n                                              '[data-attr=\"' +\n                                                  t.id +\n                                                  '\"] [data-attr-value=\"' +\n                                                  a.value +\n                                                  '\"]'\n                                          ),\n                                          n = d.parent();\n                                      a.selected\n                                          ? (d.addClass(\"selected\"),\n                                            d\n                                                .siblings(\n                                                    \".selected-assistive-text\"\n                                                )\n                                                .text(o.assistiveSelectedText))\n                                          : (d.removeClass(\"selected\"),\n                                            d\n                                                .siblings(\n                                                    \".selected-assistive-text\"\n                                                )\n                                                .empty()),\n                                          a.url\n                                              ? n.attr(\"data-url\", a.url)\n                                              : n.removeAttr(\"data-url\"),\n                                          d.removeClass(\n                                              \"selectable unselectable\"\n                                          ),\n                                          d.addClass(\n                                              a.selectable\n                                                  ? \"selectable\"\n                                                  : \"unselectable\"\n                                          );\n                                  });\n                              })(t, e, o)\n                            : (function (t, e) {\n                                  var o = '[data-attr=\"' + t.id + '\"]';\n                                  e\n                                      .find(\n                                          o +\n                                              \" .select-\" +\n                                              t.id +\n                                              \" option:first\"\n                                      )\n                                      .attr(\"value\", t.resetUrl),\n                                      t.values.forEach(function (t) {\n                                          var a = e.find(\n                                              o +\n                                                  ' [data-attr-value=\"' +\n                                                  t.value +\n                                                  '\"]'\n                                          );\n                                          a\n                                              .attr(\"value\", t.url)\n                                              .removeAttr(\"disabled\"),\n                                              t.selectable ||\n                                                  a.attr(\"disabled\", !0);\n                                      });\n                              })(t, e);\n                    });\n                })(t.product.variationAttributes, e, t.resources),\n                (o = \"variant\" === t.product.productType),\n                a &&\n                    o &&\n                    (e.parent(\".bonus-product-item\").data(\"pid\", t.product.id),\n                    e\n                        .parent(\".bonus-product-item\")\n                        .data(\"ready-to-order\", t.product.readyToOrder))),\n            (function (t, e) {\n                var o = e.find(\".carousel\");\n                $(o).carousel(\"dispose\");\n                var a = $(o).attr(\"id\");\n                $(o)\n                    .empty()\n                    .append(\n                        '<ol class=\"carousel-indicators\"></ol><div class=\"carousel-inner\" role=\"listbox\"></div><a class=\"carousel-control-prev\" href=\"#' +\n                            a +\n                            '\" role=\"button\" data-slide=\"prev\"><span class=\"fa icon-prev\" aria-hidden=\"true\"></span><span class=\"sr-only\">' +\n                            $(o).data(\"prev\") +\n                            '</span></a><a class=\"carousel-control-next\" href=\"#' +\n                            a +\n                            '\" role=\"button\" data-slide=\"next\"><span class=\"fa icon-next\" aria-hidden=\"true\"></span><span class=\"sr-only\">' +\n                            $(o).data(\"next\") +\n                            \"</span></a>\"\n                    );\n                for (var d = 0; d < t.length; d++)\n                    $(\n                        '<div class=\"carousel-item\"><img src=\"' +\n                            t[d].url +\n                            '\" class=\"d-block img-fluid\" alt=\"' +\n                            t[d].alt +\n                            \" image number \" +\n                            parseInt(t[d].index, 10) +\n                            '\" title=\"' +\n                            t[d].title +\n                            '\" itemprop=\"image\" /></div>'\n                    ).appendTo($(o).find(\".carousel-inner\")),\n                        $(\n                            '<li data-target=\"#' +\n                                a +\n                                '\" data-slide-to=\"' +\n                                d +\n                                '\" class=\"\"></li>'\n                        ).appendTo($(o).find(\".carousel-indicators\"));\n                $($(o).find(\".carousel-item\")).first().addClass(\"active\"),\n                    $($(o).find(\".carousel-indicators > li\"))\n                        .first()\n                        .addClass(\"active\"),\n                    1 === t.length &&\n                        $(\n                            $(o).find(\n                                '.carousel-indicators, a[class^=\"carousel-control-\"]'\n                            )\n                        ).detach(),\n                    $(o).carousel(),\n                    $($(o).find(\".carousel-indicators\")).attr(\n                        \"aria-hidden\",\n                        !0\n                    );\n            })(t.product.images.large, e),\n            a) ||\n                ($(\".prices .price\", e).length\n                    ? $(\".prices .price\", e)\n                    : $(\".prices .price\")\n                ).replaceWith(t.product.price.html);\n            (e.find(\".promotions\").empty().html(t.product.promotionsHtml),\n            (function (t, e) {\n                var o = \"\",\n                    a = t.product.availability.messages;\n                t.product.readyToOrder\n                    ? a.forEach(function (t) {\n                          o += \"<li><div>\" + t + \"</div></li>\";\n                      })\n                    : (o =\n                          \"<li><div>\" +\n                          t.resources.info_selectforstock +\n                          \"</div></li>\"),\n                    $(e).trigger(\"product:updateAvailability\", {\n                        product: t.product,\n                        $productContainer: e,\n                        message: o,\n                        resources: t.resources,\n                    });\n            })(t, e),\n            a)\n                ? e\n                      .find(\".select-bonus-product\")\n                      .trigger(\"bonusproduct:updateSelectButton\", {\n                          product: t.product,\n                          $productContainer: e,\n                      })\n                : $(\n                      \"button.add-to-cart, button.add-to-cart-global, button.update-cart-product-global\"\n                  )\n                      .trigger(\"product:updateAddToCart\", {\n                          product: t.product,\n                          $productContainer: e,\n                      })\n                      .trigger(\"product:statusUpdate\", t.product);\n            e.find(\".main-attributes\")\n                .empty()\n                .html(\n                    (function (t) {\n                        if (!t) return \"\";\n                        var e = \"\";\n                        return (\n                            t.forEach(function (t) {\n                                \"mainAttributes\" === t.ID &&\n                                    t.attributes.forEach(function (t) {\n                                        e +=\n                                            '<div class=\"attribute-values\">' +\n                                            t.label +\n                                            \": \" +\n                                            t.value +\n                                            \"</div>\";\n                                    });\n                            }),\n                            e\n                        );\n                    })(t.product.attributes)\n                );\n        }\n        function i(t, e) {\n            t &&\n                ($(\"body\").trigger(\"product:beforeAttributeSelect\", {\n                    url: t,\n                    container: e,\n                }),\n                $.ajax({\n                    url: t,\n                    method: \"GET\",\n                    success: function (t) {\n                        s(t, e),\n                            (function (t, e) {\n                                e.find(\".product-options\").empty().html(t);\n                            })(t.product.optionsHtml, e),\n                            (function (t, e) {\n                                if (\n                                    e.parent(\".bonus-product-item\").length <= 0\n                                ) {\n                                    var o = t\n                                        .map(function (t) {\n                                            var e = t.selected\n                                                ? \" selected \"\n                                                : \"\";\n                                            return (\n                                                '<option value=\"' +\n                                                t.value +\n                                                '\"  data-url=\"' +\n                                                t.url +\n                                                '\"' +\n                                                e +\n                                                \">\" +\n                                                t.value +\n                                                \"</option>\"\n                                            );\n                                        })\n                                        .join(\"\");\n                                    n(e).empty().html(o);\n                                }\n                            })(t.product.quantities, e),\n                            $(\"body\").trigger(\"product:afterAttributeSelect\", {\n                                data: t,\n                                container: e,\n                            }),\n                            $.spinner().stop();\n                    },\n                    error: function () {\n                        $.spinner().stop();\n                    },\n                }));\n        }\n        function c(t) {\n            var e = $(\"<div>\").append($.parseHTML(t));\n            return {\n                body: e.find(\".choice-of-bonus-product\"),\n                footer: e.find(\".modal-footer\").children(),\n            };\n        }\n        function l(t) {\n            var e;\n            $(\".modal-body\").spinner().start(),\n                0 !== $(\"#chooseBonusProductModal\").length &&\n                    $(\"#chooseBonusProductModal\").remove(),\n                (e = t.bonusChoiceRuleBased\n                    ? t.showProductsUrlRuleBased\n                    : t.showProductsUrlListBased);\n            var o =\n                '\\x3c!-- Modal --\\x3e<div class=\"modal fade\" id=\"chooseBonusProductModal\" tabindex=\"-1\" role=\"dialog\"><span class=\"enter-message sr-only\" ></span><div class=\"modal-dialog choose-bonus-product-dialog\" data-total-qty=\"' +\n                t.maxBonusItems +\n                '\"data-UUID=\"' +\n                t.uuid +\n                '\"data-pliUUID=\"' +\n                t.pliUUID +\n                '\"data-addToCartUrl=\"' +\n                t.addToCartUrl +\n                '\"data-pageStart=\"0\"data-pageSize=\"' +\n                t.pageSize +\n                '\"data-moreURL=\"' +\n                t.showProductsUrlRuleBased +\n                '\"data-bonusChoiceRuleBased=\"' +\n                t.bonusChoiceRuleBased +\n                '\">\\x3c!-- Modal content--\\x3e<div class=\"modal-content\"><div class=\"modal-header\">    <span class=\"\">' +\n                t.labels.selectprods +\n                '</span>    <button type=\"button\" class=\"close pull-right\" data-dismiss=\"modal\">        <span aria-hidden=\"true\">&times;</span>        <span class=\"sr-only\"> </span>    </button></div><div class=\"modal-body\"></div><div class=\"modal-footer\"></div></div></div></div>';\n            $(\"body\").append(o),\n                $(\".modal-body\").spinner().start(),\n                $.ajax({\n                    url: e,\n                    method: \"GET\",\n                    dataType: \"json\",\n                    success: function (t) {\n                        var e = c(t.renderedTemplate);\n                        $(\"#chooseBonusProductModal .modal-body\").empty(),\n                            $(\"#chooseBonusProductModal .enter-message\").text(\n                                t.enterDialogMessage\n                            ),\n                            $(\n                                \"#chooseBonusProductModal .modal-header .close .sr-only\"\n                            ).text(t.closeButtonText),\n                            $(\"#chooseBonusProductModal .modal-body\").html(\n                                e.body\n                            ),\n                            $(\"#chooseBonusProductModal .modal-footer\").html(\n                                e.footer\n                            ),\n                            $(\"#chooseBonusProductModal\").modal(\"show\"),\n                            $.spinner().stop();\n                    },\n                    error: function () {\n                        $.spinner().stop();\n                    },\n                });\n        }\n        function u(t) {\n            var e = t\n                .find(\".product-option\")\n                .map(function () {\n                    var t = $(this).find(\".options-select\"),\n                        e = t.val(),\n                        o = t\n                            .find('option[value=\"' + e + '\"]')\n                            .data(\"value-id\");\n                    return {\n                        optionId: $(this).data(\"option-id\"),\n                        selectedValueId: o,\n                    };\n                })\n                .toArray();\n            return JSON.stringify(e);\n        }\n        function p(t) {\n            t &&\n                $.ajax({\n                    url: t,\n                    method: \"GET\",\n                    success: function () {},\n                    error: function () {},\n                });\n        }\n        t.exports = {\n            attributeSelect: i,\n            methods: {\n                editBonusProducts: function (t) {\n                    l(t);\n                },\n            },\n            focusChooseBonusProductModal: function () {\n                $(\"body\").on(\n                    \"shown.bs.modal\",\n                    \"#chooseBonusProductModal\",\n                    function () {\n                        $(\"#chooseBonusProductModal\")\n                            .siblings()\n                            .attr(\"aria-hidden\", \"true\"),\n                            $(\"#chooseBonusProductModal .close\").focus();\n                    }\n                );\n            },\n            onClosingChooseBonusProductModal: function () {\n                $(\"body\").on(\n                    \"hidden.bs.modal\",\n                    \"#chooseBonusProductModal\",\n                    function () {\n                        $(\"#chooseBonusProductModal\")\n                            .siblings()\n                            .attr(\"aria-hidden\", \"false\");\n                    }\n                );\n            },\n            trapChooseBonusProductModalFocus: function () {\n                $(\"body\").on(\n                    \"keydown\",\n                    \"#chooseBonusProductModal\",\n                    function (t) {\n                        var e = {\n                            event: t,\n                            containerSelector: \"#chooseBonusProductModal\",\n                            firstElementSelector: \".close\",\n                            lastElementSelector: \".add-bonus-products\",\n                        };\n                        a.setTabNextFocus(e);\n                    }\n                );\n            },\n            colorAttribute: function () {\n                $(document).on(\n                    \"click\",\n                    '[data-attr=\"color\"] button',\n                    function (t) {\n                        if ((t.preventDefault(), !$(this).attr(\"disabled\"))) {\n                            var e = $(this).closest(\".set-item\");\n                            e.length ||\n                                (e = $(this).closest(\".product-detail\")),\n                                i($(this).attr(\"data-url\"), e);\n                        }\n                    }\n                );\n            },\n            selectAttribute: function () {\n                $(document).on(\n                    \"change\",\n                    'select[class*=\"select-\"], .options-select',\n                    function (t) {\n                        t.preventDefault();\n                        var e = $(this).closest(\".set-item\");\n                        e.length || (e = $(this).closest(\".product-detail\")),\n                            i(t.currentTarget.value, e);\n                    }\n                );\n            },\n            availability: function () {\n                $(document).on(\"change\", \".quantity-select\", function (t) {\n                    t.preventDefault();\n                    var e = $(this).closest(\".product-detail\");\n                    e.length ||\n                        (e = $(this)\n                            .closest(\".modal-content\")\n                            .find(\".product-quickview\")),\n                        0 === $(\".bundle-items\", e).length &&\n                            i(\n                                $(t.currentTarget)\n                                    .find(\"option:selected\")\n                                    .data(\"url\"),\n                                e\n                            );\n                });\n            },\n            addToCart: function () {\n                $(document).on(\n                    \"click\",\n                    \"button.add-to-cart, button.add-to-cart-global\",\n                    function () {\n                        var t, e, o, a;\n                        $(\"body\").trigger(\"product:beforeAddToCart\", this),\n                            $(\".set-items\").length &&\n                                $(this).hasClass(\"add-to-cart-global\") &&\n                                ((a = []),\n                                $(\".product-detail\").each(function () {\n                                    $(this).hasClass(\"product-set-detail\") ||\n                                        a.push({\n                                            pid: $(this)\n                                                .find(\".product-id\")\n                                                .text(),\n                                            qty: $(this)\n                                                .find(\".quantity-select\")\n                                                .val(),\n                                            options: u($(this)),\n                                        });\n                                }),\n                                (o = JSON.stringify(a))),\n                            (e = d($(this)));\n                        var n = $(this).closest(\".product-detail\");\n                        n.length ||\n                            (n = $(this)\n                                .closest(\".quick-view-dialog\")\n                                .find(\".product-detail\")),\n                            (t = $(\".add-to-cart-url\").val());\n                        var s,\n                            i = {\n                                pid: e,\n                                pidsObj: o,\n                                childProducts:\n                                    ((s = []),\n                                    $(\".bundle-item\").each(function () {\n                                        s.push({\n                                            pid: $(this)\n                                                .find(\".product-id\")\n                                                .text(),\n                                            quantity: parseInt(\n                                                $(this)\n                                                    .find(\"label.quantity\")\n                                                    .data(\"quantity\"),\n                                                10\n                                            ),\n                                        });\n                                    }),\n                                    s.length ? JSON.stringify(s) : []),\n                                quantity: r($(this)),\n                            };\n                        $(\".bundle-item\").length || (i.options = u(n)),\n                            $(this).trigger(\"updateAddToCartFormData\", i),\n                            t &&\n                                $.ajax({\n                                    url: t,\n                                    method: \"POST\",\n                                    data: i,\n                                    success: function (t) {\n                                        !(function (t) {\n                                            // $(\".minicart\").trigger(\n                                            //     \"count:update\",\n                                            //     t\n                                            // );\n                                            t && $.isNumeric(t.quantityTotal) &&\n                                                ($(\".minicart .minicart-quantity\").text(\n                                                    t.quantityTotal\n                                                ),\n                                                $(\".minicart .minicart-link\").attr({\n                                                    \"aria-label\": t.minicartCountOfItems,\n                                                    title: t.minicartCountOfItems,\n                                                }));\n                                            var e = t.error\n                                                ? \"alert-danger\"\n                                                : \"alert-success\";\n                                            $(\".custom-cart-css\").css(\n                                                \"display\",\n                                                \"block\"\n                                            ),\n                                                t.newBonusDiscountLineItem &&\n                                                0 !==\n                                                    Object.keys(\n                                                        t.newBonusDiscountLineItem\n                                                    ).length\n                                                    ? l(\n                                                          t.newBonusDiscountLineItem\n                                                      )\n                                                    : (0 ===\n                                                          $(\n                                                              \".add-to-cart-messages\"\n                                                          ).length &&\n                                                          $(\"body\").append(\n                                                              '<div class=\"add-to-cart-messages\"></div>'\n                                                          ),\n                                                      $(\n                                                          \".add-to-cart-messages\"\n                                                      ).append(\n                                                          '<div class=\"alert ' +\n                                                              e +\n                                                              ' add-to-basket-alert text-center\" role=\"alert\">' +\n                                                              t.message +\n                                                              \"</div>\"\n                                                      ),\n                                                      setTimeout(function () {\n                                                          $(\n                                                              \".add-to-basket-alert\"\n                                                          ).remove();\n                                                      }, 5e3));\n                                        })(t),\n                                            $(\"body\").trigger(\n                                                \"product:afterAddToCart\",\n                                                t\n                                            ),\n                                            $.spinner().stop(),\n                                            p(t.reportingURL);\n                                    },\n                                    error: function () {\n                                        $.spinner().stop();\n                                    },\n                                });\n                    }\n                );\n            },\n            selectBonusProduct: function () {\n                $(document).on(\"click\", \".select-bonus-product\", function () {\n                    var t = $(this).parents(\".choice-of-bonus-product\"),\n                        e = $(this).data(\"pid\"),\n                        o = $(\".choose-bonus-product-dialog\").data(\"total-qty\"),\n                        a = parseInt(\n                            t.find(\".bonus-quantity-select\").val(),\n                            10\n                        ),\n                        d = 0;\n                    $.each(\n                        $(\n                            \"#chooseBonusProductModal .selected-bonus-products .selected-pid\"\n                        ),\n                        function () {\n                            d += $(this).data(\"qty\");\n                        }\n                    ),\n                        (d += a);\n                    var n = t.find(\".product-option\").data(\"option-id\"),\n                        r = t\n                            .find(\".options-select option:selected\")\n                            .data(\"valueId\");\n                    if (d <= o) {\n                        var s =\n                            '<div class=\"selected-pid row\" data-pid=\"' +\n                            e +\n                            '\"data-qty=\"' +\n                            a +\n                            '\"data-optionID=\"' +\n                            (n || \"\") +\n                            '\"data-option-selected-value=\"' +\n                            (r || \"\") +\n                            '\"><div class=\"col-sm-11 col-9 bonus-product-name\" >' +\n                            t.find(\".product-name\").html() +\n                            '</div><div class=\"col-1\"><i class=\"fa fa-times\" aria-hidden=\"true\"></i></div></div>';\n                        $(\n                            \"#chooseBonusProductModal .selected-bonus-products\"\n                        ).append(s),\n                            $(\".pre-cart-products\").html(d),\n                            $(\n                                \".selected-bonus-products .bonus-summary\"\n                            ).removeClass(\"alert-danger\");\n                    } else $(\".selected-bonus-products .bonus-summary\").addClass(\"alert-danger\");\n                });\n            },\n            removeBonusProduct: function () {\n                $(document).on(\"click\", \".selected-pid\", function () {\n                    $(this).remove();\n                    var t = $(\n                            \"#chooseBonusProductModal .selected-bonus-products .selected-pid\"\n                        ),\n                        e = 0;\n                    t.length &&\n                        t.each(function () {\n                            e += parseInt($(this).data(\"qty\"), 10);\n                        }),\n                        $(\".pre-cart-products\").html(e),\n                        $(\n                            \".selected-bonus-products .bonus-summary\"\n                        ).removeClass(\"alert-danger\");\n                });\n            },\n            enableBonusProductSelection: function () {\n                $(\"body\").on(\n                    \"bonusproduct:updateSelectButton\",\n                    function (t, e) {\n                        $(\n                            \"button.select-bonus-product\",\n                            e.$productContainer\n                        ).attr(\n                            \"disabled\",\n                            !e.product.readyToOrder || !e.product.available\n                        );\n                        var o = e.product.id;\n                        $(\n                            \"button.select-bonus-product\",\n                            e.$productContainer\n                        ).data(\"pid\", o);\n                    }\n                );\n            },\n            showMoreBonusProducts: function () {\n                $(document).on(\n                    \"click\",\n                    \".show-more-bonus-products\",\n                    function () {\n                        var t = $(this).data(\"url\");\n                        $(\".modal-content\").spinner().start(),\n                            $.ajax({\n                                url: t,\n                                method: \"GET\",\n                                success: function (t) {\n                                    var e = c(t);\n                                    $(\".modal-body\").append(e.body),\n                                        $(\n                                            \".show-more-bonus-products:first\"\n                                        ).remove(),\n                                        $(\".modal-content\").spinner().stop();\n                                },\n                                error: function () {\n                                    $(\".modal-content\").spinner().stop();\n                                },\n                            });\n                    }\n                );\n            },\n            addBonusProductsToCart: function () {\n                $(document).on(\"click\", \".add-bonus-products\", function () {\n                    var t = $(\".choose-bonus-product-dialog .selected-pid\"),\n                        e = \"?pids=\",\n                        o = $(\".choose-bonus-product-dialog\").data(\n                            \"addtocarturl\"\n                        ),\n                        a = { bonusProducts: [] };\n                    $.each(t, function () {\n                        var t = parseInt($(this).data(\"qty\"), 10),\n                            e = null;\n                        t > 0 &&\n                            ($(this).data(\"optionid\") &&\n                                $(this).data(\"option-selected-value\") &&\n                                (((e = {}).optionId = $(this).data(\"optionid\")),\n                                (e.productId = $(this).data(\"pid\")),\n                                (e.selectedValueId = $(this).data(\n                                    \"option-selected-value\"\n                                ))),\n                            a.bonusProducts.push({\n                                pid: $(this).data(\"pid\"),\n                                qty: t,\n                                options: [e],\n                            }),\n                            (a.totalQty = parseInt(\n                                $(\".pre-cart-products\").html(),\n                                10\n                            )));\n                    }),\n                        (e =\n                            (e =\n                                (e += JSON.stringify(a)) +\n                                \"&uuid=\" +\n                                $(\".choose-bonus-product-dialog\").data(\n                                    \"uuid\"\n                                )) +\n                            \"&pliuuid=\" +\n                            $(\".choose-bonus-product-dialog\").data(\"pliuuid\")),\n                        $.spinner().start(),\n                        $.ajax({\n                            url: o + e,\n                            method: \"POST\",\n                            success: function (t) {\n                                $.spinner().stop(),\n                                    t.error\n                                        ? ($(\"#chooseBonusProductModal\").modal(\n                                              \"hide\"\n                                          ),\n                                          0 ===\n                                              $(\".add-to-cart-messages\")\n                                                  .length &&\n                                              $(\"body\").append(\n                                                  '<div class=\"add-to-cart-messages\"></div>'\n                                              ),\n                                          $(\".add-to-cart-messages\").append(\n                                              '<div class=\"alert alert-danger add-to-basket-alert text-center\" role=\"alert\">' +\n                                                  t.errorMessage +\n                                                  \"</div>\"\n                                          ),\n                                          setTimeout(function () {\n                                              $(\n                                                  \".add-to-basket-alert\"\n                                              ).remove();\n                                          }, 3e3))\n                                        : ($(\n                                              \".configure-bonus-product-attributes\"\n                                          ).html(t),\n                                          $(\n                                              \".bonus-products-step2\"\n                                          ).removeClass(\"hidden-xl-down\"),\n                                          $(\"#chooseBonusProductModal\").modal(\n                                              \"hide\"\n                                          ),\n                                          0 ===\n                                              $(\".add-to-cart-messages\")\n                                                  .length &&\n                                              $(\"body\").append(\n                                                  '<div class=\"add-to-cart-messages\"></div>'\n                                              ),\n                                          $(\".minicart-quantity\").html(\n                                              t.totalQty\n                                          ),\n                                          $(\".add-to-cart-messages\").append(\n                                              '<div class=\"alert alert-success add-to-basket-alert text-center\" role=\"alert\">' +\n                                                  t.msgSuccess +\n                                                  \"</div>\"\n                                          ),\n                                          setTimeout(function () {\n                                              $(\n                                                  \".add-to-basket-alert\"\n                                              ).remove(),\n                                                  $(\".cart-page\").length &&\n                                                      location.reload();\n                                          }, 1500));\n                            },\n                            error: function () {\n                                $.spinner().stop();\n                            },\n                        });\n                });\n            },\n            getPidValue: d,\n            getQuantitySelected: r,\n            miniCartReportingUrl: p,\n        };\n    },\n    ,\n    ,\n    function (t, e, o) {\n        \"use strict\";\n        var a = o(1);\n        $(document).ready(function () {\n            a(o(6));\n\n            $(\".container-attr-mobile .list-talla ul li\").each(function (index, element) {\n                if (element.classList.contains(\"actives\") && element.classList.contains(\"nonSelectable\")) {\n                    $(\".add-to-cart-global\").attr(\"disabled\", true);\n                    $(\".btn-fixed-mobile\").attr(\"disabled\", true);\n                    return false\n                }\n            });\n        })\n    },\n    function (t, e, o) {\n        \"use strict\";\n        var a = o(2);\n        t.exports = {\n            availability: a.availability,\n            addToCart: a.addToCart,\n            updateAttributesAndDetails: function () {\n                $(\"body\").on(\"product:statusUpdate\", function (t, e) {\n                    var o = $('.product-detail[data-pid=\"' + e.id + '\"]');\n                    o\n                        .find(\".description-and-detail .product-attributes\")\n                        .empty()\n                        .html(e.attributesHtml),\n                        e.shortDescription\n                            ? (o\n                                  .find(\".description-and-detail .description\")\n                                  .removeClass(\"hidden-xl-down\"),\n                              o\n                                  .find(\n                                      \".description-and-detail .description .content\"\n                                  )\n                                  .empty()\n                                  .html(e.shortDescription))\n                            : o\n                                  .find(\".description-and-detail .description\")\n                                  .addClass(\"hidden-xl-down\"),\n                        e.longDescription\n                            ? (o\n                                  .find(\".description-and-detail .details\")\n                                  .removeClass(\"hidden-xl-down\"),\n                              o\n                                  .find(\n                                      \".description-and-detail .details .content\"\n                                  )\n                                  .empty()\n                                  .html(e.longDescription))\n                            : o\n                                  .find(\".description-and-detail .details\")\n                                  .addClass(\"hidden-xl-down\");\n                });\n            },\n            showSpinner: function () {\n                $(\"body\").on(\n                    \"product:beforeAddToCart product:beforeAttributeSelect\",\n                    function () {\n                        $.spinner().start();\n                    }\n                );\n            },\n            updateAttribute: function () {\n                var t, e, o, p, q, y, z;\n                $(\"body\").on(\"product:afterAttributeSelect\", function (t, e) {\n                    $(\".product-detail>.bundle-items\").length ||\n                    $(\".product-set-detail\").eq(0)\n                        ? (e.container.data(\"pid\", e.data.product.id),\n                          e.container\n                              .find(\".product-id\")\n                              .text(e.data.product.id))\n                        : ($(\".product-id\").text(e.data.product.id),\n                          $('.product-detail:not(\".bundle-item\")').data(\n                              \"pid\",\n                              e.data.product.id\n                          ));\n                }),\n                $(\".list-talla ul\").on(\"click\", \"li\", function () {\n                    let a = $(this).data(\"select-id\"),\n                        d = $(this).data(\"index-id\"),\n                        n = $(this).data(\"pid\");\n                    let isActive = $(this).hasClass('actives');\n                    let isDisabled = $(this).hasClass('nonSelectable');\n\n                    if (isDisabled || isActive) return;\n\n                        let selectElement = $(\"#\" + n + \" .\" + a);\n                        selectElement.find(\"li\").removeClass(\"actives\"),\n                            $(this).addClass(\"actives\"),\n                            (e = $(this).attr(\"value\")),\n                            $.ajax({\n                                url: e,\n                                method: \"GET\",\n                                success: function (e) {\n                                    const productId = document.querySelector(\".productID .productID__id\");\n                                    const SKU = document.querySelector(\".productSku .product-id\");\n                                    if (productId.innerText != SKU.innerText) {\n                                        $(\".productSku\").removeClass(\"d-none\");\n                                    }\n                                    $('.size-slect').addClass('d-none');\n                                    $('.seleccionatu').css('margin-top', '28px');\n                                        (t = \"\"),\n                                        (o = 0),\n                                        e.product.images.large.map(function (\n                                            e\n                                        ) {\n                                            (t +=\n                                                '<div class=\"col-md-6 carousel-padding\">'),\n                                                (t +=\n                                                    '<div class=\"pro-images-detail\">'),\n                                                (t +=\n                                                    '<img src=\"' +\n                                                    e.url +\n                                                    '\" alt=\"' +\n                                                    e.title +\n                                                    \" image number \" +\n                                                    o +\n                                                    '\" itemprop=\"image\">'),\n                                                (t += \"</div>\"),\n                                                (t += \"</div>\"),\n                                                o++;\n                                        }),\n                                        $(\".sticky-sidebar\")\n                                            .find(\".single-detail-images\")\n                                            .find(\".row\")\n                                            .empty()\n                                            .append(t),\n                                        $(\".sticky-sidebar\")\n                                            .find(\".single-detail-images\")\n                                            .find(\".imgchange\")\n                                            .empty()\n                                            .append(t),\n                                    (p = \"\"),\n                                        (q = 1),\n                                        e.product.variationAttributes.map(function (\n                                            k\n                                        ) {\n                                            k.attributeId =='talla' ?\n                                                k.values.forEach(function (m) {\n                                                    (p +=\n                                                        '<li class=\"' +\n                                                        (m.selectable ? 'selectable' : 'nonSelectable') +\n                                                        (d == q.toFixed(1) ? ' actives' : '') +\n                                                        '\" data-select-id=\"select-' +\n                                                        k.id +\n                                                        '\" data-index-id=\"' +\n                                                        q.toFixed(1) +\n                                                        '\" data-pid=\"' +\n                                                        e.product.id +\n                                                        '\" value=\"' +\n                                                        (m.selectable ? k.resetUrl : '') +\n                                                        '\" data-attr-value=\"' +\n                                                        m.displayValue +\n                                                        '\">'),\n                                                    (p += '<div class=d-xs-none d-sm-none d-md-none d-lg-none \"' +\n                                                    (m.selectable ? '' : 'cross-line') +\n                                                    '\">'),\n                                                    (p += \"</div>\"),\n                                                    (p += m.displayValue),\n                                                    (p += \"</li>\"),\n                                                    q++;\n                                                })\n                                            : \"\";\n                                        }),\n                                        $(\".list-talla\")\n                                        .find(\".vartionSize\")\n                                        .empty()\n                                        .append(p)\n                                        $(\".add-to-cart-global\").attr(\"disabled\", false);\n                                        $.spinner().stop();\n                                },\n                                error: function () {\n                                    $.spinner().stop();\n                                },\n                            });\n                    });\n            },\n            updateAddToCart: function () {\n                $(\"body\").on(\"product:updateAddToCart\", function (e, o) {\n                    $(\"button.add-to-cart\", o.$productContainer).attr(\n                        \"disabled\",\n                        !o.product.readyToOrder || !o.product.available\n                    );\n                    var a = $(\".product-availability\")\n                        .toArray()\n                        .every(function (t) {\n                            return (\n                                $(t).data(\"available\") &&\n                                $(t).data(\"ready-to-order\")\n                            );\n                        });\n                });\n            },\n            updateAvailability: function () {\n                $(\"body\").on(\"product:updateAvailability\", function (t, e) {\n                    if (\n                        ($(\"div.availability\", e.$productContainer)\n                            .data(\"ready-to-order\", e.product.readyToOrder)\n                            .data(\"available\", e.product.available),\n                        $(\".availability-msg\", e.$productContainer)\n                            .empty()\n                            .html(e.message),\n                        $(\".global-availability\").length)\n                    ) {\n                        var o = $(\".product-availability\")\n                                .toArray()\n                                .every(function (t) {\n                                    return $(t).data(\"available\");\n                                }),\n                            a = $(\".product-availability\")\n                                .toArray()\n                                .every(function (t) {\n                                    return $(t).data(\"ready-to-order\");\n                                });\n                        $(\".global-availability\")\n                            .data(\"ready-to-order\", a)\n                            .data(\"available\", o),\n                            $(\".global-availability .availability-msg\")\n                                .empty()\n                                .html(\n                                    a\n                                        ? e.message\n                                        : e.resources.info_selectforstock\n                                );\n                    }\n                });\n            },\n            sizeChart: function () {\n                $(\".size-chart a\").on(\"click\", function (t) {\n                    t.preventDefault();\n                    var e = $(this).attr(\"href\"),\n                        o = $(this)\n                            .closest(\".size-chart\")\n                            .find(\".size-chart-collapsible\");\n                    o.is(\":empty\") &&\n                        $.ajax({\n                            url: e,\n                            type: \"get\",\n                            dataType: \"json\",\n                            success: function (t) {\n                                o.append(t.content);\n                            },\n                        }),\n                        o.toggleClass(\"active\");\n                });\n                var t = $(\".size-chart-collapsible\");\n                $(\"body\").on(\"click touchstart\", function (e) {\n                    $(\".size-chart\").has(e.target).length <= 0 &&\n                        t.removeClass(\"active\");\n                });\n            },\n            copyProductLink: function () {\n                $(\"body\").on(\"click\", \"#fa-link\", function () {\n                    event.preventDefault();\n                    var t = $(\"<input>\");\n                    $(\"body\").append(t),\n                        t.val($(\"#shareUrl\").val()).select(),\n                        document.execCommand(\"copy\"),\n                        t.remove(),\n                        $(\".copy-link-message\").attr(\"role\", \"alert\"),\n                        $(\".copy-link-message\").removeClass(\"d-none\"),\n                        setTimeout(function () {\n                            $(\".copy-link-message\").addClass(\"d-none\");\n                        }, 3e3);\n                });\n            },\n            focusChooseBonusProductModal: a.focusChooseBonusProductModal(),\n        };\n    },\n]);\n","'use strict';\n\nmodule.exports = function (include) {\n    if (typeof include === 'function') {\n        include();\n    } else if (typeof include === 'object') {\n        Object.keys(include).forEach(function (key) {\n            if (typeof include[key] === 'function') {\n                include[key]();\n            }\n        });\n    }\n};\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.1): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Private TransitionEnd Helpers\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n  if (obj === null || typeof obj === 'undefined') {\n    return `${obj}`\n  }\n\n  return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction 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\n      return undefined\n    }\n  }\n}\n\nfunction 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\nfunction setTransitionEndSupport() {\n  $.fn.emulateTransitionEnd = transitionEndEmulator\n  $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * Public Util API\n */\n\nconst Util = {\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\n    return prefix\n  },\n\n  getSelectorFromElement(element) {\n    let selector = element.getAttribute('data-target')\n\n    if (!selector || selector === '#') {\n      const hrefAttr = element.getAttribute('href')\n      selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n    }\n\n    try {\n      return document.querySelector(selector) ? selector : null\n    } catch (_) {\n      return null\n    }\n  },\n\n  getTransitionDurationFromElement(element) {\n    if (!element) {\n      return 0\n    }\n\n    // Get transition-duration of the element\n    let transitionDuration = $(element).css('transition-duration')\n    let transitionDelay = $(element).css('transition-delay')\n\n    const floatTransitionDuration = parseFloat(transitionDuration)\n    const floatTransitionDelay = parseFloat(transitionDelay)\n\n    // Return 0 if element or transition duration is not found\n    if (!floatTransitionDuration && !floatTransitionDelay) {\n      return 0\n    }\n\n    // If multiple durations are defined, take the first\n    transitionDuration = transitionDuration.split(',')[0]\n    transitionDelay = transitionDelay.split(',')[0]\n\n    return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\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_END)\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  findShadowRoot(element) {\n    if (!document.documentElement.attachShadow) {\n      return null\n    }\n\n    // Can find the shadow root otherwise it'll return the document\n    if (typeof element.getRootNode === 'function') {\n      const root = element.getRootNode()\n      return root instanceof ShadowRoot ? root : null\n    }\n\n    if (element instanceof ShadowRoot) {\n      return element\n    }\n\n    // when we don't find a shadow root\n    if (!element.parentNode) {\n      return null\n    }\n\n    return Util.findShadowRoot(element.parentNode)\n  },\n\n  jQueryDetection() {\n    if (typeof $ === 'undefined') {\n      throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n    }\n\n    const version = $.fn.jquery.split(' ')[0].split('.')\n    const minMajor = 1\n    const ltMajor = 2\n    const minMinor = 9\n    const minPatch = 1\n    const maxMajor = 4\n\n    if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n      throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n    }\n  }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * Constants\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.6.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\n/**\n * Class definition\n */\n\nclass Alert {\n  constructor(element) {\n    this._element = element\n  }\n\n  // Getters\n  static get VERSION() {\n    return VERSION\n  }\n\n  // Public\n  close(element) {\n    let rootElement = this._element\n    if (element) {\n      rootElement = this._getRootElement(element)\n    }\n\n    const customEvent = this._triggerCloseEvent(rootElement)\n\n    if (customEvent.isDefaultPrevented()) {\n      return\n    }\n\n    this._removeElement(rootElement)\n  }\n\n  dispose() {\n    $.removeData(this._element, DATA_KEY)\n    this._element = null\n  }\n\n  // Private\n  _getRootElement(element) {\n    const selector = Util.getSelectorFromElement(element)\n    let parent = false\n\n    if (selector) {\n      parent = document.querySelector(selector)\n    }\n\n    if (!parent) {\n      parent = $(element).closest(`.${CLASS_NAME_ALERT}`)[0]\n    }\n\n    return parent\n  }\n\n  _triggerCloseEvent(element) {\n    const closeEvent = $.Event(EVENT_CLOSE)\n\n    $(element).trigger(closeEvent)\n    return closeEvent\n  }\n\n  _removeElement(element) {\n    $(element).removeClass(CLASS_NAME_SHOW)\n\n    if (!$(element).hasClass(CLASS_NAME_FADE)) {\n      this._destroyElement(element)\n      return\n    }\n\n    const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n    $(element)\n      .one(Util.TRANSITION_END, event => this._destroyElement(element, event))\n      .emulateTransitionEnd(transitionDuration)\n  }\n\n  _destroyElement(element) {\n    $(element)\n      .detach()\n      .trigger(EVENT_CLOSED)\n      .remove()\n  }\n\n  // Static\n  static _jQueryInterface(config) {\n    return this.each(function () {\n      const $element = $(this)\n      let data = $element.data(DATA_KEY)\n\n      if (!data) {\n        data = new Alert(this)\n        $element.data(DATA_KEY, data)\n      }\n\n      if (config === 'close') {\n        data[config](this)\n      }\n    })\n  }\n\n  static _handleDismiss(alertInstance) {\n    return function (event) {\n      if (event) {\n        event.preventDefault()\n      }\n\n      alertInstance.close(this)\n    }\n  }\n}\n\n/**\n * Data API implementation\n */\n\n$(document).on(\n  EVENT_CLICK_DATA_API,\n  SELECTOR_DISMISS,\n  Alert._handleDismiss(new Alert())\n)\n\n/**\n * jQuery\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return Alert._jQueryInterface\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n */\n\nconst NAME = 'button'\nconst VERSION = '4.6.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +\n                          `blur${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]'\nconst SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\n/**\n * Class definition\n */\n\nclass Button {\n  constructor(element) {\n    this._element = element\n    this.shouldAvoidTriggerChange = false\n  }\n\n  // Getters\n  static get VERSION() {\n    return VERSION\n  }\n\n  // Public\n  toggle() {\n    let triggerChangeEvent = true\n    let addAriaPressed = true\n    const rootElement = $(this._element).closest(SELECTOR_DATA_TOGGLES)[0]\n\n    if (rootElement) {\n      const input = this._element.querySelector(SELECTOR_INPUT)\n\n      if (input) {\n        if (input.type === 'radio') {\n          if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n            triggerChangeEvent = false\n          } else {\n            const activeElement = rootElement.querySelector(SELECTOR_ACTIVE)\n\n            if (activeElement) {\n              $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n            }\n          }\n        }\n\n        if (triggerChangeEvent) {\n          // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n          if (input.type === 'checkbox' || input.type === 'radio') {\n            input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n          }\n\n          if (!this.shouldAvoidTriggerChange) {\n            $(input).trigger('change')\n          }\n        }\n\n        input.focus()\n        addAriaPressed = false\n      }\n    }\n\n    if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n      if (addAriaPressed) {\n        this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE))\n      }\n\n      if (triggerChangeEvent) {\n        $(this._element).toggleClass(CLASS_NAME_ACTIVE)\n      }\n    }\n  }\n\n  dispose() {\n    $.removeData(this._element, DATA_KEY)\n    this._element = null\n  }\n\n  // Static\n  static _jQueryInterface(config, avoidTriggerChange) {\n    return this.each(function () {\n      const $element = $(this)\n      let data = $element.data(DATA_KEY)\n\n      if (!data) {\n        data = new Button(this)\n        $element.data(DATA_KEY, data)\n      }\n\n      data.shouldAvoidTriggerChange = avoidTriggerChange\n\n      if (config === 'toggle') {\n        data[config]()\n      }\n    })\n  }\n}\n\n/**\n * Data API implementation\n */\n\n$(document)\n  .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n    let button = event.target\n    const initialButton = button\n\n    if (!$(button).hasClass(CLASS_NAME_BUTTON)) {\n      button = $(button).closest(SELECTOR_BUTTON)[0]\n    }\n\n    if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n      event.preventDefault() // work around Firefox bug #1540995\n    } else {\n      const inputBtn = button.querySelector(SELECTOR_INPUT)\n\n      if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n        event.preventDefault() // work around Firefox bug #1540995\n        return\n      }\n\n      if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n        Button._jQueryInterface.call($(button), 'toggle', initialButton.tagName === 'INPUT')\n      }\n    }\n  })\n  .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n    const button = $(event.target).closest(SELECTOR_BUTTON)[0]\n    $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type))\n  })\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n  // ensure correct active class is set to match the controls' actual values/states\n\n  // find all checkboxes/readio buttons inside data-toggle groups\n  let buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS))\n  for (let i = 0, len = buttons.length; i < len; i++) {\n    const button = buttons[i]\n    const input = button.querySelector(SELECTOR_INPUT)\n    if (input.checked || input.hasAttribute('checked')) {\n      button.classList.add(CLASS_NAME_ACTIVE)\n    } else {\n      button.classList.remove(CLASS_NAME_ACTIVE)\n    }\n  }\n\n  // find all button toggles\n  buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n  for (let i = 0, len = buttons.length; i < len; i++) {\n    const button = buttons[i]\n    if (button.getAttribute('aria-pressed') === 'true') {\n      button.classList.add(CLASS_NAME_ACTIVE)\n    } else {\n      button.classList.remove(CLASS_NAME_ACTIVE)\n    }\n  }\n})\n\n/**\n * jQuery\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return Button._jQueryInterface\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * Constants\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.6.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst Default = {\n  interval: 5000,\n  keyboard: true,\n  slide: false,\n  pause: 'hover',\n  wrap: true,\n  touch: true\n}\n\nconst DefaultType = {\n  interval: '(number|boolean)',\n  keyboard: 'boolean',\n  slide: '(boolean|string)',\n  pause: '(string|boolean)',\n  wrap: 'boolean',\n  touch: 'boolean'\n}\n\nconst PointerType = {\n  TOUCH: 'touch',\n  PEN: 'pen'\n}\n\n/**\n * Class definition\n */\n\nclass Carousel {\n  constructor(element, config) {\n    this._items = null\n    this._interval = null\n    this._activeElement = null\n    this._isPaused = false\n    this._isSliding = false\n    this.touchTimeout = null\n    this.touchStartX = 0\n    this.touchDeltaX = 0\n\n    this._config = this._getConfig(config)\n    this._element = element\n    this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS)\n    this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n    this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n    this._addEventListeners()\n  }\n\n  // Getters\n  static get VERSION() {\n    return VERSION\n  }\n\n  static get Default() {\n    return Default\n  }\n\n  // Public\n  next() {\n    if (!this._isSliding) {\n      this._slide(DIRECTION_NEXT)\n    }\n  }\n\n  nextWhenVisible() {\n    const $element = $(this._element)\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      ($element.is(':visible') && $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.querySelector(SELECTOR_NEXT_PREV)) {\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._updateInterval()\n\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.querySelector(SELECTOR_ACTIVE_ITEM)\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  _getConfig(config) {\n    config = {\n      ...Default,\n      ...config\n    }\n    Util.typeCheckConfig(NAME, config, DefaultType)\n    return config\n  }\n\n  _handleSwipe() {\n    const absDeltax = Math.abs(this.touchDeltaX)\n\n    if (absDeltax <= SWIPE_THRESHOLD) {\n      return\n    }\n\n    const direction = absDeltax / this.touchDeltaX\n\n    this.touchDeltaX = 0\n\n    // swipe left\n    if (direction > 0) {\n      this.prev()\n    }\n\n    // swipe right\n    if (direction < 0) {\n      this.next()\n    }\n  }\n\n  _addEventListeners() {\n    if (this._config.keyboard) {\n      $(this._element).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    }\n\n    if (this._config.touch) {\n      this._addTouchEventListeners()\n    }\n  }\n\n  _addTouchEventListeners() {\n    if (!this._touchSupported) {\n      return\n    }\n\n    const start = event => {\n      if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n        this.touchStartX = event.originalEvent.clientX\n      } else if (!this._pointerEvent) {\n        this.touchStartX = event.originalEvent.touches[0].clientX\n      }\n    }\n\n    const move = event => {\n      // ensure swiping with one touch and not pinching\n      this.touchDeltaX = event.originalEvent.touches && event.originalEvent.touches.length > 1 ?\n        0 :\n        event.originalEvent.touches[0].clientX - this.touchStartX\n    }\n\n    const end = event => {\n      if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n        this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n      }\n\n      this._handleSwipe()\n      if (this._config.pause === 'hover') {\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\n        this.pause()\n        if (this.touchTimeout) {\n          clearTimeout(this.touchTimeout)\n        }\n\n        this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n      }\n    }\n\n    $(this._element.querySelectorAll(SELECTOR_ITEM_IMG))\n      .on(EVENT_DRAG_START, e => e.preventDefault())\n\n    if (this._pointerEvent) {\n      $(this._element).on(EVENT_POINTERDOWN, event => start(event))\n      $(this._element).on(EVENT_POINTERUP, event => end(event))\n\n      this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n    } else {\n      $(this._element).on(EVENT_TOUCHSTART, event => start(event))\n      $(this._element).on(EVENT_TOUCHMOVE, event => move(event))\n      $(this._element).on(EVENT_TOUCHEND, event => end(event))\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 = element && element.parentNode ?\n      [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) :\n      []\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.querySelector(SELECTOR_ACTIVE_ITEM))\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      const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE))\n      $(indicators).removeClass(CLASS_NAME_ACTIVE)\n\n      const nextIndicator = this._indicatorsElement.children[\n        this._getItemIndex(element)\n      ]\n\n      if (nextIndicator) {\n        $(nextIndicator).addClass(CLASS_NAME_ACTIVE)\n      }\n    }\n  }\n\n  _updateInterval() {\n    const element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n    if (!element) {\n      return\n    }\n\n    const elementInterval = parseInt(element.getAttribute('data-interval'), 10)\n\n    if (elementInterval) {\n      this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n      this._config.interval = elementInterval\n    } else {\n      this._config.interval = this._config.defaultInterval || this._config.interval\n    }\n  }\n\n  _slide(direction, element) {\n    const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\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 = CLASS_NAME_LEFT\n      orderClassName = CLASS_NAME_NEXT\n      eventDirectionName = DIRECTION_LEFT\n    } else {\n      directionalClassName = CLASS_NAME_RIGHT\n      orderClassName = CLASS_NAME_PREV\n      eventDirectionName = DIRECTION_RIGHT\n    }\n\n    if (nextElement && $(nextElement).hasClass(CLASS_NAME_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    this._activeElement = nextElement\n\n    const slidEvent = $.Event(EVENT_SLID, {\n      relatedTarget: nextElement,\n      direction: eventDirectionName,\n      from: activeElementIndex,\n      to: nextElementIndex\n    })\n\n    if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {\n      $(nextElement).addClass(orderClassName)\n\n      Util.reflow(nextElement)\n\n      $(activeElement).addClass(directionalClassName)\n      $(nextElement).addClass(directionalClassName)\n\n      const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n      $(activeElement)\n        .one(Util.TRANSITION_END, () => {\n          $(nextElement)\n            .removeClass(`${directionalClassName} ${orderClassName}`)\n            .addClass(CLASS_NAME_ACTIVE)\n\n          $(activeElement).removeClass(`${CLASS_NAME_ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n          this._isSliding = false\n\n          setTimeout(() => $(this._element).trigger(slidEvent), 0)\n        })\n        .emulateTransitionEnd(transitionDuration)\n    } else {\n      $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n      $(nextElement).addClass(CLASS_NAME_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  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\n        data[action]()\n      } else if (_config.interval && _config.ride) {\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(CLASS_NAME_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 * Data API implementation\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n  const carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE))\n  for (let i = 0, len = carousels.length; i < len; i++) {\n    const $carousel = $(carousels[i])\n    Carousel._jQueryInterface.call($carousel, $carousel.data())\n  }\n})\n\n/**\n * jQuery\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return Carousel._jQueryInterface\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * Constants\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.6.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst DIMENSION_WIDTH = 'width'\nconst DIMENSION_HEIGHT = 'height'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\nconst Default = {\n  toggle: true,\n  parent: ''\n}\n\nconst DefaultType = {\n  toggle: 'boolean',\n  parent: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass Collapse {\n  constructor(element, config) {\n    this._isTransitioning = false\n    this._element = element\n    this._config = this._getConfig(config)\n    this._triggerArray = [].slice.call(document.querySelectorAll(\n      `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n      `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n    ))\n\n    const toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n    for (let i = 0, len = toggleList.length; i < len; i++) {\n      const elem = toggleList[i]\n      const selector = Util.getSelectorFromElement(elem)\n      const filterElement = [].slice.call(document.querySelectorAll(selector))\n        .filter(foundElem => foundElem === element)\n\n      if (selector !== null && filterElement.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  static get VERSION() {\n    return VERSION\n  }\n\n  static get Default() {\n    return Default\n  }\n\n  // Public\n  toggle() {\n    if ($(this._element).hasClass(CLASS_NAME_SHOW)) {\n      this.hide()\n    } else {\n      this.show()\n    }\n  }\n\n  show() {\n    if (this._isTransitioning ||\n      $(this._element).hasClass(CLASS_NAME_SHOW)) {\n      return\n    }\n\n    let actives\n    let activesData\n\n    if (this._parent) {\n      actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES))\n        .filter(elem => {\n          if (typeof this._config.parent === 'string') {\n            return elem.getAttribute('data-parent') === this._config.parent\n          }\n\n          return elem.classList.contains(CLASS_NAME_COLLAPSE)\n        })\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(CLASS_NAME_COLLAPSE)\n      .addClass(CLASS_NAME_COLLAPSING)\n\n    this._element.style[dimension] = 0\n\n    if (this._triggerArray.length) {\n      $(this._triggerArray)\n        .removeClass(CLASS_NAME_COLLAPSED)\n        .attr('aria-expanded', true)\n    }\n\n    this.setTransitioning(true)\n\n    const complete = () => {\n      $(this._element)\n        .removeClass(CLASS_NAME_COLLAPSING)\n        .addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n      this._element.style[dimension] = ''\n\n      this.setTransitioning(false)\n\n      $(this._element).trigger(EVENT_SHOWN)\n    }\n\n    const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n    const scrollSize = `scroll${capitalizedDimension}`\n    const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n    $(this._element)\n      .one(Util.TRANSITION_END, complete)\n      .emulateTransitionEnd(transitionDuration)\n\n    this._element.style[dimension] = `${this._element[scrollSize]}px`\n  }\n\n  hide() {\n    if (this._isTransitioning ||\n      !$(this._element).hasClass(CLASS_NAME_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(CLASS_NAME_COLLAPSING)\n      .removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n    const triggerArrayLength = this._triggerArray.length\n    if (triggerArrayLength > 0) {\n      for (let i = 0; i < triggerArrayLength; i++) {\n        const trigger = this._triggerArray[i]\n        const selector = Util.getSelectorFromElement(trigger)\n\n        if (selector !== null) {\n          const $elem = $([].slice.call(document.querySelectorAll(selector)))\n          if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n            $(trigger).addClass(CLASS_NAME_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(CLASS_NAME_COLLAPSING)\n        .addClass(CLASS_NAME_COLLAPSE)\n        .trigger(EVENT_HIDDEN)\n    }\n\n    this._element.style[dimension] = ''\n    const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n    $(this._element)\n      .one(Util.TRANSITION_END, complete)\n      .emulateTransitionEnd(transitionDuration)\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  _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\n\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 = document.querySelector(this._config.parent)\n    }\n\n    const selector = `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n    const children = [].slice.call(parent.querySelectorAll(selector))\n\n    $(children).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    const isOpen = $(element).hasClass(CLASS_NAME_SHOW)\n\n    if (triggerArray.length) {\n      $(triggerArray)\n        .toggleClass(CLASS_NAME_COLLAPSED, !isOpen)\n        .attr('aria-expanded', isOpen)\n    }\n  }\n\n  // Static\n  static _getTargetFromElement(element) {\n    const selector = Util.getSelectorFromElement(element)\n    return selector ? document.querySelector(selector) : null\n  }\n\n  static _jQueryInterface(config) {\n    return this.each(function () {\n      const $element = $(this)\n      let data = $element.data(DATA_KEY)\n      const _config = {\n        ...Default,\n        ...$element.data(),\n        ...(typeof config === 'object' && config ? config : {})\n      }\n\n      if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n        _config.toggle = false\n      }\n\n      if (!data) {\n        data = new Collapse(this, _config)\n        $element.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\n        data[config]()\n      }\n    })\n  }\n}\n\n/**\n * Data API implementation\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n  // preventDefault only for <a> 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  const selectors = [].slice.call(document.querySelectorAll(selector))\n\n  $(selectors).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 * jQuery\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return Collapse._jQueryInterface\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * Constants\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.6.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n  offset: 0,\n  flip: true,\n  boundary: 'scrollParent',\n  reference: 'toggle',\n  display: 'dynamic',\n  popperConfig: null\n}\n\nconst DefaultType = {\n  offset: '(number|string|function)',\n  flip: 'boolean',\n  boundary: '(string|element)',\n  reference: '(string|element)',\n  display: 'string',\n  popperConfig: '(null|object)'\n}\n\n/**\n * Class definition\n */\n\nclass Dropdown {\n  constructor(element, config) {\n    this._element = element\n    this._popper = null\n    this._config = this._getConfig(config)\n    this._menu = this._getMenuElement()\n    this._inNavbar = this._detectNavbar()\n\n    this._addEventListeners()\n  }\n\n  // Getters\n  static get VERSION() {\n    return VERSION\n  }\n\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  // Public\n  toggle() {\n    if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n      return\n    }\n\n    const isActive = $(this._menu).hasClass(CLASS_NAME_SHOW)\n\n    Dropdown._clearMenus()\n\n    if (isActive) {\n      return\n    }\n\n    this.show(true)\n  }\n\n  show(usePopper = false) {\n    if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {\n      return\n    }\n\n    const relatedTarget = {\n      relatedTarget: this._element\n    }\n    const showEvent = $.Event(EVENT_SHOW, relatedTarget)\n    const parent = Dropdown._getParentFromElement(this._element)\n\n    $(parent).trigger(showEvent)\n\n    if (showEvent.isDefaultPrevented()) {\n      return\n    }\n\n    // Totally disable Popper for Dropdowns in Navbar\n    if (!this._inNavbar && usePopper) {\n      // Check for Popper dependency\n      if (typeof Popper === 'undefined') {\n        throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)')\n      }\n\n      let referenceElement = this._element\n\n      if (this._config.reference === 'parent') {\n        referenceElement = parent\n      } else if (Util.isElement(this._config.reference)) {\n        referenceElement = this._config.reference\n\n        // Check if it's jQuery element\n        if (typeof this._config.reference.jquery !== 'undefined') {\n          referenceElement = this._config.reference[0]\n        }\n      }\n\n      // If boundary is not `scrollParent`, then set position to `static`\n      // to allow the menu to \"escape\" the scroll parent's boundaries\n      // https://github.com/twbs/bootstrap/issues/24251\n      if (this._config.boundary !== 'scrollParent') {\n        $(parent).addClass(CLASS_NAME_POSITION_STATIC)\n      }\n\n      this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n    }\n\n    // If this is a touch-enabled device we add extra\n    // empty mouseover listeners to the body's immediate children;\n    // only needed because of broken event delegation on iOS\n    // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n    if ('ontouchstart' in document.documentElement &&\n        $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n      $(document.body).children().on('mouseover', null, $.noop)\n    }\n\n    this._element.focus()\n    this._element.setAttribute('aria-expanded', true)\n\n    $(this._menu).toggleClass(CLASS_NAME_SHOW)\n    $(parent)\n      .toggleClass(CLASS_NAME_SHOW)\n      .trigger($.Event(EVENT_SHOWN, relatedTarget))\n  }\n\n  hide() {\n    if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {\n      return\n    }\n\n    const relatedTarget = {\n      relatedTarget: this._element\n    }\n    const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n    const parent = Dropdown._getParentFromElement(this._element)\n\n    $(parent).trigger(hideEvent)\n\n    if (hideEvent.isDefaultPrevented()) {\n      return\n    }\n\n    if (this._popper) {\n      this._popper.destroy()\n    }\n\n    $(this._menu).toggleClass(CLASS_NAME_SHOW)\n    $(parent)\n      .toggleClass(CLASS_NAME_SHOW)\n      .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n  }\n\n  dispose() {\n    $.removeData(this._element, DATA_KEY)\n    $(this._element).off(EVENT_KEY)\n    this._element = null\n    this._menu = null\n    if (this._popper !== null) {\n      this._popper.destroy()\n      this._popper = null\n    }\n  }\n\n  update() {\n    this._inNavbar = this._detectNavbar()\n    if (this._popper !== null) {\n      this._popper.scheduleUpdate()\n    }\n  }\n\n  // Private\n  _addEventListeners() {\n    $(this._element).on(EVENT_CLICK, event => {\n      event.preventDefault()\n      event.stopPropagation()\n      this.toggle()\n    })\n  }\n\n  _getConfig(config) {\n    config = {\n      ...this.constructor.Default,\n      ...$(this._element).data(),\n      ...config\n    }\n\n    Util.typeCheckConfig(\n      NAME,\n      config,\n      this.constructor.DefaultType\n    )\n\n    return config\n  }\n\n  _getMenuElement() {\n    if (!this._menu) {\n      const parent = Dropdown._getParentFromElement(this._element)\n\n      if (parent) {\n        this._menu = parent.querySelector(SELECTOR_MENU)\n      }\n    }\n\n    return this._menu\n  }\n\n  _getPlacement() {\n    const $parentDropdown = $(this._element.parentNode)\n    let placement = PLACEMENT_BOTTOM\n\n    // Handle dropup\n    if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n      placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT) ?\n        PLACEMENT_TOPEND :\n        PLACEMENT_TOP\n    } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n      placement = PLACEMENT_RIGHT\n    } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n      placement = PLACEMENT_LEFT\n    } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n      placement = PLACEMENT_BOTTOMEND\n    }\n\n    return placement\n  }\n\n  _detectNavbar() {\n    return $(this._element).closest('.navbar').length > 0\n  }\n\n  _getOffset() {\n    const offset = {}\n\n    if (typeof this._config.offset === 'function') {\n      offset.fn = data => {\n        data.offsets = {\n          ...data.offsets,\n          ...this._config.offset(data.offsets, this._element)\n        }\n\n        return data\n      }\n    } else {\n      offset.offset = this._config.offset\n    }\n\n    return offset\n  }\n\n  _getPopperConfig() {\n    const popperConfig = {\n      placement: this._getPlacement(),\n      modifiers: {\n        offset: this._getOffset(),\n        flip: {\n          enabled: this._config.flip\n        },\n        preventOverflow: {\n          boundariesElement: this._config.boundary\n        }\n      }\n    }\n\n    // Disable Popper if we have a static display\n    if (this._config.display === 'static') {\n      popperConfig.modifiers.applyStyle = {\n        enabled: false\n      }\n    }\n\n    return {\n      ...popperConfig,\n      ...this._config.popperConfig\n    }\n  }\n\n  // Static\n  static _jQueryInterface(config) {\n    return this.each(function () {\n      let data = $(this).data(DATA_KEY)\n      const _config = typeof config === 'object' ? config : null\n\n      if (!data) {\n        data = new Dropdown(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\n        data[config]()\n      }\n    })\n  }\n\n  static _clearMenus(event) {\n    if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n      event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n      return\n    }\n\n    const toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n\n    for (let i = 0, len = toggles.length; i < len; i++) {\n      const parent = Dropdown._getParentFromElement(toggles[i])\n      const context = $(toggles[i]).data(DATA_KEY)\n      const relatedTarget = {\n        relatedTarget: toggles[i]\n      }\n\n      if (event && event.type === 'click') {\n        relatedTarget.clickEvent = event\n      }\n\n      if (!context) {\n        continue\n      }\n\n      const dropdownMenu = context._menu\n      if (!$(parent).hasClass(CLASS_NAME_SHOW)) {\n        continue\n      }\n\n      if (event && (event.type === 'click' &&\n          /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n          $.contains(parent, event.target)) {\n        continue\n      }\n\n      const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n      $(parent).trigger(hideEvent)\n      if (hideEvent.isDefaultPrevented()) {\n        continue\n      }\n\n      // If this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n      if ('ontouchstart' in document.documentElement) {\n        $(document.body).children().off('mouseover', null, $.noop)\n      }\n\n      toggles[i].setAttribute('aria-expanded', 'false')\n\n      if (context._popper) {\n        context._popper.destroy()\n      }\n\n      $(dropdownMenu).removeClass(CLASS_NAME_SHOW)\n      $(parent)\n        .removeClass(CLASS_NAME_SHOW)\n        .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n    }\n  }\n\n  static _getParentFromElement(element) {\n    let parent\n    const selector = Util.getSelectorFromElement(element)\n\n    if (selector) {\n      parent = document.querySelector(selector)\n    }\n\n    return parent || element.parentNode\n  }\n\n  // eslint-disable-next-line complexity\n  static _dataApiKeydownHandler(event) {\n    // If not input/textarea:\n    //  - And not a key in REGEXP_KEYDOWN => not a dropdown command\n    // If input/textarea:\n    //  - If space key => not a dropdown command\n    //  - If key is other than escape\n    //    - If key is not up or down => not a dropdown command\n    //    - If trigger inside the menu => not a dropdown command\n    if (/input|textarea/i.test(event.target.tagName) ?\n      event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n      (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n        $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n      return\n    }\n\n    if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {\n      return\n    }\n\n    const parent = Dropdown._getParentFromElement(this)\n    const isActive = $(parent).hasClass(CLASS_NAME_SHOW)\n\n    if (!isActive && event.which === ESCAPE_KEYCODE) {\n      return\n    }\n\n    event.preventDefault()\n    event.stopPropagation()\n\n    if (!isActive || (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n      if (event.which === ESCAPE_KEYCODE) {\n        $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus')\n      }\n\n      $(this).trigger('click')\n      return\n    }\n\n    const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS))\n      .filter(item => $(item).is(':visible'))\n\n    if (items.length === 0) {\n      return\n    }\n\n    let index = items.indexOf(event.target)\n\n    if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n      index--\n    }\n\n    if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n      index++\n    }\n\n    if (index < 0) {\n      index = 0\n    }\n\n    items[index].focus()\n  }\n}\n\n/**\n * Data API implementation\n */\n\n$(document)\n  .on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n  .on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler)\n  .on(`${EVENT_CLICK_DATA_API} ${EVENT_KEYUP_DATA_API}`, Dropdown._clearMenus)\n  .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n    event.preventDefault()\n    event.stopPropagation()\n    Dropdown._jQueryInterface.call($(this), 'toggle')\n  })\n  .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => {\n    e.stopPropagation()\n  })\n\n/**\n * jQuery\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * Constants\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.6.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\nconst Default = {\n  backdrop: true,\n  keyboard: true,\n  focus: true,\n  show: true\n}\n\nconst DefaultType = {\n  backdrop: '(boolean|string)',\n  keyboard: 'boolean',\n  focus: 'boolean',\n  show: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Modal {\n  constructor(element, config) {\n    this._config = this._getConfig(config)\n    this._element = element\n    this._dialog = element.querySelector(SELECTOR_DIALOG)\n    this._backdrop = null\n    this._isShown = false\n    this._isBodyOverflowing = false\n    this._ignoreBackdropClick = false\n    this._isTransitioning = false\n    this._scrollbarWidth = 0\n  }\n\n  // Getters\n  static get VERSION() {\n    return VERSION\n  }\n\n  static get Default() {\n    return Default\n  }\n\n  // Public\n  toggle(relatedTarget) {\n    return this._isShown ? this.hide() : this.show(relatedTarget)\n  }\n\n  show(relatedTarget) {\n    if (this._isShown || this._isTransitioning) {\n      return\n    }\n\n    const showEvent = $.Event(EVENT_SHOW, {\n      relatedTarget\n    })\n\n    $(this._element).trigger(showEvent)\n\n    if (showEvent.isDefaultPrevented()) {\n      return\n    }\n\n    this._isShown = true\n\n    if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n      this._isTransitioning = true\n    }\n\n    this._checkScrollbar()\n    this._setScrollbar()\n\n    this._adjustDialog()\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._isShown || this._isTransitioning) {\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    const transition = $(this._element).hasClass(CLASS_NAME_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(CLASS_NAME_SHOW)\n\n    $(this._element).off(EVENT_CLICK_DISMISS)\n    $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\n\n    if (transition) {\n      const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n      $(this._element)\n        .one(Util.TRANSITION_END, event => this._hideModal(event))\n        .emulateTransitionEnd(transitionDuration)\n    } else {\n      this._hideModal()\n    }\n  }\n\n  dispose() {\n    [window, this._element, this._dialog]\n      .forEach(htmlElement => $(htmlElement).off(EVENT_KEY))\n\n    /**\n     * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n     * Do not move `document` in `htmlElements` array\n     * It will remove `EVENT_CLICK_DATA_API` event that should remain\n     */\n    $(document).off(EVENT_FOCUSIN)\n\n    $.removeData(this._element, DATA_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._isTransitioning = null\n    this._scrollbarWidth = null\n  }\n\n  handleUpdate() {\n    this._adjustDialog()\n  }\n\n  // Private\n  _getConfig(config) {\n    config = {\n      ...Default,\n      ...config\n    }\n    Util.typeCheckConfig(NAME, config, DefaultType)\n    return config\n  }\n\n  _triggerBackdropTransition() {\n    const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n    $(this._element).trigger(hideEventPrevented)\n    if (hideEventPrevented.isDefaultPrevented()) {\n      return\n    }\n\n    const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n    if (!isModalOverflowing) {\n      this._element.style.overflowY = 'hidden'\n    }\n\n    this._element.classList.add(CLASS_NAME_STATIC)\n\n    const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n    $(this._element).off(Util.TRANSITION_END)\n\n    $(this._element).one(Util.TRANSITION_END, () => {\n      this._element.classList.remove(CLASS_NAME_STATIC)\n      if (!isModalOverflowing) {\n        $(this._element).one(Util.TRANSITION_END, () => {\n          this._element.style.overflowY = ''\n        })\n          .emulateTransitionEnd(this._element, modalTransitionDuration)\n      }\n    })\n      .emulateTransitionEnd(modalTransitionDuration)\n    this._element.focus()\n  }\n\n  _showElement(relatedTarget) {\n    const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n    const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\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.setAttribute('aria-modal', true)\n    this._element.setAttribute('role', 'dialog')\n\n    if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n      modalBody.scrollTop = 0\n    } else {\n      this._element.scrollTop = 0\n    }\n\n    if (transition) {\n      Util.reflow(this._element)\n    }\n\n    $(this._element).addClass(CLASS_NAME_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\n      this._isTransitioning = false\n      $(this._element).trigger(shownEvent)\n    }\n\n    if (transition) {\n      const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n      $(this._dialog)\n        .one(Util.TRANSITION_END, transitionComplete)\n        .emulateTransitionEnd(transitionDuration)\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) {\n      $(this._element).on(EVENT_KEYDOWN_DISMISS, event => {\n        if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n          event.preventDefault()\n          this.hide()\n        } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n          this._triggerBackdropTransition()\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._element.removeAttribute('aria-modal')\n    this._element.removeAttribute('role')\n    this._isTransitioning = false\n    this._showBackdrop(() => {\n      $(document.body).removeClass(CLASS_NAME_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(CLASS_NAME_FADE) ?\n      CLASS_NAME_FADE : ''\n\n    if (this._isShown && this._config.backdrop) {\n      this._backdrop = document.createElement('div')\n      this._backdrop.className = CLASS_NAME_BACKDROP\n\n      if (animate) {\n        this._backdrop.classList.add(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\n        if (event.target !== event.currentTarget) {\n          return\n        }\n\n        if (this._config.backdrop === 'static') {\n          this._triggerBackdropTransition()\n        } else {\n          this.hide()\n        }\n      })\n\n      if (animate) {\n        Util.reflow(this._backdrop)\n      }\n\n      $(this._backdrop).addClass(CLASS_NAME_SHOW)\n\n      if (!callback) {\n        return\n      }\n\n      if (!animate) {\n        callback()\n        return\n      }\n\n      const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n      $(this._backdrop)\n        .one(Util.TRANSITION_END, callback)\n        .emulateTransitionEnd(backdropTransitionDuration)\n    } else if (!this._isShown && this._backdrop) {\n      $(this._backdrop).removeClass(CLASS_NAME_SHOW)\n\n      const callbackRemove = () => {\n        this._removeBackdrop()\n        if (callback) {\n          callback()\n        }\n      }\n\n      if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n        const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n        $(this._backdrop)\n          .one(Util.TRANSITION_END, callbackRemove)\n          .emulateTransitionEnd(backdropTransitionDuration)\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 = 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 = Math.round(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      const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n      const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT))\n\n      // Adjust fixed content padding\n      $(fixedContent).each((index, element) => {\n        const actualPadding = element.style.paddingRight\n        const calculatedPadding = $(element).css('padding-right')\n        $(element)\n          .data('padding-right', actualPadding)\n          .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n      })\n\n      // Adjust sticky content margin\n      $(stickyContent).each((index, element) => {\n        const actualMargin = element.style.marginRight\n        const calculatedMargin = $(element).css('margin-right')\n        $(element)\n          .data('margin-right', actualMargin)\n          .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n      })\n\n      // Adjust body padding\n      const actualPadding = document.body.style.paddingRight\n      const calculatedPadding = $(document.body).css('padding-right')\n      $(document.body)\n        .data('padding-right', actualPadding)\n        .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n    }\n\n    $(document.body).addClass(CLASS_NAME_OPEN)\n  }\n\n  _resetScrollbar() {\n    // Restore fixed content padding\n    const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n    $(fixedContent).each((index, element) => {\n      const padding = $(element).data('padding-right')\n      $(element).removeData('padding-right')\n      element.style.paddingRight = padding ? padding : ''\n    })\n\n    // Restore sticky content\n    const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`))\n    $(elements).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 = $(document.body).data('padding-right')\n    $(document.body).removeData('padding-right')\n    document.body.style.paddingRight = padding ? padding : ''\n  }\n\n  _getScrollbarWidth() { // thx d.walsh\n    const scrollDiv = document.createElement('div')\n    scrollDiv.className = CLASS_NAME_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  static _jQueryInterface(config, relatedTarget) {\n    return this.each(function () {\n      let data = $(this).data(DATA_KEY)\n      const _config = {\n        ...Default,\n        ...$(this).data(),\n        ...(typeof config === 'object' && config ? 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\n        data[config](relatedTarget)\n      } else if (_config.show) {\n        data.show(relatedTarget)\n      }\n    })\n  }\n}\n\n/**\n * Data API implementation\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 = document.querySelector(selector)\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 * jQuery\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return Modal._jQueryInterface\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.1): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n  'background',\n  'cite',\n  'href',\n  'itemtype',\n  'longdesc',\n  'poster',\n  'src',\n  'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultWhitelist = {\n  // Global attributes allowed on any supplied element below.\n  '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n  a: ['target', 'href', 'title', 'rel'],\n  area: [],\n  b: [],\n  br: [],\n  col: [],\n  code: [],\n  div: [],\n  em: [],\n  hr: [],\n  h1: [],\n  h2: [],\n  h3: [],\n  h4: [],\n  h5: [],\n  h6: [],\n  i: [],\n  img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n  li: [],\n  ol: [],\n  p: [],\n  pre: [],\n  s: [],\n  small: [],\n  span: [],\n  sub: [],\n  sup: [],\n  strong: [],\n  u: [],\n  ul: []\n}\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nfunction allowedAttribute(attr, allowedAttributeList) {\n  const attrName = attr.nodeName.toLowerCase()\n\n  if (allowedAttributeList.indexOf(attrName) !== -1) {\n    if (uriAttrs.indexOf(attrName) !== -1) {\n      return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue))\n    }\n\n    return true\n  }\n\n  const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n  // Check if a regular expression validates the attribute.\n  for (let i = 0, len = regExp.length; i < len; i++) {\n    if (regExp[i].test(attrName)) {\n      return true\n    }\n  }\n\n  return false\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n  if (unsafeHtml.length === 0) {\n    return unsafeHtml\n  }\n\n  if (sanitizeFn && typeof sanitizeFn === 'function') {\n    return sanitizeFn(unsafeHtml)\n  }\n\n  const domParser = new window.DOMParser()\n  const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n  const whitelistKeys = Object.keys(whiteList)\n  const elements = [].slice.call(createdDocument.body.querySelectorAll('*'))\n\n  for (let i = 0, len = elements.length; i < len; i++) {\n    const el = elements[i]\n    const elName = el.nodeName.toLowerCase()\n\n    if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n      el.parentNode.removeChild(el)\n\n      continue\n    }\n\n    const attributeList = [].slice.call(el.attributes)\n    // eslint-disable-next-line unicorn/prefer-spread\n    const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n    attributeList.forEach(attr => {\n      if (!allowedAttribute(attr, whitelistedAttributes)) {\n        el.removeAttribute(attr.nodeName)\n      }\n    })\n  }\n\n  return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { DefaultWhitelist, sanitizeHtml } from './tools/sanitizer'\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * Constants\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.6.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_ARROW = '.arrow'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\nconst AttachmentMap = {\n  AUTO: 'auto',\n  TOP: 'top',\n  RIGHT: 'right',\n  BOTTOM: 'bottom',\n  LEFT: 'left'\n}\n\nconst Default = {\n  animation: true,\n  template: '<div class=\"tooltip\" role=\"tooltip\">' +\n                    '<div class=\"arrow\"></div>' +\n                    '<div class=\"tooltip-inner\"></div></div>',\n  trigger: 'hover focus',\n  title: '',\n  delay: 0,\n  html: false,\n  selector: false,\n  placement: 'top',\n  offset: 0,\n  container: false,\n  fallbackPlacement: 'flip',\n  boundary: 'scrollParent',\n  customClass: '',\n  sanitize: true,\n  sanitizeFn: null,\n  whiteList: DefaultWhitelist,\n  popperConfig: null\n}\n\nconst DefaultType = {\n  animation: 'boolean',\n  template: 'string',\n  title: '(string|element|function)',\n  trigger: 'string',\n  delay: '(number|object)',\n  html: 'boolean',\n  selector: '(string|boolean)',\n  placement: '(string|function)',\n  offset: '(number|string|function)',\n  container: '(string|element|boolean)',\n  fallbackPlacement: '(string|array)',\n  boundary: '(string|element)',\n  customClass: '(string|function)',\n  sanitize: 'boolean',\n  sanitizeFn: '(null|function)',\n  whiteList: 'object',\n  popperConfig: '(null|object)'\n}\n\nconst Event = {\n  HIDE: `hide${EVENT_KEY}`,\n  HIDDEN: `hidden${EVENT_KEY}`,\n  SHOW: `show${EVENT_KEY}`,\n  SHOWN: `shown${EVENT_KEY}`,\n  INSERTED: `inserted${EVENT_KEY}`,\n  CLICK: `click${EVENT_KEY}`,\n  FOCUSIN: `focusin${EVENT_KEY}`,\n  FOCUSOUT: `focusout${EVENT_KEY}`,\n  MOUSEENTER: `mouseenter${EVENT_KEY}`,\n  MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * Class definition\n */\n\nclass Tooltip {\n  constructor(element, config) {\n    if (typeof Popper === 'undefined') {\n      throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)')\n    }\n\n    // Private\n    this._isEnabled = true\n    this._timeout = 0\n    this._hoverState = ''\n    this._activeTrigger = {}\n    this._popper = null\n\n    // Protected\n    this.element = element\n    this.config = this._getConfig(config)\n    this.tip = null\n\n    this._setListeners()\n  }\n\n  // Getters\n  static get VERSION() {\n    return VERSION\n  }\n\n  static get Default() {\n    return Default\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  static get DATA_KEY() {\n    return DATA_KEY\n  }\n\n  static get Event() {\n    return Event\n  }\n\n  static get EVENT_KEY() {\n    return EVENT_KEY\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  // Public\n  enable() {\n    this._isEnabled = true\n  }\n\n  disable() {\n    this._isEnabled = false\n  }\n\n  toggleEnabled() {\n    this._isEnabled = !this._isEnabled\n  }\n\n  toggle(event) {\n    if (!this._isEnabled) {\n      return\n    }\n\n    if (event) {\n      const dataKey = this.constructor.DATA_KEY\n      let context = $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      context._activeTrigger.click = !context._activeTrigger.click\n\n      if (context._isWithActiveTrigger()) {\n        context._enter(null, context)\n      } else {\n        context._leave(null, context)\n      }\n    } else {\n      if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW)) {\n        this._leave(null, this)\n        return\n      }\n\n      this._enter(null, this)\n    }\n  }\n\n  dispose() {\n    clearTimeout(this._timeout)\n\n    $.removeData(this.element, this.constructor.DATA_KEY)\n\n    $(this.element).off(this.constructor.EVENT_KEY)\n    $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler)\n\n    if (this.tip) {\n      $(this.tip).remove()\n    }\n\n    this._isEnabled = null\n    this._timeout = null\n    this._hoverState = null\n    this._activeTrigger = null\n    if (this._popper) {\n      this._popper.destroy()\n    }\n\n    this._popper = null\n    this.element = null\n    this.config = null\n    this.tip = null\n  }\n\n  show() {\n    if ($(this.element).css('display') === 'none') {\n      throw new Error('Please use show on visible elements')\n    }\n\n    const showEvent = $.Event(this.constructor.Event.SHOW)\n    if (this.isWithContent() && this._isEnabled) {\n      $(this.element).trigger(showEvent)\n\n      const shadowRoot = Util.findShadowRoot(this.element)\n      const isInTheDom = $.contains(\n        shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement,\n        this.element\n      )\n\n      if (showEvent.isDefaultPrevented() || !isInTheDom) {\n        return\n      }\n\n      const tip = this.getTipElement()\n      const tipId = Util.getUID(this.constructor.NAME)\n\n      tip.setAttribute('id', tipId)\n      this.element.setAttribute('aria-describedby', tipId)\n\n      this.setContent()\n\n      if (this.config.animation) {\n        $(tip).addClass(CLASS_NAME_FADE)\n      }\n\n      const placement = typeof this.config.placement === 'function' ?\n        this.config.placement.call(this, tip, this.element) :\n        this.config.placement\n\n      const attachment = this._getAttachment(placement)\n      this.addAttachmentClass(attachment)\n\n      const container = this._getContainer()\n      $(tip).data(this.constructor.DATA_KEY, this)\n\n      if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n        $(tip).appendTo(container)\n      }\n\n      $(this.element).trigger(this.constructor.Event.INSERTED)\n\n      this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment))\n\n      $(tip).addClass(CLASS_NAME_SHOW)\n      $(tip).addClass(this.config.customClass)\n\n      // If this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n      if ('ontouchstart' in document.documentElement) {\n        $(document.body).children().on('mouseover', null, $.noop)\n      }\n\n      const complete = () => {\n        if (this.config.animation) {\n          this._fixTransition()\n        }\n\n        const prevHoverState = this._hoverState\n        this._hoverState = null\n\n        $(this.element).trigger(this.constructor.Event.SHOWN)\n\n        if (prevHoverState === HOVER_STATE_OUT) {\n          this._leave(null, this)\n        }\n      }\n\n      if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n        const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n        $(this.tip)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(transitionDuration)\n      } else {\n        complete()\n      }\n    }\n  }\n\n  hide(callback) {\n    const tip = this.getTipElement()\n    const hideEvent = $.Event(this.constructor.Event.HIDE)\n    const complete = () => {\n      if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n        tip.parentNode.removeChild(tip)\n      }\n\n      this._cleanTipClass()\n      this.element.removeAttribute('aria-describedby')\n      $(this.element).trigger(this.constructor.Event.HIDDEN)\n      if (this._popper !== null) {\n        this._popper.destroy()\n      }\n\n      if (callback) {\n        callback()\n      }\n    }\n\n    $(this.element).trigger(hideEvent)\n\n    if (hideEvent.isDefaultPrevented()) {\n      return\n    }\n\n    $(tip).removeClass(CLASS_NAME_SHOW)\n\n    // If this is a touch-enabled device we remove the extra\n    // empty mouseover listeners we added for iOS support\n    if ('ontouchstart' in document.documentElement) {\n      $(document.body).children().off('mouseover', null, $.noop)\n    }\n\n    this._activeTrigger[TRIGGER_CLICK] = false\n    this._activeTrigger[TRIGGER_FOCUS] = false\n    this._activeTrigger[TRIGGER_HOVER] = false\n\n    if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n      const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n      $(tip)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(transitionDuration)\n    } else {\n      complete()\n    }\n\n    this._hoverState = ''\n  }\n\n  update() {\n    if (this._popper !== null) {\n      this._popper.scheduleUpdate()\n    }\n  }\n\n  // Protected\n  isWithContent() {\n    return Boolean(this.getTitle())\n  }\n\n  addAttachmentClass(attachment) {\n    $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n  }\n\n  getTipElement() {\n    this.tip = this.tip || $(this.config.template)[0]\n    return this.tip\n  }\n\n  setContent() {\n    const tip = this.getTipElement()\n    this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle())\n    $(tip).removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n  }\n\n  setElementContent($element, content) {\n    if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n      // Content is a DOM node or a jQuery\n      if (this.config.html) {\n        if (!$(content).parent().is($element)) {\n          $element.empty().append(content)\n        }\n      } else {\n        $element.text($(content).text())\n      }\n\n      return\n    }\n\n    if (this.config.html) {\n      if (this.config.sanitize) {\n        content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n      }\n\n      $element.html(content)\n    } else {\n      $element.text(content)\n    }\n  }\n\n  getTitle() {\n    let title = this.element.getAttribute('data-original-title')\n\n    if (!title) {\n      title = typeof this.config.title === 'function' ?\n        this.config.title.call(this.element) :\n        this.config.title\n    }\n\n    return title\n  }\n\n  // Private\n  _getPopperConfig(attachment) {\n    const defaultBsConfig = {\n      placement: attachment,\n      modifiers: {\n        offset: this._getOffset(),\n        flip: {\n          behavior: this.config.fallbackPlacement\n        },\n        arrow: {\n          element: SELECTOR_ARROW\n        },\n        preventOverflow: {\n          boundariesElement: this.config.boundary\n        }\n      },\n      onCreate: data => {\n        if (data.originalPlacement !== data.placement) {\n          this._handlePopperPlacementChange(data)\n        }\n      },\n      onUpdate: data => this._handlePopperPlacementChange(data)\n    }\n\n    return {\n      ...defaultBsConfig,\n      ...this.config.popperConfig\n    }\n  }\n\n  _getOffset() {\n    const offset = {}\n\n    if (typeof this.config.offset === 'function') {\n      offset.fn = data => {\n        data.offsets = {\n          ...data.offsets,\n          ...this.config.offset(data.offsets, this.element)\n        }\n\n        return data\n      }\n    } else {\n      offset.offset = this.config.offset\n    }\n\n    return offset\n  }\n\n  _getContainer() {\n    if (this.config.container === false) {\n      return document.body\n    }\n\n    if (Util.isElement(this.config.container)) {\n      return $(this.config.container)\n    }\n\n    return $(document).find(this.config.container)\n  }\n\n  _getAttachment(placement) {\n    return AttachmentMap[placement.toUpperCase()]\n  }\n\n  _setListeners() {\n    const triggers = this.config.trigger.split(' ')\n\n    triggers.forEach(trigger => {\n      if (trigger === 'click') {\n        $(this.element).on(\n          this.constructor.Event.CLICK,\n          this.config.selector,\n          event => this.toggle(event)\n        )\n      } else if (trigger !== TRIGGER_MANUAL) {\n        const eventIn = trigger === TRIGGER_HOVER ?\n          this.constructor.Event.MOUSEENTER :\n          this.constructor.Event.FOCUSIN\n        const eventOut = trigger === TRIGGER_HOVER ?\n          this.constructor.Event.MOUSELEAVE :\n          this.constructor.Event.FOCUSOUT\n\n        $(this.element)\n          .on(eventIn, this.config.selector, event => this._enter(event))\n          .on(eventOut, this.config.selector, event => this._leave(event))\n      }\n    })\n\n    this._hideModalHandler = () => {\n      if (this.element) {\n        this.hide()\n      }\n    }\n\n    $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler)\n\n    if (this.config.selector) {\n      this.config = {\n        ...this.config,\n        trigger: 'manual',\n        selector: ''\n      }\n    } else {\n      this._fixTitle()\n    }\n  }\n\n  _fixTitle() {\n    const titleType = typeof this.element.getAttribute('data-original-title')\n\n    if (this.element.getAttribute('title') || titleType !== 'string') {\n      this.element.setAttribute(\n        'data-original-title',\n        this.element.getAttribute('title') || ''\n      )\n\n      this.element.setAttribute('title', '')\n    }\n  }\n\n  _enter(event, context) {\n    const dataKey = this.constructor.DATA_KEY\n    context = context || $(event.currentTarget).data(dataKey)\n\n    if (!context) {\n      context = new this.constructor(\n        event.currentTarget,\n        this._getDelegateConfig()\n      )\n      $(event.currentTarget).data(dataKey, context)\n    }\n\n    if (event) {\n      context._activeTrigger[\n        event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n      ] = true\n    }\n\n    if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n      context._hoverState = HOVER_STATE_SHOW\n      return\n    }\n\n    clearTimeout(context._timeout)\n\n    context._hoverState = HOVER_STATE_SHOW\n\n    if (!context.config.delay || !context.config.delay.show) {\n      context.show()\n      return\n    }\n\n    context._timeout = setTimeout(() => {\n      if (context._hoverState === HOVER_STATE_SHOW) {\n        context.show()\n      }\n    }, context.config.delay.show)\n  }\n\n  _leave(event, context) {\n    const dataKey = this.constructor.DATA_KEY\n    context = context || $(event.currentTarget).data(dataKey)\n\n    if (!context) {\n      context = new this.constructor(\n        event.currentTarget,\n        this._getDelegateConfig()\n      )\n      $(event.currentTarget).data(dataKey, context)\n    }\n\n    if (event) {\n      context._activeTrigger[\n        event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n      ] = false\n    }\n\n    if (context._isWithActiveTrigger()) {\n      return\n    }\n\n    clearTimeout(context._timeout)\n\n    context._hoverState = HOVER_STATE_OUT\n\n    if (!context.config.delay || !context.config.delay.hide) {\n      context.hide()\n      return\n    }\n\n    context._timeout = setTimeout(() => {\n      if (context._hoverState === HOVER_STATE_OUT) {\n        context.hide()\n      }\n    }, context.config.delay.hide)\n  }\n\n  _isWithActiveTrigger() {\n    for (const trigger in this._activeTrigger) {\n      if (this._activeTrigger[trigger]) {\n        return true\n      }\n    }\n\n    return false\n  }\n\n  _getConfig(config) {\n    const dataAttributes = $(this.element).data()\n\n    Object.keys(dataAttributes)\n      .forEach(dataAttr => {\n        if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n          delete dataAttributes[dataAttr]\n        }\n      })\n\n    config = {\n      ...this.constructor.Default,\n      ...dataAttributes,\n      ...(typeof config === 'object' && config ? config : {})\n    }\n\n    if (typeof config.delay === 'number') {\n      config.delay = {\n        show: config.delay,\n        hide: config.delay\n      }\n    }\n\n    if (typeof config.title === 'number') {\n      config.title = config.title.toString()\n    }\n\n    if (typeof config.content === 'number') {\n      config.content = config.content.toString()\n    }\n\n    Util.typeCheckConfig(\n      NAME,\n      config,\n      this.constructor.DefaultType\n    )\n\n    if (config.sanitize) {\n      config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n    }\n\n    return config\n  }\n\n  _getDelegateConfig() {\n    const config = {}\n\n    if (this.config) {\n      for (const key in this.config) {\n        if (this.constructor.Default[key] !== this.config[key]) {\n          config[key] = this.config[key]\n        }\n      }\n    }\n\n    return config\n  }\n\n  _cleanTipClass() {\n    const $tip = $(this.getTipElement())\n    const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n    if (tabClass !== null && tabClass.length) {\n      $tip.removeClass(tabClass.join(''))\n    }\n  }\n\n  _handlePopperPlacementChange(popperData) {\n    this.tip = popperData.instance.popper\n    this._cleanTipClass()\n    this.addAttachmentClass(this._getAttachment(popperData.placement))\n  }\n\n  _fixTransition() {\n    const tip = this.getTipElement()\n    const initConfigAnimation = this.config.animation\n\n    if (tip.getAttribute('x-placement') !== null) {\n      return\n    }\n\n    $(tip).removeClass(CLASS_NAME_FADE)\n    this.config.animation = false\n    this.hide()\n    this.show()\n    this.config.animation = initConfigAnimation\n  }\n\n  // Static\n  static _jQueryInterface(config) {\n    return this.each(function () {\n      const $element = $(this)\n      let data = $element.data(DATA_KEY)\n      const _config = typeof config === 'object' && config\n\n      if (!data && /dispose|hide/.test(config)) {\n        return\n      }\n\n      if (!data) {\n        data = new Tooltip(this, _config)\n        $element.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\n        data[config]()\n      }\n    })\n  }\n}\n\n/**\n * jQuery\n */\n\n$.fn[NAME] = Tooltip._jQueryInterface\n$.fn[NAME].Constructor = Tooltip\n$.fn[NAME].noConflict = () => {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return Tooltip._jQueryInterface\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * Constants\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.6.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Default = {\n  ...Tooltip.Default,\n  placement: 'right',\n  trigger: 'click',\n  content: '',\n  template: '<div class=\"popover\" role=\"tooltip\">' +\n              '<div class=\"arrow\"></div>' +\n              '<h3 class=\"popover-header\"></h3>' +\n              '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n  ...Tooltip.DefaultType,\n  content: '(string|element|function)'\n}\n\nconst Event = {\n  HIDE: `hide${EVENT_KEY}`,\n  HIDDEN: `hidden${EVENT_KEY}`,\n  SHOW: `show${EVENT_KEY}`,\n  SHOWN: `shown${EVENT_KEY}`,\n  INSERTED: `inserted${EVENT_KEY}`,\n  CLICK: `click${EVENT_KEY}`,\n  FOCUSIN: `focusin${EVENT_KEY}`,\n  FOCUSOUT: `focusout${EVENT_KEY}`,\n  MOUSEENTER: `mouseenter${EVENT_KEY}`,\n  MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n  // Getters\n  static get VERSION() {\n    return VERSION\n  }\n\n  static get Default() {\n    return Default\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  static get DATA_KEY() {\n    return DATA_KEY\n  }\n\n  static get Event() {\n    return Event\n  }\n\n  static get EVENT_KEY() {\n    return EVENT_KEY\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  // Overrides\n  isWithContent() {\n    return this.getTitle() || this._getContent()\n  }\n\n  addAttachmentClass(attachment) {\n    $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n  }\n\n  getTipElement() {\n    this.tip = this.tip || $(this.config.template)[0]\n    return this.tip\n  }\n\n  setContent() {\n    const $tip = $(this.getTipElement())\n\n    // We use append for html objects to maintain js events\n    this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle())\n    let content = this._getContent()\n    if (typeof content === 'function') {\n      content = content.call(this.element)\n    }\n\n    this.setElementContent($tip.find(SELECTOR_CONTENT), content)\n\n    $tip.removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n  }\n\n  // Private\n  _getContent() {\n    return this.element.getAttribute('data-content') ||\n      this.config.content\n  }\n\n  _cleanTipClass() {\n    const $tip = $(this.getTipElement())\n    const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n    if (tabClass !== null && tabClass.length > 0) {\n      $tip.removeClass(tabClass.join(''))\n    }\n  }\n\n  // Static\n  static _jQueryInterface(config) {\n    return this.each(function () {\n      let data = $(this).data(DATA_KEY)\n      const _config = typeof config === 'object' ? config : null\n\n      if (!data && /dispose|hide/.test(config)) {\n        return\n      }\n\n      if (!data) {\n        data = new Popover(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\n        data[config]()\n      }\n    })\n  }\n}\n\n/**\n * jQuery\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return Popover._jQueryInterface\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * Constants\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.6.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst Default = {\n  offset: 10,\n  method: 'auto',\n  target: ''\n}\n\nconst DefaultType = {\n  offset: 'number',\n  method: 'string',\n  target: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass ScrollSpy {\n  constructor(element, config) {\n    this._element = element\n    this._scrollElement = element.tagName === 'BODY' ? window : element\n    this._config = this._getConfig(config)\n    this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n                          `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n                          `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}`\n    this._offsets = []\n    this._targets = []\n    this._activeTarget = null\n    this._scrollHeight = 0\n\n    $(this._scrollElement).on(EVENT_SCROLL, event => this._process(event))\n\n    this.refresh()\n    this._process()\n  }\n\n  // Getters\n  static get VERSION() {\n    return VERSION\n  }\n\n  static get Default() {\n    return Default\n  }\n\n  // Public\n  refresh() {\n    const autoMethod = this._scrollElement === this._scrollElement.window ?\n      METHOD_OFFSET : METHOD_POSITION\n\n    const offsetMethod = this._config.method === 'auto' ?\n      autoMethod : this._config.method\n\n    const offsetBase = offsetMethod === METHOD_POSITION ?\n      this._getScrollTop() : 0\n\n    this._offsets = []\n    this._targets = []\n\n    this._scrollHeight = this._getScrollHeight()\n\n    const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n    targets\n      .map(element => {\n        let target\n        const targetSelector = Util.getSelectorFromElement(element)\n\n        if (targetSelector) {\n          target = document.querySelector(targetSelector)\n        }\n\n        if (target) {\n          const targetBCR = target.getBoundingClientRect()\n          if (targetBCR.width || targetBCR.height) {\n            // TODO (fat): remove sketch reliance on jQuery position/offset\n            return [\n              $(target)[offsetMethod]().top + offsetBase,\n              targetSelector\n            ]\n          }\n        }\n\n        return null\n      })\n      .filter(item => item)\n      .sort((a, b) => a[0] - b[0])\n      .forEach(item => {\n        this._offsets.push(item[0])\n        this._targets.push(item[1])\n      })\n  }\n\n  dispose() {\n    $.removeData(this._element, DATA_KEY)\n    $(this._scrollElement).off(EVENT_KEY)\n\n    this._element = null\n    this._scrollElement = null\n    this._config = null\n    this._selector = null\n    this._offsets = null\n    this._targets = null\n    this._activeTarget = null\n    this._scrollHeight = null\n  }\n\n  // Private\n  _getConfig(config) {\n    config = {\n      ...Default,\n      ...(typeof config === 'object' && config ? config : {})\n    }\n\n    if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n      let id = $(config.target).attr('id')\n      if (!id) {\n        id = Util.getUID(NAME)\n        $(config.target).attr('id', id)\n      }\n\n      config.target = `#${id}`\n    }\n\n    Util.typeCheckConfig(NAME, config, DefaultType)\n\n    return config\n  }\n\n  _getScrollTop() {\n    return this._scrollElement === window ?\n      this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n  }\n\n  _getScrollHeight() {\n    return this._scrollElement.scrollHeight || Math.max(\n      document.body.scrollHeight,\n      document.documentElement.scrollHeight\n    )\n  }\n\n  _getOffsetHeight() {\n    return this._scrollElement === window ?\n      window.innerHeight : this._scrollElement.getBoundingClientRect().height\n  }\n\n  _process() {\n    const scrollTop = this._getScrollTop() + this._config.offset\n    const scrollHeight = this._getScrollHeight()\n    const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n    if (this._scrollHeight !== scrollHeight) {\n      this.refresh()\n    }\n\n    if (scrollTop >= maxScroll) {\n      const target = this._targets[this._targets.length - 1]\n\n      if (this._activeTarget !== target) {\n        this._activate(target)\n      }\n\n      return\n    }\n\n    if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n      this._activeTarget = null\n      this._clear()\n      return\n    }\n\n    for (let i = this._offsets.length; i--;) {\n      const isActiveTarget = this._activeTarget !== this._targets[i] &&\n          scrollTop >= this._offsets[i] &&\n          (typeof this._offsets[i + 1] === 'undefined' ||\n              scrollTop < this._offsets[i + 1])\n\n      if (isActiveTarget) {\n        this._activate(this._targets[i])\n      }\n    }\n  }\n\n  _activate(target) {\n    this._activeTarget = target\n\n    this._clear()\n\n    const queries = this._selector\n      .split(',')\n      .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n    const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n    if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n      $link.closest(SELECTOR_DROPDOWN)\n        .find(SELECTOR_DROPDOWN_TOGGLE)\n        .addClass(CLASS_NAME_ACTIVE)\n      $link.addClass(CLASS_NAME_ACTIVE)\n    } else {\n      // Set triggered link as active\n      $link.addClass(CLASS_NAME_ACTIVE)\n      // Set triggered links parents as active\n      // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n      $link.parents(SELECTOR_NAV_LIST_GROUP)\n        .prev(`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n        .addClass(CLASS_NAME_ACTIVE)\n      // Handle special case when .nav-link is inside .nav-item\n      $link.parents(SELECTOR_NAV_LIST_GROUP)\n        .prev(SELECTOR_NAV_ITEMS)\n        .children(SELECTOR_NAV_LINKS)\n        .addClass(CLASS_NAME_ACTIVE)\n    }\n\n    $(this._scrollElement).trigger(EVENT_ACTIVATE, {\n      relatedTarget: target\n    })\n  }\n\n  _clear() {\n    [].slice.call(document.querySelectorAll(this._selector))\n      .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n      .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n  }\n\n  // Static\n  static _jQueryInterface(config) {\n    return this.each(function () {\n      let data = $(this).data(DATA_KEY)\n      const _config = typeof config === 'object' && config\n\n      if (!data) {\n        data = new ScrollSpy(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\n        data[config]()\n      }\n    })\n  }\n}\n\n/**\n * Data API implementation\n */\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n  const scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY))\n  const scrollSpysLength = scrollSpys.length\n\n  for (let i = scrollSpysLength; i--;) {\n    const $spy = $(scrollSpys[i])\n    ScrollSpy._jQueryInterface.call($spy, $spy.data())\n  }\n})\n\n/**\n * jQuery\n */\n\n$.fn[NAME] = ScrollSpy._jQueryInterface\n$.fn[NAME].Constructor = ScrollSpy\n$.fn[NAME].noConflict = () => {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return ScrollSpy._jQueryInterface\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * Constants\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.6.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = '> li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active'\n\n/**\n * Class definition\n */\n\nclass Tab {\n  constructor(element) {\n    this._element = element\n  }\n\n  // Getters\n  static get VERSION() {\n    return VERSION\n  }\n\n  // Public\n  show() {\n    if (this._element.parentNode &&\n        this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n        $(this._element).hasClass(CLASS_NAME_ACTIVE) ||\n        $(this._element).hasClass(CLASS_NAME_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' || listElement.nodeName === 'OL' ? 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 = document.querySelector(selector)\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  _activate(element, container, callback) {\n    const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n      $(container).find(SELECTOR_ACTIVE_UL) :\n      $(container).children(SELECTOR_ACTIVE)\n\n    const active = activeElements[0]\n    const isTransitioning = callback && (active && $(active).hasClass(CLASS_NAME_FADE))\n    const complete = () => this._transitionComplete(\n      element,\n      active,\n      callback\n    )\n\n    if (active && isTransitioning) {\n      const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n      $(active)\n        .removeClass(CLASS_NAME_SHOW)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(transitionDuration)\n    } else {\n      complete()\n    }\n  }\n\n  _transitionComplete(element, active, callback) {\n    if (active) {\n      $(active).removeClass(CLASS_NAME_ACTIVE)\n\n      const dropdownChild = $(active.parentNode).find(\n        SELECTOR_DROPDOWN_ACTIVE_CHILD\n      )[0]\n\n      if (dropdownChild) {\n        $(dropdownChild).removeClass(CLASS_NAME_ACTIVE)\n      }\n\n      if (active.getAttribute('role') === 'tab') {\n        active.setAttribute('aria-selected', false)\n      }\n    }\n\n    $(element).addClass(CLASS_NAME_ACTIVE)\n    if (element.getAttribute('role') === 'tab') {\n      element.setAttribute('aria-selected', true)\n    }\n\n    Util.reflow(element)\n\n    if (element.classList.contains(CLASS_NAME_FADE)) {\n      element.classList.add(CLASS_NAME_SHOW)\n    }\n\n    let parent = element.parentNode\n    if (parent && parent.nodeName === 'LI') {\n      parent = parent.parentNode\n    }\n\n    if (parent && $(parent).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n      const dropdownElement = $(element).closest(SELECTOR_DROPDOWN)[0]\n\n      if (dropdownElement) {\n        const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE))\n\n        $(dropdownToggleList).addClass(CLASS_NAME_ACTIVE)\n      }\n\n      element.setAttribute('aria-expanded', true)\n    }\n\n    if (callback) {\n      callback()\n    }\n  }\n\n  // Static\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\n        data[config]()\n      }\n    })\n  }\n}\n\n/**\n * Data API implementation\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 * jQuery\n */\n\n$.fn[NAME] = Tab._jQueryInterface\n$.fn[NAME].Constructor = Tab\n$.fn[NAME].noConflict = () => {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return Tab._jQueryInterface\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * Constants\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.6.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\nconst Default = {\n  animation: true,\n  autohide: true,\n  delay: 500\n}\n\nconst DefaultType = {\n  animation: 'boolean',\n  autohide: 'boolean',\n  delay: 'number'\n}\n\n/**\n * Class definition\n */\n\nclass Toast {\n  constructor(element, config) {\n    this._element = element\n    this._config = this._getConfig(config)\n    this._timeout = null\n    this._setListeners()\n  }\n\n  // Getters\n  static get VERSION() {\n    return VERSION\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  static get Default() {\n    return Default\n  }\n\n  // Public\n  show() {\n    const showEvent = $.Event(EVENT_SHOW)\n\n    $(this._element).trigger(showEvent)\n    if (showEvent.isDefaultPrevented()) {\n      return\n    }\n\n    this._clearTimeout()\n\n    if (this._config.animation) {\n      this._element.classList.add(CLASS_NAME_FADE)\n    }\n\n    const complete = () => {\n      this._element.classList.remove(CLASS_NAME_SHOWING)\n      this._element.classList.add(CLASS_NAME_SHOW)\n\n      $(this._element).trigger(EVENT_SHOWN)\n\n      if (this._config.autohide) {\n        this._timeout = setTimeout(() => {\n          this.hide()\n        }, this._config.delay)\n      }\n    }\n\n    this._element.classList.remove(CLASS_NAME_HIDE)\n    Util.reflow(this._element)\n    this._element.classList.add(CLASS_NAME_SHOWING)\n    if (this._config.animation) {\n      const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(transitionDuration)\n    } else {\n      complete()\n    }\n  }\n\n  hide() {\n    if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n      return\n    }\n\n    const hideEvent = $.Event(EVENT_HIDE)\n\n    $(this._element).trigger(hideEvent)\n    if (hideEvent.isDefaultPrevented()) {\n      return\n    }\n\n    this._close()\n  }\n\n  dispose() {\n    this._clearTimeout()\n\n    if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n      this._element.classList.remove(CLASS_NAME_SHOW)\n    }\n\n    $(this._element).off(EVENT_CLICK_DISMISS)\n\n    $.removeData(this._element, DATA_KEY)\n    this._element = null\n    this._config = null\n  }\n\n  // Private\n  _getConfig(config) {\n    config = {\n      ...Default,\n      ...$(this._element).data(),\n      ...(typeof config === 'object' && config ? config : {})\n    }\n\n    Util.typeCheckConfig(\n      NAME,\n      config,\n      this.constructor.DefaultType\n    )\n\n    return config\n  }\n\n  _setListeners() {\n    $(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n  }\n\n  _close() {\n    const complete = () => {\n      this._element.classList.add(CLASS_NAME_HIDE)\n      $(this._element).trigger(EVENT_HIDDEN)\n    }\n\n    this._element.classList.remove(CLASS_NAME_SHOW)\n    if (this._config.animation) {\n      const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(transitionDuration)\n    } else {\n      complete()\n    }\n  }\n\n  _clearTimeout() {\n    clearTimeout(this._timeout)\n    this._timeout = null\n  }\n\n  // Static\n  static _jQueryInterface(config) {\n    return this.each(function () {\n      const $element = $(this)\n      let data = $element.data(DATA_KEY)\n      const _config = typeof config === 'object' && config\n\n      if (!data) {\n        data = new Toast(this, _config)\n        $element.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\n        data[config](this)\n      }\n    })\n  }\n}\n\n/**\n * jQuery\n */\n\n$.fn[NAME] = Toast._jQueryInterface\n$.fn[NAME].Constructor = Toast\n$.fn[NAME].noConflict = () => {\n  $.fn[NAME] = JQUERY_NO_CONFLICT\n  return Toast._jQueryInterface\n}\n\nexport default Toast\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 <object> 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 = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// 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 = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\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: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\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 = \"<a href='#'></a>\";\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 = \"<input/>\";\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 <tag> 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// <object> 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 = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\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 <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\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, \"<select multiple='multiple'>\", \"</select>\" ];\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 <use> 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 = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\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( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t//    documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n","/**\n * Owl Carousel v2.3.4\n * Copyright 2013-2018 David Deutsch\n * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE\n */\n/**\n * Owl carousel\n * @version 2.3.4\n * @author Bartosz Wojciechowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n * @todo Lazy Load Icon\n * @todo prevent animationend bubling\n * @todo itemsScaleUp\n * @todo Test Zepto\n * @todo stagePadding calculate wrong active classes\n */\n;(function($, window, document, undefined) {\n\n\t/**\n\t * Creates a carousel.\n\t * @class The Owl Carousel.\n\t * @public\n\t * @param {HTMLElement|jQuery} element - The element to create the carousel for.\n\t * @param {Object} [options] - The options\n\t */\n\tfunction Owl(element, options) {\n\n\t\t/**\n\t\t * Current settings for the carousel.\n\t\t * @public\n\t\t */\n\t\tthis.settings = null;\n\n\t\t/**\n\t\t * Current options set by the caller including defaults.\n\t\t * @public\n\t\t */\n\t\tthis.options = $.extend({}, Owl.Defaults, options);\n\n\t\t/**\n\t\t * Plugin element.\n\t\t * @public\n\t\t */\n\t\tthis.$element = $(element);\n\n\t\t/**\n\t\t * Proxied event handlers.\n\t\t * @protected\n\t\t */\n\t\tthis._handlers = {};\n\n\t\t/**\n\t\t * References to the running plugins of this carousel.\n\t\t * @protected\n\t\t */\n\t\tthis._plugins = {};\n\n\t\t/**\n\t\t * Currently suppressed events to prevent them from being retriggered.\n\t\t * @protected\n\t\t */\n\t\tthis._supress = {};\n\n\t\t/**\n\t\t * Absolute current position.\n\t\t * @protected\n\t\t */\n\t\tthis._current = null;\n\n\t\t/**\n\t\t * Animation speed in milliseconds.\n\t\t * @protected\n\t\t */\n\t\tthis._speed = null;\n\n\t\t/**\n\t\t * Coordinates of all items in pixel.\n\t\t * @todo The name of this member is missleading.\n\t\t * @protected\n\t\t */\n\t\tthis._coordinates = [];\n\n\t\t/**\n\t\t * Current breakpoint.\n\t\t * @todo Real media queries would be nice.\n\t\t * @protected\n\t\t */\n\t\tthis._breakpoint = null;\n\n\t\t/**\n\t\t * Current width of the plugin element.\n\t\t */\n\t\tthis._width = null;\n\n\t\t/**\n\t\t * All real items.\n\t\t * @protected\n\t\t */\n\t\tthis._items = [];\n\n\t\t/**\n\t\t * All cloned items.\n\t\t * @protected\n\t\t */\n\t\tthis._clones = [];\n\n\t\t/**\n\t\t * Merge values of all items.\n\t\t * @todo Maybe this could be part of a plugin.\n\t\t * @protected\n\t\t */\n\t\tthis._mergers = [];\n\n\t\t/**\n\t\t * Widths of all items.\n\t\t */\n\t\tthis._widths = [];\n\n\t\t/**\n\t\t * Invalidated parts within the update process.\n\t\t * @protected\n\t\t */\n\t\tthis._invalidated = {};\n\n\t\t/**\n\t\t * Ordered list of workers for the update process.\n\t\t * @protected\n\t\t */\n\t\tthis._pipe = [];\n\n\t\t/**\n\t\t * Current state information for the drag operation.\n\t\t * @todo #261\n\t\t * @protected\n\t\t */\n\t\tthis._drag = {\n\t\t\ttime: null,\n\t\t\ttarget: null,\n\t\t\tpointer: null,\n\t\t\tstage: {\n\t\t\t\tstart: null,\n\t\t\t\tcurrent: null\n\t\t\t},\n\t\t\tdirection: null\n\t\t};\n\n\t\t/**\n\t\t * Current state information and their tags.\n\t\t * @type {Object}\n\t\t * @protected\n\t\t */\n\t\tthis._states = {\n\t\t\tcurrent: {},\n\t\t\ttags: {\n\t\t\t\t'initializing': [ 'busy' ],\n\t\t\t\t'animating': [ 'busy' ],\n\t\t\t\t'dragging': [ 'interacting' ]\n\t\t\t}\n\t\t};\n\n\t\t$.each([ 'onResize', 'onThrottledResize' ], $.proxy(function(i, handler) {\n\t\t\tthis._handlers[handler] = $.proxy(this[handler], this);\n\t\t}, this));\n\n\t\t$.each(Owl.Plugins, $.proxy(function(key, plugin) {\n\t\t\tthis._plugins[key.charAt(0).toLowerCase() + key.slice(1)]\n\t\t\t\t= new plugin(this);\n\t\t}, this));\n\n\t\t$.each(Owl.Workers, $.proxy(function(priority, worker) {\n\t\t\tthis._pipe.push({\n\t\t\t\t'filter': worker.filter,\n\t\t\t\t'run': $.proxy(worker.run, this)\n\t\t\t});\n\t\t}, this));\n\n\t\tthis.setup();\n\t\tthis.initialize();\n\t}\n\n\t/**\n\t * Default options for the carousel.\n\t * @public\n\t */\n\tOwl.Defaults = {\n\t\titems: 3,\n\t\tloop: false,\n\t\tcenter: false,\n\t\trewind: false,\n\t\tcheckVisibility: true,\n\n\t\tmouseDrag: true,\n\t\ttouchDrag: true,\n\t\tpullDrag: true,\n\t\tfreeDrag: false,\n\n\t\tmargin: 0,\n\t\tstagePadding: 0,\n\n\t\tmerge: false,\n\t\tmergeFit: true,\n\t\tautoWidth: false,\n\n\t\tstartPosition: 0,\n\t\trtl: false,\n\n\t\tsmartSpeed: 250,\n\t\tfluidSpeed: false,\n\t\tdragEndSpeed: false,\n\n\t\tresponsive: {},\n\t\tresponsiveRefreshRate: 200,\n\t\tresponsiveBaseElement: window,\n\n\t\tfallbackEasing: 'swing',\n\t\tslideTransition: '',\n\n\t\tinfo: false,\n\n\t\tnestedItemSelector: false,\n\t\titemElement: 'div',\n\t\tstageElement: 'div',\n\n\t\trefreshClass: 'owl-refresh',\n\t\tloadedClass: 'owl-loaded',\n\t\tloadingClass: 'owl-loading',\n\t\trtlClass: 'owl-rtl',\n\t\tresponsiveClass: 'owl-responsive',\n\t\tdragClass: 'owl-drag',\n\t\titemClass: 'owl-item',\n\t\tstageClass: 'owl-stage',\n\t\tstageOuterClass: 'owl-stage-outer',\n\t\tgrabClass: 'owl-grab'\n\t};\n\n\t/**\n\t * Enumeration for width.\n\t * @public\n\t * @readonly\n\t * @enum {String}\n\t */\n\tOwl.Width = {\n\t\tDefault: 'default',\n\t\tInner: 'inner',\n\t\tOuter: 'outer'\n\t};\n\n\t/**\n\t * Enumeration for types.\n\t * @public\n\t * @readonly\n\t * @enum {String}\n\t */\n\tOwl.Type = {\n\t\tEvent: 'event',\n\t\tState: 'state'\n\t};\n\n\t/**\n\t * Contains all registered plugins.\n\t * @public\n\t */\n\tOwl.Plugins = {};\n\n\t/**\n\t * List of workers involved in the update process.\n\t */\n\tOwl.Workers = [ {\n\t\tfilter: [ 'width', 'settings' ],\n\t\trun: function() {\n\t\t\tthis._width = this.$element.width();\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function(cache) {\n\t\t\tcache.current = this._items && this._items[this.relative(this._current)];\n\t\t}\n\t}, {\n\t\tfilter: [ 'items', 'settings' ],\n\t\trun: function() {\n\t\t\tthis.$stage.children('.cloned').remove();\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function(cache) {\n\t\t\tvar margin = this.settings.margin || '',\n\t\t\t\tgrid = !this.settings.autoWidth,\n\t\t\t\trtl = this.settings.rtl,\n\t\t\t\tcss = {\n\t\t\t\t\t'width': 'auto',\n\t\t\t\t\t'margin-left': rtl ? margin : '',\n\t\t\t\t\t'margin-right': rtl ? '' : margin\n\t\t\t\t};\n\n\t\t\t!grid && this.$stage.children().css(css);\n\n\t\t\tcache.css = css;\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function(cache) {\n\t\t\tvar width = (this.width() / this.settings.items).toFixed(3) - this.settings.margin,\n\t\t\t\tmerge = null,\n\t\t\t\titerator = this._items.length,\n\t\t\t\tgrid = !this.settings.autoWidth,\n\t\t\t\twidths = [];\n\n\t\t\tcache.items = {\n\t\t\t\tmerge: false,\n\t\t\t\twidth: width\n\t\t\t};\n\n\t\t\twhile (iterator--) {\n\t\t\t\tmerge = this._mergers[iterator];\n\t\t\t\tmerge = this.settings.mergeFit && Math.min(merge, this.settings.items) || merge;\n\n\t\t\t\tcache.items.merge = merge > 1 || cache.items.merge;\n\n\t\t\t\twidths[iterator] = !grid ? this._items[iterator].width() : width * merge;\n\t\t\t}\n\n\t\t\tthis._widths = widths;\n\t\t}\n\t}, {\n\t\tfilter: [ 'items', 'settings' ],\n\t\trun: function() {\n\t\t\tvar clones = [],\n\t\t\t\titems = this._items,\n\t\t\t\tsettings = this.settings,\n\t\t\t\t// TODO: Should be computed from number of min width items in stage\n\t\t\t\tview = Math.max(settings.items * 2, 4),\n\t\t\t\tsize = Math.ceil(items.length / 2) * 2,\n\t\t\t\trepeat = settings.loop && items.length ? settings.rewind ? view : Math.max(view, size) : 0,\n\t\t\t\tappend = '',\n\t\t\t\tprepend = '';\n\n\t\t\trepeat /= 2;\n\n\t\t\twhile (repeat > 0) {\n\t\t\t\t// Switch to only using appended clones\n\t\t\t\tclones.push(this.normalize(clones.length / 2, true));\n\t\t\t\tappend = append + items[clones[clones.length - 1]][0].outerHTML;\n\t\t\t\tclones.push(this.normalize(items.length - 1 - (clones.length - 1) / 2, true));\n\t\t\t\tprepend = items[clones[clones.length - 1]][0].outerHTML + prepend;\n\t\t\t\trepeat -= 1;\n\t\t\t}\n\n\t\t\tthis._clones = clones;\n\n\t\t\t$(append).addClass('cloned').appendTo(this.$stage);\n\t\t\t$(prepend).addClass('cloned').prependTo(this.$stage);\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function() {\n\t\t\tvar rtl = this.settings.rtl ? 1 : -1,\n\t\t\t\tsize = this._clones.length + this._items.length,\n\t\t\t\titerator = -1,\n\t\t\t\tprevious = 0,\n\t\t\t\tcurrent = 0,\n\t\t\t\tcoordinates = [];\n\n\t\t\twhile (++iterator < size) {\n\t\t\t\tprevious = coordinates[iterator - 1] || 0;\n\t\t\t\tcurrent = this._widths[this.relative(iterator)] + this.settings.margin;\n\t\t\t\tcoordinates.push(previous + current * rtl);\n\t\t\t}\n\n\t\t\tthis._coordinates = coordinates;\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function() {\n\t\t\tvar padding = this.settings.stagePadding,\n\t\t\t\tcoordinates = this._coordinates,\n\t\t\t\tcss = {\n\t\t\t\t\t'width': Math.ceil(Math.abs(coordinates[coordinates.length - 1])) + padding * 2,\n\t\t\t\t\t'padding-left': padding || '',\n\t\t\t\t\t'padding-right': padding || ''\n\t\t\t\t};\n\n\t\t\tthis.$stage.css(css);\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function(cache) {\n\t\t\tvar iterator = this._coordinates.length,\n\t\t\t\tgrid = !this.settings.autoWidth,\n\t\t\t\titems = this.$stage.children();\n\n\t\t\tif (grid && cache.items.merge) {\n\t\t\t\twhile (iterator--) {\n\t\t\t\t\tcache.css.width = this._widths[this.relative(iterator)];\n\t\t\t\t\titems.eq(iterator).css(cache.css);\n\t\t\t\t}\n\t\t\t} else if (grid) {\n\t\t\t\tcache.css.width = cache.items.width;\n\t\t\t\titems.css(cache.css);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tfilter: [ 'items' ],\n\t\trun: function() {\n\t\t\tthis._coordinates.length < 1 && this.$stage.removeAttr('style');\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function(cache) {\n\t\t\tcache.current = cache.current ? this.$stage.children().index(cache.current) : 0;\n\t\t\tcache.current = Math.max(this.minimum(), Math.min(this.maximum(), cache.current));\n\t\t\tthis.reset(cache.current);\n\t\t}\n\t}, {\n\t\tfilter: [ 'position' ],\n\t\trun: function() {\n\t\t\tthis.animate(this.coordinates(this._current));\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'position', 'items', 'settings' ],\n\t\trun: function() {\n\t\t\tvar rtl = this.settings.rtl ? 1 : -1,\n\t\t\t\tpadding = this.settings.stagePadding * 2,\n\t\t\t\tbegin = this.coordinates(this.current()) + padding,\n\t\t\t\tend = begin + this.width() * rtl,\n\t\t\t\tinner, outer, matches = [], i, n;\n\n\t\t\tfor (i = 0, n = this._coordinates.length; i < n; i++) {\n\t\t\t\tinner = this._coordinates[i - 1] || 0;\n\t\t\t\touter = Math.abs(this._coordinates[i]) + padding * rtl;\n\n\t\t\t\tif ((this.op(inner, '<=', begin) && (this.op(inner, '>', end)))\n\t\t\t\t\t|| (this.op(outer, '<', begin) && this.op(outer, '>', end))) {\n\t\t\t\t\tmatches.push(i);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.$stage.children('.active').removeClass('active');\n\t\t\tthis.$stage.children(':eq(' + matches.join('), :eq(') + ')').addClass('active');\n\n\t\t\tthis.$stage.children('.center').removeClass('center');\n\t\t\tif (this.settings.center) {\n\t\t\t\tthis.$stage.children().eq(this.current()).addClass('center');\n\t\t\t}\n\t\t}\n\t} ];\n\n\t/**\n\t * Create the stage DOM element\n\t */\n\tOwl.prototype.initializeStage = function() {\n\t\tthis.$stage = this.$element.find('.' + this.settings.stageClass);\n\n\t\t// if the stage is already in the DOM, grab it and skip stage initialization\n\t\tif (this.$stage.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.$element.addClass(this.options.loadingClass);\n\n\t\t// create stage\n\t\tthis.$stage = $('<' + this.settings.stageElement + '>', {\n\t\t\t\"class\": this.settings.stageClass\n\t\t}).wrap( $( '<div/>', {\n\t\t\t\"class\": this.settings.stageOuterClass\n\t\t}));\n\n\t\t// append stage\n\t\tthis.$element.append(this.$stage.parent());\n\t};\n\n\t/**\n\t * Create item DOM elements\n\t */\n\tOwl.prototype.initializeItems = function() {\n\t\tvar $items = this.$element.find('.owl-item');\n\n\t\t// if the items are already in the DOM, grab them and skip item initialization\n\t\tif ($items.length) {\n\t\t\tthis._items = $items.get().map(function(item) {\n\t\t\t\treturn $(item);\n\t\t\t});\n\n\t\t\tthis._mergers = this._items.map(function() {\n\t\t\t\treturn 1;\n\t\t\t});\n\n\t\t\tthis.refresh();\n\n\t\t\treturn;\n\t\t}\n\n\t\t// append content\n\t\tthis.replace(this.$element.children().not(this.$stage.parent()));\n\n\t\t// check visibility\n\t\tif (this.isVisible()) {\n\t\t\t// update view\n\t\t\tthis.refresh();\n\t\t} else {\n\t\t\t// invalidate width\n\t\t\tthis.invalidate('width');\n\t\t}\n\n\t\tthis.$element\n\t\t\t.removeClass(this.options.loadingClass)\n\t\t\t.addClass(this.options.loadedClass);\n\t};\n\n\t/**\n\t * Initializes the carousel.\n\t * @protected\n\t */\n\tOwl.prototype.initialize = function() {\n\t\tthis.enter('initializing');\n\t\tthis.trigger('initialize');\n\n\t\tthis.$element.toggleClass(this.settings.rtlClass, this.settings.rtl);\n\n\t\tif (this.settings.autoWidth && !this.is('pre-loading')) {\n\t\t\tvar imgs, nestedSelector, width;\n\t\t\timgs = this.$element.find('img');\n\t\t\tnestedSelector = this.settings.nestedItemSelector ? '.' + this.settings.nestedItemSelector : undefined;\n\t\t\twidth = this.$element.children(nestedSelector).width();\n\n\t\t\tif (imgs.length && width <= 0) {\n\t\t\t\tthis.preloadAutoWidthImages(imgs);\n\t\t\t}\n\t\t}\n\n\t\tthis.initializeStage();\n\t\tthis.initializeItems();\n\n\t\t// register event handlers\n\t\tthis.registerEventHandlers();\n\n\t\tthis.leave('initializing');\n\t\tthis.trigger('initialized');\n\t};\n\n\t/**\n\t * @returns {Boolean} visibility of $element\n\t *                    if you know the carousel will always be visible you can set `checkVisibility` to `false` to\n\t *                    prevent the expensive browser layout forced reflow the $element.is(':visible') does\n\t */\n\tOwl.prototype.isVisible = function() {\n\t\treturn this.settings.checkVisibility\n\t\t\t? this.$element.is(':visible')\n\t\t\t: true;\n\t};\n\n\t/**\n\t * Setups the current settings.\n\t * @todo Remove responsive classes. Why should adaptive designs be brought into IE8?\n\t * @todo Support for media queries by using `matchMedia` would be nice.\n\t * @public\n\t */\n\tOwl.prototype.setup = function() {\n\t\tvar viewport = this.viewport(),\n\t\t\toverwrites = this.options.responsive,\n\t\t\tmatch = -1,\n\t\t\tsettings = null;\n\n\t\tif (!overwrites) {\n\t\t\tsettings = $.extend({}, this.options);\n\t\t} else {\n\t\t\t$.each(overwrites, function(breakpoint) {\n\t\t\t\tif (breakpoint <= viewport && breakpoint > match) {\n\t\t\t\t\tmatch = Number(breakpoint);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tsettings = $.extend({}, this.options, overwrites[match]);\n\t\t\tif (typeof settings.stagePadding === 'function') {\n\t\t\t\tsettings.stagePadding = settings.stagePadding();\n\t\t\t}\n\t\t\tdelete settings.responsive;\n\n\t\t\t// responsive class\n\t\t\tif (settings.responsiveClass) {\n\t\t\t\tthis.$element.attr('class',\n\t\t\t\t\tthis.$element.attr('class').replace(new RegExp('(' + this.options.responsiveClass + '-)\\\\S+\\\\s', 'g'), '$1' + match)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tthis.trigger('change', { property: { name: 'settings', value: settings } });\n\t\tthis._breakpoint = match;\n\t\tthis.settings = settings;\n\t\tthis.invalidate('settings');\n\t\tthis.trigger('changed', { property: { name: 'settings', value: this.settings } });\n\t};\n\n\t/**\n\t * Updates option logic if necessery.\n\t * @protected\n\t */\n\tOwl.prototype.optionsLogic = function() {\n\t\tif (this.settings.autoWidth) {\n\t\t\tthis.settings.stagePadding = false;\n\t\t\tthis.settings.merge = false;\n\t\t}\n\t};\n\n\t/**\n\t * Prepares an item before add.\n\t * @todo Rename event parameter `content` to `item`.\n\t * @protected\n\t * @returns {jQuery|HTMLElement} - The item container.\n\t */\n\tOwl.prototype.prepare = function(item) {\n\t\tvar event = this.trigger('prepare', { content: item });\n\n\t\tif (!event.data) {\n\t\t\tevent.data = $('<' + this.settings.itemElement + '/>')\n\t\t\t\t.addClass(this.options.itemClass).append(item)\n\t\t}\n\n\t\tthis.trigger('prepared', { content: event.data });\n\n\t\treturn event.data;\n\t};\n\n\t/**\n\t * Updates the view.\n\t * @public\n\t */\n\tOwl.prototype.update = function() {\n\t\tvar i = 0,\n\t\t\tn = this._pipe.length,\n\t\t\tfilter = $.proxy(function(p) { return this[p] }, this._invalidated),\n\t\t\tcache = {};\n\n\t\twhile (i < n) {\n\t\t\tif (this._invalidated.all || $.grep(this._pipe[i].filter, filter).length > 0) {\n\t\t\t\tthis._pipe[i].run(cache);\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\n\t\tthis._invalidated = {};\n\n\t\t!this.is('valid') && this.enter('valid');\n\t};\n\n\t/**\n\t * Gets the width of the view.\n\t * @public\n\t * @param {Owl.Width} [dimension=Owl.Width.Default] - The dimension to return.\n\t * @returns {Number} - The width of the view in pixel.\n\t */\n\tOwl.prototype.width = function(dimension) {\n\t\tdimension = dimension || Owl.Width.Default;\n\t\tswitch (dimension) {\n\t\t\tcase Owl.Width.Inner:\n\t\t\tcase Owl.Width.Outer:\n\t\t\t\treturn this._width;\n\t\t\tdefault:\n\t\t\t\treturn this._width - this.settings.stagePadding * 2 + this.settings.margin;\n\t\t}\n\t};\n\n\t/**\n\t * Refreshes the carousel primarily for adaptive purposes.\n\t * @public\n\t */\n\tOwl.prototype.refresh = function() {\n\t\tthis.enter('refreshing');\n\t\tthis.trigger('refresh');\n\n\t\tthis.setup();\n\n\t\tthis.optionsLogic();\n\n\t\tthis.$element.addClass(this.options.refreshClass);\n\n\t\tthis.update();\n\n\t\tthis.$element.removeClass(this.options.refreshClass);\n\n\t\tthis.leave('refreshing');\n\t\tthis.trigger('refreshed');\n\t};\n\n\t/**\n\t * Checks window `resize` event.\n\t * @protected\n\t */\n\tOwl.prototype.onThrottledResize = function() {\n\t\twindow.clearTimeout(this.resizeTimer);\n\t\tthis.resizeTimer = window.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate);\n\t};\n\n\t/**\n\t * Checks window `resize` event.\n\t * @protected\n\t */\n\tOwl.prototype.onResize = function() {\n\t\tif (!this._items.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this._width === this.$element.width()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.isVisible()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.enter('resizing');\n\n\t\tif (this.trigger('resize').isDefaultPrevented()) {\n\t\t\tthis.leave('resizing');\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.invalidate('width');\n\n\t\tthis.refresh();\n\n\t\tthis.leave('resizing');\n\t\tthis.trigger('resized');\n\t};\n\n\t/**\n\t * Registers event handlers.\n\t * @todo Check `msPointerEnabled`\n\t * @todo #261\n\t * @protected\n\t */\n\tOwl.prototype.registerEventHandlers = function() {\n\t\tif ($.support.transition) {\n\t\t\tthis.$stage.on($.support.transition.end + '.owl.core', $.proxy(this.onTransitionEnd, this));\n\t\t}\n\n\t\tif (this.settings.responsive !== false) {\n\t\t\tthis.on(window, 'resize', this._handlers.onThrottledResize);\n\t\t}\n\n\t\tif (this.settings.mouseDrag) {\n\t\t\tthis.$element.addClass(this.options.dragClass);\n\t\t\tthis.$stage.on('mousedown.owl.core', $.proxy(this.onDragStart, this));\n\t\t\tthis.$stage.on('dragstart.owl.core selectstart.owl.core', function() { return false });\n\t\t}\n\n\t\tif (this.settings.touchDrag){\n\t\t\tthis.$stage.on('touchstart.owl.core', $.proxy(this.onDragStart, this));\n\t\t\tthis.$stage.on('touchcancel.owl.core', $.proxy(this.onDragEnd, this));\n\t\t}\n\t};\n\n\t/**\n\t * Handles `touchstart` and `mousedown` events.\n\t * @todo Horizontal swipe threshold as option\n\t * @todo #261\n\t * @protected\n\t * @param {Event} event - The event arguments.\n\t */\n\tOwl.prototype.onDragStart = function(event) {\n\t\tvar stage = null;\n\n\t\tif (event.which === 3) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ($.support.transform) {\n\t\t\tstage = this.$stage.css('transform').replace(/.*\\(|\\)| /g, '').split(',');\n\t\t\tstage = {\n\t\t\t\tx: stage[stage.length === 16 ? 12 : 4],\n\t\t\t\ty: stage[stage.length === 16 ? 13 : 5]\n\t\t\t};\n\t\t} else {\n\t\t\tstage = this.$stage.position();\n\t\t\tstage = {\n\t\t\t\tx: this.settings.rtl ?\n\t\t\t\t\tstage.left + this.$stage.width() - this.width() + this.settings.margin :\n\t\t\t\t\tstage.left,\n\t\t\t\ty: stage.top\n\t\t\t};\n\t\t}\n\n\t\tif (this.is('animating')) {\n\t\t\t$.support.transform ? this.animate(stage.x) : this.$stage.stop()\n\t\t\tthis.invalidate('position');\n\t\t}\n\n\t\tthis.$element.toggleClass(this.options.grabClass, event.type === 'mousedown');\n\n\t\tthis.speed(0);\n\n\t\tthis._drag.time = new Date().getTime();\n\t\tthis._drag.target = $(event.target);\n\t\tthis._drag.stage.start = stage;\n\t\tthis._drag.stage.current = stage;\n\t\tthis._drag.pointer = this.pointer(event);\n\n\t\t$(document).on('mouseup.owl.core touchend.owl.core', $.proxy(this.onDragEnd, this));\n\n\t\t$(document).one('mousemove.owl.core touchmove.owl.core', $.proxy(function(event) {\n\t\t\tvar delta = this.difference(this._drag.pointer, this.pointer(event));\n\n\t\t\t$(document).on('mousemove.owl.core touchmove.owl.core', $.proxy(this.onDragMove, this));\n\n\t\t\tif (Math.abs(delta.x) < Math.abs(delta.y) && this.is('valid')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\n\t\t\tthis.enter('dragging');\n\t\t\tthis.trigger('drag');\n\t\t}, this));\n\t};\n\n\t/**\n\t * Handles the `touchmove` and `mousemove` events.\n\t * @todo #261\n\t * @protected\n\t * @param {Event} event - The event arguments.\n\t */\n\tOwl.prototype.onDragMove = function(event) {\n\t\tvar minimum = null,\n\t\t\tmaximum = null,\n\t\t\tpull = null,\n\t\t\tdelta = this.difference(this._drag.pointer, this.pointer(event)),\n\t\t\tstage = this.difference(this._drag.stage.start, delta);\n\n\t\tif (!this.is('dragging')) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\n\t\tif (this.settings.loop) {\n\t\t\tminimum = this.coordinates(this.minimum());\n\t\t\tmaximum = this.coordinates(this.maximum() + 1) - minimum;\n\t\t\tstage.x = (((stage.x - minimum) % maximum + maximum) % maximum) + minimum;\n\t\t} else {\n\t\t\tminimum = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum());\n\t\t\tmaximum = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum());\n\t\t\tpull = this.settings.pullDrag ? -1 * delta.x / 5 : 0;\n\t\t\tstage.x = Math.max(Math.min(stage.x, minimum + pull), maximum + pull);\n\t\t}\n\n\t\tthis._drag.stage.current = stage;\n\n\t\tthis.animate(stage.x);\n\t};\n\n\t/**\n\t * Handles the `touchend` and `mouseup` events.\n\t * @todo #261\n\t * @todo Threshold for click event\n\t * @protected\n\t * @param {Event} event - The event arguments.\n\t */\n\tOwl.prototype.onDragEnd = function(event) {\n\t\tvar delta = this.difference(this._drag.pointer, this.pointer(event)),\n\t\t\tstage = this._drag.stage.current,\n\t\t\tdirection = delta.x > 0 ^ this.settings.rtl ? 'left' : 'right';\n\n\t\t$(document).off('.owl.core');\n\n\t\tthis.$element.removeClass(this.options.grabClass);\n\n\t\tif (delta.x !== 0 && this.is('dragging') || !this.is('valid')) {\n\t\t\tthis.speed(this.settings.dragEndSpeed || this.settings.smartSpeed);\n\t\t\tthis.current(this.closest(stage.x, delta.x !== 0 ? direction : this._drag.direction));\n\t\t\tthis.invalidate('position');\n\t\t\tthis.update();\n\n\t\t\tthis._drag.direction = direction;\n\n\t\t\tif (Math.abs(delta.x) > 3 || new Date().getTime() - this._drag.time > 300) {\n\t\t\t\tthis._drag.target.one('click.owl.core', function() { return false; });\n\t\t\t}\n\t\t}\n\n\t\tif (!this.is('dragging')) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.leave('dragging');\n\t\tthis.trigger('dragged');\n\t};\n\n\t/**\n\t * Gets absolute position of the closest item for a coordinate.\n\t * @todo Setting `freeDrag` makes `closest` not reusable. See #165.\n\t * @protected\n\t * @param {Number} coordinate - The coordinate in pixel.\n\t * @param {String} direction - The direction to check for the closest item. Ether `left` or `right`.\n\t * @return {Number} - The absolute position of the closest item.\n\t */\n\tOwl.prototype.closest = function(coordinate, direction) {\n\t\tvar position = -1,\n\t\t\tpull = 30,\n\t\t\twidth = this.width(),\n\t\t\tcoordinates = this.coordinates();\n\n\t\tif (!this.settings.freeDrag) {\n\t\t\t// check closest item\n\t\t\t$.each(coordinates, $.proxy(function(index, value) {\n\t\t\t\t// on a left pull, check on current index\n\t\t\t\tif (direction === 'left' && coordinate > value - pull && coordinate < value + pull) {\n\t\t\t\t\tposition = index;\n\t\t\t\t// on a right pull, check on previous index\n\t\t\t\t// to do so, subtract width from value and set position = index + 1\n\t\t\t\t} else if (direction === 'right' && coordinate > value - width - pull && coordinate < value - width + pull) {\n\t\t\t\t\tposition = index + 1;\n\t\t\t\t} else if (this.op(coordinate, '<', value)\n\t\t\t\t\t&& this.op(coordinate, '>', coordinates[index + 1] !== undefined ? coordinates[index + 1] : value - width)) {\n\t\t\t\t\tposition = direction === 'left' ? index + 1 : index;\n\t\t\t\t}\n\t\t\t\treturn position === -1;\n\t\t\t}, this));\n\t\t}\n\n\t\tif (!this.settings.loop) {\n\t\t\t// non loop boundries\n\t\t\tif (this.op(coordinate, '>', coordinates[this.minimum()])) {\n\t\t\t\tposition = coordinate = this.minimum();\n\t\t\t} else if (this.op(coordinate, '<', coordinates[this.maximum()])) {\n\t\t\t\tposition = coordinate = this.maximum();\n\t\t\t}\n\t\t}\n\n\t\treturn position;\n\t};\n\n\t/**\n\t * Animates the stage.\n\t * @todo #270\n\t * @public\n\t * @param {Number} coordinate - The coordinate in pixels.\n\t */\n\tOwl.prototype.animate = function(coordinate) {\n\t\tvar animate = this.speed() > 0;\n\n\t\tthis.is('animating') && this.onTransitionEnd();\n\n\t\tif (animate) {\n\t\t\tthis.enter('animating');\n\t\t\tthis.trigger('translate');\n\t\t}\n\n\t\tif ($.support.transform3d && $.support.transition) {\n\t\t\tthis.$stage.css({\n\t\t\t\ttransform: 'translate3d(' + coordinate + 'px,0px,0px)',\n\t\t\t\ttransition: (this.speed() / 1000) + 's' + (\n\t\t\t\t\tthis.settings.slideTransition ? ' ' + this.settings.slideTransition : ''\n\t\t\t\t)\n\t\t\t});\n\t\t} else if (animate) {\n\t\t\tthis.$stage.animate({\n\t\t\t\tleft: coordinate + 'px'\n\t\t\t}, this.speed(), this.settings.fallbackEasing, $.proxy(this.onTransitionEnd, this));\n\t\t} else {\n\t\t\tthis.$stage.css({\n\t\t\t\tleft: coordinate + 'px'\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n\t * Checks whether the carousel is in a specific state or not.\n\t * @param {String} state - The state to check.\n\t * @returns {Boolean} - The flag which indicates if the carousel is busy.\n\t */\n\tOwl.prototype.is = function(state) {\n\t\treturn this._states.current[state] && this._states.current[state] > 0;\n\t};\n\n\t/**\n\t * Sets the absolute position of the current item.\n\t * @public\n\t * @param {Number} [position] - The new absolute position or nothing to leave it unchanged.\n\t * @returns {Number} - The absolute position of the current item.\n\t */\n\tOwl.prototype.current = function(position) {\n\t\tif (position === undefined) {\n\t\t\treturn this._current;\n\t\t}\n\n\t\tif (this._items.length === 0) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tposition = this.normalize(position);\n\n\t\tif (this._current !== position) {\n\t\t\tvar event = this.trigger('change', { property: { name: 'position', value: position } });\n\n\t\t\tif (event.data !== undefined) {\n\t\t\t\tposition = this.normalize(event.data);\n\t\t\t}\n\n\t\t\tthis._current = position;\n\n\t\t\tthis.invalidate('position');\n\n\t\t\tthis.trigger('changed', { property: { name: 'position', value: this._current } });\n\t\t}\n\n\t\treturn this._current;\n\t};\n\n\t/**\n\t * Invalidates the given part of the update routine.\n\t * @param {String} [part] - The part to invalidate.\n\t * @returns {Array.<String>} - The invalidated parts.\n\t */\n\tOwl.prototype.invalidate = function(part) {\n\t\tif ($.type(part) === 'string') {\n\t\t\tthis._invalidated[part] = true;\n\t\t\tthis.is('valid') && this.leave('valid');\n\t\t}\n\t\treturn $.map(this._invalidated, function(v, i) { return i });\n\t};\n\n\t/**\n\t * Resets the absolute position of the current item.\n\t * @public\n\t * @param {Number} position - The absolute position of the new item.\n\t */\n\tOwl.prototype.reset = function(position) {\n\t\tposition = this.normalize(position);\n\n\t\tif (position === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._speed = 0;\n\t\tthis._current = position;\n\n\t\tthis.suppress([ 'translate', 'translated' ]);\n\n\t\tthis.animate(this.coordinates(position));\n\n\t\tthis.release([ 'translate', 'translated' ]);\n\t};\n\n\t/**\n\t * Normalizes an absolute or a relative position of an item.\n\t * @public\n\t * @param {Number} position - The absolute or relative position to normalize.\n\t * @param {Boolean} [relative=false] - Whether the given position is relative or not.\n\t * @returns {Number} - The normalized position.\n\t */\n\tOwl.prototype.normalize = function(position, relative) {\n\t\tvar n = this._items.length,\n\t\t\tm = relative ? 0 : this._clones.length;\n\n\t\tif (!this.isNumeric(position) || n < 1) {\n\t\t\tposition = undefined;\n\t\t} else if (position < 0 || position >= n + m) {\n\t\t\tposition = ((position - m / 2) % n + n) % n + m / 2;\n\t\t}\n\n\t\treturn position;\n\t};\n\n\t/**\n\t * Converts an absolute position of an item into a relative one.\n\t * @public\n\t * @param {Number} position - The absolute position to convert.\n\t * @returns {Number} - The converted position.\n\t */\n\tOwl.prototype.relative = function(position) {\n\t\tposition -= this._clones.length / 2;\n\t\treturn this.normalize(position, true);\n\t};\n\n\t/**\n\t * Gets the maximum position for the current item.\n\t * @public\n\t * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position.\n\t * @returns {Number}\n\t */\n\tOwl.prototype.maximum = function(relative) {\n\t\tvar settings = this.settings,\n\t\t\tmaximum = this._coordinates.length,\n\t\t\titerator,\n\t\t\treciprocalItemsWidth,\n\t\t\telementWidth;\n\n\t\tif (settings.loop) {\n\t\t\tmaximum = this._clones.length / 2 + this._items.length - 1;\n\t\t} else if (settings.autoWidth || settings.merge) {\n\t\t\titerator = this._items.length;\n\t\t\tif (iterator) {\n\t\t\t\treciprocalItemsWidth = this._items[--iterator].width();\n\t\t\t\telementWidth = this.$element.width();\n\t\t\t\twhile (iterator--) {\n\t\t\t\t\treciprocalItemsWidth += this._items[iterator].width() + this.settings.margin;\n\t\t\t\t\tif (reciprocalItemsWidth > elementWidth) {\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\tmaximum = iterator + 1;\n\t\t} else if (settings.center) {\n\t\t\tmaximum = this._items.length - 1;\n\t\t} else {\n\t\t\tmaximum = this._items.length - settings.items;\n\t\t}\n\n\t\tif (relative) {\n\t\t\tmaximum -= this._clones.length / 2;\n\t\t}\n\n\t\treturn Math.max(maximum, 0);\n\t};\n\n\t/**\n\t * Gets the minimum position for the current item.\n\t * @public\n\t * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position.\n\t * @returns {Number}\n\t */\n\tOwl.prototype.minimum = function(relative) {\n\t\treturn relative ? 0 : this._clones.length / 2;\n\t};\n\n\t/**\n\t * Gets an item at the specified relative position.\n\t * @public\n\t * @param {Number} [position] - The relative position of the item.\n\t * @return {jQuery|Array.<jQuery>} - The item at the given position or all items if no position was given.\n\t */\n\tOwl.prototype.items = function(position) {\n\t\tif (position === undefined) {\n\t\t\treturn this._items.slice();\n\t\t}\n\n\t\tposition = this.normalize(position, true);\n\t\treturn this._items[position];\n\t};\n\n\t/**\n\t * Gets an item at the specified relative position.\n\t * @public\n\t * @param {Number} [position] - The relative position of the item.\n\t * @return {jQuery|Array.<jQuery>} - The item at the given position or all items if no position was given.\n\t */\n\tOwl.prototype.mergers = function(position) {\n\t\tif (position === undefined) {\n\t\t\treturn this._mergers.slice();\n\t\t}\n\n\t\tposition = this.normalize(position, true);\n\t\treturn this._mergers[position];\n\t};\n\n\t/**\n\t * Gets the absolute positions of clones for an item.\n\t * @public\n\t * @param {Number} [position] - The relative position of the item.\n\t * @returns {Array.<Number>} - The absolute positions of clones for the item or all if no position was given.\n\t */\n\tOwl.prototype.clones = function(position) {\n\t\tvar odd = this._clones.length / 2,\n\t\t\teven = odd + this._items.length,\n\t\t\tmap = function(index) { return index % 2 === 0 ? even + index / 2 : odd - (index + 1) / 2 };\n\n\t\tif (position === undefined) {\n\t\t\treturn $.map(this._clones, function(v, i) { return map(i) });\n\t\t}\n\n\t\treturn $.map(this._clones, function(v, i) { return v === position ? map(i) : null });\n\t};\n\n\t/**\n\t * Sets the current animation speed.\n\t * @public\n\t * @param {Number} [speed] - The animation speed in milliseconds or nothing to leave it unchanged.\n\t * @returns {Number} - The current animation speed in milliseconds.\n\t */\n\tOwl.prototype.speed = function(speed) {\n\t\tif (speed !== undefined) {\n\t\t\tthis._speed = speed;\n\t\t}\n\n\t\treturn this._speed;\n\t};\n\n\t/**\n\t * Gets the coordinate of an item.\n\t * @todo The name of this method is missleanding.\n\t * @public\n\t * @param {Number} position - The absolute position of the item within `minimum()` and `maximum()`.\n\t * @returns {Number|Array.<Number>} - The coordinate of the item in pixel or all coordinates.\n\t */\n\tOwl.prototype.coordinates = function(position) {\n\t\tvar multiplier = 1,\n\t\t\tnewPosition = position - 1,\n\t\t\tcoordinate;\n\n\t\tif (position === undefined) {\n\t\t\treturn $.map(this._coordinates, $.proxy(function(coordinate, index) {\n\t\t\t\treturn this.coordinates(index);\n\t\t\t}, this));\n\t\t}\n\n\t\tif (this.settings.center) {\n\t\t\tif (this.settings.rtl) {\n\t\t\t\tmultiplier = -1;\n\t\t\t\tnewPosition = position + 1;\n\t\t\t}\n\n\t\t\tcoordinate = this._coordinates[position];\n\t\t\tcoordinate += (this.width() - coordinate + (this._coordinates[newPosition] || 0)) / 2 * multiplier;\n\t\t} else {\n\t\t\tcoordinate = this._coordinates[newPosition] || 0;\n\t\t}\n\n\t\tcoordinate = Math.ceil(coordinate);\n\n\t\treturn coordinate;\n\t};\n\n\t/**\n\t * Calculates the speed for a translation.\n\t * @protected\n\t * @param {Number} from - The absolute position of the start item.\n\t * @param {Number} to - The absolute position of the target item.\n\t * @param {Number} [factor=undefined] - The time factor in milliseconds.\n\t * @returns {Number} - The time in milliseconds for the translation.\n\t */\n\tOwl.prototype.duration = function(from, to, factor) {\n\t\tif (factor === 0) {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn Math.min(Math.max(Math.abs(to - from), 1), 6) * Math.abs((factor || this.settings.smartSpeed));\n\t};\n\n\t/**\n\t * Slides to the specified item.\n\t * @public\n\t * @param {Number} position - The position of the item.\n\t * @param {Number} [speed] - The time in milliseconds for the transition.\n\t */\n\tOwl.prototype.to = function(position, speed) {\n\t\tvar current = this.current(),\n\t\t\trevert = null,\n\t\t\tdistance = position - this.relative(current),\n\t\t\tdirection = (distance > 0) - (distance < 0),\n\t\t\titems = this._items.length,\n\t\t\tminimum = this.minimum(),\n\t\t\tmaximum = this.maximum();\n\n\t\tif (this.settings.loop) {\n\t\t\tif (!this.settings.rewind && Math.abs(distance) > items / 2) {\n\t\t\t\tdistance += direction * -1 * items;\n\t\t\t}\n\n\t\t\tposition = current + distance;\n\t\t\trevert = ((position - minimum) % items + items) % items + minimum;\n\n\t\t\tif (revert !== position && revert - distance <= maximum && revert - distance > 0) {\n\t\t\t\tcurrent = revert - distance;\n\t\t\t\tposition = revert;\n\t\t\t\tthis.reset(current);\n\t\t\t}\n\t\t} else if (this.settings.rewind) {\n\t\t\tmaximum += 1;\n\t\t\tposition = (position % maximum + maximum) % maximum;\n\t\t} else {\n\t\t\tposition = Math.max(minimum, Math.min(maximum, position));\n\t\t}\n\n\t\tthis.speed(this.duration(current, position, speed));\n\t\tthis.current(position);\n\n\t\tif (this.isVisible()) {\n\t\t\tthis.update();\n\t\t}\n\t};\n\n\t/**\n\t * Slides to the next item.\n\t * @public\n\t * @param {Number} [speed] - The time in milliseconds for the transition.\n\t */\n\tOwl.prototype.next = function(speed) {\n\t\tspeed = speed || false;\n\t\tthis.to(this.relative(this.current()) + 1, speed);\n\t};\n\n\t/**\n\t * Slides to the previous item.\n\t * @public\n\t * @param {Number} [speed] - The time in milliseconds for the transition.\n\t */\n\tOwl.prototype.prev = function(speed) {\n\t\tspeed = speed || false;\n\t\tthis.to(this.relative(this.current()) - 1, speed);\n\t};\n\n\t/**\n\t * Handles the end of an animation.\n\t * @protected\n\t * @param {Event} event - The event arguments.\n\t */\n\tOwl.prototype.onTransitionEnd = function(event) {\n\n\t\t// if css2 animation then event object is undefined\n\t\tif (event !== undefined) {\n\t\t\tevent.stopPropagation();\n\n\t\t\t// Catch only owl-stage transitionEnd event\n\t\t\tif ((event.target || event.srcElement || event.originalTarget) !== this.$stage.get(0)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tthis.leave('animating');\n\t\tthis.trigger('translated');\n\t};\n\n\t/**\n\t * Gets viewport width.\n\t * @protected\n\t * @return {Number} - The width in pixel.\n\t */\n\tOwl.prototype.viewport = function() {\n\t\tvar width;\n\t\tif (this.options.responsiveBaseElement !== window) {\n\t\t\twidth = $(this.options.responsiveBaseElement).width();\n\t\t} else if (window.innerWidth) {\n\t\t\twidth = window.innerWidth;\n\t\t} else if (document.documentElement && document.documentElement.clientWidth) {\n\t\t\twidth = document.documentElement.clientWidth;\n\t\t} else {\n\t\t\tconsole.warn('Can not detect viewport width.');\n\t\t}\n\t\treturn width;\n\t};\n\n\t/**\n\t * Replaces the current content.\n\t * @public\n\t * @param {HTMLElement|jQuery|String} content - The new content.\n\t */\n\tOwl.prototype.replace = function(content) {\n\t\tthis.$stage.empty();\n\t\tthis._items = [];\n\n\t\tif (content) {\n\t\t\tcontent = (content instanceof jQuery) ? content : $(content);\n\t\t}\n\n\t\tif (this.settings.nestedItemSelector) {\n\t\t\tcontent = content.find('.' + this.settings.nestedItemSelector);\n\t\t}\n\n\t\tcontent.filter(function() {\n\t\t\treturn this.nodeType === 1;\n\t\t}).each($.proxy(function(index, item) {\n\t\t\titem = this.prepare(item);\n\t\t\tthis.$stage.append(item);\n\t\t\tthis._items.push(item);\n\t\t\tthis._mergers.push(item.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1);\n\t\t}, this));\n\n\t\tthis.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0);\n\n\t\tthis.invalidate('items');\n\t};\n\n\t/**\n\t * Adds an item.\n\t * @todo Use `item` instead of `content` for the event arguments.\n\t * @public\n\t * @param {HTMLElement|jQuery|String} content - The item content to add.\n\t * @param {Number} [position] - The relative position at which to insert the item otherwise the item will be added to the end.\n\t */\n\tOwl.prototype.add = function(content, position) {\n\t\tvar current = this.relative(this._current);\n\n\t\tposition = position === undefined ? this._items.length : this.normalize(position, true);\n\t\tcontent = content instanceof jQuery ? content : $(content);\n\n\t\tthis.trigger('add', { content: content, position: position });\n\n\t\tcontent = this.prepare(content);\n\n\t\tif (this._items.length === 0 || position === this._items.length) {\n\t\t\tthis._items.length === 0 && this.$stage.append(content);\n\t\t\tthis._items.length !== 0 && this._items[position - 1].after(content);\n\t\t\tthis._items.push(content);\n\t\t\tthis._mergers.push(content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1);\n\t\t} else {\n\t\t\tthis._items[position].before(content);\n\t\t\tthis._items.splice(position, 0, content);\n\t\t\tthis._mergers.splice(position, 0, content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1);\n\t\t}\n\n\t\tthis._items[current] && this.reset(this._items[current].index());\n\n\t\tthis.invalidate('items');\n\n\t\tthis.trigger('added', { content: content, position: position });\n\t};\n\n\t/**\n\t * Removes an item by its position.\n\t * @todo Use `item` instead of `content` for the event arguments.\n\t * @public\n\t * @param {Number} position - The relative position of the item to remove.\n\t */\n\tOwl.prototype.remove = function(position) {\n\t\tposition = this.normalize(position, true);\n\n\t\tif (position === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.trigger('remove', { content: this._items[position], position: position });\n\n\t\tthis._items[position].remove();\n\t\tthis._items.splice(position, 1);\n\t\tthis._mergers.splice(position, 1);\n\n\t\tthis.invalidate('items');\n\n\t\tthis.trigger('removed', { content: null, position: position });\n\t};\n\n\t/**\n\t * Preloads images with auto width.\n\t * @todo Replace by a more generic approach\n\t * @protected\n\t */\n\tOwl.prototype.preloadAutoWidthImages = function(images) {\n\t\timages.each($.proxy(function(i, element) {\n\t\t\tthis.enter('pre-loading');\n\t\t\telement = $(element);\n\t\t\t$(new Image()).one('load', $.proxy(function(e) {\n\t\t\t\telement.attr('src', e.target.src);\n\t\t\t\telement.css('opacity', 1);\n\t\t\t\tthis.leave('pre-loading');\n\t\t\t\t!this.is('pre-loading') && !this.is('initializing') && this.refresh();\n\t\t\t}, this)).attr('src', element.attr('src') || element.attr('data-src') || element.attr('data-src-retina'));\n\t\t}, this));\n\t};\n\n\t/**\n\t * Destroys the carousel.\n\t * @public\n\t */\n\tOwl.prototype.destroy = function() {\n\n\t\tthis.$element.off('.owl.core');\n\t\tthis.$stage.off('.owl.core');\n\t\t$(document).off('.owl.core');\n\n\t\tif (this.settings.responsive !== false) {\n\t\t\twindow.clearTimeout(this.resizeTimer);\n\t\t\tthis.off(window, 'resize', this._handlers.onThrottledResize);\n\t\t}\n\n\t\tfor (var i in this._plugins) {\n\t\t\tthis._plugins[i].destroy();\n\t\t}\n\n\t\tthis.$stage.children('.cloned').remove();\n\n\t\tthis.$stage.unwrap();\n\t\tthis.$stage.children().contents().unwrap();\n\t\tthis.$stage.children().unwrap();\n\t\tthis.$stage.remove();\n\t\tthis.$element\n\t\t\t.removeClass(this.options.refreshClass)\n\t\t\t.removeClass(this.options.loadingClass)\n\t\t\t.removeClass(this.options.loadedClass)\n\t\t\t.removeClass(this.options.rtlClass)\n\t\t\t.removeClass(this.options.dragClass)\n\t\t\t.removeClass(this.options.grabClass)\n\t\t\t.attr('class', this.$element.attr('class').replace(new RegExp(this.options.responsiveClass + '-\\\\S+\\\\s', 'g'), ''))\n\t\t\t.removeData('owl.carousel');\n\t};\n\n\t/**\n\t * Operators to calculate right-to-left and left-to-right.\n\t * @protected\n\t * @param {Number} [a] - The left side operand.\n\t * @param {String} [o] - The operator.\n\t * @param {Number} [b] - The right side operand.\n\t */\n\tOwl.prototype.op = function(a, o, b) {\n\t\tvar rtl = this.settings.rtl;\n\t\tswitch (o) {\n\t\t\tcase '<':\n\t\t\t\treturn rtl ? a > b : a < b;\n\t\t\tcase '>':\n\t\t\t\treturn rtl ? a < b : a > b;\n\t\t\tcase '>=':\n\t\t\t\treturn rtl ? a <= b : a >= b;\n\t\t\tcase '<=':\n\t\t\t\treturn rtl ? a >= b : a <= b;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\t/**\n\t * Attaches to an internal event.\n\t * @protected\n\t * @param {HTMLElement} element - The event source.\n\t * @param {String} event - The event name.\n\t * @param {Function} listener - The event handler to attach.\n\t * @param {Boolean} capture - Wether the event should be handled at the capturing phase or not.\n\t */\n\tOwl.prototype.on = function(element, event, listener, capture) {\n\t\tif (element.addEventListener) {\n\t\t\telement.addEventListener(event, listener, capture);\n\t\t} else if (element.attachEvent) {\n\t\t\telement.attachEvent('on' + event, listener);\n\t\t}\n\t};\n\n\t/**\n\t * Detaches from an internal event.\n\t * @protected\n\t * @param {HTMLElement} element - The event source.\n\t * @param {String} event - The event name.\n\t * @param {Function} listener - The attached event handler to detach.\n\t * @param {Boolean} capture - Wether the attached event handler was registered as a capturing listener or not.\n\t */\n\tOwl.prototype.off = function(element, event, listener, capture) {\n\t\tif (element.removeEventListener) {\n\t\t\telement.removeEventListener(event, listener, capture);\n\t\t} else if (element.detachEvent) {\n\t\t\telement.detachEvent('on' + event, listener);\n\t\t}\n\t};\n\n\t/**\n\t * Triggers a public event.\n\t * @todo Remove `status`, `relatedTarget` should be used instead.\n\t * @protected\n\t * @param {String} name - The event name.\n\t * @param {*} [data=null] - The event data.\n\t * @param {String} [namespace=carousel] - The event namespace.\n\t * @param {String} [state] - The state which is associated with the event.\n\t * @param {Boolean} [enter=false] - Indicates if the call enters the specified state or not.\n\t * @returns {Event} - The event arguments.\n\t */\n\tOwl.prototype.trigger = function(name, data, namespace, state, enter) {\n\t\tvar status = {\n\t\t\titem: { count: this._items.length, index: this.current() }\n\t\t}, handler = $.camelCase(\n\t\t\t$.grep([ 'on', name, namespace ], function(v) { return v })\n\t\t\t\t.join('-').toLowerCase()\n\t\t), event = $.Event(\n\t\t\t[ name, 'owl', namespace || 'carousel' ].join('.').toLowerCase(),\n\t\t\t$.extend({ relatedTarget: this }, status, data)\n\t\t);\n\n\t\tif (!this._supress[name]) {\n\t\t\t$.each(this._plugins, function(name, plugin) {\n\t\t\t\tif (plugin.onTrigger) {\n\t\t\t\t\tplugin.onTrigger(event);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.register({ type: Owl.Type.Event, name: name });\n\t\t\tthis.$element.trigger(event);\n\n\t\t\tif (this.settings && typeof this.settings[handler] === 'function') {\n\t\t\t\tthis.settings[handler].call(this, event);\n\t\t\t}\n\t\t}\n\n\t\treturn event;\n\t};\n\n\t/**\n\t * Enters a state.\n\t * @param name - The state name.\n\t */\n\tOwl.prototype.enter = function(name) {\n\t\t$.each([ name ].concat(this._states.tags[name] || []), $.proxy(function(i, name) {\n\t\t\tif (this._states.current[name] === undefined) {\n\t\t\t\tthis._states.current[name] = 0;\n\t\t\t}\n\n\t\t\tthis._states.current[name]++;\n\t\t}, this));\n\t};\n\n\t/**\n\t * Leaves a state.\n\t * @param name - The state name.\n\t */\n\tOwl.prototype.leave = function(name) {\n\t\t$.each([ name ].concat(this._states.tags[name] || []), $.proxy(function(i, name) {\n\t\t\tthis._states.current[name]--;\n\t\t}, this));\n\t};\n\n\t/**\n\t * Registers an event or state.\n\t * @public\n\t * @param {Object} object - The event or state to register.\n\t */\n\tOwl.prototype.register = function(object) {\n\t\tif (object.type === Owl.Type.Event) {\n\t\t\tif (!$.event.special[object.name]) {\n\t\t\t\t$.event.special[object.name] = {};\n\t\t\t}\n\n\t\t\tif (!$.event.special[object.name].owl) {\n\t\t\t\tvar _default = $.event.special[object.name]._default;\n\t\t\t\t$.event.special[object.name]._default = function(e) {\n\t\t\t\t\tif (_default && _default.apply && (!e.namespace || e.namespace.indexOf('owl') === -1)) {\n\t\t\t\t\t\treturn _default.apply(this, arguments);\n\t\t\t\t\t}\n\t\t\t\t\treturn e.namespace && e.namespace.indexOf('owl') > -1;\n\t\t\t\t};\n\t\t\t\t$.event.special[object.name].owl = true;\n\t\t\t}\n\t\t} else if (object.type === Owl.Type.State) {\n\t\t\tif (!this._states.tags[object.name]) {\n\t\t\t\tthis._states.tags[object.name] = object.tags;\n\t\t\t} else {\n\t\t\t\tthis._states.tags[object.name] = this._states.tags[object.name].concat(object.tags);\n\t\t\t}\n\n\t\t\tthis._states.tags[object.name] = $.grep(this._states.tags[object.name], $.proxy(function(tag, i) {\n\t\t\t\treturn $.inArray(tag, this._states.tags[object.name]) === i;\n\t\t\t}, this));\n\t\t}\n\t};\n\n\t/**\n\t * Suppresses events.\n\t * @protected\n\t * @param {Array.<String>} events - The events to suppress.\n\t */\n\tOwl.prototype.suppress = function(events) {\n\t\t$.each(events, $.proxy(function(index, event) {\n\t\t\tthis._supress[event] = true;\n\t\t}, this));\n\t};\n\n\t/**\n\t * Releases suppressed events.\n\t * @protected\n\t * @param {Array.<String>} events - The events to release.\n\t */\n\tOwl.prototype.release = function(events) {\n\t\t$.each(events, $.proxy(function(index, event) {\n\t\t\tdelete this._supress[event];\n\t\t}, this));\n\t};\n\n\t/**\n\t * Gets unified pointer coordinates from event.\n\t * @todo #261\n\t * @protected\n\t * @param {Event} - The `mousedown` or `touchstart` event.\n\t * @returns {Object} - Contains `x` and `y` coordinates of current pointer position.\n\t */\n\tOwl.prototype.pointer = function(event) {\n\t\tvar result = { x: null, y: null };\n\n\t\tevent = event.originalEvent || event || window.event;\n\n\t\tevent = event.touches && event.touches.length ?\n\t\t\tevent.touches[0] : event.changedTouches && event.changedTouches.length ?\n\t\t\t\tevent.changedTouches[0] : event;\n\n\t\tif (event.pageX) {\n\t\t\tresult.x = event.pageX;\n\t\t\tresult.y = event.pageY;\n\t\t} else {\n\t\t\tresult.x = event.clientX;\n\t\t\tresult.y = event.clientY;\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t/**\n\t * Determines if the input is a Number or something that can be coerced to a Number\n\t * @protected\n\t * @param {Number|String|Object|Array|Boolean|RegExp|Function|Symbol} - The input to be tested\n\t * @returns {Boolean} - An indication if the input is a Number or can be coerced to a Number\n\t */\n\tOwl.prototype.isNumeric = function(number) {\n\t\treturn !isNaN(parseFloat(number));\n\t};\n\n\t/**\n\t * Gets the difference of two vectors.\n\t * @todo #261\n\t * @protected\n\t * @param {Object} - The first vector.\n\t * @param {Object} - The second vector.\n\t * @returns {Object} - The difference.\n\t */\n\tOwl.prototype.difference = function(first, second) {\n\t\treturn {\n\t\t\tx: first.x - second.x,\n\t\t\ty: first.y - second.y\n\t\t};\n\t};\n\n\t/**\n\t * The jQuery Plugin for the Owl Carousel\n\t * @todo Navigation plugin `next` and `prev`\n\t * @public\n\t */\n\t$.fn.owlCarousel = function(option) {\n\t\tvar args = Array.prototype.slice.call(arguments, 1);\n\n\t\treturn this.each(function() {\n\t\t\tvar $this = $(this),\n\t\t\t\tdata = $this.data('owl.carousel');\n\n\t\t\tif (!data) {\n\t\t\t\tdata = new Owl(this, typeof option == 'object' && option);\n\t\t\t\t$this.data('owl.carousel', data);\n\n\t\t\t\t$.each([\n\t\t\t\t\t'next', 'prev', 'to', 'destroy', 'refresh', 'replace', 'add', 'remove'\n\t\t\t\t], function(i, event) {\n\t\t\t\t\tdata.register({ type: Owl.Type.Event, name: event });\n\t\t\t\t\tdata.$element.on(event + '.owl.carousel.core', $.proxy(function(e) {\n\t\t\t\t\t\tif (e.namespace && e.relatedTarget !== this) {\n\t\t\t\t\t\t\tthis.suppress([ event ]);\n\t\t\t\t\t\t\tdata[event].apply(this, [].slice.call(arguments, 1));\n\t\t\t\t\t\t\tthis.release([ event ]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, data));\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (typeof option == 'string' && option.charAt(0) !== '_') {\n\t\t\t\tdata[option].apply(data, args);\n\t\t\t}\n\t\t});\n\t};\n\n\t/**\n\t * The constructor for the jQuery Plugin\n\t * @public\n\t */\n\t$.fn.owlCarousel.Constructor = Owl;\n\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * AutoRefresh Plugin\n * @version 2.3.4\n * @author Artus Kolanowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n;(function($, window, document, undefined) {\n\n\t/**\n\t * Creates the auto refresh plugin.\n\t * @class The Auto Refresh Plugin\n\t * @param {Owl} carousel - The Owl Carousel\n\t */\n\tvar AutoRefresh = function(carousel) {\n\t\t/**\n\t\t * Reference to the core.\n\t\t * @protected\n\t\t * @type {Owl}\n\t\t */\n\t\tthis._core = carousel;\n\n\t\t/**\n\t\t * Refresh interval.\n\t\t * @protected\n\t\t * @type {number}\n\t\t */\n\t\tthis._interval = null;\n\n\t\t/**\n\t\t * Whether the element is currently visible or not.\n\t\t * @protected\n\t\t * @type {Boolean}\n\t\t */\n\t\tthis._visible = null;\n\n\t\t/**\n\t\t * All event handlers.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._handlers = {\n\t\t\t'initialized.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.autoRefresh) {\n\t\t\t\t\tthis.watch();\n\t\t\t\t}\n\t\t\t}, this)\n\t\t};\n\n\t\t// set default options\n\t\tthis._core.options = $.extend({}, AutoRefresh.Defaults, this._core.options);\n\n\t\t// register event handlers\n\t\tthis._core.$element.on(this._handlers);\n\t};\n\n\t/**\n\t * Default options.\n\t * @public\n\t */\n\tAutoRefresh.Defaults = {\n\t\tautoRefresh: true,\n\t\tautoRefreshInterval: 500\n\t};\n\n\t/**\n\t * Watches the element.\n\t */\n\tAutoRefresh.prototype.watch = function() {\n\t\tif (this._interval) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._visible = this._core.isVisible();\n\t\tthis._interval = window.setInterval($.proxy(this.refresh, this), this._core.settings.autoRefreshInterval);\n\t};\n\n\t/**\n\t * Refreshes the element.\n\t */\n\tAutoRefresh.prototype.refresh = function() {\n\t\tif (this._core.isVisible() === this._visible) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._visible = !this._visible;\n\n\t\tthis._core.$element.toggleClass('owl-hidden', !this._visible);\n\n\t\tthis._visible && (this._core.invalidate('width') && this._core.refresh());\n\t};\n\n\t/**\n\t * Destroys the plugin.\n\t */\n\tAutoRefresh.prototype.destroy = function() {\n\t\tvar handler, property;\n\n\t\twindow.clearInterval(this._interval);\n\n\t\tfor (handler in this._handlers) {\n\t\t\tthis._core.$element.off(handler, this._handlers[handler]);\n\t\t}\n\t\tfor (property in Object.getOwnPropertyNames(this)) {\n\t\t\ttypeof this[property] != 'function' && (this[property] = null);\n\t\t}\n\t};\n\n\t$.fn.owlCarousel.Constructor.Plugins.AutoRefresh = AutoRefresh;\n\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Lazy Plugin\n * @version 2.3.4\n * @author Bartosz Wojciechowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n;(function($, window, document, undefined) {\n\n\t/**\n\t * Creates the lazy plugin.\n\t * @class The Lazy Plugin\n\t * @param {Owl} carousel - The Owl Carousel\n\t */\n\tvar Lazy = function(carousel) {\n\n\t\t/**\n\t\t * Reference to the core.\n\t\t * @protected\n\t\t * @type {Owl}\n\t\t */\n\t\tthis._core = carousel;\n\n\t\t/**\n\t\t * Already loaded items.\n\t\t * @protected\n\t\t * @type {Array.<jQuery>}\n\t\t */\n\t\tthis._loaded = [];\n\n\t\t/**\n\t\t * Event handlers.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._handlers = {\n\t\t\t'initialized.owl.carousel change.owl.carousel resized.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (!e.namespace) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!this._core.settings || !this._core.settings.lazyLoad) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ((e.property && e.property.name == 'position') || e.type == 'initialized') {\n\t\t\t\t\tvar settings = this._core.settings,\n\t\t\t\t\t\tn = (settings.center && Math.ceil(settings.items / 2) || settings.items),\n\t\t\t\t\t\ti = ((settings.center && n * -1) || 0),\n\t\t\t\t\t\tposition = (e.property && e.property.value !== undefined ? e.property.value : this._core.current()) + i,\n\t\t\t\t\t\tclones = this._core.clones().length,\n\t\t\t\t\t\tload = $.proxy(function(i, v) { this.load(v) }, this);\n\t\t\t\t\t//TODO: Need documentation for this new option\n\t\t\t\t\tif (settings.lazyLoadEager > 0) {\n\t\t\t\t\t\tn += settings.lazyLoadEager;\n\t\t\t\t\t\t// If the carousel is looping also preload images that are to the \"left\"\n\t\t\t\t\t\tif (settings.loop) {\n              position -= settings.lazyLoadEager;\n              n++;\n            }\n\t\t\t\t\t}\n\n\t\t\t\t\twhile (i++ < n) {\n\t\t\t\t\t\tthis.load(clones / 2 + this._core.relative(position));\n\t\t\t\t\t\tclones && $.each(this._core.clones(this._core.relative(position)), load);\n\t\t\t\t\t\tposition++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, this)\n\t\t};\n\n\t\t// set the default options\n\t\tthis._core.options = $.extend({}, Lazy.Defaults, this._core.options);\n\n\t\t// register event handler\n\t\tthis._core.$element.on(this._handlers);\n\t};\n\n\t/**\n\t * Default options.\n\t * @public\n\t */\n\tLazy.Defaults = {\n\t\tlazyLoad: false,\n\t\tlazyLoadEager: 0\n\t};\n\n\t/**\n\t * Loads all resources of an item at the specified position.\n\t * @param {Number} position - The absolute position of the item.\n\t * @protected\n\t */\n\tLazy.prototype.load = function(position) {\n\t\tvar $item = this._core.$stage.children().eq(position),\n\t\t\t$elements = $item && $item.find('.owl-lazy');\n\n\t\tif (!$elements || $.inArray($item.get(0), this._loaded) > -1) {\n\t\t\treturn;\n\t\t}\n\n\t\t$elements.each($.proxy(function(index, element) {\n\t\t\tvar $element = $(element), image,\n                url = (window.devicePixelRatio > 1 && $element.attr('data-src-retina')) || $element.attr('data-src') || $element.attr('data-srcset');\n\n\t\t\tthis._core.trigger('load', { element: $element, url: url }, 'lazy');\n\n\t\t\tif ($element.is('img')) {\n\t\t\t\t$element.one('load.owl.lazy', $.proxy(function() {\n\t\t\t\t\t$element.css('opacity', 1);\n\t\t\t\t\tthis._core.trigger('loaded', { element: $element, url: url }, 'lazy');\n\t\t\t\t}, this)).attr('src', url);\n            } else if ($element.is('source')) {\n                $element.one('load.owl.lazy', $.proxy(function() {\n                    this._core.trigger('loaded', { element: $element, url: url }, 'lazy');\n                }, this)).attr('srcset', url);\n\t\t\t} else {\n\t\t\t\timage = new Image();\n\t\t\t\timage.onload = $.proxy(function() {\n\t\t\t\t\t$element.css({\n\t\t\t\t\t\t'background-image': 'url(\"' + url + '\")',\n\t\t\t\t\t\t'opacity': '1'\n\t\t\t\t\t});\n\t\t\t\t\tthis._core.trigger('loaded', { element: $element, url: url }, 'lazy');\n\t\t\t\t}, this);\n\t\t\t\timage.src = url;\n\t\t\t}\n\t\t}, this));\n\n\t\tthis._loaded.push($item.get(0));\n\t};\n\n\t/**\n\t * Destroys the plugin.\n\t * @public\n\t */\n\tLazy.prototype.destroy = function() {\n\t\tvar handler, property;\n\n\t\tfor (handler in this.handlers) {\n\t\t\tthis._core.$element.off(handler, this.handlers[handler]);\n\t\t}\n\t\tfor (property in Object.getOwnPropertyNames(this)) {\n\t\t\ttypeof this[property] != 'function' && (this[property] = null);\n\t\t}\n\t};\n\n\t$.fn.owlCarousel.Constructor.Plugins.Lazy = Lazy;\n\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * AutoHeight Plugin\n * @version 2.3.4\n * @author Bartosz Wojciechowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n;(function($, window, document, undefined) {\n\n\t/**\n\t * Creates the auto height plugin.\n\t * @class The Auto Height Plugin\n\t * @param {Owl} carousel - The Owl Carousel\n\t */\n\tvar AutoHeight = function(carousel) {\n\t\t/**\n\t\t * Reference to the core.\n\t\t * @protected\n\t\t * @type {Owl}\n\t\t */\n\t\tthis._core = carousel;\n\n\t\tthis._previousHeight = null;\n\n\t\t/**\n\t\t * All event handlers.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._handlers = {\n\t\t\t'initialized.owl.carousel refreshed.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.autoHeight) {\n\t\t\t\t\tthis.update();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'changed.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.autoHeight && e.property.name === 'position'){\n\t\t\t\t\tthis.update();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'loaded.owl.lazy': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.autoHeight\n\t\t\t\t\t&& e.element.closest('.' + this._core.settings.itemClass).index() === this._core.current()) {\n\t\t\t\t\tthis.update();\n\t\t\t\t}\n\t\t\t}, this)\n\t\t};\n\n\t\t// set default options\n\t\tthis._core.options = $.extend({}, AutoHeight.Defaults, this._core.options);\n\n\t\t// register event handlers\n\t\tthis._core.$element.on(this._handlers);\n\t\tthis._intervalId = null;\n\t\tvar refThis = this;\n\n\t\t// These changes have been taken from a PR by gavrochelegnou proposed in #1575\n\t\t// and have been made compatible with the latest jQuery version\n\t\t$(window).on('load', function() {\n\t\t\tif (refThis._core.settings.autoHeight) {\n\t\t\t\trefThis.update();\n\t\t\t}\n\t\t});\n\n\t\t// Autoresize the height of the carousel when window is resized\n\t\t// When carousel has images, the height is dependent on the width\n\t\t// and should also change on resize\n\t\t$(window).resize(function() {\n\t\t\tif (refThis._core.settings.autoHeight) {\n\t\t\t\tif (refThis._intervalId != null) {\n\t\t\t\t\tclearTimeout(refThis._intervalId);\n\t\t\t\t}\n\n\t\t\t\trefThis._intervalId = setTimeout(function() {\n\t\t\t\t\trefThis.update();\n\t\t\t\t}, 250);\n\t\t\t}\n\t\t});\n\n\t};\n\n\t/**\n\t * Default options.\n\t * @public\n\t */\n\tAutoHeight.Defaults = {\n\t\tautoHeight: false,\n\t\tautoHeightClass: 'owl-height'\n\t};\n\n\t/**\n\t * Updates the view.\n\t */\n\tAutoHeight.prototype.update = function() {\n\t\tvar start = this._core._current,\n\t\t\tend = start + this._core.settings.items,\n\t\t\tlazyLoadEnabled = this._core.settings.lazyLoad,\n\t\t\tvisible = this._core.$stage.children().toArray().slice(start, end),\n\t\t\theights = [],\n\t\t\tmaxheight = 0;\n\n\t\t$.each(visible, function(index, item) {\n\t\t\theights.push($(item).height());\n\t\t});\n\n\t\tmaxheight = Math.max.apply(null, heights);\n\n\t\tif (maxheight <= 1 && lazyLoadEnabled && this._previousHeight) {\n\t\t\tmaxheight = this._previousHeight;\n\t\t}\n\n\t\tthis._previousHeight = maxheight;\n\n\t\tthis._core.$stage.parent()\n\t\t\t.height(maxheight)\n\t\t\t.addClass(this._core.settings.autoHeightClass);\n\t};\n\n\tAutoHeight.prototype.destroy = function() {\n\t\tvar handler, property;\n\n\t\tfor (handler in this._handlers) {\n\t\t\tthis._core.$element.off(handler, this._handlers[handler]);\n\t\t}\n\t\tfor (property in Object.getOwnPropertyNames(this)) {\n\t\t\ttypeof this[property] !== 'function' && (this[property] = null);\n\t\t}\n\t};\n\n\t$.fn.owlCarousel.Constructor.Plugins.AutoHeight = AutoHeight;\n\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Video Plugin\n * @version 2.3.4\n * @author Bartosz Wojciechowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n;(function($, window, document, undefined) {\n\n\t/**\n\t * Creates the video plugin.\n\t * @class The Video Plugin\n\t * @param {Owl} carousel - The Owl Carousel\n\t */\n\tvar Video = function(carousel) {\n\t\t/**\n\t\t * Reference to the core.\n\t\t * @protected\n\t\t * @type {Owl}\n\t\t */\n\t\tthis._core = carousel;\n\n\t\t/**\n\t\t * Cache all video URLs.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._videos = {};\n\n\t\t/**\n\t\t * Current playing item.\n\t\t * @protected\n\t\t * @type {jQuery}\n\t\t */\n\t\tthis._playing = null;\n\n\t\t/**\n\t\t * All event handlers.\n\t\t * @todo The cloned content removale is too late\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._handlers = {\n\t\t\t'initialized.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace) {\n\t\t\t\t\tthis._core.register({ type: 'state', name: 'playing', tags: [ 'interacting' ] });\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'resize.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.video && this.isInFullScreen()) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'refreshed.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.is('resizing')) {\n\t\t\t\t\tthis._core.$stage.find('.cloned .owl-video-frame').remove();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'changed.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && e.property.name === 'position' && this._playing) {\n\t\t\t\t\tthis.stop();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'prepared.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (!e.namespace) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar $element = $(e.content).find('.owl-video');\n\n\t\t\t\tif ($element.length) {\n\t\t\t\t\t$element.css('display', 'none');\n\t\t\t\t\tthis.fetch($element, $(e.content));\n\t\t\t\t}\n\t\t\t}, this)\n\t\t};\n\n\t\t// set default options\n\t\tthis._core.options = $.extend({}, Video.Defaults, this._core.options);\n\n\t\t// register event handlers\n\t\tthis._core.$element.on(this._handlers);\n\n\t\tthis._core.$element.on('click.owl.video', '.owl-video-play-icon', $.proxy(function(e) {\n\t\t\tthis.play(e);\n\t\t}, this));\n\t};\n\n\t/**\n\t * Default options.\n\t * @public\n\t */\n\tVideo.Defaults = {\n\t\tvideo: false,\n\t\tvideoHeight: false,\n\t\tvideoWidth: false\n\t};\n\n\t/**\n\t * Gets the video ID and the type (YouTube/Vimeo/vzaar only).\n\t * @protected\n\t * @param {jQuery} target - The target containing the video data.\n\t * @param {jQuery} item - The item containing the video.\n\t */\n\tVideo.prototype.fetch = function(target, item) {\n\t\t\tvar type = (function() {\n\t\t\t\t\tif (target.attr('data-vimeo-id')) {\n\t\t\t\t\t\treturn 'vimeo';\n\t\t\t\t\t} else if (target.attr('data-vzaar-id')) {\n\t\t\t\t\t\treturn 'vzaar'\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn 'youtube';\n\t\t\t\t\t}\n\t\t\t\t})(),\n\t\t\t\tid = target.attr('data-vimeo-id') || target.attr('data-youtube-id') || target.attr('data-vzaar-id'),\n\t\t\t\twidth = target.attr('data-width') || this._core.settings.videoWidth,\n\t\t\t\theight = target.attr('data-height') || this._core.settings.videoHeight,\n\t\t\t\turl = target.attr('href');\n\n\t\tif (url) {\n\n\t\t\t/*\n\t\t\t\t\tParses the id's out of the following urls (and probably more):\n\t\t\t\t\thttps://www.youtube.com/watch?v=:id\n\t\t\t\t\thttps://youtu.be/:id\n\t\t\t\t\thttps://vimeo.com/:id\n\t\t\t\t\thttps://vimeo.com/channels/:channel/:id\n\t\t\t\t\thttps://vimeo.com/groups/:group/videos/:id\n\t\t\t\t\thttps://app.vzaar.com/videos/:id\n\n\t\t\t\t\tVisual example: https://regexper.com/#(http%3A%7Chttps%3A%7C)%5C%2F%5C%2F(player.%7Cwww.%7Capp.)%3F(vimeo%5C.com%7Cyoutu(be%5C.com%7C%5C.be%7Cbe%5C.googleapis%5C.com)%7Cvzaar%5C.com)%5C%2F(video%5C%2F%7Cvideos%5C%2F%7Cembed%5C%2F%7Cchannels%5C%2F.%2B%5C%2F%7Cgroups%5C%2F.%2B%5C%2F%7Cwatch%5C%3Fv%3D%7Cv%5C%2F)%3F(%5BA-Za-z0-9._%25-%5D*)(%5C%26%5CS%2B)%3F\n\t\t\t*/\n\n\t\t\tid = url.match(/(http:|https:|)\\/\\/(player.|www.|app.)?(vimeo\\.com|youtu(be\\.com|\\.be|be\\.googleapis\\.com|be\\-nocookie\\.com)|vzaar\\.com)\\/(video\\/|videos\\/|embed\\/|channels\\/.+\\/|groups\\/.+\\/|watch\\?v=|v\\/)?([A-Za-z0-9._%-]*)(\\&\\S+)?/);\n\n\t\t\tif (id[3].indexOf('youtu') > -1) {\n\t\t\t\ttype = 'youtube';\n\t\t\t} else if (id[3].indexOf('vimeo') > -1) {\n\t\t\t\ttype = 'vimeo';\n\t\t\t} else if (id[3].indexOf('vzaar') > -1) {\n\t\t\t\ttype = 'vzaar';\n\t\t\t} else {\n\t\t\t\tthrow new Error('Video URL not supported.');\n\t\t\t}\n\t\t\tid = id[6];\n\t\t} else {\n\t\t\tthrow new Error('Missing video URL.');\n\t\t}\n\n\t\tthis._videos[url] = {\n\t\t\ttype: type,\n\t\t\tid: id,\n\t\t\twidth: width,\n\t\t\theight: height\n\t\t};\n\n\t\titem.attr('data-video', url);\n\n\t\tthis.thumbnail(target, this._videos[url]);\n\t};\n\n\t/**\n\t * Creates video thumbnail.\n\t * @protected\n\t * @param {jQuery} target - The target containing the video data.\n\t * @param {Object} info - The video info object.\n\t * @see `fetch`\n\t */\n\tVideo.prototype.thumbnail = function(target, video) {\n\t\tvar tnLink,\n\t\t\ticon,\n\t\t\tpath,\n\t\t\tdimensions = video.width && video.height ? 'width:' + video.width + 'px;height:' + video.height + 'px;' : '',\n\t\t\tcustomTn = target.find('img'),\n\t\t\tsrcType = 'src',\n\t\t\tlazyClass = '',\n\t\t\tsettings = this._core.settings,\n\t\t\tcreate = function(path) {\n\t\t\t\ticon = '<div class=\"owl-video-play-icon\"></div>';\n\n\t\t\t\tif (settings.lazyLoad) {\n\t\t\t\t\ttnLink = $('<div/>',{\n\t\t\t\t\t\t\"class\": 'owl-video-tn ' + lazyClass,\n\t\t\t\t\t\t\"srcType\": path\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\ttnLink = $( '<div/>', {\n\t\t\t\t\t\t\"class\": \"owl-video-tn\",\n\t\t\t\t\t\t\"style\": 'opacity:1;background-image:url(' + path + ')'\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\ttarget.after(tnLink);\n\t\t\t\ttarget.after(icon);\n\t\t\t};\n\n\t\t// wrap video content into owl-video-wrapper div\n\t\ttarget.wrap( $( '<div/>', {\n\t\t\t\"class\": \"owl-video-wrapper\",\n\t\t\t\"style\": dimensions\n\t\t}));\n\n\t\tif (this._core.settings.lazyLoad) {\n\t\t\tsrcType = 'data-src';\n\t\t\tlazyClass = 'owl-lazy';\n\t\t}\n\n\t\t// custom thumbnail\n\t\tif (customTn.length) {\n\t\t\tcreate(customTn.attr(srcType));\n\t\t\tcustomTn.remove();\n\t\t\treturn false;\n\t\t}\n\n\t\tif (video.type === 'youtube') {\n\t\t\tpath = \"//img.youtube.com/vi/\" + video.id + \"/hqdefault.jpg\";\n\t\t\tcreate(path);\n\t\t} else if (video.type === 'vimeo') {\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: '//vimeo.com/api/v2/video/' + video.id + '.json',\n\t\t\t\tjsonp: 'callback',\n\t\t\t\tdataType: 'jsonp',\n\t\t\t\tsuccess: function(data) {\n\t\t\t\t\tpath = data[0].thumbnail_large;\n\t\t\t\t\tcreate(path);\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (video.type === 'vzaar') {\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: '//vzaar.com/api/videos/' + video.id + '.json',\n\t\t\t\tjsonp: 'callback',\n\t\t\t\tdataType: 'jsonp',\n\t\t\t\tsuccess: function(data) {\n\t\t\t\t\tpath = data.framegrab_url;\n\t\t\t\t\tcreate(path);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n\t * Stops the current video.\n\t * @public\n\t */\n\tVideo.prototype.stop = function() {\n\t\tthis._core.trigger('stop', null, 'video');\n\t\tthis._playing.find('.owl-video-frame').remove();\n\t\tthis._playing.removeClass('owl-video-playing');\n\t\tthis._playing = null;\n\t\tthis._core.leave('playing');\n\t\tthis._core.trigger('stopped', null, 'video');\n\t};\n\n\t/**\n\t * Starts the current video.\n\t * @public\n\t * @param {Event} event - The event arguments.\n\t */\n\tVideo.prototype.play = function(event) {\n\t\tvar target = $(event.target),\n\t\t\titem = target.closest('.' + this._core.settings.itemClass),\n\t\t\tvideo = this._videos[item.attr('data-video')],\n\t\t\twidth = video.width || '100%',\n\t\t\theight = video.height || this._core.$stage.height(),\n\t\t\thtml,\n\t\t\tiframe;\n\n\t\tif (this._playing) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._core.enter('playing');\n\t\tthis._core.trigger('play', null, 'video');\n\n\t\titem = this._core.items(this._core.relative(item.index()));\n\n\t\tthis._core.reset(item.index());\n\n\t\thtml = $( '<iframe frameborder=\"0\" allowfullscreen mozallowfullscreen webkitAllowFullScreen ></iframe>' );\n\t\thtml.attr( 'height', height );\n\t\thtml.attr( 'width', width );\n\t\tif (video.type === 'youtube') {\n\t\t\thtml.attr( 'src', '//www.youtube.com/embed/' + video.id + '?autoplay=1&rel=0&v=' + video.id );\n\t\t} else if (video.type === 'vimeo') {\n\t\t\thtml.attr( 'src', '//player.vimeo.com/video/' + video.id + '?autoplay=1' );\n\t\t} else if (video.type === 'vzaar') {\n\t\t\thtml.attr( 'src', '//view.vzaar.com/' + video.id + '/player?autoplay=true' );\n\t\t}\n\n\t\tiframe = $(html).wrap( '<div class=\"owl-video-frame\" />' ).insertAfter(item.find('.owl-video'));\n\n\t\tthis._playing = item.addClass('owl-video-playing');\n\t};\n\n\t/**\n\t * Checks whether an video is currently in full screen mode or not.\n\t * @todo Bad style because looks like a readonly method but changes members.\n\t * @protected\n\t * @returns {Boolean}\n\t */\n\tVideo.prototype.isInFullScreen = function() {\n\t\tvar element = document.fullscreenElement || document.mozFullScreenElement ||\n\t\t\t\tdocument.webkitFullscreenElement;\n\n\t\treturn element && $(element).parent().hasClass('owl-video-frame');\n\t};\n\n\t/**\n\t * Destroys the plugin.\n\t */\n\tVideo.prototype.destroy = function() {\n\t\tvar handler, property;\n\n\t\tthis._core.$element.off('click.owl.video');\n\n\t\tfor (handler in this._handlers) {\n\t\t\tthis._core.$element.off(handler, this._handlers[handler]);\n\t\t}\n\t\tfor (property in Object.getOwnPropertyNames(this)) {\n\t\t\ttypeof this[property] != 'function' && (this[property] = null);\n\t\t}\n\t};\n\n\t$.fn.owlCarousel.Constructor.Plugins.Video = Video;\n\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Animate Plugin\n * @version 2.3.4\n * @author Bartosz Wojciechowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n;(function($, window, document, undefined) {\n\n\t/**\n\t * Creates the animate plugin.\n\t * @class The Navigation Plugin\n\t * @param {Owl} scope - The Owl Carousel\n\t */\n\tvar Animate = function(scope) {\n\t\tthis.core = scope;\n\t\tthis.core.options = $.extend({}, Animate.Defaults, this.core.options);\n\t\tthis.swapping = true;\n\t\tthis.previous = undefined;\n\t\tthis.next = undefined;\n\n\t\tthis.handlers = {\n\t\t\t'change.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && e.property.name == 'position') {\n\t\t\t\t\tthis.previous = this.core.current();\n\t\t\t\t\tthis.next = e.property.value;\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'drag.owl.carousel dragged.owl.carousel translated.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace) {\n\t\t\t\t\tthis.swapping = e.type == 'translated';\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'translate.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn)) {\n\t\t\t\t\tthis.swap();\n\t\t\t\t}\n\t\t\t}, this)\n\t\t};\n\n\t\tthis.core.$element.on(this.handlers);\n\t};\n\n\t/**\n\t * Default options.\n\t * @public\n\t */\n\tAnimate.Defaults = {\n\t\tanimateOut: false,\n\t\tanimateIn: false\n\t};\n\n\t/**\n\t * Toggles the animation classes whenever an translations starts.\n\t * @protected\n\t * @returns {Boolean|undefined}\n\t */\n\tAnimate.prototype.swap = function() {\n\n\t\tif (this.core.settings.items !== 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!$.support.animation || !$.support.transition) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.core.speed(0);\n\n\t\tvar left,\n\t\t\tclear = $.proxy(this.clear, this),\n\t\t\tprevious = this.core.$stage.children().eq(this.previous),\n\t\t\tnext = this.core.$stage.children().eq(this.next),\n\t\t\tincoming = this.core.settings.animateIn,\n\t\t\toutgoing = this.core.settings.animateOut;\n\n\t\tif (this.core.current() === this.previous) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (outgoing) {\n\t\t\tleft = this.core.coordinates(this.previous) - this.core.coordinates(this.next);\n\t\t\tprevious.one($.support.animation.end, clear)\n\t\t\t\t.css( { 'left': left + 'px' } )\n\t\t\t\t.addClass('animated owl-animated-out')\n\t\t\t\t.addClass(outgoing);\n\t\t}\n\n\t\tif (incoming) {\n\t\t\tnext.one($.support.animation.end, clear)\n\t\t\t\t.addClass('animated owl-animated-in')\n\t\t\t\t.addClass(incoming);\n\t\t}\n\t};\n\n\tAnimate.prototype.clear = function(e) {\n\t\t$(e.target).css( { 'left': '' } )\n\t\t\t.removeClass('animated owl-animated-out owl-animated-in')\n\t\t\t.removeClass(this.core.settings.animateIn)\n\t\t\t.removeClass(this.core.settings.animateOut);\n\t\tthis.core.onTransitionEnd();\n\t};\n\n\t/**\n\t * Destroys the plugin.\n\t * @public\n\t */\n\tAnimate.prototype.destroy = function() {\n\t\tvar handler, property;\n\n\t\tfor (handler in this.handlers) {\n\t\t\tthis.core.$element.off(handler, this.handlers[handler]);\n\t\t}\n\t\tfor (property in Object.getOwnPropertyNames(this)) {\n\t\t\ttypeof this[property] != 'function' && (this[property] = null);\n\t\t}\n\t};\n\n\t$.fn.owlCarousel.Constructor.Plugins.Animate = Animate;\n\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Autoplay Plugin\n * @version 2.3.4\n * @author Bartosz Wojciechowski\n * @author Artus Kolanowski\n * @author David Deutsch\n * @author Tom De Caluwé\n * @license The MIT License (MIT)\n */\n;(function($, window, document, undefined) {\n\n\t/**\n\t * Creates the autoplay plugin.\n\t * @class The Autoplay Plugin\n\t * @param {Owl} scope - The Owl Carousel\n\t */\n\tvar Autoplay = function(carousel) {\n\t\t/**\n\t\t * Reference to the core.\n\t\t * @protected\n\t\t * @type {Owl}\n\t\t */\n\t\tthis._core = carousel;\n\n\t\t/**\n\t\t * The autoplay timeout id.\n\t\t * @type {Number}\n\t\t */\n\t\tthis._call = null;\n\n\t\t/**\n\t\t * Depending on the state of the plugin, this variable contains either\n\t\t * the start time of the timer or the current timer value if it's\n\t\t * paused. Since we start in a paused state we initialize the timer\n\t\t * value.\n\t\t * @type {Number}\n\t\t */\n\t\tthis._time = 0;\n\n\t\t/**\n\t\t * Stores the timeout currently used.\n\t\t * @type {Number}\n\t\t */\n\t\tthis._timeout = 0;\n\n\t\t/**\n\t\t * Indicates whenever the autoplay is paused.\n\t\t * @type {Boolean}\n\t\t */\n\t\tthis._paused = true;\n\n\t\t/**\n\t\t * All event handlers.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._handlers = {\n\t\t\t'changed.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && e.property.name === 'settings') {\n\t\t\t\t\tif (this._core.settings.autoplay) {\n\t\t\t\t\t\tthis.play();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.stop();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.namespace && e.property.name === 'position' && this._paused) {\n\t\t\t\t\t// Reset the timer. This code is triggered when the position\n\t\t\t\t\t// of the carousel was changed through user interaction.\n\t\t\t\t\tthis._time = 0;\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'initialized.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.autoplay) {\n\t\t\t\t\tthis.play();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'play.owl.autoplay': $.proxy(function(e, t, s) {\n\t\t\t\tif (e.namespace) {\n\t\t\t\t\tthis.play(t, s);\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'stop.owl.autoplay': $.proxy(function(e) {\n\t\t\t\tif (e.namespace) {\n\t\t\t\t\tthis.stop();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'mouseover.owl.autoplay': $.proxy(function() {\n\t\t\t\tif (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {\n\t\t\t\t\tthis.pause();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'mouseleave.owl.autoplay': $.proxy(function() {\n\t\t\t\tif (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {\n\t\t\t\t\tthis.play();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'touchstart.owl.core': $.proxy(function() {\n\t\t\t\tif (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {\n\t\t\t\t\tthis.pause();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'touchend.owl.core': $.proxy(function() {\n\t\t\t\tif (this._core.settings.autoplayHoverPause) {\n\t\t\t\t\tthis.play();\n\t\t\t\t}\n\t\t\t}, this)\n\t\t};\n\n\t\t// register event handlers\n\t\tthis._core.$element.on(this._handlers);\n\n\t\t// set default options\n\t\tthis._core.options = $.extend({}, Autoplay.Defaults, this._core.options);\n\t};\n\n\t/**\n\t * Default options.\n\t * @public\n\t */\n\tAutoplay.Defaults = {\n\t\tautoplay: false,\n\t\tautoplayTimeout: 5000,\n\t\tautoplayHoverPause: false,\n\t\tautoplaySpeed: false\n\t};\n\n\t/**\n\t * Transition to the next slide and set a timeout for the next transition.\n\t * @private\n\t * @param {Number} [speed] - The animation speed for the animations.\n\t */\n\tAutoplay.prototype._next = function(speed) {\n\t\tthis._call = window.setTimeout(\n\t\t\t$.proxy(this._next, this, speed),\n\t\t\tthis._timeout * (Math.round(this.read() / this._timeout) + 1) - this.read()\n\t\t);\n\n\t\tif (this._core.is('interacting') || document.hidden) {\n\t\t\treturn;\n\t\t}\n\t\tthis._core.next(speed || this._core.settings.autoplaySpeed);\n\t}\n\n\t/**\n\t * Reads the current timer value when the timer is playing.\n\t * @public\n\t */\n\tAutoplay.prototype.read = function() {\n\t\treturn new Date().getTime() - this._time;\n\t};\n\n\t/**\n\t * Starts the autoplay.\n\t * @public\n\t * @param {Number} [timeout] - The interval before the next animation starts.\n\t * @param {Number} [speed] - The animation speed for the animations.\n\t */\n\tAutoplay.prototype.play = function(timeout, speed) {\n\t\tvar elapsed;\n\n\t\tif (!this._core.is('rotating')) {\n\t\t\tthis._core.enter('rotating');\n\t\t}\n\n\t\ttimeout = timeout || this._core.settings.autoplayTimeout;\n\n\t\t// Calculate the elapsed time since the last transition. If the carousel\n\t\t// wasn't playing this calculation will yield zero.\n\t\telapsed = Math.min(this._time % (this._timeout || timeout), timeout);\n\n\t\tif (this._paused) {\n\t\t\t// Start the clock.\n\t\t\tthis._time = this.read();\n\t\t\tthis._paused = false;\n\t\t} else {\n\t\t\t// Clear the active timeout to allow replacement.\n\t\t\twindow.clearTimeout(this._call);\n\t\t}\n\n\t\t// Adjust the origin of the timer to match the new timeout value.\n\t\tthis._time += this.read() % timeout - elapsed;\n\n\t\tthis._timeout = timeout;\n\t\tthis._call = window.setTimeout($.proxy(this._next, this, speed), timeout - elapsed);\n\t};\n\n\t/**\n\t * Stops the autoplay.\n\t * @public\n\t */\n\tAutoplay.prototype.stop = function() {\n\t\tif (this._core.is('rotating')) {\n\t\t\t// Reset the clock.\n\t\t\tthis._time = 0;\n\t\t\tthis._paused = true;\n\n\t\t\twindow.clearTimeout(this._call);\n\t\t\tthis._core.leave('rotating');\n\t\t}\n\t};\n\n\t/**\n\t * Pauses the autoplay.\n\t * @public\n\t */\n\tAutoplay.prototype.pause = function() {\n\t\tif (this._core.is('rotating') && !this._paused) {\n\t\t\t// Pause the clock.\n\t\t\tthis._time = this.read();\n\t\t\tthis._paused = true;\n\n\t\t\twindow.clearTimeout(this._call);\n\t\t}\n\t};\n\n\t/**\n\t * Destroys the plugin.\n\t */\n\tAutoplay.prototype.destroy = function() {\n\t\tvar handler, property;\n\n\t\tthis.stop();\n\n\t\tfor (handler in this._handlers) {\n\t\t\tthis._core.$element.off(handler, this._handlers[handler]);\n\t\t}\n\t\tfor (property in Object.getOwnPropertyNames(this)) {\n\t\t\ttypeof this[property] != 'function' && (this[property] = null);\n\t\t}\n\t};\n\n\t$.fn.owlCarousel.Constructor.Plugins.autoplay = Autoplay;\n\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Navigation Plugin\n * @version 2.3.4\n * @author Artus Kolanowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n;(function($, window, document, undefined) {\n\t'use strict';\n\n\t/**\n\t * Creates the navigation plugin.\n\t * @class The Navigation Plugin\n\t * @param {Owl} carousel - The Owl Carousel.\n\t */\n\tvar Navigation = function(carousel) {\n\t\t/**\n\t\t * Reference to the core.\n\t\t * @protected\n\t\t * @type {Owl}\n\t\t */\n\t\tthis._core = carousel;\n\n\t\t/**\n\t\t * Indicates whether the plugin is initialized or not.\n\t\t * @protected\n\t\t * @type {Boolean}\n\t\t */\n\t\tthis._initialized = false;\n\n\t\t/**\n\t\t * The current paging indexes.\n\t\t * @protected\n\t\t * @type {Array}\n\t\t */\n\t\tthis._pages = [];\n\n\t\t/**\n\t\t * All DOM elements of the user interface.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._controls = {};\n\n\t\t/**\n\t\t * Markup for an indicator.\n\t\t * @protected\n\t\t * @type {Array.<String>}\n\t\t */\n\t\tthis._templates = [];\n\n\t\t/**\n\t\t * The carousel element.\n\t\t * @type {jQuery}\n\t\t */\n\t\tthis.$element = this._core.$element;\n\n\t\t/**\n\t\t * Overridden methods of the carousel.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._overrides = {\n\t\t\tnext: this._core.next,\n\t\t\tprev: this._core.prev,\n\t\t\tto: this._core.to\n\t\t};\n\n\t\t/**\n\t\t * All event handlers.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._handlers = {\n\t\t\t'prepared.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.dotsData) {\n\t\t\t\t\tthis._templates.push('<div class=\"' + this._core.settings.dotClass + '\">' +\n\t\t\t\t\t\t$(e.content).find('[data-dot]').addBack('[data-dot]').attr('data-dot') + '</div>');\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'added.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.dotsData) {\n\t\t\t\t\tthis._templates.splice(e.position, 0, this._templates.pop());\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'remove.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.dotsData) {\n\t\t\t\t\tthis._templates.splice(e.position, 1);\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'changed.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && e.property.name == 'position') {\n\t\t\t\t\tthis.draw();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'initialized.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && !this._initialized) {\n\t\t\t\t\tthis._core.trigger('initialize', null, 'navigation');\n\t\t\t\t\tthis.initialize();\n\t\t\t\t\tthis.update();\n\t\t\t\t\tthis.draw();\n\t\t\t\t\tthis._initialized = true;\n\t\t\t\t\tthis._core.trigger('initialized', null, 'navigation');\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'refreshed.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._initialized) {\n\t\t\t\t\tthis._core.trigger('refresh', null, 'navigation');\n\t\t\t\t\tthis.update();\n\t\t\t\t\tthis.draw();\n\t\t\t\t\tthis._core.trigger('refreshed', null, 'navigation');\n\t\t\t\t}\n\t\t\t}, this)\n\t\t};\n\n\t\t// set default options\n\t\tthis._core.options = $.extend({}, Navigation.Defaults, this._core.options);\n\n\t\t// register event handlers\n\t\tthis.$element.on(this._handlers);\n\t};\n\n\t/**\n\t * Default options.\n\t * @public\n\t * @todo Rename `slideBy` to `navBy`\n\t */\n\tNavigation.Defaults = {\n\t\tnav: false,\n\t\tnavText: [\n\t\t\t'<span aria-label=\"' + 'Previous' + '\">&#x2039;</span>',\n\t\t\t'<span aria-label=\"' + 'Next' + '\">&#x203a;</span>'\n\t\t],\n\t\tnavSpeed: false,\n\t\tnavElement: 'button type=\"button\" role=\"presentation\"',\n\t\tnavContainer: false,\n\t\tnavContainerClass: 'owl-nav',\n\t\tnavClass: [\n\t\t\t'owl-prev',\n\t\t\t'owl-next'\n\t\t],\n\t\tslideBy: 1,\n\t\tdotClass: 'owl-dot',\n\t\tdotsClass: 'owl-dots',\n\t\tdots: true,\n\t\tdotsEach: false,\n\t\tdotsData: false,\n\t\tdotsSpeed: false,\n\t\tdotsContainer: false\n\t};\n\n\t/**\n\t * Initializes the layout of the plugin and extends the carousel.\n\t * @protected\n\t */\n\tNavigation.prototype.initialize = function() {\n\t\tvar override,\n\t\t\tsettings = this._core.settings;\n\n\t\t// create DOM structure for relative navigation\n\t\tthis._controls.$relative = (settings.navContainer ? $(settings.navContainer)\n\t\t\t: $('<div>').addClass(settings.navContainerClass).appendTo(this.$element)).addClass('disabled');\n\n\t\tthis._controls.$previous = $('<' + settings.navElement + '>')\n\t\t\t.addClass(settings.navClass[0])\n\t\t\t.html(settings.navText[0])\n\t\t\t.prependTo(this._controls.$relative)\n\t\t\t.on('click', $.proxy(function(e) {\n\t\t\t\tthis.prev(settings.navSpeed);\n\t\t\t}, this));\n\t\tthis._controls.$next = $('<' + settings.navElement + '>')\n\t\t\t.addClass(settings.navClass[1])\n\t\t\t.html(settings.navText[1])\n\t\t\t.appendTo(this._controls.$relative)\n\t\t\t.on('click', $.proxy(function(e) {\n\t\t\t\tthis.next(settings.navSpeed);\n\t\t\t}, this));\n\n\t\t// create DOM structure for absolute navigation\n\t\tif (!settings.dotsData) {\n\t\t\tthis._templates = [ $('<button role=\"button\">')\n\t\t\t\t.addClass(settings.dotClass)\n\t\t\t\t.append($('<span>'))\n\t\t\t\t.prop('outerHTML') ];\n\t\t}\n\n\t\tthis._controls.$absolute = (settings.dotsContainer ? $(settings.dotsContainer)\n\t\t\t: $('<div>').addClass(settings.dotsClass).appendTo(this.$element)).addClass('disabled');\n\n\t\tthis._controls.$absolute.on('click', 'button', $.proxy(function(e) {\n\t\t\tvar index = $(e.target).parent().is(this._controls.$absolute)\n\t\t\t\t? $(e.target).index() : $(e.target).parent().index();\n\n\t\t\te.preventDefault();\n\n\t\t\tthis.to(index, settings.dotsSpeed);\n\t\t}, this));\n\n\t\t/*$el.on('focusin', function() {\n\t\t\t$(document).off(\".carousel\");\n\n\t\t\t$(document).on('keydown.carousel', function(e) {\n\t\t\t\tif(e.keyCode == 37) {\n\t\t\t\t\t$el.trigger('prev.owl')\n\t\t\t\t}\n\t\t\t\tif(e.keyCode == 39) {\n\t\t\t\t\t$el.trigger('next.owl')\n\t\t\t\t}\n\t\t\t});\n\t\t});*/\n\n\t\t// override public methods of the carousel\n\t\tfor (override in this._overrides) {\n\t\t\tthis._core[override] = $.proxy(this[override], this);\n\t\t}\n\t};\n\n\t/**\n\t * Destroys the plugin.\n\t * @protected\n\t */\n\tNavigation.prototype.destroy = function() {\n\t\tvar handler, control, property, override, settings;\n\t\tsettings = this._core.settings;\n\n\t\tfor (handler in this._handlers) {\n\t\t\tthis.$element.off(handler, this._handlers[handler]);\n\t\t}\n\t\tfor (control in this._controls) {\n\t\t\tif (control === '$relative' && settings.navContainer) {\n\t\t\t\tthis._controls[control].html('');\n\t\t\t} else {\n\t\t\t\tthis._controls[control].remove();\n\t\t\t}\n\t\t}\n\t\tfor (override in this.overides) {\n\t\t\tthis._core[override] = this._overrides[override];\n\t\t}\n\t\tfor (property in Object.getOwnPropertyNames(this)) {\n\t\t\ttypeof this[property] != 'function' && (this[property] = null);\n\t\t}\n\t};\n\n\t/**\n\t * Updates the internal state.\n\t * @protected\n\t */\n\tNavigation.prototype.update = function() {\n\t\tvar i, j, k,\n\t\t\tlower = this._core.clones().length / 2,\n\t\t\tupper = lower + this._core.items().length,\n\t\t\tmaximum = this._core.maximum(true),\n\t\t\tsettings = this._core.settings,\n\t\t\tsize = settings.center || settings.autoWidth || settings.dotsData\n\t\t\t\t? 1 : settings.dotsEach || settings.items;\n\n\t\tif (settings.slideBy !== 'page') {\n\t\t\tsettings.slideBy = Math.min(settings.slideBy, settings.items);\n\t\t}\n\n\t\tif (settings.dots || settings.slideBy == 'page') {\n\t\t\tthis._pages = [];\n\n\t\t\tfor (i = lower, j = 0, k = 0; i < upper; i++) {\n\t\t\t\tif (j >= size || j === 0) {\n\t\t\t\t\tthis._pages.push({\n\t\t\t\t\t\tstart: Math.min(maximum, i - lower),\n\t\t\t\t\t\tend: i - lower + size - 1\n\t\t\t\t\t});\n\t\t\t\t\tif (Math.min(maximum, i - lower) === maximum) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tj = 0, ++k;\n\t\t\t\t}\n\t\t\t\tj += this._core.mergers(this._core.relative(i));\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * Draws the user interface.\n\t * @todo The option `dotsData` wont work.\n\t * @protected\n\t */\n\tNavigation.prototype.draw = function() {\n\t\tvar difference,\n\t\t\tsettings = this._core.settings,\n\t\t\tdisabled = this._core.items().length <= settings.items,\n\t\t\tindex = this._core.relative(this._core.current()),\n\t\t\tloop = settings.loop || settings.rewind;\n\n\t\tthis._controls.$relative.toggleClass('disabled', !settings.nav || disabled);\n\n\t\tif (settings.nav) {\n\t\t\tthis._controls.$previous.toggleClass('disabled', !loop && index <= this._core.minimum(true));\n\t\t\tthis._controls.$next.toggleClass('disabled', !loop && index >= this._core.maximum(true));\n\t\t}\n\n\t\tthis._controls.$absolute.toggleClass('disabled', !settings.dots || disabled);\n\n\t\tif (settings.dots) {\n\t\t\tdifference = this._pages.length - this._controls.$absolute.children().length;\n\n\t\t\tif (settings.dotsData && difference !== 0) {\n\t\t\t\tthis._controls.$absolute.html(this._templates.join(''));\n\t\t\t} else if (difference > 0) {\n\t\t\t\tthis._controls.$absolute.append(new Array(difference + 1).join(this._templates[0]));\n\t\t\t} else if (difference < 0) {\n\t\t\t\tthis._controls.$absolute.children().slice(difference).remove();\n\t\t\t}\n\n\t\t\tthis._controls.$absolute.find('.active').removeClass('active');\n\t\t\tthis._controls.$absolute.children().eq($.inArray(this.current(), this._pages)).addClass('active');\n\t\t}\n\t};\n\n\t/**\n\t * Extends event data.\n\t * @protected\n\t * @param {Event} event - The event object which gets thrown.\n\t */\n\tNavigation.prototype.onTrigger = function(event) {\n\t\tvar settings = this._core.settings;\n\n\t\tevent.page = {\n\t\t\tindex: $.inArray(this.current(), this._pages),\n\t\t\tcount: this._pages.length,\n\t\t\tsize: settings && (settings.center || settings.autoWidth || settings.dotsData\n\t\t\t\t? 1 : settings.dotsEach || settings.items)\n\t\t};\n\t};\n\n\t/**\n\t * Gets the current page position of the carousel.\n\t * @protected\n\t * @returns {Number}\n\t */\n\tNavigation.prototype.current = function() {\n\t\tvar current = this._core.relative(this._core.current());\n\t\treturn $.grep(this._pages, $.proxy(function(page, index) {\n\t\t\treturn page.start <= current && page.end >= current;\n\t\t}, this)).pop();\n\t};\n\n\t/**\n\t * Gets the current succesor/predecessor position.\n\t * @protected\n\t * @returns {Number}\n\t */\n\tNavigation.prototype.getPosition = function(successor) {\n\t\tvar position, length,\n\t\t\tsettings = this._core.settings;\n\n\t\tif (settings.slideBy == 'page') {\n\t\t\tposition = $.inArray(this.current(), this._pages);\n\t\t\tlength = this._pages.length;\n\t\t\tsuccessor ? ++position : --position;\n\t\t\tposition = this._pages[((position % length) + length) % length].start;\n\t\t} else {\n\t\t\tposition = this._core.relative(this._core.current());\n\t\t\tlength = this._core.items().length;\n\t\t\tsuccessor ? position += settings.slideBy : position -= settings.slideBy;\n\t\t}\n\n\t\treturn position;\n\t};\n\n\t/**\n\t * Slides to the next item or page.\n\t * @public\n\t * @param {Number} [speed=false] - The time in milliseconds for the transition.\n\t */\n\tNavigation.prototype.next = function(speed) {\n\t\t$.proxy(this._overrides.to, this._core)(this.getPosition(true), speed);\n\t};\n\n\t/**\n\t * Slides to the previous item or page.\n\t * @public\n\t * @param {Number} [speed=false] - The time in milliseconds for the transition.\n\t */\n\tNavigation.prototype.prev = function(speed) {\n\t\t$.proxy(this._overrides.to, this._core)(this.getPosition(false), speed);\n\t};\n\n\t/**\n\t * Slides to the specified item or page.\n\t * @public\n\t * @param {Number} position - The position of the item or page.\n\t * @param {Number} [speed] - The time in milliseconds for the transition.\n\t * @param {Boolean} [standard=false] - Whether to use the standard behaviour or not.\n\t */\n\tNavigation.prototype.to = function(position, speed, standard) {\n\t\tvar length;\n\n\t\tif (!standard && this._pages.length) {\n\t\t\tlength = this._pages.length;\n\t\t\t$.proxy(this._overrides.to, this._core)(this._pages[((position % length) + length) % length].start, speed);\n\t\t} else {\n\t\t\t$.proxy(this._overrides.to, this._core)(position, speed);\n\t\t}\n\t};\n\n\t$.fn.owlCarousel.Constructor.Plugins.Navigation = Navigation;\n\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Hash Plugin\n * @version 2.3.4\n * @author Artus Kolanowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n;(function($, window, document, undefined) {\n\t'use strict';\n\n\t/**\n\t * Creates the hash plugin.\n\t * @class The Hash Plugin\n\t * @param {Owl} carousel - The Owl Carousel\n\t */\n\tvar Hash = function(carousel) {\n\t\t/**\n\t\t * Reference to the core.\n\t\t * @protected\n\t\t * @type {Owl}\n\t\t */\n\t\tthis._core = carousel;\n\n\t\t/**\n\t\t * Hash index for the items.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._hashes = {};\n\n\t\t/**\n\t\t * The carousel element.\n\t\t * @type {jQuery}\n\t\t */\n\t\tthis.$element = this._core.$element;\n\n\t\t/**\n\t\t * All event handlers.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._handlers = {\n\t\t\t'initialized.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.startPosition === 'URLHash') {\n\t\t\t\t\t$(window).trigger('hashchange.owl.navigation');\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'prepared.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace) {\n\t\t\t\t\tvar hash = $(e.content).find('[data-hash]').addBack('[data-hash]').attr('data-hash');\n\n\t\t\t\t\tif (!hash) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._hashes[hash] = e.content;\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'changed.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && e.property.name === 'position') {\n\t\t\t\t\tvar current = this._core.items(this._core.relative(this._core.current())),\n\t\t\t\t\t\thash = $.map(this._hashes, function(item, hash) {\n\t\t\t\t\t\t\treturn item === current ? hash : null;\n\t\t\t\t\t\t}).join();\n\n\t\t\t\t\tif (!hash || window.location.hash.slice(1) === hash) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\twindow.location.hash = hash;\n\t\t\t\t}\n\t\t\t}, this)\n\t\t};\n\n\t\t// set default options\n\t\tthis._core.options = $.extend({}, Hash.Defaults, this._core.options);\n\n\t\t// register the event handlers\n\t\tthis.$element.on(this._handlers);\n\n\t\t// register event listener for hash navigation\n\t\t$(window).on('hashchange.owl.navigation', $.proxy(function(e) {\n\t\t\tvar hash = window.location.hash.substring(1),\n\t\t\t\titems = this._core.$stage.children(),\n\t\t\t\tposition = this._hashes[hash] && items.index(this._hashes[hash]);\n\n\t\t\tif (position === undefined || position === this._core.current()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._core.to(this._core.relative(position), false, true);\n\t\t}, this));\n\t};\n\n\t/**\n\t * Default options.\n\t * @public\n\t */\n\tHash.Defaults = {\n\t\tURLhashListener: false\n\t};\n\n\t/**\n\t * Destroys the plugin.\n\t * @public\n\t */\n\tHash.prototype.destroy = function() {\n\t\tvar handler, property;\n\n\t\t$(window).off('hashchange.owl.navigation');\n\n\t\tfor (handler in this._handlers) {\n\t\t\tthis._core.$element.off(handler, this._handlers[handler]);\n\t\t}\n\t\tfor (property in Object.getOwnPropertyNames(this)) {\n\t\t\ttypeof this[property] != 'function' && (this[property] = null);\n\t\t}\n\t};\n\n\t$.fn.owlCarousel.Constructor.Plugins.Hash = Hash;\n\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Support Plugin\n *\n * @version 2.3.4\n * @author Vivid Planet Software GmbH\n * @author Artus Kolanowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n;(function($, window, document, undefined) {\n\n\tvar style = $('<support>').get(0).style,\n\t\tprefixes = 'Webkit Moz O ms'.split(' '),\n\t\tevents = {\n\t\t\ttransition: {\n\t\t\t\tend: {\n\t\t\t\t\tWebkitTransition: 'webkitTransitionEnd',\n\t\t\t\t\tMozTransition: 'transitionend',\n\t\t\t\t\tOTransition: 'oTransitionEnd',\n\t\t\t\t\ttransition: 'transitionend'\n\t\t\t\t}\n\t\t\t},\n\t\t\tanimation: {\n\t\t\t\tend: {\n\t\t\t\t\tWebkitAnimation: 'webkitAnimationEnd',\n\t\t\t\t\tMozAnimation: 'animationend',\n\t\t\t\t\tOAnimation: 'oAnimationEnd',\n\t\t\t\t\tanimation: 'animationend'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\ttests = {\n\t\t\tcsstransforms: function() {\n\t\t\t\treturn !!test('transform');\n\t\t\t},\n\t\t\tcsstransforms3d: function() {\n\t\t\t\treturn !!test('perspective');\n\t\t\t},\n\t\t\tcsstransitions: function() {\n\t\t\t\treturn !!test('transition');\n\t\t\t},\n\t\t\tcssanimations: function() {\n\t\t\t\treturn !!test('animation');\n\t\t\t}\n\t\t};\n\n\tfunction test(property, prefixed) {\n\t\tvar result = false,\n\t\t\tupper = property.charAt(0).toUpperCase() + property.slice(1);\n\n\t\t$.each((property + ' ' + prefixes.join(upper + ' ') + upper).split(' '), function(i, property) {\n\t\t\tif (style[property] !== undefined) {\n\t\t\t\tresult = prefixed ? property : true;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tfunction prefixed(property) {\n\t\treturn test(property, true);\n\t}\n\n\tif (tests.csstransitions()) {\n\t\t/* jshint -W053 */\n\t\t$.support.transition = new String(prefixed('transition'))\n\t\t$.support.transition.end = events.transition.end[ $.support.transition ];\n\t}\n\n\tif (tests.cssanimations()) {\n\t\t/* jshint -W053 */\n\t\t$.support.animation = new String(prefixed('animation'))\n\t\t$.support.animation.end = events.animation.end[ $.support.animation ];\n\t}\n\n\tif (tests.csstransforms()) {\n\t\t/* jshint -W053 */\n\t\t$.support.transform = new String(prefixed('transform'));\n\t\t$.support.transform3d = tests.csstransforms3d();\n\t}\n\n})(window.Zepto || window.jQuery, window, document);\n","/**\n * Owl carousel\n * @version 2.3.4\n * @author Bartosz Wojciechowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n * @todo Lazy Load Icon\n * @todo prevent animationend bubling\n * @todo itemsScaleUp\n * @todo Test Zepto\n * @todo stagePadding calculate wrong active classes\n */\n;(function($, window, document, undefined) {\n\n\t/**\n\t * Creates a carousel.\n\t * @class The Owl Carousel.\n\t * @public\n\t * @param {HTMLElement|jQuery} element - The element to create the carousel for.\n\t * @param {Object} [options] - The options\n\t */\n\tfunction Owl(element, options) {\n\n\t\t/**\n\t\t * Current settings for the carousel.\n\t\t * @public\n\t\t */\n\t\tthis.settings = null;\n\n\t\t/**\n\t\t * Current options set by the caller including defaults.\n\t\t * @public\n\t\t */\n\t\tthis.options = $.extend({}, Owl.Defaults, options);\n\n\t\t/**\n\t\t * Plugin element.\n\t\t * @public\n\t\t */\n\t\tthis.$element = $(element);\n\n\t\t/**\n\t\t * Proxied event handlers.\n\t\t * @protected\n\t\t */\n\t\tthis._handlers = {};\n\n\t\t/**\n\t\t * References to the running plugins of this carousel.\n\t\t * @protected\n\t\t */\n\t\tthis._plugins = {};\n\n\t\t/**\n\t\t * Currently suppressed events to prevent them from being retriggered.\n\t\t * @protected\n\t\t */\n\t\tthis._supress = {};\n\n\t\t/**\n\t\t * Absolute current position.\n\t\t * @protected\n\t\t */\n\t\tthis._current = null;\n\n\t\t/**\n\t\t * Animation speed in milliseconds.\n\t\t * @protected\n\t\t */\n\t\tthis._speed = null;\n\n\t\t/**\n\t\t * Coordinates of all items in pixel.\n\t\t * @todo The name of this member is missleading.\n\t\t * @protected\n\t\t */\n\t\tthis._coordinates = [];\n\n\t\t/**\n\t\t * Current breakpoint.\n\t\t * @todo Real media queries would be nice.\n\t\t * @protected\n\t\t */\n\t\tthis._breakpoint = null;\n\n\t\t/**\n\t\t * Current width of the plugin element.\n\t\t */\n\t\tthis._width = null;\n\n\t\t/**\n\t\t * All real items.\n\t\t * @protected\n\t\t */\n\t\tthis._items = [];\n\n\t\t/**\n\t\t * All cloned items.\n\t\t * @protected\n\t\t */\n\t\tthis._clones = [];\n\n\t\t/**\n\t\t * Merge values of all items.\n\t\t * @todo Maybe this could be part of a plugin.\n\t\t * @protected\n\t\t */\n\t\tthis._mergers = [];\n\n\t\t/**\n\t\t * Widths of all items.\n\t\t */\n\t\tthis._widths = [];\n\n\t\t/**\n\t\t * Invalidated parts within the update process.\n\t\t * @protected\n\t\t */\n\t\tthis._invalidated = {};\n\n\t\t/**\n\t\t * Ordered list of workers for the update process.\n\t\t * @protected\n\t\t */\n\t\tthis._pipe = [];\n\n\t\t/**\n\t\t * Current state information for the drag operation.\n\t\t * @todo #261\n\t\t * @protected\n\t\t */\n\t\tthis._drag = {\n\t\t\ttime: null,\n\t\t\ttarget: null,\n\t\t\tpointer: null,\n\t\t\tstage: {\n\t\t\t\tstart: null,\n\t\t\t\tcurrent: null\n\t\t\t},\n\t\t\tdirection: null\n\t\t};\n\n\t\t/**\n\t\t * Current state information and their tags.\n\t\t * @type {Object}\n\t\t * @protected\n\t\t */\n\t\tthis._states = {\n\t\t\tcurrent: {},\n\t\t\ttags: {\n\t\t\t\t'initializing': [ 'busy' ],\n\t\t\t\t'animating': [ 'busy' ],\n\t\t\t\t'dragging': [ 'interacting' ]\n\t\t\t}\n\t\t};\n\n\t\t$.each([ 'onResize', 'onThrottledResize' ], $.proxy(function(i, handler) {\n\t\t\tthis._handlers[handler] = $.proxy(this[handler], this);\n\t\t}, this));\n\n\t\t$.each(Owl.Plugins, $.proxy(function(key, plugin) {\n\t\t\tthis._plugins[key.charAt(0).toLowerCase() + key.slice(1)]\n\t\t\t\t= new plugin(this);\n\t\t}, this));\n\n\t\t$.each(Owl.Workers, $.proxy(function(priority, worker) {\n\t\t\tthis._pipe.push({\n\t\t\t\t'filter': worker.filter,\n\t\t\t\t'run': $.proxy(worker.run, this)\n\t\t\t});\n\t\t}, this));\n\n\t\tthis.setup();\n\t\tthis.initialize();\n\t}\n\n\t/**\n\t * Default options for the carousel.\n\t * @public\n\t */\n\tOwl.Defaults = {\n\t\titems: 3,\n\t\tloop: false,\n\t\tcenter: false,\n\t\trewind: false,\n\t\tcheckVisibility: true,\n\n\t\tmouseDrag: true,\n\t\ttouchDrag: true,\n\t\tpullDrag: true,\n\t\tfreeDrag: false,\n\n\t\tmargin: 0,\n\t\tstagePadding: 0,\n\n\t\tmerge: false,\n\t\tmergeFit: true,\n\t\tautoWidth: false,\n\n\t\tstartPosition: 0,\n\t\trtl: false,\n\n\t\tsmartSpeed: 250,\n\t\tfluidSpeed: false,\n\t\tdragEndSpeed: false,\n\n\t\tresponsive: {},\n\t\tresponsiveRefreshRate: 200,\n\t\tresponsiveBaseElement: window,\n\n\t\tfallbackEasing: 'swing',\n\t\tslideTransition: '',\n\n\t\tinfo: false,\n\n\t\tnestedItemSelector: false,\n\t\titemElement: 'div',\n\t\tstageElement: 'div',\n\n\t\trefreshClass: 'owl-refresh',\n\t\tloadedClass: 'owl-loaded',\n\t\tloadingClass: 'owl-loading',\n\t\trtlClass: 'owl-rtl',\n\t\tresponsiveClass: 'owl-responsive',\n\t\tdragClass: 'owl-drag',\n\t\titemClass: 'owl-item',\n\t\tstageClass: 'owl-stage',\n\t\tstageOuterClass: 'owl-stage-outer',\n\t\tgrabClass: 'owl-grab'\n\t};\n\n\t/**\n\t * Enumeration for width.\n\t * @public\n\t * @readonly\n\t * @enum {String}\n\t */\n\tOwl.Width = {\n\t\tDefault: 'default',\n\t\tInner: 'inner',\n\t\tOuter: 'outer'\n\t};\n\n\t/**\n\t * Enumeration for types.\n\t * @public\n\t * @readonly\n\t * @enum {String}\n\t */\n\tOwl.Type = {\n\t\tEvent: 'event',\n\t\tState: 'state'\n\t};\n\n\t/**\n\t * Contains all registered plugins.\n\t * @public\n\t */\n\tOwl.Plugins = {};\n\n\t/**\n\t * List of workers involved in the update process.\n\t */\n\tOwl.Workers = [ {\n\t\tfilter: [ 'width', 'settings' ],\n\t\trun: function() {\n\t\t\tthis._width = this.$element.width();\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function(cache) {\n\t\t\tcache.current = this._items && this._items[this.relative(this._current)];\n\t\t}\n\t}, {\n\t\tfilter: [ 'items', 'settings' ],\n\t\trun: function() {\n\t\t\tthis.$stage.children('.cloned').remove();\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function(cache) {\n\t\t\tvar margin = this.settings.margin || '',\n\t\t\t\tgrid = !this.settings.autoWidth,\n\t\t\t\trtl = this.settings.rtl,\n\t\t\t\tcss = {\n\t\t\t\t\t'width': 'auto',\n\t\t\t\t\t'margin-left': rtl ? margin : '',\n\t\t\t\t\t'margin-right': rtl ? '' : margin\n\t\t\t\t};\n\n\t\t\t!grid && this.$stage.children().css(css);\n\n\t\t\tcache.css = css;\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function(cache) {\n\t\t\tvar width = (this.width() / this.settings.items).toFixed(3) - this.settings.margin,\n\t\t\t\tmerge = null,\n\t\t\t\titerator = this._items.length,\n\t\t\t\tgrid = !this.settings.autoWidth,\n\t\t\t\twidths = [];\n\n\t\t\tcache.items = {\n\t\t\t\tmerge: false,\n\t\t\t\twidth: width\n\t\t\t};\n\n\t\t\twhile (iterator--) {\n\t\t\t\tmerge = this._mergers[iterator];\n\t\t\t\tmerge = this.settings.mergeFit && Math.min(merge, this.settings.items) || merge;\n\n\t\t\t\tcache.items.merge = merge > 1 || cache.items.merge;\n\n\t\t\t\twidths[iterator] = !grid ? this._items[iterator].width() : width * merge;\n\t\t\t}\n\n\t\t\tthis._widths = widths;\n\t\t}\n\t}, {\n\t\tfilter: [ 'items', 'settings' ],\n\t\trun: function() {\n\t\t\tvar clones = [],\n\t\t\t\titems = this._items,\n\t\t\t\tsettings = this.settings,\n\t\t\t\t// TODO: Should be computed from number of min width items in stage\n\t\t\t\tview = Math.max(settings.items * 2, 4),\n\t\t\t\tsize = Math.ceil(items.length / 2) * 2,\n\t\t\t\trepeat = settings.loop && items.length ? settings.rewind ? view : Math.max(view, size) : 0,\n\t\t\t\tappend = '',\n\t\t\t\tprepend = '';\n\n\t\t\trepeat /= 2;\n\n\t\t\twhile (repeat > 0) {\n\t\t\t\t// Switch to only using appended clones\n\t\t\t\tclones.push(this.normalize(clones.length / 2, true));\n\t\t\t\tappend = append + items[clones[clones.length - 1]][0].outerHTML;\n\t\t\t\tclones.push(this.normalize(items.length - 1 - (clones.length - 1) / 2, true));\n\t\t\t\tprepend = items[clones[clones.length - 1]][0].outerHTML + prepend;\n\t\t\t\trepeat -= 1;\n\t\t\t}\n\n\t\t\tthis._clones = clones;\n\n\t\t\t$(append).addClass('cloned').appendTo(this.$stage);\n\t\t\t$(prepend).addClass('cloned').prependTo(this.$stage);\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function() {\n\t\t\tvar rtl = this.settings.rtl ? 1 : -1,\n\t\t\t\tsize = this._clones.length + this._items.length,\n\t\t\t\titerator = -1,\n\t\t\t\tprevious = 0,\n\t\t\t\tcurrent = 0,\n\t\t\t\tcoordinates = [];\n\n\t\t\twhile (++iterator < size) {\n\t\t\t\tprevious = coordinates[iterator - 1] || 0;\n\t\t\t\tcurrent = this._widths[this.relative(iterator)] + this.settings.margin;\n\t\t\t\tcoordinates.push(previous + current * rtl);\n\t\t\t}\n\n\t\t\tthis._coordinates = coordinates;\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function() {\n\t\t\tvar padding = this.settings.stagePadding,\n\t\t\t\tcoordinates = this._coordinates,\n\t\t\t\tcss = {\n\t\t\t\t\t'width': Math.ceil(Math.abs(coordinates[coordinates.length - 1])) + padding * 2,\n\t\t\t\t\t'padding-left': padding || '',\n\t\t\t\t\t'padding-right': padding || ''\n\t\t\t\t};\n\n\t\t\tthis.$stage.css(css);\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function(cache) {\n\t\t\tvar iterator = this._coordinates.length,\n\t\t\t\tgrid = !this.settings.autoWidth,\n\t\t\t\titems = this.$stage.children();\n\n\t\t\tif (grid && cache.items.merge) {\n\t\t\t\twhile (iterator--) {\n\t\t\t\t\tcache.css.width = this._widths[this.relative(iterator)];\n\t\t\t\t\titems.eq(iterator).css(cache.css);\n\t\t\t\t}\n\t\t\t} else if (grid) {\n\t\t\t\tcache.css.width = cache.items.width;\n\t\t\t\titems.css(cache.css);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tfilter: [ 'items' ],\n\t\trun: function() {\n\t\t\tthis._coordinates.length < 1 && this.$stage.removeAttr('style');\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function(cache) {\n\t\t\tcache.current = cache.current ? this.$stage.children().index(cache.current) : 0;\n\t\t\tcache.current = Math.max(this.minimum(), Math.min(this.maximum(), cache.current));\n\t\t\tthis.reset(cache.current);\n\t\t}\n\t}, {\n\t\tfilter: [ 'position' ],\n\t\trun: function() {\n\t\t\tthis.animate(this.coordinates(this._current));\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'position', 'items', 'settings' ],\n\t\trun: function() {\n\t\t\tvar rtl = this.settings.rtl ? 1 : -1,\n\t\t\t\tpadding = this.settings.stagePadding * 2,\n\t\t\t\tbegin = this.coordinates(this.current()) + padding,\n\t\t\t\tend = begin + this.width() * rtl,\n\t\t\t\tinner, outer, matches = [], i, n;\n\n\t\t\tfor (i = 0, n = this._coordinates.length; i < n; i++) {\n\t\t\t\tinner = this._coordinates[i - 1] || 0;\n\t\t\t\touter = Math.abs(this._coordinates[i]) + padding * rtl;\n\n\t\t\t\tif ((this.op(inner, '<=', begin) && (this.op(inner, '>', end)))\n\t\t\t\t\t|| (this.op(outer, '<', begin) && this.op(outer, '>', end))) {\n\t\t\t\t\tmatches.push(i);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.$stage.children('.active').removeClass('active');\n\t\t\tthis.$stage.children(':eq(' + matches.join('), :eq(') + ')').addClass('active');\n\n\t\t\tthis.$stage.children('.center').removeClass('center');\n\t\t\tif (this.settings.center) {\n\t\t\t\tthis.$stage.children().eq(this.current()).addClass('center');\n\t\t\t}\n\t\t}\n\t} ];\n\n\t/**\n\t * Create the stage DOM element\n\t */\n\tOwl.prototype.initializeStage = function() {\n\t\tthis.$stage = this.$element.find('.' + this.settings.stageClass);\n\n\t\t// if the stage is already in the DOM, grab it and skip stage initialization\n\t\tif (this.$stage.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.$element.addClass(this.options.loadingClass);\n\n\t\t// create stage\n\t\tthis.$stage = $('<' + this.settings.stageElement + '>', {\n\t\t\t\"class\": this.settings.stageClass\n\t\t}).wrap( $( '<div/>', {\n\t\t\t\"class\": this.settings.stageOuterClass\n\t\t}));\n\n\t\t// append stage\n\t\tthis.$element.append(this.$stage.parent());\n\t};\n\n\t/**\n\t * Create item DOM elements\n\t */\n\tOwl.prototype.initializeItems = function() {\n\t\tvar $items = this.$element.find('.owl-item');\n\n\t\t// if the items are already in the DOM, grab them and skip item initialization\n\t\tif ($items.length) {\n\t\t\tthis._items = $items.get().map(function(item) {\n\t\t\t\treturn $(item);\n\t\t\t});\n\n\t\t\tthis._mergers = this._items.map(function() {\n\t\t\t\treturn 1;\n\t\t\t});\n\n\t\t\tthis.refresh();\n\n\t\t\treturn;\n\t\t}\n\n\t\t// append content\n\t\tthis.replace(this.$element.children().not(this.$stage.parent()));\n\n\t\t// check visibility\n\t\tif (this.isVisible()) {\n\t\t\t// update view\n\t\t\tthis.refresh();\n\t\t} else {\n\t\t\t// invalidate width\n\t\t\tthis.invalidate('width');\n\t\t}\n\n\t\tthis.$element\n\t\t\t.removeClass(this.options.loadingClass)\n\t\t\t.addClass(this.options.loadedClass);\n\t};\n\n\t/**\n\t * Initializes the carousel.\n\t * @protected\n\t */\n\tOwl.prototype.initialize = function() {\n\t\tthis.enter('initializing');\n\t\tthis.trigger('initialize');\n\n\t\tthis.$element.toggleClass(this.settings.rtlClass, this.settings.rtl);\n\n\t\tif (this.settings.autoWidth && !this.is('pre-loading')) {\n\t\t\tvar imgs, nestedSelector, width;\n\t\t\timgs = this.$element.find('img');\n\t\t\tnestedSelector = this.settings.nestedItemSelector ? '.' + this.settings.nestedItemSelector : undefined;\n\t\t\twidth = this.$element.children(nestedSelector).width();\n\n\t\t\tif (imgs.length && width <= 0) {\n\t\t\t\tthis.preloadAutoWidthImages(imgs);\n\t\t\t}\n\t\t}\n\n\t\tthis.initializeStage();\n\t\tthis.initializeItems();\n\n\t\t// register event handlers\n\t\tthis.registerEventHandlers();\n\n\t\tthis.leave('initializing');\n\t\tthis.trigger('initialized');\n\t};\n\n\t/**\n\t * @returns {Boolean} visibility of $element\n\t *                    if you know the carousel will always be visible you can set `checkVisibility` to `false` to\n\t *                    prevent the expensive browser layout forced reflow the $element.is(':visible') does\n\t */\n\tOwl.prototype.isVisible = function() {\n\t\treturn this.settings.checkVisibility\n\t\t\t? this.$element.is(':visible')\n\t\t\t: true;\n\t};\n\n\t/**\n\t * Setups the current settings.\n\t * @todo Remove responsive classes. Why should adaptive designs be brought into IE8?\n\t * @todo Support for media queries by using `matchMedia` would be nice.\n\t * @public\n\t */\n\tOwl.prototype.setup = function() {\n\t\tvar viewport = this.viewport(),\n\t\t\toverwrites = this.options.responsive,\n\t\t\tmatch = -1,\n\t\t\tsettings = null;\n\n\t\tif (!overwrites) {\n\t\t\tsettings = $.extend({}, this.options);\n\t\t} else {\n\t\t\t$.each(overwrites, function(breakpoint) {\n\t\t\t\tif (breakpoint <= viewport && breakpoint > match) {\n\t\t\t\t\tmatch = Number(breakpoint);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tsettings = $.extend({}, this.options, overwrites[match]);\n\t\t\tif (typeof settings.stagePadding === 'function') {\n\t\t\t\tsettings.stagePadding = settings.stagePadding();\n\t\t\t}\n\t\t\tdelete settings.responsive;\n\n\t\t\t// responsive class\n\t\t\tif (settings.responsiveClass) {\n\t\t\t\tthis.$element.attr('class',\n\t\t\t\t\tthis.$element.attr('class').replace(new RegExp('(' + this.options.responsiveClass + '-)\\\\S+\\\\s', 'g'), '$1' + match)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tthis.trigger('change', { property: { name: 'settings', value: settings } });\n\t\tthis._breakpoint = match;\n\t\tthis.settings = settings;\n\t\tthis.invalidate('settings');\n\t\tthis.trigger('changed', { property: { name: 'settings', value: this.settings } });\n\t};\n\n\t/**\n\t * Updates option logic if necessery.\n\t * @protected\n\t */\n\tOwl.prototype.optionsLogic = function() {\n\t\tif (this.settings.autoWidth) {\n\t\t\tthis.settings.stagePadding = false;\n\t\t\tthis.settings.merge = false;\n\t\t}\n\t};\n\n\t/**\n\t * Prepares an item before add.\n\t * @todo Rename event parameter `content` to `item`.\n\t * @protected\n\t * @returns {jQuery|HTMLElement} - The item container.\n\t */\n\tOwl.prototype.prepare = function(item) {\n\t\tvar event = this.trigger('prepare', { content: item });\n\n\t\tif (!event.data) {\n\t\t\tevent.data = $('<' + this.settings.itemElement + '/>')\n\t\t\t\t.addClass(this.options.itemClass).append(item)\n\t\t}\n\n\t\tthis.trigger('prepared', { content: event.data });\n\n\t\treturn event.data;\n\t};\n\n\t/**\n\t * Updates the view.\n\t * @public\n\t */\n\tOwl.prototype.update = function() {\n\t\tvar i = 0,\n\t\t\tn = this._pipe.length,\n\t\t\tfilter = $.proxy(function(p) { return this[p] }, this._invalidated),\n\t\t\tcache = {};\n\n\t\twhile (i < n) {\n\t\t\tif (this._invalidated.all || $.grep(this._pipe[i].filter, filter).length > 0) {\n\t\t\t\tthis._pipe[i].run(cache);\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\n\t\tthis._invalidated = {};\n\n\t\t!this.is('valid') && this.enter('valid');\n\t};\n\n\t/**\n\t * Gets the width of the view.\n\t * @public\n\t * @param {Owl.Width} [dimension=Owl.Width.Default] - The dimension to return.\n\t * @returns {Number} - The width of the view in pixel.\n\t */\n\tOwl.prototype.width = function(dimension) {\n\t\tdimension = dimension || Owl.Width.Default;\n\t\tswitch (dimension) {\n\t\t\tcase Owl.Width.Inner:\n\t\t\tcase Owl.Width.Outer:\n\t\t\t\treturn this._width;\n\t\t\tdefault:\n\t\t\t\treturn this._width - this.settings.stagePadding * 2 + this.settings.margin;\n\t\t}\n\t};\n\n\t/**\n\t * Refreshes the carousel primarily for adaptive purposes.\n\t * @public\n\t */\n\tOwl.prototype.refresh = function() {\n\t\tthis.enter('refreshing');\n\t\tthis.trigger('refresh');\n\n\t\tthis.setup();\n\n\t\tthis.optionsLogic();\n\n\t\tthis.$element.addClass(this.options.refreshClass);\n\n\t\tthis.update();\n\n\t\tthis.$element.removeClass(this.options.refreshClass);\n\n\t\tthis.leave('refreshing');\n\t\tthis.trigger('refreshed');\n\t};\n\n\t/**\n\t * Checks window `resize` event.\n\t * @protected\n\t */\n\tOwl.prototype.onThrottledResize = function() {\n\t\twindow.clearTimeout(this.resizeTimer);\n\t\tthis.resizeTimer = window.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate);\n\t};\n\n\t/**\n\t * Checks window `resize` event.\n\t * @protected\n\t */\n\tOwl.prototype.onResize = function() {\n\t\tif (!this._items.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this._width === this.$element.width()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.isVisible()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.enter('resizing');\n\n\t\tif (this.trigger('resize').isDefaultPrevented()) {\n\t\t\tthis.leave('resizing');\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.invalidate('width');\n\n\t\tthis.refresh();\n\n\t\tthis.leave('resizing');\n\t\tthis.trigger('resized');\n\t};\n\n\t/**\n\t * Registers event handlers.\n\t * @todo Check `msPointerEnabled`\n\t * @todo #261\n\t * @protected\n\t */\n\tOwl.prototype.registerEventHandlers = function() {\n\t\tif ($.support.transition) {\n\t\t\tthis.$stage.on($.support.transition.end + '.owl.core', $.proxy(this.onTransitionEnd, this));\n\t\t}\n\n\t\tif (this.settings.responsive !== false) {\n\t\t\tthis.on(window, 'resize', this._handlers.onThrottledResize);\n\t\t}\n\n\t\tif (this.settings.mouseDrag) {\n\t\t\tthis.$element.addClass(this.options.dragClass);\n\t\t\tthis.$stage.on('mousedown.owl.core', $.proxy(this.onDragStart, this));\n\t\t\tthis.$stage.on('dragstart.owl.core selectstart.owl.core', function() { return false });\n\t\t}\n\n\t\tif (this.settings.touchDrag){\n\t\t\tthis.$stage.on('touchstart.owl.core', $.proxy(this.onDragStart, this));\n\t\t\tthis.$stage.on('touchcancel.owl.core', $.proxy(this.onDragEnd, this));\n\t\t}\n\t};\n\n\t/**\n\t * Handles `touchstart` and `mousedown` events.\n\t * @todo Horizontal swipe threshold as option\n\t * @todo #261\n\t * @protected\n\t * @param {Event} event - The event arguments.\n\t */\n\tOwl.prototype.onDragStart = function(event) {\n\t\tvar stage = null;\n\n\t\tif (event.which === 3) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ($.support.transform) {\n\t\t\tstage = this.$stage.css('transform').replace(/.*\\(|\\)| /g, '').split(',');\n\t\t\tstage = {\n\t\t\t\tx: stage[stage.length === 16 ? 12 : 4],\n\t\t\t\ty: stage[stage.length === 16 ? 13 : 5]\n\t\t\t};\n\t\t} else {\n\t\t\tstage = this.$stage.position();\n\t\t\tstage = {\n\t\t\t\tx: this.settings.rtl ?\n\t\t\t\t\tstage.left + this.$stage.width() - this.width() + this.settings.margin :\n\t\t\t\t\tstage.left,\n\t\t\t\ty: stage.top\n\t\t\t};\n\t\t}\n\n\t\tif (this.is('animating')) {\n\t\t\t$.support.transform ? this.animate(stage.x) : this.$stage.stop()\n\t\t\tthis.invalidate('position');\n\t\t}\n\n\t\tthis.$element.toggleClass(this.options.grabClass, event.type === 'mousedown');\n\n\t\tthis.speed(0);\n\n\t\tthis._drag.time = new Date().getTime();\n\t\tthis._drag.target = $(event.target);\n\t\tthis._drag.stage.start = stage;\n\t\tthis._drag.stage.current = stage;\n\t\tthis._drag.pointer = this.pointer(event);\n\n\t\t$(document).on('mouseup.owl.core touchend.owl.core', $.proxy(this.onDragEnd, this));\n\n\t\t$(document).one('mousemove.owl.core touchmove.owl.core', $.proxy(function(event) {\n\t\t\tvar delta = this.difference(this._drag.pointer, this.pointer(event));\n\n\t\t\t$(document).on('mousemove.owl.core touchmove.owl.core', $.proxy(this.onDragMove, this));\n\n\t\t\tif (Math.abs(delta.x) < Math.abs(delta.y) && this.is('valid')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\n\t\t\tthis.enter('dragging');\n\t\t\tthis.trigger('drag');\n\t\t}, this));\n\t};\n\n\t/**\n\t * Handles the `touchmove` and `mousemove` events.\n\t * @todo #261\n\t * @protected\n\t * @param {Event} event - The event arguments.\n\t */\n\tOwl.prototype.onDragMove = function(event) {\n\t\tvar minimum = null,\n\t\t\tmaximum = null,\n\t\t\tpull = null,\n\t\t\tdelta = this.difference(this._drag.pointer, this.pointer(event)),\n\t\t\tstage = this.difference(this._drag.stage.start, delta);\n\n\t\tif (!this.is('dragging')) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\n\t\tif (this.settings.loop) {\n\t\t\tminimum = this.coordinates(this.minimum());\n\t\t\tmaximum = this.coordinates(this.maximum() + 1) - minimum;\n\t\t\tstage.x = (((stage.x - minimum) % maximum + maximum) % maximum) + minimum;\n\t\t} else {\n\t\t\tminimum = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum());\n\t\t\tmaximum = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum());\n\t\t\tpull = this.settings.pullDrag ? -1 * delta.x / 5 : 0;\n\t\t\tstage.x = Math.max(Math.min(stage.x, minimum + pull), maximum + pull);\n\t\t}\n\n\t\tthis._drag.stage.current = stage;\n\n\t\tthis.animate(stage.x);\n\t};\n\n\t/**\n\t * Handles the `touchend` and `mouseup` events.\n\t * @todo #261\n\t * @todo Threshold for click event\n\t * @protected\n\t * @param {Event} event - The event arguments.\n\t */\n\tOwl.prototype.onDragEnd = function(event) {\n\t\tvar delta = this.difference(this._drag.pointer, this.pointer(event)),\n\t\t\tstage = this._drag.stage.current,\n\t\t\tdirection = delta.x > 0 ^ this.settings.rtl ? 'left' : 'right';\n\n\t\t$(document).off('.owl.core');\n\n\t\tthis.$element.removeClass(this.options.grabClass);\n\n\t\tif (delta.x !== 0 && this.is('dragging') || !this.is('valid')) {\n\t\t\tthis.speed(this.settings.dragEndSpeed || this.settings.smartSpeed);\n\t\t\tthis.current(this.closest(stage.x, delta.x !== 0 ? direction : this._drag.direction));\n\t\t\tthis.invalidate('position');\n\t\t\tthis.update();\n\n\t\t\tthis._drag.direction = direction;\n\n\t\t\tif (Math.abs(delta.x) > 3 || new Date().getTime() - this._drag.time > 300) {\n\t\t\t\tthis._drag.target.one('click.owl.core', function() { return false; });\n\t\t\t}\n\t\t}\n\n\t\tif (!this.is('dragging')) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.leave('dragging');\n\t\tthis.trigger('dragged');\n\t};\n\n\t/**\n\t * Gets absolute position of the closest item for a coordinate.\n\t * @todo Setting `freeDrag` makes `closest` not reusable. See #165.\n\t * @protected\n\t * @param {Number} coordinate - The coordinate in pixel.\n\t * @param {String} direction - The direction to check for the closest item. Ether `left` or `right`.\n\t * @return {Number} - The absolute position of the closest item.\n\t */\n\tOwl.prototype.closest = function(coordinate, direction) {\n\t\tvar position = -1,\n\t\t\tpull = 30,\n\t\t\twidth = this.width(),\n\t\t\tcoordinates = this.coordinates();\n\n\t\tif (!this.settings.freeDrag) {\n\t\t\t// check closest item\n\t\t\t$.each(coordinates, $.proxy(function(index, value) {\n\t\t\t\t// on a left pull, check on current index\n\t\t\t\tif (direction === 'left' && coordinate > value - pull && coordinate < value + pull) {\n\t\t\t\t\tposition = index;\n\t\t\t\t// on a right pull, check on previous index\n\t\t\t\t// to do so, subtract width from value and set position = index + 1\n\t\t\t\t} else if (direction === 'right' && coordinate > value - width - pull && coordinate < value - width + pull) {\n\t\t\t\t\tposition = index + 1;\n\t\t\t\t} else if (this.op(coordinate, '<', value)\n\t\t\t\t\t&& this.op(coordinate, '>', coordinates[index + 1] !== undefined ? coordinates[index + 1] : value - width)) {\n\t\t\t\t\tposition = direction === 'left' ? index + 1 : index;\n\t\t\t\t}\n\t\t\t\treturn position === -1;\n\t\t\t}, this));\n\t\t}\n\n\t\tif (!this.settings.loop) {\n\t\t\t// non loop boundries\n\t\t\tif (this.op(coordinate, '>', coordinates[this.minimum()])) {\n\t\t\t\tposition = coordinate = this.minimum();\n\t\t\t} else if (this.op(coordinate, '<', coordinates[this.maximum()])) {\n\t\t\t\tposition = coordinate = this.maximum();\n\t\t\t}\n\t\t}\n\n\t\treturn position;\n\t};\n\n\t/**\n\t * Animates the stage.\n\t * @todo #270\n\t * @public\n\t * @param {Number} coordinate - The coordinate in pixels.\n\t */\n\tOwl.prototype.animate = function(coordinate) {\n\t\tvar animate = this.speed() > 0;\n\n\t\tthis.is('animating') && this.onTransitionEnd();\n\n\t\tif (animate) {\n\t\t\tthis.enter('animating');\n\t\t\tthis.trigger('translate');\n\t\t}\n\n\t\tif ($.support.transform3d && $.support.transition) {\n\t\t\tthis.$stage.css({\n\t\t\t\ttransform: 'translate3d(' + coordinate + 'px,0px,0px)',\n\t\t\t\ttransition: (this.speed() / 1000) + 's' + (\n\t\t\t\t\tthis.settings.slideTransition ? ' ' + this.settings.slideTransition : ''\n\t\t\t\t)\n\t\t\t});\n\t\t} else if (animate) {\n\t\t\tthis.$stage.animate({\n\t\t\t\tleft: coordinate + 'px'\n\t\t\t}, this.speed(), this.settings.fallbackEasing, $.proxy(this.onTransitionEnd, this));\n\t\t} else {\n\t\t\tthis.$stage.css({\n\t\t\t\tleft: coordinate + 'px'\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n\t * Checks whether the carousel is in a specific state or not.\n\t * @param {String} state - The state to check.\n\t * @returns {Boolean} - The flag which indicates if the carousel is busy.\n\t */\n\tOwl.prototype.is = function(state) {\n\t\treturn this._states.current[state] && this._states.current[state] > 0;\n\t};\n\n\t/**\n\t * Sets the absolute position of the current item.\n\t * @public\n\t * @param {Number} [position] - The new absolute position or nothing to leave it unchanged.\n\t * @returns {Number} - The absolute position of the current item.\n\t */\n\tOwl.prototype.current = function(position) {\n\t\tif (position === undefined) {\n\t\t\treturn this._current;\n\t\t}\n\n\t\tif (this._items.length === 0) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tposition = this.normalize(position);\n\n\t\tif (this._current !== position) {\n\t\t\tvar event = this.trigger('change', { property: { name: 'position', value: position } });\n\n\t\t\tif (event.data !== undefined) {\n\t\t\t\tposition = this.normalize(event.data);\n\t\t\t}\n\n\t\t\tthis._current = position;\n\n\t\t\tthis.invalidate('position');\n\n\t\t\tthis.trigger('changed', { property: { name: 'position', value: this._current } });\n\t\t}\n\n\t\treturn this._current;\n\t};\n\n\t/**\n\t * Invalidates the given part of the update routine.\n\t * @param {String} [part] - The part to invalidate.\n\t * @returns {Array.<String>} - The invalidated parts.\n\t */\n\tOwl.prototype.invalidate = function(part) {\n\t\tif ($.type(part) === 'string') {\n\t\t\tthis._invalidated[part] = true;\n\t\t\tthis.is('valid') && this.leave('valid');\n\t\t}\n\t\treturn $.map(this._invalidated, function(v, i) { return i });\n\t};\n\n\t/**\n\t * Resets the absolute position of the current item.\n\t * @public\n\t * @param {Number} position - The absolute position of the new item.\n\t */\n\tOwl.prototype.reset = function(position) {\n\t\tposition = this.normalize(position);\n\n\t\tif (position === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._speed = 0;\n\t\tthis._current = position;\n\n\t\tthis.suppress([ 'translate', 'translated' ]);\n\n\t\tthis.animate(this.coordinates(position));\n\n\t\tthis.release([ 'translate', 'translated' ]);\n\t};\n\n\t/**\n\t * Normalizes an absolute or a relative position of an item.\n\t * @public\n\t * @param {Number} position - The absolute or relative position to normalize.\n\t * @param {Boolean} [relative=false] - Whether the given position is relative or not.\n\t * @returns {Number} - The normalized position.\n\t */\n\tOwl.prototype.normalize = function(position, relative) {\n\t\tvar n = this._items.length,\n\t\t\tm = relative ? 0 : this._clones.length;\n\n\t\tif (!this.isNumeric(position) || n < 1) {\n\t\t\tposition = undefined;\n\t\t} else if (position < 0 || position >= n + m) {\n\t\t\tposition = ((position - m / 2) % n + n) % n + m / 2;\n\t\t}\n\n\t\treturn position;\n\t};\n\n\t/**\n\t * Converts an absolute position of an item into a relative one.\n\t * @public\n\t * @param {Number} position - The absolute position to convert.\n\t * @returns {Number} - The converted position.\n\t */\n\tOwl.prototype.relative = function(position) {\n\t\tposition -= this._clones.length / 2;\n\t\treturn this.normalize(position, true);\n\t};\n\n\t/**\n\t * Gets the maximum position for the current item.\n\t * @public\n\t * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position.\n\t * @returns {Number}\n\t */\n\tOwl.prototype.maximum = function(relative) {\n\t\tvar settings = this.settings,\n\t\t\tmaximum = this._coordinates.length,\n\t\t\titerator,\n\t\t\treciprocalItemsWidth,\n\t\t\telementWidth;\n\n\t\tif (settings.loop) {\n\t\t\tmaximum = this._clones.length / 2 + this._items.length - 1;\n\t\t} else if (settings.autoWidth || settings.merge) {\n\t\t\titerator = this._items.length;\n\t\t\tif (iterator) {\n\t\t\t\treciprocalItemsWidth = this._items[--iterator].width();\n\t\t\t\telementWidth = this.$element.width();\n\t\t\t\twhile (iterator--) {\n\t\t\t\t\treciprocalItemsWidth += this._items[iterator].width() + this.settings.margin;\n\t\t\t\t\tif (reciprocalItemsWidth > elementWidth) {\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\tmaximum = iterator + 1;\n\t\t} else if (settings.center) {\n\t\t\tmaximum = this._items.length - 1;\n\t\t} else {\n\t\t\tmaximum = this._items.length - settings.items;\n\t\t}\n\n\t\tif (relative) {\n\t\t\tmaximum -= this._clones.length / 2;\n\t\t}\n\n\t\treturn Math.max(maximum, 0);\n\t};\n\n\t/**\n\t * Gets the minimum position for the current item.\n\t * @public\n\t * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position.\n\t * @returns {Number}\n\t */\n\tOwl.prototype.minimum = function(relative) {\n\t\treturn relative ? 0 : this._clones.length / 2;\n\t};\n\n\t/**\n\t * Gets an item at the specified relative position.\n\t * @public\n\t * @param {Number} [position] - The relative position of the item.\n\t * @return {jQuery|Array.<jQuery>} - The item at the given position or all items if no position was given.\n\t */\n\tOwl.prototype.items = function(position) {\n\t\tif (position === undefined) {\n\t\t\treturn this._items.slice();\n\t\t}\n\n\t\tposition = this.normalize(position, true);\n\t\treturn this._items[position];\n\t};\n\n\t/**\n\t * Gets an item at the specified relative position.\n\t * @public\n\t * @param {Number} [position] - The relative position of the item.\n\t * @return {jQuery|Array.<jQuery>} - The item at the given position or all items if no position was given.\n\t */\n\tOwl.prototype.mergers = function(position) {\n\t\tif (position === undefined) {\n\t\t\treturn this._mergers.slice();\n\t\t}\n\n\t\tposition = this.normalize(position, true);\n\t\treturn this._mergers[position];\n\t};\n\n\t/**\n\t * Gets the absolute positions of clones for an item.\n\t * @public\n\t * @param {Number} [position] - The relative position of the item.\n\t * @returns {Array.<Number>} - The absolute positions of clones for the item or all if no position was given.\n\t */\n\tOwl.prototype.clones = function(position) {\n\t\tvar odd = this._clones.length / 2,\n\t\t\teven = odd + this._items.length,\n\t\t\tmap = function(index) { return index % 2 === 0 ? even + index / 2 : odd - (index + 1) / 2 };\n\n\t\tif (position === undefined) {\n\t\t\treturn $.map(this._clones, function(v, i) { return map(i) });\n\t\t}\n\n\t\treturn $.map(this._clones, function(v, i) { return v === position ? map(i) : null });\n\t};\n\n\t/**\n\t * Sets the current animation speed.\n\t * @public\n\t * @param {Number} [speed] - The animation speed in milliseconds or nothing to leave it unchanged.\n\t * @returns {Number} - The current animation speed in milliseconds.\n\t */\n\tOwl.prototype.speed = function(speed) {\n\t\tif (speed !== undefined) {\n\t\t\tthis._speed = speed;\n\t\t}\n\n\t\treturn this._speed;\n\t};\n\n\t/**\n\t * Gets the coordinate of an item.\n\t * @todo The name of this method is missleanding.\n\t * @public\n\t * @param {Number} position - The absolute position of the item within `minimum()` and `maximum()`.\n\t * @returns {Number|Array.<Number>} - The coordinate of the item in pixel or all coordinates.\n\t */\n\tOwl.prototype.coordinates = function(position) {\n\t\tvar multiplier = 1,\n\t\t\tnewPosition = position - 1,\n\t\t\tcoordinate;\n\n\t\tif (position === undefined) {\n\t\t\treturn $.map(this._coordinates, $.proxy(function(coordinate, index) {\n\t\t\t\treturn this.coordinates(index);\n\t\t\t}, this));\n\t\t}\n\n\t\tif (this.settings.center) {\n\t\t\tif (this.settings.rtl) {\n\t\t\t\tmultiplier = -1;\n\t\t\t\tnewPosition = position + 1;\n\t\t\t}\n\n\t\t\tcoordinate = this._coordinates[position];\n\t\t\tcoordinate += (this.width() - coordinate + (this._coordinates[newPosition] || 0)) / 2 * multiplier;\n\t\t} else {\n\t\t\tcoordinate = this._coordinates[newPosition] || 0;\n\t\t}\n\n\t\tcoordinate = Math.ceil(coordinate);\n\n\t\treturn coordinate;\n\t};\n\n\t/**\n\t * Calculates the speed for a translation.\n\t * @protected\n\t * @param {Number} from - The absolute position of the start item.\n\t * @param {Number} to - The absolute position of the target item.\n\t * @param {Number} [factor=undefined] - The time factor in milliseconds.\n\t * @returns {Number} - The time in milliseconds for the translation.\n\t */\n\tOwl.prototype.duration = function(from, to, factor) {\n\t\tif (factor === 0) {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn Math.min(Math.max(Math.abs(to - from), 1), 6) * Math.abs((factor || this.settings.smartSpeed));\n\t};\n\n\t/**\n\t * Slides to the specified item.\n\t * @public\n\t * @param {Number} position - The position of the item.\n\t * @param {Number} [speed] - The time in milliseconds for the transition.\n\t */\n\tOwl.prototype.to = function(position, speed) {\n\t\tvar current = this.current(),\n\t\t\trevert = null,\n\t\t\tdistance = position - this.relative(current),\n\t\t\tdirection = (distance > 0) - (distance < 0),\n\t\t\titems = this._items.length,\n\t\t\tminimum = this.minimum(),\n\t\t\tmaximum = this.maximum();\n\n\t\tif (this.settings.loop) {\n\t\t\tif (!this.settings.rewind && Math.abs(distance) > items / 2) {\n\t\t\t\tdistance += direction * -1 * items;\n\t\t\t}\n\n\t\t\tposition = current + distance;\n\t\t\trevert = ((position - minimum) % items + items) % items + minimum;\n\n\t\t\tif (revert !== position && revert - distance <= maximum && revert - distance > 0) {\n\t\t\t\tcurrent = revert - distance;\n\t\t\t\tposition = revert;\n\t\t\t\tthis.reset(current);\n\t\t\t}\n\t\t} else if (this.settings.rewind) {\n\t\t\tmaximum += 1;\n\t\t\tposition = (position % maximum + maximum) % maximum;\n\t\t} else {\n\t\t\tposition = Math.max(minimum, Math.min(maximum, position));\n\t\t}\n\n\t\tthis.speed(this.duration(current, position, speed));\n\t\tthis.current(position);\n\n\t\tif (this.isVisible()) {\n\t\t\tthis.update();\n\t\t}\n\t};\n\n\t/**\n\t * Slides to the next item.\n\t * @public\n\t * @param {Number} [speed] - The time in milliseconds for the transition.\n\t */\n\tOwl.prototype.next = function(speed) {\n\t\tspeed = speed || false;\n\t\tthis.to(this.relative(this.current()) + 1, speed);\n\t};\n\n\t/**\n\t * Slides to the previous item.\n\t * @public\n\t * @param {Number} [speed] - The time in milliseconds for the transition.\n\t */\n\tOwl.prototype.prev = function(speed) {\n\t\tspeed = speed || false;\n\t\tthis.to(this.relative(this.current()) - 1, speed);\n\t};\n\n\t/**\n\t * Handles the end of an animation.\n\t * @protected\n\t * @param {Event} event - The event arguments.\n\t */\n\tOwl.prototype.onTransitionEnd = function(event) {\n\n\t\t// if css2 animation then event object is undefined\n\t\tif (event !== undefined) {\n\t\t\tevent.stopPropagation();\n\n\t\t\t// Catch only owl-stage transitionEnd event\n\t\t\tif ((event.target || event.srcElement || event.originalTarget) !== this.$stage.get(0)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tthis.leave('animating');\n\t\tthis.trigger('translated');\n\t};\n\n\t/**\n\t * Gets viewport width.\n\t * @protected\n\t * @return {Number} - The width in pixel.\n\t */\n\tOwl.prototype.viewport = function() {\n\t\tvar width;\n\t\tif (this.options.responsiveBaseElement !== window) {\n\t\t\twidth = $(this.options.responsiveBaseElement).width();\n\t\t} else if (window.innerWidth) {\n\t\t\twidth = window.innerWidth;\n\t\t} else if (document.documentElement && document.documentElement.clientWidth) {\n\t\t\twidth = document.documentElement.clientWidth;\n\t\t} else {\n\t\t\tconsole.warn('Can not detect viewport width.');\n\t\t}\n\t\treturn width;\n\t};\n\n\t/**\n\t * Replaces the current content.\n\t * @public\n\t * @param {HTMLElement|jQuery|String} content - The new content.\n\t */\n\tOwl.prototype.replace = function(content) {\n\t\tthis.$stage.empty();\n\t\tthis._items = [];\n\n\t\tif (content) {\n\t\t\tcontent = (content instanceof jQuery) ? content : $(content);\n\t\t}\n\n\t\tif (this.settings.nestedItemSelector) {\n\t\t\tcontent = content.find('.' + this.settings.nestedItemSelector);\n\t\t}\n\n\t\tcontent.filter(function() {\n\t\t\treturn this.nodeType === 1;\n\t\t}).each($.proxy(function(index, item) {\n\t\t\titem = this.prepare(item);\n\t\t\tthis.$stage.append(item);\n\t\t\tthis._items.push(item);\n\t\t\tthis._mergers.push(item.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1);\n\t\t}, this));\n\n\t\tthis.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0);\n\n\t\tthis.invalidate('items');\n\t};\n\n\t/**\n\t * Adds an item.\n\t * @todo Use `item` instead of `content` for the event arguments.\n\t * @public\n\t * @param {HTMLElement|jQuery|String} content - The item content to add.\n\t * @param {Number} [position] - The relative position at which to insert the item otherwise the item will be added to the end.\n\t */\n\tOwl.prototype.add = function(content, position) {\n\t\tvar current = this.relative(this._current);\n\n\t\tposition = position === undefined ? this._items.length : this.normalize(position, true);\n\t\tcontent = content instanceof jQuery ? content : $(content);\n\n\t\tthis.trigger('add', { content: content, position: position });\n\n\t\tcontent = this.prepare(content);\n\n\t\tif (this._items.length === 0 || position === this._items.length) {\n\t\t\tthis._items.length === 0 && this.$stage.append(content);\n\t\t\tthis._items.length !== 0 && this._items[position - 1].after(content);\n\t\t\tthis._items.push(content);\n\t\t\tthis._mergers.push(content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1);\n\t\t} else {\n\t\t\tthis._items[position].before(content);\n\t\t\tthis._items.splice(position, 0, content);\n\t\t\tthis._mergers.splice(position, 0, content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1);\n\t\t}\n\n\t\tthis._items[current] && this.reset(this._items[current].index());\n\n\t\tthis.invalidate('items');\n\n\t\tthis.trigger('added', { content: content, position: position });\n\t};\n\n\t/**\n\t * Removes an item by its position.\n\t * @todo Use `item` instead of `content` for the event arguments.\n\t * @public\n\t * @param {Number} position - The relative position of the item to remove.\n\t */\n\tOwl.prototype.remove = function(position) {\n\t\tposition = this.normalize(position, true);\n\n\t\tif (position === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.trigger('remove', { content: this._items[position], position: position });\n\n\t\tthis._items[position].remove();\n\t\tthis._items.splice(position, 1);\n\t\tthis._mergers.splice(position, 1);\n\n\t\tthis.invalidate('items');\n\n\t\tthis.trigger('removed', { content: null, position: position });\n\t};\n\n\t/**\n\t * Preloads images with auto width.\n\t * @todo Replace by a more generic approach\n\t * @protected\n\t */\n\tOwl.prototype.preloadAutoWidthImages = function(images) {\n\t\timages.each($.proxy(function(i, element) {\n\t\t\tthis.enter('pre-loading');\n\t\t\telement = $(element);\n\t\t\t$(new Image()).one('load', $.proxy(function(e) {\n\t\t\t\telement.attr('src', e.target.src);\n\t\t\t\telement.css('opacity', 1);\n\t\t\t\tthis.leave('pre-loading');\n\t\t\t\t!this.is('pre-loading') && !this.is('initializing') && this.refresh();\n\t\t\t}, this)).attr('src', element.attr('src') || element.attr('data-src') || element.attr('data-src-retina'));\n\t\t}, this));\n\t};\n\n\t/**\n\t * Destroys the carousel.\n\t * @public\n\t */\n\tOwl.prototype.destroy = function() {\n\n\t\tthis.$element.off('.owl.core');\n\t\tthis.$stage.off('.owl.core');\n\t\t$(document).off('.owl.core');\n\n\t\tif (this.settings.responsive !== false) {\n\t\t\twindow.clearTimeout(this.resizeTimer);\n\t\t\tthis.off(window, 'resize', this._handlers.onThrottledResize);\n\t\t}\n\n\t\tfor (var i in this._plugins) {\n\t\t\tthis._plugins[i].destroy();\n\t\t}\n\n\t\tthis.$stage.children('.cloned').remove();\n\n\t\tthis.$stage.unwrap();\n\t\tthis.$stage.children().contents().unwrap();\n\t\tthis.$stage.children().unwrap();\n\t\tthis.$stage.remove();\n\t\tthis.$element\n\t\t\t.removeClass(this.options.refreshClass)\n\t\t\t.removeClass(this.options.loadingClass)\n\t\t\t.removeClass(this.options.loadedClass)\n\t\t\t.removeClass(this.options.rtlClass)\n\t\t\t.removeClass(this.options.dragClass)\n\t\t\t.removeClass(this.options.grabClass)\n\t\t\t.attr('class', this.$element.attr('class').replace(new RegExp(this.options.responsiveClass + '-\\\\S+\\\\s', 'g'), ''))\n\t\t\t.removeData('owl.carousel');\n\t};\n\n\t/**\n\t * Operators to calculate right-to-left and left-to-right.\n\t * @protected\n\t * @param {Number} [a] - The left side operand.\n\t * @param {String} [o] - The operator.\n\t * @param {Number} [b] - The right side operand.\n\t */\n\tOwl.prototype.op = function(a, o, b) {\n\t\tvar rtl = this.settings.rtl;\n\t\tswitch (o) {\n\t\t\tcase '<':\n\t\t\t\treturn rtl ? a > b : a < b;\n\t\t\tcase '>':\n\t\t\t\treturn rtl ? a < b : a > b;\n\t\t\tcase '>=':\n\t\t\t\treturn rtl ? a <= b : a >= b;\n\t\t\tcase '<=':\n\t\t\t\treturn rtl ? a >= b : a <= b;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\t/**\n\t * Attaches to an internal event.\n\t * @protected\n\t * @param {HTMLElement} element - The event source.\n\t * @param {String} event - The event name.\n\t * @param {Function} listener - The event handler to attach.\n\t * @param {Boolean} capture - Wether the event should be handled at the capturing phase or not.\n\t */\n\tOwl.prototype.on = function(element, event, listener, capture) {\n\t\tif (element.addEventListener) {\n\t\t\telement.addEventListener(event, listener, capture);\n\t\t} else if (element.attachEvent) {\n\t\t\telement.attachEvent('on' + event, listener);\n\t\t}\n\t};\n\n\t/**\n\t * Detaches from an internal event.\n\t * @protected\n\t * @param {HTMLElement} element - The event source.\n\t * @param {String} event - The event name.\n\t * @param {Function} listener - The attached event handler to detach.\n\t * @param {Boolean} capture - Wether the attached event handler was registered as a capturing listener or not.\n\t */\n\tOwl.prototype.off = function(element, event, listener, capture) {\n\t\tif (element.removeEventListener) {\n\t\t\telement.removeEventListener(event, listener, capture);\n\t\t} else if (element.detachEvent) {\n\t\t\telement.detachEvent('on' + event, listener);\n\t\t}\n\t};\n\n\t/**\n\t * Triggers a public event.\n\t * @todo Remove `status`, `relatedTarget` should be used instead.\n\t * @protected\n\t * @param {String} name - The event name.\n\t * @param {*} [data=null] - The event data.\n\t * @param {String} [namespace=carousel] - The event namespace.\n\t * @param {String} [state] - The state which is associated with the event.\n\t * @param {Boolean} [enter=false] - Indicates if the call enters the specified state or not.\n\t * @returns {Event} - The event arguments.\n\t */\n\tOwl.prototype.trigger = function(name, data, namespace, state, enter) {\n\t\tvar status = {\n\t\t\titem: { count: this._items.length, index: this.current() }\n\t\t}, handler = $.camelCase(\n\t\t\t$.grep([ 'on', name, namespace ], function(v) { return v })\n\t\t\t\t.join('-').toLowerCase()\n\t\t), event = $.Event(\n\t\t\t[ name, 'owl', namespace || 'carousel' ].join('.').toLowerCase(),\n\t\t\t$.extend({ relatedTarget: this }, status, data)\n\t\t);\n\n\t\tif (!this._supress[name]) {\n\t\t\t$.each(this._plugins, function(name, plugin) {\n\t\t\t\tif (plugin.onTrigger) {\n\t\t\t\t\tplugin.onTrigger(event);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.register({ type: Owl.Type.Event, name: name });\n\t\t\tthis.$element.trigger(event);\n\n\t\t\tif (this.settings && typeof this.settings[handler] === 'function') {\n\t\t\t\tthis.settings[handler].call(this, event);\n\t\t\t}\n\t\t}\n\n\t\treturn event;\n\t};\n\n\t/**\n\t * Enters a state.\n\t * @param name - The state name.\n\t */\n\tOwl.prototype.enter = function(name) {\n\t\t$.each([ name ].concat(this._states.tags[name] || []), $.proxy(function(i, name) {\n\t\t\tif (this._states.current[name] === undefined) {\n\t\t\t\tthis._states.current[name] = 0;\n\t\t\t}\n\n\t\t\tthis._states.current[name]++;\n\t\t}, this));\n\t};\n\n\t/**\n\t * Leaves a state.\n\t * @param name - The state name.\n\t */\n\tOwl.prototype.leave = function(name) {\n\t\t$.each([ name ].concat(this._states.tags[name] || []), $.proxy(function(i, name) {\n\t\t\tthis._states.current[name]--;\n\t\t}, this));\n\t};\n\n\t/**\n\t * Registers an event or state.\n\t * @public\n\t * @param {Object} object - The event or state to register.\n\t */\n\tOwl.prototype.register = function(object) {\n\t\tif (object.type === Owl.Type.Event) {\n\t\t\tif (!$.event.special[object.name]) {\n\t\t\t\t$.event.special[object.name] = {};\n\t\t\t}\n\n\t\t\tif (!$.event.special[object.name].owl) {\n\t\t\t\tvar _default = $.event.special[object.name]._default;\n\t\t\t\t$.event.special[object.name]._default = function(e) {\n\t\t\t\t\tif (_default && _default.apply && (!e.namespace || e.namespace.indexOf('owl') === -1)) {\n\t\t\t\t\t\treturn _default.apply(this, arguments);\n\t\t\t\t\t}\n\t\t\t\t\treturn e.namespace && e.namespace.indexOf('owl') > -1;\n\t\t\t\t};\n\t\t\t\t$.event.special[object.name].owl = true;\n\t\t\t}\n\t\t} else if (object.type === Owl.Type.State) {\n\t\t\tif (!this._states.tags[object.name]) {\n\t\t\t\tthis._states.tags[object.name] = object.tags;\n\t\t\t} else {\n\t\t\t\tthis._states.tags[object.name] = this._states.tags[object.name].concat(object.tags);\n\t\t\t}\n\n\t\t\tthis._states.tags[object.name] = $.grep(this._states.tags[object.name], $.proxy(function(tag, i) {\n\t\t\t\treturn $.inArray(tag, this._states.tags[object.name]) === i;\n\t\t\t}, this));\n\t\t}\n\t};\n\n\t/**\n\t * Suppresses events.\n\t * @protected\n\t * @param {Array.<String>} events - The events to suppress.\n\t */\n\tOwl.prototype.suppress = function(events) {\n\t\t$.each(events, $.proxy(function(index, event) {\n\t\t\tthis._supress[event] = true;\n\t\t}, this));\n\t};\n\n\t/**\n\t * Releases suppressed events.\n\t * @protected\n\t * @param {Array.<String>} events - The events to release.\n\t */\n\tOwl.prototype.release = function(events) {\n\t\t$.each(events, $.proxy(function(index, event) {\n\t\t\tdelete this._supress[event];\n\t\t}, this));\n\t};\n\n\t/**\n\t * Gets unified pointer coordinates from event.\n\t * @todo #261\n\t * @protected\n\t * @param {Event} - The `mousedown` or `touchstart` event.\n\t * @returns {Object} - Contains `x` and `y` coordinates of current pointer position.\n\t */\n\tOwl.prototype.pointer = function(event) {\n\t\tvar result = { x: null, y: null };\n\n\t\tevent = event.originalEvent || event || window.event;\n\n\t\tevent = event.touches && event.touches.length ?\n\t\t\tevent.touches[0] : event.changedTouches && event.changedTouches.length ?\n\t\t\t\tevent.changedTouches[0] : event;\n\n\t\tif (event.pageX) {\n\t\t\tresult.x = event.pageX;\n\t\t\tresult.y = event.pageY;\n\t\t} else {\n\t\t\tresult.x = event.clientX;\n\t\t\tresult.y = event.clientY;\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t/**\n\t * Determines if the input is a Number or something that can be coerced to a Number\n\t * @protected\n\t * @param {Number|String|Object|Array|Boolean|RegExp|Function|Symbol} - The input to be tested\n\t * @returns {Boolean} - An indication if the input is a Number or can be coerced to a Number\n\t */\n\tOwl.prototype.isNumeric = function(number) {\n\t\treturn !isNaN(parseFloat(number));\n\t};\n\n\t/**\n\t * Gets the difference of two vectors.\n\t * @todo #261\n\t * @protected\n\t * @param {Object} - The first vector.\n\t * @param {Object} - The second vector.\n\t * @returns {Object} - The difference.\n\t */\n\tOwl.prototype.difference = function(first, second) {\n\t\treturn {\n\t\t\tx: first.x - second.x,\n\t\t\ty: first.y - second.y\n\t\t};\n\t};\n\n\t/**\n\t * The jQuery Plugin for the Owl Carousel\n\t * @todo Navigation plugin `next` and `prev`\n\t * @public\n\t */\n\t$.fn.owlCarousel = function(option) {\n\t\tvar args = Array.prototype.slice.call(arguments, 1);\n\n\t\treturn this.each(function() {\n\t\t\tvar $this = $(this),\n\t\t\t\tdata = $this.data('owl.carousel');\n\n\t\t\tif (!data) {\n\t\t\t\tdata = new Owl(this, typeof option == 'object' && option);\n\t\t\t\t$this.data('owl.carousel', data);\n\n\t\t\t\t$.each([\n\t\t\t\t\t'next', 'prev', 'to', 'destroy', 'refresh', 'replace', 'add', 'remove'\n\t\t\t\t], function(i, event) {\n\t\t\t\t\tdata.register({ type: Owl.Type.Event, name: event });\n\t\t\t\t\tdata.$element.on(event + '.owl.carousel.core', $.proxy(function(e) {\n\t\t\t\t\t\tif (e.namespace && e.relatedTarget !== this) {\n\t\t\t\t\t\t\tthis.suppress([ event ]);\n\t\t\t\t\t\t\tdata[event].apply(this, [].slice.call(arguments, 1));\n\t\t\t\t\t\t\tthis.release([ event ]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, data));\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (typeof option == 'string' && option.charAt(0) !== '_') {\n\t\t\t\tdata[option].apply(data, args);\n\t\t\t}\n\t\t});\n\t};\n\n\t/**\n\t * The constructor for the jQuery Plugin\n\t * @public\n\t */\n\t$.fn.owlCarousel.Constructor = Owl;\n\n})(window.Zepto || window.jQuery, window, document);\n","export default typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst timeoutDuration = (function(){\n  const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n  for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n    if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n      return 1;\n    }\n  }\n  return 0;\n}());\n\nexport function microtaskDebounce(fn) {\n  let called = false\n  return () => {\n    if (called) {\n      return\n    }\n    called = true\n    window.Promise.resolve().then(() => {\n      called = false\n      fn()\n    })\n  }\n}\n\nexport function taskDebounce(fn) {\n  let scheduled = false;\n  return () => {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(() => {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nexport default (supportsMicroTasks\n  ? microtaskDebounce\n  : taskDebounce);\n","/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nexport default function isFunction(functionToCheck) {\n  const getType = {};\n  return (\n    functionToCheck &&\n    getType.toString.call(functionToCheck) === '[object Function]'\n  );\n}\n","/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  const window = element.ownerDocument.defaultView;\n  const css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n","/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nexport default function getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nexport default function getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body\n    case '#document':\n      return element.body\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n","/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nexport default function getReferenceNode(reference) {\n  return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nexport default function isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nexport default function getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  const noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  let offsetParent = element.offsetParent || null;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  const nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TH, TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (\n    ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n    getStyleComputedProperty(offsetParent, 'position') === 'static'\n  ) {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n  const { nodeName } = element;\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return (\n    nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n  );\n}\n","/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nexport default function getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nexport default function findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  const order =\n    element1.compareDocumentPosition(element2) &\n    Node.DOCUMENT_POSITION_FOLLOWING;\n  const start = order ? element1 : element2;\n  const end = order ? element2 : element1;\n\n  // Get common ancestor container\n  const range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  const { commonAncestorContainer } = range;\n\n  // Both nodes are inside #document\n  if (\n    (element1 !== commonAncestorContainer &&\n      element2 !== commonAncestorContainer) ||\n    start.contains(end)\n  ) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  const element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n","/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nexport default function getScroll(element, side = 'top') {\n  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  const nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    const html = element.ownerDocument.documentElement;\n    const scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n","import getScroll from './getScroll';\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nexport default function includeScroll(rect, element, subtract = false) {\n  const scrollTop = getScroll(element, 'top');\n  const scrollLeft = getScroll(element, 'left');\n  const modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n","/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nexport default function getBordersSize(styles, axis) {\n  const sideA = axis === 'x' ? 'Left' : 'Top';\n  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return (\n    parseFloat(styles[`border${sideA}Width`]) +\n    parseFloat(styles[`border${sideB}Width`])\n  );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(\n    body[`offset${axis}`],\n    body[`scroll${axis}`],\n    html[`client${axis}`],\n    html[`offset${axis}`],\n    html[`scroll${axis}`],\n    isIE(10)\n      ? (parseInt(html[`offset${axis}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n    : 0 \n  );\n}\n\nexport default function getWindowSizes(document) {\n  const body = document.body;\n  const html = document.documentElement;\n  const computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle),\n  };\n}\n","/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nexport default function getClientRect(offsets) {\n  return {\n    ...offsets,\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height,\n  };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nexport default function getBoundingClientRect(element) {\n  let rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      const scrollTop = getScroll(element, 'top');\n      const scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    }\n    else {\n      rect = element.getBoundingClientRect();\n    }\n  }\n  catch(e){}\n\n  const result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top,\n  };\n\n  // subtract scrollbar size from sizes\n  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  const width =\n    sizes.width || element.clientWidth || result.width;\n  const height =\n    sizes.height || element.clientHeight || result.height;\n\n  let horizScrollbar = element.offsetWidth - width;\n  let vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    const styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n  const isIE10 = runIsIE(10);\n  const isHTML = parent.nodeName === 'HTML';\n  const childrenRect = getBoundingClientRect(children);\n  const parentRect = getBoundingClientRect(parent);\n  const scrollParent = getScrollParent(children);\n\n  const styles = getStyleComputedProperty(parent);\n  const borderTopWidth = parseFloat(styles.borderTopWidth);\n  const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if(fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  let offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height,\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    const marginTop = parseFloat(styles.marginTop);\n    const marginLeft = parseFloat(styles.marginLeft);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (\n    isIE10 && !fixedPosition\n      ? parent.contains(scrollParent)\n      : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n  ) {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n  const html = element.ownerDocument.documentElement;\n  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  const width = Math.max(html.clientWidth, window.innerWidth || 0);\n  const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  const scrollTop = !excludeScroll ? getScroll(html) : 0;\n  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  const offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width,\n    height,\n  };\n\n  return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nexport default function isFixed(element) {\n  const nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  const parentNode = getParentNode(element);\n  if (!parentNode) {\n    return false;\n  }\n  return isFixed(parentNode);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nexport default function getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n   if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  let el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getReferenceNode from './getReferenceNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nexport default function getBoundaries(\n  popper,\n  reference,\n  padding,\n  boundariesElement,\n  fixedPosition = false\n) {\n  // NOTE: 1 DOM access here\n\n  let boundaries = { top: 0, left: 0 };\n  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport' ) {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  }\n\n  else {\n    // Handle other cases based on DOM element used as boundaries\n    let boundariesNode;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    const offsets = getOffsetRectRelativeToArbitraryNode(\n      boundariesNode,\n      offsetParent,\n      fixedPosition\n    );\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      const { height, width } = getWindowSizes(popper.ownerDocument);\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  const isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0; \n  boundaries.top += isPaddingNumber ? padding : padding.top || 0; \n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0; \n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; \n\n  return boundaries;\n}\n","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeAutoPlacement(\n  placement,\n  refRect,\n  popper,\n  reference,\n  boundariesElement,\n  padding = 0\n) {\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  const boundaries = getBoundaries(\n    popper,\n    reference,\n    padding,\n    boundariesElement\n  );\n\n  const rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top,\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height,\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom,\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height,\n    },\n  };\n\n  const sortedAreas = Object.keys(rects)\n    .map(key => ({\n      key,\n      ...rects[key],\n      area: getArea(rects[key]),\n    }))\n    .sort((a, b) => b.area - a.area);\n\n  const filteredAreas = sortedAreas.filter(\n    ({ width, height }) =>\n      width >= popper.clientWidth && height >= popper.clientHeight\n  );\n\n  const computedPlacement = filteredAreas.length > 0\n    ? filteredAreas[0].key\n    : sortedAreas[0].key;\n\n  const variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\nimport getReferenceNode from './getReferenceNode';\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n","/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nexport default function getOuterSizes(element) {\n  const window = element.ownerDocument.defaultView;\n  const styles = window.getComputedStyle(element);\n  const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n  const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n  const result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x,\n  };\n  return result;\n}\n","/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nexport default function getOppositePlacement(placement) {\n  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  const popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  const popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height,\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  const mainSide = isHoriz ? 'top' : 'left';\n  const secondarySide = isHoriz ? 'left' : 'top';\n  const measurement = isHoriz ? 'height' : 'width';\n  const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] =\n    referenceOffsets[mainSide] +\n    referenceOffsets[measurement] / 2 -\n    popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] =\n      referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] =\n      referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n","/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n","import find from './find';\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(cur => cur[prop] === value);\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  const match = find(arr, obj => obj[prop] === value);\n  return arr.indexOf(match);\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nexport default function runModifiers(modifiers, data, ends) {\n  const modifiersToRun = ends === undefined\n    ? modifiers\n    : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(modifier => {\n    if (modifier['function']) { // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nexport default function update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  let data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {},\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(\n    this.state,\n    this.popper,\n    this.reference,\n    this.options.positionFixed\n  );\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(\n    this.options.placement,\n    data.offsets.reference,\n    this.popper,\n    this.reference,\n    this.options.modifiers.flip.boundariesElement,\n    this.options.modifiers.flip.padding\n  );\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  data.positionFixed = this.options.positionFixed;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(\n    this.popper,\n    data.offsets.reference,\n    data.placement\n  );\n\n  data.offsets.popper.position = this.options.positionFixed\n    ? 'fixed'\n    : 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(\n    ({ name, enabled }) => enabled && name === modifierName\n  );\n}\n","/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nexport default function getSupportedPropertyName(property) {\n  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefix = prefixes[i];\n    const toCheck = prefix ? `${prefix}${upperProp}` : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style.left = '';\n    this.popper.style.right = '';\n    this.popper.style.bottom = '';\n    this.popper.style.willChange = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicitly asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n  const ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  const isBody = scrollParent.nodeName === 'BODY';\n  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(\n      getScrollParent(target.parentNode),\n      event,\n      callback,\n      scrollParents\n    );\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function setupEventListeners(\n  reference,\n  options,\n  state,\n  updateBound\n) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  const scrollElement = getScrollParent(reference);\n  attachToScrollParents(\n    scrollElement,\n    'scroll',\n    state.updateBound,\n    state.scrollParents\n  );\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nexport default function enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(\n      this.reference,\n      this.options,\n      this.state,\n      this.scheduleUpdate\n    );\n  }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(target => {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n","import removeEventListeners from '../utils/removeEventListeners';\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nexport default function disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n","/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nexport default function isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setStyles(element, styles) {\n  Object.keys(styles).forEach(prop => {\n    let unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (\n      ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n        -1 &&\n      isNumeric(styles[prop])\n    ) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n","/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function(prop) {\n    const value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nexport default function applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nexport function applyStyleOnLoad(\n  reference,\n  popper,\n  options,\n  modifierOptions,\n  state\n) {\n  // compute reference element offsets\n  const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  const placement = computeAutoPlacement(\n    options.placement,\n    referenceOffsets,\n    popper,\n    reference,\n    options.modifiers.flip.boundariesElement,\n    options.modifiers.flip.padding\n  );\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n  return options;\n}\n","/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nexport default function getRoundedOffsets(data, shouldRound) {\n  const { popper, reference } = data.offsets;\n  const { round, floor } = Math;\n  const noRound = v => v;\n  \n  const referenceWidth = round(reference.width);\n  const popperWidth = round(popper.width);\n  \n  const isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n  const isVariation = data.placement.indexOf('-') !== -1;\n  const sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n  const bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n  const horizontalToInteger = !shouldRound\n    ? noRound\n    : isVertical || isVariation || sameWidthParity\n    ? round\n    : floor;\n  const verticalToInteger = !shouldRound ? noRound : round;\n\n  return {\n    left: horizontalToInteger(\n      bothOddWidth && !isVariation && shouldRound\n        ? popper.left - 1\n        : popper.left\n    ),\n    top: verticalToInteger(popper.top),\n    bottom: verticalToInteger(popper.bottom),\n    right: horizontalToInteger(popper.right),\n  };\n}\n","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\nimport getRoundedOffsets from '../utils/getRoundedOffsets';\nimport isBrowser from '../utils/isBrowser';\n\nconst isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeStyle(data, options) {\n  const { x, y } = options;\n  const { popper } = data.offsets;\n\n  // Remove this legacy support in Popper.js v2\n  const legacyGpuAccelerationOption = find(\n    data.instance.modifiers,\n    modifier => modifier.name === 'applyStyle'\n  ).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn(\n      'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n    );\n  }\n  const gpuAcceleration =\n    legacyGpuAccelerationOption !== undefined\n      ? legacyGpuAccelerationOption\n      : options.gpuAcceleration;\n\n  const offsetParent = getOffsetParent(data.instance.popper);\n  const offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  const styles = {\n    position: popper.position,\n  };\n\n  const offsets = getRoundedOffsets(\n    data,\n    window.devicePixelRatio < 2 || !isFirefox\n  );\n\n  const sideA = x === 'bottom' ? 'top' : 'bottom';\n  const sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  const prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  let left, top;\n  if (sideA === 'bottom') {\n    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n    // and not the bottom of the html element\n    if (offsetParent.nodeName === 'HTML') {\n      top = -offsetParent.clientHeight + offsets.bottom;\n    } else {\n      top = -offsetParentRect.height + offsets.bottom;\n    }\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    if (offsetParent.nodeName === 'HTML') {\n      left = -offsetParent.clientWidth + offsets.right;\n    } else {\n      left = -offsetParentRect.width + offsets.right;\n    }\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    const invertTop = sideA === 'bottom' ? -1 : 1;\n    const invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = `${sideA}, ${sideB}`;\n  }\n\n  // Attributes\n  const attributes = {\n    'x-placement': data.placement,\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = { ...attributes, ...data.attributes };\n  data.styles = { ...styles, ...data.styles };\n  data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n  return data;\n}\n","import find from './find';\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nexport default function isModifierRequired(\n  modifiers,\n  requestingName,\n  requestedName\n) {\n  const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n  const isRequired =\n    !!requesting &&\n    modifiers.some(modifier => {\n      return (\n        modifier.name === requestedName &&\n        modifier.enabled &&\n        modifier.order < requesting.order\n      );\n    });\n\n  if (!isRequired) {\n    const requesting = `\\`${requestingName}\\``;\n    const requested = `\\`${requestedName}\\``;\n    console.warn(\n      `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n    );\n  }\n  return isRequired;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function arrow(data, options) {\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  let arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn(\n        'WARNING: `arrow.element` must be child of its popper element!'\n      );\n      return data;\n    }\n  }\n\n  const placement = data.placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  const len = isVertical ? 'height' : 'width';\n  const sideCapitalized = isVertical ? 'Top' : 'Left';\n  const side = sideCapitalized.toLowerCase();\n  const altSide = isVertical ? 'left' : 'top';\n  const opSide = isVertical ? 'bottom' : 'right';\n  const arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjunction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -=\n      popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] +=\n      reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  const css = getStyleComputedProperty(data.instance.popper);\n  const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`]);\n  const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`]);\n  let sideValue =\n    center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = {\n    [side]: Math.round(sideValue),\n    [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n  };\n\n  return data;\n}\n","/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nexport default function getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n","/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nexport default [\n  'auto-start',\n  'auto',\n  'auto-end',\n  'top-start',\n  'top',\n  'top-end',\n  'right-start',\n  'right',\n  'right-end',\n  'bottom-end',\n  'bottom',\n  'bottom-start',\n  'left-end',\n  'left',\n  'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nexport default function clockwise(placement, counter = false) {\n  const index = validPlacements.indexOf(placement);\n  const arr = validPlacements\n    .slice(index + 1)\n    .concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise',\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  const boundaries = getBoundaries(\n    data.instance.popper,\n    data.instance.reference,\n    options.padding,\n    options.boundariesElement,\n    data.positionFixed\n  );\n\n  let placement = data.placement.split('-')[0];\n  let placementOpposite = getOppositePlacement(placement);\n  let variation = data.placement.split('-')[1] || '';\n\n  let flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach((step, index) => {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    const popperOffsets = data.offsets.popper;\n    const refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    const floor = Math.floor;\n    const overlapsRef =\n      (placement === 'left' &&\n        floor(popperOffsets.right) > floor(refOffsets.left)) ||\n      (placement === 'right' &&\n        floor(popperOffsets.left) < floor(refOffsets.right)) ||\n      (placement === 'top' &&\n        floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n      (placement === 'bottom' &&\n        floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n    const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    const overflowsBottom =\n      floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    const overflowsBoundaries =\n      (placement === 'left' && overflowsLeft) ||\n      (placement === 'right' && overflowsRight) ||\n      (placement === 'top' && overflowsTop) ||\n      (placement === 'bottom' && overflowsBottom);\n\n    // flip the variation if required\n    const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n    // flips variation if reference element overflows boundaries\n    const flippedVariationByRef =\n      !!options.flipVariations &&\n      ((isVertical && variation === 'start' && overflowsLeft) ||\n        (isVertical && variation === 'end' && overflowsRight) ||\n        (!isVertical && variation === 'start' && overflowsTop) ||\n        (!isVertical && variation === 'end' && overflowsBottom));\n\n    // flips variation if popper content overflows boundaries\n    const flippedVariationByContent =\n      !!options.flipVariationsByContent &&\n      ((isVertical && variation === 'start' && overflowsRight) ||\n        (isVertical && variation === 'end' && overflowsLeft) ||\n        (!isVertical && variation === 'start' && overflowsBottom) ||\n        (!isVertical && variation === 'end' && overflowsTop));\n\n    const flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = {\n        ...data.offsets.popper,\n        ...getPopperOffsets(\n          data.instance.popper,\n          data.offsets.reference,\n          data.placement\n        ),\n      };\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function keepTogether(data) {\n  const { popper, reference } = data.offsets;\n  const placement = data.placement.split('-')[0];\n  const floor = Math.floor;\n  const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  const side = isVertical ? 'right' : 'bottom';\n  const opSide = isVertical ? 'left' : 'top';\n  const measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] =\n      floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  const value = +split[1];\n  const unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    let element;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    const rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    let size;\n    if (unit === 'vh') {\n      size = Math.max(\n        document.documentElement.clientHeight,\n        window.innerHeight || 0\n      );\n    } else {\n      size = Math.max(\n        document.documentElement.clientWidth,\n        window.innerWidth || 0\n      );\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nexport function parseOffset(\n  offset,\n  popperOffsets,\n  referenceOffsets,\n  basePlacement\n) {\n  const offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  const divider = fragments.indexOf(\n    find(fragments, frag => frag.search(/,|\\s/) !== -1)\n  );\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn(\n      'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n    );\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  const splitRegex = /\\s*,\\s*|\\s+/;\n  let ops = divider !== -1\n    ? [\n        fragments\n          .slice(0, divider)\n          .concat([fragments[divider].split(splitRegex)[0]]),\n        [fragments[divider].split(splitRegex)[1]].concat(\n          fragments.slice(divider + 1)\n        ),\n      ]\n    : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map((op, index) => {\n    // Most of the units rely on the orientation of the popper\n    const measurement = (index === 1 ? !useHeight : useHeight)\n      ? 'height'\n      : 'width';\n    let mergeWithPrevious = false;\n    return (\n      op\n        // This aggregates any `+` or `-` sign that aren't considered operators\n        // e.g.: 10 + +5 => [10, +, +5]\n        .reduce((a, b) => {\n          if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n            a[a.length - 1] = b;\n            mergeWithPrevious = true;\n            return a;\n          } else if (mergeWithPrevious) {\n            a[a.length - 1] += b;\n            mergeWithPrevious = false;\n            return a;\n          } else {\n            return a.concat(b);\n          }\n        }, [])\n        // Here we convert the string values into number values (in px)\n        .map(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n    );\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach((op, index) => {\n    op.forEach((frag, index2) => {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nexport default function offset(data, { offset }) {\n  const { placement, offsets: { popper, reference } } = data;\n  const basePlacement = placement.split('-')[0];\n\n  let offsets;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function preventOverflow(data, options) {\n  let boundariesElement =\n    options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  // NOTE: DOM access here\n  // resets the popper's position so that the document size can be calculated excluding\n  // the size of the popper element itself\n  const transformProp = getSupportedPropertyName('transform');\n  const popperStyles = data.instance.popper.style; // assignment to help minification\n  const { top, left, [transformProp]: transform } = popperStyles;\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  const boundaries = getBoundaries(\n    data.instance.popper,\n    data.instance.reference,\n    options.padding,\n    boundariesElement,\n    data.positionFixed\n  );\n\n  // NOTE: DOM access here\n  // restores the original style properties after the offsets have been computed\n  popperStyles.top = top;\n  popperStyles.left = left;\n  popperStyles[transformProp] = transform;\n\n  options.boundaries = boundaries;\n\n  const order = options.priority;\n  let popper = data.offsets.popper;\n\n  const check = {\n    primary(placement) {\n      let value = popper[placement];\n      if (\n        popper[placement] < boundaries[placement] &&\n        !options.escapeWithReference\n      ) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return { [placement]: value };\n    },\n    secondary(placement) {\n      const mainSide = placement === 'right' ? 'left' : 'top';\n      let value = popper[mainSide];\n      if (\n        popper[placement] > boundaries[placement] &&\n        !options.escapeWithReference\n      ) {\n        value = Math.min(\n          popper[mainSide],\n          boundaries[placement] -\n            (placement === 'right' ? popper.width : popper.height)\n        );\n      }\n      return { [mainSide]: value };\n    },\n  };\n\n  order.forEach(placement => {\n    const side =\n      ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = { ...popper, ...check[side](placement) };\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function shift(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    const { reference, popper } = data.offsets;\n    const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    const side = isVertical ? 'left' : 'top';\n    const measurement = isVertical ? 'width' : 'height';\n\n    const shiftOffsets = {\n      start: { [side]: reference[side] },\n      end: {\n        [side]: reference[side] + reference[measurement] - popper[measurement],\n      },\n    };\n\n    data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n  }\n\n  return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  const refRect = data.offsets.reference;\n  const bound = find(\n    data.instance.modifiers,\n    modifier => modifier.name === 'preventOverflow'\n  ).boundaries;\n\n  if (\n    refRect.bottom < bound.top ||\n    refRect.left > bound.right ||\n    refRect.top > bound.bottom ||\n    refRect.right < bound.left\n  ) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function inner(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] =\n    reference[basePlacement] -\n    (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nexport default {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift,\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unit-less, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the `height`.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0,\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * A scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper. This makes sure the popper always has a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent',\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near each other\n   * without leaving any gap between the two. Especially useful when the arrow is\n   * enabled and you want to ensure that it points to its reference element.\n   * It cares only about the first axis. You can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether,\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjunction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]',\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations)\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position.\n     * The popper will never be placed outside of the defined boundaries\n     * (except if `keepTogether` is enabled)\n     */\n    boundariesElement: 'viewport',\n    /**\n     * @prop {Boolean} flipVariations=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the reference element overlaps its boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariations: false,\n    /**\n     * @prop {Boolean} flipVariationsByContent=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the popper element overlaps its reference boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariationsByContent: false,\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner,\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide,\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right',\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define your own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: undefined,\n  },\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n","import modifiers from '../modifiers/index';\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nexport default {\n  /**\n   * Popper's placement.\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Set this to true if you want popper to position it self in 'fixed' mode\n   * @prop {Boolean} positionFixed=false\n   */\n  positionFixed: false,\n\n  /**\n   * Whether events (resize, scroll) are initially enabled.\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: () => {},\n\n  /**\n   * Callback called when the popper is updated. This callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: () => {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js.\n   * @prop {modifiers}\n   */\n  modifiers,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\n  /**\n   * Creates a new Popper.js instance.\n   * @class Popper\n   * @param {Element|referenceObject} reference - The reference element used to position the popper\n   * @param {Element} popper - The HTML / XML element used as the popper\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  constructor(reference, popper, options = {}) {\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = { ...Popper.Defaults, ...options };\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: [],\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference && reference.jquery ? reference[0] : reference;\n    this.popper = popper && popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys({\n      ...Popper.Defaults.modifiers,\n      ...options.modifiers,\n    }).forEach(name => {\n      this.options.modifiers[name] = {\n        // If it's a built-in modifier, use it as base\n        ...(Popper.Defaults.modifiers[name] || {}),\n        // If there are custom options, override and merge with default ones\n        ...(options.modifiers ? options.modifiers[name] : {}),\n      };\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers)\n      .map(name => ({\n        name,\n        ...this.options.modifiers[name],\n      }))\n      // sort the modifiers by order\n      .sort((a, b) => a.order - b.order);\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(modifierOptions => {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(\n          this.reference,\n          this.popper,\n          this.options,\n          modifierOptions,\n          this.state\n        );\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    const eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n  update() {\n    return update.call(this);\n  }\n  destroy() {\n    return destroy.call(this);\n  }\n  enableEventListeners() {\n    return enableEventListeners.call(this);\n  }\n  disableEventListeners() {\n    return disableEventListeners.call(this);\n  }\n\n  /**\n   * Schedules an update. It will run on the next UI update available.\n   * @method scheduleUpdate\n   * @memberof Popper\n   */\n  scheduleUpdate = () => requestAnimationFrame(this.update);\n\n  /**\n   * Collection of utilities useful when writing custom modifiers.\n   * Starting from version 1.7, this method is available only if you\n   * include `popper-utils.js` before `popper.js`.\n   *\n   * **DEPRECATION**: This way to access PopperUtils is deprecated\n   * and will be removed in v2! Use the PopperUtils module directly instead.\n   * Due to the high instability of the methods contained in Utils, we can't\n   * guarantee them to follow semver. Use them at your own risk!\n   * @static\n   * @private\n   * @type {Object}\n   * @deprecated since version 1.8\n   * @member Utils\n   * @memberof Popper\n   */\n  static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n  static placements = placements;\n\n  static Defaults = Defaults;\n}\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n"],"sourceRoot":""}