{"version":3,"sources":["webpack:///./node_modules/jquery/dist/jquery.js-exposed?fe57","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/owl.carousel/dist/owl.carousel.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/core-js/modules/es6.regexp.replace.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/@fancyapps/fancybox/dist/jquery.fancybox.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/es6.regexp.search.js","webpack:///./node_modules/lazysizes/lazysizes.js","webpack:///./node_modules/core-js/modules/es6.regexp.constructor.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/modules/es6.regexp.split.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/_flags.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/core-js/modules/_fix-re-wks.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/modules/es6.regexp.match.js","webpack:///./node_modules/core-js/modules/_advance-string-index.js","webpack:///./node_modules/core-js/modules/_regexp-exec.js","webpack:///./node_modules/sticky-sidebar/dist/sticky-sidebar.js","webpack:///./node_modules/svg4everybody/dist/svg4everybody.js","webpack:///./node_modules/kv.cookieconsent/index.js","webpack:///./node_modules/core-js/es6/promise.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/modules/_species-constructor.js","webpack:///./node_modules/core-js/modules/_add-to-unscopables.js","webpack:///./node_modules/lazysizes/plugins/print/ls.print.js","webpack:///./node_modules/lazysizes/plugins/unveilhooks/ls.unveilhooks.js","webpack:///./node_modules/object-fit-images/dist/ofi.common-js.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/modules/_is-regexp.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/core-js/modules/_string-at.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/_task.js","webpack:///./node_modules/core-js/modules/_new-promise-capability.js","webpack:///./node_modules/core-js/modules/es6.regexp.to-string.js","webpack:///./node_modules/jquery-ajax-unobtrusive/dist/jquery.unobtrusive-ajax.js","webpack:///./node_modules/core-js/modules/es7.array.includes.js","webpack:///./node_modules/core-js/modules/es6.regexp.flags.js","webpack:///./node_modules/core-js/modules/web.dom.iterable.js","webpack:///./node_modules/core-js/modules/_promise-resolve.js","webpack:///./node_modules/tabs/src/scripts/index.bundle.js","webpack:///./node_modules/jquery/dist/jquery.js-exposed","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/jquery-scrollify/jquery.scrollify.js","webpack:///./node_modules/jquery.cookie/jquery.cookie.js","webpack:///./node_modules/aos/dist/aos.js","webpack:///./node_modules/stickyfilljs/dist/stickyfill.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/core-js/modules/_object-gopn.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/modules/_function-to-string.js","webpack:///./node_modules/core-js/modules/es6.regexp.exec.js","webpack:///./node_modules/core-js/modules/_same-value.js","webpack:///./node_modules/core-js/modules/es6.object.to-string.js","webpack:///./node_modules/core-js/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/core-js/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/core-js/modules/es6.promise.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/modules/_invoke.js","webpack:///./node_modules/core-js/modules/_microtask.js","webpack:///./node_modules/core-js/modules/_perform.js","webpack:///./node_modules/core-js/modules/_user-agent.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/simple-parallax-js/dist/simpleParallax.min.js","webpack:///./node_modules/headroom.js/dist/headroom.js"],"names":["module","store","uid","Symbol","USE_SYMBOL","exports","name","isObject","it","TypeError","global","window","Math","self","Function","__g","Owl","element","options","this","settings","$","extend","Defaults","$element","_handlers","_plugins","_supress","_current","_speed","_coordinates","_breakpoint","_width","_items","_clones","_mergers","_widths","_invalidated","_pipe","_drag","time","target","pointer","stage","start","current","direction","_states","tags","each","proxy","i","handler","Plugins","key","plugin","charAt","toLowerCase","slice","Workers","priority","worker","push","filter","run","setup","initialize","document","undefined","style","prefixes","tests","AutoRefresh","carousel","_core","_interval","_visible","e","namespace","autoRefresh","watch","on","Lazy","_loaded","lazyLoad","property","type","n","center","ceil","items","position","value","clones","length","load","v","lazyLoadEager","loop","relative","AutoHeight","_previousHeight","autoHeight","update","closest","itemClass","index","_intervalId","refThis","resize","clearTimeout","setTimeout","Video","_videos","_playing","register","video","isInFullScreen","preventDefault","is","$stage","find","remove","stop","content","css","fetch","play","Animate","scope","core","swapping","previous","next","handlers","animateOut","animateIn","swap","Autoplay","_call","_time","_timeout","_paused","autoplay","t","s","autoplayHoverPause","pause","test","prefixed","result","upper","toUpperCase","join","split","Zepto","rewind","checkVisibility","mouseDrag","touchDrag","pullDrag","freeDrag","margin","stagePadding","merge","mergeFit","autoWidth","startPosition","rtl","smartSpeed","fluidSpeed","dragEndSpeed","responsive","responsiveRefreshRate","responsiveBaseElement","fallbackEasing","slideTransition","info","nestedItemSelector","itemElement","stageElement","refreshClass","loadedClass","loadingClass","rtlClass","responsiveClass","dragClass","stageClass","stageOuterClass","grabClass","Width","Default","Inner","Outer","Type","Event","State","width","cache","children","grid","toFixed","iterator","widths","min","view","max","size","repeat","append","prepend","normalize","outerHTML","addClass","appendTo","prependTo","coordinates","padding","abs","eq","removeAttr","minimum","maximum","reset","animate","inner","outer","begin","end","matches","op","removeClass","prototype","initializeStage","wrap","parent","initializeItems","$items","get","map","item","refresh","replace","not","isVisible","invalidate","imgs","enter","trigger","toggleClass","nestedSelector","preloadAutoWidthImages","registerEventHandlers","leave","viewport","overwrites","match","breakpoint","Number","attr","RegExp","optionsLogic","prepare","event","data","p","all","grep","dimension","onThrottledResize","resizeTimer","onResize","isDefaultPrevented","support","transition","onTransitionEnd","onDragStart","onDragEnd","which","transform","x","y","left","top","speed","Date","getTime","one","delta","difference","onDragMove","pull","off","coordinate","transform3d","state","part","suppress","release","m","isNumeric","reciprocalItemsWidth","elementWidth","mergers","even","odd","multiplier","newPosition","duration","from","to","factor","distance","revert","prev","stopPropagation","srcElement","originalTarget","innerWidth","documentElement","clientWidth","console","warn","empty","jQuery","nodeType","addBack","add","after","before","splice","images","Image","src","destroy","unwrap","contents","removeData","a","o","b","listener","capture","addEventListener","attachEvent","removeEventListener","detachEvent","status","count","camelCase","relatedTarget","onTrigger","call","concat","object","_default","special","owl","apply","indexOf","arguments","tag","inArray","events","originalEvent","touches","changedTouches","pageX","pageY","clientX","clientY","number","isNaN","parseFloat","first","second","fn","owlCarousel","option","args","Array","$this","Constructor","autoRefreshInterval","setInterval","clearInterval","Object","getOwnPropertyNames","$item","$elements","url","devicePixelRatio","image","onload","autoHeightClass","lazyLoadEnabled","visible","toArray","heights","maxheight","height","videoHeight","videoWidth","id","Error","thumbnail","create","path","tnLink","lazyClass","dimensions","customTn","srcType","ajax","jsonp","dataType","success","thumbnail_large","framegrab_url","html","insertAfter","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","hasClass","clear","incoming","outgoing","animation","autoplayTimeout","autoplaySpeed","_next","round","read","hidden","timeout","elapsed","Navigation","_initialized","_pages","_controls","_templates","_overrides","dotsData","dotClass","pop","draw","nav","navText","navSpeed","navElement","navContainer","navContainerClass","navClass","slideBy","dotsClass","dots","dotsEach","dotsSpeed","dotsContainer","override","$relative","$previous","$next","prop","$absolute","control","overides","j","lower","disabled","page","getPosition","successor","standard","Hash","_hashes","hash","location","substring","URLhashListener","WebkitTransition","MozTransition","OTransition","WebkitAnimation","MozAnimation","OAnimation","String","defineProperty","anObject","toObject","toLength","toInteger","advanceStringIndex","regExpExec","floor","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","defined","REPLACE","$replace","maybeCallNative","searchValue","replaceValue","O","regexp","res","done","fullUnicode","rx","S","functionalReplace","results","unicode","lastIndex","accumulatedResult","nextSourcePosition","matched","captures","namedCaptures","groups","replacement","replacerArgs","str","tailPos","symbols","ch","f","hide","has","SRC","$toString","TO_STRING","TPL","inspectSource","val","safe","isFunction","$W","$D","called","requestAFrame","cancelAFrame","transitionEnd","forceRedraw","mergeOpts","FancyBox","div","buttonStr","focusStr","$pressed","_run","opts","$target","instance","currentTarget","fancybox","getInstance","$trigger","selector","open","stuff","defaults","closeExisting","gutter","keyboard","preventCaptionOverlap","arrows","infobar","smallBtn","toolbar","buttons","idleTime","protect","modal","preload","iframe","tpl","scrolling","format","autoStart","defaultType","animationEffect","animationDuration","zoomOpacity","transitionEffect","transitionDuration","slideClass","baseClass","baseTpl","spinnerTpl","errorTpl","btnTpl","download","zoom","close","arrowLeft","arrowRight","parentEl","hideScrollbar","autoFocus","backFocus","trapFocus","fullScreen","touch","vertical","momentum","media","slideShow","thumbs","hideOnClose","axis","wheel","onInit","noop","beforeLoad","afterLoad","beforeShow","afterShow","beforeClose","afterClose","onActivate","onDeactivate","clickContent","clickSlide","clickOutside","dblclickContent","dblclickSlide","dblclickOutside","mobile","lang","i18n","en","CLOSE","NEXT","PREV","ERROR","PLAY_START","PLAY_STOP","FULL_SCREEN","THUMBS","DOWNLOAD","SHARE","ZOOM","de","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","callback","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","oCancelAnimationFrame","el","createElement","transitions","$el","offsetHeight","opts1","opts2","rez","isArray","isPlainObject","isMobile","currIndex","parseInt","prevIndex","prevPos","currPos","firstRun","group","slides","addContent","init","$container","firstItemOpts","body","scrollHeight","innerHeight","translate","$refs","container","forEach","activate","jumpTo","obj","arr","makeArray","srcParts","$orig","found","contentType","$thumb","thumb","caption","shift","keys","updateControls","Thumbs","isActive","focus","addEvents","removeEvents","isScaledDown","requestId","show","keycode","keyCode","ctrlKey","altKey","shiftKey","idleSecondsCounter","isIdle","showControls","idleInterval","isDragging","hideControls","pos","slidePos","stagePos","diff","groupLen","isClosing","isAnimating","createSlide","forcedDuration","isMoved","$slide","loadSlide","getTranslate","slide","isComplete","className","leftPos","setTranslate","opacity","complete","isLoaded","revealContent","updateSlide","scaleToActual","imgPos","posX","posY","scaleY","$content","canvasWidth","canvasHeight","newImgWidth","newImgHeight","hasError","scaleX","updateCursor","SlideShow","scaleToFit","getFitPos","maxWidth","maxHeight","minRatio","aspectRatio","ratio","adjustCaption","adjustLayout","navigation","clientHeight","centerSlide","siblings","nextWidth","nextHeight","Guestures","isZoomable","canPan","fitPos","ajaxLoad","isLoading","setImage","setIframe","setContent","videoFormat","setError","showLoading","textStatus","error","jqXHR","abort","ghost","$img","$image","checkSrcset","onerror","$ghost","setBigImage","temp","pxRatio","windowWidth","srcset","ret","trim","postfix","sort","img","sizes","resolveImageSlideSize","naturalWidth","naturalHeight","hideLoading","readyState","imgWidth","imgHeight","$iframe","isReady","$body","frameWidth","frameHeight","ignore","outerWidth","outerHeight","unbind","isRevealed","hasOwnProperty","parents","$placeholder","$smallBtn","wrapInner","$spinner","fadeIn","button","preventOverlap","$caption","captionH","$clone","clone","marginBottom","inlinePadding","actualPadding","disableLayoutFix","effect","effectClassName","getThumbPos","brw","bbw","elem","ownerDocument","elemCenter","getBoundingClientRect","offsetWidth","elementFromPoint","thumbPos","btw","blw","Document","exitFullscreen","webkitExitFullscreen","scrollTop","scrollLeft","focusableStr","focusableItems","focusedItemIndex","activeElement","d","cleanUp","domRect","$focus","scrollX","scrollY","unshift","hasHiddenControls","andCaption","toggleControls","version","command","navigator","userAgent","use3d","getComputedStyle","getPropertyValue","documentMode","props","leaveAnimationName","propertyName","callCallback","params","param","youtube","matcher","autohide","fs","rel","hd","wmode","enablejsapi","html5","paramPlace","vimeo","show_title","show_byline","show_portrait","fullscreen","instagram","gmap_place","gmap_search","VideoAPILoader","urlParams","paramObj","provider","providerName","providerOpts","decodeURIComponent","p1","origSrc","contentSource","class","loading","loaded","vendor","script","_this","onYouTubeIframeAPIReady","appendChild","YT","Player","onStateChange","Vimeo","getPointerXY","point2","point1","what","sqrt","pow","isClickable","onclick","atts","attributes","nodeName","substr","isScrollable","overflowY","overflowX","horizontal","scrollWidth","$bg","bg","tapped","ontouchstart","isTouchDevice","offset","realPoints","startPoints","startEvent","canTap","isPanning","isSwiping","isZooming","isScrolling","startTime","distanceX","distanceY","contentLastPos","contentStartPos","sliderStartPos","onscroll","centerPointStartX","centerPointStartY","percentageOfImageAtPinchPointX","percentageOfImageAtPinchPointY","startDistanceBetweenFingers","ontouchmove","ontouchend","newPoints","onSwipe","onPan","onZoom","angle","swiping","atan2","PI","sliderLastPos","limitMovement","currentOffsetX","currentOffsetY","currentWidth","currentHeight","newOffsetX","newOffsetY","minTranslateX","minTranslateY","maxTranslateX","maxTranslateY","limitPosition","newWidth","newHeight","pinchRatio","translateFromZoomingX","translateFromZoomingY","centerPointEndX","centerPointEndY","translateFromTranslatingX","newPos","panning","zooming","endPoints","dMs","onTap","velocityX","velocityY","endPanning","endZooming","endSwiping","len","canAdvance","process","prefix","action","tapX","tapY","where","progress","timer","$button","toggle","$progress","set","force","keypress","FullScreen","fnMap","request","requestFullscreen","ALLOW_KEYBOARD_INPUT","exit","isFullscreen","Boolean","enabled","fullscreenEnabled","fullscreenchange","FancyThumbs","CLASS","CLASS_ACTIVE","$grid","$list","list","innerHTML","that","share","currentHash","entityMap","encodeURIComponent","text","shareInstance","shareCurrent","click","href","parseUrl","gallery","triggerFromUrl","escapeSelector","getGalleryID","sel","asCodePoint","charCodeAt","toString","origHash","hashTimer","history","title","pathname","search","hasCreatedHistory","back","replaceState","fb","reverse","tmp","prevTime","currTime","deltaY","deltaX","wheelDelta","detail","sameValue","SEARCH","$search","previousLastIndex","factory","lazysizes","lazySizesCfg","docElem","supportPicture","_addEventListener","_getAttribute","requestIdleCallback","regPicture","loadEvents","regClassCache","addRemoveLoadEvents","triggerEvent","updatePolyfill","getCSS","getWidth","rAF","running","waiting","firstFns","secondFns","fns","rAFIt","debounce","loader","preloadElems","isCompleted","resetPreloadingTimer","loadMode","started","eLvW","elvH","eLtop","eLleft","eLright","eLbottom","isBodyHidden","lastTime","gDelay","rICTimeout","idleCallback","regImg","regIframe","supportScroll","currentExpand","lowRuns","throttledCheckElements","rafedSwitchLoadingClass","rafSwitchLoadingClass","lazyUnveil","unveilElement","afterScroll","autoSizer","autosizesElems","sizeElement","debouncedUpdateElementsSizes","lazySizesDefaults","preloadClass","errorClass","autosizesClass","fastLoadedClass","iframeLoadMode","srcAttr","srcsetAttr","sizesAttr","minSize","customMedia","expFactor","hFac","loadHidden","ricTimeout","throttleDelay","lazySizesConfig","lazysizesConfig","getElementsByClassName","HTMLPictureElement","bind","ele","cls","setAttribute","reg","dom","evt","noBubbles","noCancelable","createEvent","initEvent","dispatchEvent","full","polyfill","picturefill","pf","reevaluate","elements","_lazysizesWidth","parentNode","rafBatch","_lsFlush","simple","func","later","last","now","timestamp","checkElements","switchLoadingClass","isAuto","isImg","isPicture","firesLoad","defaultPrevented","resetPreloading","getElementsByTagName","handleSources","getAttribute","contentWindow","_lazyRace","_lazyCache","_","loadingElements","persisted","querySelectorAll","MutationObserver","observe","childList","subtree","checkElems","isPriority","delay","unveil","updateElem","_aLSL","altLoadmodeScrollListner","sources","dataAttr","getSizeElement","cfg","uP","aC","rC","hC","fire","gW","noSupport","runFns","queue","eLlen","autoLoadElem","loadedSomething","elemExpand","elemNegativeExpand","elemExpandVal","beforeExpandVal","defaultExpand","preloadExpand","lazyloadElems","prematureUnveil","expand","_defEx","rect","bottom","right","outerRect","offsetParent","preloadAfterLoad","source","sourceSrcset","lazySizes","inheritIfRequired","dP","gOPN","isRegExp","$flags","Base","$RegExp","proto","re1","re2","CORRECT_NEW","tiRE","piRE","fiU","constructor","configurable","createDesc","exec","IE8_DOM_DEFINE","toPrimitive","P","Attributes","__e","g","speciesConstructor","callRegExpExec","regexpExec","fails","$min","$push","$SPLIT","LENGTH","LAST_INDEX","MAX_UINT32","SUPPORTS_Y","SPLIT","$split","internalSplit","separator","limit","string","lastLength","output","flags","ignoreCase","multiline","sticky","lastLastIndex","splitLimit","separatorCopy","splitter","C","unicodeMatching","lim","q","A","z","aFunction","c","$export","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_PROTO","IS_BIND","B","PROTOTYPE","expProto","own","ctx","redefine","U","W","R","IObject","classof","builtinExec","cof","TAG","ARG","T","callee","originalExec","wks","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","re","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","KEY","nativeRegExpMethod","rxfn","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","strfn","nativeMethod","arg2","forceStringMethod","arg","bitmap","enumerable","writable","shared","SHARED","mode","copyright","px","random","MATCH","$match","matchStr","at","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","commonjsGlobal","unwrapExports","__esModule","createCommonjsModule","stickySidebar","_classCallCheck","_createClass","defineProperties","descriptor","protoProps","staticProps","StickySidebar","EVENT_KEY","DEFAULTS","topSpacing","bottomSpacing","containerSelector","innerWrapperSelector","stickyClass","resizeSensor","minWidth","sidebar","querySelector","sidebarInner","parentElement","affixedType","_reStyle","translateY","lastTopSpacing","lastBottomSpacing","sidebarHeight","sidebarWidth","containerTop","containerHeight","viewportHeight","viewportTop","lastViewportTop","method","_this2","_setSupportFeatures","wrapper","firstChild","containers","contains","_widthBreakpoint","calcDimensions","stickyPosition","bindEvents","passive","ResizeSensor","handleEvent","updateSticky","dims","offsetRelative","containerBottom","_calcDimensionsWithScroll","sidebarLeft","viewportBottom","viewportLeft","isSidebarFitsViewport","observeScrollDir","furthest","getAffixType","colliderTop","affixType","_getAffixTypeScrollingUp","_getAffixTypeScrollingDown","sidebarBottom","colliderBottom","_getStyle","_getTranslate","affixEvent","eventTrigger","unit","_key","_unit","affixedEvent","removeAttribute","_this3","_running","eventType","supportTransform","classList","minHeight","styleReset","_key2","detach","eventName","CustomEvent","initCustomEvent","offsetTop","offsetLeft","tagName","default","stickySidebar$1","__moduleExports","root","svg4everybody","rawopts","inIframe","requests","uses","numberOfSvgUseElementsToBypass","oninterval","xhr","use","svg","node","attributeName","validate","removeChild","srcSplit","XMLHttpRequest","send","_embeds","onreadystatechange","cachedDocument","_cachedDocument","implementation","createHTMLDocument","responseText","_cachedTarget","getElementById","embed","fragment","createDocumentFragment","viewBox","hasAttribute","cloneNode","childNodes","pluginName","cookieName","btn","accept","decline","consentType","onAccepted","elm","onDeclined","onShow","onHide","onCheck","cookie","ca","date","setTime","toGMTString","Plugin","_defaults","_name","opt","Promise","def","stat","toIObject","toAbsoluteIndex","IS_INCLUDES","fromIndex","D","UNSCOPABLES","ArrayProto","config","onprint","printMedia","matchMedia","addListener","bgLoad","regBgUrlEscape","uniqueUrls","addStyleScript","cb","insertElem","insertBefore","poster","er","requireJs","backgroundImage","JSON","stringify","OFI","propRegex","testImg","supportsObjectFit","supportsObjectPosition","supportsOFI","supportsCurrentSrc","currentSrc","nativeGetAttribute","nativeSetAttribute","autoModeEnabled","setPlaceholder","placeholder","onImageReady","fixOne","descriptors","parsed","fontFamily","ofi","skipTest","ss","err","ns","evaled","fillImg","reselect","curSrc","supported","backgroundPosition","backgroundRepeat","backgroundOrigin","backgroundSize","fix","startAutoMode","watchMQ","getOfiImageMaybe","HTMLImageElement","valueOf","arrayIndexOf","IE_PROTO","names","DESCRIPTORS","l","returnThis","LIBRARY","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","VALUES","NAME","DEFAULT","IS_SET","FORCED","getMethod","kind","methods","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","IteratorPrototype","values","$keys","enumBugKeys","defer","invoke","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","ONREADYSTATECHANGE","nextTick","port","channel","port2","port1","onmessage","postMessage","importScripts","PromiseCapability","resolve","reject","promise","$$resolve","$$reject","define","getFunction","code","argNames","parts","isMethodProxySafe","asyncRequest","formdata","confirm","beforeSend","setRequestHeader","getResponseHeader","replaceWith","FormData","file","files","processData","data_click","data_target","form","clickInfo","clickTarget","isCancel","validationInfo","serializeArray","$includes","includes","$iterators","getKeys","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","newPromiseCapability","promiseCapability","tabs","tabPaginationClass","tabPaginationContainer","tabPaginationList","tabContent","tabContentWrapper","tabPaginationItems","tabActiveClass","tabScrollClass","h","r","marginLeft","marginRight","disconnect","u","w","noGlobal","isWindow","getProto","flat","array","class2type","hasOwn","fnToString","ObjectFunctionString","preservedScriptAttributes","nonce","noModule","DOMEval","doc","head","toType","rhtmlSuffix","context","isArrayLike","jquery","num","pushStack","elems","prevObject","_elem","copy","copyIsArray","deep","expando","msg","Ctor","isEmptyObject","globalEval","textContent","nodeValue","isXMLDoc","namespaceURI","invert","callbackExpect","guid","_i","whitespace","rtrimCSS","rcssescape","bup","compareDocumentPosition","fcssescape","Expr","outermostContext","sortInput","hasDuplicate","documentIsHTML","rbuggyQSA","preferredDoc","pushNative","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","booleans","identifier","pseudos","rwhitespace","rcomma","rleadingCombinator","rdescend","rpseudo","ridentifier","matchExpr","ID","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","fromCharCode","unloadHandler","setDocument","inDisabledFieldset","addCombinator","dir","els","seed","nid","newSelector","newContext","testContext","tokenize","toSelector","qsaError","select","cacheLength","markFunction","assert","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","webkitMatchesSelector","msMatchesSelector","subWindow","defaultView","getById","getElementsByName","disconnectedMatch","cssHas","attrId","getAttributeNode","input","compare","sortDetached","expr","matchesSelector","attrHandle","uniqueSort","duplicates","sortStable","createPseudo","preFilter","excess","unquoted","nodeNameSelector","expectedNodeName","pattern","operator","check","_argument","forward","ofType","_context","xml","outerCache","nodeIndex","useCache","lastChild","pseudo","setFilters","idx","compile","unmatched","elemLang","hasFocus","tabIndex","checked","selected","selectedIndex","nextSibling","header","_matchIndexes","lt","gt","nth","radio","checkbox","password","submit","parseOnly","tokens","soFar","preFilters","cached","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","matcherOut","preMap","postMap","preexisting","contexts","matcherIn","matcherFromGroupMatchers","elementMatchers","setMatchers","superMatcher","outermost","matchedCount","setMatched","contextBackup","byElement","dirrunsUnique","bySet","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","token","compiled","filters","unique","getText","isXML","selectors","until","truncate","rneedsContext","rsingleTag","winnow","qualifier","rootjQuery","rparentsprev","ready","parseHTML","guaranteedUnique","sibling","cur","targets","prevAll","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","rnothtmlwhite","Identity","Thrower","ex","adoptValue","noValue","fail","then","Callbacks","flag","locked","once","fired","firing","firingIndex","memory","stopOnFalse","disable","lock","fireWith","Deferred","tuples","always","deferred","pipe","newDefer","tuple","returned","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","mightThrow","notifyWith","resolveWith","exceptionHook","rejectWith","getErrorHook","getStackHook","stateString","when","singleValue","updateFunc","resolveContexts","resolveValues","remaining","primary","rerrorNames","readyList","asyncError","message","stack","readyException","completed","catch","readyWait","wait","doScroll","access","chainable","emptyGet","raw","bulk","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","acceptData","owner","Data","hasData","dataPriv","dataUser","rbrace","rmultiDash","parse","_data","_removeData","attrs","dequeue","startLength","hooks","_queueHooks","setter","clearQueue","isHiddenWithinTree","display","isAttached","pnum","rcssNum","cssExpand","composed","getRootNode","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","cssNumber","initialInUnit","defaultDisplayMap","showHide","rcheckableType","rtagName","rscriptType","wrapMap","checkClone","noCloneChecked","defaultValue","thead","col","tr","td","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","th","optgroup","rhtml","buildFragment","scripts","selection","ignored","attached","nodes","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","types","origFn","leverageNative","isSetup","saved","isTrigger","delegateType","stopImmediatePropagation","isImmediatePropagationStopped","handleObjIn","eventHandle","namespaces","origType","elemData","handle","triggered","dispatch","bindType","handleObj","delegateCount","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","delegateTarget","preDispatch","isPropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","noBubble","beforeunload","returnValue","timeStamp","isSimulated","bubbles","cancelable","eventPhase","metaKey","charCode","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","blur","focusMappedHandler","simulate","attaches","dataHolder","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","domManip","collection","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","replaceChild","replaceAll","original","insert","getStyles","opener","old","pixelPositionVal","boxSizingReliableVal","scrollboxSizeVal","pixelBoxStylesVal","reliableTrDimensionsVal","reliableMarginLeftVal","rnumnonpx","rcustomProp","rboxStyle","computeStyleTests","divStyle","cssText","roundPixelMeasures","measure","curCSS","computed","isCustomProp","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trStyle","trChild","borderTopWidth","borderBottomWidth","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","rdisplayswap","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","boxModelAdjustment","box","isBorderBox","styles","computedVal","extra","marginDelta","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","animationIterationCount","borderImageSlice","columnCount","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","order","orphans","widows","zIndex","fillOpacity","floodOpacity","stopOpacity","strokeMiterlimit","strokeOpacity","origName","setProperty","isFinite","scrollboxSizeBuggy","border","suffix","expanded","propHooks","percent","eased","step","fx","linear","swing","cos","fxNow","inProgress","rfxtypes","rrun","schedule","interval","tick","createFxNow","genFx","includeWidth","createTween","Animation","tweeners","properties","stopped","prefilters","currentTime","tweens","specialEasing","originalProperties","originalOptions","gotoEnd","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","prefilter","speeds","fadeTo","doAnimation","optall","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeOut","fadeToggle","slow","fast","checkOn","optSelected","radioValue","boolHook","rfocusable","nType","attrHooks","attrNames","getter","lowercaseName","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","classNames","curValue","finalValue","stateVal","isValidValue","stopPropagationCallback","rreturn","valHooks","optionSet","rquery","rfocusMorph","parseXML","parserErrorElem","DOMParser","parseFromString","rbracket","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","triggerHandler","rCRLF","rsubmitterTypes","rsubmittable","traditional","valueOrFunction","buildParams","serialize","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataTypes","inspectPrefiltersOrTransports","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","isLocal","protocol","async","accepts","json","responseFields","converters","ajaxSetup","ajaxPrefilter","ajaxTransport","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","fireGlobals","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","overrideMimeType","mimeType","statusText","finalText","crossDomain","urlAnchor","host","hasContent","uncached","ifModified","headers","nativeStatusText","responses","response","isSuccess","ct","finalDataType","firstDataType","conv2","conv","dataFilter","throws","modified","getJSON","getScript","wrapAll","firstElementChild","htmlIsFunction","xhrSuccessStatus","0","1223","xhrSupported","oldCallbacks","cors","errorCallback","username","xhrFields","onabort","ontimeout","responseType","binary","scriptAttrs","charset","scriptCharset","rjsonp","rtrim","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","animated","setOffset","curCSSTop","curTop","curOffset","curCSSLeft","curElem","curLeft","curPosition","using","win","pageYOffset","pageXOffset","parentOffset","scrollTo","Height","defaultExtra","funcName","delegate","undelegate","hover","fnOver","fnOut","_jQuery","holdReady","hold","parseJSON","_$","noConflict","currentIndex","interstitialIndex","hasLocation","timeoutId","timeoutId2","$window","portHeight","scrollable","scrolled","manualScroll","swipeScroll","util","scrollSamples","scrollTime","firstLoad","initialised","destination","wheelEvent","onmousewheel","eventListenerOptions","section","sectionName","interstitialSection","scrollSpeed","scrollbars","standardScrollElements","setHeights","overflowScroll","updateHash","touchScroll","afterResize","afterRender","getportHeight","animateScroll","instant","callbacks","toTop","pushState","velocity","mobileHA","isAccelerating","samples","average","sum","lastElements","avEnd","avMiddle","scrollify","handleMousedown","handleMouseup","calculateNearest","handleScroll","atBottom","atTop","wheelHandler","currentScrollTime","keyHandler","readOnly","touchHandler","touchstart","touchmove","touchend","timeGap","up","down","interstitialScroll","withCallback","scroll","sizePanels","calculatePositions","handleUpdate","handleResize","handleOrientation","keepPosition","move","panel","instantMove","instantNext","instantPrevious","enable","setOptions","updatedOptions","pluses","encode","decode","stringifyCookieValue","parseCookieValue","converter","expires","days","toUTCString","domain","secure","cookies","removeCookie","assign","k","debounceDelay","disableMutationObserver","atob","phone","tablet","isSupported","refreshHard","M","leading","maxWait","trailing","cancel","flush","NaN","WebKitMutationObserver","MozMutationObserver","addedNodes","removedNodes","dataset","aos","opera","anchor","anchorPlacement","testNode","seppuku","isWindowDefined","isInitialized","some","shadowRootExists","ShadowRoot","stickies","targetObj","sourceObject","parseNumeric","getDocOffsetTop","docOffsetTop","Sticky","nodeComputedProps","referenceNode","nodeWinOffset","parentComputedStyle","parentPosition","_removed","_active","_deactivate","_node","nodeComputedStyle","marginTop","cssFloat","originalPosition","parentWinOffset","_parent","_offsetToWindow","_offsetToParent","borderLeftWidth","borderRightWidth","_styles","nodeTopValue","_limits","_recalcPosition","_clone","borderSpacing","fontSize","stickyMode","_stickyMode","HTMLElement","Stickyfill","forceSticky","refreshAll","addOne","nodeList","addedStickies","removeOne","_loop2","removeAll","fastCheckTimer","docHiddenKey","visibilityChangeEventName","checkScroll","startFastCheckTimer","_fastCheck","setPrototypeOf","buggy","__proto__","pIE","gOPD","getOwnPropertyDescriptor","propertyIsEnumerable","hiddenKeys","forced","$at","iterated","_t","point","Empty","dPs","createDict","iframeDocument","write","Properties","ObjectProto","addToUnscopables","_k","Arguments","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","anInstance","forOf","task","microtask","newPromiseCapabilityModule","perform","promiseResolve","PROMISE","versions","v8","$Promise","isNode","USE_NATIVE","FakePromise","PromiseRejectionEvent","isThenable","isReject","chain","_n","_c","_v","ok","_s","reaction","exited","_h","emit","onrejectionhandled","reason","unhandled","isUnhandled","onunhandledrejection","_a","$reject","_d","_w","$resolve","executor","capability","iter","iterable","$index","alreadyCalled","race","forbiddenField","isArrayIter","getIterFn","BREAK","RETURN","iterFn","getIteratorMethod","un","macrotask","Observer","standalone","characterData","SAFE_CLOSING","riter","skipClosing","toStringTag","isPrototypeOf","positions","isInit","rangeMax","wrapElement","setTransformCSS","getElementOffset","intersectionObserver","getTranslateValue","setTransitionCSS","elementContainer","customWrapper","willChange","elementHeight","elementTop","customContainer","elementBottom","threshold","buildThresholdList","observer","IntersectionObserver","intersectionObserverCallback","isIntersecting","maxTransition","oldPercentage","getRangeMax","translateValue","oldTranslateValue","orientation","setViewportAll","proceedRequestAnimationFrame","resizeIsDone","setViewportTop","lastPosition","setViewportBottom","proceedElement","checkIfVisible","unSetStyle","unWrapElement","Element","return","isBrowser","passiveEventsSupported","isDocument","windowScroller","elementScroller","createScroller","trackScroll","isPassiveSupported","rafId","scroller","lastScrollY","details","isOutOfBounds","toleranceExceeded","tolerance","eventOptions","normalizeUpDown","Headroom","classes","frozen","cutsTheMustard","scrollTracker","unpin","onUnpin","pin","onPin","freeze","unfreeze","onTop","notTop","onNotTop","onBottom","notBottom","onNotBottom","shouldUnpin","scrollingDown","shouldPin","scrollingUp","every","pinned","unpinned"],"mappings":"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","file":"vendor.bundle.js","sourcesContent":["module.exports = global[\"jQuery\"] = require(\"-!D:\\\\a\\\\1\\\\s\\\\src\\\\node_modules\\\\expose-loader\\\\index.js?$!.\\\\jquery.js\");","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\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( $( '
', {\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.} - 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.} - 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.} - 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.} - 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.} - 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.} 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.} 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.}\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 = '
';\n\n\t\t\t\tif (settings.lazyLoad) {\n\t\t\t\t\ttnLink = $('
',{\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 = $( '
', {\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( $( '
', {\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 = $( '' );\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( '
' ).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.}\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('
' +\n\t\t\t\t\t\t$(e.content).find('[data-dot]').addBack('[data-dot]').attr('data-dot') + '
');\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'',\n\t\t\t''\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: $('
').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 = [ $('\",\r\n\r\n close: '\",\r\n\r\n // Arrows\r\n arrowLeft: '\",\r\n\r\n arrowRight: '\",\r\n\r\n // This small close button will be appended to your html/inline/ajax content by default,\r\n // if \"smallBtn\" option is not set to false\r\n smallBtn: '\"\r\n },\r\n\r\n // Container is injected into this element\r\n parentEl: \"body\",\r\n\r\n // Hide browser vertical scrollbars; use at your own risk\r\n hideScrollbar: true,\r\n\r\n // Focus handling\r\n // ==============\r\n\r\n // Try to focus on the first focusable element after opening\r\n autoFocus: true,\r\n\r\n // Put focus back to active element after closing\r\n backFocus: true,\r\n\r\n // Do not let user to focus on element outside modal content\r\n trapFocus: true,\r\n\r\n // Module specific options\r\n // =======================\r\n\r\n fullScreen: {\r\n autoStart: false\r\n },\r\n\r\n // Set `touch: false` to disable panning/swiping\r\n touch: {\r\n vertical: true, // Allow to drag content vertically\r\n momentum: true // Continue movement after releasing mouse/touch when panning\r\n },\r\n\r\n // Hash value when initializing manually,\r\n // set `false` to disable hash change\r\n hash: null,\r\n\r\n // Customize or add new media types\r\n // Example:\r\n /*\r\n media : {\r\n youtube : {\r\n params : {\r\n autoplay : 0\r\n }\r\n }\r\n }\r\n */\r\n media: {},\r\n\r\n slideShow: {\r\n autoStart: false,\r\n speed: 3000\r\n },\r\n\r\n thumbs: {\r\n autoStart: false, // Display thumbnails on opening\r\n hideOnClose: true, // Hide thumbnail grid when closing animation starts\r\n parentEl: \".fancybox-container\", // Container is injected into this element\r\n axis: \"y\" // Vertical (y) or horizontal (x) scrolling\r\n },\r\n\r\n // Use mousewheel to navigate gallery\r\n // If 'auto' - enabled for images only\r\n wheel: \"auto\",\r\n\r\n // Callbacks\r\n //==========\r\n\r\n // See Documentation/API/Events for more information\r\n // Example:\r\n /*\r\n afterShow: function( instance, current ) {\r\n console.info( 'Clicked element:' );\r\n console.info( current.opts.$orig );\r\n }\r\n */\r\n\r\n onInit: $.noop, // When instance has been initialized\r\n\r\n beforeLoad: $.noop, // Before the content of a slide is being loaded\r\n afterLoad: $.noop, // When the content of a slide is done loading\r\n\r\n beforeShow: $.noop, // Before open animation starts\r\n afterShow: $.noop, // When content is done loading and animating\r\n\r\n beforeClose: $.noop, // Before the instance attempts to close. Return false to cancel the close.\r\n afterClose: $.noop, // After instance has been closed\r\n\r\n onActivate: $.noop, // When instance is brought to front\r\n onDeactivate: $.noop, // When other instance has been activated\r\n\r\n // Interaction\r\n // ===========\r\n\r\n // Use options below to customize taken action when user clicks or double clicks on the fancyBox area,\r\n // each option can be string or method that returns value.\r\n //\r\n // Possible values:\r\n // \"close\" - close instance\r\n // \"next\" - move to next gallery item\r\n // \"nextOrClose\" - move to next gallery item or close if gallery has only one item\r\n // \"toggleControls\" - show/hide controls\r\n // \"zoom\" - zoom image (if loaded)\r\n // false - do nothing\r\n\r\n // Clicked on the content\r\n clickContent: function (current, event) {\r\n return current.type === \"image\" ? \"zoom\" : false;\r\n },\r\n\r\n // Clicked on the slide\r\n clickSlide: \"close\",\r\n\r\n // Clicked on the background (backdrop) element;\r\n // if you have not changed the layout, then most likely you need to use `clickSlide` option\r\n clickOutside: \"close\",\r\n\r\n // Same as previous two, but for double click\r\n dblclickContent: false,\r\n dblclickSlide: false,\r\n dblclickOutside: false,\r\n\r\n // Custom options when mobile device is detected\r\n // =============================================\r\n\r\n mobile: {\r\n preventCaptionOverlap: false,\r\n idleTime: false,\r\n clickContent: function (current, event) {\r\n return current.type === \"image\" ? \"toggleControls\" : false;\r\n },\r\n clickSlide: function (current, event) {\r\n return current.type === \"image\" ? \"toggleControls\" : \"close\";\r\n },\r\n dblclickContent: function (current, event) {\r\n return current.type === \"image\" ? \"zoom\" : false;\r\n },\r\n dblclickSlide: function (current, event) {\r\n return current.type === \"image\" ? \"zoom\" : false;\r\n }\r\n },\r\n\r\n // Internationalization\r\n // ====================\r\n\r\n lang: \"en\",\r\n i18n: {\r\n en: {\r\n CLOSE: \"Close\",\r\n NEXT: \"Next\",\r\n PREV: \"Previous\",\r\n ERROR: \"The requested content cannot be loaded.
Please try again later.\",\r\n PLAY_START: \"Start slideshow\",\r\n PLAY_STOP: \"Pause slideshow\",\r\n FULL_SCREEN: \"Full screen\",\r\n THUMBS: \"Thumbnails\",\r\n DOWNLOAD: \"Download\",\r\n SHARE: \"Share\",\r\n ZOOM: \"Zoom\"\r\n },\r\n de: {\r\n CLOSE: \"Schließen\",\r\n NEXT: \"Weiter\",\r\n PREV: \"Zurück\",\r\n ERROR: \"Die angeforderten Daten konnten nicht geladen werden.
Bitte versuchen Sie es später nochmal.\",\r\n PLAY_START: \"Diaschau starten\",\r\n PLAY_STOP: \"Diaschau beenden\",\r\n FULL_SCREEN: \"Vollbild\",\r\n THUMBS: \"Vorschaubilder\",\r\n DOWNLOAD: \"Herunterladen\",\r\n SHARE: \"Teilen\",\r\n ZOOM: \"Vergrößern\"\r\n }\r\n }\r\n };\r\n\r\n // Few useful variables and methods\r\n // ================================\r\n\r\n var $W = $(window);\r\n var $D = $(document);\r\n\r\n var called = 0;\r\n\r\n // Check if an object is a jQuery object and not a native JavaScript object\r\n // ========================================================================\r\n var isQuery = function (obj) {\r\n return obj && obj.hasOwnProperty && obj instanceof $;\r\n };\r\n\r\n // Handle multiple browsers for \"requestAnimationFrame\" and \"cancelAnimationFrame\"\r\n // ===============================================================================\r\n var requestAFrame = (function () {\r\n return (\r\n window.requestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.oRequestAnimationFrame ||\r\n // if all else fails, use setTimeout\r\n function (callback) {\r\n return window.setTimeout(callback, 1000 / 60);\r\n }\r\n );\r\n })();\r\n\r\n var cancelAFrame = (function () {\r\n return (\r\n window.cancelAnimationFrame ||\r\n window.webkitCancelAnimationFrame ||\r\n window.mozCancelAnimationFrame ||\r\n window.oCancelAnimationFrame ||\r\n function (id) {\r\n window.clearTimeout(id);\r\n }\r\n );\r\n })();\r\n\r\n // Detect the supported transition-end event property name\r\n // =======================================================\r\n var transitionEnd = (function () {\r\n var el = document.createElement(\"fakeelement\"),\r\n t;\r\n\r\n var transitions = {\r\n transition: \"transitionend\",\r\n OTransition: \"oTransitionEnd\",\r\n MozTransition: \"transitionend\",\r\n WebkitTransition: \"webkitTransitionEnd\"\r\n };\r\n\r\n for (t in transitions) {\r\n if (el.style[t] !== undefined) {\r\n return transitions[t];\r\n }\r\n }\r\n\r\n return \"transitionend\";\r\n })();\r\n\r\n // Force redraw on an element.\r\n // This helps in cases where the browser doesn't redraw an updated element properly\r\n // ================================================================================\r\n var forceRedraw = function ($el) {\r\n return $el && $el.length && $el[0].offsetHeight;\r\n };\r\n\r\n // Exclude array (`buttons`) options from deep merging\r\n // ===================================================\r\n var mergeOpts = function (opts1, opts2) {\r\n var rez = $.extend(true, {}, opts1, opts2);\r\n\r\n $.each(opts2, function (key, value) {\r\n if ($.isArray(value)) {\r\n rez[key] = value;\r\n }\r\n });\r\n\r\n return rez;\r\n };\r\n\r\n // How much of an element is visible in viewport\r\n // =============================================\r\n\r\n var inViewport = function (elem) {\r\n var elemCenter, rez;\r\n\r\n if (!elem || elem.ownerDocument !== document) {\r\n return false;\r\n }\r\n\r\n $(\".fancybox-container\").css(\"pointer-events\", \"none\");\r\n\r\n elemCenter = {\r\n x: elem.getBoundingClientRect().left + elem.offsetWidth / 2,\r\n y: elem.getBoundingClientRect().top + elem.offsetHeight / 2\r\n };\r\n\r\n rez = document.elementFromPoint(elemCenter.x, elemCenter.y) === elem;\r\n\r\n $(\".fancybox-container\").css(\"pointer-events\", \"\");\r\n\r\n return rez;\r\n };\r\n\r\n // Class definition\r\n // ================\r\n\r\n var FancyBox = function (content, opts, index) {\r\n var self = this;\r\n\r\n self.opts = mergeOpts({\r\n index: index\r\n }, $.fancybox.defaults);\r\n\r\n if ($.isPlainObject(opts)) {\r\n self.opts = mergeOpts(self.opts, opts);\r\n }\r\n\r\n if ($.fancybox.isMobile) {\r\n self.opts = mergeOpts(self.opts, self.opts.mobile);\r\n }\r\n\r\n self.id = self.opts.id || ++called;\r\n\r\n self.currIndex = parseInt(self.opts.index, 10) || 0;\r\n self.prevIndex = null;\r\n\r\n self.prevPos = null;\r\n self.currPos = 0;\r\n\r\n self.firstRun = true;\r\n\r\n // All group items\r\n self.group = [];\r\n\r\n // Existing slides (for current, next and previous gallery items)\r\n self.slides = {};\r\n\r\n // Create group elements\r\n self.addContent(content);\r\n\r\n if (!self.group.length) {\r\n return;\r\n }\r\n\r\n self.init();\r\n };\r\n\r\n $.extend(FancyBox.prototype, {\r\n // Create DOM structure\r\n // ====================\r\n\r\n init: function () {\r\n var self = this,\r\n firstItem = self.group[self.currIndex],\r\n firstItemOpts = firstItem.opts,\r\n $container,\r\n buttonStr;\r\n\r\n if (firstItemOpts.closeExisting) {\r\n $.fancybox.close(true);\r\n }\r\n\r\n // Hide scrollbars\r\n // ===============\r\n\r\n $(\"body\").addClass(\"fancybox-active\");\r\n\r\n if (\r\n !$.fancybox.getInstance() &&\r\n firstItemOpts.hideScrollbar !== false &&\r\n !$.fancybox.isMobile &&\r\n document.body.scrollHeight > window.innerHeight\r\n ) {\r\n $(\"head\").append(\r\n '\"\r\n );\r\n\r\n $(\"body\").addClass(\"compensate-for-scrollbar\");\r\n }\r\n\r\n // Build html markup and set references\r\n // ====================================\r\n\r\n // Build html code for buttons and insert into main template\r\n buttonStr = \"\";\r\n\r\n $.each(firstItemOpts.buttons, function (index, value) {\r\n buttonStr += firstItemOpts.btnTpl[value] || \"\";\r\n });\r\n\r\n // Create markup from base template, it will be initially hidden to\r\n // avoid unnecessary work like painting while initializing is not complete\r\n $container = $(\r\n self.translate(\r\n self,\r\n firstItemOpts.baseTpl\r\n .replace(\"{{buttons}}\", buttonStr)\r\n .replace(\"{{arrows}}\", firstItemOpts.btnTpl.arrowLeft + firstItemOpts.btnTpl.arrowRight)\r\n )\r\n )\r\n .attr(\"id\", \"fancybox-container-\" + self.id)\r\n .addClass(firstItemOpts.baseClass)\r\n .data(\"FancyBox\", self)\r\n .appendTo(firstItemOpts.parentEl);\r\n\r\n // Create object holding references to jQuery wrapped nodes\r\n self.$refs = {\r\n container: $container\r\n };\r\n\r\n [\"bg\", \"inner\", \"infobar\", \"toolbar\", \"stage\", \"caption\", \"navigation\"].forEach(function (item) {\r\n self.$refs[item] = $container.find(\".fancybox-\" + item);\r\n });\r\n\r\n self.trigger(\"onInit\");\r\n\r\n // Enable events, deactive previous instances\r\n self.activate();\r\n\r\n // Build slides, load and reveal content\r\n self.jumpTo(self.currIndex);\r\n },\r\n\r\n // Simple i18n support - replaces object keys found in template\r\n // with corresponding values\r\n // ============================================================\r\n\r\n translate: function (obj, str) {\r\n var arr = obj.opts.i18n[obj.opts.lang] || obj.opts.i18n.en;\r\n\r\n return str.replace(/\\{\\{(\\w+)\\}\\}/g, function (match, n) {\r\n return arr[n] === undefined ? match : arr[n];\r\n });\r\n },\r\n\r\n // Populate current group with fresh content\r\n // Check if each object has valid type and content\r\n // ===============================================\r\n\r\n addContent: function (content) {\r\n var self = this,\r\n items = $.makeArray(content),\r\n thumbs;\r\n\r\n $.each(items, function (i, item) {\r\n var obj = {},\r\n opts = {},\r\n $item,\r\n type,\r\n found,\r\n src,\r\n srcParts;\r\n\r\n // Step 1 - Make sure we have an object\r\n // ====================================\r\n\r\n if ($.isPlainObject(item)) {\r\n // We probably have manual usage here, something like\r\n // $.fancybox.open( [ { src : \"image.jpg\", type : \"image\" } ] )\r\n\r\n obj = item;\r\n opts = item.opts || item;\r\n } else if ($.type(item) === \"object\" && $(item).length) {\r\n // Here we probably have jQuery collection returned by some selector\r\n $item = $(item);\r\n\r\n // Support attributes like `data-options='{\"touch\" : false}'` and `data-touch='false'`\r\n opts = $item.data() || {};\r\n opts = $.extend(true, {}, opts, opts.options);\r\n\r\n // Here we store clicked element\r\n opts.$orig = $item;\r\n\r\n obj.src = self.opts.src || opts.src || $item.attr(\"href\");\r\n\r\n // Assume that simple syntax is used, for example:\r\n // `$.fancybox.open( $(\"#test\"), {} );`\r\n if (!obj.type && !obj.src) {\r\n obj.type = \"inline\";\r\n obj.src = item;\r\n }\r\n } else {\r\n // Assume we have a simple html code, for example:\r\n // $.fancybox.open( '

Hi!

' );\r\n obj = {\r\n type: \"html\",\r\n src: item + \"\"\r\n };\r\n }\r\n\r\n // Each gallery object has full collection of options\r\n obj.opts = $.extend(true, {}, self.opts, opts);\r\n\r\n // Do not merge buttons array\r\n if ($.isArray(opts.buttons)) {\r\n obj.opts.buttons = opts.buttons;\r\n }\r\n\r\n if ($.fancybox.isMobile && obj.opts.mobile) {\r\n obj.opts = mergeOpts(obj.opts, obj.opts.mobile);\r\n }\r\n\r\n // Step 2 - Make sure we have content type, if not - try to guess\r\n // ==============================================================\r\n\r\n type = obj.type || obj.opts.type;\r\n src = obj.src || \"\";\r\n\r\n if (!type && src) {\r\n if ((found = src.match(/\\.(mp4|mov|ogv|webm)((\\?|#).*)?$/i))) {\r\n type = \"video\";\r\n\r\n if (!obj.opts.video.format) {\r\n obj.opts.video.format = \"video/\" + (found[1] === \"ogv\" ? \"ogg\" : found[1]);\r\n }\r\n } else if (src.match(/(^data:image\\/[a-z0-9+\\/=]*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\\?|#).*)?$)/i)) {\r\n type = \"image\";\r\n } else if (src.match(/\\.(pdf)((\\?|#).*)?$/i)) {\r\n type = \"iframe\";\r\n obj = $.extend(true, obj, {\r\n contentType: \"pdf\",\r\n opts: {\r\n iframe: {\r\n preload: false\r\n }\r\n }\r\n });\r\n } else if (src.charAt(0) === \"#\") {\r\n type = \"inline\";\r\n }\r\n }\r\n\r\n if (type) {\r\n obj.type = type;\r\n } else {\r\n self.trigger(\"objectNeedsType\", obj);\r\n }\r\n\r\n if (!obj.contentType) {\r\n obj.contentType = $.inArray(obj.type, [\"html\", \"inline\", \"ajax\"]) > -1 ? \"html\" : obj.type;\r\n }\r\n\r\n // Step 3 - Some adjustments\r\n // =========================\r\n\r\n obj.index = self.group.length;\r\n\r\n if (obj.opts.smallBtn == \"auto\") {\r\n obj.opts.smallBtn = $.inArray(obj.type, [\"html\", \"inline\", \"ajax\"]) > -1;\r\n }\r\n\r\n if (obj.opts.toolbar === \"auto\") {\r\n obj.opts.toolbar = !obj.opts.smallBtn;\r\n }\r\n\r\n // Find thumbnail image, check if exists and if is in the viewport\r\n obj.$thumb = obj.opts.$thumb || null;\r\n\r\n if (obj.opts.$trigger && obj.index === self.opts.index) {\r\n obj.$thumb = obj.opts.$trigger.find(\"img:first\");\r\n\r\n if (obj.$thumb.length) {\r\n obj.opts.$orig = obj.opts.$trigger;\r\n }\r\n }\r\n\r\n if (!(obj.$thumb && obj.$thumb.length) && obj.opts.$orig) {\r\n obj.$thumb = obj.opts.$orig.find(\"img:first\");\r\n }\r\n\r\n if (obj.$thumb && !obj.$thumb.length) {\r\n obj.$thumb = null;\r\n }\r\n\r\n obj.thumb = obj.opts.thumb || (obj.$thumb ? obj.$thumb[0].src : null);\r\n\r\n // \"caption\" is a \"special\" option, it can be used to customize caption per gallery item\r\n if ($.type(obj.opts.caption) === \"function\") {\r\n obj.opts.caption = obj.opts.caption.apply(item, [self, obj]);\r\n }\r\n\r\n if ($.type(self.opts.caption) === \"function\") {\r\n obj.opts.caption = self.opts.caption.apply(item, [self, obj]);\r\n }\r\n\r\n // Make sure we have caption as a string or jQuery object\r\n if (!(obj.opts.caption instanceof $)) {\r\n obj.opts.caption = obj.opts.caption === undefined ? \"\" : obj.opts.caption + \"\";\r\n }\r\n\r\n // Check if url contains \"filter\" used to filter the content\r\n // Example: \"ajax.html #something\"\r\n if (obj.type === \"ajax\") {\r\n srcParts = src.split(/\\s+/, 2);\r\n\r\n if (srcParts.length > 1) {\r\n obj.src = srcParts.shift();\r\n\r\n obj.opts.filter = srcParts.shift();\r\n }\r\n }\r\n\r\n // Hide all buttons and disable interactivity for modal items\r\n if (obj.opts.modal) {\r\n obj.opts = $.extend(true, obj.opts, {\r\n trapFocus: true,\r\n // Remove buttons\r\n infobar: 0,\r\n toolbar: 0,\r\n\r\n smallBtn: 0,\r\n\r\n // Disable keyboard navigation\r\n keyboard: 0,\r\n\r\n // Disable some modules\r\n slideShow: 0,\r\n fullScreen: 0,\r\n thumbs: 0,\r\n touch: 0,\r\n\r\n // Disable click event handlers\r\n clickContent: false,\r\n clickSlide: false,\r\n clickOutside: false,\r\n dblclickContent: false,\r\n dblclickSlide: false,\r\n dblclickOutside: false\r\n });\r\n }\r\n\r\n // Step 4 - Add processed object to group\r\n // ======================================\r\n\r\n self.group.push(obj);\r\n });\r\n\r\n // Update controls if gallery is already opened\r\n if (Object.keys(self.slides).length) {\r\n self.updateControls();\r\n\r\n // Update thumbnails, if needed\r\n thumbs = self.Thumbs;\r\n\r\n if (thumbs && thumbs.isActive) {\r\n thumbs.create();\r\n\r\n thumbs.focus();\r\n }\r\n }\r\n },\r\n\r\n // Attach an event handler functions for:\r\n // - navigation buttons\r\n // - browser scrolling, resizing;\r\n // - focusing\r\n // - keyboard\r\n // - detecting inactivity\r\n // ======================================\r\n\r\n addEvents: function () {\r\n var self = this;\r\n\r\n self.removeEvents();\r\n\r\n // Make navigation elements clickable\r\n // ==================================\r\n\r\n self.$refs.container\r\n .on(\"click.fb-close\", \"[data-fancybox-close]\", function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.close(e);\r\n })\r\n .on(\"touchstart.fb-prev click.fb-prev\", \"[data-fancybox-prev]\", function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.previous();\r\n })\r\n .on(\"touchstart.fb-next click.fb-next\", \"[data-fancybox-next]\", function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n self.next();\r\n })\r\n .on(\"click.fb\", \"[data-fancybox-zoom]\", function (e) {\r\n // Click handler for zoom button\r\n self[self.isScaledDown() ? \"scaleToActual\" : \"scaleToFit\"]();\r\n });\r\n\r\n // Handle page scrolling and browser resizing\r\n // ==========================================\r\n\r\n $W.on(\"orientationchange.fb resize.fb\", function (e) {\r\n if (e && e.originalEvent && e.originalEvent.type === \"resize\") {\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n }\r\n\r\n self.requestId = requestAFrame(function () {\r\n self.update(e);\r\n });\r\n } else {\r\n if (self.current && self.current.type === \"iframe\") {\r\n self.$refs.stage.hide();\r\n }\r\n\r\n setTimeout(\r\n function () {\r\n self.$refs.stage.show();\r\n\r\n self.update(e);\r\n },\r\n $.fancybox.isMobile ? 600 : 250\r\n );\r\n }\r\n });\r\n\r\n $D.on(\"keydown.fb\", function (e) {\r\n var instance = $.fancybox ? $.fancybox.getInstance() : null,\r\n current = instance.current,\r\n keycode = e.keyCode || e.which;\r\n\r\n // Trap keyboard focus inside of the modal\r\n // =======================================\r\n\r\n if (keycode == 9) {\r\n if (current.opts.trapFocus) {\r\n self.focus(e);\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Enable keyboard navigation\r\n // ==========================\r\n\r\n if (!current.opts.keyboard || e.ctrlKey || e.altKey || e.shiftKey || $(e.target).is(\"input,textarea,video,audio,select\")) {\r\n return;\r\n }\r\n\r\n // Backspace and Esc keys\r\n if (keycode === 8 || keycode === 27) {\r\n e.preventDefault();\r\n\r\n self.close(e);\r\n\r\n return;\r\n }\r\n\r\n // Left arrow and Up arrow\r\n if (keycode === 37 || keycode === 38) {\r\n e.preventDefault();\r\n\r\n self.previous();\r\n\r\n return;\r\n }\r\n\r\n // Righ arrow and Down arrow\r\n if (keycode === 39 || keycode === 40) {\r\n e.preventDefault();\r\n\r\n self.next();\r\n\r\n return;\r\n }\r\n\r\n self.trigger(\"afterKeydown\", e, keycode);\r\n });\r\n\r\n // Hide controls after some inactivity period\r\n if (self.group[self.currIndex].opts.idleTime) {\r\n self.idleSecondsCounter = 0;\r\n\r\n $D.on(\r\n \"mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle\",\r\n function (e) {\r\n self.idleSecondsCounter = 0;\r\n\r\n if (self.isIdle) {\r\n self.showControls();\r\n }\r\n\r\n self.isIdle = false;\r\n }\r\n );\r\n\r\n self.idleInterval = window.setInterval(function () {\r\n self.idleSecondsCounter++;\r\n\r\n if (self.idleSecondsCounter >= self.group[self.currIndex].opts.idleTime && !self.isDragging) {\r\n self.isIdle = true;\r\n self.idleSecondsCounter = 0;\r\n\r\n self.hideControls();\r\n }\r\n }, 1000);\r\n }\r\n },\r\n\r\n // Remove events added by the core\r\n // ===============================\r\n\r\n removeEvents: function () {\r\n var self = this;\r\n\r\n $W.off(\"orientationchange.fb resize.fb\");\r\n $D.off(\"keydown.fb .fb-idle\");\r\n\r\n this.$refs.container.off(\".fb-close .fb-prev .fb-next\");\r\n\r\n if (self.idleInterval) {\r\n window.clearInterval(self.idleInterval);\r\n\r\n self.idleInterval = null;\r\n }\r\n },\r\n\r\n // Change to previous gallery item\r\n // ===============================\r\n\r\n previous: function (duration) {\r\n return this.jumpTo(this.currPos - 1, duration);\r\n },\r\n\r\n // Change to next gallery item\r\n // ===========================\r\n\r\n next: function (duration) {\r\n return this.jumpTo(this.currPos + 1, duration);\r\n },\r\n\r\n // Switch to selected gallery item\r\n // ===============================\r\n\r\n jumpTo: function (pos, duration) {\r\n var self = this,\r\n groupLen = self.group.length,\r\n firstRun,\r\n isMoved,\r\n loop,\r\n current,\r\n previous,\r\n slidePos,\r\n stagePos,\r\n prop,\r\n diff;\r\n\r\n if (self.isDragging || self.isClosing || (self.isAnimating && self.firstRun)) {\r\n return;\r\n }\r\n\r\n // Should loop?\r\n pos = parseInt(pos, 10);\r\n loop = self.current ? self.current.opts.loop : self.opts.loop;\r\n\r\n if (!loop && (pos < 0 || pos >= groupLen)) {\r\n return false;\r\n }\r\n\r\n // Check if opening for the first time; this helps to speed things up\r\n firstRun = self.firstRun = !Object.keys(self.slides).length;\r\n\r\n // Create slides\r\n previous = self.current;\r\n\r\n self.prevIndex = self.currIndex;\r\n self.prevPos = self.currPos;\r\n\r\n current = self.createSlide(pos);\r\n\r\n if (groupLen > 1) {\r\n if (loop || current.index < groupLen - 1) {\r\n self.createSlide(pos + 1);\r\n }\r\n\r\n if (loop || current.index > 0) {\r\n self.createSlide(pos - 1);\r\n }\r\n }\r\n\r\n self.current = current;\r\n self.currIndex = current.index;\r\n self.currPos = current.pos;\r\n\r\n self.trigger(\"beforeShow\", firstRun);\r\n\r\n self.updateControls();\r\n\r\n // Validate duration length\r\n current.forcedDuration = undefined;\r\n\r\n if ($.isNumeric(duration)) {\r\n current.forcedDuration = duration;\r\n } else {\r\n duration = current.opts[firstRun ? \"animationDuration\" : \"transitionDuration\"];\r\n }\r\n\r\n duration = parseInt(duration, 10);\r\n\r\n // Check if user has swiped the slides or if still animating\r\n isMoved = self.isMoved(current);\r\n\r\n // Make sure current slide is visible\r\n current.$slide.addClass(\"fancybox-slide--current\");\r\n\r\n // Fresh start - reveal container, current slide and start loading content\r\n if (firstRun) {\r\n if (current.opts.animationEffect && duration) {\r\n self.$refs.container.css(\"transition-duration\", duration + \"ms\");\r\n }\r\n\r\n self.$refs.container.addClass(\"fancybox-is-open\").trigger(\"focus\");\r\n\r\n // Attempt to load content into slide\r\n // This will later call `afterLoad` -> `revealContent`\r\n self.loadSlide(current);\r\n\r\n self.preload(\"image\");\r\n\r\n return;\r\n }\r\n\r\n // Get actual slide/stage positions (before cleaning up)\r\n slidePos = $.fancybox.getTranslate(previous.$slide);\r\n stagePos = $.fancybox.getTranslate(self.$refs.stage);\r\n\r\n // Clean up all slides\r\n $.each(self.slides, function (index, slide) {\r\n $.fancybox.stop(slide.$slide, true);\r\n });\r\n\r\n if (previous.pos !== current.pos) {\r\n previous.isComplete = false;\r\n }\r\n\r\n previous.$slide.removeClass(\"fancybox-slide--complete fancybox-slide--current\");\r\n\r\n // If slides are out of place, then animate them to correct position\r\n if (isMoved) {\r\n // Calculate horizontal swipe distance\r\n diff = slidePos.left - (previous.pos * slidePos.width + previous.pos * previous.opts.gutter);\r\n\r\n $.each(self.slides, function (index, slide) {\r\n slide.$slide.removeClass(\"fancybox-animated\").removeClass(function (index, className) {\r\n return (className.match(/(^|\\s)fancybox-fx-\\S+/g) || []).join(\" \");\r\n });\r\n\r\n // Make sure that each slide is in equal distance\r\n // This is mostly needed for freshly added slides, because they are not yet positioned\r\n var leftPos = slide.pos * slidePos.width + slide.pos * slide.opts.gutter;\r\n\r\n $.fancybox.setTranslate(slide.$slide, {\r\n top: 0,\r\n left: leftPos - stagePos.left + diff\r\n });\r\n\r\n if (slide.pos !== current.pos) {\r\n slide.$slide.addClass(\"fancybox-slide--\" + (slide.pos > current.pos ? \"next\" : \"previous\"));\r\n }\r\n\r\n // Redraw to make sure that transition will start\r\n forceRedraw(slide.$slide);\r\n\r\n // Animate the slide\r\n $.fancybox.animate(\r\n slide.$slide, {\r\n top: 0,\r\n left: (slide.pos - current.pos) * slidePos.width + (slide.pos - current.pos) * slide.opts.gutter\r\n },\r\n duration,\r\n function () {\r\n slide.$slide\r\n .css({\r\n transform: \"\",\r\n opacity: \"\"\r\n })\r\n .removeClass(\"fancybox-slide--next fancybox-slide--previous\");\r\n\r\n if (slide.pos === self.currPos) {\r\n self.complete();\r\n }\r\n }\r\n );\r\n });\r\n } else if (duration && current.opts.transitionEffect) {\r\n // Set transition effect for previously active slide\r\n prop = \"fancybox-animated fancybox-fx-\" + current.opts.transitionEffect;\r\n\r\n previous.$slide.addClass(\"fancybox-slide--\" + (previous.pos > current.pos ? \"next\" : \"previous\"));\r\n\r\n $.fancybox.animate(\r\n previous.$slide,\r\n prop,\r\n duration,\r\n function () {\r\n previous.$slide.removeClass(prop).removeClass(\"fancybox-slide--next fancybox-slide--previous\");\r\n },\r\n false\r\n );\r\n }\r\n\r\n if (current.isLoaded) {\r\n self.revealContent(current);\r\n } else {\r\n self.loadSlide(current);\r\n }\r\n\r\n self.preload(\"image\");\r\n },\r\n\r\n // Create new \"slide\" element\r\n // These are gallery items that are actually added to DOM\r\n // =======================================================\r\n\r\n createSlide: function (pos) {\r\n var self = this,\r\n $slide,\r\n index;\r\n\r\n index = pos % self.group.length;\r\n index = index < 0 ? self.group.length + index : index;\r\n\r\n if (!self.slides[pos] && self.group[index]) {\r\n $slide = $('
').appendTo(self.$refs.stage);\r\n\r\n self.slides[pos] = $.extend(true, {}, self.group[index], {\r\n pos: pos,\r\n $slide: $slide,\r\n isLoaded: false\r\n });\r\n\r\n self.updateSlide(self.slides[pos]);\r\n }\r\n\r\n return self.slides[pos];\r\n },\r\n\r\n // Scale image to the actual size of the image;\r\n // x and y values should be relative to the slide\r\n // ==============================================\r\n\r\n scaleToActual: function (x, y, duration) {\r\n var self = this,\r\n current = self.current,\r\n $content = current.$content,\r\n canvasWidth = $.fancybox.getTranslate(current.$slide).width,\r\n canvasHeight = $.fancybox.getTranslate(current.$slide).height,\r\n newImgWidth = current.width,\r\n newImgHeight = current.height,\r\n imgPos,\r\n posX,\r\n posY,\r\n scaleX,\r\n scaleY;\r\n\r\n if (self.isAnimating || self.isMoved() || !$content || !(current.type == \"image\" && current.isLoaded && !current.hasError)) {\r\n return;\r\n }\r\n\r\n self.isAnimating = true;\r\n\r\n $.fancybox.stop($content);\r\n\r\n x = x === undefined ? canvasWidth * 0.5 : x;\r\n y = y === undefined ? canvasHeight * 0.5 : y;\r\n\r\n imgPos = $.fancybox.getTranslate($content);\r\n\r\n imgPos.top -= $.fancybox.getTranslate(current.$slide).top;\r\n imgPos.left -= $.fancybox.getTranslate(current.$slide).left;\r\n\r\n scaleX = newImgWidth / imgPos.width;\r\n scaleY = newImgHeight / imgPos.height;\r\n\r\n // Get center position for original image\r\n posX = canvasWidth * 0.5 - newImgWidth * 0.5;\r\n posY = canvasHeight * 0.5 - newImgHeight * 0.5;\r\n\r\n // Make sure image does not move away from edges\r\n if (newImgWidth > canvasWidth) {\r\n posX = imgPos.left * scaleX - (x * scaleX - x);\r\n\r\n if (posX > 0) {\r\n posX = 0;\r\n }\r\n\r\n if (posX < canvasWidth - newImgWidth) {\r\n posX = canvasWidth - newImgWidth;\r\n }\r\n }\r\n\r\n if (newImgHeight > canvasHeight) {\r\n posY = imgPos.top * scaleY - (y * scaleY - y);\r\n\r\n if (posY > 0) {\r\n posY = 0;\r\n }\r\n\r\n if (posY < canvasHeight - newImgHeight) {\r\n posY = canvasHeight - newImgHeight;\r\n }\r\n }\r\n\r\n self.updateCursor(newImgWidth, newImgHeight);\r\n\r\n $.fancybox.animate(\r\n $content, {\r\n top: posY,\r\n left: posX,\r\n scaleX: scaleX,\r\n scaleY: scaleY\r\n },\r\n duration || 366,\r\n function () {\r\n self.isAnimating = false;\r\n }\r\n );\r\n\r\n // Stop slideshow\r\n if (self.SlideShow && self.SlideShow.isActive) {\r\n self.SlideShow.stop();\r\n }\r\n },\r\n\r\n // Scale image to fit inside parent element\r\n // ========================================\r\n\r\n scaleToFit: function (duration) {\r\n var self = this,\r\n current = self.current,\r\n $content = current.$content,\r\n end;\r\n\r\n if (self.isAnimating || self.isMoved() || !$content || !(current.type == \"image\" && current.isLoaded && !current.hasError)) {\r\n return;\r\n }\r\n\r\n self.isAnimating = true;\r\n\r\n $.fancybox.stop($content);\r\n\r\n end = self.getFitPos(current);\r\n\r\n self.updateCursor(end.width, end.height);\r\n\r\n $.fancybox.animate(\r\n $content, {\r\n top: end.top,\r\n left: end.left,\r\n scaleX: end.width / $content.width(),\r\n scaleY: end.height / $content.height()\r\n },\r\n duration || 366,\r\n function () {\r\n self.isAnimating = false;\r\n }\r\n );\r\n },\r\n\r\n // Calculate image size to fit inside viewport\r\n // ===========================================\r\n\r\n getFitPos: function (slide) {\r\n var self = this,\r\n $content = slide.$content,\r\n $slide = slide.$slide,\r\n width = slide.width || slide.opts.width,\r\n height = slide.height || slide.opts.height,\r\n maxWidth,\r\n maxHeight,\r\n minRatio,\r\n aspectRatio,\r\n rez = {};\r\n\r\n if (!slide.isLoaded || !$content || !$content.length) {\r\n return false;\r\n }\r\n\r\n maxWidth = $.fancybox.getTranslate(self.$refs.stage).width;\r\n maxHeight = $.fancybox.getTranslate(self.$refs.stage).height;\r\n\r\n maxWidth -=\r\n parseFloat($slide.css(\"paddingLeft\")) +\r\n parseFloat($slide.css(\"paddingRight\")) +\r\n parseFloat($content.css(\"marginLeft\")) +\r\n parseFloat($content.css(\"marginRight\"));\r\n\r\n maxHeight -=\r\n parseFloat($slide.css(\"paddingTop\")) +\r\n parseFloat($slide.css(\"paddingBottom\")) +\r\n parseFloat($content.css(\"marginTop\")) +\r\n parseFloat($content.css(\"marginBottom\"));\r\n\r\n if (!width || !height) {\r\n width = maxWidth;\r\n height = maxHeight;\r\n }\r\n\r\n minRatio = Math.min(1, maxWidth / width, maxHeight / height);\r\n\r\n width = minRatio * width;\r\n height = minRatio * height;\r\n\r\n // Adjust width/height to precisely fit into container\r\n if (width > maxWidth - 0.5) {\r\n width = maxWidth;\r\n }\r\n\r\n if (height > maxHeight - 0.5) {\r\n height = maxHeight;\r\n }\r\n\r\n if (slide.type === \"image\") {\r\n rez.top = Math.floor((maxHeight - height) * 0.5) + parseFloat($slide.css(\"paddingTop\"));\r\n rez.left = Math.floor((maxWidth - width) * 0.5) + parseFloat($slide.css(\"paddingLeft\"));\r\n } else if (slide.contentType === \"video\") {\r\n // Force aspect ratio for the video\r\n // \"I say the whole world must learn of our peaceful ways… by force!\"\r\n aspectRatio = slide.opts.width && slide.opts.height ? width / height : slide.opts.ratio || 16 / 9;\r\n\r\n if (height > width / aspectRatio) {\r\n height = width / aspectRatio;\r\n } else if (width > height * aspectRatio) {\r\n width = height * aspectRatio;\r\n }\r\n }\r\n\r\n rez.width = width;\r\n rez.height = height;\r\n\r\n return rez;\r\n },\r\n\r\n // Update content size and position for all slides\r\n // ==============================================\r\n\r\n update: function (e) {\r\n var self = this;\r\n\r\n $.each(self.slides, function (key, slide) {\r\n self.updateSlide(slide, e);\r\n });\r\n },\r\n\r\n // Update slide content position and size\r\n // ======================================\r\n\r\n updateSlide: function (slide, e) {\r\n var self = this,\r\n $content = slide && slide.$content,\r\n width = slide.width || slide.opts.width,\r\n height = slide.height || slide.opts.height,\r\n $slide = slide.$slide;\r\n\r\n // First, prevent caption overlap, if needed\r\n self.adjustCaption(slide);\r\n\r\n // Then resize content to fit inside the slide\r\n if ($content && (width || height || slide.contentType === \"video\") && !slide.hasError) {\r\n $.fancybox.stop($content);\r\n\r\n $.fancybox.setTranslate($content, self.getFitPos(slide));\r\n\r\n if (slide.pos === self.currPos) {\r\n self.isAnimating = false;\r\n\r\n self.updateCursor();\r\n }\r\n }\r\n\r\n // Then some adjustments\r\n self.adjustLayout(slide);\r\n\r\n if ($slide.length) {\r\n $slide.trigger(\"refresh\");\r\n\r\n if (slide.pos === self.currPos) {\r\n self.$refs.toolbar\r\n .add(self.$refs.navigation.find(\".fancybox-button--arrow_right\"))\r\n .toggleClass(\"compensate-for-scrollbar\", $slide.get(0).scrollHeight > $slide.get(0).clientHeight);\r\n }\r\n }\r\n\r\n self.trigger(\"onUpdate\", slide, e);\r\n },\r\n\r\n // Horizontally center slide\r\n // =========================\r\n\r\n centerSlide: function (duration) {\r\n var self = this,\r\n current = self.current,\r\n $slide = current.$slide;\r\n\r\n if (self.isClosing || !current) {\r\n return;\r\n }\r\n\r\n $slide.siblings().css({\r\n transform: \"\",\r\n opacity: \"\"\r\n });\r\n\r\n $slide\r\n .parent()\r\n .children()\r\n .removeClass(\"fancybox-slide--previous fancybox-slide--next\");\r\n\r\n $.fancybox.animate(\r\n $slide, {\r\n top: 0,\r\n left: 0,\r\n opacity: 1\r\n },\r\n duration === undefined ? 0 : duration,\r\n function () {\r\n // Clean up\r\n $slide.css({\r\n transform: \"\",\r\n opacity: \"\"\r\n });\r\n\r\n if (!current.isComplete) {\r\n self.complete();\r\n }\r\n },\r\n false\r\n );\r\n },\r\n\r\n // Check if current slide is moved (swiped)\r\n // ========================================\r\n\r\n isMoved: function (slide) {\r\n var current = slide || this.current,\r\n slidePos,\r\n stagePos;\r\n\r\n if (!current) {\r\n return false;\r\n }\r\n\r\n stagePos = $.fancybox.getTranslate(this.$refs.stage);\r\n slidePos = $.fancybox.getTranslate(current.$slide);\r\n\r\n return (\r\n !current.$slide.hasClass(\"fancybox-animated\") &&\r\n (Math.abs(slidePos.top - stagePos.top) > 0.5 || Math.abs(slidePos.left - stagePos.left) > 0.5)\r\n );\r\n },\r\n\r\n // Update cursor style depending if content can be zoomed\r\n // ======================================================\r\n\r\n updateCursor: function (nextWidth, nextHeight) {\r\n var self = this,\r\n current = self.current,\r\n $container = self.$refs.container,\r\n canPan,\r\n isZoomable;\r\n\r\n if (!current || self.isClosing || !self.Guestures) {\r\n return;\r\n }\r\n\r\n $container.removeClass(\"fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan\");\r\n\r\n canPan = self.canPan(nextWidth, nextHeight);\r\n\r\n isZoomable = canPan ? true : self.isZoomable();\r\n\r\n $container.toggleClass(\"fancybox-is-zoomable\", isZoomable);\r\n\r\n $(\"[data-fancybox-zoom]\").prop(\"disabled\", !isZoomable);\r\n\r\n if (canPan) {\r\n $container.addClass(\"fancybox-can-pan\");\r\n } else if (\r\n isZoomable &&\r\n (current.opts.clickContent === \"zoom\" || ($.isFunction(current.opts.clickContent) && current.opts.clickContent(current) == \"zoom\"))\r\n ) {\r\n $container.addClass(\"fancybox-can-zoomIn\");\r\n } else if (current.opts.touch && (current.opts.touch.vertical || self.group.length > 1) && current.contentType !== \"video\") {\r\n $container.addClass(\"fancybox-can-swipe\");\r\n }\r\n },\r\n\r\n // Check if current slide is zoomable\r\n // ==================================\r\n\r\n isZoomable: function () {\r\n var self = this,\r\n current = self.current,\r\n fitPos;\r\n\r\n // Assume that slide is zoomable if:\r\n // - image is still loading\r\n // - actual size of the image is smaller than available area\r\n if (current && !self.isClosing && current.type === \"image\" && !current.hasError) {\r\n if (!current.isLoaded) {\r\n return true;\r\n }\r\n\r\n fitPos = self.getFitPos(current);\r\n\r\n if (fitPos && (current.width > fitPos.width || current.height > fitPos.height)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n\r\n // Check if current image dimensions are smaller than actual\r\n // =========================================================\r\n\r\n isScaledDown: function (nextWidth, nextHeight) {\r\n var self = this,\r\n rez = false,\r\n current = self.current,\r\n $content = current.$content;\r\n\r\n if (nextWidth !== undefined && nextHeight !== undefined) {\r\n rez = nextWidth < current.width && nextHeight < current.height;\r\n } else if ($content) {\r\n rez = $.fancybox.getTranslate($content);\r\n rez = rez.width < current.width && rez.height < current.height;\r\n }\r\n\r\n return rez;\r\n },\r\n\r\n // Check if image dimensions exceed parent element\r\n // ===============================================\r\n\r\n canPan: function (nextWidth, nextHeight) {\r\n var self = this,\r\n current = self.current,\r\n pos = null,\r\n rez = false;\r\n\r\n if (current.type === \"image\" && (current.isComplete || (nextWidth && nextHeight)) && !current.hasError) {\r\n rez = self.getFitPos(current);\r\n\r\n if (nextWidth !== undefined && nextHeight !== undefined) {\r\n pos = {\r\n width: nextWidth,\r\n height: nextHeight\r\n };\r\n } else if (current.isComplete) {\r\n pos = $.fancybox.getTranslate(current.$content);\r\n }\r\n\r\n if (pos && rez) {\r\n rez = Math.abs(pos.width - rez.width) > 1.5 || Math.abs(pos.height - rez.height) > 1.5;\r\n }\r\n }\r\n\r\n return rez;\r\n },\r\n\r\n // Load content into the slide\r\n // ===========================\r\n\r\n loadSlide: function (slide) {\r\n var self = this,\r\n type,\r\n $slide,\r\n ajaxLoad;\r\n\r\n if (slide.isLoading || slide.isLoaded) {\r\n return;\r\n }\r\n\r\n slide.isLoading = true;\r\n\r\n if (self.trigger(\"beforeLoad\", slide) === false) {\r\n slide.isLoading = false;\r\n\r\n return false;\r\n }\r\n\r\n type = slide.type;\r\n $slide = slide.$slide;\r\n\r\n $slide\r\n .off(\"refresh\")\r\n .trigger(\"onReset\")\r\n .addClass(slide.opts.slideClass);\r\n\r\n // Create content depending on the type\r\n switch (type) {\r\n case \"image\":\r\n self.setImage(slide);\r\n\r\n break;\r\n\r\n case \"iframe\":\r\n self.setIframe(slide);\r\n\r\n break;\r\n\r\n case \"html\":\r\n self.setContent(slide, slide.src || slide.content);\r\n\r\n break;\r\n\r\n case \"video\":\r\n self.setContent(\r\n slide,\r\n slide.opts.video.tpl\r\n .replace(/\\{\\{src\\}\\}/gi, slide.src)\r\n .replace(\"{{format}}\", slide.opts.videoFormat || slide.opts.video.format || \"\")\r\n .replace(\"{{poster}}\", slide.thumb || \"\")\r\n );\r\n\r\n break;\r\n\r\n case \"inline\":\r\n if ($(slide.src).length) {\r\n self.setContent(slide, $(slide.src));\r\n } else {\r\n self.setError(slide);\r\n }\r\n\r\n break;\r\n\r\n case \"ajax\":\r\n self.showLoading(slide);\r\n\r\n ajaxLoad = $.ajax(\r\n $.extend({}, slide.opts.ajax.settings, {\r\n url: slide.src,\r\n success: function (data, textStatus) {\r\n if (textStatus === \"success\") {\r\n self.setContent(slide, data);\r\n }\r\n },\r\n error: function (jqXHR, textStatus) {\r\n if (jqXHR && textStatus !== \"abort\") {\r\n self.setError(slide);\r\n }\r\n }\r\n })\r\n );\r\n\r\n $slide.one(\"onReset\", function () {\r\n ajaxLoad.abort();\r\n });\r\n\r\n break;\r\n\r\n default:\r\n self.setError(slide);\r\n\r\n break;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n // Use thumbnail image, if possible\r\n // ================================\r\n\r\n setImage: function (slide) {\r\n var self = this,\r\n ghost;\r\n\r\n // Check if need to show loading icon\r\n setTimeout(function () {\r\n var $img = slide.$image;\r\n\r\n if (!self.isClosing && slide.isLoading && (!$img || !$img.length || !$img[0].complete) && !slide.hasError) {\r\n self.showLoading(slide);\r\n }\r\n }, 50);\r\n\r\n //Check if image has srcset\r\n self.checkSrcset(slide);\r\n\r\n // This will be wrapper containing both ghost and actual image\r\n slide.$content = $('
')\r\n .addClass(\"fancybox-is-hidden\")\r\n .appendTo(slide.$slide.addClass(\"fancybox-slide--image\"));\r\n\r\n // If we have a thumbnail, we can display it while actual image is loading\r\n // Users will not stare at black screen and actual image will appear gradually\r\n if (slide.opts.preload !== false && slide.opts.width && slide.opts.height && slide.thumb) {\r\n slide.width = slide.opts.width;\r\n slide.height = slide.opts.height;\r\n\r\n ghost = document.createElement(\"img\");\r\n\r\n ghost.onerror = function () {\r\n $(this).remove();\r\n\r\n slide.$ghost = null;\r\n };\r\n\r\n ghost.onload = function () {\r\n self.afterLoad(slide);\r\n };\r\n\r\n slide.$ghost = $(ghost)\r\n .addClass(\"fancybox-image\")\r\n .appendTo(slide.$content)\r\n .attr(\"src\", slide.thumb);\r\n }\r\n\r\n // Start loading actual image\r\n self.setBigImage(slide);\r\n },\r\n\r\n // Check if image has srcset and get the source\r\n // ============================================\r\n checkSrcset: function (slide) {\r\n var srcset = slide.opts.srcset || slide.opts.image.srcset,\r\n found,\r\n temp,\r\n pxRatio,\r\n windowWidth;\r\n\r\n // If we have \"srcset\", then we need to find first matching \"src\" value.\r\n // This is necessary, because when you set an src attribute, the browser will preload the image\r\n // before any javascript or even CSS is applied.\r\n if (srcset) {\r\n pxRatio = window.devicePixelRatio || 1;\r\n windowWidth = window.innerWidth * pxRatio;\r\n\r\n temp = srcset.split(\",\").map(function (el) {\r\n var ret = {};\r\n\r\n el.trim()\r\n .split(/\\s+/)\r\n .forEach(function (el, i) {\r\n var value = parseInt(el.substring(0, el.length - 1), 10);\r\n\r\n if (i === 0) {\r\n return (ret.url = el);\r\n }\r\n\r\n if (value) {\r\n ret.value = value;\r\n ret.postfix = el[el.length - 1];\r\n }\r\n });\r\n\r\n return ret;\r\n });\r\n\r\n // Sort by value\r\n temp.sort(function (a, b) {\r\n return a.value - b.value;\r\n });\r\n\r\n // Ok, now we have an array of all srcset values\r\n for (var j = 0; j < temp.length; j++) {\r\n var el = temp[j];\r\n\r\n if ((el.postfix === \"w\" && el.value >= windowWidth) || (el.postfix === \"x\" && el.value >= pxRatio)) {\r\n found = el;\r\n break;\r\n }\r\n }\r\n\r\n // If not found, take the last one\r\n if (!found && temp.length) {\r\n found = temp[temp.length - 1];\r\n }\r\n\r\n if (found) {\r\n slide.src = found.url;\r\n\r\n // If we have default width/height values, we can calculate height for matching source\r\n if (slide.width && slide.height && found.postfix == \"w\") {\r\n slide.height = (slide.width / slide.height) * found.value;\r\n slide.width = found.value;\r\n }\r\n\r\n slide.opts.srcset = srcset;\r\n }\r\n }\r\n },\r\n\r\n // Create full-size image\r\n // ======================\r\n\r\n setBigImage: function (slide) {\r\n var self = this,\r\n img = document.createElement(\"img\"),\r\n $img = $(img);\r\n\r\n slide.$image = $img\r\n .one(\"error\", function () {\r\n self.setError(slide);\r\n })\r\n .one(\"load\", function () {\r\n var sizes;\r\n\r\n if (!slide.$ghost) {\r\n self.resolveImageSlideSize(slide, this.naturalWidth, this.naturalHeight);\r\n\r\n self.afterLoad(slide);\r\n }\r\n\r\n if (self.isClosing) {\r\n return;\r\n }\r\n\r\n if (slide.opts.srcset) {\r\n sizes = slide.opts.sizes;\r\n\r\n if (!sizes || sizes === \"auto\") {\r\n sizes =\r\n (slide.width / slide.height > 1 && $W.width() / $W.height() > 1 ? \"100\" : Math.round((slide.width / slide.height) * 100)) +\r\n \"vw\";\r\n }\r\n\r\n $img.attr(\"sizes\", sizes).attr(\"srcset\", slide.opts.srcset);\r\n }\r\n\r\n // Hide temporary image after some delay\r\n if (slide.$ghost) {\r\n setTimeout(function () {\r\n if (slide.$ghost && !self.isClosing) {\r\n slide.$ghost.hide();\r\n }\r\n }, Math.min(300, Math.max(1000, slide.height / 1600)));\r\n }\r\n\r\n self.hideLoading(slide);\r\n })\r\n .addClass(\"fancybox-image\")\r\n .attr(\"src\", slide.src)\r\n .appendTo(slide.$content);\r\n\r\n if ((img.complete || img.readyState == \"complete\") && $img.naturalWidth && $img.naturalHeight) {\r\n $img.trigger(\"load\");\r\n } else if (img.error) {\r\n $img.trigger(\"error\");\r\n }\r\n },\r\n\r\n // Computes the slide size from image size and maxWidth/maxHeight\r\n // ==============================================================\r\n\r\n resolveImageSlideSize: function (slide, imgWidth, imgHeight) {\r\n var maxWidth = parseInt(slide.opts.width, 10),\r\n maxHeight = parseInt(slide.opts.height, 10);\r\n\r\n // Sets the default values from the image\r\n slide.width = imgWidth;\r\n slide.height = imgHeight;\r\n\r\n if (maxWidth > 0) {\r\n slide.width = maxWidth;\r\n slide.height = Math.floor((maxWidth * imgHeight) / imgWidth);\r\n }\r\n\r\n if (maxHeight > 0) {\r\n slide.width = Math.floor((maxHeight * imgWidth) / imgHeight);\r\n slide.height = maxHeight;\r\n }\r\n },\r\n\r\n // Create iframe wrapper, iframe and bindings\r\n // ==========================================\r\n\r\n setIframe: function (slide) {\r\n var self = this,\r\n opts = slide.opts.iframe,\r\n $slide = slide.$slide,\r\n $iframe;\r\n\r\n slide.$content = $('
')\r\n .css(opts.css)\r\n .appendTo($slide);\r\n\r\n $slide.addClass(\"fancybox-slide--\" + slide.contentType);\r\n\r\n slide.$iframe = $iframe = $(opts.tpl.replace(/\\{rnd\\}/g, new Date().getTime()))\r\n .attr(opts.attr)\r\n .appendTo(slide.$content);\r\n\r\n if (opts.preload) {\r\n self.showLoading(slide);\r\n\r\n // Unfortunately, it is not always possible to determine if iframe is successfully loaded\r\n // (due to browser security policy)\r\n\r\n $iframe.on(\"load.fb error.fb\", function (e) {\r\n this.isReady = 1;\r\n\r\n slide.$slide.trigger(\"refresh\");\r\n\r\n self.afterLoad(slide);\r\n });\r\n\r\n // Recalculate iframe content size\r\n // ===============================\r\n\r\n $slide.on(\"refresh.fb\", function () {\r\n var $content = slide.$content,\r\n frameWidth = opts.css.width,\r\n frameHeight = opts.css.height,\r\n $contents,\r\n $body;\r\n\r\n if ($iframe[0].isReady !== 1) {\r\n return;\r\n }\r\n\r\n try {\r\n $contents = $iframe.contents();\r\n $body = $contents.find(\"body\");\r\n } catch (ignore) {}\r\n\r\n // Calculate content dimensions, if it is accessible\r\n if ($body && $body.length && $body.children().length) {\r\n // Avoid scrolling to top (if multiple instances)\r\n $slide.css(\"overflow\", \"visible\");\r\n\r\n $content.css({\r\n width: \"100%\",\r\n \"max-width\": \"100%\",\r\n height: \"9999px\"\r\n });\r\n\r\n if (frameWidth === undefined) {\r\n frameWidth = Math.ceil(Math.max($body[0].clientWidth, $body.outerWidth(true)));\r\n }\r\n\r\n $content.css(\"width\", frameWidth ? frameWidth : \"\").css(\"max-width\", \"\");\r\n\r\n if (frameHeight === undefined) {\r\n frameHeight = Math.ceil(Math.max($body[0].clientHeight, $body.outerHeight(true)));\r\n }\r\n\r\n $content.css(\"height\", frameHeight ? frameHeight : \"\");\r\n\r\n $slide.css(\"overflow\", \"auto\");\r\n }\r\n\r\n $content.removeClass(\"fancybox-is-hidden\");\r\n });\r\n } else {\r\n self.afterLoad(slide);\r\n }\r\n\r\n $iframe.attr(\"src\", slide.src);\r\n\r\n // Remove iframe if closing or changing gallery item\r\n $slide.one(\"onReset\", function () {\r\n // This helps IE not to throw errors when closing\r\n try {\r\n $(this)\r\n .find(\"iframe\")\r\n .hide()\r\n .unbind()\r\n .attr(\"src\", \"//about:blank\");\r\n } catch (ignore) {}\r\n\r\n $(this)\r\n .off(\"refresh.fb\")\r\n .empty();\r\n\r\n slide.isLoaded = false;\r\n slide.isRevealed = false;\r\n });\r\n },\r\n\r\n // Wrap and append content to the slide\r\n // ======================================\r\n\r\n setContent: function (slide, content) {\r\n var self = this;\r\n\r\n if (self.isClosing) {\r\n return;\r\n }\r\n\r\n self.hideLoading(slide);\r\n\r\n if (slide.$content) {\r\n $.fancybox.stop(slide.$content);\r\n }\r\n\r\n slide.$slide.empty();\r\n\r\n // If content is a jQuery object, then it will be moved to the slide.\r\n // The placeholder is created so we will know where to put it back.\r\n if (isQuery(content) && content.parent().length) {\r\n // Make sure content is not already moved to fancyBox\r\n if (content.hasClass(\"fancybox-content\") || content.parent().hasClass(\"fancybox-content\")) {\r\n content.parents(\".fancybox-slide\").trigger(\"onReset\");\r\n }\r\n\r\n // Create temporary element marking original place of the content\r\n slide.$placeholder = $(\"
\")\r\n .hide()\r\n .insertAfter(content);\r\n\r\n // Make sure content is visible\r\n content.css(\"display\", \"inline-block\");\r\n } else if (!slide.hasError) {\r\n // If content is just a plain text, try to convert it to html\r\n if ($.type(content) === \"string\") {\r\n content = $(\"
\")\r\n .append($.trim(content))\r\n .contents();\r\n }\r\n\r\n // If \"filter\" option is provided, then filter content\r\n if (slide.opts.filter) {\r\n content = $(\"
\")\r\n .html(content)\r\n .find(slide.opts.filter);\r\n }\r\n }\r\n\r\n slide.$slide.one(\"onReset\", function () {\r\n // Pause all html5 video/audio\r\n $(this)\r\n .find(\"video,audio\")\r\n .trigger(\"pause\");\r\n\r\n // Put content back\r\n if (slide.$placeholder) {\r\n slide.$placeholder.after(content.removeClass(\"fancybox-content\").hide()).remove();\r\n\r\n slide.$placeholder = null;\r\n }\r\n\r\n // Remove custom close button\r\n if (slide.$smallBtn) {\r\n slide.$smallBtn.remove();\r\n\r\n slide.$smallBtn = null;\r\n }\r\n\r\n // Remove content and mark slide as not loaded\r\n if (!slide.hasError) {\r\n $(this).empty();\r\n\r\n slide.isLoaded = false;\r\n slide.isRevealed = false;\r\n }\r\n });\r\n\r\n $(content).appendTo(slide.$slide);\r\n\r\n if ($(content).is(\"video,audio\")) {\r\n $(content).addClass(\"fancybox-video\");\r\n\r\n $(content).wrap(\"
\");\r\n\r\n slide.contentType = \"video\";\r\n\r\n slide.opts.width = slide.opts.width || $(content).attr(\"width\");\r\n slide.opts.height = slide.opts.height || $(content).attr(\"height\");\r\n }\r\n\r\n slide.$content = slide.$slide\r\n .children()\r\n .filter(\"div,form,main,video,audio,article,.fancybox-content\")\r\n .first();\r\n\r\n slide.$content.siblings().hide();\r\n\r\n // Re-check if there is a valid content\r\n // (in some cases, ajax response can contain various elements or plain text)\r\n if (!slide.$content.length) {\r\n slide.$content = slide.$slide\r\n .wrapInner(\"
\")\r\n .children()\r\n .first();\r\n }\r\n\r\n slide.$content.addClass(\"fancybox-content\");\r\n\r\n slide.$slide.addClass(\"fancybox-slide--\" + slide.contentType);\r\n\r\n self.afterLoad(slide);\r\n },\r\n\r\n // Display error message\r\n // =====================\r\n\r\n setError: function (slide) {\r\n slide.hasError = true;\r\n\r\n slide.$slide\r\n .trigger(\"onReset\")\r\n .removeClass(\"fancybox-slide--\" + slide.contentType)\r\n .addClass(\"fancybox-slide--error\");\r\n\r\n slide.contentType = \"html\";\r\n\r\n this.setContent(slide, this.translate(slide, slide.opts.errorTpl));\r\n\r\n if (slide.pos === this.currPos) {\r\n this.isAnimating = false;\r\n }\r\n },\r\n\r\n // Show loading icon inside the slide\r\n // ==================================\r\n\r\n showLoading: function (slide) {\r\n var self = this;\r\n\r\n slide = slide || self.current;\r\n\r\n if (slide && !slide.$spinner) {\r\n slide.$spinner = $(self.translate(self, self.opts.spinnerTpl))\r\n .appendTo(slide.$slide)\r\n .hide()\r\n .fadeIn(\"fast\");\r\n }\r\n },\r\n\r\n // Remove loading icon from the slide\r\n // ==================================\r\n\r\n hideLoading: function (slide) {\r\n var self = this;\r\n\r\n slide = slide || self.current;\r\n\r\n if (slide && slide.$spinner) {\r\n slide.$spinner.stop().remove();\r\n\r\n delete slide.$spinner;\r\n }\r\n },\r\n\r\n // Adjustments after slide content has been loaded\r\n // ===============================================\r\n\r\n afterLoad: function (slide) {\r\n var self = this;\r\n\r\n if (self.isClosing) {\r\n return;\r\n }\r\n\r\n slide.isLoading = false;\r\n slide.isLoaded = true;\r\n\r\n self.trigger(\"afterLoad\", slide);\r\n\r\n self.hideLoading(slide);\r\n\r\n // Add small close button\r\n if (slide.opts.smallBtn && (!slide.$smallBtn || !slide.$smallBtn.length)) {\r\n slide.$smallBtn = $(self.translate(slide, slide.opts.btnTpl.smallBtn)).appendTo(slide.$content);\r\n }\r\n\r\n // Disable right click\r\n if (slide.opts.protect && slide.$content && !slide.hasError) {\r\n slide.$content.on(\"contextmenu.fb\", function (e) {\r\n if (e.button == 2) {\r\n e.preventDefault();\r\n }\r\n\r\n return true;\r\n });\r\n\r\n // Add fake element on top of the image\r\n // This makes a bit harder for user to select image\r\n if (slide.type === \"image\") {\r\n $('
').appendTo(slide.$content);\r\n }\r\n }\r\n\r\n self.adjustCaption(slide);\r\n\r\n self.adjustLayout(slide);\r\n\r\n if (slide.pos === self.currPos) {\r\n self.updateCursor();\r\n }\r\n\r\n self.revealContent(slide);\r\n },\r\n\r\n // Prevent caption overlap,\r\n // fix css inconsistency across browsers\r\n // =====================================\r\n\r\n adjustCaption: function (slide) {\r\n var self = this,\r\n current = slide || self.current,\r\n caption = current.opts.caption,\r\n preventOverlap = current.opts.preventCaptionOverlap,\r\n $caption = self.$refs.caption,\r\n $clone,\r\n captionH = false;\r\n\r\n $caption.toggleClass(\"fancybox-caption--separate\", preventOverlap);\r\n\r\n if (preventOverlap && caption && caption.length) {\r\n if (current.pos !== self.currPos) {\r\n $clone = $caption.clone().appendTo($caption.parent());\r\n\r\n $clone\r\n .children()\r\n .eq(0)\r\n .empty()\r\n .html(caption);\r\n\r\n captionH = $clone.outerHeight(true);\r\n\r\n $clone.empty().remove();\r\n } else if (self.$caption) {\r\n captionH = self.$caption.outerHeight(true);\r\n }\r\n\r\n current.$slide.css(\"padding-bottom\", captionH || \"\");\r\n }\r\n },\r\n\r\n // Simple hack to fix inconsistency across browsers, described here (affects Edge, too):\r\n // https://bugzilla.mozilla.org/show_bug.cgi?id=748518\r\n // ====================================================================================\r\n\r\n adjustLayout: function (slide) {\r\n var self = this,\r\n current = slide || self.current,\r\n scrollHeight,\r\n marginBottom,\r\n inlinePadding,\r\n actualPadding;\r\n\r\n if (current.isLoaded && current.opts.disableLayoutFix !== true) {\r\n current.$content.css(\"margin-bottom\", \"\");\r\n\r\n // If we would always set margin-bottom for the content,\r\n // then it would potentially break vertical align\r\n if (current.$content.outerHeight() > current.$slide.height() + 0.5) {\r\n inlinePadding = current.$slide[0].style[\"padding-bottom\"];\r\n actualPadding = current.$slide.css(\"padding-bottom\");\r\n\r\n if (parseFloat(actualPadding) > 0) {\r\n scrollHeight = current.$slide[0].scrollHeight;\r\n\r\n current.$slide.css(\"padding-bottom\", 0);\r\n\r\n if (Math.abs(scrollHeight - current.$slide[0].scrollHeight) < 1) {\r\n marginBottom = actualPadding;\r\n }\r\n\r\n current.$slide.css(\"padding-bottom\", inlinePadding);\r\n }\r\n }\r\n\r\n current.$content.css(\"margin-bottom\", marginBottom);\r\n }\r\n },\r\n\r\n // Make content visible\r\n // This method is called right after content has been loaded or\r\n // user navigates gallery and transition should start\r\n // ============================================================\r\n\r\n revealContent: function (slide) {\r\n var self = this,\r\n $slide = slide.$slide,\r\n end = false,\r\n start = false,\r\n isMoved = self.isMoved(slide),\r\n isRevealed = slide.isRevealed,\r\n effect,\r\n effectClassName,\r\n duration,\r\n opacity;\r\n\r\n slide.isRevealed = true;\r\n\r\n effect = slide.opts[self.firstRun ? \"animationEffect\" : \"transitionEffect\"];\r\n duration = slide.opts[self.firstRun ? \"animationDuration\" : \"transitionDuration\"];\r\n\r\n duration = parseInt(slide.forcedDuration === undefined ? duration : slide.forcedDuration, 10);\r\n\r\n if (isMoved || slide.pos !== self.currPos || !duration) {\r\n effect = false;\r\n }\r\n\r\n // Check if can zoom\r\n if (effect === \"zoom\") {\r\n if (slide.pos === self.currPos && duration && slide.type === \"image\" && !slide.hasError && (start = self.getThumbPos(slide))) {\r\n end = self.getFitPos(slide);\r\n } else {\r\n effect = \"fade\";\r\n }\r\n }\r\n\r\n // Zoom animation\r\n // ==============\r\n if (effect === \"zoom\") {\r\n self.isAnimating = true;\r\n\r\n end.scaleX = end.width / start.width;\r\n end.scaleY = end.height / start.height;\r\n\r\n // Check if we need to animate opacity\r\n opacity = slide.opts.zoomOpacity;\r\n\r\n if (opacity == \"auto\") {\r\n opacity = Math.abs(slide.width / slide.height - start.width / start.height) > 0.1;\r\n }\r\n\r\n if (opacity) {\r\n start.opacity = 0.1;\r\n end.opacity = 1;\r\n }\r\n\r\n // Draw image at start position\r\n $.fancybox.setTranslate(slide.$content.removeClass(\"fancybox-is-hidden\"), start);\r\n\r\n forceRedraw(slide.$content);\r\n\r\n // Start animation\r\n $.fancybox.animate(slide.$content, end, duration, function () {\r\n self.isAnimating = false;\r\n\r\n self.complete();\r\n });\r\n\r\n return;\r\n }\r\n\r\n self.updateSlide(slide);\r\n\r\n // Simply show content if no effect\r\n // ================================\r\n if (!effect) {\r\n slide.$content.removeClass(\"fancybox-is-hidden\");\r\n\r\n if (!isRevealed && isMoved && slide.type === \"image\" && !slide.hasError) {\r\n slide.$content.hide().fadeIn(\"fast\");\r\n }\r\n\r\n if (slide.pos === self.currPos) {\r\n self.complete();\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Prepare for CSS transiton\r\n // =========================\r\n $.fancybox.stop($slide);\r\n\r\n //effectClassName = \"fancybox-animated fancybox-slide--\" + (slide.pos >= self.prevPos ? \"next\" : \"previous\") + \" fancybox-fx-\" + effect;\r\n effectClassName = \"fancybox-slide--\" + (slide.pos >= self.prevPos ? \"next\" : \"previous\") + \" fancybox-animated fancybox-fx-\" + effect;\r\n\r\n $slide.addClass(effectClassName).removeClass(\"fancybox-slide--current\"); //.addClass(effectClassName);\r\n\r\n slide.$content.removeClass(\"fancybox-is-hidden\");\r\n\r\n // Force reflow\r\n forceRedraw($slide);\r\n\r\n if (slide.type !== \"image\") {\r\n slide.$content.hide().show(0);\r\n }\r\n\r\n $.fancybox.animate(\r\n $slide,\r\n \"fancybox-slide--current\",\r\n duration,\r\n function () {\r\n $slide.removeClass(effectClassName).css({\r\n transform: \"\",\r\n opacity: \"\"\r\n });\r\n\r\n if (slide.pos === self.currPos) {\r\n self.complete();\r\n }\r\n },\r\n true\r\n );\r\n },\r\n\r\n // Check if we can and have to zoom from thumbnail\r\n //================================================\r\n\r\n getThumbPos: function (slide) {\r\n var rez = false,\r\n $thumb = slide.$thumb,\r\n thumbPos,\r\n btw,\r\n brw,\r\n bbw,\r\n blw;\r\n\r\n if (!$thumb || !inViewport($thumb[0])) {\r\n return false;\r\n }\r\n\r\n thumbPos = $.fancybox.getTranslate($thumb);\r\n\r\n btw = parseFloat($thumb.css(\"border-top-width\") || 0);\r\n brw = parseFloat($thumb.css(\"border-right-width\") || 0);\r\n bbw = parseFloat($thumb.css(\"border-bottom-width\") || 0);\r\n blw = parseFloat($thumb.css(\"border-left-width\") || 0);\r\n\r\n rez = {\r\n top: thumbPos.top + btw,\r\n left: thumbPos.left + blw,\r\n width: thumbPos.width - brw - blw,\r\n height: thumbPos.height - btw - bbw,\r\n scaleX: 1,\r\n scaleY: 1\r\n };\r\n\r\n return thumbPos.width > 0 && thumbPos.height > 0 ? rez : false;\r\n },\r\n\r\n // Final adjustments after current gallery item is moved to position\r\n // and it`s content is loaded\r\n // ==================================================================\r\n\r\n complete: function () {\r\n var self = this,\r\n current = self.current,\r\n slides = {},\r\n $el;\r\n\r\n if (self.isMoved() || !current.isLoaded) {\r\n return;\r\n }\r\n\r\n if (!current.isComplete) {\r\n current.isComplete = true;\r\n\r\n current.$slide.siblings().trigger(\"onReset\");\r\n\r\n self.preload(\"inline\");\r\n\r\n // Trigger any CSS transiton inside the slide\r\n forceRedraw(current.$slide);\r\n\r\n current.$slide.addClass(\"fancybox-slide--complete\");\r\n\r\n // Remove unnecessary slides\r\n $.each(self.slides, function (key, slide) {\r\n if (slide.pos >= self.currPos - 1 && slide.pos <= self.currPos + 1) {\r\n slides[slide.pos] = slide;\r\n } else if (slide) {\r\n $.fancybox.stop(slide.$slide);\r\n\r\n slide.$slide.off().remove();\r\n }\r\n });\r\n\r\n self.slides = slides;\r\n }\r\n\r\n self.isAnimating = false;\r\n\r\n self.updateCursor();\r\n\r\n self.trigger(\"afterShow\");\r\n\r\n // Autoplay first html5 video/audio\r\n if (!!current.opts.video.autoStart) {\r\n current.$slide\r\n .find(\"video,audio\")\r\n .filter(\":visible:first\")\r\n .trigger(\"play\")\r\n .one(\"ended\", function () {\r\n if (Document.exitFullscreen) {\r\n Document.exitFullscreen();\r\n } else if (this.webkitExitFullscreen) {\r\n this.webkitExitFullscreen();\r\n }\r\n\r\n self.next();\r\n });\r\n }\r\n\r\n // Try to focus on the first focusable element\r\n if (current.opts.autoFocus && current.contentType === \"html\") {\r\n // Look for the first input with autofocus attribute\r\n $el = current.$content.find(\"input[autofocus]:enabled:visible:first\");\r\n\r\n if ($el.length) {\r\n $el.trigger(\"focus\");\r\n } else {\r\n self.focus(null, true);\r\n }\r\n }\r\n\r\n // Avoid jumping\r\n current.$slide.scrollTop(0).scrollLeft(0);\r\n },\r\n\r\n // Preload next and previous slides\r\n // ================================\r\n\r\n preload: function (type) {\r\n var self = this,\r\n prev,\r\n next;\r\n\r\n if (self.group.length < 2) {\r\n return;\r\n }\r\n\r\n next = self.slides[self.currPos + 1];\r\n prev = self.slides[self.currPos - 1];\r\n\r\n if (prev && prev.type === type) {\r\n self.loadSlide(prev);\r\n }\r\n\r\n if (next && next.type === type) {\r\n self.loadSlide(next);\r\n }\r\n },\r\n\r\n // Try to find and focus on the first focusable element\r\n // ====================================================\r\n\r\n focus: function (e, firstRun) {\r\n var self = this,\r\n focusableStr = [\r\n \"a[href]\",\r\n \"area[href]\",\r\n 'input:not([disabled]):not([type=\"hidden\"]):not([aria-hidden])',\r\n \"select:not([disabled]):not([aria-hidden])\",\r\n \"textarea:not([disabled]):not([aria-hidden])\",\r\n \"button:not([disabled]):not([aria-hidden])\",\r\n \"iframe\",\r\n \"object\",\r\n \"embed\",\r\n \"video\",\r\n \"audio\",\r\n \"[contenteditable]\",\r\n '[tabindex]:not([tabindex^=\"-\"])'\r\n ].join(\",\"),\r\n focusableItems,\r\n focusedItemIndex;\r\n\r\n if (self.isClosing) {\r\n return;\r\n }\r\n\r\n if (e || !self.current || !self.current.isComplete) {\r\n // Focus on any element inside fancybox\r\n focusableItems = self.$refs.container.find(\"*:visible\");\r\n } else {\r\n // Focus inside current slide\r\n focusableItems = self.current.$slide.find(\"*:visible\" + (firstRun ? \":not(.fancybox-close-small)\" : \"\"));\r\n }\r\n\r\n focusableItems = focusableItems.filter(focusableStr).filter(function () {\r\n return $(this).css(\"visibility\") !== \"hidden\" && !$(this).hasClass(\"disabled\");\r\n });\r\n\r\n if (focusableItems.length) {\r\n focusedItemIndex = focusableItems.index(document.activeElement);\r\n\r\n if (e && e.shiftKey) {\r\n // Back tab\r\n if (focusedItemIndex < 0 || focusedItemIndex == 0) {\r\n e.preventDefault();\r\n\r\n focusableItems.eq(focusableItems.length - 1).trigger(\"focus\");\r\n }\r\n } else {\r\n // Outside or Forward tab\r\n if (focusedItemIndex < 0 || focusedItemIndex == focusableItems.length - 1) {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n\r\n focusableItems.eq(0).trigger(\"focus\");\r\n }\r\n }\r\n } else {\r\n self.$refs.container.trigger(\"focus\");\r\n }\r\n },\r\n\r\n // Activates current instance - brings container to the front and enables keyboard,\r\n // notifies other instances about deactivating\r\n // =================================================================================\r\n\r\n activate: function () {\r\n var self = this;\r\n\r\n // Deactivate all instances\r\n $(\".fancybox-container\").each(function () {\r\n var instance = $(this).data(\"FancyBox\");\r\n\r\n // Skip self and closing instances\r\n if (instance && instance.id !== self.id && !instance.isClosing) {\r\n instance.trigger(\"onDeactivate\");\r\n\r\n instance.removeEvents();\r\n\r\n instance.isVisible = false;\r\n }\r\n });\r\n\r\n self.isVisible = true;\r\n\r\n if (self.current || self.isIdle) {\r\n self.update();\r\n\r\n self.updateControls();\r\n }\r\n\r\n self.trigger(\"onActivate\");\r\n\r\n self.addEvents();\r\n },\r\n\r\n // Start closing procedure\r\n // This will start \"zoom-out\" animation if needed and clean everything up afterwards\r\n // =================================================================================\r\n\r\n close: function (e, d) {\r\n var self = this,\r\n current = self.current,\r\n effect,\r\n duration,\r\n $content,\r\n domRect,\r\n opacity,\r\n start,\r\n end;\r\n\r\n var done = function () {\r\n self.cleanUp(e);\r\n };\r\n\r\n if (self.isClosing) {\r\n return false;\r\n }\r\n\r\n self.isClosing = true;\r\n\r\n // If beforeClose callback prevents closing, make sure content is centered\r\n if (self.trigger(\"beforeClose\", e) === false) {\r\n self.isClosing = false;\r\n\r\n requestAFrame(function () {\r\n self.update();\r\n });\r\n\r\n return false;\r\n }\r\n\r\n // Remove all events\r\n // If there are multiple instances, they will be set again by \"activate\" method\r\n self.removeEvents();\r\n\r\n $content = current.$content;\r\n effect = current.opts.animationEffect;\r\n duration = $.isNumeric(d) ? d : effect ? current.opts.animationDuration : 0;\r\n\r\n current.$slide.removeClass(\"fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated\");\r\n\r\n if (e !== true) {\r\n $.fancybox.stop(current.$slide);\r\n } else {\r\n effect = false;\r\n }\r\n\r\n // Remove other slides\r\n current.$slide\r\n .siblings()\r\n .trigger(\"onReset\")\r\n .remove();\r\n\r\n // Trigger animations\r\n if (duration) {\r\n self.$refs.container\r\n .removeClass(\"fancybox-is-open\")\r\n .addClass(\"fancybox-is-closing\")\r\n .css(\"transition-duration\", duration + \"ms\");\r\n }\r\n\r\n // Clean up\r\n self.hideLoading(current);\r\n\r\n self.hideControls(true);\r\n\r\n self.updateCursor();\r\n\r\n // Check if possible to zoom-out\r\n if (\r\n effect === \"zoom\" &&\r\n !($content && duration && current.type === \"image\" && !self.isMoved() && !current.hasError && (end = self.getThumbPos(current)))\r\n ) {\r\n effect = \"fade\";\r\n }\r\n\r\n if (effect === \"zoom\") {\r\n $.fancybox.stop($content);\r\n\r\n domRect = $.fancybox.getTranslate($content);\r\n\r\n start = {\r\n top: domRect.top,\r\n left: domRect.left,\r\n scaleX: domRect.width / end.width,\r\n scaleY: domRect.height / end.height,\r\n width: end.width,\r\n height: end.height\r\n };\r\n\r\n // Check if we need to animate opacity\r\n opacity = current.opts.zoomOpacity;\r\n\r\n if (opacity == \"auto\") {\r\n opacity = Math.abs(current.width / current.height - end.width / end.height) > 0.1;\r\n }\r\n\r\n if (opacity) {\r\n end.opacity = 0;\r\n }\r\n\r\n $.fancybox.setTranslate($content, start);\r\n\r\n forceRedraw($content);\r\n\r\n $.fancybox.animate($content, end, duration, done);\r\n\r\n return true;\r\n }\r\n\r\n if (effect && duration) {\r\n $.fancybox.animate(\r\n current.$slide.addClass(\"fancybox-slide--previous\").removeClass(\"fancybox-slide--current\"),\r\n \"fancybox-animated fancybox-fx-\" + effect,\r\n duration,\r\n done\r\n );\r\n } else {\r\n // If skip animation\r\n if (e === true) {\r\n setTimeout(done, duration);\r\n } else {\r\n done();\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n\r\n // Final adjustments after removing the instance\r\n // =============================================\r\n\r\n cleanUp: function (e) {\r\n var self = this,\r\n instance,\r\n $focus = self.current.opts.$orig,\r\n x,\r\n y;\r\n\r\n self.current.$slide.trigger(\"onReset\");\r\n\r\n self.$refs.container.empty().remove();\r\n\r\n self.trigger(\"afterClose\", e);\r\n\r\n // Place back focus\r\n if (!!self.current.opts.backFocus) {\r\n if (!$focus || !$focus.length || !$focus.is(\":visible\")) {\r\n $focus = self.$trigger;\r\n }\r\n\r\n if ($focus && $focus.length) {\r\n x = window.scrollX;\r\n y = window.scrollY;\r\n\r\n $focus.trigger(\"focus\");\r\n\r\n $(\"html, body\")\r\n .scrollTop(y)\r\n .scrollLeft(x);\r\n }\r\n }\r\n\r\n self.current = null;\r\n\r\n // Check if there are other instances\r\n instance = $.fancybox.getInstance();\r\n\r\n if (instance) {\r\n instance.activate();\r\n } else {\r\n $(\"body\").removeClass(\"fancybox-active compensate-for-scrollbar\");\r\n\r\n $(\"#fancybox-style-noscroll\").remove();\r\n }\r\n },\r\n\r\n // Call callback and trigger an event\r\n // ==================================\r\n\r\n trigger: function (name, slide) {\r\n var args = Array.prototype.slice.call(arguments, 1),\r\n self = this,\r\n obj = slide && slide.opts ? slide : self.current,\r\n rez;\r\n\r\n if (obj) {\r\n args.unshift(obj);\r\n } else {\r\n obj = self;\r\n }\r\n\r\n args.unshift(self);\r\n\r\n if ($.isFunction(obj.opts[name])) {\r\n rez = obj.opts[name].apply(obj, args);\r\n }\r\n\r\n if (rez === false) {\r\n return rez;\r\n }\r\n\r\n if (name === \"afterClose\" || !self.$refs) {\r\n $D.trigger(name + \".fb\", args);\r\n } else {\r\n self.$refs.container.trigger(name + \".fb\", args);\r\n }\r\n },\r\n\r\n // Update infobar values, navigation button states and reveal caption\r\n // ==================================================================\r\n\r\n updateControls: function () {\r\n var self = this,\r\n current = self.current,\r\n index = current.index,\r\n $container = self.$refs.container,\r\n $caption = self.$refs.caption,\r\n caption = current.opts.caption;\r\n\r\n // Recalculate content dimensions\r\n current.$slide.trigger(\"refresh\");\r\n\r\n // Set caption\r\n if (caption && caption.length) {\r\n self.$caption = $caption;\r\n\r\n $caption\r\n .children()\r\n .eq(0)\r\n .html(caption);\r\n } else {\r\n self.$caption = null;\r\n }\r\n\r\n if (!self.hasHiddenControls && !self.isIdle) {\r\n self.showControls();\r\n }\r\n\r\n // Update info and navigation elements\r\n $container.find(\"[data-fancybox-count]\").html(self.group.length);\r\n $container.find(\"[data-fancybox-index]\").html(index + 1);\r\n\r\n $container.find(\"[data-fancybox-prev]\").prop(\"disabled\", !current.opts.loop && index <= 0);\r\n $container.find(\"[data-fancybox-next]\").prop(\"disabled\", !current.opts.loop && index >= self.group.length - 1);\r\n\r\n if (current.type === \"image\") {\r\n // Re-enable buttons; update download button source\r\n $container\r\n .find(\"[data-fancybox-zoom]\")\r\n .show()\r\n .end()\r\n .find(\"[data-fancybox-download]\")\r\n .attr(\"href\", current.opts.image.src || current.src)\r\n .show();\r\n } else if (current.opts.toolbar) {\r\n $container.find(\"[data-fancybox-download],[data-fancybox-zoom]\").hide();\r\n }\r\n\r\n // Make sure focus is not on disabled button/element\r\n if ($(document.activeElement).is(\":hidden,[disabled]\")) {\r\n self.$refs.container.trigger(\"focus\");\r\n }\r\n },\r\n\r\n // Hide toolbar and caption\r\n // ========================\r\n\r\n hideControls: function (andCaption) {\r\n var self = this,\r\n arr = [\"infobar\", \"toolbar\", \"nav\"];\r\n\r\n if (andCaption || !self.current.opts.preventCaptionOverlap) {\r\n arr.push(\"caption\");\r\n }\r\n\r\n this.$refs.container.removeClass(\r\n arr\r\n .map(function (i) {\r\n return \"fancybox-show-\" + i;\r\n })\r\n .join(\" \")\r\n );\r\n\r\n this.hasHiddenControls = true;\r\n },\r\n\r\n showControls: function () {\r\n var self = this,\r\n opts = self.current ? self.current.opts : self.opts,\r\n $container = self.$refs.container;\r\n\r\n self.hasHiddenControls = false;\r\n self.idleSecondsCounter = 0;\r\n\r\n $container\r\n .toggleClass(\"fancybox-show-toolbar\", !!(opts.toolbar && opts.buttons))\r\n .toggleClass(\"fancybox-show-infobar\", !!(opts.infobar && self.group.length > 1))\r\n .toggleClass(\"fancybox-show-caption\", !!self.$caption)\r\n .toggleClass(\"fancybox-show-nav\", !!(opts.arrows && self.group.length > 1))\r\n .toggleClass(\"fancybox-is-modal\", !!opts.modal);\r\n },\r\n\r\n // Toggle toolbar and caption\r\n // ==========================\r\n\r\n toggleControls: function () {\r\n if (this.hasHiddenControls) {\r\n this.showControls();\r\n } else {\r\n this.hideControls();\r\n }\r\n }\r\n });\r\n\r\n $.fancybox = {\r\n version: \"3.5.7\",\r\n defaults: defaults,\r\n\r\n // Get current instance and execute a command.\r\n //\r\n // Examples of usage:\r\n //\r\n // $instance = $.fancybox.getInstance();\r\n // $.fancybox.getInstance().jumpTo( 1 );\r\n // $.fancybox.getInstance( 'jumpTo', 1 );\r\n // $.fancybox.getInstance( function() {\r\n // console.info( this.currIndex );\r\n // });\r\n // ======================================================\r\n\r\n getInstance: function (command) {\r\n var instance = $('.fancybox-container:not(\".fancybox-is-closing\"):last').data(\"FancyBox\"),\r\n args = Array.prototype.slice.call(arguments, 1);\r\n\r\n if (instance instanceof FancyBox) {\r\n if ($.type(command) === \"string\") {\r\n instance[command].apply(instance, args);\r\n } else if ($.type(command) === \"function\") {\r\n command.apply(instance, args);\r\n }\r\n\r\n return instance;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n // Create new instance\r\n // ===================\r\n\r\n open: function (items, opts, index) {\r\n return new FancyBox(items, opts, index);\r\n },\r\n\r\n // Close current or all instances\r\n // ==============================\r\n\r\n close: function (all) {\r\n var instance = this.getInstance();\r\n\r\n if (instance) {\r\n instance.close();\r\n\r\n // Try to find and close next instance\r\n if (all === true) {\r\n this.close(all);\r\n }\r\n }\r\n },\r\n\r\n // Close all instances and unbind all events\r\n // =========================================\r\n\r\n destroy: function () {\r\n this.close(true);\r\n\r\n $D.add(\"body\").off(\"click.fb-start\", \"**\");\r\n },\r\n\r\n // Try to detect mobile devices\r\n // ============================\r\n\r\n isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),\r\n\r\n // Detect if 'translate3d' support is available\r\n // ============================================\r\n\r\n use3d: (function () {\r\n var div = document.createElement(\"div\");\r\n\r\n return (\r\n window.getComputedStyle &&\r\n window.getComputedStyle(div) &&\r\n window.getComputedStyle(div).getPropertyValue(\"transform\") &&\r\n !(document.documentMode && document.documentMode < 11)\r\n );\r\n })(),\r\n\r\n // Helper function to get current visual state of an element\r\n // returns array[ top, left, horizontal-scale, vertical-scale, opacity ]\r\n // =====================================================================\r\n\r\n getTranslate: function ($el) {\r\n var domRect;\r\n\r\n if (!$el || !$el.length) {\r\n return false;\r\n }\r\n\r\n domRect = $el[0].getBoundingClientRect();\r\n\r\n return {\r\n top: domRect.top || 0,\r\n left: domRect.left || 0,\r\n width: domRect.width,\r\n height: domRect.height,\r\n opacity: parseFloat($el.css(\"opacity\"))\r\n };\r\n },\r\n\r\n // Shortcut for setting \"translate3d\" properties for element\r\n // Can set be used to set opacity, too\r\n // ========================================================\r\n\r\n setTranslate: function ($el, props) {\r\n var str = \"\",\r\n css = {};\r\n\r\n if (!$el || !props) {\r\n return;\r\n }\r\n\r\n if (props.left !== undefined || props.top !== undefined) {\r\n str =\r\n (props.left === undefined ? $el.position().left : props.left) +\r\n \"px, \" +\r\n (props.top === undefined ? $el.position().top : props.top) +\r\n \"px\";\r\n\r\n if (this.use3d) {\r\n str = \"translate3d(\" + str + \", 0px)\";\r\n } else {\r\n str = \"translate(\" + str + \")\";\r\n }\r\n }\r\n\r\n if (props.scaleX !== undefined && props.scaleY !== undefined) {\r\n str += \" scale(\" + props.scaleX + \", \" + props.scaleY + \")\";\r\n } else if (props.scaleX !== undefined) {\r\n str += \" scaleX(\" + props.scaleX + \")\";\r\n }\r\n\r\n if (str.length) {\r\n css.transform = str;\r\n }\r\n\r\n if (props.opacity !== undefined) {\r\n css.opacity = props.opacity;\r\n }\r\n\r\n if (props.width !== undefined) {\r\n css.width = props.width;\r\n }\r\n\r\n if (props.height !== undefined) {\r\n css.height = props.height;\r\n }\r\n\r\n return $el.css(css);\r\n },\r\n\r\n // Simple CSS transition handler\r\n // =============================\r\n\r\n animate: function ($el, to, duration, callback, leaveAnimationName) {\r\n var self = this,\r\n from;\r\n\r\n if ($.isFunction(duration)) {\r\n callback = duration;\r\n duration = null;\r\n }\r\n\r\n self.stop($el);\r\n\r\n from = self.getTranslate($el);\r\n\r\n $el.on(transitionEnd, function (e) {\r\n // Skip events from child elements and z-index change\r\n if (e && e.originalEvent && (!$el.is(e.originalEvent.target) || e.originalEvent.propertyName == \"z-index\")) {\r\n return;\r\n }\r\n\r\n self.stop($el);\r\n\r\n if ($.isNumeric(duration)) {\r\n $el.css(\"transition-duration\", \"\");\r\n }\r\n\r\n if ($.isPlainObject(to)) {\r\n if (to.scaleX !== undefined && to.scaleY !== undefined) {\r\n self.setTranslate($el, {\r\n top: to.top,\r\n left: to.left,\r\n width: from.width * to.scaleX,\r\n height: from.height * to.scaleY,\r\n scaleX: 1,\r\n scaleY: 1\r\n });\r\n }\r\n } else if (leaveAnimationName !== true) {\r\n $el.removeClass(to);\r\n }\r\n\r\n if ($.isFunction(callback)) {\r\n callback(e);\r\n }\r\n });\r\n\r\n if ($.isNumeric(duration)) {\r\n $el.css(\"transition-duration\", duration + \"ms\");\r\n }\r\n\r\n // Start animation by changing CSS properties or class name\r\n if ($.isPlainObject(to)) {\r\n if (to.scaleX !== undefined && to.scaleY !== undefined) {\r\n delete to.width;\r\n delete to.height;\r\n\r\n if ($el.parent().hasClass(\"fancybox-slide--image\")) {\r\n $el.parent().addClass(\"fancybox-is-scaling\");\r\n }\r\n }\r\n\r\n $.fancybox.setTranslate($el, to);\r\n } else {\r\n $el.addClass(to);\r\n }\r\n\r\n // Make sure that `transitionend` callback gets fired\r\n $el.data(\r\n \"timer\",\r\n setTimeout(function () {\r\n $el.trigger(transitionEnd);\r\n }, duration + 33)\r\n );\r\n },\r\n\r\n stop: function ($el, callCallback) {\r\n if ($el && $el.length) {\r\n clearTimeout($el.data(\"timer\"));\r\n\r\n if (callCallback) {\r\n $el.trigger(transitionEnd);\r\n }\r\n\r\n $el.off(transitionEnd).css(\"transition-duration\", \"\");\r\n\r\n $el.parent().removeClass(\"fancybox-is-scaling\");\r\n }\r\n }\r\n };\r\n\r\n // Default click handler for \"fancyboxed\" links\r\n // ============================================\r\n\r\n function _run(e, opts) {\r\n var items = [],\r\n index = 0,\r\n $target,\r\n value,\r\n instance;\r\n\r\n // Avoid opening multiple times\r\n if (e && e.isDefaultPrevented()) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n\r\n opts = opts || {};\r\n\r\n if (e && e.data) {\r\n opts = mergeOpts(e.data.options, opts);\r\n }\r\n\r\n $target = opts.$target || $(e.currentTarget).trigger(\"blur\");\r\n instance = $.fancybox.getInstance();\r\n\r\n if (instance && instance.$trigger && instance.$trigger.is($target)) {\r\n return;\r\n }\r\n\r\n if (opts.selector) {\r\n items = $(opts.selector);\r\n } else {\r\n // Get all related items and find index for clicked one\r\n value = $target.attr(\"data-fancybox\") || \"\";\r\n\r\n if (value) {\r\n items = e.data ? e.data.items : [];\r\n items = items.length ? items.filter('[data-fancybox=\"' + value + '\"]') : $('[data-fancybox=\"' + value + '\"]');\r\n } else {\r\n items = [$target];\r\n }\r\n }\r\n\r\n index = $(items).index($target);\r\n\r\n // Sometimes current item can not be found\r\n if (index < 0) {\r\n index = 0;\r\n }\r\n\r\n instance = $.fancybox.open(items, opts, index);\r\n\r\n // Save last active element\r\n instance.$trigger = $target;\r\n }\r\n\r\n // Create a jQuery plugin\r\n // ======================\r\n\r\n $.fn.fancybox = function (options) {\r\n var selector;\r\n\r\n options = options || {};\r\n selector = options.selector || false;\r\n\r\n if (selector) {\r\n // Use body element instead of document so it executes first\r\n $(\"body\")\r\n .off(\"click.fb-start\", selector)\r\n .on(\"click.fb-start\", selector, {\r\n options: options\r\n }, _run);\r\n } else {\r\n this.off(\"click.fb-start\").on(\r\n \"click.fb-start\", {\r\n items: this,\r\n options: options\r\n },\r\n _run\r\n );\r\n }\r\n\r\n return this;\r\n };\r\n\r\n // Self initializing plugin for all elements having `data-fancybox` attribute\r\n // ==========================================================================\r\n\r\n $D.on(\"click.fb-start\", \"[data-fancybox]\", _run);\r\n\r\n // Enable \"trigger elements\"\r\n // =========================\r\n\r\n $D.on(\"click.fb-start\", \"[data-fancybox-trigger]\", function (e) {\r\n $('[data-fancybox=\"' + $(this).attr(\"data-fancybox-trigger\") + '\"]')\r\n .eq($(this).attr(\"data-fancybox-index\") || 0)\r\n .trigger(\"click.fb-start\", {\r\n $trigger: $(this)\r\n });\r\n });\r\n\r\n // Track focus event for better accessibility styling\r\n // ==================================================\r\n (function () {\r\n var buttonStr = \".fancybox-button\",\r\n focusStr = \"fancybox-focus\",\r\n $pressed = null;\r\n\r\n $D.on(\"mousedown mouseup focus blur\", buttonStr, function (e) {\r\n switch (e.type) {\r\n case \"mousedown\":\r\n $pressed = $(this);\r\n break;\r\n case \"mouseup\":\r\n $pressed = null;\r\n break;\r\n case \"focusin\":\r\n $(buttonStr).removeClass(focusStr);\r\n\r\n if (!$(this).is($pressed) && !$(this).is(\"[disabled]\")) {\r\n $(this).addClass(focusStr);\r\n }\r\n break;\r\n case \"focusout\":\r\n $(buttonStr).removeClass(focusStr);\r\n break;\r\n }\r\n });\r\n })();\r\n})(window, document, jQuery);\n// ==========================================================================\r\n//\r\n// Media\r\n// Adds additional media type support\r\n//\r\n// ==========================================================================\r\n(function ($) {\r\n \"use strict\";\r\n\r\n // Object containing properties for each media type\r\n var defaults = {\r\n youtube: {\r\n matcher: /(youtube\\.com|youtu\\.be|youtube\\-nocookie\\.com)\\/(watch\\?(.*&)?v=|v\\/|u\\/|embed\\/?)?(videoseries\\?list=(.*)|[\\w-]{11}|\\?listType=(.*)&list=(.*))(.*)/i,\r\n params: {\r\n autoplay: 1,\r\n autohide: 1,\r\n fs: 1,\r\n rel: 0,\r\n hd: 1,\r\n wmode: \"transparent\",\r\n enablejsapi: 1,\r\n html5: 1\r\n },\r\n paramPlace: 8,\r\n type: \"iframe\",\r\n url: \"https://www.youtube-nocookie.com/embed/$4\",\r\n thumb: \"https://img.youtube.com/vi/$4/hqdefault.jpg\"\r\n },\r\n\r\n vimeo: {\r\n matcher: /^.+vimeo.com\\/(.*\\/)?([\\d]+)(.*)?/,\r\n params: {\r\n autoplay: 1,\r\n hd: 1,\r\n show_title: 1,\r\n show_byline: 1,\r\n show_portrait: 0,\r\n fullscreen: 1\r\n },\r\n paramPlace: 3,\r\n type: \"iframe\",\r\n url: \"//player.vimeo.com/video/$2\"\r\n },\r\n\r\n instagram: {\r\n matcher: /(instagr\\.am|instagram\\.com)\\/p\\/([a-zA-Z0-9_\\-]+)\\/?/i,\r\n type: \"image\",\r\n url: \"//$1/p/$2/media/?size=l\"\r\n },\r\n\r\n // Examples:\r\n // http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16\r\n // https://www.google.com/maps/@37.7852006,-122.4146355,14.65z\r\n // https://www.google.com/maps/@52.2111123,2.9237542,6.61z?hl=en\r\n // https://www.google.com/maps/place/Googleplex/@37.4220041,-122.0833494,17z/data=!4m5!3m4!1s0x0:0x6c296c66619367e0!8m2!3d37.4219998!4d-122.0840572\r\n gmap_place: {\r\n matcher: /(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(((maps\\/(place\\/(.*)\\/)?\\@(.*),(\\d+.?\\d+?)z))|(\\?ll=))(.*)?/i,\r\n type: \"iframe\",\r\n url: function (rez) {\r\n return (\r\n \"//maps.google.\" +\r\n rez[2] +\r\n \"/?ll=\" +\r\n (rez[9] ? rez[9] + \"&z=\" + Math.floor(rez[10]) + (rez[12] ? rez[12].replace(/^\\//, \"&\") : \"\") : rez[12] + \"\").replace(/\\?/, \"&\") +\r\n \"&output=\" +\r\n (rez[12] && rez[12].indexOf(\"layer=c\") > 0 ? \"svembed\" : \"embed\")\r\n );\r\n }\r\n },\r\n\r\n // Examples:\r\n // https://www.google.com/maps/search/Empire+State+Building/\r\n // https://www.google.com/maps/search/?api=1&query=centurylink+field\r\n // https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393\r\n gmap_search: {\r\n matcher: /(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(maps\\/search\\/)(.*)/i,\r\n type: \"iframe\",\r\n url: function (rez) {\r\n return \"//maps.google.\" + rez[2] + \"/maps?q=\" + rez[5].replace(\"query=\", \"q=\").replace(\"api=1\", \"\") + \"&output=embed\";\r\n }\r\n }\r\n };\r\n\r\n // Formats matching url to final form\r\n var format = function (url, rez, params) {\r\n if (!url) {\r\n return;\r\n }\r\n\r\n params = params || \"\";\r\n\r\n if ($.type(params) === \"object\") {\r\n params = $.param(params, true);\r\n }\r\n\r\n $.each(rez, function (key, value) {\r\n url = url.replace(\"$\" + key, value || \"\");\r\n });\r\n\r\n if (params.length) {\r\n url += (url.indexOf(\"?\") > 0 ? \"&\" : \"?\") + params;\r\n }\r\n\r\n return url;\r\n };\r\n\r\n $(document).on(\"objectNeedsType.fb\", function (e, instance, item) {\r\n var url = item.src || \"\",\r\n type = false,\r\n media,\r\n thumb,\r\n rez,\r\n params,\r\n urlParams,\r\n paramObj,\r\n provider;\r\n\r\n media = $.extend(true, {}, defaults, item.opts.media);\r\n\r\n // Look for any matching media type\r\n $.each(media, function (providerName, providerOpts) {\r\n rez = url.match(providerOpts.matcher);\r\n\r\n if (!rez) {\r\n return;\r\n }\r\n\r\n type = providerOpts.type;\r\n provider = providerName;\r\n paramObj = {};\r\n\r\n if (providerOpts.paramPlace && rez[providerOpts.paramPlace]) {\r\n urlParams = rez[providerOpts.paramPlace];\r\n\r\n if (urlParams[0] == \"?\") {\r\n urlParams = urlParams.substring(1);\r\n }\r\n\r\n urlParams = urlParams.split(\"&\");\r\n\r\n for (var m = 0; m < urlParams.length; ++m) {\r\n var p = urlParams[m].split(\"=\", 2);\r\n\r\n if (p.length == 2) {\r\n paramObj[p[0]] = decodeURIComponent(p[1].replace(/\\+/g, \" \"));\r\n }\r\n }\r\n }\r\n\r\n params = $.extend(true, {}, providerOpts.params, item.opts[providerName], paramObj);\r\n\r\n url =\r\n $.type(providerOpts.url) === \"function\" ? providerOpts.url.call(this, rez, params, item) : format(providerOpts.url, rez, params);\r\n\r\n thumb =\r\n $.type(providerOpts.thumb) === \"function\" ? providerOpts.thumb.call(this, rez, params, item) : format(providerOpts.thumb, rez);\r\n\r\n if (providerName === \"youtube\") {\r\n url = url.replace(/&t=((\\d+)m)?(\\d+)s/, function (match, p1, m, s) {\r\n return \"&start=\" + ((m ? parseInt(m, 10) * 60 : 0) + parseInt(s, 10));\r\n });\r\n } else if (providerName === \"vimeo\") {\r\n url = url.replace(\"&%23\", \"#\");\r\n }\r\n\r\n return false;\r\n });\r\n\r\n // If it is found, then change content type and update the url\r\n\r\n if (type) {\r\n if (!item.opts.thumb && !(item.opts.$thumb && item.opts.$thumb.length)) {\r\n item.opts.thumb = thumb;\r\n }\r\n\r\n if (type === \"iframe\") {\r\n item.opts = $.extend(true, item.opts, {\r\n iframe: {\r\n preload: false,\r\n attr: {\r\n scrolling: \"no\"\r\n }\r\n }\r\n });\r\n }\r\n\r\n $.extend(item, {\r\n type: type,\r\n src: url,\r\n origSrc: item.src,\r\n contentSource: provider,\r\n contentType: type === \"image\" ? \"image\" : provider == \"gmap_place\" || provider == \"gmap_search\" ? \"map\" : \"video\"\r\n });\r\n } else if (url) {\r\n item.type = item.opts.defaultType;\r\n }\r\n });\r\n\r\n // Load YouTube/Video API on request to detect when video finished playing\r\n var VideoAPILoader = {\r\n youtube: {\r\n src: \"https://www.youtube.com/iframe_api\",\r\n class: \"YT\",\r\n loading: false,\r\n loaded: false\r\n },\r\n\r\n vimeo: {\r\n src: \"https://player.vimeo.com/api/player.js\",\r\n class: \"Vimeo\",\r\n loading: false,\r\n loaded: false\r\n },\r\n\r\n load: function (vendor) {\r\n var _this = this,\r\n script;\r\n\r\n if (this[vendor].loaded) {\r\n setTimeout(function () {\r\n _this.done(vendor);\r\n });\r\n return;\r\n }\r\n\r\n if (this[vendor].loading) {\r\n return;\r\n }\r\n\r\n this[vendor].loading = true;\r\n\r\n script = document.createElement(\"script\");\r\n script.type = \"text/javascript\";\r\n script.src = this[vendor].src;\r\n\r\n if (vendor === \"youtube\") {\r\n window.onYouTubeIframeAPIReady = function () {\r\n _this[vendor].loaded = true;\r\n _this.done(vendor);\r\n };\r\n } else {\r\n script.onload = function () {\r\n _this[vendor].loaded = true;\r\n _this.done(vendor);\r\n };\r\n }\r\n\r\n document.body.appendChild(script);\r\n },\r\n done: function (vendor) {\r\n var instance, $el, player;\r\n\r\n if (vendor === \"youtube\") {\r\n delete window.onYouTubeIframeAPIReady;\r\n }\r\n\r\n instance = $.fancybox.getInstance();\r\n\r\n if (instance) {\r\n $el = instance.current.$content.find(\"iframe\");\r\n\r\n if (vendor === \"youtube\" && YT !== undefined && YT) {\r\n player = new YT.Player($el.attr(\"id\"), {\r\n events: {\r\n onStateChange: function (e) {\r\n if (e.data == 0) {\r\n instance.next();\r\n }\r\n }\r\n }\r\n });\r\n } else if (vendor === \"vimeo\" && Vimeo !== undefined && Vimeo) {\r\n player = new Vimeo.Player($el);\r\n\r\n player.on(\"ended\", function () {\r\n instance.next();\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n $(document).on({\r\n \"afterShow.fb\": function (e, instance, current) {\r\n if (instance.group.length > 1 && (current.contentSource === \"youtube\" || current.contentSource === \"vimeo\")) {\r\n VideoAPILoader.load(current.contentSource);\r\n }\r\n }\r\n });\r\n})(jQuery);\n// ==========================================================================\r\n//\r\n// Guestures\r\n// Adds touch guestures, handles click and tap events\r\n//\r\n// ==========================================================================\r\n(function (window, document, $) {\r\n \"use strict\";\r\n\r\n var requestAFrame = (function () {\r\n return (\r\n window.requestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.oRequestAnimationFrame ||\r\n // if all else fails, use setTimeout\r\n function (callback) {\r\n return window.setTimeout(callback, 1000 / 60);\r\n }\r\n );\r\n })();\r\n\r\n var cancelAFrame = (function () {\r\n return (\r\n window.cancelAnimationFrame ||\r\n window.webkitCancelAnimationFrame ||\r\n window.mozCancelAnimationFrame ||\r\n window.oCancelAnimationFrame ||\r\n function (id) {\r\n window.clearTimeout(id);\r\n }\r\n );\r\n })();\r\n\r\n var getPointerXY = function (e) {\r\n var result = [];\r\n\r\n e = e.originalEvent || e || window.e;\r\n e = e.touches && e.touches.length ? e.touches : e.changedTouches && e.changedTouches.length ? e.changedTouches : [e];\r\n\r\n for (var key in e) {\r\n if (e[key].pageX) {\r\n result.push({\r\n x: e[key].pageX,\r\n y: e[key].pageY\r\n });\r\n } else if (e[key].clientX) {\r\n result.push({\r\n x: e[key].clientX,\r\n y: e[key].clientY\r\n });\r\n }\r\n }\r\n\r\n return result;\r\n };\r\n\r\n var distance = function (point2, point1, what) {\r\n if (!point1 || !point2) {\r\n return 0;\r\n }\r\n\r\n if (what === \"x\") {\r\n return point2.x - point1.x;\r\n } else if (what === \"y\") {\r\n return point2.y - point1.y;\r\n }\r\n\r\n return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));\r\n };\r\n\r\n var isClickable = function ($el) {\r\n if (\r\n $el.is('a,area,button,[role=\"button\"],input,label,select,summary,textarea,video,audio,iframe') ||\r\n $.isFunction($el.get(0).onclick) ||\r\n $el.data(\"selectable\")\r\n ) {\r\n return true;\r\n }\r\n\r\n // Check for attributes like data-fancybox-next or data-fancybox-close\r\n for (var i = 0, atts = $el[0].attributes, n = atts.length; i < n; i++) {\r\n if (atts[i].nodeName.substr(0, 14) === \"data-fancybox-\") {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n var hasScrollbars = function (el) {\r\n var overflowY = window.getComputedStyle(el)[\"overflow-y\"],\r\n overflowX = window.getComputedStyle(el)[\"overflow-x\"],\r\n vertical = (overflowY === \"scroll\" || overflowY === \"auto\") && el.scrollHeight > el.clientHeight,\r\n horizontal = (overflowX === \"scroll\" || overflowX === \"auto\") && el.scrollWidth > el.clientWidth;\r\n\r\n return vertical || horizontal;\r\n };\r\n\r\n var isScrollable = function ($el) {\r\n var rez = false;\r\n\r\n while (true) {\r\n rez = hasScrollbars($el.get(0));\r\n\r\n if (rez) {\r\n break;\r\n }\r\n\r\n $el = $el.parent();\r\n\r\n if (!$el.length || $el.hasClass(\"fancybox-stage\") || $el.is(\"body\")) {\r\n break;\r\n }\r\n }\r\n\r\n return rez;\r\n };\r\n\r\n var Guestures = function (instance) {\r\n var self = this;\r\n\r\n self.instance = instance;\r\n\r\n self.$bg = instance.$refs.bg;\r\n self.$stage = instance.$refs.stage;\r\n self.$container = instance.$refs.container;\r\n\r\n self.destroy();\r\n\r\n self.$container.on(\"touchstart.fb.touch mousedown.fb.touch\", $.proxy(self, \"ontouchstart\"));\r\n };\r\n\r\n Guestures.prototype.destroy = function () {\r\n var self = this;\r\n\r\n self.$container.off(\".fb.touch\");\r\n\r\n $(document).off(\".fb.touch\");\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n self.requestId = null;\r\n }\r\n\r\n if (self.tapped) {\r\n clearTimeout(self.tapped);\r\n self.tapped = null;\r\n }\r\n };\r\n\r\n Guestures.prototype.ontouchstart = function (e) {\r\n var self = this,\r\n $target = $(e.target),\r\n instance = self.instance,\r\n current = instance.current,\r\n $slide = current.$slide,\r\n $content = current.$content,\r\n isTouchDevice = e.type == \"touchstart\";\r\n\r\n // Do not respond to both (touch and mouse) events\r\n if (isTouchDevice) {\r\n self.$container.off(\"mousedown.fb.touch\");\r\n }\r\n\r\n // Ignore right click\r\n if (e.originalEvent && e.originalEvent.button == 2) {\r\n return;\r\n }\r\n\r\n // Ignore taping on links, buttons, input elements\r\n if (!$slide.length || !$target.length || isClickable($target) || isClickable($target.parent())) {\r\n return;\r\n }\r\n // Ignore clicks on the scrollbar\r\n if (!$target.is(\"img\") && e.originalEvent.clientX > $target[0].clientWidth + $target.offset().left) {\r\n return;\r\n }\r\n\r\n // Ignore clicks while zooming or closing\r\n if (!current || instance.isAnimating || current.$slide.hasClass(\"fancybox-animated\")) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n return;\r\n }\r\n\r\n self.realPoints = self.startPoints = getPointerXY(e);\r\n\r\n if (!self.startPoints.length) {\r\n return;\r\n }\r\n\r\n // Allow other scripts to catch touch event if \"touch\" is set to false\r\n if (current.touch) {\r\n e.stopPropagation();\r\n }\r\n\r\n self.startEvent = e;\r\n\r\n self.canTap = true;\r\n self.$target = $target;\r\n self.$content = $content;\r\n self.opts = current.opts.touch;\r\n\r\n self.isPanning = false;\r\n self.isSwiping = false;\r\n self.isZooming = false;\r\n self.isScrolling = false;\r\n self.canPan = instance.canPan();\r\n\r\n self.startTime = new Date().getTime();\r\n self.distanceX = self.distanceY = self.distance = 0;\r\n\r\n self.canvasWidth = Math.round($slide[0].clientWidth);\r\n self.canvasHeight = Math.round($slide[0].clientHeight);\r\n\r\n self.contentLastPos = null;\r\n self.contentStartPos = $.fancybox.getTranslate(self.$content) || {\r\n top: 0,\r\n left: 0\r\n };\r\n self.sliderStartPos = $.fancybox.getTranslate($slide);\r\n\r\n // Since position will be absolute, but we need to make it relative to the stage\r\n self.stagePos = $.fancybox.getTranslate(instance.$refs.stage);\r\n\r\n self.sliderStartPos.top -= self.stagePos.top;\r\n self.sliderStartPos.left -= self.stagePos.left;\r\n\r\n self.contentStartPos.top -= self.stagePos.top;\r\n self.contentStartPos.left -= self.stagePos.left;\r\n\r\n $(document)\r\n .off(\".fb.touch\")\r\n .on(isTouchDevice ? \"touchend.fb.touch touchcancel.fb.touch\" : \"mouseup.fb.touch mouseleave.fb.touch\", $.proxy(self, \"ontouchend\"))\r\n .on(isTouchDevice ? \"touchmove.fb.touch\" : \"mousemove.fb.touch\", $.proxy(self, \"ontouchmove\"));\r\n\r\n if ($.fancybox.isMobile) {\r\n document.addEventListener(\"scroll\", self.onscroll, true);\r\n }\r\n\r\n // Skip if clicked outside the sliding area\r\n if (!(self.opts || self.canPan) || !($target.is(self.$stage) || self.$stage.find($target).length)) {\r\n if ($target.is(\".fancybox-image\")) {\r\n e.preventDefault();\r\n }\r\n\r\n if (!($.fancybox.isMobile && $target.parents(\".fancybox-caption\").length)) {\r\n return;\r\n }\r\n }\r\n\r\n self.isScrollable = isScrollable($target) || isScrollable($target.parent());\r\n\r\n // Check if element is scrollable and try to prevent default behavior (scrolling)\r\n if (!($.fancybox.isMobile && self.isScrollable)) {\r\n e.preventDefault();\r\n }\r\n\r\n // One finger or mouse click - swipe or pan an image\r\n if (self.startPoints.length === 1 || current.hasError) {\r\n if (self.canPan) {\r\n $.fancybox.stop(self.$content);\r\n\r\n self.isPanning = true;\r\n } else {\r\n self.isSwiping = true;\r\n }\r\n\r\n self.$container.addClass(\"fancybox-is-grabbing\");\r\n }\r\n\r\n // Two fingers - zoom image\r\n if (self.startPoints.length === 2 && current.type === \"image\" && (current.isLoaded || current.$ghost)) {\r\n self.canTap = false;\r\n self.isSwiping = false;\r\n self.isPanning = false;\r\n\r\n self.isZooming = true;\r\n\r\n $.fancybox.stop(self.$content);\r\n\r\n self.centerPointStartX = (self.startPoints[0].x + self.startPoints[1].x) * 0.5 - $(window).scrollLeft();\r\n self.centerPointStartY = (self.startPoints[0].y + self.startPoints[1].y) * 0.5 - $(window).scrollTop();\r\n\r\n self.percentageOfImageAtPinchPointX = (self.centerPointStartX - self.contentStartPos.left) / self.contentStartPos.width;\r\n self.percentageOfImageAtPinchPointY = (self.centerPointStartY - self.contentStartPos.top) / self.contentStartPos.height;\r\n\r\n self.startDistanceBetweenFingers = distance(self.startPoints[0], self.startPoints[1]);\r\n }\r\n };\r\n\r\n Guestures.prototype.onscroll = function (e) {\r\n var self = this;\r\n\r\n self.isScrolling = true;\r\n\r\n document.removeEventListener(\"scroll\", self.onscroll, true);\r\n };\r\n\r\n Guestures.prototype.ontouchmove = function (e) {\r\n var self = this;\r\n\r\n // Make sure user has not released over iframe or disabled element\r\n if (e.originalEvent.buttons !== undefined && e.originalEvent.buttons === 0) {\r\n self.ontouchend(e);\r\n return;\r\n }\r\n\r\n if (self.isScrolling) {\r\n self.canTap = false;\r\n return;\r\n }\r\n\r\n self.newPoints = getPointerXY(e);\r\n\r\n if (!(self.opts || self.canPan) || !self.newPoints.length || !self.newPoints.length) {\r\n return;\r\n }\r\n\r\n if (!(self.isSwiping && self.isSwiping === true)) {\r\n e.preventDefault();\r\n }\r\n\r\n self.distanceX = distance(self.newPoints[0], self.startPoints[0], \"x\");\r\n self.distanceY = distance(self.newPoints[0], self.startPoints[0], \"y\");\r\n\r\n self.distance = distance(self.newPoints[0], self.startPoints[0]);\r\n\r\n // Skip false ontouchmove events (Chrome)\r\n if (self.distance > 0) {\r\n if (self.isSwiping) {\r\n self.onSwipe(e);\r\n } else if (self.isPanning) {\r\n self.onPan();\r\n } else if (self.isZooming) {\r\n self.onZoom();\r\n }\r\n }\r\n };\r\n\r\n Guestures.prototype.onSwipe = function (e) {\r\n var self = this,\r\n instance = self.instance,\r\n swiping = self.isSwiping,\r\n left = self.sliderStartPos.left || 0,\r\n angle;\r\n\r\n // If direction is not yet determined\r\n if (swiping === true) {\r\n // We need at least 10px distance to correctly calculate an angle\r\n if (Math.abs(self.distance) > 10) {\r\n self.canTap = false;\r\n\r\n if (instance.group.length < 2 && self.opts.vertical) {\r\n self.isSwiping = \"y\";\r\n } else if (instance.isDragging || self.opts.vertical === false || (self.opts.vertical === \"auto\" && $(window).width() > 800)) {\r\n self.isSwiping = \"x\";\r\n } else {\r\n angle = Math.abs((Math.atan2(self.distanceY, self.distanceX) * 180) / Math.PI);\r\n\r\n self.isSwiping = angle > 45 && angle < 135 ? \"y\" : \"x\";\r\n }\r\n\r\n if (self.isSwiping === \"y\" && $.fancybox.isMobile && self.isScrollable) {\r\n self.isScrolling = true;\r\n\r\n return;\r\n }\r\n\r\n instance.isDragging = self.isSwiping;\r\n\r\n // Reset points to avoid jumping, because we dropped first swipes to calculate the angle\r\n self.startPoints = self.newPoints;\r\n\r\n $.each(instance.slides, function (index, slide) {\r\n var slidePos, stagePos;\r\n\r\n $.fancybox.stop(slide.$slide);\r\n\r\n slidePos = $.fancybox.getTranslate(slide.$slide);\r\n stagePos = $.fancybox.getTranslate(instance.$refs.stage);\r\n\r\n slide.$slide\r\n .css({\r\n transform: \"\",\r\n opacity: \"\",\r\n \"transition-duration\": \"\"\r\n })\r\n .removeClass(\"fancybox-animated\")\r\n .removeClass(function (index, className) {\r\n return (className.match(/(^|\\s)fancybox-fx-\\S+/g) || []).join(\" \");\r\n });\r\n\r\n if (slide.pos === instance.current.pos) {\r\n self.sliderStartPos.top = slidePos.top - stagePos.top;\r\n self.sliderStartPos.left = slidePos.left - stagePos.left;\r\n }\r\n\r\n $.fancybox.setTranslate(slide.$slide, {\r\n top: slidePos.top - stagePos.top,\r\n left: slidePos.left - stagePos.left\r\n });\r\n });\r\n\r\n // Stop slideshow\r\n if (instance.SlideShow && instance.SlideShow.isActive) {\r\n instance.SlideShow.stop();\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Sticky edges\r\n if (swiping == \"x\") {\r\n if (\r\n self.distanceX > 0 &&\r\n (self.instance.group.length < 2 || (self.instance.current.index === 0 && !self.instance.current.opts.loop))\r\n ) {\r\n left = left + Math.pow(self.distanceX, 0.8);\r\n } else if (\r\n self.distanceX < 0 &&\r\n (self.instance.group.length < 2 ||\r\n (self.instance.current.index === self.instance.group.length - 1 && !self.instance.current.opts.loop))\r\n ) {\r\n left = left - Math.pow(-self.distanceX, 0.8);\r\n } else {\r\n left = left + self.distanceX;\r\n }\r\n }\r\n\r\n self.sliderLastPos = {\r\n top: swiping == \"x\" ? 0 : self.sliderStartPos.top + self.distanceY,\r\n left: left\r\n };\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n\r\n self.requestId = null;\r\n }\r\n\r\n self.requestId = requestAFrame(function () {\r\n if (self.sliderLastPos) {\r\n $.each(self.instance.slides, function (index, slide) {\r\n var pos = slide.pos - self.instance.currPos;\r\n\r\n $.fancybox.setTranslate(slide.$slide, {\r\n top: self.sliderLastPos.top,\r\n left: self.sliderLastPos.left + pos * self.canvasWidth + pos * slide.opts.gutter\r\n });\r\n });\r\n\r\n self.$container.addClass(\"fancybox-is-sliding\");\r\n }\r\n });\r\n };\r\n\r\n Guestures.prototype.onPan = function () {\r\n var self = this;\r\n\r\n // Prevent accidental movement (sometimes, when tapping casually, finger can move a bit)\r\n if (distance(self.newPoints[0], self.realPoints[0]) < ($.fancybox.isMobile ? 10 : 5)) {\r\n self.startPoints = self.newPoints;\r\n return;\r\n }\r\n\r\n self.canTap = false;\r\n\r\n self.contentLastPos = self.limitMovement();\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n }\r\n\r\n self.requestId = requestAFrame(function () {\r\n $.fancybox.setTranslate(self.$content, self.contentLastPos);\r\n });\r\n };\r\n\r\n // Make panning sticky to the edges\r\n Guestures.prototype.limitMovement = function () {\r\n var self = this;\r\n\r\n var canvasWidth = self.canvasWidth;\r\n var canvasHeight = self.canvasHeight;\r\n\r\n var distanceX = self.distanceX;\r\n var distanceY = self.distanceY;\r\n\r\n var contentStartPos = self.contentStartPos;\r\n\r\n var currentOffsetX = contentStartPos.left;\r\n var currentOffsetY = contentStartPos.top;\r\n\r\n var currentWidth = contentStartPos.width;\r\n var currentHeight = contentStartPos.height;\r\n\r\n var minTranslateX, minTranslateY, maxTranslateX, maxTranslateY, newOffsetX, newOffsetY;\r\n\r\n if (currentWidth > canvasWidth) {\r\n newOffsetX = currentOffsetX + distanceX;\r\n } else {\r\n newOffsetX = currentOffsetX;\r\n }\r\n\r\n newOffsetY = currentOffsetY + distanceY;\r\n\r\n // Slow down proportionally to traveled distance\r\n minTranslateX = Math.max(0, canvasWidth * 0.5 - currentWidth * 0.5);\r\n minTranslateY = Math.max(0, canvasHeight * 0.5 - currentHeight * 0.5);\r\n\r\n maxTranslateX = Math.min(canvasWidth - currentWidth, canvasWidth * 0.5 - currentWidth * 0.5);\r\n maxTranslateY = Math.min(canvasHeight - currentHeight, canvasHeight * 0.5 - currentHeight * 0.5);\r\n\r\n // ->\r\n if (distanceX > 0 && newOffsetX > minTranslateX) {\r\n newOffsetX = minTranslateX - 1 + Math.pow(-minTranslateX + currentOffsetX + distanceX, 0.8) || 0;\r\n }\r\n\r\n // <-\r\n if (distanceX < 0 && newOffsetX < maxTranslateX) {\r\n newOffsetX = maxTranslateX + 1 - Math.pow(maxTranslateX - currentOffsetX - distanceX, 0.8) || 0;\r\n }\r\n\r\n // \\/\r\n if (distanceY > 0 && newOffsetY > minTranslateY) {\r\n newOffsetY = minTranslateY - 1 + Math.pow(-minTranslateY + currentOffsetY + distanceY, 0.8) || 0;\r\n }\r\n\r\n // /\\\r\n if (distanceY < 0 && newOffsetY < maxTranslateY) {\r\n newOffsetY = maxTranslateY + 1 - Math.pow(maxTranslateY - currentOffsetY - distanceY, 0.8) || 0;\r\n }\r\n\r\n return {\r\n top: newOffsetY,\r\n left: newOffsetX\r\n };\r\n };\r\n\r\n Guestures.prototype.limitPosition = function (newOffsetX, newOffsetY, newWidth, newHeight) {\r\n var self = this;\r\n\r\n var canvasWidth = self.canvasWidth;\r\n var canvasHeight = self.canvasHeight;\r\n\r\n if (newWidth > canvasWidth) {\r\n newOffsetX = newOffsetX > 0 ? 0 : newOffsetX;\r\n newOffsetX = newOffsetX < canvasWidth - newWidth ? canvasWidth - newWidth : newOffsetX;\r\n } else {\r\n // Center horizontally\r\n newOffsetX = Math.max(0, canvasWidth / 2 - newWidth / 2);\r\n }\r\n\r\n if (newHeight > canvasHeight) {\r\n newOffsetY = newOffsetY > 0 ? 0 : newOffsetY;\r\n newOffsetY = newOffsetY < canvasHeight - newHeight ? canvasHeight - newHeight : newOffsetY;\r\n } else {\r\n // Center vertically\r\n newOffsetY = Math.max(0, canvasHeight / 2 - newHeight / 2);\r\n }\r\n\r\n return {\r\n top: newOffsetY,\r\n left: newOffsetX\r\n };\r\n };\r\n\r\n Guestures.prototype.onZoom = function () {\r\n var self = this;\r\n\r\n // Calculate current distance between points to get pinch ratio and new width and height\r\n var contentStartPos = self.contentStartPos;\r\n\r\n var currentWidth = contentStartPos.width;\r\n var currentHeight = contentStartPos.height;\r\n\r\n var currentOffsetX = contentStartPos.left;\r\n var currentOffsetY = contentStartPos.top;\r\n\r\n var endDistanceBetweenFingers = distance(self.newPoints[0], self.newPoints[1]);\r\n\r\n var pinchRatio = endDistanceBetweenFingers / self.startDistanceBetweenFingers;\r\n\r\n var newWidth = Math.floor(currentWidth * pinchRatio);\r\n var newHeight = Math.floor(currentHeight * pinchRatio);\r\n\r\n // This is the translation due to pinch-zooming\r\n var translateFromZoomingX = (currentWidth - newWidth) * self.percentageOfImageAtPinchPointX;\r\n var translateFromZoomingY = (currentHeight - newHeight) * self.percentageOfImageAtPinchPointY;\r\n\r\n // Point between the two touches\r\n var centerPointEndX = (self.newPoints[0].x + self.newPoints[1].x) / 2 - $(window).scrollLeft();\r\n var centerPointEndY = (self.newPoints[0].y + self.newPoints[1].y) / 2 - $(window).scrollTop();\r\n\r\n // And this is the translation due to translation of the centerpoint\r\n // between the two fingers\r\n var translateFromTranslatingX = centerPointEndX - self.centerPointStartX;\r\n var translateFromTranslatingY = centerPointEndY - self.centerPointStartY;\r\n\r\n // The new offset is the old/current one plus the total translation\r\n var newOffsetX = currentOffsetX + (translateFromZoomingX + translateFromTranslatingX);\r\n var newOffsetY = currentOffsetY + (translateFromZoomingY + translateFromTranslatingY);\r\n\r\n var newPos = {\r\n top: newOffsetY,\r\n left: newOffsetX,\r\n scaleX: pinchRatio,\r\n scaleY: pinchRatio\r\n };\r\n\r\n self.canTap = false;\r\n\r\n self.newWidth = newWidth;\r\n self.newHeight = newHeight;\r\n\r\n self.contentLastPos = newPos;\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n }\r\n\r\n self.requestId = requestAFrame(function () {\r\n $.fancybox.setTranslate(self.$content, self.contentLastPos);\r\n });\r\n };\r\n\r\n Guestures.prototype.ontouchend = function (e) {\r\n var self = this;\r\n\r\n var swiping = self.isSwiping;\r\n var panning = self.isPanning;\r\n var zooming = self.isZooming;\r\n var scrolling = self.isScrolling;\r\n\r\n self.endPoints = getPointerXY(e);\r\n self.dMs = Math.max(new Date().getTime() - self.startTime, 1);\r\n\r\n self.$container.removeClass(\"fancybox-is-grabbing\");\r\n\r\n $(document).off(\".fb.touch\");\r\n\r\n document.removeEventListener(\"scroll\", self.onscroll, true);\r\n\r\n if (self.requestId) {\r\n cancelAFrame(self.requestId);\r\n\r\n self.requestId = null;\r\n }\r\n\r\n self.isSwiping = false;\r\n self.isPanning = false;\r\n self.isZooming = false;\r\n self.isScrolling = false;\r\n\r\n self.instance.isDragging = false;\r\n\r\n if (self.canTap) {\r\n return self.onTap(e);\r\n }\r\n\r\n self.speed = 100;\r\n\r\n // Speed in px/ms\r\n self.velocityX = (self.distanceX / self.dMs) * 0.5;\r\n self.velocityY = (self.distanceY / self.dMs) * 0.5;\r\n\r\n if (panning) {\r\n self.endPanning();\r\n } else if (zooming) {\r\n self.endZooming();\r\n } else {\r\n self.endSwiping(swiping, scrolling);\r\n }\r\n\r\n return;\r\n };\r\n\r\n Guestures.prototype.endSwiping = function (swiping, scrolling) {\r\n var self = this,\r\n ret = false,\r\n len = self.instance.group.length,\r\n distanceX = Math.abs(self.distanceX),\r\n canAdvance = swiping == \"x\" && len > 1 && ((self.dMs > 130 && distanceX > 10) || distanceX > 50),\r\n speedX = 300;\r\n\r\n self.sliderLastPos = null;\r\n\r\n // Close if swiped vertically / navigate if horizontally\r\n if (swiping == \"y\" && !scrolling && Math.abs(self.distanceY) > 50) {\r\n // Continue vertical movement\r\n $.fancybox.animate(\r\n self.instance.current.$slide, {\r\n top: self.sliderStartPos.top + self.distanceY + self.velocityY * 150,\r\n opacity: 0\r\n },\r\n 200\r\n );\r\n ret = self.instance.close(true, 250);\r\n } else if (canAdvance && self.distanceX > 0) {\r\n ret = self.instance.previous(speedX);\r\n } else if (canAdvance && self.distanceX < 0) {\r\n ret = self.instance.next(speedX);\r\n }\r\n\r\n if (ret === false && (swiping == \"x\" || swiping == \"y\")) {\r\n self.instance.centerSlide(200);\r\n }\r\n\r\n self.$container.removeClass(\"fancybox-is-sliding\");\r\n };\r\n\r\n // Limit panning from edges\r\n // ========================\r\n Guestures.prototype.endPanning = function () {\r\n var self = this,\r\n newOffsetX,\r\n newOffsetY,\r\n newPos;\r\n\r\n if (!self.contentLastPos) {\r\n return;\r\n }\r\n\r\n if (self.opts.momentum === false || self.dMs > 350) {\r\n newOffsetX = self.contentLastPos.left;\r\n newOffsetY = self.contentLastPos.top;\r\n } else {\r\n // Continue movement\r\n newOffsetX = self.contentLastPos.left + self.velocityX * 500;\r\n newOffsetY = self.contentLastPos.top + self.velocityY * 500;\r\n }\r\n\r\n newPos = self.limitPosition(newOffsetX, newOffsetY, self.contentStartPos.width, self.contentStartPos.height);\r\n\r\n newPos.width = self.contentStartPos.width;\r\n newPos.height = self.contentStartPos.height;\r\n\r\n $.fancybox.animate(self.$content, newPos, 366);\r\n };\r\n\r\n Guestures.prototype.endZooming = function () {\r\n var self = this;\r\n\r\n var current = self.instance.current;\r\n\r\n var newOffsetX, newOffsetY, newPos, reset;\r\n\r\n var newWidth = self.newWidth;\r\n var newHeight = self.newHeight;\r\n\r\n if (!self.contentLastPos) {\r\n return;\r\n }\r\n\r\n newOffsetX = self.contentLastPos.left;\r\n newOffsetY = self.contentLastPos.top;\r\n\r\n reset = {\r\n top: newOffsetY,\r\n left: newOffsetX,\r\n width: newWidth,\r\n height: newHeight,\r\n scaleX: 1,\r\n scaleY: 1\r\n };\r\n\r\n // Reset scalex/scaleY values; this helps for perfomance and does not break animation\r\n $.fancybox.setTranslate(self.$content, reset);\r\n\r\n if (newWidth < self.canvasWidth && newHeight < self.canvasHeight) {\r\n self.instance.scaleToFit(150);\r\n } else if (newWidth > current.width || newHeight > current.height) {\r\n self.instance.scaleToActual(self.centerPointStartX, self.centerPointStartY, 150);\r\n } else {\r\n newPos = self.limitPosition(newOffsetX, newOffsetY, newWidth, newHeight);\r\n\r\n $.fancybox.animate(self.$content, newPos, 150);\r\n }\r\n };\r\n\r\n Guestures.prototype.onTap = function (e) {\r\n var self = this;\r\n var $target = $(e.target);\r\n\r\n var instance = self.instance;\r\n var current = instance.current;\r\n\r\n var endPoints = (e && getPointerXY(e)) || self.startPoints;\r\n\r\n var tapX = endPoints[0] ? endPoints[0].x - $(window).scrollLeft() - self.stagePos.left : 0;\r\n var tapY = endPoints[0] ? endPoints[0].y - $(window).scrollTop() - self.stagePos.top : 0;\r\n\r\n var where;\r\n\r\n var process = function (prefix) {\r\n var action = current.opts[prefix];\r\n\r\n if ($.isFunction(action)) {\r\n action = action.apply(instance, [current, e]);\r\n }\r\n\r\n if (!action) {\r\n return;\r\n }\r\n\r\n switch (action) {\r\n case \"close\":\r\n instance.close(self.startEvent);\r\n\r\n break;\r\n\r\n case \"toggleControls\":\r\n instance.toggleControls();\r\n\r\n break;\r\n\r\n case \"next\":\r\n instance.next();\r\n\r\n break;\r\n\r\n case \"nextOrClose\":\r\n if (instance.group.length > 1) {\r\n instance.next();\r\n } else {\r\n instance.close(self.startEvent);\r\n }\r\n\r\n break;\r\n\r\n case \"zoom\":\r\n if (current.type == \"image\" && (current.isLoaded || current.$ghost)) {\r\n if (instance.canPan()) {\r\n instance.scaleToFit();\r\n } else if (instance.isScaledDown()) {\r\n instance.scaleToActual(tapX, tapY);\r\n } else if (instance.group.length < 2) {\r\n instance.close(self.startEvent);\r\n }\r\n }\r\n\r\n break;\r\n }\r\n };\r\n\r\n // Ignore right click\r\n if (e.originalEvent && e.originalEvent.button == 2) {\r\n return;\r\n }\r\n\r\n // Skip if clicked on the scrollbar\r\n if (!$target.is(\"img\") && tapX > $target[0].clientWidth + $target.offset().left) {\r\n return;\r\n }\r\n\r\n // Check where is clicked\r\n if ($target.is(\".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container\")) {\r\n where = \"Outside\";\r\n } else if ($target.is(\".fancybox-slide\")) {\r\n where = \"Slide\";\r\n } else if (\r\n instance.current.$content &&\r\n instance.current.$content\r\n .find($target)\r\n .addBack()\r\n .filter($target).length\r\n ) {\r\n where = \"Content\";\r\n } else {\r\n return;\r\n }\r\n\r\n // Check if this is a double tap\r\n if (self.tapped) {\r\n // Stop previously created single tap\r\n clearTimeout(self.tapped);\r\n self.tapped = null;\r\n\r\n // Skip if distance between taps is too big\r\n if (Math.abs(tapX - self.tapX) > 50 || Math.abs(tapY - self.tapY) > 50) {\r\n return this;\r\n }\r\n\r\n // OK, now we assume that this is a double-tap\r\n process(\"dblclick\" + where);\r\n } else {\r\n // Single tap will be processed if user has not clicked second time within 300ms\r\n // or there is no need to wait for double-tap\r\n self.tapX = tapX;\r\n self.tapY = tapY;\r\n\r\n if (current.opts[\"dblclick\" + where] && current.opts[\"dblclick\" + where] !== current.opts[\"click\" + where]) {\r\n self.tapped = setTimeout(function () {\r\n self.tapped = null;\r\n\r\n if (!instance.isAnimating) {\r\n process(\"click\" + where);\r\n }\r\n }, 500);\r\n } else {\r\n process(\"click\" + where);\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n $(document)\r\n .on(\"onActivate.fb\", function (e, instance) {\r\n if (instance && !instance.Guestures) {\r\n instance.Guestures = new Guestures(instance);\r\n }\r\n })\r\n .on(\"beforeClose.fb\", function (e, instance) {\r\n if (instance && instance.Guestures) {\r\n instance.Guestures.destroy();\r\n }\r\n });\r\n})(window, document, jQuery);\n// ==========================================================================\r\n//\r\n// SlideShow\r\n// Enables slideshow functionality\r\n//\r\n// Example of usage:\r\n// $.fancybox.getInstance().SlideShow.start()\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n $.extend(true, $.fancybox.defaults, {\r\n btnTpl: {\r\n slideShow: '\"\r\n },\r\n slideShow: {\r\n autoStart: false,\r\n speed: 3000,\r\n progress: true\r\n }\r\n });\r\n\r\n var SlideShow = function (instance) {\r\n this.instance = instance;\r\n this.init();\r\n };\r\n\r\n $.extend(SlideShow.prototype, {\r\n timer: null,\r\n isActive: false,\r\n $button: null,\r\n\r\n init: function () {\r\n var self = this,\r\n instance = self.instance,\r\n opts = instance.group[instance.currIndex].opts.slideShow;\r\n\r\n self.$button = instance.$refs.toolbar.find(\"[data-fancybox-play]\").on(\"click\", function () {\r\n self.toggle();\r\n });\r\n\r\n if (instance.group.length < 2 || !opts) {\r\n self.$button.hide();\r\n } else if (opts.progress) {\r\n self.$progress = $('
').appendTo(instance.$refs.inner);\r\n }\r\n },\r\n\r\n set: function (force) {\r\n var self = this,\r\n instance = self.instance,\r\n current = instance.current;\r\n\r\n // Check if reached last element\r\n if (current && (force === true || current.opts.loop || instance.currIndex < instance.group.length - 1)) {\r\n if (self.isActive && current.contentType !== \"video\") {\r\n if (self.$progress) {\r\n $.fancybox.animate(self.$progress.show(), {\r\n scaleX: 1\r\n }, current.opts.slideShow.speed);\r\n }\r\n\r\n self.timer = setTimeout(function () {\r\n if (!instance.current.opts.loop && instance.current.index == instance.group.length - 1) {\r\n instance.jumpTo(0);\r\n } else {\r\n instance.next();\r\n }\r\n }, current.opts.slideShow.speed);\r\n }\r\n } else {\r\n self.stop();\r\n instance.idleSecondsCounter = 0;\r\n instance.showControls();\r\n }\r\n },\r\n\r\n clear: function () {\r\n var self = this;\r\n\r\n clearTimeout(self.timer);\r\n\r\n self.timer = null;\r\n\r\n if (self.$progress) {\r\n self.$progress.removeAttr(\"style\").hide();\r\n }\r\n },\r\n\r\n start: function () {\r\n var self = this,\r\n current = self.instance.current;\r\n\r\n if (current) {\r\n self.$button\r\n .attr(\"title\", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_STOP)\r\n .removeClass(\"fancybox-button--play\")\r\n .addClass(\"fancybox-button--pause\");\r\n\r\n self.isActive = true;\r\n\r\n if (current.isComplete) {\r\n self.set(true);\r\n }\r\n\r\n self.instance.trigger(\"onSlideShowChange\", true);\r\n }\r\n },\r\n\r\n stop: function () {\r\n var self = this,\r\n current = self.instance.current;\r\n\r\n self.clear();\r\n\r\n self.$button\r\n .attr(\"title\", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_START)\r\n .removeClass(\"fancybox-button--pause\")\r\n .addClass(\"fancybox-button--play\");\r\n\r\n self.isActive = false;\r\n\r\n self.instance.trigger(\"onSlideShowChange\", false);\r\n\r\n if (self.$progress) {\r\n self.$progress.removeAttr(\"style\").hide();\r\n }\r\n },\r\n\r\n toggle: function () {\r\n var self = this;\r\n\r\n if (self.isActive) {\r\n self.stop();\r\n } else {\r\n self.start();\r\n }\r\n }\r\n });\r\n\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance) {\r\n if (instance && !instance.SlideShow) {\r\n instance.SlideShow = new SlideShow(instance);\r\n }\r\n },\r\n\r\n \"beforeShow.fb\": function (e, instance, current, firstRun) {\r\n var SlideShow = instance && instance.SlideShow;\r\n\r\n if (firstRun) {\r\n if (SlideShow && current.opts.slideShow.autoStart) {\r\n SlideShow.start();\r\n }\r\n } else if (SlideShow && SlideShow.isActive) {\r\n SlideShow.clear();\r\n }\r\n },\r\n\r\n \"afterShow.fb\": function (e, instance, current) {\r\n var SlideShow = instance && instance.SlideShow;\r\n\r\n if (SlideShow && SlideShow.isActive) {\r\n SlideShow.set();\r\n }\r\n },\r\n\r\n \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\r\n var SlideShow = instance && instance.SlideShow;\r\n\r\n // \"P\" or Spacebar\r\n if (SlideShow && current.opts.slideShow && (keycode === 80 || keycode === 32) && !$(document.activeElement).is(\"button,a,input\")) {\r\n keypress.preventDefault();\r\n\r\n SlideShow.toggle();\r\n }\r\n },\r\n\r\n \"beforeClose.fb onDeactivate.fb\": function (e, instance) {\r\n var SlideShow = instance && instance.SlideShow;\r\n\r\n if (SlideShow) {\r\n SlideShow.stop();\r\n }\r\n }\r\n });\r\n\r\n // Page Visibility API to pause slideshow when window is not active\r\n $(document).on(\"visibilitychange\", function () {\r\n var instance = $.fancybox.getInstance(),\r\n SlideShow = instance && instance.SlideShow;\r\n\r\n if (SlideShow && SlideShow.isActive) {\r\n if (document.hidden) {\r\n SlideShow.clear();\r\n } else {\r\n SlideShow.set();\r\n }\r\n }\r\n });\r\n})(document, jQuery);\n// ==========================================================================\r\n//\r\n// FullScreen\r\n// Adds fullscreen functionality\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n // Collection of methods supported by user browser\r\n var fn = (function () {\r\n var fnMap = [\r\n [\"requestFullscreen\", \"exitFullscreen\", \"fullscreenElement\", \"fullscreenEnabled\", \"fullscreenchange\", \"fullscreenerror\"],\r\n // new WebKit\r\n [\r\n \"webkitRequestFullscreen\",\r\n \"webkitExitFullscreen\",\r\n \"webkitFullscreenElement\",\r\n \"webkitFullscreenEnabled\",\r\n \"webkitfullscreenchange\",\r\n \"webkitfullscreenerror\"\r\n ],\r\n // old WebKit (Safari 5.1)\r\n [\r\n \"webkitRequestFullScreen\",\r\n \"webkitCancelFullScreen\",\r\n \"webkitCurrentFullScreenElement\",\r\n \"webkitCancelFullScreen\",\r\n \"webkitfullscreenchange\",\r\n \"webkitfullscreenerror\"\r\n ],\r\n [\r\n \"mozRequestFullScreen\",\r\n \"mozCancelFullScreen\",\r\n \"mozFullScreenElement\",\r\n \"mozFullScreenEnabled\",\r\n \"mozfullscreenchange\",\r\n \"mozfullscreenerror\"\r\n ],\r\n [\"msRequestFullscreen\", \"msExitFullscreen\", \"msFullscreenElement\", \"msFullscreenEnabled\", \"MSFullscreenChange\", \"MSFullscreenError\"]\r\n ];\r\n\r\n var ret = {};\r\n\r\n for (var i = 0; i < fnMap.length; i++) {\r\n var val = fnMap[i];\r\n\r\n if (val && val[1] in document) {\r\n for (var j = 0; j < val.length; j++) {\r\n ret[fnMap[0][j]] = val[j];\r\n }\r\n\r\n return ret;\r\n }\r\n }\r\n\r\n return false;\r\n })();\r\n\r\n if (fn) {\r\n var FullScreen = {\r\n request: function (elem) {\r\n elem = elem || document.documentElement;\r\n\r\n elem[fn.requestFullscreen](elem.ALLOW_KEYBOARD_INPUT);\r\n },\r\n exit: function () {\r\n document[fn.exitFullscreen]();\r\n },\r\n toggle: function (elem) {\r\n elem = elem || document.documentElement;\r\n\r\n if (this.isFullscreen()) {\r\n this.exit();\r\n } else {\r\n this.request(elem);\r\n }\r\n },\r\n isFullscreen: function () {\r\n return Boolean(document[fn.fullscreenElement]);\r\n },\r\n enabled: function () {\r\n return Boolean(document[fn.fullscreenEnabled]);\r\n }\r\n };\r\n\r\n $.extend(true, $.fancybox.defaults, {\r\n btnTpl: {\r\n fullScreen: '\"\r\n },\r\n fullScreen: {\r\n autoStart: false\r\n }\r\n });\r\n\r\n $(document).on(fn.fullscreenchange, function () {\r\n var isFullscreen = FullScreen.isFullscreen(),\r\n instance = $.fancybox.getInstance();\r\n\r\n if (instance) {\r\n // If image is zooming, then force to stop and reposition properly\r\n if (instance.current && instance.current.type === \"image\" && instance.isAnimating) {\r\n instance.isAnimating = false;\r\n\r\n instance.update(true, true, 0);\r\n\r\n if (!instance.isComplete) {\r\n instance.complete();\r\n }\r\n }\r\n\r\n instance.trigger(\"onFullscreenChange\", isFullscreen);\r\n\r\n instance.$refs.container.toggleClass(\"fancybox-is-fullscreen\", isFullscreen);\r\n\r\n instance.$refs.toolbar\r\n .find(\"[data-fancybox-fullscreen]\")\r\n .toggleClass(\"fancybox-button--fsenter\", !isFullscreen)\r\n .toggleClass(\"fancybox-button--fsexit\", isFullscreen);\r\n }\r\n });\r\n }\r\n\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance) {\r\n var $container;\r\n\r\n if (!fn) {\r\n instance.$refs.toolbar.find(\"[data-fancybox-fullscreen]\").remove();\r\n\r\n return;\r\n }\r\n\r\n if (instance && instance.group[instance.currIndex].opts.fullScreen) {\r\n $container = instance.$refs.container;\r\n\r\n $container.on(\"click.fb-fullscreen\", \"[data-fancybox-fullscreen]\", function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n FullScreen.toggle();\r\n });\r\n\r\n if (instance.opts.fullScreen && instance.opts.fullScreen.autoStart === true) {\r\n FullScreen.request();\r\n }\r\n\r\n // Expose API\r\n instance.FullScreen = FullScreen;\r\n } else if (instance) {\r\n instance.$refs.toolbar.find(\"[data-fancybox-fullscreen]\").hide();\r\n }\r\n },\r\n\r\n \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\r\n // \"F\"\r\n if (instance && instance.FullScreen && keycode === 70) {\r\n keypress.preventDefault();\r\n\r\n instance.FullScreen.toggle();\r\n }\r\n },\r\n\r\n \"beforeClose.fb\": function (e, instance) {\r\n if (instance && instance.FullScreen && instance.$refs.container.hasClass(\"fancybox-is-fullscreen\")) {\r\n FullScreen.exit();\r\n }\r\n }\r\n });\r\n})(document, jQuery);\n// ==========================================================================\r\n//\r\n// Thumbs\r\n// Displays thumbnails in a grid\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n var CLASS = \"fancybox-thumbs\",\r\n CLASS_ACTIVE = CLASS + \"-active\";\r\n\r\n // Make sure there are default values\r\n $.fancybox.defaults = $.extend(\r\n true, {\r\n btnTpl: {\r\n thumbs: '\"\r\n },\r\n thumbs: {\r\n autoStart: false, // Display thumbnails on opening\r\n hideOnClose: true, // Hide thumbnail grid when closing animation starts\r\n parentEl: \".fancybox-container\", // Container is injected into this element\r\n axis: \"y\" // Vertical (y) or horizontal (x) scrolling\r\n }\r\n },\r\n $.fancybox.defaults\r\n );\r\n\r\n var FancyThumbs = function (instance) {\r\n this.init(instance);\r\n };\r\n\r\n $.extend(FancyThumbs.prototype, {\r\n $button: null,\r\n $grid: null,\r\n $list: null,\r\n isVisible: false,\r\n isActive: false,\r\n\r\n init: function (instance) {\r\n var self = this,\r\n group = instance.group,\r\n enabled = 0;\r\n\r\n self.instance = instance;\r\n self.opts = group[instance.currIndex].opts.thumbs;\r\n\r\n instance.Thumbs = self;\r\n\r\n self.$button = instance.$refs.toolbar.find(\"[data-fancybox-thumbs]\");\r\n\r\n // Enable thumbs if at least two group items have thumbnails\r\n for (var i = 0, len = group.length; i < len; i++) {\r\n if (group[i].thumb) {\r\n enabled++;\r\n }\r\n\r\n if (enabled > 1) {\r\n break;\r\n }\r\n }\r\n\r\n if (enabled > 1 && !!self.opts) {\r\n self.$button.removeAttr(\"style\").on(\"click\", function () {\r\n self.toggle();\r\n });\r\n\r\n self.isActive = true;\r\n } else {\r\n self.$button.hide();\r\n }\r\n },\r\n\r\n create: function () {\r\n var self = this,\r\n instance = self.instance,\r\n parentEl = self.opts.parentEl,\r\n list = [],\r\n src;\r\n\r\n if (!self.$grid) {\r\n // Create main element\r\n self.$grid = $('
').appendTo(\r\n instance.$refs.container\r\n .find(parentEl)\r\n .addBack()\r\n .filter(parentEl)\r\n );\r\n\r\n // Add \"click\" event that performs gallery navigation\r\n self.$grid.on(\"click\", \"a\", function () {\r\n instance.jumpTo($(this).attr(\"data-index\"));\r\n });\r\n }\r\n\r\n // Build the list\r\n if (!self.$list) {\r\n self.$list = $('
').appendTo(self.$grid);\r\n }\r\n\r\n $.each(instance.group, function (i, item) {\r\n src = item.thumb;\r\n\r\n if (!src && item.type === \"image\") {\r\n src = item.src;\r\n }\r\n\r\n list.push(\r\n '\"\r\n );\r\n });\r\n\r\n self.$list[0].innerHTML = list.join(\"\");\r\n\r\n if (self.opts.axis === \"x\") {\r\n // Set fixed width for list element to enable horizontal scrolling\r\n self.$list.width(\r\n parseInt(self.$grid.css(\"padding-right\"), 10) +\r\n instance.group.length *\r\n self.$list\r\n .children()\r\n .eq(0)\r\n .outerWidth(true)\r\n );\r\n }\r\n },\r\n\r\n focus: function (duration) {\r\n var self = this,\r\n $list = self.$list,\r\n $grid = self.$grid,\r\n thumb,\r\n thumbPos;\r\n\r\n if (!self.instance.current) {\r\n return;\r\n }\r\n\r\n thumb = $list\r\n .children()\r\n .removeClass(CLASS_ACTIVE)\r\n .filter('[data-index=\"' + self.instance.current.index + '\"]')\r\n .addClass(CLASS_ACTIVE);\r\n\r\n thumbPos = thumb.position();\r\n\r\n // Check if need to scroll to make current thumb visible\r\n if (self.opts.axis === \"y\" && (thumbPos.top < 0 || thumbPos.top > $list.height() - thumb.outerHeight())) {\r\n $list.stop().animate({\r\n scrollTop: $list.scrollTop() + thumbPos.top\r\n },\r\n duration\r\n );\r\n } else if (\r\n self.opts.axis === \"x\" &&\r\n (thumbPos.left < $grid.scrollLeft() || thumbPos.left > $grid.scrollLeft() + ($grid.width() - thumb.outerWidth()))\r\n ) {\r\n $list\r\n .parent()\r\n .stop()\r\n .animate({\r\n scrollLeft: thumbPos.left\r\n },\r\n duration\r\n );\r\n }\r\n },\r\n\r\n update: function () {\r\n var that = this;\r\n that.instance.$refs.container.toggleClass(\"fancybox-show-thumbs\", this.isVisible);\r\n\r\n if (that.isVisible) {\r\n if (!that.$grid) {\r\n that.create();\r\n }\r\n\r\n that.instance.trigger(\"onThumbsShow\");\r\n\r\n that.focus(0);\r\n } else if (that.$grid) {\r\n that.instance.trigger(\"onThumbsHide\");\r\n }\r\n\r\n // Update content position\r\n that.instance.update();\r\n },\r\n\r\n hide: function () {\r\n this.isVisible = false;\r\n this.update();\r\n },\r\n\r\n show: function () {\r\n this.isVisible = true;\r\n this.update();\r\n },\r\n\r\n toggle: function () {\r\n this.isVisible = !this.isVisible;\r\n this.update();\r\n }\r\n });\r\n\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance) {\r\n var Thumbs;\r\n\r\n if (instance && !instance.Thumbs) {\r\n Thumbs = new FancyThumbs(instance);\r\n\r\n if (Thumbs.isActive && Thumbs.opts.autoStart === true) {\r\n Thumbs.show();\r\n }\r\n }\r\n },\r\n\r\n \"beforeShow.fb\": function (e, instance, item, firstRun) {\r\n var Thumbs = instance && instance.Thumbs;\r\n\r\n if (Thumbs && Thumbs.isVisible) {\r\n Thumbs.focus(firstRun ? 0 : 250);\r\n }\r\n },\r\n\r\n \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\r\n var Thumbs = instance && instance.Thumbs;\r\n\r\n // \"G\"\r\n if (Thumbs && Thumbs.isActive && keycode === 71) {\r\n keypress.preventDefault();\r\n\r\n Thumbs.toggle();\r\n }\r\n },\r\n\r\n \"beforeClose.fb\": function (e, instance) {\r\n var Thumbs = instance && instance.Thumbs;\r\n\r\n if (Thumbs && Thumbs.isVisible && Thumbs.opts.hideOnClose !== false) {\r\n Thumbs.$grid.hide();\r\n }\r\n }\r\n });\r\n})(document, jQuery);\n//// ==========================================================================\r\n//\r\n// Share\r\n// Displays simple form for sharing current url\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n $.extend(true, $.fancybox.defaults, {\r\n btnTpl: {\r\n share: '\"\r\n },\r\n share: {\r\n url: function (instance, item) {\r\n return (\r\n (!instance.currentHash && !(item.type === \"inline\" || item.type === \"html\") ? item.origSrc || item.src : false) || window.location\r\n );\r\n },\r\n tpl: '
' +\r\n \"

{{SHARE}}

\" +\r\n \"

\" +\r\n '' +\r\n '' +\r\n \"Facebook\" +\r\n \"\" +\r\n '' +\r\n '' +\r\n \"Twitter\" +\r\n \"\" +\r\n '' +\r\n '' +\r\n \"Pinterest\" +\r\n \"\" +\r\n \"

\" +\r\n '

' +\r\n \"
\"\r\n }\r\n });\r\n\r\n function escapeHtml(string) {\r\n var entityMap = {\r\n \"&\": \"&\",\r\n \"<\": \"<\",\r\n \">\": \">\",\r\n '\"': \""\",\r\n \"'\": \"'\",\r\n \"/\": \"/\",\r\n \"`\": \"`\",\r\n \"=\": \"=\"\r\n };\r\n\r\n return String(string).replace(/[&<>\"'`=\\/]/g, function (s) {\r\n return entityMap[s];\r\n });\r\n }\r\n\r\n $(document).on(\"click\", \"[data-fancybox-share]\", function () {\r\n var instance = $.fancybox.getInstance(),\r\n current = instance.current || null,\r\n url,\r\n tpl;\r\n\r\n if (!current) {\r\n return;\r\n }\r\n\r\n if ($.type(current.opts.share.url) === \"function\") {\r\n url = current.opts.share.url.apply(current, [instance, current]);\r\n }\r\n\r\n tpl = current.opts.share.tpl\r\n .replace(/\\{\\{media\\}\\}/g, current.type === \"image\" ? encodeURIComponent(current.src) : \"\")\r\n .replace(/\\{\\{url\\}\\}/g, encodeURIComponent(url))\r\n .replace(/\\{\\{url_raw\\}\\}/g, escapeHtml(url))\r\n .replace(/\\{\\{descr\\}\\}/g, instance.$caption ? encodeURIComponent(instance.$caption.text()) : \"\");\r\n\r\n $.fancybox.open({\r\n src: instance.translate(instance, tpl),\r\n type: \"html\",\r\n opts: {\r\n touch: false,\r\n animationEffect: false,\r\n afterLoad: function (shareInstance, shareCurrent) {\r\n // Close self if parent instance is closing\r\n instance.$refs.container.one(\"beforeClose.fb\", function () {\r\n shareInstance.close(null, 0);\r\n });\r\n\r\n // Opening links in a popup window\r\n shareCurrent.$content.find(\".fancybox-share__button\").click(function () {\r\n window.open(this.href, \"Share\", \"width=550, height=450\");\r\n return false;\r\n });\r\n },\r\n mobile: {\r\n autoFocus: false\r\n }\r\n }\r\n });\r\n });\r\n})(document, jQuery);\n// ==========================================================================\r\n//\r\n// Hash\r\n// Enables linking to each modal\r\n//\r\n// ==========================================================================\r\n(function (window, document, $) {\r\n \"use strict\";\r\n\r\n // Simple $.escapeSelector polyfill (for jQuery prior v3)\r\n if (!$.escapeSelector) {\r\n $.escapeSelector = function (sel) {\r\n var rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\r\n var fcssescape = function (ch, asCodePoint) {\r\n if (asCodePoint) {\r\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\r\n if (ch === \"\\0\") {\r\n return \"\\uFFFD\";\r\n }\r\n\r\n // Control characters and (dependent upon position) numbers get escaped as code points\r\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\r\n }\r\n\r\n // Other potentially-special ASCII characters get backslash-escaped\r\n return \"\\\\\" + ch;\r\n };\r\n\r\n return (sel + \"\").replace(rcssescape, fcssescape);\r\n };\r\n }\r\n\r\n // Get info about gallery name and current index from url\r\n function parseUrl() {\r\n var hash = window.location.hash.substr(1),\r\n rez = hash.split(\"-\"),\r\n index = rez.length > 1 && /^\\+?\\d+$/.test(rez[rez.length - 1]) ? parseInt(rez.pop(-1), 10) || 1 : 1,\r\n gallery = rez.join(\"-\");\r\n\r\n return {\r\n hash: hash,\r\n /* Index is starting from 1 */\r\n index: index < 1 ? 1 : index,\r\n gallery: gallery\r\n };\r\n }\r\n\r\n // Trigger click evnt on links to open new fancyBox instance\r\n function triggerFromUrl(url) {\r\n if (url.gallery !== \"\") {\r\n // If we can find element matching 'data-fancybox' atribute,\r\n // then triggering click event should start fancyBox\r\n $(\"[data-fancybox='\" + $.escapeSelector(url.gallery) + \"']\")\r\n .eq(url.index - 1)\r\n .focus()\r\n .trigger(\"click.fb-start\");\r\n }\r\n }\r\n\r\n // Get gallery name from current instance\r\n function getGalleryID(instance) {\r\n var opts, ret;\r\n\r\n if (!instance) {\r\n return false;\r\n }\r\n\r\n opts = instance.current ? instance.current.opts : instance.opts;\r\n ret = opts.hash || (opts.$orig ? opts.$orig.data(\"fancybox\") || opts.$orig.data(\"fancybox-trigger\") : \"\");\r\n\r\n return ret === \"\" ? false : ret;\r\n }\r\n\r\n // Start when DOM becomes ready\r\n $(function () {\r\n // Check if user has disabled this module\r\n if ($.fancybox.defaults.hash === false) {\r\n return;\r\n }\r\n\r\n // Update hash when opening/closing fancyBox\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance) {\r\n var url, gallery;\r\n\r\n if (instance.group[instance.currIndex].opts.hash === false) {\r\n return;\r\n }\r\n\r\n url = parseUrl();\r\n gallery = getGalleryID(instance);\r\n\r\n // Make sure gallery start index matches index from hash\r\n if (gallery && url.gallery && gallery == url.gallery) {\r\n instance.currIndex = url.index - 1;\r\n }\r\n },\r\n\r\n \"beforeShow.fb\": function (e, instance, current, firstRun) {\r\n var gallery;\r\n\r\n if (!current || current.opts.hash === false) {\r\n return;\r\n }\r\n\r\n // Check if need to update window hash\r\n gallery = getGalleryID(instance);\r\n\r\n if (!gallery) {\r\n return;\r\n }\r\n\r\n // Variable containing last hash value set by fancyBox\r\n // It will be used to determine if fancyBox needs to close after hash change is detected\r\n instance.currentHash = gallery + (instance.group.length > 1 ? \"-\" + (current.index + 1) : \"\");\r\n\r\n // If current hash is the same (this instance most likely is opened by hashchange), then do nothing\r\n if (window.location.hash === \"#\" + instance.currentHash) {\r\n return;\r\n }\r\n\r\n if (firstRun && !instance.origHash) {\r\n instance.origHash = window.location.hash;\r\n }\r\n\r\n if (instance.hashTimer) {\r\n clearTimeout(instance.hashTimer);\r\n }\r\n\r\n // Update hash\r\n instance.hashTimer = setTimeout(function () {\r\n if (\"replaceState\" in window.history) {\r\n window.history[firstRun ? \"pushState\" : \"replaceState\"]({},\r\n document.title,\r\n window.location.pathname + window.location.search + \"#\" + instance.currentHash\r\n );\r\n\r\n if (firstRun) {\r\n instance.hasCreatedHistory = true;\r\n }\r\n } else {\r\n window.location.hash = instance.currentHash;\r\n }\r\n\r\n instance.hashTimer = null;\r\n }, 300);\r\n },\r\n\r\n \"beforeClose.fb\": function (e, instance, current) {\r\n if (!current || current.opts.hash === false) {\r\n return;\r\n }\r\n\r\n clearTimeout(instance.hashTimer);\r\n\r\n // Goto previous history entry\r\n if (instance.currentHash && instance.hasCreatedHistory) {\r\n window.history.back();\r\n } else if (instance.currentHash) {\r\n if (\"replaceState\" in window.history) {\r\n window.history.replaceState({}, document.title, window.location.pathname + window.location.search + (instance.origHash || \"\"));\r\n } else {\r\n window.location.hash = instance.origHash;\r\n }\r\n }\r\n\r\n instance.currentHash = null;\r\n }\r\n });\r\n\r\n // Check if need to start/close after url has changed\r\n $(window).on(\"hashchange.fb\", function () {\r\n var url = parseUrl(),\r\n fb = null;\r\n\r\n // Find last fancyBox instance that has \"hash\"\r\n $.each(\r\n $(\".fancybox-container\")\r\n .get()\r\n .reverse(),\r\n function (index, value) {\r\n var tmp = $(value).data(\"FancyBox\");\r\n\r\n if (tmp && tmp.currentHash) {\r\n fb = tmp;\r\n return false;\r\n }\r\n }\r\n );\r\n\r\n if (fb) {\r\n // Now, compare hash values\r\n if (fb.currentHash !== url.gallery + \"-\" + url.index && !(url.index === 1 && fb.currentHash == url.gallery)) {\r\n fb.currentHash = null;\r\n\r\n fb.close();\r\n }\r\n } else if (url.gallery !== \"\") {\r\n triggerFromUrl(url);\r\n }\r\n });\r\n\r\n // Check current hash and trigger click event on matching element to start fancyBox, if needed\r\n setTimeout(function () {\r\n if (!$.fancybox.getInstance()) {\r\n triggerFromUrl(parseUrl());\r\n }\r\n }, 50);\r\n });\r\n})(window, document, jQuery);\n// ==========================================================================\r\n//\r\n// Wheel\r\n// Basic mouse weheel support for gallery navigation\r\n//\r\n// ==========================================================================\r\n(function (document, $) {\r\n \"use strict\";\r\n\r\n var prevTime = new Date().getTime();\r\n\r\n $(document).on({\r\n \"onInit.fb\": function (e, instance, current) {\r\n instance.$refs.stage.on(\"mousewheel DOMMouseScroll wheel MozMousePixelScroll\", function (e) {\r\n var current = instance.current,\r\n currTime = new Date().getTime();\r\n\r\n if (instance.group.length < 2 || current.opts.wheel === false || (current.opts.wheel === \"auto\" && current.type !== \"image\")) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (current.$slide.hasClass(\"fancybox-animated\")) {\r\n return;\r\n }\r\n\r\n e = e.originalEvent || e;\r\n\r\n if (currTime - prevTime < 250) {\r\n return;\r\n }\r\n\r\n prevTime = currTime;\r\n\r\n instance[(-e.deltaY || -e.deltaX || e.wheelDelta || -e.detail) < 0 ? \"next\" : \"previous\"]();\r\n });\r\n }\r\n });\r\n})(document, jQuery);","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar sameValue = require('./_same-value');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","(function(window, factory) {\n\tvar lazySizes = factory(window, window.document, Date);\n\twindow.lazySizes = lazySizes;\n\tif(typeof module == 'object' && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(typeof window != 'undefined' ?\n window : {}, \n/**\n * import(\"./types/global\")\n * @typedef { import(\"./types/lazysizes-config\").LazySizesConfigPartial } LazySizesConfigPartial\n */\nfunction l(window, document, Date) { // Pass in the window Date function also for SSR because the Date class can be lost\n\t'use strict';\n\t/*jshint eqnull:true */\n\n\tvar lazysizes,\n\t\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\n\t\tlazySizesCfg;\n\n\t(function(){\n\t\tvar prop;\n\n\t\tvar lazySizesDefaults = {\n\t\t\tlazyClass: 'lazyload',\n\t\t\tloadedClass: 'lazyloaded',\n\t\t\tloadingClass: 'lazyloading',\n\t\t\tpreloadClass: 'lazypreload',\n\t\t\terrorClass: 'lazyerror',\n\t\t\t//strictClass: 'lazystrict',\n\t\t\tautosizesClass: 'lazyautosizes',\n\t\t\tfastLoadedClass: 'ls-is-cached',\n\t\t\tiframeLoadMode: 0,\n\t\t\tsrcAttr: 'data-src',\n\t\t\tsrcsetAttr: 'data-srcset',\n\t\t\tsizesAttr: 'data-sizes',\n\t\t\t//preloadAfterLoad: false,\n\t\t\tminSize: 40,\n\t\t\tcustomMedia: {},\n\t\t\tinit: true,\n\t\t\texpFactor: 1.5,\n\t\t\thFac: 0.8,\n\t\t\tloadMode: 2,\n\t\t\tloadHidden: true,\n\t\t\tricTimeout: 0,\n\t\t\tthrottleDelay: 125,\n\t\t};\n\n\t\tlazySizesCfg = window.lazySizesConfig || window.lazysizesConfig || {};\n\n\t\tfor(prop in lazySizesDefaults){\n\t\t\tif(!(prop in lazySizesCfg)){\n\t\t\t\tlazySizesCfg[prop] = lazySizesDefaults[prop];\n\t\t\t}\n\t\t}\n\t})();\n\n\tif (!document || !document.getElementsByClassName) {\n\t\treturn {\n\t\t\tinit: function () {},\n\t\t\t/**\n\t\t\t * @type { LazySizesConfigPartial }\n\t\t\t */\n\t\t\tcfg: lazySizesCfg,\n\t\t\t/**\n\t\t\t * @type { true }\n\t\t\t */\n\t\t\tnoSupport: true,\n\t\t};\n\t}\n\n\tvar docElem = document.documentElement;\n\n\tvar supportPicture = window.HTMLPictureElement;\n\n\tvar _addEventListener = 'addEventListener';\n\n\tvar _getAttribute = 'getAttribute';\n\n\t/**\n\t * Update to bind to window because 'this' becomes null during SSR\n\t * builds.\n\t */\n\tvar addEventListener = window[_addEventListener].bind(window);\n\n\tvar setTimeout = window.setTimeout;\n\n\tvar requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n\tvar requestIdleCallback = window.requestIdleCallback;\n\n\tvar regPicture = /^picture$/i;\n\n\tvar loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n\tvar regClassCache = {};\n\n\tvar forEach = Array.prototype.forEach;\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar hasClass = function(ele, cls) {\n\t\tif(!regClassCache[cls]){\n\t\t\tregClassCache[cls] = new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)');\n\t\t}\n\t\treturn regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n\t};\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar addClass = function(ele, cls) {\n\t\tif (!hasClass(ele, cls)){\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n\t\t}\n\t};\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar removeClass = function(ele, cls) {\n\t\tvar reg;\n\t\tif ((reg = hasClass(ele,cls))) {\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n\t\t}\n\t};\n\n\tvar addRemoveLoadEvents = function(dom, fn, add){\n\t\tvar action = add ? _addEventListener : 'removeEventListener';\n\t\tif(add){\n\t\t\taddRemoveLoadEvents(dom, fn);\n\t\t}\n\t\tloadEvents.forEach(function(evt){\n\t\t\tdom[action](evt, fn);\n\t\t});\n\t};\n\n\t/**\n\t * @param elem { Element }\n\t * @param name { string }\n\t * @param detail { any }\n\t * @param noBubbles { boolean }\n\t * @param noCancelable { boolean }\n\t * @returns { CustomEvent }\n\t */\n\tvar triggerEvent = function(elem, name, detail, noBubbles, noCancelable){\n\t\tvar event = document.createEvent('Event');\n\n\t\tif(!detail){\n\t\t\tdetail = {};\n\t\t}\n\n\t\tdetail.instance = lazysizes;\n\n\t\tevent.initEvent(name, !noBubbles, !noCancelable);\n\n\t\tevent.detail = detail;\n\n\t\telem.dispatchEvent(event);\n\t\treturn event;\n\t};\n\n\tvar updatePolyfill = function (el, full){\n\t\tvar polyfill;\n\t\tif( !supportPicture && ( polyfill = (window.picturefill || lazySizesCfg.pf) ) ){\n\t\t\tif(full && full.src && !el[_getAttribute]('srcset')){\n\t\t\t\tel.setAttribute('srcset', full.src);\n\t\t\t}\n\t\t\tpolyfill({reevaluate: true, elements: [el]});\n\t\t} else if(full && full.src){\n\t\t\tel.src = full.src;\n\t\t}\n\t};\n\n\tvar getCSS = function (elem, style){\n\t\treturn (getComputedStyle(elem, null) || {})[style];\n\t};\n\n\t/**\n\t *\n\t * @param elem { Element }\n\t * @param parent { Element }\n\t * @param [width] {number}\n\t * @returns {number}\n\t */\n\tvar getWidth = function(elem, parent, width){\n\t\twidth = width || elem.offsetWidth;\n\n\t\twhile(width < lazySizesCfg.minSize && parent && !elem._lazysizesWidth){\n\t\t\twidth = parent.offsetWidth;\n\t\t\tparent = parent.parentNode;\n\t\t}\n\n\t\treturn width;\n\t};\n\n\tvar rAF = (function(){\n\t\tvar running, waiting;\n\t\tvar firstFns = [];\n\t\tvar secondFns = [];\n\t\tvar fns = firstFns;\n\n\t\tvar run = function(){\n\t\t\tvar runFns = fns;\n\n\t\t\tfns = firstFns.length ? secondFns : firstFns;\n\n\t\t\trunning = true;\n\t\t\twaiting = false;\n\n\t\t\twhile(runFns.length){\n\t\t\t\trunFns.shift()();\n\t\t\t}\n\n\t\t\trunning = false;\n\t\t};\n\n\t\tvar rafBatch = function(fn, queue){\n\t\t\tif(running && !queue){\n\t\t\t\tfn.apply(this, arguments);\n\t\t\t} else {\n\t\t\t\tfns.push(fn);\n\n\t\t\t\tif(!waiting){\n\t\t\t\t\twaiting = true;\n\t\t\t\t\t(document.hidden ? setTimeout : requestAnimationFrame)(run);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trafBatch._lsFlush = run;\n\n\t\treturn rafBatch;\n\t})();\n\n\tvar rAFIt = function(fn, simple){\n\t\treturn simple ?\n\t\t\tfunction() {\n\t\t\t\trAF(fn);\n\t\t\t} :\n\t\t\tfunction(){\n\t\t\t\tvar that = this;\n\t\t\t\tvar args = arguments;\n\t\t\t\trAF(function(){\n\t\t\t\t\tfn.apply(that, args);\n\t\t\t\t});\n\t\t\t}\n\t\t;\n\t};\n\n\tvar throttle = function(fn){\n\t\tvar running;\n\t\tvar lastTime = 0;\n\t\tvar gDelay = lazySizesCfg.throttleDelay;\n\t\tvar rICTimeout = lazySizesCfg.ricTimeout;\n\t\tvar run = function(){\n\t\t\trunning = false;\n\t\t\tlastTime = Date.now();\n\t\t\tfn();\n\t\t};\n\t\tvar idleCallback = requestIdleCallback && rICTimeout > 49 ?\n\t\t\tfunction(){\n\t\t\t\trequestIdleCallback(run, {timeout: rICTimeout});\n\n\t\t\t\tif(rICTimeout !== lazySizesCfg.ricTimeout){\n\t\t\t\t\trICTimeout = lazySizesCfg.ricTimeout;\n\t\t\t\t}\n\t\t\t} :\n\t\t\trAFIt(function(){\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true)\n\t\t;\n\n\t\treturn function(isPriority){\n\t\t\tvar delay;\n\n\t\t\tif((isPriority = isPriority === true)){\n\t\t\t\trICTimeout = 33;\n\t\t\t}\n\n\t\t\tif(running){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunning = true;\n\n\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\tif(delay < 0){\n\t\t\t\tdelay = 0;\n\t\t\t}\n\n\t\t\tif(isPriority || delay < 9){\n\t\t\t\tidleCallback();\n\t\t\t} else {\n\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t}\n\t\t};\n\t};\n\n\t//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\tvar debounce = function(func) {\n\t\tvar timeout, timestamp;\n\t\tvar wait = 99;\n\t\tvar run = function(){\n\t\t\ttimeout = null;\n\t\t\tfunc();\n\t\t};\n\t\tvar later = function() {\n\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\tif (last < wait) {\n\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t} else {\n\t\t\t\t(requestIdleCallback || run)(run);\n\t\t\t}\n\t\t};\n\n\t\treturn function() {\n\t\t\ttimestamp = Date.now();\n\n\t\t\tif (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t}\n\t\t};\n\t};\n\n\tvar loader = (function(){\n\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;\n\n\t\tvar regImg = /^img$/i;\n\t\tvar regIframe = /^iframe$/i;\n\n\t\tvar supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent));\n\n\t\tvar shrinkExpand = 0;\n\t\tvar currentExpand = 0;\n\n\t\tvar isLoading = 0;\n\t\tvar lowRuns = -1;\n\n\t\tvar resetPreloading = function(e){\n\t\t\tisLoading--;\n\t\t\tif(!e || isLoading < 0 || !e.target){\n\t\t\t\tisLoading = 0;\n\t\t\t}\n\t\t};\n\n\t\tvar isVisible = function (elem) {\n\t\t\tif (isBodyHidden == null) {\n\t\t\t\tisBodyHidden = getCSS(document.body, 'visibility') == 'hidden';\n\t\t\t}\n\n\t\t\treturn isBodyHidden || !(getCSS(elem.parentNode, 'visibility') == 'hidden' && getCSS(elem, 'visibility') == 'hidden');\n\t\t};\n\n\t\tvar isNestedVisible = function(elem, elemExpand){\n\t\t\tvar outerRect;\n\t\t\tvar parent = elem;\n\t\t\tvar visible = isVisible(elem);\n\n\t\t\teLtop -= elemExpand;\n\t\t\teLbottom += elemExpand;\n\t\t\teLleft -= elemExpand;\n\t\t\teLright += elemExpand;\n\n\t\t\twhile(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){\n\t\t\t\tvisible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n\t\t\t\tif(visible && getCSS(parent, 'overflow') != 'visible'){\n\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\tvisible = eLright > outerRect.left &&\n\t\t\t\t\t\teLleft < outerRect.right &&\n\t\t\t\t\t\teLbottom > outerRect.top - 1 &&\n\t\t\t\t\t\teLtop < outerRect.bottom + 1\n\t\t\t\t\t;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn visible;\n\t\t};\n\n\t\tvar checkElements = function() {\n\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal,\n\t\t\t\tbeforeExpandVal, defaultExpand, preloadExpand, hFac;\n\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\tif((loadMode = lazySizesCfg.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){\n\n\t\t\t\ti = 0;\n\n\t\t\t\tlowRuns++;\n\n\t\t\t\tfor(; i < eLlen; i++){\n\n\t\t\t\t\tif(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n\t\t\t\t\tif(!supportScroll || (lazysizes.prematureUnveil && lazysizes.prematureUnveil(lazyloadElems[i]))){unveilElement(lazyloadElems[i]);continue;}\n\n\t\t\t\t\tif(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!defaultExpand) {\n\t\t\t\t\t\tdefaultExpand = (!lazySizesCfg.expand || lazySizesCfg.expand < 1) ?\n\t\t\t\t\t\t\tdocElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 :\n\t\t\t\t\t\t\tlazySizesCfg.expand;\n\n\t\t\t\t\t\tlazysizes._defEx = defaultExpand;\n\n\t\t\t\t\t\tpreloadExpand = defaultExpand * lazySizesCfg.expFactor;\n\t\t\t\t\t\thFac = lazySizesCfg.hFac;\n\t\t\t\t\t\tisBodyHidden = null;\n\n\t\t\t\t\t\tif(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){\n\t\t\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\t\t\tlowRuns = 0;\n\t\t\t\t\t\t} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){\n\t\t\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(beforeExpandVal !== elemExpand){\n\t\t\t\t\t\teLvW = innerWidth + (elemExpand * hFac);\n\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n\t\t\t\t\t\t(eLtop = rect.top) <= elvH &&\n\t\t\t\t\t\t(eLright = rect.right) >= elemNegativeExpand * hFac &&\n\t\t\t\t\t\t(eLleft = rect.left) <= eLvW &&\n\t\t\t\t\t\t(eLbottom || eLright || eLleft || eLtop) &&\n\t\t\t\t\t\t(lazySizesCfg.loadHidden || isVisible(lazyloadElems[i])) &&\n\t\t\t\t\t\t((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\tif(isLoading > 9){break;}\n\t\t\t\t\t} else if(!loadedSomething && isCompleted && !autoLoadElem &&\n\t\t\t\t\t\tisLoading < 4 && lowRuns < 4 && loadMode > 2 &&\n\t\t\t\t\t\t(preloadElems[0] || lazySizesCfg.preloadAfterLoad) &&\n\t\t\t\t\t\t(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr) != 'auto')))){\n\t\t\t\t\t\tautoLoadElem = preloadElems[0] || lazyloadElems[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(autoLoadElem && !loadedSomething){\n\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\tvar switchLoadingClass = function(e){\n\t\t\tvar elem = e.target;\n\n\t\t\tif (elem._lazyCache) {\n\t\t\t\tdelete elem._lazyCache;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresetPreloading(e);\n\t\t\taddClass(elem, lazySizesCfg.loadedClass);\n\t\t\tremoveClass(elem, lazySizesCfg.loadingClass);\n\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass);\n\t\t\ttriggerEvent(elem, 'lazyloaded');\n\t\t};\n\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\tvar rafSwitchLoadingClass = function(e){\n\t\t\trafedSwitchLoadingClass({target: e.target});\n\t\t};\n\n\t\tvar changeIframeSrc = function(elem, src){\n\t\t\tvar loadMode = elem.getAttribute('data-load-mode') || lazySizesCfg.iframeLoadMode;\n\n\t\t\t// loadMode can be also a string!\n\t\t\tif (loadMode == 0) {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} else if (loadMode == 1) {\n\t\t\t\telem.src = src;\n\t\t\t}\n\t\t};\n\n\t\tvar handleSources = function(source){\n\t\t\tvar customMedia;\n\n\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesCfg.srcsetAttr);\n\n\t\t\tif( (customMedia = lazySizesCfg.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t}\n\n\t\t\tif(sourceSrcset){\n\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t}\n\t\t};\n\n\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\tif(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n\t\t\t\tif(sizes){\n\t\t\t\t\tif(isAuto){\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.autosizesClass);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsrcset = elem[_getAttribute](lazySizesCfg.srcsetAttr);\n\t\t\t\tsrc = elem[_getAttribute](lazySizesCfg.srcAttr);\n\n\t\t\t\tif(isImg) {\n\t\t\t\t\tparent = elem.parentNode;\n\t\t\t\t\tisPicture = parent && regPicture.test(parent.nodeName || '');\n\t\t\t\t}\n\n\t\t\t\tfiresLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n\t\t\t\tevent = {target: elem};\n\n\t\t\t\taddClass(elem, lazySizesCfg.loadingClass);\n\n\t\t\t\tif(firesLoad){\n\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t}\n\n\t\t\t\tif(isPicture){\n\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t}\n\n\t\t\t\tif(srcset){\n\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t} else if(src && !isPicture){\n\t\t\t\t\tif(regIframe.test(elem.nodeName)){\n\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(isImg && (srcset || isPicture)){\n\t\t\t\t\tupdatePolyfill(elem, {src: src});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(elem._lazyRace){\n\t\t\t\tdelete elem._lazyRace;\n\t\t\t}\n\t\t\tremoveClass(elem, lazySizesCfg.lazyClass);\n\n\t\t\trAF(function(){\n\t\t\t\t// Part of this can be removed as soon as this fix is older: https://bugs.chromium.org/p/chromium/issues/detail?id=7731 (2015)\n\t\t\t\tvar isLoaded = elem.complete && elem.naturalWidth > 1;\n\n\t\t\t\tif( !firesLoad || isLoaded){\n\t\t\t\t\tif (isLoaded) {\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.fastLoadedClass);\n\t\t\t\t\t}\n\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t\telem._lazyCache = true;\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\tif ('_lazyCache' in elem) {\n\t\t\t\t\t\t\tdelete elem._lazyCache;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9);\n\t\t\t\t}\n\t\t\t\tif (elem.loading == 'lazy') {\n\t\t\t\t\tisLoading--;\n\t\t\t\t}\n\t\t\t}, true);\n\t\t});\n\n\t\t/**\n\t\t *\n\t\t * @param elem { Element }\n\t\t */\n\t\tvar unveilElement = function (elem){\n\t\t\tif (elem._lazyRace) {return;}\n\t\t\tvar detail;\n\n\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\t\t//allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\t\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesCfg.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\tif( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesCfg.errorClass) && hasClass(elem, lazySizesCfg.lazyClass)){return;}\n\n\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\tif(isAuto){\n\t\t\t\t autoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t}\n\n\t\t\telem._lazyRace = true;\n\t\t\tisLoading++;\n\n\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t};\n\n\t\tvar afterScroll = debounce(function(){\n\t\t\tlazySizesCfg.loadMode = 3;\n\t\t\tthrottledCheckElements();\n\t\t});\n\n\t\tvar altLoadmodeScrollListner = function(){\n\t\t\tif(lazySizesCfg.loadMode == 3){\n\t\t\t\tlazySizesCfg.loadMode = 2;\n\t\t\t}\n\t\t\tafterScroll();\n\t\t};\n\n\t\tvar onload = function(){\n\t\t\tif(isCompleted){return;}\n\t\t\tif(Date.now() - started < 999){\n\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\treturn;\n\t\t\t}\n\n\n\t\t\tisCompleted = true;\n\n\t\t\tlazySizesCfg.loadMode = 3;\n\n\t\t\tthrottledCheckElements();\n\n\t\t\taddEventListener('scroll', altLoadmodeScrollListner, true);\n\t\t};\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tstarted = Date.now();\n\n\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesCfg.lazyClass);\n\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesCfg.lazyClass + ' ' + lazySizesCfg.preloadClass);\n\n\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('pageshow', function (e) {\n\t\t\t\t\tif (e.persisted) {\n\t\t\t\t\t\tvar loadingElements = document.querySelectorAll('.' + lazySizesCfg.loadingClass);\n\n\t\t\t\t\t\tif (loadingElements.length && loadingElements.forEach) {\n\t\t\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\t\t\tloadingElements.forEach( function (img) {\n\t\t\t\t\t\t\t\t\tif (img.complete) {\n\t\t\t\t\t\t\t\t\t\tunveilElement(img);\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}\n\t\t\t\t});\n\n\t\t\t\tif(window.MutationObserver){\n\t\t\t\t\tnew MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n\t\t\t\t} else {\n\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t}\n\n\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t//, 'fullscreenchange'\n\t\t\t\t['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend'].forEach(function(name){\n\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t});\n\n\t\t\t\tif((/d$|^c/.test(document.readyState))){\n\t\t\t\t\tonload();\n\t\t\t\t} else {\n\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t}\n\n\t\t\t\tif(lazysizes.elements.length){\n\t\t\t\t\tcheckElements();\n\t\t\t\t\trAF._lsFlush();\n\t\t\t\t} else {\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcheckElems: throttledCheckElements,\n\t\t\tunveil: unveilElement,\n\t\t\t_aLSL: altLoadmodeScrollListner,\n\t\t};\n\t})();\n\n\n\tvar autoSizer = (function(){\n\t\tvar autosizesElems;\n\n\t\tvar sizeElement = rAFIt(function(elem, parent, event, width){\n\t\t\tvar sources, i, len;\n\t\t\telem._lazysizesWidth = width;\n\t\t\twidth += 'px';\n\n\t\t\telem.setAttribute('sizes', width);\n\n\t\t\tif(regPicture.test(parent.nodeName || '')){\n\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!event.detail.dataAttr){\n\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t}\n\t\t});\n\t\t/**\n\t\t *\n\t\t * @param elem {Element}\n\t\t * @param dataAttr\n\t\t * @param [width] { number }\n\t\t */\n\t\tvar getSizeElement = function (elem, dataAttr, width){\n\t\t\tvar event;\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif(parent){\n\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n\t\t\t\tif(!event.defaultPrevented){\n\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\tif(width && width !== elem._lazysizesWidth){\n\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateElementsSizes = function(){\n\t\t\tvar i;\n\t\t\tvar len = autosizesElems.length;\n\t\t\tif(len){\n\t\t\t\ti = 0;\n\n\t\t\t\tfor(; i < len; i++){\n\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesCfg.autosizesClass);\n\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t},\n\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\tupdateElem: getSizeElement\n\t\t};\n\t})();\n\n\tvar init = function(){\n\t\tif(!init.i && document.getElementsByClassName){\n\t\t\tinit.i = true;\n\t\t\tautoSizer._();\n\t\t\tloader._();\n\t\t}\n\t};\n\n\tsetTimeout(function(){\n\t\tif(lazySizesCfg.init){\n\t\t\tinit();\n\t\t}\n\t});\n\n\tlazysizes = {\n\t\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\n\t\tcfg: lazySizesCfg,\n\t\tautoSizer: autoSizer,\n\t\tloader: loader,\n\t\tinit: init,\n\t\tuP: updatePolyfill,\n\t\taC: addClass,\n\t\trC: removeClass,\n\t\thC: hasClass,\n\t\tfire: triggerEvent,\n\t\tgW: getWidth,\n\t\trAF: rAF,\n\t};\n\n\treturn lazysizes;\n}\n));\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\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","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar fails = require('./_fails');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\nvar MAX_UINT32 = 0xffffffff;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","module.exports = {};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = false;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","(function (global, factory) {\r\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\r\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\r\n\t(factory((global.StickySidebar = {})));\r\n}(this, (function (exports) { 'use strict';\r\n\r\nvar commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\r\n\r\n\r\n\r\nfunction unwrapExports (x) {\r\n\treturn x && x.__esModule ? x['default'] : x;\r\n}\r\n\r\nfunction createCommonjsModule(fn, module) {\r\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\r\n}\r\n\r\nvar stickySidebar = createCommonjsModule(function (module, exports) {\r\n(function (global, factory) {\r\n if (typeof undefined === \"function\" && undefined.amd) {\r\n undefined(['exports'], factory);\r\n } else {\r\n factory(exports);\r\n }\r\n})(commonjsGlobal, function (exports) {\r\n 'use strict';\r\n\r\n Object.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n });\r\n\r\n function _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\");\r\n }\r\n }\r\n\r\n var _createClass = function () {\r\n function defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) descriptor.writable = true;\r\n Object.defineProperty(target, descriptor.key, descriptor);\r\n }\r\n }\r\n\r\n return function (Constructor, protoProps, staticProps) {\r\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\r\n if (staticProps) defineProperties(Constructor, staticProps);\r\n return Constructor;\r\n };\r\n }();\r\n\r\n /**\r\n * Sticky Sidebar JavaScript Plugin.\r\n * @version 3.3.1\r\n * @author Ahmed Bouhuolia \r\n * @license The MIT License (MIT)\r\n */\r\n var StickySidebar = function () {\r\n\r\n // ---------------------------------\r\n // # Define Constants\r\n // ---------------------------------\r\n //\r\n var EVENT_KEY = '.stickySidebar';\r\n var DEFAULTS = {\r\n /**\r\n * Additional top spacing of the element when it becomes sticky.\r\n * @type {Numeric|Function}\r\n */\r\n topSpacing: 0,\r\n\r\n /**\r\n * Additional bottom spacing of the element when it becomes sticky.\r\n * @type {Numeric|Function}\r\n */\r\n bottomSpacing: 0,\r\n\r\n /**\r\n * Container sidebar selector to know what the beginning and end of sticky element.\r\n * @type {String|False}\r\n */\r\n containerSelector: false,\r\n\r\n /**\r\n * Inner wrapper selector.\r\n * @type {String}\r\n */\r\n innerWrapperSelector: '.inner-wrapper-sticky',\r\n\r\n /**\r\n * The name of CSS class to apply to elements when they have become stuck.\r\n * @type {String|False}\r\n */\r\n stickyClass: 'is-affixed',\r\n\r\n /**\r\n * Detect when sidebar and its container change height so re-calculate their dimensions.\r\n * @type {Boolean}\r\n */\r\n resizeSensor: true,\r\n\r\n /**\r\n * The sidebar returns to its normal position if its width below this value.\r\n * @type {Numeric}\r\n */\r\n minWidth: false\r\n };\r\n\r\n // ---------------------------------\r\n // # Class Definition\r\n // ---------------------------------\r\n //\r\n /**\r\n * Sticky Sidebar Class.\r\n * @public\r\n */\r\n\r\n var StickySidebar = function () {\r\n\r\n /**\r\n * Sticky Sidebar Constructor.\r\n * @constructor\r\n * @param {HTMLElement|String} sidebar - The sidebar element or sidebar selector.\r\n * @param {Object} options - The options of sticky sidebar.\r\n */\r\n function StickySidebar(sidebar) {\r\n var _this = this;\r\n\r\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n\r\n _classCallCheck(this, StickySidebar);\r\n\r\n this.options = StickySidebar.extend(DEFAULTS, options);\r\n\r\n // Sidebar element query if there's no one, throw error.\r\n this.sidebar = 'string' === typeof sidebar ? document.querySelector(sidebar) : sidebar;\r\n if ('undefined' === typeof this.sidebar) throw new Error(\"There is no specific sidebar element.\");\r\n\r\n this.sidebarInner = false;\r\n this.container = this.sidebar.parentElement;\r\n\r\n // Current Affix Type of sidebar element.\r\n this.affixedType = 'STATIC';\r\n this.direction = 'down';\r\n this.support = {\r\n transform: false,\r\n transform3d: false\r\n };\r\n\r\n this._initialized = false;\r\n this._reStyle = false;\r\n this._breakpoint = false;\r\n\r\n // Dimensions of sidebar, container and screen viewport.\r\n this.dimensions = {\r\n translateY: 0,\r\n maxTranslateY: 0,\r\n topSpacing: 0,\r\n lastTopSpacing: 0,\r\n bottomSpacing: 0,\r\n lastBottomSpacing: 0,\r\n sidebarHeight: 0,\r\n sidebarWidth: 0,\r\n containerTop: 0,\r\n containerHeight: 0,\r\n viewportHeight: 0,\r\n viewportTop: 0,\r\n lastViewportTop: 0\r\n };\r\n\r\n // Bind event handlers for referencability.\r\n ['handleEvent'].forEach(function (method) {\r\n _this[method] = _this[method].bind(_this);\r\n });\r\n\r\n // Initialize sticky sidebar for first time.\r\n this.initialize();\r\n }\r\n\r\n /**\r\n * Initializes the sticky sidebar by adding inner wrapper, define its container, \r\n * min-width breakpoint, calculating dimensions, adding helper classes and inline style.\r\n * @private\r\n */\r\n\r\n\r\n _createClass(StickySidebar, [{\r\n key: 'initialize',\r\n value: function initialize() {\r\n var _this2 = this;\r\n\r\n this._setSupportFeatures();\r\n\r\n // Get sticky sidebar inner wrapper, if not found, will create one.\r\n if (this.options.innerWrapperSelector) {\r\n this.sidebarInner = this.sidebar.querySelector(this.options.innerWrapperSelector);\r\n\r\n if (null === this.sidebarInner) this.sidebarInner = false;\r\n }\r\n\r\n if (!this.sidebarInner) {\r\n var wrapper = document.createElement('div');\r\n wrapper.setAttribute('class', 'inner-wrapper-sticky');\r\n this.sidebar.appendChild(wrapper);\r\n\r\n while (this.sidebar.firstChild != wrapper) {\r\n wrapper.appendChild(this.sidebar.firstChild);\r\n }this.sidebarInner = this.sidebar.querySelector('.inner-wrapper-sticky');\r\n }\r\n\r\n // Container wrapper of the sidebar.\r\n if (this.options.containerSelector) {\r\n var containers = document.querySelectorAll(this.options.containerSelector);\r\n containers = Array.prototype.slice.call(containers);\r\n\r\n containers.forEach(function (container, item) {\r\n if (!container.contains(_this2.sidebar)) return;\r\n _this2.container = container;\r\n });\r\n\r\n if (!containers.length) throw new Error(\"The container does not contains on the sidebar.\");\r\n }\r\n\r\n // If top/bottom spacing is not function parse value to integer.\r\n if ('function' !== typeof this.options.topSpacing) this.options.topSpacing = parseInt(this.options.topSpacing) || 0;\r\n\r\n if ('function' !== typeof this.options.bottomSpacing) this.options.bottomSpacing = parseInt(this.options.bottomSpacing) || 0;\r\n\r\n // Breakdown sticky sidebar if screen width below `options.minWidth`.\r\n this._widthBreakpoint();\r\n\r\n // Calculate dimensions of sidebar, container and viewport.\r\n this.calcDimensions();\r\n\r\n // Affix sidebar in proper position.\r\n this.stickyPosition();\r\n\r\n // Bind all events.\r\n this.bindEvents();\r\n\r\n // Inform other properties the sticky sidebar is initialized.\r\n this._initialized = true;\r\n }\r\n }, {\r\n key: 'bindEvents',\r\n value: function bindEvents() {\r\n window.addEventListener('resize', this, { passive: true, capture: false });\r\n window.addEventListener('scroll', this, { passive: true, capture: false });\r\n\r\n this.sidebar.addEventListener('update' + EVENT_KEY, this);\r\n\r\n if (this.options.resizeSensor && 'undefined' !== typeof ResizeSensor) {\r\n new ResizeSensor(this.sidebarInner, this.handleEvent);\r\n new ResizeSensor(this.container, this.handleEvent);\r\n }\r\n }\r\n }, {\r\n key: 'handleEvent',\r\n value: function handleEvent(event) {\r\n this.updateSticky(event);\r\n }\r\n }, {\r\n key: 'calcDimensions',\r\n value: function calcDimensions() {\r\n if (this._breakpoint) return;\r\n var dims = this.dimensions;\r\n\r\n // Container of sticky sidebar dimensions.\r\n dims.containerTop = StickySidebar.offsetRelative(this.container).top;\r\n dims.containerHeight = this.container.clientHeight;\r\n dims.containerBottom = dims.containerTop + dims.containerHeight;\r\n\r\n // Sidebar dimensions.\r\n dims.sidebarHeight = this.sidebarInner.offsetHeight;\r\n dims.sidebarWidth = this.sidebarInner.offsetWidth;\r\n\r\n // Screen viewport dimensions.\r\n dims.viewportHeight = window.innerHeight;\r\n\r\n // Maximum sidebar translate Y.\r\n dims.maxTranslateY = dims.containerHeight - dims.sidebarHeight;\r\n\r\n this._calcDimensionsWithScroll();\r\n }\r\n }, {\r\n key: '_calcDimensionsWithScroll',\r\n value: function _calcDimensionsWithScroll() {\r\n var dims = this.dimensions;\r\n\r\n dims.sidebarLeft = StickySidebar.offsetRelative(this.sidebar).left;\r\n\r\n dims.viewportTop = document.documentElement.scrollTop || document.body.scrollTop;\r\n dims.viewportBottom = dims.viewportTop + dims.viewportHeight;\r\n dims.viewportLeft = document.documentElement.scrollLeft || document.body.scrollLeft;\r\n\r\n dims.topSpacing = this.options.topSpacing;\r\n dims.bottomSpacing = this.options.bottomSpacing;\r\n\r\n if ('function' === typeof dims.topSpacing) dims.topSpacing = parseInt(dims.topSpacing(this.sidebar)) || 0;\r\n\r\n if ('function' === typeof dims.bottomSpacing) dims.bottomSpacing = parseInt(dims.bottomSpacing(this.sidebar)) || 0;\r\n\r\n if ('VIEWPORT-TOP' === this.affixedType) {\r\n // Adjust translate Y in the case decrease top spacing value.\r\n if (dims.topSpacing < dims.lastTopSpacing) {\r\n dims.translateY += dims.lastTopSpacing - dims.topSpacing;\r\n this._reStyle = true;\r\n }\r\n } else if ('VIEWPORT-BOTTOM' === this.affixedType) {\r\n // Adjust translate Y in the case decrease bottom spacing value.\r\n if (dims.bottomSpacing < dims.lastBottomSpacing) {\r\n dims.translateY += dims.lastBottomSpacing - dims.bottomSpacing;\r\n this._reStyle = true;\r\n }\r\n }\r\n\r\n dims.lastTopSpacing = dims.topSpacing;\r\n dims.lastBottomSpacing = dims.bottomSpacing;\r\n }\r\n }, {\r\n key: 'isSidebarFitsViewport',\r\n value: function isSidebarFitsViewport() {\r\n return this.dimensions.sidebarHeight < this.dimensions.viewportHeight;\r\n }\r\n }, {\r\n key: 'observeScrollDir',\r\n value: function observeScrollDir() {\r\n var dims = this.dimensions;\r\n if (dims.lastViewportTop === dims.viewportTop) return;\r\n\r\n var furthest = 'down' === this.direction ? Math.min : Math.max;\r\n\r\n // If the browser is scrolling not in the same direction.\r\n if (dims.viewportTop === furthest(dims.viewportTop, dims.lastViewportTop)) this.direction = 'down' === this.direction ? 'up' : 'down';\r\n }\r\n }, {\r\n key: 'getAffixType',\r\n value: function getAffixType() {\r\n this._calcDimensionsWithScroll();\r\n var dims = this.dimensions;\r\n var colliderTop = dims.viewportTop + dims.topSpacing;\r\n var affixType = this.affixedType;\r\n\r\n if (colliderTop <= dims.containerTop || dims.containerHeight <= dims.sidebarHeight) {\r\n dims.translateY = 0;\r\n affixType = 'STATIC';\r\n } else {\r\n affixType = 'up' === this.direction ? this._getAffixTypeScrollingUp() : this._getAffixTypeScrollingDown();\r\n }\r\n\r\n // Make sure the translate Y is not bigger than container height.\r\n dims.translateY = Math.max(0, dims.translateY);\r\n dims.translateY = Math.min(dims.containerHeight, dims.translateY);\r\n dims.translateY = Math.round(dims.translateY);\r\n\r\n dims.lastViewportTop = dims.viewportTop;\r\n return affixType;\r\n }\r\n }, {\r\n key: '_getAffixTypeScrollingDown',\r\n value: function _getAffixTypeScrollingDown() {\r\n var dims = this.dimensions;\r\n var sidebarBottom = dims.sidebarHeight + dims.containerTop;\r\n var colliderTop = dims.viewportTop + dims.topSpacing;\r\n var colliderBottom = dims.viewportBottom - dims.bottomSpacing;\r\n var affixType = this.affixedType;\r\n\r\n if (this.isSidebarFitsViewport()) {\r\n if (dims.sidebarHeight + colliderTop >= dims.containerBottom) {\r\n dims.translateY = dims.containerBottom - sidebarBottom;\r\n affixType = 'CONTAINER-BOTTOM';\r\n } else if (colliderTop >= dims.containerTop) {\r\n dims.translateY = colliderTop - dims.containerTop;\r\n affixType = 'VIEWPORT-TOP';\r\n }\r\n } else {\r\n if (dims.containerBottom <= colliderBottom) {\r\n dims.translateY = dims.containerBottom - sidebarBottom;\r\n affixType = 'CONTAINER-BOTTOM';\r\n } else if (sidebarBottom + dims.translateY <= colliderBottom) {\r\n dims.translateY = colliderBottom - sidebarBottom;\r\n affixType = 'VIEWPORT-BOTTOM';\r\n } else if (dims.containerTop + dims.translateY <= colliderTop && 0 !== dims.translateY && dims.maxTranslateY !== dims.translateY) {\r\n affixType = 'VIEWPORT-UNBOTTOM';\r\n }\r\n }\r\n\r\n return affixType;\r\n }\r\n }, {\r\n key: '_getAffixTypeScrollingUp',\r\n value: function _getAffixTypeScrollingUp() {\r\n var dims = this.dimensions;\r\n var sidebarBottom = dims.sidebarHeight + dims.containerTop;\r\n var colliderTop = dims.viewportTop + dims.topSpacing;\r\n var colliderBottom = dims.viewportBottom - dims.bottomSpacing;\r\n var affixType = this.affixedType;\r\n\r\n if (colliderTop <= dims.translateY + dims.containerTop) {\r\n dims.translateY = colliderTop - dims.containerTop;\r\n affixType = 'VIEWPORT-TOP';\r\n } else if (dims.containerBottom <= colliderBottom) {\r\n dims.translateY = dims.containerBottom - sidebarBottom;\r\n affixType = 'CONTAINER-BOTTOM';\r\n } else if (!this.isSidebarFitsViewport()) {\r\n\r\n if (dims.containerTop <= colliderTop && 0 !== dims.translateY && dims.maxTranslateY !== dims.translateY) {\r\n affixType = 'VIEWPORT-UNBOTTOM';\r\n }\r\n }\r\n\r\n return affixType;\r\n }\r\n }, {\r\n key: '_getStyle',\r\n value: function _getStyle(affixType) {\r\n if ('undefined' === typeof affixType) return;\r\n\r\n var style = { inner: {}, outer: {} };\r\n var dims = this.dimensions;\r\n\r\n switch (affixType) {\r\n case 'VIEWPORT-TOP':\r\n style.inner = { position: 'fixed', top: dims.topSpacing,\r\n left: dims.sidebarLeft - dims.viewportLeft, width: dims.sidebarWidth };\r\n break;\r\n case 'VIEWPORT-BOTTOM':\r\n style.inner = { position: 'fixed', top: 'auto', left: dims.sidebarLeft,\r\n bottom: dims.bottomSpacing, width: dims.sidebarWidth };\r\n break;\r\n case 'CONTAINER-BOTTOM':\r\n case 'VIEWPORT-UNBOTTOM':\r\n var translate = this._getTranslate(0, dims.translateY + 'px');\r\n\r\n if (translate) style.inner = { transform: translate };else style.inner = { position: 'absolute', top: dims.translateY, width: dims.sidebarWidth };\r\n break;\r\n }\r\n\r\n switch (affixType) {\r\n case 'VIEWPORT-TOP':\r\n case 'VIEWPORT-BOTTOM':\r\n case 'VIEWPORT-UNBOTTOM':\r\n case 'CONTAINER-BOTTOM':\r\n style.outer = { height: dims.sidebarHeight, position: 'relative' };\r\n break;\r\n }\r\n\r\n style.outer = StickySidebar.extend({ height: '', position: '' }, style.outer);\r\n style.inner = StickySidebar.extend({ position: 'relative', top: '', left: '',\r\n bottom: '', width: '', transform: '' }, style.inner);\r\n\r\n return style;\r\n }\r\n }, {\r\n key: 'stickyPosition',\r\n value: function stickyPosition(force) {\r\n if (this._breakpoint) return;\r\n\r\n force = this._reStyle || force || false;\r\n\r\n var affixType = this.getAffixType();\r\n var style = this._getStyle(affixType);\r\n\r\n if ((this.affixedType != affixType || force) && affixType) {\r\n var affixEvent = 'affix.' + affixType.toLowerCase().replace('viewport-', '') + EVENT_KEY;\r\n StickySidebar.eventTrigger(this.sidebar, affixEvent);\r\n\r\n if ('STATIC' === affixType) StickySidebar.removeClass(this.sidebar, this.options.stickyClass);else StickySidebar.addClass(this.sidebar, this.options.stickyClass);\r\n\r\n for (var key in style.outer) {\r\n var unit = 'number' === typeof style.outer[key] ? 'px' : '';\r\n this.sidebar.style[key] = style.outer[key] + unit;\r\n }\r\n\r\n for (var _key in style.inner) {\r\n var _unit = 'number' === typeof style.inner[_key] ? 'px' : '';\r\n this.sidebarInner.style[_key] = style.inner[_key] + _unit;\r\n }\r\n\r\n var affixedEvent = 'affixed.' + affixType.toLowerCase().replace('viewport-', '') + EVENT_KEY;\r\n StickySidebar.eventTrigger(this.sidebar, affixedEvent);\r\n } else {\r\n if (this._initialized) this.sidebarInner.style.left = style.inner.left;\r\n }\r\n\r\n this.affixedType = affixType;\r\n }\r\n }, {\r\n key: '_widthBreakpoint',\r\n value: function _widthBreakpoint() {\r\n\r\n if (window.innerWidth <= this.options.minWidth) {\r\n this._breakpoint = true;\r\n this.affixedType = 'STATIC';\r\n\r\n this.sidebar.removeAttribute('style');\r\n StickySidebar.removeClass(this.sidebar, this.options.stickyClass);\r\n this.sidebarInner.removeAttribute('style');\r\n } else {\r\n this._breakpoint = false;\r\n }\r\n }\r\n }, {\r\n key: 'updateSticky',\r\n value: function updateSticky() {\r\n var _this3 = this;\r\n\r\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\r\n\r\n if (this._running) return;\r\n this._running = true;\r\n\r\n (function (eventType) {\r\n requestAnimationFrame(function () {\r\n switch (eventType) {\r\n // When browser is scrolling and re-calculate just dimensions\r\n // within scroll. \r\n case 'scroll':\r\n _this3._calcDimensionsWithScroll();\r\n _this3.observeScrollDir();\r\n _this3.stickyPosition();\r\n break;\r\n\r\n // When browser is resizing or there's no event, observe width\r\n // breakpoint and re-calculate dimensions.\r\n case 'resize':\r\n default:\r\n _this3._widthBreakpoint();\r\n _this3.calcDimensions();\r\n _this3.stickyPosition(true);\r\n break;\r\n }\r\n _this3._running = false;\r\n });\r\n })(event.type);\r\n }\r\n }, {\r\n key: '_setSupportFeatures',\r\n value: function _setSupportFeatures() {\r\n var support = this.support;\r\n\r\n support.transform = StickySidebar.supportTransform();\r\n support.transform3d = StickySidebar.supportTransform(true);\r\n }\r\n }, {\r\n key: '_getTranslate',\r\n value: function _getTranslate() {\r\n var y = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\r\n var x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\r\n var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\r\n\r\n if (this.support.transform3d) return 'translate3d(' + y + ', ' + x + ', ' + z + ')';else if (this.support.translate) return 'translate(' + y + ', ' + x + ')';else return false;\r\n }\r\n }, {\r\n key: 'destroy',\r\n value: function destroy() {\r\n window.removeEventListener('resize', this, { capture: false });\r\n window.removeEventListener('scroll', this, { capture: false });\r\n\r\n this.sidebar.classList.remove(this.options.stickyClass);\r\n this.sidebar.style.minHeight = '';\r\n\r\n this.sidebar.removeEventListener('update' + EVENT_KEY, this);\r\n\r\n var styleReset = { inner: {}, outer: {} };\r\n\r\n styleReset.inner = { position: '', top: '', left: '', bottom: '', width: '', transform: '' };\r\n styleReset.outer = { height: '', position: '' };\r\n\r\n for (var key in styleReset.outer) {\r\n this.sidebar.style[key] = styleReset.outer[key];\r\n }for (var _key2 in styleReset.inner) {\r\n this.sidebarInner.style[_key2] = styleReset.inner[_key2];\r\n }if (this.options.resizeSensor && 'undefined' !== typeof ResizeSensor) {\r\n ResizeSensor.detach(this.sidebarInner, this.handleEvent);\r\n ResizeSensor.detach(this.container, this.handleEvent);\r\n }\r\n }\r\n }], [{\r\n key: 'supportTransform',\r\n value: function supportTransform(transform3d) {\r\n var result = false,\r\n property = transform3d ? 'perspective' : 'transform',\r\n upper = property.charAt(0).toUpperCase() + property.slice(1),\r\n prefixes = ['Webkit', 'Moz', 'O', 'ms'],\r\n support = document.createElement('support'),\r\n style = support.style;\r\n\r\n (property + ' ' + prefixes.join(upper + ' ') + upper).split(' ').forEach(function (property, i) {\r\n if (style[property] !== undefined) {\r\n result = property;\r\n return false;\r\n }\r\n });\r\n return result;\r\n }\r\n }, {\r\n key: 'eventTrigger',\r\n value: function eventTrigger(element, eventName, data) {\r\n try {\r\n var event = new CustomEvent(eventName, { detail: data });\r\n } catch (e) {\r\n var event = document.createEvent('CustomEvent');\r\n event.initCustomEvent(eventName, true, true, data);\r\n }\r\n element.dispatchEvent(event);\r\n }\r\n }, {\r\n key: 'extend',\r\n value: function extend(defaults, options) {\r\n var results = {};\r\n for (var key in defaults) {\r\n if ('undefined' !== typeof options[key]) results[key] = options[key];else results[key] = defaults[key];\r\n }\r\n return results;\r\n }\r\n }, {\r\n key: 'offsetRelative',\r\n value: function offsetRelative(element) {\r\n var result = { left: 0, top: 0 };\r\n\r\n do {\r\n var offsetTop = element.offsetTop;\r\n var offsetLeft = element.offsetLeft;\r\n\r\n if (!isNaN(offsetTop)) result.top += offsetTop;\r\n\r\n if (!isNaN(offsetLeft)) result.left += offsetLeft;\r\n\r\n element = 'BODY' === element.tagName ? element.parentElement : element.offsetParent;\r\n } while (element);\r\n return result;\r\n }\r\n }, {\r\n key: 'addClass',\r\n value: function addClass(element, className) {\r\n if (!StickySidebar.hasClass(element, className)) {\r\n if (element.classList) element.classList.add(className);else element.className += ' ' + className;\r\n }\r\n }\r\n }, {\r\n key: 'removeClass',\r\n value: function removeClass(element, className) {\r\n if (StickySidebar.hasClass(element, className)) {\r\n if (element.classList) element.classList.remove(className);else element.className = element.className.replace(new RegExp('(^|\\\\b)' + className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\r\n }\r\n }\r\n }, {\r\n key: 'hasClass',\r\n value: function hasClass(element, className) {\r\n if (element.classList) return element.classList.contains(className);else return new RegExp('(^| )' + className + '( |$)', 'gi').test(element.className);\r\n }\r\n }, {\r\n key: 'defaults',\r\n get: function () {\r\n return DEFAULTS;\r\n }\r\n }]);\r\n\r\n return StickySidebar;\r\n }();\r\n\r\n return StickySidebar;\r\n }();\r\n\r\n exports.default = StickySidebar;\r\n\r\n\r\n // Global\r\n // -------------------------\r\n window.StickySidebar = StickySidebar;\r\n});\r\n});\r\n\r\nvar stickySidebar$1 = unwrapExports(stickySidebar);\r\n\r\nexports['default'] = stickySidebar$1;\r\nexports.__moduleExports = stickySidebar;\r\n\r\nObject.defineProperty(exports, '__esModule', { value: true });\r\n\r\n})));\r\n\r\n//# sourceMappingURL=sticky-sidebar.js.map\r\n","!function(root, factory) {\n \"function\" == typeof define && define.amd ? // AMD. Register as an anonymous module unless amdModuleId is set\n define([], function() {\n return root.svg4everybody = factory();\n }) : \"object\" == typeof module && module.exports ? // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory() : root.svg4everybody = factory();\n}(this, function() {\n /*! svg4everybody v2.1.9 | github.com/jonathantneal/svg4everybody */\n function embed(parent, svg, target) {\n // if the target exists\n if (target) {\n // create a document fragment to hold the contents of the target\n var fragment = document.createDocumentFragment(), viewBox = !svg.hasAttribute(\"viewBox\") && target.getAttribute(\"viewBox\");\n // conditionally set the viewBox on the svg\n viewBox && svg.setAttribute(\"viewBox\", viewBox);\n // copy the contents of the clone into the fragment\n for (// clone the target\n var clone = target.cloneNode(!0); clone.childNodes.length; ) {\n fragment.appendChild(clone.firstChild);\n }\n // append the fragment into the svg\n parent.appendChild(fragment);\n }\n }\n function loadreadystatechange(xhr) {\n // listen to changes in the request\n xhr.onreadystatechange = function() {\n // if the request is ready\n if (4 === xhr.readyState) {\n // get the cached html document\n var cachedDocument = xhr._cachedDocument;\n // ensure the cached html document based on the xhr response\n cachedDocument || (cachedDocument = xhr._cachedDocument = document.implementation.createHTMLDocument(\"\"), \n cachedDocument.body.innerHTML = xhr.responseText, xhr._cachedTarget = {}), // clear the xhr embeds list and embed each item\n xhr._embeds.splice(0).map(function(item) {\n // get the cached target\n var target = xhr._cachedTarget[item.id];\n // ensure the cached target\n target || (target = xhr._cachedTarget[item.id] = cachedDocument.getElementById(item.id)), \n // embed the target into the svg\n embed(item.parent, item.svg, target);\n });\n }\n }, // test the ready state change immediately\n xhr.onreadystatechange();\n }\n function svg4everybody(rawopts) {\n function oninterval() {\n // while the index exists in the live collection\n for (// get the cached index\n var index = 0; index < uses.length; ) {\n // get the current \n var use = uses[index], parent = use.parentNode, svg = getSVGAncestor(parent), src = use.getAttribute(\"xlink:href\") || use.getAttribute(\"href\");\n if (!src && opts.attributeName && (src = use.getAttribute(opts.attributeName)), \n svg && src) {\n if (polyfill) {\n if (!opts.validate || opts.validate(src, svg, use)) {\n // remove the element\n parent.removeChild(use);\n // parse the src and get the url and id\n var srcSplit = src.split(\"#\"), url = srcSplit.shift(), id = srcSplit.join(\"#\");\n // if the link is external\n if (url.length) {\n // get the cached xhr request\n var xhr = requests[url];\n // ensure the xhr request exists\n xhr || (xhr = requests[url] = new XMLHttpRequest(), xhr.open(\"GET\", url), xhr.send(), \n xhr._embeds = []), // add the svg and id as an item to the xhr embeds list\n xhr._embeds.push({\n parent: parent,\n svg: svg,\n id: id\n }), // prepare the xhr ready state change event\n loadreadystatechange(xhr);\n } else {\n // embed the local id into the svg\n embed(parent, svg, document.getElementById(id));\n }\n } else {\n // increase the index when the previous value was not \"valid\"\n ++index, ++numberOfSvgUseElementsToBypass;\n }\n }\n } else {\n // increase the index when the previous value was not \"valid\"\n ++index;\n }\n }\n // continue the interval\n (!uses.length || uses.length - numberOfSvgUseElementsToBypass > 0) && requestAnimationFrame(oninterval, 67);\n }\n var polyfill, opts = Object(rawopts), newerIEUA = /\\bTrident\\/[567]\\b|\\bMSIE (?:9|10)\\.0\\b/, webkitUA = /\\bAppleWebKit\\/(\\d+)\\b/, olderEdgeUA = /\\bEdge\\/12\\.(\\d+)\\b/, edgeUA = /\\bEdge\\/.(\\d+)\\b/, inIframe = window.top !== window.self;\n polyfill = \"polyfill\" in opts ? opts.polyfill : newerIEUA.test(navigator.userAgent) || (navigator.userAgent.match(olderEdgeUA) || [])[1] < 10547 || (navigator.userAgent.match(webkitUA) || [])[1] < 537 || edgeUA.test(navigator.userAgent) && inIframe;\n // create xhr requests object\n var requests = {}, requestAnimationFrame = window.requestAnimationFrame || setTimeout, uses = document.getElementsByTagName(\"use\"), numberOfSvgUseElementsToBypass = 0;\n // conditionally start the interval if the polyfill is active\n polyfill && oninterval();\n }\n function getSVGAncestor(node) {\n for (var svg = node; \"svg\" !== svg.nodeName.toLowerCase() && (svg = svg.parentNode); ) {}\n return svg;\n }\n return svg4everybody;\n});","/*!\r\n* jQuery cookie consent plugin\r\n* Original author: @mi2oon\r\n* Further changes, comments: @mi2oon\r\n* Licensed under the MIT license\r\n*/\r\n\r\n!function(root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n define(['jquery'], factory);\r\n } else {\r\n factory(root.jQuery);\r\n }\r\n}(this, function($) {\r\n 'use strict';\r\n\r\n var pluginName = 'cookieConsent',\r\n defaults = {\r\n cookieName: 'cookieConsent',\r\n btn: {\r\n class: '.btn',\r\n accept: '.accept',\r\n decline: '.decline',\r\n close: '.close'\r\n },\r\n transition: {\r\n show: {\r\n type: 'fadeIn',\r\n duration: 800\r\n },\r\n hide: {\r\n type: 'fadeOut',\r\n duration: 800\r\n }\r\n },\r\n consentType: 'explicit', // implied\r\n onAccepted: function(elm){},\r\n onDeclined: function(elm){},\r\n onShow: function(elm){},\r\n onHide: function(elm){},\r\n onCheck: function(){}\r\n },\r\n cookie = {\r\n get: function(){\r\n var ca = document.cookie.split(';');\r\n for(var i=0;i < ca.length;i++) {\r\n var c = ca[i];\r\n while (c.charAt(0)==' ') c = c.substring(1, c.length);\r\n if (c.indexOf(defaults.cookieName) === 0){\r\n return c.substring(defaults.cookieName.length + 1,c.length);\r\n }\r\n }\r\n return null;\r\n },\r\n set: function(value){\r\n var date = new Date();\r\n date.setTime(date.getTime()+315532800000);\r\n document.cookie = defaults.cookieName+\"=\"+value+\"; expires=\"+date.toGMTString()+\"; path=/\";\r\n }\r\n };\r\n\r\n // Constructor, initialise everything you need here\r\n var Plugin = function(element, options) {\r\n this.element = element;\r\n this.options = options;\r\n\r\n this._defaults = defaults;\r\n this._name = pluginName;\r\n\r\n this.init();\r\n };\r\n\r\n // Plugin methods and shared properties\r\n Plugin.prototype = {\r\n // Reset constructor - http://goo.gl/EcWdiy\r\n constructor: Plugin,\r\n\r\n init: function() {\r\n var elm = $(this.element),\r\n opt = this.options,\r\n status = cookie.get();\r\n\r\n elm.on('click', opt.btn.class, function(e){\r\n\r\n if($(this).is(opt.btn.close)){\r\n e.preventDefault();\r\n elm[opt.transition.hide.type](opt.transition.hide.duration);\r\n\r\n if(opt.consentType === 'implied'){\r\n cookie.set('allowed');\r\n opt.onAccepted.call(this, elm);\r\n }\r\n }\r\n\r\n if($(this).is(opt.btn.accept)){\r\n e.preventDefault();\r\n cookie.set('allowed');\r\n\r\n opt.onAccepted.call(this, elm);\r\n\r\n elm[opt.transition.hide.type](opt.transition.hide.duration, function(){\r\n opt.onHide.call(this, elm);\r\n });\r\n }\r\n\r\n if($(this).is(opt.btn.decline)){\r\n e.preventDefault();\r\n cookie.set('disallowed');\r\n\r\n opt.onDeclined.call(this, elm);\r\n\r\n elm[opt.transition.hide.type](opt.transition.hide.duration, function(){\r\n opt.onHide.call(this, elm);\r\n });\r\n }\r\n });\r\n\r\n opt.onCheck.call(elm, status);\r\n if (status === null){\r\n elm[opt.transition.show.type](opt.transition.show.duration, function(){\r\n opt.onShow.call(this, elm);\r\n });\r\n }\r\n }\r\n }\r\n\r\n // Create the jQuery plugin\r\n $.fn[pluginName] = function(options) {\r\n // Do a deep copy of the options - http://goo.gl/gOSSrg\r\n options = $.extend(true, {}, defaults, options);\r\n\r\n return this.each(function() {\r\n var $this = $(this);\r\n // Create a new instance for each element in the matched jQuery set\r\n // Also save the instance so it can be accessed later to use methods/properties etc\r\n // e.g.\r\n // var instance = $('.element').data('plugin');\r\n // instance.someMethod();\r\n $this.data('plugin_' + pluginName, new Plugin($this, options));\r\n });\r\n };\r\n\r\n // Expose defaults and Constructor (allowing overriding of prototype methods for example)\r\n $.fn[pluginName].defaults = defaults;\r\n $.fn[pluginName].Plugin = Plugin;\r\n});\r\n","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.promise');\nmodule.exports = require('../modules/_core').Promise;\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","/*\nThis lazySizes extension adds better support for print.\nIn case the user starts to print lazysizes will load all images.\n*/\n(function(window, factory) {\n\tvar globalInstall = function(){\n\t\tfactory(window.lazySizes);\n\t\twindow.removeEventListener('lazyunveilread', globalInstall, true);\n\t};\n\n\tfactory = factory.bind(null, window, window.document);\n\n\tif(typeof module == 'object' && module.exports){\n\t\tfactory(require('lazysizes'));\n\t} else if (typeof define == 'function' && define.amd) {\n\t\tdefine(['lazysizes'], factory);\n\t} else if(window.lazySizes) {\n\t\tglobalInstall();\n\t} else {\n\t\twindow.addEventListener('lazyunveilread', globalInstall, true);\n\t}\n}(window, function(window, document, lazySizes) {\n\t/*jshint eqnull:true */\n\t'use strict';\n\tvar config, elements, onprint, printMedia;\n\t// see also: http://tjvantoll.com/2012/06/15/detecting-print-requests-with-javascript/\n\tif(window.addEventListener){\n\t\tconfig = lazySizes && lazySizes.cfg;\n\t\telements = config.lazyClass || 'lazyload';\n\t\tonprint = function(){\n\t\t\tvar i, len;\n\t\t\tif(typeof elements == 'string'){\n\t\t\t\telements = document.getElementsByClassName(elements);\n\t\t\t}\n\n\t\t\tif(lazySizes){\n\t\t\t\tfor(i = 0, len = elements.length; i < len; i++){\n\t\t\t\t\tlazySizes.loader.unveil(elements[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\taddEventListener('beforeprint', onprint, false);\n\n\t\tif(!('onbeforeprint' in window) && window.matchMedia && (printMedia = matchMedia('print')) && printMedia.addListener){\n\t\t\tprintMedia.addListener(function(){\n\t\t\t\tif(printMedia.matches){\n\t\t\t\t\tonprint();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n}));\n","/*\nThis plugin extends lazySizes to lazyLoad:\nbackground images, videos/posters and scripts\n\nBackground-Image:\nFor background images, use data-bg attribute:\n
\n\n Video:\n For video/audio use data-poster and preload=\"none\":\n \n\n For video that plays automatically if in view:\n \n\n\n Scripts:\n For scripts use data-script:\n
\n\n\n Script modules using require:\n For modules using require use data-require:\n
\n*/\n\n(function(window, factory) {\n\tvar globalInstall = function(){\n\t\tfactory(window.lazySizes);\n\t\twindow.removeEventListener('lazyunveilread', globalInstall, true);\n\t};\n\n\tfactory = factory.bind(null, window, window.document);\n\n\tif(typeof module == 'object' && module.exports){\n\t\tfactory(require('lazysizes'));\n\t} else if (typeof define == 'function' && define.amd) {\n\t\tdefine(['lazysizes'], factory);\n\t} else if(window.lazySizes) {\n\t\tglobalInstall();\n\t} else {\n\t\twindow.addEventListener('lazyunveilread', globalInstall, true);\n\t}\n}(window, function(window, document, lazySizes) {\n\t/*jshint eqnull:true */\n\t'use strict';\n\tvar bgLoad, regBgUrlEscape;\n\tvar uniqueUrls = {};\n\n\tif(document.addEventListener){\n\t\tregBgUrlEscape = /\\(|\\)|\\s|'/;\n\n\t\tbgLoad = function (url, cb){\n\t\t\tvar img = document.createElement('img');\n\t\t\timg.onload = function(){\n\t\t\t\timg.onload = null;\n\t\t\t\timg.onerror = null;\n\t\t\t\timg = null;\n\t\t\t\tcb();\n\t\t\t};\n\t\t\timg.onerror = img.onload;\n\n\t\t\timg.src = url;\n\n\t\t\tif(img && img.complete && img.onload){\n\t\t\t\timg.onload();\n\t\t\t}\n\t\t};\n\n\t\taddEventListener('lazybeforeunveil', function(e){\n\t\t\tif(e.detail.instance != lazySizes){return;}\n\n\t\t\tvar tmp, load, bg, poster;\n\t\t\tif(!e.defaultPrevented) {\n\n\t\t\t\tvar target = e.target;\n\n\t\t\t\tif(target.preload == 'none'){\n\t\t\t\t\ttarget.preload = target.getAttribute('data-preload') || 'auto';\n\t\t\t\t}\n\n\t\t\t\tif (target.getAttribute('data-autoplay') != null) {\n\t\t\t\t\tif (target.getAttribute('data-expand') && !target.autoplay) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\ttarget.play();\n\t\t\t\t\t\t} catch (er) {}\n\t\t\t\t\t} else {\n\t\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\t\ttarget.setAttribute('data-expand', '-10');\n\t\t\t\t\t\t\tlazySizes.aC(target, lazySizes.cfg.lazyClass);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\ttmp = target.getAttribute('data-link');\n\t\t\t\tif(tmp){\n\t\t\t\t\taddStyleScript(tmp, true);\n\t\t\t\t}\n\n\t\t\t\t// handle data-script\n\t\t\t\ttmp = target.getAttribute('data-script');\n\t\t\t\tif(tmp){\n\t\t\t\t\te.detail.firesLoad = true;\n\t\t\t\t\tload = function(){\n\t\t\t\t\t\te.detail.firesLoad = false;\n\t\t\t\t\t\tlazySizes.fire(target, '_lazyloaded', {}, true, true);\n\t\t\t\t\t};\n\t\t\t\t\taddStyleScript(tmp, null, load);\n\t\t\t\t}\n\n\t\t\t\t// handle data-require\n\t\t\t\ttmp = target.getAttribute('data-require');\n\t\t\t\tif(tmp){\n\t\t\t\t\tif(lazySizes.cfg.requireJs){\n\t\t\t\t\t\tlazySizes.cfg.requireJs([tmp]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddStyleScript(tmp);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// handle data-bg\n\t\t\t\tbg = target.getAttribute('data-bg');\n\t\t\t\tif (bg) {\n\t\t\t\t\te.detail.firesLoad = true;\n\t\t\t\t\tload = function(){\n\t\t\t\t\t\ttarget.style.backgroundImage = 'url(' + (regBgUrlEscape.test(bg) ? JSON.stringify(bg) : bg ) + ')';\n\t\t\t\t\t\te.detail.firesLoad = false;\n\t\t\t\t\t\tlazySizes.fire(target, '_lazyloaded', {}, true, true);\n\t\t\t\t\t};\n\n\t\t\t\t\tbgLoad(bg, load);\n\t\t\t\t}\n\n\t\t\t\t// handle data-poster\n\t\t\t\tposter = target.getAttribute('data-poster');\n\t\t\t\tif(poster){\n\t\t\t\t\te.detail.firesLoad = true;\n\t\t\t\t\tload = function(){\n\t\t\t\t\t\ttarget.poster = poster;\n\t\t\t\t\t\te.detail.firesLoad = false;\n\t\t\t\t\t\tlazySizes.fire(target, '_lazyloaded', {}, true, true);\n\t\t\t\t\t};\n\n\t\t\t\t\tbgLoad(poster, load);\n\n\t\t\t\t}\n\t\t\t}\n\t\t}, false);\n\n\t}\n\n\tfunction addStyleScript(src, style, cb){\n\t\tif(uniqueUrls[src]){\n\t\t\treturn;\n\t\t}\n\t\tvar elem = document.createElement(style ? 'link' : 'script');\n\t\tvar insertElem = document.getElementsByTagName('script')[0];\n\n\t\tif(style){\n\t\t\telem.rel = 'stylesheet';\n\t\t\telem.href = src;\n\t\t} else {\n\t\t\telem.onload = function(){\n\t\t\t\telem.onerror = null;\n\t\t\t\telem.onload = null;\n\t\t\t\tcb();\n\t\t\t};\n\t\t\telem.onerror = elem.onload;\n\n\t\t\telem.src = src;\n\t\t}\n\t\tuniqueUrls[src] = true;\n\t\tuniqueUrls[elem.src || elem.href] = true;\n\t\tinsertElem.parentNode.insertBefore(elem, insertElem);\n\t}\n}));\n","/*! npm.im/object-fit-images 3.2.4 */\n'use strict';\n\nvar OFI = 'bfred-it:object-fit-images';\nvar propRegex = /(object-fit|object-position)\\s*:\\s*([-.\\w\\s%]+)/g;\nvar testImg = typeof Image === 'undefined' ? {style: {'object-position': 1}} : new Image();\nvar supportsObjectFit = 'object-fit' in testImg.style;\nvar supportsObjectPosition = 'object-position' in testImg.style;\nvar supportsOFI = 'background-size' in testImg.style;\nvar supportsCurrentSrc = typeof testImg.currentSrc === 'string';\nvar nativeGetAttribute = testImg.getAttribute;\nvar nativeSetAttribute = testImg.setAttribute;\nvar autoModeEnabled = false;\n\nfunction createPlaceholder(w, h) {\n\treturn (\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='\" + w + \"' height='\" + h + \"'%3E%3C/svg%3E\");\n}\n\nfunction polyfillCurrentSrc(el) {\n\tif (el.srcset && !supportsCurrentSrc && window.picturefill) {\n\t\tvar pf = window.picturefill._;\n\t\t// parse srcset with picturefill where currentSrc isn't available\n\t\tif (!el[pf.ns] || !el[pf.ns].evaled) {\n\t\t\t// force synchronous srcset parsing\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\tif (!el[pf.ns].curSrc) {\n\t\t\t// force picturefill to parse srcset\n\t\t\tel[pf.ns].supported = false;\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\t// retrieve parsed currentSrc, if any\n\t\tel.currentSrc = el[pf.ns].curSrc || el.src;\n\t}\n}\n\nfunction getStyle(el) {\n\tvar style = getComputedStyle(el).fontFamily;\n\tvar parsed;\n\tvar props = {};\n\twhile ((parsed = propRegex.exec(style)) !== null) {\n\t\tprops[parsed[1]] = parsed[2];\n\t}\n\treturn props;\n}\n\nfunction setPlaceholder(img, width, height) {\n\t// Default: fill width, no height\n\tvar placeholder = createPlaceholder(width || 1, height || 0);\n\n\t// Only set placeholder if it's different\n\tif (nativeGetAttribute.call(img, 'src') !== placeholder) {\n\t\tnativeSetAttribute.call(img, 'src', placeholder);\n\t}\n}\n\nfunction onImageReady(img, callback) {\n\t// naturalWidth is only available when the image headers are loaded,\n\t// this loop will poll it every 100ms.\n\tif (img.naturalWidth) {\n\t\tcallback(img);\n\t} else {\n\t\tsetTimeout(onImageReady, 100, img, callback);\n\t}\n}\n\nfunction fixOne(el) {\n\tvar style = getStyle(el);\n\tvar ofi = el[OFI];\n\tstyle['object-fit'] = style['object-fit'] || 'fill'; // default value\n\n\t// Avoid running where unnecessary, unless OFI had already done its deed\n\tif (!ofi.img) {\n\t\t// fill is the default behavior so no action is necessary\n\t\tif (style['object-fit'] === 'fill') {\n\t\t\treturn;\n\t\t}\n\n\t\t// Where object-fit is supported and object-position isn't (Safari < 10)\n\t\tif (\n\t\t\t!ofi.skipTest && // unless user wants to apply regardless of browser support\n\t\t\tsupportsObjectFit && // if browser already supports object-fit\n\t\t\t!style['object-position'] // unless object-position is used\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// keep a clone in memory while resetting the original to a blank\n\tif (!ofi.img) {\n\t\tofi.img = new Image(el.width, el.height);\n\t\tofi.img.srcset = nativeGetAttribute.call(el, \"data-ofi-srcset\") || el.srcset;\n\t\tofi.img.src = nativeGetAttribute.call(el, \"data-ofi-src\") || el.src;\n\n\t\t// preserve for any future cloneNode calls\n\t\t// https://github.com/bfred-it/object-fit-images/issues/53\n\t\tnativeSetAttribute.call(el, \"data-ofi-src\", el.src);\n\t\tif (el.srcset) {\n\t\t\tnativeSetAttribute.call(el, \"data-ofi-srcset\", el.srcset);\n\t\t}\n\n\t\tsetPlaceholder(el, el.naturalWidth || el.width, el.naturalHeight || el.height);\n\n\t\t// remove srcset because it overrides src\n\t\tif (el.srcset) {\n\t\t\tel.srcset = '';\n\t\t}\n\t\ttry {\n\t\t\tkeepSrcUsable(el);\n\t\t} catch (err) {\n\t\t\tif (window.console) {\n\t\t\t\tconsole.warn('https://bit.ly/ofi-old-browser');\n\t\t\t}\n\t\t}\n\t}\n\n\tpolyfillCurrentSrc(ofi.img);\n\n\tel.style.backgroundImage = \"url(\\\"\" + ((ofi.img.currentSrc || ofi.img.src).replace(/\"/g, '\\\\\"')) + \"\\\")\";\n\tel.style.backgroundPosition = style['object-position'] || 'center';\n\tel.style.backgroundRepeat = 'no-repeat';\n\tel.style.backgroundOrigin = 'content-box';\n\n\tif (/scale-down/.test(style['object-fit'])) {\n\t\tonImageReady(ofi.img, function () {\n\t\t\tif (ofi.img.naturalWidth > el.width || ofi.img.naturalHeight > el.height) {\n\t\t\t\tel.style.backgroundSize = 'contain';\n\t\t\t} else {\n\t\t\t\tel.style.backgroundSize = 'auto';\n\t\t\t}\n\t\t});\n\t} else {\n\t\tel.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%');\n\t}\n\n\tonImageReady(ofi.img, function (img) {\n\t\tsetPlaceholder(el, img.naturalWidth, img.naturalHeight);\n\t});\n}\n\nfunction keepSrcUsable(el) {\n\tvar descriptors = {\n\t\tget: function get(prop) {\n\t\t\treturn el[OFI].img[prop ? prop : 'src'];\n\t\t},\n\t\tset: function set(value, prop) {\n\t\t\tel[OFI].img[prop ? prop : 'src'] = value;\n\t\t\tnativeSetAttribute.call(el, (\"data-ofi-\" + prop), value); // preserve for any future cloneNode\n\t\t\tfixOne(el);\n\t\t\treturn value;\n\t\t}\n\t};\n\tObject.defineProperty(el, 'src', descriptors);\n\tObject.defineProperty(el, 'currentSrc', {\n\t\tget: function () { return descriptors.get('currentSrc'); }\n\t});\n\tObject.defineProperty(el, 'srcset', {\n\t\tget: function () { return descriptors.get('srcset'); },\n\t\tset: function (ss) { return descriptors.set(ss, 'srcset'); }\n\t});\n}\n\nfunction hijackAttributes() {\n\tfunction getOfiImageMaybe(el, name) {\n\t\treturn el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el;\n\t}\n\tif (!supportsObjectPosition) {\n\t\tHTMLImageElement.prototype.getAttribute = function (name) {\n\t\t\treturn nativeGetAttribute.call(getOfiImageMaybe(this, name), name);\n\t\t};\n\n\t\tHTMLImageElement.prototype.setAttribute = function (name, value) {\n\t\t\treturn nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value));\n\t\t};\n\t}\n}\n\nfunction fix(imgs, opts) {\n\tvar startAutoMode = !autoModeEnabled && !imgs;\n\topts = opts || {};\n\timgs = imgs || 'img';\n\n\tif ((supportsObjectPosition && !opts.skipTest) || !supportsOFI) {\n\t\treturn false;\n\t}\n\n\t// use imgs as a selector or just select all images\n\tif (imgs === 'img') {\n\t\timgs = document.getElementsByTagName('img');\n\t} else if (typeof imgs === 'string') {\n\t\timgs = document.querySelectorAll(imgs);\n\t} else if (!('length' in imgs)) {\n\t\timgs = [imgs];\n\t}\n\n\t// apply fix to all\n\tfor (var i = 0; i < imgs.length; i++) {\n\t\timgs[i][OFI] = imgs[i][OFI] || {\n\t\t\tskipTest: opts.skipTest\n\t\t};\n\t\tfixOne(imgs[i]);\n\t}\n\n\tif (startAutoMode) {\n\t\tdocument.body.addEventListener('load', function (e) {\n\t\t\tif (e.target.tagName === 'IMG') {\n\t\t\t\tfix(e.target, {\n\t\t\t\t\tskipTest: opts.skipTest\n\t\t\t\t});\n\t\t\t}\n\t\t}, true);\n\t\tautoModeEnabled = true;\n\t\timgs = 'img'; // reset to a generic selector for watchMQ\n\t}\n\n\t// if requested, watch media queries for object-fit change\n\tif (opts.watchMQ) {\n\t\twindow.addEventListener('resize', fix.bind(null, imgs, {\n\t\t\tskipTest: opts.skipTest\n\t\t}));\n\t}\n}\n\nfix.supportsObjectFit = supportsObjectFit;\nfix.supportsObjectPosition = supportsObjectPosition;\n\nhijackAttributes();\n\nmodule.exports = fix;\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","// Unobtrusive Ajax support library for jQuery\n// Copyright (c) .NET Foundation. All rights reserved.\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\n// @version v3.2.6\n// \n// Microsoft grants you the right to use these script files for the sole\n// purpose of either: (i) interacting through your browser with the Microsoft\n// website or online service, subject to the applicable licensing or use\n// terms; or (ii) using the files as included with a Microsoft product subject\n// to that product's license terms. Microsoft reserves all other rights to the\n// files not expressly granted by Microsoft, whether by implication, estoppel\n// or otherwise. Insofar as a script file is dual licensed under GPL,\n// Microsoft neither took the code under GPL nor distributes it thereunder but\n// under the terms set out in this paragraph. All notices and licenses\n// below are for informational purposes only.\n\n/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */\n/*global window: false, jQuery: false */\n\n(function ($) {\n var data_click = \"unobtrusiveAjaxClick\",\n data_target = \"unobtrusiveAjaxClickTarget\",\n data_validation = \"unobtrusiveValidation\";\n\n function getFunction(code, argNames) {\n var fn = window, parts = (code || \"\").split(\".\");\n while (fn && parts.length) {\n fn = fn[parts.shift()];\n }\n if (typeof (fn) === \"function\") {\n return fn;\n }\n argNames.push(code);\n return Function.constructor.apply(null, argNames);\n }\n\n function isMethodProxySafe(method) {\n return method === \"GET\" || method === \"POST\";\n }\n\n function asyncOnBeforeSend(xhr, method) {\n if (!isMethodProxySafe(method)) {\n xhr.setRequestHeader(\"X-HTTP-Method-Override\", method);\n }\n }\n\n function asyncOnSuccess(element, data, contentType) {\n var mode;\n\n if (contentType.indexOf(\"application/x-javascript\") !== -1) { // jQuery already executes JavaScript for us\n return;\n }\n\n mode = (element.getAttribute(\"data-ajax-mode\") || \"\").toUpperCase();\n $(element.getAttribute(\"data-ajax-update\")).each(function (i, update) {\n var top;\n\n switch (mode) {\n case \"BEFORE\":\n $(update).prepend(data);\n break;\n case \"AFTER\":\n $(update).append(data);\n break;\n case \"REPLACE-WITH\":\n $(update).replaceWith(data);\n break;\n default:\n $(update).html(data);\n break;\n }\n });\n }\n\n function asyncRequest(element, options) {\n var confirm, loading, method, duration;\n\n confirm = element.getAttribute(\"data-ajax-confirm\");\n if (confirm && !window.confirm(confirm)) {\n return;\n }\n\n loading = $(element.getAttribute(\"data-ajax-loading\"));\n duration = parseInt(element.getAttribute(\"data-ajax-loading-duration\"), 10) || 0;\n\n $.extend(options, {\n type: element.getAttribute(\"data-ajax-method\") || undefined,\n url: element.getAttribute(\"data-ajax-url\") || undefined,\n cache: (element.getAttribute(\"data-ajax-cache\") || \"\").toLowerCase() === \"true\",\n beforeSend: function (xhr) {\n var result;\n asyncOnBeforeSend(xhr, method);\n result = getFunction(element.getAttribute(\"data-ajax-begin\"), [\"xhr\"]).apply(element, arguments);\n if (result !== false) {\n loading.show(duration);\n }\n return result;\n },\n complete: function () {\n loading.hide(duration);\n getFunction(element.getAttribute(\"data-ajax-complete\"), [\"xhr\", \"status\"]).apply(element, arguments);\n },\n success: function (data, status, xhr) {\n asyncOnSuccess(element, data, xhr.getResponseHeader(\"Content-Type\") || \"text/html\");\n getFunction(element.getAttribute(\"data-ajax-success\"), [\"data\", \"status\", \"xhr\"]).apply(element, arguments);\n },\n error: function () {\n getFunction(element.getAttribute(\"data-ajax-failure\"), [\"xhr\", \"status\", \"error\"]).apply(element, arguments);\n }\n });\n\n options.data.push({ name: \"X-Requested-With\", value: \"XMLHttpRequest\" });\n\n method = options.type.toUpperCase();\n if (!isMethodProxySafe(method)) {\n options.type = \"POST\";\n options.data.push({ name: \"X-HTTP-Method-Override\", value: method });\n }\n\n // change here:\n // Check for a Form POST with enctype=multipart/form-data\n // add the input file that were not previously included in the serializeArray()\n // set processData and contentType to false\n var $element = $(element);\n if ($element.is(\"form\") && $element.attr(\"enctype\") == \"multipart/form-data\") {\n var formdata = new FormData();\n $.each(options.data, function (i, v) {\n formdata.append(v.name, v.value);\n });\n $(\"input[type=file]\", $element).each(function () {\n var file = this;\n $.each(file.files, function (n, v) {\n formdata.append(file.name, v);\n });\n });\n $.extend(options, {\n processData: false,\n contentType: false,\n data: formdata\n });\n }\n // end change\n\n $.ajax(options);\n }\n\n function validate(form) {\n var validationInfo = $(form).data(data_validation);\n return !validationInfo || !validationInfo.validate || validationInfo.validate();\n }\n\n $(document).on(\"click\", \"a[data-ajax=true]\", function (evt) {\n evt.preventDefault();\n asyncRequest(this, {\n url: this.href,\n type: \"GET\",\n data: []\n });\n });\n\n $(document).on(\"click\", \"form[data-ajax=true] input[type=image]\", function (evt) {\n var name = evt.target.name,\n target = $(evt.target),\n form = $(target.parents(\"form\")[0]),\n offset = target.offset();\n\n form.data(data_click, [\n { name: name + \".x\", value: Math.round(evt.pageX - offset.left) },\n { name: name + \".y\", value: Math.round(evt.pageY - offset.top) }\n ]);\n\n setTimeout(function () {\n form.removeData(data_click);\n }, 0);\n });\n\n $(document).on(\"click\", \"form[data-ajax=true] :submit\", function (evt) {\n var name = evt.currentTarget.name,\n target = $(evt.target),\n form = $(target.parents(\"form\")[0]);\n\n form.data(data_click, name ? [{ name: name, value: evt.currentTarget.value }] : []);\n form.data(data_target, target);\n\n setTimeout(function () {\n form.removeData(data_click);\n form.removeData(data_target);\n }, 0);\n });\n\n $(document).on(\"submit\", \"form[data-ajax=true]\", function (evt) {\n var clickInfo = $(this).data(data_click) || [],\n clickTarget = $(this).data(data_target),\n isCancel = clickTarget && (clickTarget.hasClass(\"cancel\") || clickTarget.attr('formnovalidate') !== undefined);\n evt.preventDefault();\n if (!isCancel && !validate(this)) {\n return;\n }\n asyncRequest(this, {\n url: this.action,\n type: this.method || \"GET\",\n data: clickInfo.concat($(this).serializeArray())\n });\n });\n}(jQuery));\n","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","!function(a,t,i){i.fn.tabs=function(t){var n=i.extend({tabPaginationClass:\".tab-container__item\",tabPaginationContainer:\".tab-container\",tabPaginationList:\".tab-container__list\",tabContent:\".tab-content__item\",tabContentWrapper:\".tab-content-container\",tabPaginationItems:6,tabActiveClass:\"active\",tabScrollClass:\".tab-container__action\"},t);return this.each(function(){var t=i(this),e=t.find(n.tabPaginationClass),s=t.find(n.tabPaginationList),o=t.find(n.tabContent),d=t.find(n.tabPaginationContainer),r=d.outerWidth()/n.tabPaginationItems,l=r*e.length;if(e.css(\"width\",d.outerWidth()/e.length),s.css(\"width\",d.outerWidth()),l>d.outerWidth()&&i(a).width()>767){r=(d.outerWidth()-d.find(n.tabScrollClass).outerWidth())/n.tabPaginationItems,l=r*e.length;var b=d.find(n.tabScrollClass).outerWidth()/2;e.css(\"width\",r),s.css({width:l}),s.parents(n.tabPaginationContainer).css({marginLeft:b,marginRight:b}),d.find(n.tabScrollClass).show()}else d.find(n.tabScrollClass).hide();o.first().parents(\".container\").wrapInner('
');var c=t.find(n.tabContentWrapper);if(o.css(\"width\",c.outerWidth()),c.css({width:c.outerWidth()*o.length,marginLeft:0}),i(a).on(\"resize\",function(){if(e.css(\"width\",d.outerWidth()/e.length),s.css(\"width\",d.outerWidth()),i(a).width()<767)d.find(n.tabScrollClass).hide(),t.find(n.tabPaginationContainer).attr({style:\"\"});else if(n.tabPaginationItemsn.tabPaginationItems){var d=parseInt(s.css(\"margin-left\"));s.animate({marginLeft:(d+r*-1)*(e.index(i(this))-n.tabPaginationItems+1)}),h+=e.index(i(this))-n.tabPaginationItems+1,h===n.tabPaginationItems?(t.find(n.tabScrollClass).find(\".back\").hide(),t.find(n.tabScrollClass).find(\".forward\").show()):h===e.length?(t.find(n.tabScrollClass).find(\".forward\").hide(),t.find(n.tabScrollClass).find(\".back\").show()):(t.find(n.tabScrollClass).find(\".forward\").show(),t.find(n.tabScrollClass).find(\".back\").show())}}),t.find(\".lazyload\").each(function(){var e=new MutationObserver(function(o){o.forEach(function(o){if(\"src\"===o.attributeName){var d=void 0;i(a).width()<767?(d=t.find(\"select\"+n.tabPaginationList).find(\"option:selected\"),d=s.find(\"option[data-tab-pagination]\").index(d)===-1?t.find(\"select\"+n.tabPaginationList).find(\"option\").eq(1):d):d=t.find(n.tabPaginationClass+\".active\");var r=d.data(\"tabPagination\");c.parents(\".module-tabs__tab-container\").animate({height:t.find(\"[data-tab-content=\"+r+\"]\").outerHeight()+100}),e.disconnect()}})});e.observe(this,{attributes:!0})}),t.find(n.tabPaginationClass+\".active\").length){var g=t.addClass(\"loading\").find(n.tabPaginationClass+\".active\");e.removeClass(n.tabActiveClass),g.addClass(n.tabActiveClass);var m=g.data(\"tabPagination\");if(c.parents(\".module-tabs__tab-container\").animate({height:t.find(\"[data-tab-content=\"+m+\"]\").outerHeight()+100}),c.css({marginLeft:e.index(g)*o.outerWidth()*-1}),t.hasClass(\"loading\")&&e.index(g)+1>n.tabPaginationItems){var C=parseInt(s.css(\"margin-left\"));s.animate({marginLeft:(C+r*-1)*(e.index(g)-n.tabPaginationItems+1)}),h+=e.index(g)-n.tabPaginationItems+1,h===n.tabPaginationItems?(t.find(n.tabScrollClass).find(\".back\").hide(),t.find(n.tabScrollClass).find(\".forward\").show()):h===e.length?(t.find(n.tabScrollClass).find(\".forward\").hide(),t.find(n.tabScrollClass).find(\".back\").show()):(t.find(n.tabScrollClass).find(\".forward\").show(),t.find(n.tabScrollClass).find(\".back\").show())}}else t.addClass(\"loading\").find(n.tabPaginationClass).first().click();if(o.show(),\"\"!==a.location.hash){var u=a.location.hash.slice(1),v=u.slice(0,u.indexOf(\"?\"));if(t.data(\"parentTab\")==v){var p=u.slice(u.indexOf(\"?\")+1);i(\"html, body\").animate({scrollTop:i(\"[data-parent-tab=\"+v+\"]\").offset().top},500),t.find(\"[data-tab-pagination=\"+p+\"]\").click()}}t.removeClass(\"loading\"),t.addClass(\"tabsinit-loaded\"),t.on(\"tabs:recalchight\",function(){var a=t.find(n.tabPaginationClass+\".active\"),i=a.data(\"tabPagination\");c.parents(\".module-tabs__tab-container\").animate({height:t.find(\"[data-tab-content=\"+i+\"]\").outerHeight()+100})})})}}(window,document,jQuery,void 0);","module.exports = global[\"$\"] = require(\"-!.\\\\jquery.js\");","/*!\n * jQuery JavaScript Library v3.7.1\n * https://jquery.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-08-28T13:37Z\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 trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar version = \"3.7.1\",\n\n\trhtmlSuffix = /HTML$/i,\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\n\t// Retrieve the text value of an array of DOM nodes\n\ttext: function( elem ) {\n\t\tvar node,\n\t\t\tret = \"\",\n\t\t\ti = 0,\n\t\t\tnodeType = elem.nodeType;\n\n\t\tif ( !nodeType ) {\n\n\t\t\t// If no nodeType, this is expected to be an array\n\t\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t\t// Do not traverse comment nodes\n\t\t\t\tret += jQuery.text( node );\n\t\t\t}\n\t\t}\n\t\tif ( nodeType === 1 || nodeType === 11 ) {\n\t\t\treturn elem.textContent;\n\t\t}\n\t\tif ( nodeType === 9 ) {\n\t\t\treturn elem.documentElement.textContent;\n\t\t}\n\t\tif ( nodeType === 3 || nodeType === 4 ) {\n\t\t\treturn elem.nodeValue;\n\t\t}\n\n\t\t// Do not include comment or processing instruction nodes\n\n\t\treturn ret;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tisXMLDoc: function( elem ) {\n\t\tvar namespace = elem && elem.namespaceURI,\n\t\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t\t// Assume HTML when documentElement doesn't yet exist, such as inside\n\t\t// document fragments.\n\t\treturn !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar pop = arr.pop;\n\n\nvar sort = arr.sort;\n\n\nvar splice = arr.splice;\n\n\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n\n\n\n// Note: an element does not contain itself\njQuery.contains = function( a, b ) {\n\tvar bup = b && b.parentNode;\n\n\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE doesn't have `contains` on SVG.\n\t\ta.contains ?\n\t\t\ta.contains( bup ) :\n\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t) );\n};\n\n\n\n\n// CSS string/identifier serialization\n// https://drafts.csswg.org/cssom/#common-serializing-idioms\nvar rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n\nfunction fcssescape( ch, asCodePoint ) {\n\tif ( asCodePoint ) {\n\n\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\tif ( ch === \"\\0\" ) {\n\t\t\treturn \"\\uFFFD\";\n\t\t}\n\n\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t}\n\n\t// Other potentially-special ASCII characters get backslash-escaped\n\treturn \"\\\\\" + ch;\n}\n\njQuery.escapeSelector = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\n\n\n\nvar preferredDoc = document,\n\tpushNative = push;\n\n( function() {\n\nvar i,\n\tExpr,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\tpush = pushNative,\n\n\t// Local document vars\n\tdocument,\n\tdocumentElement,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\tmatches,\n\n\t// Instance-specific data\n\texpando = jQuery.expando,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|\" +\n\t\t\"loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" +\n\t\twhitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\tID: new RegExp( \"^#(\" + identifier + \")\" ),\n\t\tCLASS: new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\tTAG: new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\tATTR: new RegExp( \"^\" + attributes ),\n\t\tPSEUDO: new RegExp( \"^\" + pseudos ),\n\t\tCHILD: new RegExp(\n\t\t\t\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\tbool: new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\tneedsContext: new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\tif ( nonHex ) {\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\treturn nonHex;\n\t\t}\n\n\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t// Support: IE <=11+\n\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t// surrogate pair\n\t\treturn high < 0 ?\n\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes; see `setDocument`.\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE/Edge.\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && nodeName( elem, \"fieldset\" );\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android <=4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = {\n\t\tapply: function( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t},\n\t\tcall: function( target ) {\n\t\t\tpushNative.apply( target, slice.call( arguments, 1 ) );\n\t\t}\n\t};\n}\n\nfunction find( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tfind.contains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( !nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when\n\t\t\t\t\t// strict-comparing two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( newContext != context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = jQuery.escapeSelector( nid );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrimCSS, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties\n\t\t// (see https://github.com/jquery/sizzle/issues/157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by jQuery selector module\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn nodeName( elem, \"input\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn ( nodeName( elem, \"input\" ) || nodeName( elem, \"button\" ) ) &&\n\t\t\telem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11+\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a jQuery selector context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [node] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nfunction setDocument( node ) {\n\tvar subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocumentElement = document.documentElement;\n\tdocumentIsHTML = !jQuery.isXMLDoc( document );\n\n\t// Support: iOS 7 only, IE 9 - 11+\n\t// Older browsers didn't support unprefixed `matches`.\n\tmatches = documentElement.matches ||\n\t\tdocumentElement.webkitMatchesSelector ||\n\t\tdocumentElement.msMatchesSelector;\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors\n\t// (see trac-13936).\n\t// Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`,\n\t// all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well.\n\tif ( documentElement.msMatchesSelector &&\n\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tpreferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t\tsubWindow.addEventListener( \"unload\", unloadHandler );\n\t}\n\n\t// Support: IE <10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocumentElement.appendChild( el ).id = jQuery.expando;\n\t\treturn !document.getElementsByName ||\n\t\t\t!document.getElementsByName( jQuery.expando ).length;\n\t} );\n\n\t// Support: IE 9 only\n\t// Check to see if it's possible to do matchesSelector\n\t// on a disconnected node.\n\tsupport.disconnectedMatch = assert( function( el ) {\n\t\treturn matches.call( el, \"*\" );\n\t} );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// IE/Edge don't support the :scope pseudo-class.\n\tsupport.scope = assert( function() {\n\t\treturn document.querySelectorAll( \":scope\" );\n\t} );\n\n\t// Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only\n\t// Make sure the `:has()` argument is parsed unforgivingly.\n\t// We include `*` in the test to detect buggy implementations that are\n\t// _selectively_ forgiving (specifically when the list includes at least\n\t// one valid selector).\n\t// Note that we treat complete lack of support for `:has()` as if it were\n\t// spec-compliant support, which is fine because use of `:has()` in such\n\t// environments will fail in the qSA path and fall back to jQuery traversal\n\t// anyway.\n\tsupport.cssHas = assert( function() {\n\t\ttry {\n\t\t\tdocument.querySelector( \":has(*,:jqfake)\" );\n\t\t\treturn false;\n\t\t} catch ( e ) {\n\t\t\treturn true;\n\t\t}\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find.TAG = function( tag, context ) {\n\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t// DocumentFragment nodes don't have gEBTN\n\t\t} else {\n\t\t\treturn context.querySelectorAll( tag );\n\t\t}\n\t};\n\n\t// Class\n\tExpr.find.CLASS = function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\trbuggyQSA = [];\n\n\t// Build QSA regex\n\t// Regex strategy adopted from Diego Perini\n\tassert( function( el ) {\n\n\t\tvar input;\n\n\t\tdocumentElement.appendChild( el ).innerHTML =\n\t\t\t\"\" +\n\t\t\t\"\";\n\n\t\t// Support: iOS <=7 - 8 only\n\t\t// Boolean attributes and \"value\" are not treated correctly in some XML documents\n\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t}\n\n\t\t// Support: iOS <=7 - 8 only\n\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\trbuggyQSA.push( \"~=\" );\n\t\t}\n\n\t\t// Support: iOS 8 only\n\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t}\n\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\trbuggyQSA.push( \":checked\" );\n\t\t}\n\n\t\t// Support: Windows 8 Native Apps\n\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tdocumentElement.appendChild( el ).disabled = true;\n\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t}\n\n\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t// Adding a temporary attribute to the document before the selection works\n\t\t// around the issue.\n\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"name\", \"\" );\n\t\tel.appendChild( input );\n\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t}\n\t} );\n\n\tif ( !support.cssHas ) {\n\n\t\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t\t// Our regular `try-catch` mechanism fails to detect natively-unsupported\n\t\t// pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n\t\t// in browsers that parse the `:has()` argument as a forgiving selector list.\n\t\t// https://drafts.csswg.org/selectors/#relational now requires the argument\n\t\t// to be parsed unforgivingly, but browsers have not yet fully adjusted.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = function( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a === document || a.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b === document || b.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t};\n\n\treturn document;\n}\n\nfind.matches = function( expr, elements ) {\n\treturn find( expr, null, null, elements );\n};\n\nfind.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn find( expr, document, null, [ elem ] ).length > 0;\n};\n\nfind.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn jQuery.contains( context, elem );\n};\n\n\nfind.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (see trac-13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\tif ( val !== undefined ) {\n\t\treturn val;\n\t}\n\n\treturn elem.getAttribute( name );\n};\n\nfind.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\njQuery.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\t//\n\t// Support: Android <=4.0+\n\t// Testing for detecting duplicates is unpredictable so instead assume we can't\n\t// depend on duplicate detection in all browsers without a stable sort.\n\thasDuplicate = !support.sortStable;\n\tsortInput = !support.sortStable && slice.call( results, 0 );\n\tsort.call( results, sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tsplice.call( results, duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\njQuery.fn.uniqueSort = function() {\n\treturn this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );\n};\n\nExpr = jQuery.expr = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\tATTR: function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || \"\" )\n\t\t\t\t.replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\tCHILD: function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" )\n\t\t\t\t);\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\tPSEUDO: function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr.CHILD.test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\tTAG: function( nodeNameSelector ) {\n\t\t\tvar expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn nodeName( elem, expectedNodeName );\n\t\t\t\t};\n\t\t},\n\n\t\tCLASS: function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace + \")\" + className +\n\t\t\t\t\t\"(\" + whitespace + \"|$)\" ) ) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\tATTR: function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = find.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\tif ( operator === \"=\" ) {\n\t\t\t\t\treturn result === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"!=\" ) {\n\t\t\t\t\treturn result !== check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"^=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) === 0;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"*=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"$=\" ) {\n\t\t\t\t\treturn check && result.slice( -check.length ) === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"~=\" ) {\n\t\t\t\t\treturn ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" )\n\t\t\t\t\t\t.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"|=\" ) {\n\t\t\t\t\treturn result === check || result.slice( 0, check.length + 1 ) === check + \"-\";\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t};\n\t\t},\n\n\t\tCHILD: function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || ( parent[ expando ] = {} );\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\t\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\t\t\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\tPSEUDO: function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// https://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tfind.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as jQuery does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf.call( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\tnot: markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrimCSS, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element\n\t\t\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\thas: markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn find( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\tcontains: markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// https://www.w3.org/TR/selectors/#lang-pseudo\n\t\tlang: markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tfind.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\ttarget: function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\troot: function( elem ) {\n\t\t\treturn elem === documentElement;\n\t\t},\n\n\t\tfocus: function( elem ) {\n\t\t\treturn elem === safeActiveElement() &&\n\t\t\t\tdocument.hasFocus() &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\tenabled: createDisabledPseudo( false ),\n\t\tdisabled: createDisabledPseudo( true ),\n\n\t\tchecked: function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\treturn ( nodeName( elem, \"input\" ) && !!elem.checked ) ||\n\t\t\t\t( nodeName( elem, \"option\" ) && !!elem.selected );\n\t\t},\n\n\t\tselected: function( elem ) {\n\n\t\t\t// Support: IE <=11+\n\t\t\t// Accessing the selectedIndex property\n\t\t\t// forces the browser to treat the default option as\n\t\t\t// selected when in an optgroup.\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\tempty: function( elem ) {\n\n\t\t\t// https://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\tparent: function( elem ) {\n\t\t\treturn !Expr.pseudos.empty( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\theader: function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\tinput: function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\tbutton: function( elem ) {\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"button\" ||\n\t\t\t\tnodeName( elem, \"button\" );\n\t\t},\n\n\t\ttext: function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"text\" &&\n\n\t\t\t\t// Support: IE <10 only\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear\n\t\t\t\t// with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\tfirst: createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\tlast: createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\teq: createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\teven: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\todd: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tlt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i;\n\n\t\t\tif ( argument < 0 ) {\n\t\t\t\ti = argument + length;\n\t\t\t} else if ( argument > length ) {\n\t\t\t\ti = length;\n\t\t\t} else {\n\t\t\t\ti = argument;\n\t\t\t}\n\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tgt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos.nth = Expr.pseudos.eq;\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\nfunction tokenize( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rleadingCombinator.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrimCSS, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\tif ( parseOnly ) {\n\t\treturn soFar.length;\n\t}\n\n\treturn soFar ?\n\t\tfind.error( selector ) :\n\n\t\t// Cache the tokens\n\t\ttokenCache( selector, groups ).slice( 0 );\n}\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\tif ( skip && nodeName( elem, skip ) ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = outerCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tfind( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem, matcherOut,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed ||\n\t\t\t\tmultipleContexts( selector || \"*\",\n\t\t\t\t\tcontext.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems;\n\n\t\tif ( matcher ) {\n\n\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter\n\t\t\t// or preexisting results,\n\t\t\tmatcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t[] :\n\n\t\t\t\t// ...otherwise use results directly\n\t\t\t\tresults;\n\n\t\t\t// Find primary matches\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t} else {\n\t\t\tmatcherOut = matcherIn;\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf.call( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tvar ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element\n\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 )\n\t\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrimCSS, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find.TAG( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: iOS <=7 - 9 only\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching\n\t\t\t// elements by id. (see trac-14142)\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tjQuery.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\nfunction compile( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n}\n\n/**\n * A low-level selection function that works with jQuery's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with jQuery selector compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nfunction select( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find.ID(\n\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\tcontext\n\t\t\t) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr.needsContext.test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) &&\n\t\t\t\t\t\ttestContext( context.parentNode ) || context\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n}\n\n// One-time assignments\n\n// Support: Android <=4.0 - 4.1+\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Android <=4.0 - 4.1+\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\njQuery.find = find;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.unique = jQuery.uniqueSort;\n\n// These have always been private, but they used to be documented as part of\n// Sizzle so let's maintain them for now for backwards compatibility purposes.\nfind.compile = compile;\nfind.select = select;\nfind.setDocument = setDocument;\nfind.tokenize = tokenize;\n\nfind.escape = jQuery.escapeSelector;\nfind.getText = jQuery.text;\nfind.isXML = jQuery.isXMLDoc;\nfind.selectors = jQuery.expr;\nfind.support = jQuery.support;\nfind.uniqueSort = jQuery.uniqueSort;\n\n\t/* eslint-enable */\n\n} )();\n\n\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\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to jQuery#find\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\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.error );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the error, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getErrorHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getErrorHook();\n\n\t\t\t\t\t\t\t\t// The deprecated alias of the above. While the name suggests\n\t\t\t\t\t\t\t\t// returning the stack, not an error instance, jQuery just passes\n\t\t\t\t\t\t\t\t// it directly to `console.warn` so both will work; an instance\n\t\t\t\t\t\t\t\t// just better cooperates with source maps.\n\t\t\t\t\t\t\t\t} else if ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\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\n// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error\n// captured before the async barrier to get the original error cause\n// which may otherwise be hidden.\njQuery.Deferred.exceptionHook = function( error, asyncError ) {\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,\n\t\t\terror.stack, asyncError );\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 trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\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 (trac-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 trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\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 (trac-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 (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\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 (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", true );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, isSetup ) {\n\n\t// Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !isSetup ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\tif ( !saved ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tdataPriv.set( this, type, false );\n\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering\n\t\t\t\t// the native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, jQuery.event.trigger(\n\t\t\t\t\tsaved[ 0 ],\n\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\tthis\n\t\t\t\t) );\n\n\t\t\t\t// Abort handling of the native event by all jQuery handlers while allowing\n\t\t\t\t// native handlers on the same element to run. On target, this is achieved\n\t\t\t\t// by stopping immediate propagation just on the jQuery event. However,\n\t\t\t\t// the native event is re-wrapped by a jQuery one on each level of the\n\t\t\t\t// propagation so the only way to stop it for jQuery is to stop it for\n\t\t\t\t// everyone via native `stopPropagation()`. This is not a problem for\n\t\t\t\t// focus/blur which don't bubble, but it does also stop click on checkboxes\n\t\t\t\t// and radios. We accept this limitation.\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.isImmediatePropagationStopped = returnTrue;\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\n\tfunction focusMappedHandler( nativeEvent ) {\n\t\tif ( document.documentMode ) {\n\n\t\t\t// Support: IE 11+\n\t\t\t// Attach a single focusin/focusout handler on the document while someone wants\n\t\t\t// focus/blur. This is because the former are synchronous in IE while the latter\n\t\t\t// are async. In other browsers, all those handlers are invoked synchronously.\n\n\t\t\t// `handle` from private data would already wrap the event, but we need\n\t\t\t// to change the `type` here.\n\t\t\tvar handle = dataPriv.get( this, \"handle\" ),\n\t\t\t\tevent = jQuery.event.fix( nativeEvent );\n\t\t\tevent.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n\t\t\tevent.isSimulated = true;\n\n\t\t\t// First, handle focusin/focusout\n\t\t\thandle( nativeEvent );\n\n\t\t\t// ...then, handle focus/blur\n\t\t\t//\n\t\t\t// focus/blur don't bubble while focusin/focusout do; simulate the former by only\n\t\t\t// invoking the handler at the lower level.\n\t\t\tif ( event.target === event.currentTarget ) {\n\n\t\t\t\t// The setup part calls `leverageNative`, which, in turn, calls\n\t\t\t\t// `jQuery.event.add`, so event handle will already have been set\n\t\t\t\t// by this point.\n\t\t\t\thandle( event );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// For non-IE browsers, attach a single capturing handler on the document\n\t\t\t// while someone wants focusin/focusout.\n\t\t\tjQuery.event.simulate( delegateType, nativeEvent.target,\n\t\t\t\tjQuery.event.fix( nativeEvent ) );\n\t\t}\n\t}\n\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\tvar attaches;\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, true );\n\n\t\t\tif ( document.documentMode ) {\n\n\t\t\t\t// Support: IE 9 - 11+\n\t\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\t\tattaches = dataPriv.get( this, delegateType );\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t}\n\t\t\t\tdataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );\n\t\t\t} else {\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tvar attaches;\n\n\t\t\tif ( document.documentMode ) {\n\t\t\t\tattaches = dataPriv.get( this, delegateType ) - 1;\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t\tdataPriv.remove( this, delegateType );\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.set( this, delegateType, attaches );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Return false to indicate standard teardown should be applied\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n\n\t// Support: Firefox <=44\n\t// Firefox doesn't have focus(in | out) events\n\t// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n\t//\n\t// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n\t// focus(in | out) events fire after focus & blur events,\n\t// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n\t// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\t//\n\t// Support: IE 9 - 11+\n\t// To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,\n\t// attach a single handler for both events in IE.\n\tjQuery.event.special[ delegateType ] = {\n\t\tsetup: function() {\n\n\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType );\n\n\t\t\t// Support: IE 9 - 11+\n\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.addEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t\tdataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );\n\t\t},\n\t\tteardown: function() {\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType ) - 1;\n\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.removeEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( dataHolder, delegateType );\n\t\t\t} else {\n\t\t\t\tdataPriv.set( dataHolder, delegateType, attaches );\n\t\t\t}\n\t\t}\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Re-enable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew jQuery#find here for performance reasons:\n\t\t\t// https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\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 (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"box-sizing:content-box;border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is `display: block`\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105+, Chrome <=105+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace. Chrome just collapses\n\t\t\t// both leading & trailing whitespace to a single space.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\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\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0,\n\t\tmarginDelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\t// Count margin delta separately to only add it after scroll gutter adjustment.\n\t\t// This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n\t\tif ( box === \"margin\" ) {\n\t\t\tmarginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta + marginDelta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\tanimationIterationCount: true,\n\t\taspectRatio: true,\n\t\tborderImageSlice: true,\n\t\tcolumnCount: true,\n\t\tflexGrow: true,\n\t\tflexShrink: true,\n\t\tfontWeight: true,\n\t\tgridArea: true,\n\t\tgridColumn: true,\n\t\tgridColumnEnd: true,\n\t\tgridColumnStart: true,\n\t\tgridRow: true,\n\t\tgridRowEnd: true,\n\t\tgridRowStart: true,\n\t\tlineHeight: true,\n\t\topacity: true,\n\t\torder: true,\n\t\torphans: true,\n\t\tscale: true,\n\t\twidows: true,\n\t\tzIndex: true,\n\t\tzoom: true,\n\n\t\t// SVG-related\n\t\tfillOpacity: true,\n\t\tfloodOpacity: true,\n\t\tstopOpacity: true,\n\t\tstrokeMiterlimit: true,\n\t\tstrokeOpacity: true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\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 )` (trac-12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\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// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\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 classNames, cur, curValue, className, i, finalValue;\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\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\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\tthis.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 classNames, cur, curValue, className, i, finalValue;\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\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\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\tthis.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 classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\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\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = 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 (trac-14686, trac-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 (trac-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\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 rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\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// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\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 (trac-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// trac-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 trac-8605, trac-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// trac-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( \"