{"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","isMobile","innerWidth","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","selectFirstColor","firstColor","first","get","t","o","a","d","i","l","m","c","Object","defineProperty","enumerable","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","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","tagName","after","width","off","fn","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","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","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","_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","_getScrollbarWidth","fixedContent","stickyContent","actualPadding","calculatedPadding","_this10","actualMargin","marginRight","calculatedMargin","padding","elements","scrollDiv","scrollbarWidth","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","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 var isMobile = window.innerWidth < 576;\n if (isMobile) {\n $(\".single-detail-images .image-details-container\").click(function () {\n $('#carouselExampleIndicators').show();\n });\n }else{\n $(\".single-detail-images\").click(function () {\n $('#carouselExampleIndicators').show();\n });\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 function selectFirstColor() {\n setTimeout(() => {\n var firstColor = $('.color-button-selectable').first();\n if (firstColor && !firstColor.attr('disabled')) {\n firstColor.get(0).click();\n }\n }, 500);\n }\nmodule.exports =function () {\n initCrossSellCarousel();\n selectFirstColor()\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\">×</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 spinner: function (e, t, n) {\n \"use strict\";\n function o(e) {\n var t = $('<div class=\"veil\"><div class=\"underlay\"></div></div>');\n t.append(\n '<div class=\"spinner\"><div class=\"dot1\"></div><div class=\"dot2\"></div></div>'\n ),\n \"IMG\" === e.get(0).tagName\n ? (e.after(t),\n t.css({ width: e.width(), height: e.height() }),\n \"static\" === e.parent().css(\"position\") &&\n e.parent().css(\"position\", \"relative\"))\n : (e.append(t),\n \"static\" === e.css(\"position\") &&\n (e.parent().css(\"position\", \"relative\"),\n e.parent().addClass(\"veiled\")),\n \"BODY\" === e.get(0).tagName &&\n t.find(\".spinner\").css(\"position\", \"fixed\")),\n t.click(function (e) {\n e.stopPropagation();\n });\n }\n function i(e) {\n e.parent().hasClass(\"veiled\") &&\n (e.parent().css(\"position\", \"\"),\n e.parent().removeClass(\"veiled\")),\n e.off(\"click\"),\n e.remove();\n }\n ($.fn.spinner = function () {\n var e = $(this);\n return new (function () {\n (this.start = function () {\n e.length && o(e);\n }),\n (this.stop = function () {\n e.length && i($(\".veil\"));\n });\n })();\n }),\n ($.spinner = function () {\n return new (function () {\n (this.start = function () {\n o($(\"body\"));\n }),\n (this.stop = function () {\n i($(\".veil\"));\n });\n })();\n });\n },\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' + '\">‹</span>',\n\t\t\t'<span aria-label=\"' + 'Next' + '\">›</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":""}